<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AShogi_diagram</id>
	<title>Module:Shogi diagram - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AShogi_diagram"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Shogi_diagram&amp;action=history"/>
	<updated>2026-04-30T12:29:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Module:Shogi_diagram&amp;diff=479420&amp;oldid=prev</id>
		<title>Zoran: Pywikibot 6.4.0</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Shogi_diagram&amp;diff=479420&amp;oldid=prev"/>
		<updated>2021-07-16T05:56:46Z</updated>

		<summary type="html">&lt;p&gt;Pywikibot 6.4.0&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local shogiobject = {}&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- internal functions &lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- returns a japanese character for a roman letter abbreviation&lt;br /&gt;
-- called by the shogiboard() function&lt;br /&gt;
local function piecesymbol(abbreviation)&lt;br /&gt;
	-- the abbreviation argument is a string of 1-3 letters that stand for the English names of the shogi pieces&lt;br /&gt;
	-- the abbreviation is extracted out of a longer string by the processString() function&lt;br /&gt;
	&lt;br /&gt;
	-- letter to character mapping (hash table)&lt;br /&gt;
	local piecenames = {&lt;br /&gt;
		p = '歩',&lt;br /&gt;
		t = 'と',&lt;br /&gt;
		l = '香',&lt;br /&gt;
		pl = '杏',&lt;br /&gt;
		n = '桂',&lt;br /&gt;
		pn = '圭',&lt;br /&gt;
		s = '銀',&lt;br /&gt;
		ps = '全',&lt;br /&gt;
		g = '金',&lt;br /&gt;
		b = '角',&lt;br /&gt;
		h = '馬',&lt;br /&gt;
		r = '飛',&lt;br /&gt;
		d = '龍',&lt;br /&gt;
		gyoku = '玉',&lt;br /&gt;
		ou = '王',&lt;br /&gt;
		tx = '个',&lt;br /&gt;
		plx = '仝',&lt;br /&gt;
		pnx = '今',&lt;br /&gt;
		dx = '竜',&lt;br /&gt;
		e = '象',&lt;br /&gt;
		a = '太'&lt;br /&gt;
	}&lt;br /&gt;
	-- spit out the character corresponding to abbreviation&lt;br /&gt;
	-- if the abbreviation string is empty, then spit out nobreak space (for html tables)		&lt;br /&gt;
	piece = piecenames[abbreviation] or '&amp;amp;nbsp;'&lt;br /&gt;
	return string.format( piece )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- function separates out the piece, the side, and the boldness info present in the string argument&lt;br /&gt;
-- it returns an array with these three values plus the color (for promoted pieces)&lt;br /&gt;
-- this info is passed to the makeTD() function&lt;br /&gt;
function processString(ss)&lt;br /&gt;
	-- strip whitespace&lt;br /&gt;
	ss = mw.text.trim(ss)&lt;br /&gt;
	&lt;br /&gt;
	-- get the last character of the string&lt;br /&gt;
	local lastchar = mw.ustring.sub(ss, -1)&lt;br /&gt;
	&lt;br /&gt;
	-- chop off last character of string&lt;br /&gt;
	local restofstring = mw.ustring.sub(ss, 1, -2)&lt;br /&gt;
&lt;br /&gt;
	-- default is normal font&lt;br /&gt;
	-- but if the string ends with 'l' for 'last move', &lt;br /&gt;
	-- then the font should be bold and we need to get a new string with the this 'l' chopped off (with a new last character)&lt;br /&gt;
	local boldness = 'normal'&lt;br /&gt;
	if lastchar:match('l') then&lt;br /&gt;
		boldness = 'bold'&lt;br /&gt;
		lastchar = mw.ustring.sub(restofstring, -1)&lt;br /&gt;
		restofstring = mw.ustring.sub(restofstring, 1, -2)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- the side is either 'g' for 'gote' or 's' for 'sente'&lt;br /&gt;
	-- it's the last character in the string (and if the string ended)&lt;br /&gt;
	local side = lastchar&lt;br /&gt;
	&lt;br /&gt;
	-- the leftover string is the shogi piece abbreviation&lt;br /&gt;
	local pieceabbr = restofstring&lt;br /&gt;
	&lt;br /&gt;
	-- default is black font&lt;br /&gt;
	-- if the piece is promoted (one the abbreviations below), then the piece should be red&lt;br /&gt;
	local color = 'black'&lt;br /&gt;
	if pieceabbr:match('t') or pieceabbr:match('pl') or pieceabbr:match('pn') or pieceabbr:match('ps') or pieceabbr:match('h') or pieceabbr:match('d') then&lt;br /&gt;
		color = 'red'&lt;br /&gt;
	end&lt;br /&gt;
	-- this is an exceptional bit:&lt;br /&gt;
	-- gote's king is usually 王 instead of 玉 by convention, &lt;br /&gt;
	-- but it's convenient to use the 'k' code for both sente and gote and let the default character be side-dependent&lt;br /&gt;
	if pieceabbr:match('k') and side:match('g') then&lt;br /&gt;
		pieceabbr = 'ou'&lt;br /&gt;
	end&lt;br /&gt;
	if pieceabbr:match('k') and side:match('s') then&lt;br /&gt;
		pieceabbr = 'gyoku'&lt;br /&gt;
	end&lt;br /&gt;
	-- similar to above exception, reverse default&lt;br /&gt;
	if pieceabbr:match('ak') and side:match('s') then&lt;br /&gt;
		pieceabbr = 'ou'&lt;br /&gt;
	end&lt;br /&gt;
	if pieceabbr:match('ak') and side:match('g') then&lt;br /&gt;
		pieceabbr = 'gyoku'&lt;br /&gt;
	end&lt;br /&gt;
	-- convert abbreviation to Japanese character&lt;br /&gt;
	local piecechar = piecesymbol(pieceabbr)&lt;br /&gt;
	&lt;br /&gt;
	if ss:match('yy') or ss:match('gr') or ss:match('rat') or ss:match('lat') or ss:match('uat') or ss:match('dat') or &lt;br /&gt;
           ss:match('lra') or ss:match('las') or ss:match('ras') or ss:match('uda') or ss:match('das') or ss:match('uas') or &lt;br /&gt;
           ss:match('da') or ss:match('dau') or ss:match('dad') or ss:match('daus') or ss:match('dads') or ss:match('daa') or &lt;br /&gt;
           ss:match('daad') or ss:match('daau') or ss:match('daaus') or ss:match('daads') or ss:match('kar') or ss:match('kal') or &lt;br /&gt;
           ss:match('kadr') or ss:match('kadl') or ss:match('rah') or ss:match('lah') or ss:match('dah') or ss:match('uah') or &lt;br /&gt;
           ss:match('durh') or ss:match('dulh') or ss:match('ddrh') or ss:match('ddlh') or ss:match('ddl') or ss:match('ddr') or &lt;br /&gt;
           ss:match('dul') or ss:match('dur') then&lt;br /&gt;
		piecechar = '[[File:shogi_' .. ss .. '22.svg|20px]]'&lt;br /&gt;
		side = 'arrow'&lt;br /&gt;
		color = 'arrow'&lt;br /&gt;
		boldness = 'arrow'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local result = {piecechar, side, color, boldness}&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- function makes a &amp;lt;td&amp;gt; containing the piece with CSS stuff&lt;br /&gt;
-- uses the info from processString() to customize the CSS based on which side, color, and boldness&lt;br /&gt;
function makeTD(stringarg)&lt;br /&gt;
	-- got to process the string argument into its informational bits&lt;br /&gt;
	-- this processedstring is an array (or whatever the equivalent is in Lua)&lt;br /&gt;
	local processedstring = processString(stringarg)&lt;br /&gt;
	-- saving the pieces of the array as separate objects to be referred to below&lt;br /&gt;
	local piecechar = processedstring[1]&lt;br /&gt;
	local side = processedstring[2]&lt;br /&gt;
	local color = processedstring[3]&lt;br /&gt;
	local bold = processedstring[4]&lt;br /&gt;
	&lt;br /&gt;
	-- i guess one needs a root node?&lt;br /&gt;
	local root = mw.html.create('')&lt;br /&gt;
	&lt;br /&gt;
	-- the default &amp;lt;td&amp;gt;&lt;br /&gt;
	local td = root:tag('td')&lt;br /&gt;
		td:css('border', 'black 1px solid')&lt;br /&gt;
		td:css('width', '20px')&lt;br /&gt;
		td:css('height', '20px')&lt;br /&gt;
		td:css('padding', '0')&lt;br /&gt;
		td:css('line-height', '0')&lt;br /&gt;
		td:css('font-family', '&amp;quot;Hiragino Mincho ProN&amp;quot;, serif')&lt;br /&gt;
	&lt;br /&gt;
		if not side:match('arrow') then&lt;br /&gt;
			td:wikitext( piecechar )&lt;br /&gt;
		end&lt;br /&gt;
	&lt;br /&gt;
	-- g = gote&lt;br /&gt;
	-- gote should be upside down text&lt;br /&gt;
	if side:match( 'g' ) then&lt;br /&gt;
		td:css('transform', 'rotate(180deg)')&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- for promoted pieces&lt;br /&gt;
	if color:match( 'red' ) then&lt;br /&gt;
		-- this is a darkish reddish color&lt;br /&gt;
		td:css('color', '#E00303')&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- for bold pieces&lt;br /&gt;
	if bold:match( 'bold' ) then&lt;br /&gt;
		td:css('font-weight', 'bolder')&lt;br /&gt;
		-- traditionally bold type is gothic (sans serif) in Japanese typesetting of shogi diagrams within Japanese shogi books&lt;br /&gt;
		td:css('font-family', ' HiraginoSans-W5, sans-serif')&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- for arrow svgs &lt;br /&gt;
	if side:match('arrow') then&lt;br /&gt;
		td:css('padding', '0')&lt;br /&gt;
		td:css('width', '20px')&lt;br /&gt;
		td:css('height', '20px')&lt;br /&gt;
		td:css('font-size', '1px')&lt;br /&gt;
		td:css('line-height', '0')&lt;br /&gt;
		td:wikitext( piecechar )&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- function makes the shogi diagram&lt;br /&gt;
-- this is basically a &amp;lt;div&amp;gt; enclosing a .css &amp;lt;div&amp;gt; wrapper with a &amp;lt;table&amp;gt; inside&lt;br /&gt;
function shogiboard(args)&lt;br /&gt;
	-- these are the column coordinate labels 9-1&lt;br /&gt;
	local colLabels = {'9', '8', '7', '6', '5', '4', '3', '2', '1', '&amp;amp;nbsp;'}&lt;br /&gt;
	-- these are the row coordinate labels a-i (western notation)&lt;br /&gt;
	local rowLabels = {'1', '2', '3', '4', '5', '6', '7', '8', '9'}&lt;br /&gt;
	-- these are the row coordinate labels 1-9 (Japanese notation)&lt;br /&gt;
	-- this isn't set up for use yet&lt;br /&gt;
	local rowLabelsJP = {'一', '二', '三', '四', '五', '六', '七', '八', '九'}&lt;br /&gt;
	&lt;br /&gt;
	local headerarg = args[2]&lt;br /&gt;
	local toppieceinhandarg = args[3]&lt;br /&gt;
	&lt;br /&gt;
	local root = mw.html.create('div')&lt;br /&gt;
&lt;br /&gt;
	-- &amp;lt;div&amp;gt; wrapper&lt;br /&gt;
	local shogiboardwrapper = root:tag('div')&lt;br /&gt;
		:addClass('shogiboardwrapper')&lt;br /&gt;
		:css('padding-left', '4px')&lt;br /&gt;
		:css('padding-bottom', '2px')&lt;br /&gt;
	&lt;br /&gt;
	-- the diagram header/caption&lt;br /&gt;
	local headerstring = mw.text.trim(headerarg)&lt;br /&gt;
	local header = shogiboardwrapper:tag('div')&lt;br /&gt;
		header:css('padding', '0')&lt;br /&gt;
		header:wikitext(headerstring)&lt;br /&gt;
		header:css('font-size', '14px')&lt;br /&gt;
&lt;br /&gt;
	-- this is the 'piece-in-hand' argument for gote&lt;br /&gt;
	-- strip whitespace&lt;br /&gt;
	local strippedpieceinhandtop = mw.text.trim(toppieceinhandarg) or ''&lt;br /&gt;
	-- put it in a &amp;lt;div&amp;gt; with .css formating&lt;br /&gt;
	local pieceinhandtopdiv = shogiboardwrapper:tag('div')&lt;br /&gt;
		pieceinhandtopdiv:css('padding', '0')&lt;br /&gt;
		pieceinhandtopdiv:css('font-size', '12px')&lt;br /&gt;
		pieceinhandtopdiv:wikitext('☖ pieces in hand: ')&lt;br /&gt;
	-- i was going to put the actual argument text into conditional &amp;lt;span&amp;gt; .css formating, but i couldn't get the logical test in an if/else structure right...&lt;br /&gt;
	local piecesinhandtopspan = pieceinhandtopdiv:tag('span')&lt;br /&gt;
		piecesinhandtopspan:css('font-size', '13px')&lt;br /&gt;
		piecesinhandtopspan:wikitext(strippedpieceinhandtop)&lt;br /&gt;
	&lt;br /&gt;
	-- the shogi table&lt;br /&gt;
	local shogitable = shogiboardwrapper:tag('table')&lt;br /&gt;
		:addClass('shogitable')&lt;br /&gt;
		:attr('border', '1')&lt;br /&gt;
		:css('border-collapse', 'collapse')&lt;br /&gt;
		:css('border', 'none')&lt;br /&gt;
		:css('padding-top', '0')&lt;br /&gt;
		:css('background-color', 'white')&lt;br /&gt;
		&lt;br /&gt;
	-- font size for the shogi piece text&lt;br /&gt;
	piecefontsize = '17px'&lt;br /&gt;
	-- font size for the column/row piece coordinate labels (9-1) and (a-i)&lt;br /&gt;
	colrowfontsize = '11px'&lt;br /&gt;
	-- padding amount for the row piece coordinate labels (a-i)&lt;br /&gt;
	padrowlab = '1px'&lt;br /&gt;
	&lt;br /&gt;
	-- the row for the column coordinate labels&lt;br /&gt;
	local columnlabelrow = shogitable:tag('tr')&lt;br /&gt;
		:css('font-size', colrowfontsize)&lt;br /&gt;
		:css('background-color', '#f9f9f9')&lt;br /&gt;
	-- iterating over the column label to put each label in a &amp;lt;td&amp;gt;&lt;br /&gt;
	for i,v in ipairs(colLabels) do &lt;br /&gt;
		local td = columnlabelrow:tag('td')&lt;br /&gt;
			:css('border', 'none')&lt;br /&gt;
			:css('width', '20px')&lt;br /&gt;
			:css('height', '5px')&lt;br /&gt;
			:wikitext( v )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- iterate over the 81 shogi piece arguments (left to right, top to bottom)&lt;br /&gt;
	-- i couldn't figure out how to do this is in a clever loopy way as i couldn't figure out how to close the html tags&lt;br /&gt;
	-- whatever, it's repetitive, but it works&lt;br /&gt;
	&lt;br /&gt;
	-- index number displacement/offset&lt;br /&gt;
	-- this is just the number of arguments that precede the 81 shogi piece arguments that are in the html &amp;lt;table&amp;gt;&lt;br /&gt;
	-- i just keep the piece arguments as indexes 1-81, then add nx to the index value&lt;br /&gt;
	nx = 3&lt;br /&gt;
	&lt;br /&gt;
	-- the row for the shogi pieces&lt;br /&gt;
	-- row 1&lt;br /&gt;
	local trow = shogitable:tag('tr')&lt;br /&gt;
		:css('font-size', piecefontsize)&lt;br /&gt;
	-- put a single piece into a &amp;lt;td&amp;gt;&lt;br /&gt;
	-- iterate over 9 pieces in the row&lt;br /&gt;
	for irow = 1,9 do&lt;br /&gt;
		trow:wikitext( makeTD(args[(irow+nx)]) )&lt;br /&gt;
	end&lt;br /&gt;
	-- add row coordinate label &amp;lt;td&amp;gt;&lt;br /&gt;
	local rowlabel = trow:tag('td')&lt;br /&gt;
		:css('border', 'none')&lt;br /&gt;
		:css('font-size', colrowfontsize)&lt;br /&gt;
		:css('padding-left', padrowlab)&lt;br /&gt;
		:css('padding-top', '0')&lt;br /&gt;
		:css('padding-bottom', '0')&lt;br /&gt;
		:css('background-color', '#f9f9f9')&lt;br /&gt;
		:wikitext( rowLabels[1] )&lt;br /&gt;
	-- row 2&lt;br /&gt;
	local trow = shogitable:tag('tr')&lt;br /&gt;
		:css('font-size', piecefontsize)&lt;br /&gt;
	for irow = 10,18 do		&lt;br /&gt;
		trow:wikitext( makeTD(args[(irow+nx)]) )&lt;br /&gt;
	end&lt;br /&gt;
	local rowlabel = trow:tag('td')&lt;br /&gt;
		:css('border', 'none')&lt;br /&gt;
		:css('font-size', colrowfontsize)&lt;br /&gt;
		:css('padding-left', padrowlab)&lt;br /&gt;
		:css('background-color', '#f9f9f9')&lt;br /&gt;
		:wikitext( rowLabels[2] )&lt;br /&gt;
	-- row 3&lt;br /&gt;
	local trow = shogitable:tag('tr')&lt;br /&gt;
		:css('font-size', piecefontsize)&lt;br /&gt;
	for irow = 19,27 do		&lt;br /&gt;
		trow:wikitext( makeTD(args[(irow+nx)]) )&lt;br /&gt;
	end&lt;br /&gt;
	local rowlabel = trow:tag('td')&lt;br /&gt;
		:css('border', 'none')&lt;br /&gt;
		:css('font-size', colrowfontsize)&lt;br /&gt;
		:css('padding-left', padrowlab)&lt;br /&gt;
		:css('background-color', '#f9f9f9')&lt;br /&gt;
		:wikitext( rowLabels[3] )&lt;br /&gt;
	-- row 4&lt;br /&gt;
	local trow = shogitable:tag('tr')&lt;br /&gt;
		:css('font-size', piecefontsize)&lt;br /&gt;
	for irow = 28,36 do		&lt;br /&gt;
		trow:wikitext( makeTD(args[(irow+nx)]) )&lt;br /&gt;
	end&lt;br /&gt;
	local rowlabel = trow:tag('td')&lt;br /&gt;
		:css('border', 'none')&lt;br /&gt;
		:css('font-size', colrowfontsize)&lt;br /&gt;
		:css('padding-left', padrowlab)&lt;br /&gt;
		:css('background-color', '#f9f9f9')&lt;br /&gt;
		:wikitext( rowLabels[4] )&lt;br /&gt;
	-- row 5&lt;br /&gt;
	local trow = shogitable:tag('tr')&lt;br /&gt;
		:css('font-size', piecefontsize)&lt;br /&gt;
	for irow = 37,45 do		&lt;br /&gt;
		trow:wikitext( makeTD(args[(irow+nx)]) )&lt;br /&gt;
	end&lt;br /&gt;
	local rowlabel = trow:tag('td')&lt;br /&gt;
		:css('border', 'none')&lt;br /&gt;
		:css('font-size', colrowfontsize)&lt;br /&gt;
		:css('padding-left', padrowlab)&lt;br /&gt;
		:css('background-color', '#f9f9f9')&lt;br /&gt;
		:wikitext( rowLabels[5] )&lt;br /&gt;
	-- row 6&lt;br /&gt;
	local trow = shogitable:tag('tr')&lt;br /&gt;
		:css('font-size', piecefontsize)&lt;br /&gt;
	for irow = 46,54 do		&lt;br /&gt;
		trow:wikitext( makeTD(args[(irow+nx)]) )&lt;br /&gt;
	end&lt;br /&gt;
	local rowlabel = trow:tag('td')&lt;br /&gt;
		:css('border', 'none')&lt;br /&gt;
		:css('font-size', colrowfontsize)&lt;br /&gt;
		:css('padding-left', padrowlab)&lt;br /&gt;
		:css('background-color', '#f9f9f9')&lt;br /&gt;
		:wikitext( rowLabels[6] )&lt;br /&gt;
	-- row 7&lt;br /&gt;
	local trow = shogitable:tag('tr')&lt;br /&gt;
		:css('font-size', piecefontsize)&lt;br /&gt;
	for irow = 55,63 do		&lt;br /&gt;
		trow:wikitext( makeTD(args[(irow+nx)]) )&lt;br /&gt;
	end&lt;br /&gt;
	local rowlabel = trow:tag('td')&lt;br /&gt;
		:css('border', 'none')&lt;br /&gt;
		:css('font-size', colrowfontsize)&lt;br /&gt;
		:css('padding-left', padrowlab)&lt;br /&gt;
		:css('background-color', '#f9f9f9')&lt;br /&gt;
		:wikitext( rowLabels[7] )&lt;br /&gt;
	-- row 8&lt;br /&gt;
	local trow = shogitable:tag('tr')&lt;br /&gt;
		:css('font-size', piecefontsize)&lt;br /&gt;
	for irow = 64,72 do		&lt;br /&gt;
		trow:wikitext( makeTD(args[(irow+nx)]) )&lt;br /&gt;
	end&lt;br /&gt;
	local rowlabel = trow:tag('td')&lt;br /&gt;
		:css('border', 'none')&lt;br /&gt;
		:css('font-size', colrowfontsize)&lt;br /&gt;
		:css('padding-left', padrowlab)&lt;br /&gt;
		:css('background-color', '#f9f9f9')&lt;br /&gt;
		:wikitext( rowLabels[8] )&lt;br /&gt;
	-- row 9&lt;br /&gt;
	local trow = shogitable:tag('tr')&lt;br /&gt;
		:css('font-size', piecefontsize)&lt;br /&gt;
	for irow = 73,81 do		&lt;br /&gt;
		trow:wikitext( makeTD(args[(irow+nx)]) )&lt;br /&gt;
	end&lt;br /&gt;
	local rowlabel = trow:tag('td')&lt;br /&gt;
		:css('border', 'none')&lt;br /&gt;
		:css('font-size', colrowfontsize)&lt;br /&gt;
		:css('padding-left', padrowlab)&lt;br /&gt;
		:css('background-color', '#f9f9f9')&lt;br /&gt;
		:wikitext( rowLabels[9] )&lt;br /&gt;
	&lt;br /&gt;
	-- this is the 'piece-in-hand' argument for sente (same as above for gote)&lt;br /&gt;
	-- only difference is the black shogi piece glyph (☗)&lt;br /&gt;
	local strippedpieceinhandbottom = mw.text.trim(args[81+1+nx]) or ''	&lt;br /&gt;
	local pieceinhandbottomdiv = shogiboardwrapper:tag('div')&lt;br /&gt;
		pieceinhandbottomdiv:css('padding', '0')&lt;br /&gt;
		pieceinhandbottomdiv:css('font-size', '12px')&lt;br /&gt;
		pieceinhandbottomdiv:wikitext('☗ pieces in hand: ')&lt;br /&gt;
	local piecesinhandbottomspan = pieceinhandbottomdiv:tag('span')&lt;br /&gt;
		piecesinhandbottomspan:css('font-size', '13px')&lt;br /&gt;
		piecesinhandbottomspan:wikitext(strippedpieceinhandbottom)&lt;br /&gt;
		&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- main function &lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
function shogiobject.board(frame)&lt;br /&gt;
	-- need to use getParent().args for reasons i dont understand&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	return shogiboard(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return shogiobject&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>