<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://v2wiki.ragol.org/index.php?action=history&amp;feed=atom&amp;title=Module%3ANavbox</id>
	<title>Module:Navbox - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://v2wiki.ragol.org/index.php?action=history&amp;feed=atom&amp;title=Module%3ANavbox"/>
	<link rel="alternate" type="text/html" href="https://v2wiki.ragol.org/index.php?title=Module:Navbox&amp;action=history"/>
	<updated>2026-04-15T21:02:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://v2wiki.ragol.org/index.php?title=Module:Navbox&amp;diff=174&amp;oldid=prev</id>
		<title>Matt at 18:11, 19 March 2024</title>
		<link rel="alternate" type="text/html" href="https://v2wiki.ragol.org/index.php?title=Module:Navbox&amp;diff=174&amp;oldid=prev"/>
		<updated>2024-03-19T18:11:32Z</updated>

		<summary type="html">&lt;p&gt;&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&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 18:11, 19 March 2024&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-l31&quot;&gt;Line 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&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;		:addClass( yesno(args.subgroup, false) and &amp;#039;navbox-subgroup&amp;#039; or &amp;#039;navbox&amp;#039; )&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;		:addClass( yesno(args.subgroup, false) and &amp;#039;navbox-subgroup&amp;#039; or &amp;#039;navbox&amp;#039; )&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;		:addClass( &amp;#039;nowraplinks&amp;#039; )&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;		:addClass( &amp;#039;nowraplinks&amp;#039; )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		:addClass( &#039;citizen-table-nowrap&#039;)&lt;/ins&gt;&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;&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 not yesno(args.subgroup, false) and&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 not yesno(args.subgroup, false) and&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://v2wiki.ragol.org/index.php?title=Module:Navbox&amp;diff=83&amp;oldid=prev</id>
		<title>Matt: Created page with &quot;-- &lt;nowiki&gt; -- -- Implements {{navbox}} --  local p = {} local tnavbar = require( &#039;Module:Tnavbar&#039; ) local yesno = require( &#039;Module:Yesno&#039; ) local page_title = mw.title.getCurrentTitle().fullText -- -- Helper for inserting a new row into the navbox -- -- @param tbl {mw.html table} -- @return tbl {mw.html table} -- local function insertRow( tbl ) 	return tbl:tag( &#039;tr&#039; ) end  -- -- Creates the navbox table -- -- @param args {table} -- @return tbl {mw.html table} -- local f...&quot;</title>
		<link rel="alternate" type="text/html" href="https://v2wiki.ragol.org/index.php?title=Module:Navbox&amp;diff=83&amp;oldid=prev"/>
		<updated>2024-03-18T15:29:42Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-- &amp;lt;nowiki&amp;gt; -- -- Implements {{navbox}} --  local p = {} local tnavbar = require( &amp;#039;Module:Tnavbar&amp;#039; ) local yesno = require( &amp;#039;Module:Yesno&amp;#039; ) local page_title = mw.title.getCurrentTitle().fullText -- -- Helper for inserting a new row into the navbox -- -- @param tbl {mw.html table} -- @return tbl {mw.html table} -- local function insertRow( tbl ) 	return tbl:tag( &amp;#039;tr&amp;#039; ) end  -- -- Creates the navbox table -- -- @param args {table} -- @return tbl {mw.html table} -- local f...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- &amp;lt;nowiki&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
-- Implements {{navbox}}&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local tnavbar = require( &amp;#039;Module:Tnavbar&amp;#039; )&lt;br /&gt;
local yesno = require( &amp;#039;Module:Yesno&amp;#039; )&lt;br /&gt;
local page_title = mw.title.getCurrentTitle().fullText&lt;br /&gt;
--&lt;br /&gt;
-- Helper for inserting a new row into the navbox&lt;br /&gt;
--&lt;br /&gt;
-- @param tbl {mw.html table}&lt;br /&gt;
-- @return tbl {mw.html table}&lt;br /&gt;
--&lt;br /&gt;
local function insertRow( tbl )&lt;br /&gt;
	return tbl:tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Creates the navbox table&lt;br /&gt;
--&lt;br /&gt;
-- @param args {table}&lt;br /&gt;
-- @return tbl {mw.html table}&lt;br /&gt;
--&lt;br /&gt;
local function createTbl( args )&lt;br /&gt;
&lt;br /&gt;
	local tbl = mw.html.create( &amp;#039;table&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
	tbl&lt;br /&gt;
		:addClass( yesno(args.subgroup, false) and &amp;#039;navbox-subgroup&amp;#039; or &amp;#039;navbox&amp;#039; )&lt;br /&gt;
		:addClass( &amp;#039;nowraplinks&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
	if not yesno(args.subgroup, false) and&lt;br /&gt;
		( args.state == &amp;#039;collapsed&amp;#039; or&lt;br /&gt;
		  args.state == &amp;#039;uncollapsed&amp;#039; or&lt;br /&gt;
		  args.state == &amp;#039;autocollapse&amp;#039; or&lt;br /&gt;
		  -- defaults to autocollapse&lt;br /&gt;
		  args.state == nil )&lt;br /&gt;
	then&lt;br /&gt;
		tbl:addClass( &amp;#039;mw-collapsible&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
		if args.state == &amp;#039;collapsed&amp;#039; then&lt;br /&gt;
			tbl:addClass( &amp;#039;mw-collapsed&amp;#039; )&lt;br /&gt;
		elseif args.state == &amp;#039;uncollapsed&amp;#039; then&lt;br /&gt;
			tbl:addClass(&amp;#039;navbox-uncollapsed&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if yesno(args.collapsible, false) then&lt;br /&gt;
		tbl:addClass( &amp;#039;navbox-collapsible&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.style then&lt;br /&gt;
		tbl:cssText( args.style )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- manually set collapse/expand messages&lt;br /&gt;
	-- bug causing the default database messages to be used&lt;br /&gt;
	tbl&lt;br /&gt;
		:attr( {&lt;br /&gt;
			[&amp;#039;data-expandtext&amp;#039;] = &amp;#039;show&amp;#039;,&lt;br /&gt;
			[&amp;#039;data-collapsetext&amp;#039;] = &amp;#039;hide&amp;#039;,&lt;br /&gt;
			[&amp;#039;data-navbox-name&amp;#039;] = args.name&lt;br /&gt;
		} )&lt;br /&gt;
&lt;br /&gt;
	return tbl&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Wrapper for [[Module:Tnavbar]]&lt;br /&gt;
--&lt;br /&gt;
-- @param args {table}&lt;br /&gt;
-- @return {string}&lt;br /&gt;
--&lt;br /&gt;
local function navbar( args )&lt;br /&gt;
	return tnavbar._collapsible( { [1] = args.title, [2] = args.name } )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Creates the header (what you see when the navbox is collapsed)&lt;br /&gt;
--&lt;br /&gt;
-- @param tbl {mw.html table}&lt;br /&gt;
-- @param args {table}&lt;br /&gt;
-- @return {mw.html table}&lt;br /&gt;
--&lt;br /&gt;
local function header( tbl, args )&lt;br /&gt;
    local paddingClass&lt;br /&gt;
    if args.name then&lt;br /&gt;
        if args.state == &amp;#039;plain&amp;#039; then&lt;br /&gt;
            paddingClass = &amp;#039;navbox-title-name-plain&amp;#039;&lt;br /&gt;
        else&lt;br /&gt;
            paddingClass = &amp;#039;navbox-title-name-notplain&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        if args.state == &amp;#039;plain&amp;#039; then&lt;br /&gt;
            paddingClass = &amp;#039;navbox-title-noname-plain&amp;#039;&lt;br /&gt;
        else&lt;br /&gt;
            paddingClass = &amp;#039;navbox-title-noname-notplain&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local div = insertRow( tbl )&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;navbox-title&amp;#039; )&lt;br /&gt;
            :attr( &amp;#039;id&amp;#039; , &amp;#039;navbox-title&amp;#039; )&lt;br /&gt;
                :tag( &amp;#039;div&amp;#039; )&lt;br /&gt;
                    :addClass ( paddingClass  )&lt;br /&gt;
                    :wikitext( args.name and navbar( args ) or args.title )&lt;br /&gt;
&lt;br /&gt;
    return div:allDone()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Inserts a row into the navbox&lt;br /&gt;
--&lt;br /&gt;
-- @param tbl {mw.html table}&lt;br /&gt;
-- @param gtitle {string}&lt;br /&gt;
-- @param group {string}&lt;br /&gt;
-- @param gtype {string}&lt;br /&gt;
-- @param style {string}&lt;br /&gt;
-- @return {mw.html table}&lt;br /&gt;
--&lt;br /&gt;
local function row( tbl, gtitle, group, gtype, style, _name, subgroup )&lt;br /&gt;
	local tr = insertRow( tbl )&lt;br /&gt;
	local td&lt;br /&gt;
&lt;br /&gt;
	if gtitle then&lt;br /&gt;
		td = tr&lt;br /&gt;
			:addClass( &amp;#039;navbox-group&amp;#039; )&lt;br /&gt;
			:tag( &amp;#039;td&amp;#039; )&lt;br /&gt;
				:addClass( &amp;#039;navbox-group-title&amp;#039; )&lt;br /&gt;
				:wikitext( gtitle )&lt;br /&gt;
				:done()&lt;br /&gt;
			:tag( &amp;#039;td&amp;#039; )&lt;br /&gt;
	else&lt;br /&gt;
		td = tr&lt;br /&gt;
			:addClass( &amp;#039;navbox-group&amp;#039; )&lt;br /&gt;
			:addClass( &amp;#039;navbox-group-split&amp;#039; )&lt;br /&gt;
			:tag( &amp;#039;td&amp;#039; )&lt;br /&gt;
				:addClass( &amp;#039;navbox-group-title-hidden&amp;#039; )&lt;br /&gt;
				:attr( &amp;#039;colspan&amp;#039;, &amp;#039;0&amp;#039; )&lt;br /&gt;
				:css( &amp;#039;display&amp;#039;, &amp;#039;none&amp;#039; )&lt;br /&gt;
				:done()&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;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	   List styling&lt;br /&gt;
	   This is unlikely to be implemented in the near future due to it requiring extra css to work&lt;br /&gt;
	   and mobile currently not supporting that css.&lt;br /&gt;
	   As an example, it lets you do the following instead if using {{*}} all the time&lt;br /&gt;
	   | group3 =&lt;br /&gt;
	   * {{plink|foo}}&lt;br /&gt;
	   * {{plink|bar}}&lt;br /&gt;
	   * {{plink|baz}}&lt;br /&gt;
	]]&lt;br /&gt;
	if mw.ustring.match( group, &amp;#039;^%s*%*&amp;#039; ) then&lt;br /&gt;
		td:newline()&lt;br /&gt;
&lt;br /&gt;
		-- trim whitespace on bullets&lt;br /&gt;
		local spl = mw.text.split( group, &amp;#039;\n&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
		for i = 1, #spl do&lt;br /&gt;
			spl[i] = mw.text.trim( spl[i] )&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		group = &amp;#039;\n&amp;#039; .. table.concat( spl, &amp;#039;\n&amp;#039; )		&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--local group2 = group&lt;br /&gt;
	--local group3 = group2&lt;br /&gt;
	-- analytics&lt;br /&gt;
&lt;br /&gt;
	--if _name then&lt;br /&gt;
	--	local name = mw.ustring.gsub(_name,&amp;#039; &amp;#039;,&amp;#039;_&amp;#039;)&lt;br /&gt;
	--	for v in mw.ustring.gmatch(group,&amp;#039;%[%[[^%]]+%]%]&amp;#039;) do&lt;br /&gt;
	--		if mw.ustring.match(v,&amp;#039;%[%[File:.+|link=&amp;#039;) then&lt;br /&gt;
	--			local link = mw.ustring.match(v,&amp;#039;|link=([^%]|]+)&amp;#039;)&lt;br /&gt;
	--			if link then&lt;br /&gt;
	--				local linkrep = mw.ustring.gsub(link,&amp;#039;([%%%]%[%-^$*()+?])&amp;#039;,&amp;#039;%%%1&amp;#039;)&lt;br /&gt;
	--				local _link = mw.ustring.gsub(link,&amp;#039; &amp;#039;,&amp;#039;_&amp;#039;)&lt;br /&gt;
	--				local newfile = mw.ustring.gsub(v,&amp;#039;|link=&amp;#039;..linkrep,string.format(&amp;#039;|link=https://oldschool.runescape.wiki/w/%s?f=%s&amp;#039;,_link,name))&lt;br /&gt;
	--				local w = mw.ustring.gsub(v,&amp;#039;([%%%]%[%-^$*()+?])&amp;#039;,&amp;#039;%%%1&amp;#039;)&lt;br /&gt;
	--				group2 = mw.ustring.gsub(group2,w,newfile)&lt;br /&gt;
	--			end&lt;br /&gt;
	--		elseif mw.ustring.match(v,&amp;#039;%[%[Category:&amp;#039;) then&lt;br /&gt;
				-- nothing&lt;br /&gt;
	--		else&lt;br /&gt;
	--			local link = mw.ustring.match(v,&amp;#039;%[%[([^%]|]+)&amp;#039;)&lt;br /&gt;
	--			local txt = mw.ustring.match(v,&amp;#039;%|([^%]|]+)&amp;#039;) or link&lt;br /&gt;
&lt;br /&gt;
	--			local newlink = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
				-- black links if current page&lt;br /&gt;
	--			if link == page_title then&lt;br /&gt;
	--				newlink = string.format(&amp;#039;&amp;lt;b&amp;gt;%s&amp;lt;/b&amp;gt;&amp;#039;,txt)&lt;br /&gt;
	--			else&lt;br /&gt;
	--				local _link = mw.ustring.gsub(link or &amp;#039;&amp;#039;,&amp;#039; &amp;#039;,&amp;#039;_&amp;#039;)&lt;br /&gt;
	--				newlink = string.format(&amp;#039;[https://oldschool.runescape.wiki.com/w/%s?n=%s %s]&amp;#039;,_link,name,txt)&lt;br /&gt;
	--			end&lt;br /&gt;
	--			local w = mw.ustring.gsub(v,&amp;#039;([%%%]%[%-^$*()+?])&amp;#039;,&amp;#039;%%%1&amp;#039;)&lt;br /&gt;
	--			group2 = mw.ustring.gsub(group2,w,newlink)&lt;br /&gt;
	--		end&lt;br /&gt;
	--	end&lt;br /&gt;
&lt;br /&gt;
		--[==[&lt;br /&gt;
			fix [[these kind]]s of [[link]]s post analytics parse&lt;br /&gt;
			]==]&lt;br /&gt;
	--	group3 = group2&lt;br /&gt;
&lt;br /&gt;
	--	for v in mw.ustring.gmatch(group2,&amp;#039;%[https://oldschool.runescape.wiki.com/w[^%]]-%]%a&amp;#039;) do&lt;br /&gt;
	--		local rep = mw.ustring.gsub(v,&amp;#039;%]&amp;#039;,&amp;#039;&amp;#039;)&lt;br /&gt;
	--		rep = rep..&amp;#039;]&amp;#039;&lt;br /&gt;
	--		local w = mw.ustring.gsub(v,&amp;#039;([%%%]%[%-^$*()+?])&amp;#039;,&amp;#039;%%%1&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	--		group3 = mw.ustring.gsub(group2,w,rep)&lt;br /&gt;
	--	end&lt;br /&gt;
	--end&lt;br /&gt;
&lt;br /&gt;
	td&lt;br /&gt;
		:addClass( &amp;#039;navbox-list&amp;#039; )&lt;br /&gt;
		:wikitext( group ) --group3&lt;br /&gt;
&lt;br /&gt;
	if gtype and mw.ustring.lower( gtype ) == &amp;#039;subgroup&amp;#039; then&lt;br /&gt;
		td&lt;br /&gt;
			:addClass( &amp;#039;navbox-parent&amp;#039; )&lt;br /&gt;
			:css( {&lt;br /&gt;
				padding = &amp;#039;0&amp;#039;&lt;br /&gt;
			} )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if style then&lt;br /&gt;
		td:cssText( style )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return td:allDone()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Inserts a footer into the navbox&lt;br /&gt;
--&lt;br /&gt;
-- @param tbl {mw.html table}&lt;br /&gt;
-- @param args {table}&lt;br /&gt;
-- @return {mw.html table}&lt;br /&gt;
--&lt;br /&gt;
local function footer( tbl, args )&lt;br /&gt;
	local th = insertRow( tbl )&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;navbox-footer&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
	if args.fstyle then&lt;br /&gt;
		th:cssText( args.fstyle )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if mw.ustring.match( args.footer, &amp;#039;^%s*%*&amp;#039; ) then&lt;br /&gt;
		th:newline()&lt;br /&gt;
&lt;br /&gt;
		-- trim whitespace on bullets&lt;br /&gt;
		local spl = mw.text.split( args.footer, &amp;#039;\n&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
		for i = 1, #spl do&lt;br /&gt;
			spl[i] = mw.text.trim( spl[i] )&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		args.footer = table.concat( spl, &amp;#039;\n&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
		th:addClass( &amp;#039;navbox-list&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	th:wikitext( args.footer )&lt;br /&gt;
&lt;br /&gt;
	return th:allDone()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Adds [[Category:Navbox templates]] to navbox template pages&lt;br /&gt;
--&lt;br /&gt;
-- @return {string}&lt;br /&gt;
--&lt;br /&gt;
local function categories()&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	local page = title.text&lt;br /&gt;
	local ns = title.nsText&lt;br /&gt;
&lt;br /&gt;
	if ns == &amp;#039;Template&amp;#039; then&lt;br /&gt;
		-- sort in category by pagename&lt;br /&gt;
		return &amp;#039;[[Category:Navbox templates| &amp;#039; .. page .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Adds [[Template:Navbox/doc]] to navbox template pages&lt;br /&gt;
--&lt;br /&gt;
-- @param args {table}&lt;br /&gt;
-- @return {string}&lt;br /&gt;
--&lt;br /&gt;
local function docs( args )&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	local base = title.baseText&lt;br /&gt;
	local ns = title.nsText&lt;br /&gt;
&lt;br /&gt;
		-- not if a subpage of [[Template:Navbox]]&lt;br /&gt;
	if base ~= &amp;#039;Navbox&amp;#039; and&lt;br /&gt;
		-- in template ns&lt;br /&gt;
		ns == &amp;#039;Template&amp;#039; and&lt;br /&gt;
		-- not a navbox group within a navbox&lt;br /&gt;
		not yesno(args.subgroup, false) and&lt;br /&gt;
		-- not a collapsible navbox within a navbox&lt;br /&gt;
		not yesno(args.collapsible, false) and&lt;br /&gt;
		-- not if the doc argument is not set to &amp;quot;yes&amp;quot;&lt;br /&gt;
		yesno(args.doc, false)&lt;br /&gt;
	then&lt;br /&gt;
		return frame:expandTemplate{ title = &amp;#039;Navbox/doc&amp;#039; }&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Navbox method to allow it to be called by other modules&lt;br /&gt;
--&lt;br /&gt;
-- @param _args {table}&lt;br /&gt;
-- @return {string}&lt;br /&gt;
--&lt;br /&gt;
function p._navbox( _args )&lt;br /&gt;
	local args = {}&lt;br /&gt;
	local wkCss = &amp;#039;&amp;#039;&lt;br /&gt;
	local wkDiv = &amp;#039;&amp;#039;&lt;br /&gt;
	local j&lt;br /&gt;
	&lt;br /&gt;
	-- preserves parser function behaviour where an empty string is considered undefined&lt;br /&gt;
	-- or nil in lua&amp;#039;s case&lt;br /&gt;
	for k, v in pairs( _args ) do&lt;br /&gt;
		if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local tbl = createTbl( args )&lt;br /&gt;
&lt;br /&gt;
	if not yesno(args.subgroup, false) then&lt;br /&gt;
		tbl = header( tbl, args )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- insert up to 25 rows&lt;br /&gt;
	for i = 1, 25 do&lt;br /&gt;
		j = tostring( i )&lt;br /&gt;
&lt;br /&gt;
		if args[&amp;#039;group&amp;#039; .. j] then&lt;br /&gt;
			tbl = row( tbl, args[&amp;#039;gtitle&amp;#039; .. j], args[&amp;#039;group&amp;#039; .. j], args[&amp;#039;gtype&amp;#039; .. j], args[&amp;#039;style&amp;#039; .. j], args.name, args.subgroup )&lt;br /&gt;
		else&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.footer then&lt;br /&gt;
		tbl = footer( tbl, args )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	tbl = tostring( tbl )&lt;br /&gt;
&lt;br /&gt;
	local cats = &amp;#039;&amp;#039;&lt;br /&gt;
	if not yesno(args.subgroup, false) and not yesno(args.hidecat, false) then&lt;br /&gt;
		cats = categories()&lt;br /&gt;
	end&lt;br /&gt;
	local docs = docs( args )&lt;br /&gt;
&lt;br /&gt;
	return tbl .. cats .. docs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Main navbox method accessed through #invoke&lt;br /&gt;
--&lt;br /&gt;
-- @param frame {table}&lt;br /&gt;
-- @return {string}&lt;br /&gt;
--&lt;br /&gt;
function p.navbox( frame )&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	return p._navbox( args )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
-- &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
</feed>