<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.tokusatsus.com/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AInfocaixa</id>
	<title>Módulo:Infocaixa - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tokusatsus.com/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AInfocaixa"/>
	<link rel="alternate" type="text/html" href="https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Infocaixa&amp;action=history"/>
	<updated>2026-07-05T09:29:54Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Infocaixa&amp;diff=2479&amp;oldid=prev</id>
		<title>Tavoraadmin: Importando predefinição/módulo da Wikipédia em português para manter layout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Infocaixa&amp;diff=2479&amp;oldid=prev"/>
		<updated>2026-07-05T04:55:16Z</updated>

		<summary type="html">&lt;p&gt;Importando predefinição/módulo da Wikipédia em português para manter layout&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local args = {}&lt;br /&gt;
local origArgs = {}&lt;br /&gt;
local root&lt;br /&gt;
local empty_row_categories = {}&lt;br /&gt;
local category_in_empty_row_pattern = &amp;#039;%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]%s*:[^]]*]]&amp;#039;&lt;br /&gt;
local has_rows = false&lt;br /&gt;
local lists = {&lt;br /&gt;
    plainlist_t = {&lt;br /&gt;
        patterns = {&lt;br /&gt;
            &amp;#039;^plainlist$&amp;#039;,&lt;br /&gt;
            &amp;#039;%splainlist$&amp;#039;,&lt;br /&gt;
            &amp;#039;^plainlist%s&amp;#039;,&lt;br /&gt;
            &amp;#039;%splainlist%s&amp;#039;&lt;br /&gt;
        },&lt;br /&gt;
        found = false,&lt;br /&gt;
        styles = &amp;#039;Plainlist/styles.css&amp;#039;&lt;br /&gt;
    },&lt;br /&gt;
    hlist_t = {&lt;br /&gt;
        patterns = {&lt;br /&gt;
            &amp;#039;^hlist$&amp;#039;,&lt;br /&gt;
            &amp;#039;%shlist$&amp;#039;,&lt;br /&gt;
            &amp;#039;^hlist%s&amp;#039;,&lt;br /&gt;
            &amp;#039;%shlist%s&amp;#039;&lt;br /&gt;
        },&lt;br /&gt;
        found = false,&lt;br /&gt;
        styles = &amp;#039;Hlist/styles.css&amp;#039;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function has_list_class(args_to_check)&lt;br /&gt;
    for _, list in pairs(lists) do&lt;br /&gt;
        if not list.found then&lt;br /&gt;
            for _, arg in pairs(args_to_check) do&lt;br /&gt;
                for _, pattern in ipairs(list.patterns) do&lt;br /&gt;
                    if mw.ustring.find(arg or &amp;#039;&amp;#039;, pattern) then&lt;br /&gt;
                        list.found = true&lt;br /&gt;
                        break&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                if list.found then break end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isUntitledChildBox(sval)&lt;br /&gt;
    return sval and (&lt;br /&gt;
        sval:match(&amp;#039;^%s*&amp;lt;%s*[Tt][Rr]&amp;#039;) or&lt;br /&gt;
        sval:match(&amp;#039;^%s*\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127%s*&amp;lt;%s*[Tt][Rr]&amp;#039;)&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function fixChildBoxes(sval, tt)&lt;br /&gt;
    local function notempty( s ) return s and s:match( &amp;#039;%S&amp;#039; ) end&lt;br /&gt;
    &lt;br /&gt;
    if notempty(sval) then&lt;br /&gt;
        local marker = &amp;#039;&amp;lt;span class=special_infobox_marker&amp;gt;&amp;#039;&lt;br /&gt;
        local s = sval&lt;br /&gt;
        local slast = &amp;#039;&amp;#039;&lt;br /&gt;
        while slast ~= s do&lt;br /&gt;
            slast = s&lt;br /&gt;
            s = mw.ustring.gsub(s, &amp;#039;(&amp;lt;/[Tt][Rr]%s*&amp;gt;%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]%s*:[^]]*%]%])&amp;#039;, &amp;#039;%2%1&amp;#039;)&lt;br /&gt;
            s = mw.ustring.gsub(s, &amp;#039;(&amp;lt;/[Tt][Rr]%s*&amp;gt;%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)&amp;#039;, &amp;#039;%2%1&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
        s = mw.ustring.gsub(s, &amp;#039;(&amp;lt;%s*[Tt][Rr])&amp;#039;, marker .. &amp;#039;%1&amp;#039;)&lt;br /&gt;
        s = mw.ustring.gsub(s, &amp;#039;(&amp;lt;/[Tt][Rr]%s*&amp;gt;)&amp;#039;, &amp;#039;%1&amp;#039; .. marker)&lt;br /&gt;
        if s:match(marker) then&lt;br /&gt;
            s = mw.ustring.gsub(s, marker .. &amp;#039;%s*&amp;#039; .. marker, &amp;#039;&amp;#039;)&lt;br /&gt;
            s = mw.ustring.gsub(s, &amp;#039;([\r\n]|-[^\r\n]*[\r\n])%s*&amp;#039; .. marker, &amp;#039;%1&amp;#039;)&lt;br /&gt;
            s = mw.ustring.gsub(s, marker .. &amp;#039;%s*([\r\n]|-)&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
            s = mw.ustring.gsub(s, &amp;#039;(&amp;lt;/[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*&amp;gt;%s*)&amp;#039; .. marker, &amp;#039;%1&amp;#039;)&lt;br /&gt;
            s = mw.ustring.gsub(s, &amp;#039;(&amp;lt;%s*[Tt][Aa][Bb][Ll][Ee][^&amp;lt;&amp;gt;]*&amp;gt;%s*)&amp;#039; .. marker, &amp;#039;%1&amp;#039;)&lt;br /&gt;
            s = mw.ustring.gsub(s, &amp;#039;^(%{|[^\r\n]*[\r\n]%s*)&amp;#039; .. marker, &amp;#039;%1&amp;#039;)&lt;br /&gt;
            s = mw.ustring.gsub(s, &amp;#039;([\r\n]%{|[^\r\n]*[\r\n]%s*)&amp;#039; .. marker, &amp;#039;%1&amp;#039;)&lt;br /&gt;
            s = mw.ustring.gsub(s, marker .. &amp;#039;(%s*&amp;lt;/[Tt][Aa][Bb][Ll][Ee]%s*&amp;gt;)&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
            s = mw.ustring.gsub(s, marker .. &amp;#039;(%s*\n|%})&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
        if s:match(marker) then&lt;br /&gt;
            local subcells = mw.text.split(s, marker)&lt;br /&gt;
            s = &amp;#039;&amp;#039;&lt;br /&gt;
            for k = 1, #subcells do&lt;br /&gt;
                if k == 1 then&lt;br /&gt;
                    s = s .. subcells[k] .. &amp;#039;&amp;lt;/&amp;#039; .. tt .. &amp;#039;&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
                elseif k == #subcells then&lt;br /&gt;
                    local rowstyle = &amp;#039; style=&amp;quot;display:none&amp;quot;&amp;#039;&lt;br /&gt;
                    if notempty(subcells[k]) then rowstyle = &amp;#039;&amp;#039;    end&lt;br /&gt;
                    s = s .. &amp;#039;&amp;lt;tr&amp;#039; .. rowstyle ..&amp;#039;&amp;gt;&amp;lt;&amp;#039; .. tt .. &amp;#039; colspan=2&amp;gt;\n&amp;#039; ..&lt;br /&gt;
                        subcells[k]&lt;br /&gt;
                elseif notempty(subcells[k]) then&lt;br /&gt;
                    if (k % 2) == 0 then&lt;br /&gt;
                        s = s .. subcells[k]&lt;br /&gt;
                    else&lt;br /&gt;
                        s = s .. &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;&amp;#039; .. tt .. &amp;#039; colspan=2&amp;gt;\n&amp;#039; ..&lt;br /&gt;
                            subcells[k] .. &amp;#039;&amp;lt;/&amp;#039; .. tt .. &amp;#039;&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        s = mw.ustring.gsub(s, &amp;#039;([\r\n][%*#;:][^\r\n]*)$&amp;#039;, &amp;#039;%1\n&amp;#039;)&lt;br /&gt;
        s = mw.ustring.gsub(s, &amp;#039;^([%*#;:][^\r\n]*)$&amp;#039;, &amp;#039;%1\n&amp;#039;)&lt;br /&gt;
        s = mw.ustring.gsub(s, &amp;#039;^([%*#;:])&amp;#039;, &amp;#039;\n%1&amp;#039;)&lt;br /&gt;
        s = mw.ustring.gsub(s, &amp;#039;^(%{%|)&amp;#039;, &amp;#039;\n%1&amp;#039;)&lt;br /&gt;
        return s&lt;br /&gt;
    else&lt;br /&gt;
        return sval&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function cleanInfobox()&lt;br /&gt;
    root = tostring(root)&lt;br /&gt;
    if has_rows == false then&lt;br /&gt;
        root = mw.ustring.gsub(root, &amp;#039;&amp;lt;table[^&amp;lt;&amp;gt;]*&amp;gt;%s*&amp;lt;/table&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function union(t1, t2)&lt;br /&gt;
    local vals = {}&lt;br /&gt;
    for k, v in pairs(t1) do&lt;br /&gt;
        vals[v] = true&lt;br /&gt;
    end&lt;br /&gt;
    for k, v in pairs(t2) do&lt;br /&gt;
        vals[v] = true&lt;br /&gt;
    end&lt;br /&gt;
    local ret = {}&lt;br /&gt;
    for k, v in pairs(vals) do&lt;br /&gt;
        table.insert(ret, k)&lt;br /&gt;
    end&lt;br /&gt;
    return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getArgNums(prefix)&lt;br /&gt;
    local nums = {}&lt;br /&gt;
    for k, v in pairs(args) do&lt;br /&gt;
        local num = tostring(k):match(&amp;#039;^&amp;#039; .. prefix .. &amp;#039;([1-9]%d*)$&amp;#039;)&lt;br /&gt;
        if num then table.insert(nums, tonumber(num)) end&lt;br /&gt;
    end&lt;br /&gt;
    table.sort(nums)&lt;br /&gt;
    return nums&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addRow(rowArgs)&lt;br /&gt;
    if rowArgs.header and rowArgs.header ~= &amp;#039;_BLANK_&amp;#039; then&lt;br /&gt;
        has_rows = true&lt;br /&gt;
        has_list_class({ rowArgs.rowclass, rowArgs.class, args[&amp;#039;tópico-classe&amp;#039;] })&lt;br /&gt;
       &lt;br /&gt;
        root&lt;br /&gt;
            :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
                :addClass(rowArgs.rowclass)&lt;br /&gt;
                :addClass(isUntitledChildBox(rowArgs.header) and &amp;#039;infobox-hiddenrow&amp;#039; or nil)&lt;br /&gt;
                :cssText(rowArgs.rowstyle)&lt;br /&gt;
                :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
                    :attr(&amp;#039;colspan&amp;#039;, &amp;#039;2&amp;#039;)&lt;br /&gt;
                    :addClass(&amp;#039;infobox-header&amp;#039;)&lt;br /&gt;
                    :addClass(rowArgs.class)&lt;br /&gt;
                    :addClass(args[&amp;#039;tópico-classe&amp;#039;])&lt;br /&gt;
                    :cssText(args[&amp;#039;tópico-estilo&amp;#039;])&lt;br /&gt;
                    :cssText(rowArgs.rowcellstyle)&lt;br /&gt;
                    :wikitext(fixChildBoxes(rowArgs.header, &amp;#039;th&amp;#039;))&lt;br /&gt;
        if rowArgs.data then&lt;br /&gt;
            root:wikitext(&lt;br /&gt;
                --&amp;#039;[[Category:Pages using infobox templates with ignored data cells]]&amp;#039;&lt;br /&gt;
            )&lt;br /&gt;
        end&lt;br /&gt;
    elseif rowArgs.data and rowArgs.data:gsub(category_in_empty_row_pattern, &amp;#039;&amp;#039;):match(&amp;#039;^%S&amp;#039;) then&lt;br /&gt;
        has_rows = true&lt;br /&gt;
        has_list_class({ rowArgs.rowclass, rowArgs.class })&lt;br /&gt;
       &lt;br /&gt;
        local row = root:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
        row:addClass(rowArgs.rowclass)&lt;br /&gt;
        row:cssText(rowArgs.rowstyle)&lt;br /&gt;
        if rowArgs.label then&lt;br /&gt;
            row&lt;br /&gt;
                :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
                    :attr(&amp;#039;scope&amp;#039;, &amp;#039;row&amp;#039;)&lt;br /&gt;
                    :addClass(&amp;#039;infobox-label&amp;#039;)&lt;br /&gt;
                    :cssText(args[&amp;#039;rótulo-estilo&amp;#039;])&lt;br /&gt;
                    :cssText(rowArgs.rowcellstyle)&lt;br /&gt;
                    :wikitext(rowArgs.label)&lt;br /&gt;
                    :done()&lt;br /&gt;
        else&lt;br /&gt;
            row:addClass(isUntitledChildBox(rowArgs.data) and &amp;#039;infobox-hiddenrow&amp;#039; or nil)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local dataCell = row:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
        dataCell&lt;br /&gt;
            :attr(&amp;#039;colspan&amp;#039;, not rowArgs.label and &amp;#039;2&amp;#039; or nil)&lt;br /&gt;
            :addClass(not rowArgs.label and &amp;#039;infobox-full-data&amp;#039; or &amp;#039;infobox-data&amp;#039;)&lt;br /&gt;
            :addClass(rowArgs.class)&lt;br /&gt;
            :cssText(rowArgs.datastyle)&lt;br /&gt;
            :cssText(rowArgs.rowcellstyle)&lt;br /&gt;
            :wikitext(fixChildBoxes(rowArgs.data, &amp;#039;td&amp;#039;))&lt;br /&gt;
    else&lt;br /&gt;
        table.insert(empty_row_categories, rowArgs.data or &amp;#039;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTitle()&lt;br /&gt;
    if not args[&amp;#039;cabeçalho&amp;#039;] then return end&lt;br /&gt;
&lt;br /&gt;
    has_rows = true&lt;br /&gt;
    has_list_class({args[&amp;#039;cabeçalho-classe&amp;#039;]})&lt;br /&gt;
    &lt;br /&gt;
    root&lt;br /&gt;
        :tag(&amp;#039;caption&amp;#039;)&lt;br /&gt;
            :addClass(&amp;#039;infobox-title&amp;#039;)&lt;br /&gt;
            :addClass(args[&amp;#039;cabeçalho-classe&amp;#039;])&lt;br /&gt;
            :cssText(args[&amp;#039;cabeçalho-estilo&amp;#039;])&lt;br /&gt;
            :wikitext(args[&amp;#039;cabeçalho&amp;#039;])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderAboveRow()&lt;br /&gt;
    if not args[&amp;#039;título&amp;#039;] then return end&lt;br /&gt;
&lt;br /&gt;
    has_rows = true&lt;br /&gt;
    has_list_class({ args[&amp;#039;título-classe&amp;#039;] })&lt;br /&gt;
&lt;br /&gt;
    local frame = mw.getCurrentFrame()&lt;br /&gt;
    local titleText = args[&amp;#039;título&amp;#039;] or args[&amp;#039;titulo&amp;#039;] or mw.title.getCurrentTitle().text&lt;br /&gt;
    local span = mw.html.create(&amp;#039;span&amp;#039;)&lt;br /&gt;
    if args[&amp;#039;hCard&amp;#039;] then&lt;br /&gt;
        span:addClass(args[&amp;#039;hCard&amp;#039;])&lt;br /&gt;
    end&lt;br /&gt;
    span:wikitext(titleText)&lt;br /&gt;
&lt;br /&gt;
    local content = tostring(span)&lt;br /&gt;
    if args[&amp;#039;pictograma&amp;#039;] then&lt;br /&gt;
        local pictogramArgs = {&lt;br /&gt;
            pictograma = args[&amp;#039;pictograma&amp;#039;],&lt;br /&gt;
            [&amp;#039;tamanho-pictograma&amp;#039;] = args[&amp;#039;tamanho-pictograma&amp;#039;] or &amp;#039;30px&amp;#039;,&lt;br /&gt;
            [&amp;#039;pictograma-ligação&amp;#039;] = args[&amp;#039;pictograma-ligação&amp;#039;],&lt;br /&gt;
            [&amp;#039;pictograma-legenda&amp;#039;] = args[&amp;#039;pictograma-legenda&amp;#039;],&lt;br /&gt;
            opacidade = args[&amp;#039;opacidade&amp;#039;],&lt;br /&gt;
            [&amp;#039;margem-superior&amp;#039;] = args[&amp;#039;margem-superior&amp;#039;]&lt;br /&gt;
        }&lt;br /&gt;
        content = content .. frame:expandTemplate{ title = &amp;#039;Info/topo/imagem&amp;#039;, args = pictogramArgs }&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local row = root:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
    row:addClass(isUntitledChildBox(args[&amp;#039;título&amp;#039;]) and &amp;#039;infobox-hiddenrow&amp;#039; or nil)&lt;br /&gt;
    local th = row:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
    th&lt;br /&gt;
        :attr(&amp;#039;colspan&amp;#039;, &amp;#039;2&amp;#039;)&lt;br /&gt;
        :addClass(&amp;#039;infobox-above&amp;#039;)&lt;br /&gt;
        :addClass(args[&amp;#039;título-classe&amp;#039;] or &amp;#039;infobox-above&amp;#039;)&lt;br /&gt;
        :cssText(args[&amp;#039;título-estilo&amp;#039;] or &amp;#039;&amp;#039;)&lt;br /&gt;
        :wikitext(content)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderBelowRow()&lt;br /&gt;
    if not args[&amp;#039;rodapé&amp;#039;] then return end&lt;br /&gt;
&lt;br /&gt;
    has_rows = true&lt;br /&gt;
    has_list_class({ args[&amp;#039;rodapé-classe&amp;#039;] })&lt;br /&gt;
    &lt;br /&gt;
    root&lt;br /&gt;
        :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            :addClass(isUntitledChildBox(args[&amp;#039;rodapé&amp;#039;]) and &amp;#039;infobox-hiddenrow&amp;#039; or nil)&lt;br /&gt;
            :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                :attr(&amp;#039;colspan&amp;#039;, &amp;#039;2&amp;#039;)&lt;br /&gt;
                :addClass(&amp;#039;infobox-below&amp;#039;)&lt;br /&gt;
                :addClass(args[&amp;#039;rodapé-classe&amp;#039;])&lt;br /&gt;
                :cssText(args[&amp;#039;rodapé-estilo&amp;#039;])&lt;br /&gt;
                :wikitext(fixChildBoxes(args[&amp;#039;rodapé&amp;#039;],&amp;#039;td&amp;#039;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addSubheaderRow(subheaderArgs)&lt;br /&gt;
    if subheaderArgs.data and&lt;br /&gt;
        subheaderArgs.data:gsub(category_in_empty_row_pattern, &amp;#039;&amp;#039;):match(&amp;#039;^%S&amp;#039;) then&lt;br /&gt;
        has_rows = true&lt;br /&gt;
        has_list_class({ subheaderArgs.rowclass, subheaderArgs.class })&lt;br /&gt;
       &lt;br /&gt;
        local row = root:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
        row:addClass(subheaderArgs.rowclass)&lt;br /&gt;
        row:addClass(isUntitledChildBox(subheaderArgs.data) and &amp;#039;infobox-hiddenrow&amp;#039; or nil)&lt;br /&gt;
&lt;br /&gt;
        local dataCell = row:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
        dataCell&lt;br /&gt;
            :attr(&amp;#039;colspan&amp;#039;, &amp;#039;2&amp;#039;)&lt;br /&gt;
            :addClass(&amp;#039;infobox-subheader&amp;#039;)&lt;br /&gt;
            :addClass(subheaderArgs.class)&lt;br /&gt;
            :cssText(subheaderArgs.datastyle)&lt;br /&gt;
            :cssText(subheaderArgs.rowcellstyle)&lt;br /&gt;
            :wikitext(fixChildBoxes(subheaderArgs.data, &amp;#039;td&amp;#039;))&lt;br /&gt;
    else&lt;br /&gt;
        table.insert(empty_row_categories, subheaderArgs.data or &amp;#039;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderSubheaders()&lt;br /&gt;
    if args[&amp;#039;subtítulo&amp;#039;] then&lt;br /&gt;
        args[&amp;#039;subtítulo1&amp;#039;] = args[&amp;#039;subtítulo&amp;#039;]&lt;br /&gt;
    end&lt;br /&gt;
    if args[&amp;#039;subtítulo-classe-linha&amp;#039;] then&lt;br /&gt;
        args[&amp;#039;subtítulo-classe-linha1&amp;#039;] = args[&amp;#039;subtítulo-classe-linha&amp;#039;]&lt;br /&gt;
    end&lt;br /&gt;
    local subheadernums = getArgNums(&amp;#039;subtítulo&amp;#039;)&lt;br /&gt;
    for k, num in ipairs(subheadernums) do&lt;br /&gt;
        addSubheaderRow({&lt;br /&gt;
            data = args[&amp;#039;subtítulo&amp;#039; .. tostring(num)],&lt;br /&gt;
            datastyle = args[&amp;#039;subtítulo-estilo&amp;#039;],&lt;br /&gt;
            rowcellstyle = args[&amp;#039;subtítulo-estilo&amp;#039; .. tostring(num)],&lt;br /&gt;
            class = args[&amp;#039;subtítulo-classe&amp;#039;],&lt;br /&gt;
            rowclass = args[&amp;#039;subtítulo-classe-linha&amp;#039; .. tostring(num)]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addImageRow(imageArgs)&lt;br /&gt;
    if imageArgs.data and&lt;br /&gt;
        imageArgs.data:gsub(category_in_empty_row_pattern, &amp;#039;&amp;#039;):match(&amp;#039;^%S&amp;#039;) then&lt;br /&gt;
        has_rows = true&lt;br /&gt;
        has_list_class({ imageArgs.rowclass, imageArgs.class })&lt;br /&gt;
       &lt;br /&gt;
        local row = root:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
        row:addClass(imageArgs.rowclass)&lt;br /&gt;
        row:addClass(isUntitledChildBox(imageArgs.data) and &amp;#039;infobox-hiddenrow&amp;#039; or nil)&lt;br /&gt;
&lt;br /&gt;
        local dataCell = row:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
        dataCell&lt;br /&gt;
            :attr(&amp;#039;colspan&amp;#039;, &amp;#039;2&amp;#039;)&lt;br /&gt;
            :addClass(&amp;#039;infobox-image&amp;#039;)&lt;br /&gt;
            :addClass(imageArgs.class)&lt;br /&gt;
            :cssText(imageArgs.datastyle)&lt;br /&gt;
            :wikitext(fixChildBoxes(imageArgs.data, &amp;#039;td&amp;#039;))&lt;br /&gt;
    else&lt;br /&gt;
        table.insert(empty_row_categories, imageArgs.data or &amp;#039;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderImages()&lt;br /&gt;
    if args[&amp;#039;imagem&amp;#039;] then&lt;br /&gt;
        args[&amp;#039;imagem1&amp;#039;] = args[&amp;#039;imagem&amp;#039;]&lt;br /&gt;
    end&lt;br /&gt;
    if args[&amp;#039;legenda&amp;#039;] then&lt;br /&gt;
        args[&amp;#039;legenda1&amp;#039;] = args[&amp;#039;legenda&amp;#039;]&lt;br /&gt;
    end&lt;br /&gt;
    local imagenums = getArgNums(&amp;#039;imagem&amp;#039;)&lt;br /&gt;
    for k, num in ipairs(imagenums) do&lt;br /&gt;
        local caption = args[&amp;#039;legenda&amp;#039; .. tostring(num)]&lt;br /&gt;
        local data = mw.html.create():wikitext(args[&amp;#039;imagem&amp;#039; .. tostring(num)])&lt;br /&gt;
        if caption then&lt;br /&gt;
            data&lt;br /&gt;
                :tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                    :addClass(&amp;#039;infobox-caption&amp;#039;)&lt;br /&gt;
                    :cssText(args[&amp;#039;legenda-estilo&amp;#039;])&lt;br /&gt;
                    :wikitext(caption)&lt;br /&gt;
        end&lt;br /&gt;
        addImageRow({&lt;br /&gt;
            data = tostring(data),&lt;br /&gt;
            datastyle = args[&amp;#039;imagem-estilo&amp;#039;],&lt;br /&gt;
            class = args[&amp;#039;imagem-classe&amp;#039;],&lt;br /&gt;
            rowclass = args[&amp;#039;imagem-classe-linha&amp;#039; .. tostring(num)]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function preprocessRows()&lt;br /&gt;
    if not args.autoheaders then return end&lt;br /&gt;
    &lt;br /&gt;
    local rownums = union(getArgNums(&amp;#039;tópico&amp;#039;), getArgNums(&amp;#039;dados&amp;#039;))&lt;br /&gt;
    table.sort(rownums)&lt;br /&gt;
    local lastheader&lt;br /&gt;
    for k, num in ipairs(rownums) do&lt;br /&gt;
        if args[&amp;#039;tópico&amp;#039; .. tostring(num)] then&lt;br /&gt;
            if lastheader then&lt;br /&gt;
                args[&amp;#039;tópico&amp;#039; .. tostring(lastheader)] = nil&lt;br /&gt;
            end&lt;br /&gt;
            lastheader = num&lt;br /&gt;
        elseif args[&amp;#039;dados&amp;#039; .. tostring(num)] and&lt;br /&gt;
            args[&amp;#039;dados&amp;#039; .. tostring(num)]:gsub(&lt;br /&gt;
                category_in_empty_row_pattern, &amp;#039;&amp;#039;&lt;br /&gt;
            ):match(&amp;#039;^%S&amp;#039;) then&lt;br /&gt;
            local data = args[&amp;#039;dados&amp;#039; .. tostring(num)]&lt;br /&gt;
            if data:gsub(category_in_empty_row_pattern, &amp;#039;&amp;#039;):match(&amp;#039;%S&amp;#039;) then&lt;br /&gt;
                lastheader = nil&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    if lastheader then&lt;br /&gt;
        args[&amp;#039;tópico&amp;#039; .. tostring(lastheader)] = nil&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderRows()&lt;br /&gt;
    local rownums = union(getArgNums(&amp;#039;tópico&amp;#039;), getArgNums(&amp;#039;dados&amp;#039;))&lt;br /&gt;
    table.sort(rownums)&lt;br /&gt;
    for k, num in ipairs(rownums) do&lt;br /&gt;
        addRow({&lt;br /&gt;
            header = args[&amp;#039;tópico&amp;#039; .. tostring(num)],&lt;br /&gt;
            label = args[&amp;#039;rótulo&amp;#039; .. tostring(num)],&lt;br /&gt;
            data = args[&amp;#039;dados&amp;#039; .. tostring(num)],&lt;br /&gt;
            datastyle = args[&amp;#039;dados-estilo&amp;#039;],&lt;br /&gt;
            class = args[&amp;#039;class&amp;#039; .. tostring(num)],&lt;br /&gt;
            rowclass = args[&amp;#039;classe-linha&amp;#039; .. tostring(num)],&lt;br /&gt;
            rowstyle = args[&amp;#039;rowstyle&amp;#039; .. tostring(num)] or args[&amp;#039;linha-estilo&amp;#039; .. tostring(num)],&lt;br /&gt;
            rowcellstyle = args[&amp;#039;rowcellstyle&amp;#039; .. tostring(num)]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderNavBar()&lt;br /&gt;
    if not args[&amp;#039;nome&amp;#039;] then return end&lt;br /&gt;
&lt;br /&gt;
    has_rows = true&lt;br /&gt;
    root&lt;br /&gt;
        :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                :attr(&amp;#039;colspan&amp;#039;, &amp;#039;2&amp;#039;)&lt;br /&gt;
                :addClass(&amp;#039;infobox-navbar&amp;#039;)&lt;br /&gt;
                :wikitext(require(&amp;#039;Módulo:Navbar&amp;#039;)._navbar{&lt;br /&gt;
                    args[&amp;#039;nome&amp;#039;],&lt;br /&gt;
                    mini = 1,&lt;br /&gt;
                })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderItalicTitle()&lt;br /&gt;
    local italicTitle = args[&amp;#039;título em itálico&amp;#039;] and mw.ustring.lower(args[&amp;#039;título em itálico&amp;#039;])&lt;br /&gt;
    if italicTitle == &amp;#039;&amp;#039; or italicTitle == &amp;#039;forçar&amp;#039; or italicTitle == &amp;#039;sim&amp;#039; then&lt;br /&gt;
        root:wikitext(require(&amp;#039;Módulo:Título em itálico&amp;#039;)._main({}))&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderEmptyRowCategories()&lt;br /&gt;
    for _, s in ipairs(empty_row_categories) do&lt;br /&gt;
        root:wikitext(s)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTrackingCategories()&lt;br /&gt;
    if args.decat == &amp;#039;yes&amp;#039; or args.decat == &amp;#039;sim&amp;#039; then return end&lt;br /&gt;
    if args.child == &amp;#039;yes&amp;#039; or args.child == &amp;#039;sim&amp;#039; then&lt;br /&gt;
        if args[&amp;#039;cabeçalho&amp;#039;] then&lt;br /&gt;
            root:wikitext(&lt;br /&gt;
                --&amp;#039;[[Category:Pages using embedded infobox templates with the title parameter]]&amp;#039;&lt;br /&gt;
            )&lt;br /&gt;
        end&lt;br /&gt;
    elseif #(getArgNums(&amp;#039;dados&amp;#039;)) == 0 and mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
        --root:wikitext(&amp;#039;[[Category:Articles using infobox templates with no data rows]]&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function loadTemplateStyles()&lt;br /&gt;
    local frame = mw.getCurrentFrame()&lt;br /&gt;
    &lt;br /&gt;
    local hlist_templatestyles = &amp;#039;&amp;#039;&lt;br /&gt;
    if lists.hlist_t.found then&lt;br /&gt;
        hlist_templatestyles = frame:extensionTag{&lt;br /&gt;
            name = &amp;#039;templatestyles&amp;#039;, args = { src = lists.hlist_t.styles }&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local plainlist_templatestyles = &amp;#039;&amp;#039;&lt;br /&gt;
    if lists.plainlist_t.found then&lt;br /&gt;
        plainlist_templatestyles = frame:extensionTag{&lt;br /&gt;
            name = &amp;#039;templatestyles&amp;#039;, args = { src = lists.plainlist_t.styles }&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local base_templatestyles = frame:extensionTag{&lt;br /&gt;
        name = &amp;#039;templatestyles&amp;#039;, args = { src = &amp;#039;Módulo:Infocaixa/estilos.css&amp;#039; }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    local templatestyles = &amp;#039;&amp;#039;&lt;br /&gt;
    if args[&amp;#039;templatestyles&amp;#039;] then&lt;br /&gt;
        templatestyles = frame:extensionTag{&lt;br /&gt;
            name = &amp;#039;templatestyles&amp;#039;, args = { src = args[&amp;#039;templatestyles&amp;#039;] }&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local child_templatestyles = &amp;#039;&amp;#039;&lt;br /&gt;
    if args[&amp;#039;child templatestyles&amp;#039;] then&lt;br /&gt;
        child_templatestyles = frame:extensionTag{&lt;br /&gt;
            name = &amp;#039;templatestyles&amp;#039;, args = { src = args[&amp;#039;child templatestyles&amp;#039;] }&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local grandchild_templatestyles = &amp;#039;&amp;#039;&lt;br /&gt;
    if args[&amp;#039;grandchild templatestyles&amp;#039;] then&lt;br /&gt;
        grandchild_templatestyles = frame:extensionTag{&lt;br /&gt;
            name = &amp;#039;templatestyles&amp;#039;, args = { src = args[&amp;#039;grandchild templatestyles&amp;#039;] }&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return table.concat({&lt;br /&gt;
        hlist_templatestyles,&lt;br /&gt;
        plainlist_templatestyles,&lt;br /&gt;
        base_templatestyles,&lt;br /&gt;
        templatestyles,&lt;br /&gt;
        child_templatestyles,&lt;br /&gt;
        grandchild_templatestyles&lt;br /&gt;
    })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function structure_infobox_common()&lt;br /&gt;
    renderSubheaders()&lt;br /&gt;
    renderImages()&lt;br /&gt;
    preprocessRows()&lt;br /&gt;
    renderRows()&lt;br /&gt;
    renderBelowRow()&lt;br /&gt;
    renderNavBar()&lt;br /&gt;
    renderItalicTitle()&lt;br /&gt;
    renderEmptyRowCategories()&lt;br /&gt;
    renderTrackingCategories()&lt;br /&gt;
    cleanInfobox()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function _infobox()&lt;br /&gt;
    local child = args.child and mw.ustring.lower(args.child) or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    if child ~= &amp;#039;yes&amp;#039; and child ~= &amp;#039;sim&amp;#039; then&lt;br /&gt;
        root = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
        root&lt;br /&gt;
            :addClass(args.subbox == &amp;#039;yes&amp;#039; and &amp;#039;infobox-subbox&amp;#039; or &amp;#039;infobox&amp;#039;)&lt;br /&gt;
            :addClass(args[&amp;#039;classe&amp;#039;])&lt;br /&gt;
            :cssText(args[&amp;#039;estilo&amp;#039;])&lt;br /&gt;
       &lt;br /&gt;
        has_list_class({ args[&amp;#039;classe&amp;#039;] })&lt;br /&gt;
&lt;br /&gt;
        renderTitle()&lt;br /&gt;
        renderAboveRow()&lt;br /&gt;
    else&lt;br /&gt;
        root = mw.html.create()&lt;br /&gt;
&lt;br /&gt;
        root&lt;br /&gt;
            :wikitext(args[&amp;#039;cabeçalho&amp;#039;])&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    structure_infobox_common()&lt;br /&gt;
    &lt;br /&gt;
    return loadTemplateStyles() .. root&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function preprocessSingleArg(argName)&lt;br /&gt;
    if origArgs[argName] and origArgs[argName] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        args[argName] = origArgs[argName]&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function preprocessArgs(prefixTable, step)&lt;br /&gt;
    if type(prefixTable) ~= &amp;#039;table&amp;#039; then&lt;br /&gt;
        error(&amp;quot;Non-table value detected for the prefix table&amp;quot;, 2)&lt;br /&gt;
    end&lt;br /&gt;
    if type(step) ~= &amp;#039;number&amp;#039; then&lt;br /&gt;
        error(&amp;quot;Invalid step value detected&amp;quot;, 2)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for i,v in ipairs(prefixTable) do&lt;br /&gt;
        if type(v) ~= &amp;#039;table&amp;#039; or type(v.prefix) ~= &amp;quot;string&amp;quot; or&lt;br /&gt;
            (v.depend and type(v.depend) ~= &amp;#039;table&amp;#039;) then&lt;br /&gt;
            error(&amp;#039;Invalid input detected to preprocessArgs prefix table&amp;#039;, 2)&lt;br /&gt;
        end&lt;br /&gt;
        preprocessSingleArg(v.prefix)&lt;br /&gt;
        if args[v.prefix] and v.depend then&lt;br /&gt;
            for j, dependValue in ipairs(v.depend) do&lt;br /&gt;
                if type(dependValue) ~= &amp;#039;string&amp;#039; then&lt;br /&gt;
                    error(&amp;#039;Invalid &amp;quot;depend&amp;quot; parameter value detected in preprocessArgs&amp;#039;)&lt;br /&gt;
                end&lt;br /&gt;
                preprocessSingleArg(dependValue)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local a = 1&lt;br /&gt;
    local moreArgumentsExist = true&lt;br /&gt;
    while moreArgumentsExist == true do&lt;br /&gt;
        moreArgumentsExist = false&lt;br /&gt;
        for i = a, a + step - 1 do&lt;br /&gt;
            for j,v in ipairs(prefixTable) do&lt;br /&gt;
                local prefixArgName = v.prefix .. tostring(i)&lt;br /&gt;
                if origArgs[prefixArgName] then&lt;br /&gt;
                    moreArgumentsExist = true&lt;br /&gt;
                    preprocessSingleArg(prefixArgName)&lt;br /&gt;
                end&lt;br /&gt;
                if v.depend and (args[prefixArgName] or (i == 1 and args[v.prefix])) then&lt;br /&gt;
                    for j,dependValue in ipairs(v.depend) do&lt;br /&gt;
                        local dependArgName = dependValue .. tostring(i)&lt;br /&gt;
                        preprocessSingleArg(dependArgName)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        a = a + step&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function parseDataParameters()&lt;br /&gt;
    preprocessSingleArg(&amp;#039;autoheaders&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;child&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;classe&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;subbox&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;estilo&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;cabeçalho&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;cabeçalho-classe&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;cabeçalho-estilo&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;título&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;titulo&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;título-classe&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;título-estilo&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;pictograma&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;tamanho-pictograma&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;pictograma-ligação&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;pictograma-legenda&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;opacidade&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;margem-superior&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;hCard&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;incorporar&amp;#039;)&lt;br /&gt;
    preprocessArgs({&lt;br /&gt;
        {prefix = &amp;#039;subtítulo&amp;#039;, depend = {&amp;#039;subtítulo-estilo&amp;#039;, &amp;#039;subtítulo-classe-linha&amp;#039;}}&lt;br /&gt;
    }, 10)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;subtítulo-estilo&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;subtítulo-classe&amp;#039;)&lt;br /&gt;
    preprocessArgs({&lt;br /&gt;
        {prefix = &amp;#039;imagem&amp;#039;, depend = {&amp;#039;legenda&amp;#039;, &amp;#039;imagem-classe-linha&amp;#039;}}&lt;br /&gt;
    }, 10)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;legenda-estilo&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;imagem-estilo&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;imagem-classe&amp;#039;)&lt;br /&gt;
    preprocessArgs({&lt;br /&gt;
        {prefix = &amp;#039;tópico&amp;#039;},&lt;br /&gt;
        {prefix = &amp;#039;dados&amp;#039;, depend = {&amp;#039;rótulo&amp;#039;}},&lt;br /&gt;
        {prefix = &amp;#039;classe-linha&amp;#039;},&lt;br /&gt;
        {prefix = &amp;#039;rowstyle&amp;#039;},&lt;br /&gt;
	    {prefix = &amp;#039;linha-estilo&amp;#039;},&lt;br /&gt;
        {prefix = &amp;#039;rowcellstyle&amp;#039;},&lt;br /&gt;
        {prefix = &amp;#039;class&amp;#039;}&lt;br /&gt;
    }, 50)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;tópico-classe&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;tópico-estilo&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;rótulo-estilo&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;dados-estilo&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;rodapé&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;rodapé-classe&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;rodapé-estilo&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;nome&amp;#039;)&lt;br /&gt;
    args[&amp;#039;título em itálico&amp;#039;] = origArgs[&amp;#039;título em itálico&amp;#039;]&lt;br /&gt;
    preprocessSingleArg(&amp;#039;decat&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;templatestyles&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;child templatestyles&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;grandchild templatestyles&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.infobox(frame)&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        origArgs = frame:getParent().args&lt;br /&gt;
    else&lt;br /&gt;
        origArgs = frame&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    parseDataParameters()&lt;br /&gt;
    &lt;br /&gt;
    return _infobox()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.infoboxTemplate(frame)&lt;br /&gt;
    origArgs = {}&lt;br /&gt;
    for k,v in pairs(frame.args) do origArgs[k] = mw.text.trim(v) end&lt;br /&gt;
    &lt;br /&gt;
    parseDataParameters()&lt;br /&gt;
    &lt;br /&gt;
    return _infobox()&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Tavoraadmin</name></author>
	</entry>
</feed>