<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://www.vigyanwiki.in/index.php?action=history&amp;feed=atom&amp;title=Module%3AChessboard_mxn</id>
	<title>Module:Chessboard mxn - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.vigyanwiki.in/index.php?action=history&amp;feed=atom&amp;title=Module%3AChessboard_mxn"/>
	<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Chessboard_mxn&amp;action=history"/>
	<updated>2026-04-30T00:57:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:Chessboard_mxn&amp;diff=225575&amp;oldid=prev</id>
		<title>Indicwiki: 1 revision imported from :alpha:Module:Chessboard_mxn</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Chessboard_mxn&amp;diff=225575&amp;oldid=prev"/>
		<updated>2023-07-26T06:42:20Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported from &lt;a href=&quot;https://alpha.indicwiki.in/index.php?title=Module:Chessboard_mxn&quot; class=&quot;extiw&quot; title=&quot;alpha:Module:Chessboard mxn&quot;&gt;alpha:Module:Chessboard_mxn&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:12, 26 July 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Indicwiki</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:Chessboard_mxn&amp;diff=225574&amp;oldid=prev</id>
		<title>alpha&gt;Indicwiki: Created page with &quot;local p = {}  function chessboard(args, size, rows, cols, rev, trans, lightdark, altprefix, letters, numbers, header, footer, align, clear)     function colchar( col )...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Chessboard_mxn&amp;diff=225574&amp;oldid=prev"/>
		<updated>2023-07-19T12:22:26Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local p = {}  function chessboard(args, size, rows, cols, rev, trans, lightdark, altprefix, letters, numbers, header, footer, align, clear)     function colchar( col )...&amp;quot;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:52, 19 July 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l110&quot;&gt;Line 110:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 110:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if ( letters_bt ) then b = b .. letters_row(rev, numbers_lt, numbers_rt, cols) .. '\n' end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if ( letters_bt ) then b = b .. letters_row(rev, numbers_lt, numbers_rt, cols) .. '\n' end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if footer:match('^%s*$')&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;not &lt;/ins&gt;footer:match('^%s*$') then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    &lt;/del&gt;then&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    else    &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         caption = '&amp;lt;div class=&amp;quot;thumbcaption&amp;quot;&amp;gt;' .. footer .. '&amp;lt;/div&amp;gt;\n'&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         caption = '&amp;lt;div class=&amp;quot;thumbcaption&amp;quot;&amp;gt;' .. footer .. '&amp;lt;/div&amp;gt;\n'&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>alpha&gt;Indicwiki</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:Chessboard_mxn&amp;diff=32422&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Chessboard_mxn&amp;diff=32422&amp;oldid=prev"/>
		<updated>2022-12-07T16:45:42Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:15, 7 December 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:Chessboard_mxn&amp;diff=32421&amp;oldid=prev</id>
		<title>wikipedia&gt;Frietjes: update from sandbox per edit request</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Chessboard_mxn&amp;diff=32421&amp;oldid=prev"/>
		<updated>2022-08-11T16:12:21Z</updated>

		<summary type="html">&lt;p&gt;update from sandbox per edit request&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function chessboard(args, size, rows, cols, rev, trans, lightdark, altprefix, letters, numbers, header, footer, align, clear)&lt;br /&gt;
    function colchar( col )&lt;br /&gt;
        return (col &amp;lt;= 26) and ( &amp;quot;abcdefghijklmnopqrstuvwxyz&amp;quot; ):sub( col, col ) &lt;br /&gt;
        	or ( &amp;quot;abcdefghijklmnopqrstuvwxyz&amp;quot; ):sub( math.floor((col-1)/26), math.floor((col-1)/26) ) &lt;br /&gt;
        		.. ( &amp;quot;abcdefghijklmnopqrstuvwxyz&amp;quot; ):sub( col-math.floor((col-1)/26)*26, col-math.floor((col-1)/26)*26)&lt;br /&gt;
    end&lt;br /&gt;
    function image_square( pc, row, col, size, t, flip, altprefix )&lt;br /&gt;
        local colornames = { l = 'white', d = 'black', u = 'unknown color' }&lt;br /&gt;
        local piecenames = { &lt;br /&gt;
            p = 'pawn', &lt;br /&gt;
            r = 'rook', &lt;br /&gt;
            n = 'knight', &lt;br /&gt;
            b = 'bishop', &lt;br /&gt;
            q = 'queen', &lt;br /&gt;
            k = 'king', &lt;br /&gt;
            a = 'princess',&lt;br /&gt;
            c = 'empress', &lt;br /&gt;
            z = 'champion', &lt;br /&gt;
            w = 'wizard', &lt;br /&gt;
            t = 'fool', &lt;br /&gt;
            h = 'upside-down pawn', &lt;br /&gt;
            m = 'upside-down rook', &lt;br /&gt;
            s = 'upside-down knight', &lt;br /&gt;
            f = 'upside-down king',  &lt;br /&gt;
            e = 'upside-down bishop', &lt;br /&gt;
            g = 'upside-down queen',&lt;br /&gt;
            G = 'giraffe',&lt;br /&gt;
            U = 'unicorn',&lt;br /&gt;
            Z = 'zebra'&lt;br /&gt;
            }&lt;br /&gt;
        local symnames = { &lt;br /&gt;
            xx = 'black cross', &lt;br /&gt;
            ox = 'white cross', &lt;br /&gt;
            xo = 'black circle', &lt;br /&gt;
            oo = 'white circle',&lt;br /&gt;
            ul = 'up-left arrow', &lt;br /&gt;
            ua = 'up arrow', &lt;br /&gt;
            ur = 'up-right arrow', &lt;br /&gt;
            la = 'left arrow', &lt;br /&gt;
            ra = 'right arrow',&lt;br /&gt;
            dl = 'down-left arrow', &lt;br /&gt;
            da = 'down arrow', &lt;br /&gt;
            dr = 'down-right arrow', &lt;br /&gt;
            lr = 'left-right arrow', &lt;br /&gt;
            ud = 'up-down arrow',&lt;br /&gt;
            db = 'up-right and down-left arrow',&lt;br /&gt;
            dw = 'up-left and down-right arrow',&lt;br /&gt;
            x0 = 'zero', &lt;br /&gt;
            x1 = 'one', &lt;br /&gt;
            x2 = 'two', &lt;br /&gt;
            x3 = 'three', &lt;br /&gt;
            x4 = 'four', &lt;br /&gt;
            x5 = 'five', &lt;br /&gt;
            x6 = 'six', &lt;br /&gt;
            x7 = 'seven', &lt;br /&gt;
            x8 = 'eight', &lt;br /&gt;
            x9 = 'nine'&lt;br /&gt;
        }&lt;br /&gt;
        local color = mw.ustring.gsub( pc, '^.*(%w)(%w).*$', '%2' ) or ''&lt;br /&gt;
        local piece = mw.ustring.gsub( pc, '^.*(%w)(%w).*$', '%1' ) or ''&lt;br /&gt;
        local alt = altprefix .. colchar( col ) .. row .. ' '&lt;br /&gt;
        if ( colornames[color] and piecenames[piece] ) then&lt;br /&gt;
            alt = alt .. colornames[color] .. ' ' .. piecenames[piece]&lt;br /&gt;
        else&lt;br /&gt;
            alt = alt .. ( symnames[piece .. color] or piece .. ' ' .. color )&lt;br /&gt;
        end&lt;br /&gt;
        local ld = t and 't' or ((((row + col + flip) % 2) == 0) and 'd' or 'l')&lt;br /&gt;
        &lt;br /&gt;
        return string.format( '[[File:Chess %s%s%s45.svg|%dx%dpx|alt=%s|%s]]', piece, color, ld, size, size, alt, alt )&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    function letters_row( rev, num_lt, num_rt, cols )&lt;br /&gt;
        local res = '&amp;lt;tr style=&amp;quot;vertical-align:middle&amp;quot;&amp;gt;' .. ( num_lt and '&amp;lt;td style=&amp;quot;padding:0; vertical-align:inherit&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;' or '' ) .. '&amp;lt;td style=&amp;quot;padding:0; vertical-align:inherit; height:18px&amp;quot;&amp;gt;'&lt;br /&gt;
        for k = 1, cols do&lt;br /&gt;
            res = res .. colchar(rev and (cols - k + 1) or k) .. '&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:0; vertical-align:inherit&amp;quot;&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        res = res .. '&amp;lt;/td&amp;gt;' .. ( num_lt and '&amp;lt;td style=&amp;quot;padding:0; vertical-align:inherit&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;' or '' ) .. '&amp;lt;/tr&amp;gt;'&lt;br /&gt;
        return res&lt;br /&gt;
    end&lt;br /&gt;
    local letters_tp = letters:match('both') or letters:match('top')&lt;br /&gt;
    local letters_bt = letters:match('both') or letters:match('bottom')&lt;br /&gt;
    local numbers_lt = numbers:match('both') or numbers:match('left')&lt;br /&gt;
    local numbers_rt = numbers:match('both') or numbers:match('right')&lt;br /&gt;
    local width = cols * size + 2&lt;br /&gt;
    local flip = lightdark and 1 or 0&lt;br /&gt;
    if ( numbers_lt ) then width = width + 18 end&lt;br /&gt;
    if ( numbers_rt ) then width = width + 18 end&lt;br /&gt;
&lt;br /&gt;
    local b = ''&lt;br /&gt;
    local caption = ''&lt;br /&gt;
&lt;br /&gt;
    if ( letters_tp ) then b = b .. letters_row(rev, numbers_lt, numbers_rt, cols) .. '\n' end&lt;br /&gt;
    for trow = 1,rows do&lt;br /&gt;
        local row = rev and trow or (rows - trow + 1)&lt;br /&gt;
        b = b .. '&amp;lt;tr style=&amp;quot;vertical-align:middle&amp;quot;&amp;gt;'&lt;br /&gt;
        if ( numbers_lt ) then b = b .. '&amp;lt;td style=&amp;quot;padding:0; vertical-align:inherit; width:18px&amp;quot;&amp;gt;' .. row .. '&amp;lt;/td&amp;gt;' end&lt;br /&gt;
        for tcol = 1,cols do&lt;br /&gt;
            local col = rev and (cols - tcol + 1) or tcol&lt;br /&gt;
            local idx = cols*(rows - row) + col + 2&lt;br /&gt;
            if (args[idx] == nil) then args[idx] = '  ' end&lt;br /&gt;
            local img = image_square(args[idx]:match('%w%w') or '', row, col, size, trans, flip, altprefix )&lt;br /&gt;
            local bg = (((trow + tcol + flip) % 2) == 0) and '#ffce9e' or '#d18b47'&lt;br /&gt;
            b = b .. '&amp;lt;td style=&amp;quot;padding:0; vertical-align:inherit; background-color: ' .. bg .. ';&amp;quot;&amp;gt;' .. img .. '&amp;lt;/td&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        if ( numbers_rt ) then b = b .. '&amp;lt;td style=&amp;quot;padding:0; vertical-align:inherit; width:18px&amp;quot;&amp;gt;' .. row .. '&amp;lt;/td&amp;gt;' end&lt;br /&gt;
        b = b .. '&amp;lt;/tr&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    if ( letters_bt ) then b = b .. letters_row(rev, numbers_lt, numbers_rt, cols) .. '\n' end&lt;br /&gt;
&lt;br /&gt;
    if footer:match('^%s*$')&lt;br /&gt;
    then&lt;br /&gt;
    else    &lt;br /&gt;
        caption = '&amp;lt;div class=&amp;quot;thumbcaption&amp;quot;&amp;gt;' .. footer .. '&amp;lt;/div&amp;gt;\n'&lt;br /&gt;
    end&lt;br /&gt;
    b = '&amp;lt;table cellpadding=0 cellspacing=0 class=&amp;quot;center noviewer&amp;quot; style=&amp;quot;line-height: 0; background:white; font-size:88%; border:1px #c8ccd1 solid;'&lt;br /&gt;
        .. 'padding:0; margin:auto&amp;quot;&amp;gt;\n' .. b .. '\n&amp;lt;/table&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
    if noframe then&lt;br /&gt;
        return b&lt;br /&gt;
    else&lt;br /&gt;
        return '&amp;lt;div class=&amp;quot;thumb ' .. align .. '&amp;quot;&amp;gt;'&lt;br /&gt;
        .. '&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;' .. header .. '&amp;lt;/div&amp;gt;' .. '\n&amp;lt;div class=&amp;quot;thumbinner&amp;quot; style=&amp;quot;width:' .. width .. 'px;&amp;quot;&amp;gt;\n' &lt;br /&gt;
        .. b .. '\n' .. caption .. '&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function convertFenToArgs( fen )&lt;br /&gt;
    -- converts FEN notation to an array of positions, offset by 2&lt;br /&gt;
    local res = {' ', ' '}&lt;br /&gt;
    -- Loop over rows, which are delimited by /&lt;br /&gt;
    for srow in string.gmatch(&amp;quot;/&amp;quot; .. fen, &amp;quot;/%w+&amp;quot;) do&lt;br /&gt;
        srow = srow:gsub(&amp;quot;/&amp;quot;,&amp;quot;&amp;quot;) -- clean up row&lt;br /&gt;
        -- Loop over all letters and numbers in the row&lt;br /&gt;
        -- Since Lua regexes do not have the | operator, we have&lt;br /&gt;
        -- to spell things out&lt;br /&gt;
        local index = 1&lt;br /&gt;
        local piece = &amp;quot;&amp;quot; -- Piece can also be empty squares&lt;br /&gt;
        local place = 0&lt;br /&gt;
        local pstart = 0&lt;br /&gt;
        local pend = 0&lt;br /&gt;
        local length = srow:len()&lt;br /&gt;
        while index &amp;lt;= length do&lt;br /&gt;
            -- Look for a number.  Can have multiple digits&lt;br /&gt;
            pstart, pend = srow:find(&amp;quot;%d+&amp;quot;, index)&lt;br /&gt;
            if pstart == index then&lt;br /&gt;
                piece = srow:sub(pstart, pend)&lt;br /&gt;
                index = pend + 1&lt;br /&gt;
                for k=1,tonumber(piece) do&lt;br /&gt;
                    table.insert(res,' ')&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                -- If number not found, look for a letter (piece on board)&lt;br /&gt;
                pstart = srow:find(&amp;quot;%a&amp;quot;,index)&lt;br /&gt;
                if pstart == index then&lt;br /&gt;
                    piece = srow:sub(pstart, pstart)&lt;br /&gt;
                    index = pstart + 1&lt;br /&gt;
                    -- l: White (light); d: Black (dark)&lt;br /&gt;
                    local color = piece:match( '%u' ) and 'l' or 'd'&lt;br /&gt;
                    piece = piece:lower()&lt;br /&gt;
                    table.insert(res, piece .. color)&lt;br /&gt;
                else&lt;br /&gt;
                    index = length + 1 -- Break loop&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.board(frame)&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    local pargs = frame:getParent().args&lt;br /&gt;
    local size = (args.size or pargs.size) or '26'&lt;br /&gt;
    local reverse = (args.reverse or pargs.reverse or '' ):lower() == &amp;quot;true&amp;quot;&lt;br /&gt;
    local trans = (args.transparent or pargs.transparent or '' ):lower() == &amp;quot;true&amp;quot;&lt;br /&gt;
    local lightdark = (args.lightdark or pargs.lightdark or '' ):lower() == &amp;quot;swap&amp;quot;&lt;br /&gt;
    local altprefix = args.altprefix or pargs.altprefix or ''&lt;br /&gt;
    local rows = args.rows or pargs.rows or 8&lt;br /&gt;
    local cols = args.cols or pargs.cols or 8&lt;br /&gt;
    local letters = ( args.letters or pargs.letters or 'both' ):lower() &lt;br /&gt;
    local numbers = ( args.numbers or pargs.numbers or 'both' ):lower() &lt;br /&gt;
    local header =  mw.ustring.gsub( args[2] or pargs[2] or '', '^%s*(.-)%s*$', '%1' )&lt;br /&gt;
    local footer = args[3 + rows*cols] or pargs[3 + rows*cols] or ''&lt;br /&gt;
    local align = ( args[1] or pargs[1] or 'tright' ):lower()&lt;br /&gt;
    local clear = ( args.clear or pargs.clear ) or ( align:match('tright') and 'right' or 'none' )&lt;br /&gt;
    local noframe = (args.noframe or pargs.noframe or ''):lower() == &amp;quot;true&amp;quot;&lt;br /&gt;
    local fen = args.fen or pargs.fen&lt;br /&gt;
&lt;br /&gt;
    size = mw.ustring.match(size, '[%d]+') or '26' -- remove px from size&lt;br /&gt;
    if (fen) then&lt;br /&gt;
        align = ( args.align or pargs.align or 'tright' ):lower()&lt;br /&gt;
        clear = ( args.clear or pargs.clear ) or ( align:match('tright') and 'right' or 'none' )&lt;br /&gt;
        header = args.header or pargs.header or ''&lt;br /&gt;
        footer = args.footer or pargs.footer or ''&lt;br /&gt;
        return chessboard(convertFenToArgs( fen ), size, rows, cols, reverse, trans, lightdark, altprefix, letters, numbers, header, footer, align, clear, noframe)&lt;br /&gt;
    end&lt;br /&gt;
    if args[3] then&lt;br /&gt;
        return chessboard(args, size, rows, cols, reverse, trans, lightdark, altprefix, letters, numbers, header, footer, align, clear, noframe)&lt;br /&gt;
    else&lt;br /&gt;
        return chessboard(pargs, size, rows, cols, reverse, trans, lightdark, altprefix, letters, numbers, header, footer, align, clear, noframe)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wikipedia&gt;Frietjes</name></author>
	</entry>
</feed>