<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.iraspa.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfobox</id>
	<title>Module:Infobox - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.iraspa.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfobox"/>
	<link rel="alternate" type="text/html" href="https://wiki.iraspa.org/index.php?title=Module:Infobox&amp;action=history"/>
	<updated>2026-04-23T17:19:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.iraspa.org/index.php?title=Module:Infobox&amp;diff=184&amp;oldid=prev</id>
		<title>Administrator: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.iraspa.org/index.php?title=Module:Infobox&amp;diff=184&amp;oldid=prev"/>
		<updated>2018-07-18T13:04:47Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 13:04, 18 July 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&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>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.iraspa.org/index.php?title=Module:Infobox&amp;diff=64&amp;oldid=prev</id>
		<title>Administrator: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.iraspa.org/index.php?title=Module:Infobox&amp;diff=64&amp;oldid=prev"/>
		<updated>2018-07-18T12:50:12Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:50, 18 July 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&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>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.iraspa.org/index.php?title=Module:Infobox&amp;diff=63&amp;oldid=prev</id>
		<title>wikipedia&gt;Jc86035: the three other types of lists as well</title>
		<link rel="alternate" type="text/html" href="https://wiki.iraspa.org/index.php?title=Module:Infobox&amp;diff=63&amp;oldid=prev"/>
		<updated>2018-07-07T07:04:41Z</updated>

		<summary type="html">&lt;p&gt;the three other types of lists as well&lt;/p&gt;
&lt;a href=&quot;https://wiki.iraspa.org/index.php?title=Module:Infobox&amp;amp;diff=63&amp;amp;oldid=183&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>wikipedia&gt;Jc86035</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.iraspa.org/index.php?title=Module:Infobox&amp;diff=183&amp;oldid=prev</id>
		<title>wikipedia&gt;Jackmcbarn: from sandbox, remove now-unnecessary argument parsing complexity, and some other fixes</title>
		<link rel="alternate" type="text/html" href="https://wiki.iraspa.org/index.php?title=Module:Infobox&amp;diff=183&amp;oldid=prev"/>
		<updated>2015-05-25T17:32:56Z</updated>

		<summary type="html">&lt;p&gt;from sandbox, remove now-unnecessary argument parsing complexity, and some other fixes&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--&lt;br /&gt;
-- This module implements {{Infobox}}&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function union(t1, t2)&lt;br /&gt;
    -- Returns the union of the values of two tables, as a sequence.&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(args, prefix)&lt;br /&gt;
    -- Returns a table containing the numbers of the arguments that exist&lt;br /&gt;
    -- for the specified prefix. For example, if the prefix was &amp;#039;data&amp;#039;, and&lt;br /&gt;
    -- &amp;#039;data1&amp;#039;, &amp;#039;data2&amp;#039;, and &amp;#039;data5&amp;#039; exist, it would return {1, 2, 5}.&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(root, args, rowArgs)&lt;br /&gt;
    -- Adds a row to the infobox, with either a header cell&lt;br /&gt;
    -- or a label/data cell combination.&lt;br /&gt;
    if rowArgs.header then&lt;br /&gt;
        root&lt;br /&gt;
            :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
                :addClass(rowArgs.rowclass)&lt;br /&gt;
                :cssText(rowArgs.rowstyle)&lt;br /&gt;
                :attr(&amp;#039;id&amp;#039;, rowArgs.rowid)&lt;br /&gt;
                :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
                    :attr(&amp;#039;colspan&amp;#039;, 2)&lt;br /&gt;
                    :attr(&amp;#039;id&amp;#039;, rowArgs.headerid)&lt;br /&gt;
                    :addClass(rowArgs.class)&lt;br /&gt;
                    :addClass(args.headerclass)&lt;br /&gt;
                    :css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                    :cssText(args.headerstyle)&lt;br /&gt;
                    :wikitext(rowArgs.header)&lt;br /&gt;
    elseif rowArgs.data then&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;
        row:attr(&amp;#039;id&amp;#039;, rowArgs.rowid)&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;
                    :attr(&amp;#039;id&amp;#039;, rowArgs.labelid)&lt;br /&gt;
                    :css(&amp;#039;text-align&amp;#039;, &amp;#039;left&amp;#039;)&lt;br /&gt;
                    :cssText(args.labelstyle)&lt;br /&gt;
                    :wikitext(rowArgs.label)&lt;br /&gt;
                    :done()&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local dataCell = row:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
        if not rowArgs.label then&lt;br /&gt;
            dataCell&lt;br /&gt;
                :attr(&amp;#039;colspan&amp;#039;, 2)&lt;br /&gt;
                :css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
        dataCell&lt;br /&gt;
            :attr(&amp;#039;id&amp;#039;, rowArgs.dataid)&lt;br /&gt;
            :addClass(rowArgs.class)&lt;br /&gt;
            :cssText(rowArgs.datastyle)&lt;br /&gt;
            :newline()&lt;br /&gt;
            :wikitext(rowArgs.data)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTitle(root, args)&lt;br /&gt;
    if not args.title then return end&lt;br /&gt;
&lt;br /&gt;
    root&lt;br /&gt;
        :tag(&amp;#039;caption&amp;#039;)&lt;br /&gt;
            :addClass(args.titleclass)&lt;br /&gt;
            :cssText(args.titlestyle)&lt;br /&gt;
            :wikitext(args.title)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderAboveRow(root, args)&lt;br /&gt;
    if not args.above then return end&lt;br /&gt;
&lt;br /&gt;
    root&lt;br /&gt;
        :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
                :attr(&amp;#039;colspan&amp;#039;, 2)&lt;br /&gt;
                :addClass(args.aboveclass)&lt;br /&gt;
                :css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                :css(&amp;#039;font-size&amp;#039;, &amp;#039;125%&amp;#039;)&lt;br /&gt;
                :css(&amp;#039;font-weight&amp;#039;, &amp;#039;bold&amp;#039;)&lt;br /&gt;
                :cssText(args.abovestyle)&lt;br /&gt;
                :wikitext(args.above)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderBelowRow(root, args)&lt;br /&gt;
    if not args.below then return end&lt;br /&gt;
&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(args.belowclass)&lt;br /&gt;
                :css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                :cssText(args.belowstyle)&lt;br /&gt;
                :newline()&lt;br /&gt;
                :wikitext(args.below)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderSubheaders(root, args)&lt;br /&gt;
    if args.subheader then&lt;br /&gt;
        args.subheader1 = args.subheader&lt;br /&gt;
    end&lt;br /&gt;
    if args.subheaderrowclass then&lt;br /&gt;
        args.subheaderrowclass1 = args.subheaderrowclass&lt;br /&gt;
    end&lt;br /&gt;
    local subheadernums = getArgNums(args, &amp;#039;subheader&amp;#039;)&lt;br /&gt;
    for k, num in ipairs(subheadernums) do&lt;br /&gt;
        addRow(root, args, {&lt;br /&gt;
            data = args[&amp;#039;subheader&amp;#039; .. tostring(num)],&lt;br /&gt;
            datastyle = args.subheaderstyle or args[&amp;#039;subheaderstyle&amp;#039; .. tostring(num)],&lt;br /&gt;
            class = args.subheaderclass,&lt;br /&gt;
            rowclass = args[&amp;#039;subheaderrowclass&amp;#039; .. tostring(num)]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderImages(root, args)&lt;br /&gt;
    if args.image then&lt;br /&gt;
        args.image1 = args.image&lt;br /&gt;
    end&lt;br /&gt;
    if args.caption then&lt;br /&gt;
        args.caption1 = args.caption&lt;br /&gt;
    end&lt;br /&gt;
    local imagenums = getArgNums(args, &amp;#039;image&amp;#039;)&lt;br /&gt;
    for k, num in ipairs(imagenums) do&lt;br /&gt;
        local caption = args[&amp;#039;caption&amp;#039; .. tostring(num)]&lt;br /&gt;
        local data = mw.html.create():wikitext(args[&amp;#039;image&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;
                    :cssText(args.captionstyle)&lt;br /&gt;
                    :wikitext(caption)&lt;br /&gt;
        end&lt;br /&gt;
        addRow(root, args, {&lt;br /&gt;
            data = tostring(data),&lt;br /&gt;
            datastyle = args.imagestyle,&lt;br /&gt;
            class = args.imageclass,&lt;br /&gt;
            rowclass = args[&amp;#039;imagerowclass&amp;#039; .. tostring(num)]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderRows(root, args)&lt;br /&gt;
    -- Gets the union of the header and data argument numbers,&lt;br /&gt;
    -- and renders them all in order using addRow.&lt;br /&gt;
    local rownums = union(getArgNums(args, &amp;#039;header&amp;#039;), getArgNums(args, &amp;#039;data&amp;#039;))&lt;br /&gt;
    table.sort(rownums)&lt;br /&gt;
    for k, num in ipairs(rownums) do&lt;br /&gt;
        addRow(root, args, {&lt;br /&gt;
            header = args[&amp;#039;header&amp;#039; .. tostring(num)],&lt;br /&gt;
            label = args[&amp;#039;label&amp;#039; .. tostring(num)],&lt;br /&gt;
            data = args[&amp;#039;data&amp;#039; .. tostring(num)],&lt;br /&gt;
            datastyle = args.datastyle,&lt;br /&gt;
            class = args[&amp;#039;class&amp;#039; .. tostring(num)],&lt;br /&gt;
            rowclass = args[&amp;#039;rowclass&amp;#039; .. tostring(num)],&lt;br /&gt;
            rowstyle = args[&amp;#039;rowstyle&amp;#039; .. tostring(num)],&lt;br /&gt;
            dataid = args[&amp;#039;dataid&amp;#039; .. tostring(num)],&lt;br /&gt;
            labelid = args[&amp;#039;labelid&amp;#039; .. tostring(num)],&lt;br /&gt;
            headerid = args[&amp;#039;headerid&amp;#039; .. tostring(num)],&lt;br /&gt;
            rowid = args[&amp;#039;rowid&amp;#039; .. tostring(num)]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderNavBar(root, args)&lt;br /&gt;
    if not args.name then return end&lt;br /&gt;
&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;
                :css(&amp;#039;text-align&amp;#039;, &amp;#039;right&amp;#039;)&lt;br /&gt;
                :wikitext(require(&amp;#039;Module:Navbar&amp;#039;)._navbar{&lt;br /&gt;
                    args.name,&lt;br /&gt;
                    mini = 1,&lt;br /&gt;
                })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderItalicTitle(root, args)&lt;br /&gt;
    local italicTitle = args[&amp;#039;italic title&amp;#039;] and mw.ustring.lower(args[&amp;#039;italic title&amp;#039;])&lt;br /&gt;
    if italicTitle == &amp;#039;&amp;#039; or italicTitle == &amp;#039;force&amp;#039; or italicTitle == &amp;#039;yes&amp;#039; then&lt;br /&gt;
        root:wikitext(mw.getCurrentFrame():expandTemplate({title = &amp;#039;italic title&amp;#039;}))&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTrackingCategories(root, args)&lt;br /&gt;
    if args.decat ~= &amp;#039;yes&amp;#039; then&lt;br /&gt;
        if #(getArgNums(args, &amp;#039;data&amp;#039;)) == 0 and mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
            root:wikitext(&amp;#039;[[Category:Articles which use infobox templates with no data rows]]&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
        if args.child == &amp;#039;yes&amp;#039; and args.title then&lt;br /&gt;
            root:wikitext(&amp;#039;[[Category:Pages which use embedded infobox templates with the title parameter]]&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.infobox(frame)&lt;br /&gt;
    local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, { wrappers = &amp;#039;Template:Infobox&amp;#039;, valueFunc = function(k, v)&lt;br /&gt;
    	if v ~= &amp;#039;&amp;#039; or k == &amp;#039;italic title&amp;#039; then&lt;br /&gt;
    		return v&lt;br /&gt;
    	end&lt;br /&gt;
    end })&lt;br /&gt;
&lt;br /&gt;
    -- Specify the overall layout of the infobox, with special settings&lt;br /&gt;
    -- if the infobox is used as a &amp;#039;child&amp;#039; inside another infobox.&lt;br /&gt;
    local root&lt;br /&gt;
    if args.child ~= &amp;#039;yes&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(&amp;#039;infobox&amp;#039;)&lt;br /&gt;
            :addClass(args.bodyclass)&lt;br /&gt;
&lt;br /&gt;
            if args.subbox == &amp;#039;yes&amp;#039; then&lt;br /&gt;
                root&lt;br /&gt;
                    :css(&amp;#039;padding&amp;#039;, &amp;#039;0&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;border&amp;#039;, &amp;#039;none&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;margin&amp;#039;, &amp;#039;-3px&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;width&amp;#039;, &amp;#039;auto&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;min-width&amp;#039;, &amp;#039;100%&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;font-size&amp;#039;, &amp;#039;100%&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;clear&amp;#039;, &amp;#039;none&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;float&amp;#039;, &amp;#039;none&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;background-color&amp;#039;, &amp;#039;transparent&amp;#039;)&lt;br /&gt;
            else&lt;br /&gt;
                root&lt;br /&gt;
                    :css(&amp;#039;width&amp;#039;, &amp;#039;22em&amp;#039;)&lt;br /&gt;
            end&lt;br /&gt;
        root&lt;br /&gt;
            :cssText(args.bodystyle)&lt;br /&gt;
&lt;br /&gt;
        renderTitle(root, args)&lt;br /&gt;
        renderAboveRow(root, args)&lt;br /&gt;
    else&lt;br /&gt;
        root = mw.html.create()&lt;br /&gt;
&lt;br /&gt;
        root&lt;br /&gt;
            :wikitext(args.title)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    renderSubheaders(root, args)&lt;br /&gt;
    renderImages(root, args)&lt;br /&gt;
    renderRows(root, args)&lt;br /&gt;
    renderBelowRow(root, args)&lt;br /&gt;
    renderNavBar(root, args)&lt;br /&gt;
    renderItalicTitle(root, args)&lt;br /&gt;
    renderTrackingCategories(root, args)&lt;br /&gt;
&lt;br /&gt;
    return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wikipedia&gt;Jackmcbarn</name></author>
		
	</entry>
</feed>