<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://place-wiki.stefanocoding.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Place+EU</id>
	<title>The r/place Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://place-wiki.stefanocoding.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Place+EU"/>
	<link rel="alternate" type="text/html" href="https://place-wiki.stefanocoding.me/wiki/Special:Contributions/Place_EU"/>
	<updated>2026-04-20T04:10:30Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://place-wiki.stefanocoding.me/index.php?title=European_Union_Flag&amp;diff=2284</id>
		<title>European Union Flag</title>
		<link rel="alternate" type="text/html" href="https://place-wiki.stefanocoding.me/index.php?title=European_Union_Flag&amp;diff=2284"/>
		<updated>2022-04-12T16:56:57Z</updated>

		<summary type="html">&lt;p&gt;Place EU: Created page with &amp;quot;{{Artwork stub}}{{Artwork | name        = European Union Flag | description = European Union Flag with a peace dove | location    =  | id          =  | creator     = PlaceEU | image       = PlaceEU.png }}  The European Union Flag was made by PlaceEU between France and Germany. In between there is a peace dove.  == History == It was made between France and Germany at the the beging of r/place 2021. It was defended by Germany.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Artwork stub}}{{Artwork&lt;br /&gt;
| name        = European Union Flag&lt;br /&gt;
| description = European Union Flag with a peace dove&lt;br /&gt;
| location    = &lt;br /&gt;
| id          = &lt;br /&gt;
| creator     = [[PlaceEU]]&lt;br /&gt;
| image       = PlaceEU.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The European Union Flag was made by PlaceEU between France and Germany. In between there is a peace dove.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
It was made between France and Germany at the the beging of r/place 2021. It was defended by Germany.&lt;/div&gt;</summary>
		<author><name>Place EU</name></author>
	</entry>
	<entry>
		<id>https://place-wiki.stefanocoding.me/index.php?title=PlaceEU&amp;diff=233</id>
		<title>PlaceEU</title>
		<link rel="alternate" type="text/html" href="https://place-wiki.stefanocoding.me/index.php?title=PlaceEU&amp;diff=233"/>
		<updated>2022-04-07T15:31:01Z</updated>

		<summary type="html">&lt;p&gt;Place EU: Created page with &amp;quot;{{Community | name = Place EU  | description = Place Subreddit from the European Union | subreddit = r/placeEU | discord = https://discord.gg/uxm3wbrHke }} Place EU is a subreddit from people from the European Union to represent the European Union on the Map.  = r/Place 2022 = == Artwork == === European Union Flag === There was made a flag with a peace dove. It was between the banners from France and Germany. == Trys == === Euroepan Map === They tried a map from europe,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Community&lt;br /&gt;
| name = Place EU &lt;br /&gt;
| description = Place Subreddit from the European Union&lt;br /&gt;
| subreddit = r/placeEU&lt;br /&gt;
| discord = https://discord.gg/uxm3wbrHke&lt;br /&gt;
}}&lt;br /&gt;
Place EU is a subreddit from people from the European Union to represent the European Union on the Map.&lt;br /&gt;
&lt;br /&gt;
= r/Place 2022 =&lt;br /&gt;
== Artwork ==&lt;br /&gt;
=== European Union Flag ===&lt;br /&gt;
There was made a flag with a peace dove. It was between the banners from France and Germany.&lt;br /&gt;
== Trys ==&lt;br /&gt;
=== Euroepan Map ===&lt;br /&gt;
They tried a map from europe, but it was griefed.&lt;br /&gt;
&lt;br /&gt;
= r/Place 2017 =&lt;br /&gt;
In the Place 2017 they made two EU flags.&lt;br /&gt;
&lt;br /&gt;
[[Category:Communities]]&lt;/div&gt;</summary>
		<author><name>Place EU</name></author>
	</entry>
	<entry>
		<id>https://place-wiki.stefanocoding.me/index.php?title=Module:Navbar&amp;diff=33</id>
		<title>Module:Navbar</title>
		<link rel="alternate" type="text/html" href="https://place-wiki.stefanocoding.me/index.php?title=Module:Navbar&amp;diff=33"/>
		<updated>2022-04-06T19:50:14Z</updated>

		<summary type="html">&lt;p&gt;Place EU: Created page with &amp;quot;local p = {} local navbar = require(&amp;#039;Module:Navbar&amp;#039;)._navbar local cfg = mw.loadData(&amp;#039;Module:Navbox/configuration&amp;#039;) local getArgs -- lazily initialized local args local format = string.format  local function striped(wikitext, border) 	-- Return wikitext with markers replaced for odd/even striping. 	-- Child (subgroup) navboxes are flagged with a category that is removed 	-- by parent navboxes. The result is that the category shows all pages 	-- where a child navbox is no...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
local navbar = require(&#039;Module:Navbar&#039;)._navbar&lt;br /&gt;
local cfg = mw.loadData(&#039;Module:Navbox/configuration&#039;)&lt;br /&gt;
local getArgs -- lazily initialized&lt;br /&gt;
local args&lt;br /&gt;
local format = string.format&lt;br /&gt;
&lt;br /&gt;
local function striped(wikitext, border)&lt;br /&gt;
	-- Return wikitext with markers replaced for odd/even striping.&lt;br /&gt;
	-- Child (subgroup) navboxes are flagged with a category that is removed&lt;br /&gt;
	-- by parent navboxes. The result is that the category shows all pages&lt;br /&gt;
	-- where a child navbox is not contained in a parent navbox.&lt;br /&gt;
	local orphanCat = cfg.category.orphan&lt;br /&gt;
	if border == cfg.keyword.border_subgroup and args[cfg.arg.orphan] ~= cfg.keyword.orphan_yes then&lt;br /&gt;
		-- No change; striping occurs in outermost navbox.&lt;br /&gt;
		return wikitext .. orphanCat&lt;br /&gt;
	end&lt;br /&gt;
	local first, second = cfg.class.navbox_odd_part, cfg.class.navbox_even_part&lt;br /&gt;
	if args[cfg.arg.evenodd] then&lt;br /&gt;
		if args[cfg.arg.evenodd] == cfg.keyword.evenodd_swap then&lt;br /&gt;
			first, second = second, first&lt;br /&gt;
		else&lt;br /&gt;
			first = args[cfg.arg.evenodd]&lt;br /&gt;
			second = first&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local changer&lt;br /&gt;
	if first == second then&lt;br /&gt;
		changer = first&lt;br /&gt;
	else&lt;br /&gt;
		local index = 0&lt;br /&gt;
		changer = function (code)&lt;br /&gt;
			if code == &#039;0&#039; then&lt;br /&gt;
				-- Current occurrence is for a group before a nested table.&lt;br /&gt;
				-- Set it to first as a valid although pointless class.&lt;br /&gt;
				-- The next occurrence will be the first row after a title&lt;br /&gt;
				-- in a subgroup and will also be first.&lt;br /&gt;
				index = 0&lt;br /&gt;
				return first&lt;br /&gt;
			end&lt;br /&gt;
			index = index + 1&lt;br /&gt;
			return index % 2 == 1 and first or second&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local regex = orphanCat:gsub(&#039;([%[%]])&#039;, &#039;%%%1&#039;)&lt;br /&gt;
	return (wikitext:gsub(regex, &#039;&#039;):gsub(cfg.marker.regex, changer)) -- () omits gsub count&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function processItem(item, nowrapitems)&lt;br /&gt;
	if item:sub(1, 2) == &#039;{|&#039; then&lt;br /&gt;
		-- Applying nowrap to lines in a table does not make sense.&lt;br /&gt;
		-- Add newlines to compensate for trim of x in |parm=x in a template.&lt;br /&gt;
		return &#039;\n&#039; .. item ..&#039;\n&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if nowrapitems == cfg.keyword.nowrapitems_yes then&lt;br /&gt;
		local lines = {}&lt;br /&gt;
		for line in (item .. &#039;\n&#039;):gmatch(&#039;([^\n]*)\n&#039;) do&lt;br /&gt;
			local prefix, content = line:match(&#039;^([*:;#]+)%s*(.*)&#039;)&lt;br /&gt;
			if prefix and not content:match(cfg.pattern.nowrap) then&lt;br /&gt;
				line = format(cfg.nowrap_item, prefix, content)&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(lines, line)&lt;br /&gt;
		end&lt;br /&gt;
		item = table.concat(lines, &#039;\n&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if item:match(&#039;^[*:;#]&#039;) then&lt;br /&gt;
		return &#039;\n&#039; .. item ..&#039;\n&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return item&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- we will want this later when we want to add tstyles for hlist/plainlist&lt;br /&gt;
local function has_navbar()&lt;br /&gt;
	return args[cfg.arg.navbar] ~= cfg.keyword.navbar_off&lt;br /&gt;
		and args[cfg.arg.navbar] ~= cfg.keyword.navbar_plain&lt;br /&gt;
		and (&lt;br /&gt;
			args[cfg.arg.name]&lt;br /&gt;
			or mw.getCurrentFrame():getParent():getTitle():gsub(cfg.pattern.sandbox, &#039;&#039;)&lt;br /&gt;
				~= cfg.pattern.navbox&lt;br /&gt;
		)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderNavBar(titleCell)&lt;br /&gt;
	if has_navbar() then&lt;br /&gt;
		titleCell:wikitext(navbar{&lt;br /&gt;
			[cfg.navbar.name] = args[cfg.arg.name],&lt;br /&gt;
			[cfg.navbar.mini] = 1,&lt;br /&gt;
			[cfg.navbar.fontstyle] = (args[cfg.arg.basestyle] or &#039;&#039;) .. &#039;;&#039; ..&lt;br /&gt;
				(args[cfg.arg.titlestyle] or &#039;&#039;) ..&lt;br /&gt;
				&#039;;background:none transparent;border:none;box-shadow:none;padding:0;&#039;&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTitleRow(tbl)&lt;br /&gt;
	if not args[cfg.arg.title] then return end&lt;br /&gt;
&lt;br /&gt;
	local titleRow = tbl:tag(&#039;tr&#039;)&lt;br /&gt;
&lt;br /&gt;
	local titleCell = titleRow:tag(&#039;th&#039;):attr(&#039;scope&#039;, &#039;col&#039;)&lt;br /&gt;
&lt;br /&gt;
	local titleColspan = 2&lt;br /&gt;
	if args[cfg.arg.imageleft] then titleColspan = titleColspan + 1 end&lt;br /&gt;
	if args[cfg.arg.image] then titleColspan = titleColspan + 1 end&lt;br /&gt;
&lt;br /&gt;
	titleCell&lt;br /&gt;
		:cssText(args[cfg.arg.basestyle])&lt;br /&gt;
		:cssText(args[cfg.arg.titlestyle])&lt;br /&gt;
		:addClass(cfg.class.navbox_title)&lt;br /&gt;
		:attr(&#039;colspan&#039;, titleColspan)&lt;br /&gt;
&lt;br /&gt;
	renderNavBar(titleCell)&lt;br /&gt;
&lt;br /&gt;
	titleCell&lt;br /&gt;
		:tag(&#039;div&#039;)&lt;br /&gt;
			-- id for aria-labelledby attribute&lt;br /&gt;
			:attr(&#039;id&#039;, mw.uri.anchorEncode(args[cfg.arg.title]))&lt;br /&gt;
			:addClass(args[cfg.arg.titleclass])&lt;br /&gt;
			:css(&#039;font-size&#039;, &#039;114%&#039;)&lt;br /&gt;
			:css(&#039;margin&#039;, &#039;0 4em&#039;)&lt;br /&gt;
			:wikitext(processItem(args[cfg.arg.title]))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getAboveBelowColspan()&lt;br /&gt;
	local ret = 2&lt;br /&gt;
	if args[cfg.arg.imageleft] then ret = ret + 1 end&lt;br /&gt;
	if args[cfg.arg.image] then ret = ret + 1 end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderAboveRow(tbl)&lt;br /&gt;
	if not args[cfg.arg.above] then return end&lt;br /&gt;
&lt;br /&gt;
	tbl:tag(&#039;tr&#039;)&lt;br /&gt;
		:tag(&#039;td&#039;)&lt;br /&gt;
			:addClass(cfg.class.navbox_abovebelow)&lt;br /&gt;
			:addClass(args[cfg.arg.aboveclass])&lt;br /&gt;
			:cssText(args[cfg.arg.basestyle])&lt;br /&gt;
			:cssText(args[cfg.arg.abovestyle])&lt;br /&gt;
			:attr(&#039;colspan&#039;, getAboveBelowColspan())&lt;br /&gt;
			:tag(&#039;div&#039;)&lt;br /&gt;
				-- id for aria-labelledby attribute, if no title&lt;br /&gt;
				:attr(&#039;id&#039;, args[cfg.arg.title] and nil or mw.uri.anchorEncode(args[cfg.arg.above]))&lt;br /&gt;
				:wikitext(processItem(args[cfg.arg.above], args[cfg.arg.nowrapitems]))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderBelowRow(tbl)&lt;br /&gt;
	if not args[cfg.arg.below] then return end&lt;br /&gt;
&lt;br /&gt;
	tbl:tag(&#039;tr&#039;)&lt;br /&gt;
		:tag(&#039;td&#039;)&lt;br /&gt;
			:addClass(cfg.class.navbox_abovebelow)&lt;br /&gt;
			:addClass(args[cfg.arg.belowclass])&lt;br /&gt;
			:cssText(args[cfg.arg.basestyle])&lt;br /&gt;
			:cssText(args[cfg.arg.belowstyle])&lt;br /&gt;
			:attr(&#039;colspan&#039;, getAboveBelowColspan())&lt;br /&gt;
			:tag(&#039;div&#039;)&lt;br /&gt;
				:wikitext(processItem(args[cfg.arg.below], args[cfg.arg.nowrapitems]))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderListRow(tbl, index, listnum, listnums_size)&lt;br /&gt;
	local row = tbl:tag(&#039;tr&#039;)&lt;br /&gt;
&lt;br /&gt;
	if index == 1 and args[cfg.arg.imageleft] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag(&#039;td&#039;)&lt;br /&gt;
				:addClass(cfg.class.noviewer)&lt;br /&gt;
				:addClass(cfg.class.navbox_image)&lt;br /&gt;
				:addClass(args[cfg.arg.imageclass])&lt;br /&gt;
				:css(&#039;width&#039;, &#039;1px&#039;)               -- Minimize width&lt;br /&gt;
				:css(&#039;padding&#039;, &#039;0 2px 0 0&#039;)&lt;br /&gt;
				:cssText(args[cfg.arg.imageleftstyle])&lt;br /&gt;
				:attr(&#039;rowspan&#039;, listnums_size)&lt;br /&gt;
				:tag(&#039;div&#039;)&lt;br /&gt;
					:wikitext(processItem(args[cfg.arg.imageleft]))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local group_and_num = format(cfg.arg.group_and_num, listnum)&lt;br /&gt;
	local groupstyle_and_num = format(cfg.arg.groupstyle_and_num, listnum)&lt;br /&gt;
	if args[group_and_num] then&lt;br /&gt;
		local groupCell = row:tag(&#039;th&#039;)&lt;br /&gt;
&lt;br /&gt;
		-- id for aria-labelledby attribute, if lone group with no title or above&lt;br /&gt;
		if listnum == 1 and not (args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group2]) then&lt;br /&gt;
			groupCell&lt;br /&gt;
				:attr(&#039;id&#039;, mw.uri.anchorEncode(args[cfg.arg.group1]))&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		groupCell&lt;br /&gt;
			:attr(&#039;scope&#039;, &#039;row&#039;)&lt;br /&gt;
			:addClass(cfg.class.navbox_group)&lt;br /&gt;
			:addClass(args[cfg.arg.groupclass])&lt;br /&gt;
			:cssText(args[cfg.arg.basestyle])&lt;br /&gt;
			-- If groupwidth not specified, minimize width&lt;br /&gt;
			:css(&#039;width&#039;, args[cfg.arg.groupwidth] or &#039;1%&#039;)&lt;br /&gt;
&lt;br /&gt;
		groupCell&lt;br /&gt;
			:cssText(args[cfg.arg.groupstyle])&lt;br /&gt;
			:cssText(args[groupstyle_and_num])&lt;br /&gt;
			:wikitext(args[group_and_num])&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local listCell = row:tag(&#039;td&#039;)&lt;br /&gt;
&lt;br /&gt;
	if args[group_and_num] then&lt;br /&gt;
		listCell&lt;br /&gt;
			:addClass(cfg.class.navbox_list_with_group)&lt;br /&gt;
	else&lt;br /&gt;
		listCell:attr(&#039;colspan&#039;, 2)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not args[cfg.arg.groupwidth] then&lt;br /&gt;
		listCell:css(&#039;width&#039;, &#039;100%&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rowstyle  -- usually nil so cssText(rowstyle) usually adds nothing&lt;br /&gt;
	if index % 2 == 1 then&lt;br /&gt;
		rowstyle = args[cfg.arg.oddstyle]&lt;br /&gt;
	else&lt;br /&gt;
		rowstyle = args[cfg.arg.evenstyle]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local list_and_num = format(cfg.arg.list_and_num, listnum)&lt;br /&gt;
	local listText = args[list_and_num]&lt;br /&gt;
	local oddEven = cfg.marker.oddeven&lt;br /&gt;
	if listText:sub(1, 12) == &#039;&amp;lt;/div&amp;gt;&amp;lt;table&#039; then&lt;br /&gt;
		-- Assume list text is for a subgroup navbox so no automatic striping for this row.&lt;br /&gt;
		oddEven = listText:find(cfg.pattern.navbox_title) and cfg.marker.restart or cfg.class.navbox_odd_part&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local liststyle_and_num = format(cfg.arg.liststyle_and_num, listnum)&lt;br /&gt;
	local listclass_and_num = format(cfg.arg.listclass_and_num, listnum)&lt;br /&gt;
	listCell&lt;br /&gt;
		:css(&#039;padding&#039;, &#039;0&#039;)&lt;br /&gt;
		:cssText(args[cfg.arg.liststyle])&lt;br /&gt;
		:cssText(rowstyle)&lt;br /&gt;
		:cssText(args[liststyle_and_num])&lt;br /&gt;
		:addClass(cfg.class.navbox_list)&lt;br /&gt;
		:addClass(cfg.class.navbox_part .. oddEven)&lt;br /&gt;
		:addClass(args[cfg.arg.listclass])&lt;br /&gt;
		:addClass(args[listclass_and_num])&lt;br /&gt;
		:tag(&#039;div&#039;)&lt;br /&gt;
			:css(&#039;padding&#039;,&lt;br /&gt;
				(index == 1 and args[cfg.arg.list1padding]) or args[cfg.arg.listpadding] or &#039;0 0.25em&#039;&lt;br /&gt;
			)&lt;br /&gt;
			:wikitext(processItem(listText, args[cfg.arg.nowrapitems]))&lt;br /&gt;
&lt;br /&gt;
	if index == 1 and args[cfg.arg.image] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag(&#039;td&#039;)&lt;br /&gt;
				:addClass(cfg.class.noviewer)&lt;br /&gt;
				:addClass(cfg.class.navbox_image)&lt;br /&gt;
				:addClass(args[cfg.arg.imageclass])&lt;br /&gt;
				:css(&#039;width&#039;, &#039;1px&#039;)               -- Minimize width&lt;br /&gt;
				:css(&#039;padding&#039;, &#039;0 0 0 2px&#039;)&lt;br /&gt;
				:cssText(args[cfg.arg.imagestyle])&lt;br /&gt;
				:attr(&#039;rowspan&#039;, listnums_size)&lt;br /&gt;
				:tag(&#039;div&#039;)&lt;br /&gt;
					:wikitext(processItem(args[cfg.arg.image]))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- uses this now to make the needHlistCategory correct&lt;br /&gt;
-- to use later for when we add list styles via navbox&lt;br /&gt;
local function has_list_class(htmlclass)&lt;br /&gt;
	local class_args = { -- rough order of probability of use&lt;br /&gt;
		cfg.arg.bodyclass, cfg.arg.listclass, cfg.arg.aboveclass,&lt;br /&gt;
		cfg.arg.belowclass, cfg.arg.titleclass, cfg.arg.navboxclass,&lt;br /&gt;
		cfg.arg.groupclass, cfg.arg.imageclass&lt;br /&gt;
	}&lt;br /&gt;
	local patterns = {&lt;br /&gt;
		&#039;^&#039; .. htmlclass .. &#039;$&#039;,&lt;br /&gt;
		&#039;%s&#039; .. htmlclass .. &#039;$&#039;,&lt;br /&gt;
		&#039;^&#039; .. htmlclass .. &#039;%s&#039;,&lt;br /&gt;
		&#039;%s&#039; .. htmlclass .. &#039;%s&#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	for _, arg in ipairs(class_args) do&lt;br /&gt;
		for _, pattern in ipairs(patterns) do&lt;br /&gt;
			if mw.ustring.find(args[arg] or &#039;&#039;, pattern) then&lt;br /&gt;
				return true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function needsHorizontalLists(border)&lt;br /&gt;
	if border == cfg.keyword.border_subgroup or args[cfg.arg.tracking] == cfg.keyword.tracking_no then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	return not has_list_class(cfg.pattern.hlist) and not has_list_class(cfg.pattern.plainlist)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hasBackgroundColors()&lt;br /&gt;
	for _, key in ipairs({cfg.arg.titlestyle, cfg.arg.groupstyle,&lt;br /&gt;
		cfg.arg.basestyle, cfg.arg.abovestyle, cfg.arg.belowstyle}) do&lt;br /&gt;
		if tostring(args[key]):find(&#039;background&#039;, 1, true) then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hasBorders()&lt;br /&gt;
	for _, key in ipairs({cfg.arg.groupstyle, cfg.arg.basestyle,&lt;br /&gt;
		cfg.arg.abovestyle, cfg.arg.belowstyle}) do&lt;br /&gt;
		if tostring(args[key]):find(&#039;border&#039;, 1, true) then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isIllegible()&lt;br /&gt;
	local styleratio = require(&#039;Module:Color contrast&#039;)._styleratio&lt;br /&gt;
	for key, style in pairs(args) do&lt;br /&gt;
		if tostring(key):match(cfg.pattern.style) then&lt;br /&gt;
			if styleratio{mw.text.unstripNoWiki(style)} &amp;lt; 4.5 then&lt;br /&gt;
				return true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getTrackingCategories(border)&lt;br /&gt;
	local cats = {}&lt;br /&gt;
	if needsHorizontalLists(border) then table.insert(cats, cfg.category.horizontal_lists) end&lt;br /&gt;
	if hasBackgroundColors() then table.insert(cats, cfg.category.background_colors) end&lt;br /&gt;
	if isIllegible() then table.insert(cats, cfg.category.illegible) end&lt;br /&gt;
	if hasBorders() then table.insert(cats, cfg.category.borders) end&lt;br /&gt;
	return cats&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTrackingCategories(builder, border)&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	if title.namespace ~= 10 then return end -- not in template space&lt;br /&gt;
	local subpage = title.subpageText&lt;br /&gt;
	if subpage == cfg.keyword.subpage_doc or subpage == cfg.keyword.subpage_sandbox&lt;br /&gt;
		or subpage == cfg.keyword.subpage_testcases then return end&lt;br /&gt;
&lt;br /&gt;
	for _, cat in ipairs(getTrackingCategories(border)) do&lt;br /&gt;
		builder:wikitext(&#039;[[Category:&#039; .. cat .. &#039;]]&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderMainTable(border, listnums)&lt;br /&gt;
	local tbl = mw.html.create(&#039;table&#039;)&lt;br /&gt;
		:addClass(cfg.class.nowraplinks)&lt;br /&gt;
		:addClass(args[cfg.arg.bodyclass])&lt;br /&gt;
&lt;br /&gt;
	local state = args[cfg.arg.state]&lt;br /&gt;
	if args[cfg.arg.title] and state ~= cfg.keyword.state_plain and state ~= cfg.keyword.state_off then&lt;br /&gt;
		if state == cfg.keyword.state_collapsed then&lt;br /&gt;
			state = cfg.class.collapsed&lt;br /&gt;
		end&lt;br /&gt;
		tbl&lt;br /&gt;
			:addClass(cfg.class.collapsible)&lt;br /&gt;
			:addClass(state or cfg.class.autocollapse)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	tbl:css(&#039;border-spacing&#039;, 0)&lt;br /&gt;
	if border == cfg.keyword.border_subgroup or border == cfg.keyword.border_none then&lt;br /&gt;
		tbl&lt;br /&gt;
			:addClass(cfg.class.navbox_subgroup)&lt;br /&gt;
			:cssText(args[cfg.arg.bodystyle])&lt;br /&gt;
			:cssText(args[cfg.arg.style])&lt;br /&gt;
	else  -- regular navbox - bodystyle and style will be applied to the wrapper table&lt;br /&gt;
		tbl&lt;br /&gt;
			:addClass(cfg.class.navbox_inner)&lt;br /&gt;
			:css(&#039;background&#039;, &#039;transparent&#039;)&lt;br /&gt;
			:css(&#039;color&#039;, &#039;inherit&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	tbl:cssText(args[cfg.arg.innerstyle])&lt;br /&gt;
&lt;br /&gt;
	renderTitleRow(tbl)&lt;br /&gt;
	renderAboveRow(tbl)&lt;br /&gt;
	local listnums_size = #listnums&lt;br /&gt;
	for i, listnum in ipairs(listnums) do&lt;br /&gt;
		renderListRow(tbl, i, listnum, listnums_size)&lt;br /&gt;
	end&lt;br /&gt;
	renderBelowRow(tbl)&lt;br /&gt;
&lt;br /&gt;
	return tbl&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function add_navbox_styles()&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	-- This is a lambda so that it doesn&#039;t need the frame as a parameter&lt;br /&gt;
	local function add_user_styles(templatestyles)&lt;br /&gt;
		if templatestyles and templatestyles ~= &#039;&#039; then&lt;br /&gt;
			return frame:extensionTag{&lt;br /&gt;
				name = &#039;templatestyles&#039;, args = { src = templatestyles }&lt;br /&gt;
			}&lt;br /&gt;
		end&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- get templatestyles. load base from config so that Lua only needs to do&lt;br /&gt;
	-- the work once of parser tag expansion&lt;br /&gt;
	local base_templatestyles = cfg.templatestyles&lt;br /&gt;
	local templatestyles = add_user_styles(args[cfg.arg.templatestyles])&lt;br /&gt;
	local child_templatestyles = add_user_styles(args[cfg.arg.child_templatestyles])&lt;br /&gt;
&lt;br /&gt;
	-- The &#039;navbox-styles&#039; div exists for two reasons:&lt;br /&gt;
	--  1. To wrap the styles to work around T200206 more elegantly. Instead&lt;br /&gt;
	--     of combinatorial rules, this ends up being linear number of CSS rules.&lt;br /&gt;
	--  2. To allow MobileFrontend to rip the styles out with &#039;nomobile&#039; such that&lt;br /&gt;
	--     they are not dumped into the mobile view.&lt;br /&gt;
	return mw.html.create(&#039;div&#039;)&lt;br /&gt;
		:addClass(cfg.class.navbox_styles)&lt;br /&gt;
		:addClass(cfg.class.nomobile)&lt;br /&gt;
		:wikitext(base_templatestyles .. templatestyles .. child_templatestyles)&lt;br /&gt;
		:done()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._navbox(navboxArgs)&lt;br /&gt;
	args = navboxArgs&lt;br /&gt;
	local listnums = {}&lt;br /&gt;
&lt;br /&gt;
	for k, _ in pairs(args) do&lt;br /&gt;
		if type(k) == &#039;string&#039; then&lt;br /&gt;
			local listnum = k:match(cfg.pattern.listnum)&lt;br /&gt;
			if listnum then table.insert(listnums, tonumber(listnum)) end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(listnums)&lt;br /&gt;
&lt;br /&gt;
	local border = mw.text.trim(args[cfg.arg.border] or args[1] or &#039;&#039;)&lt;br /&gt;
	if border == cfg.keyword.border_child then&lt;br /&gt;
		border = cfg.keyword.border_subgroup&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- render the main body of the navbox&lt;br /&gt;
	local tbl = renderMainTable(border, listnums)&lt;br /&gt;
&lt;br /&gt;
	local res = mw.html.create()&lt;br /&gt;
	-- render the appropriate wrapper for the navbox, based on the border param&lt;br /&gt;
&lt;br /&gt;
	if border == cfg.keyword.border_none then&lt;br /&gt;
		res:node(add_navbox_styles())&lt;br /&gt;
		local nav = res:tag(&#039;div&#039;)&lt;br /&gt;
			:attr(&#039;role&#039;, &#039;navigation&#039;)&lt;br /&gt;
			:node(tbl)&lt;br /&gt;
		-- aria-labelledby title, otherwise above, otherwise lone group&lt;br /&gt;
		if args[cfg.arg.title] or args[cfg.arg.above] or (args[cfg.arg.group1]&lt;br /&gt;
			and not args[cfg.arg.group2]) then&lt;br /&gt;
			nav:attr(&lt;br /&gt;
				&#039;aria-labelledby&#039;,&lt;br /&gt;
				mw.uri.anchorEncode(&lt;br /&gt;
					args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1]&lt;br /&gt;
				)&lt;br /&gt;
			)&lt;br /&gt;
		else&lt;br /&gt;
			nav:attr(&#039;aria-label&#039;, cfg.aria_label)&lt;br /&gt;
		end&lt;br /&gt;
	elseif border == cfg.keyword.border_subgroup then&lt;br /&gt;
		-- We assume that this navbox is being rendered in a list cell of a&lt;br /&gt;
		-- parent navbox, and is therefore inside a div with padding:0em 0.25em.&lt;br /&gt;
		-- We start with a &amp;lt;/div&amp;gt; to avoid the padding being applied, and at the&lt;br /&gt;
		-- end add a &amp;lt;div&amp;gt; to balance out the parent&#039;s &amp;lt;/div&amp;gt;&lt;br /&gt;
		res&lt;br /&gt;
			:wikitext(&#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
			:node(tbl)&lt;br /&gt;
			:wikitext(&#039;&amp;lt;div&amp;gt;&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		res:node(add_navbox_styles())&lt;br /&gt;
		local nav = res:tag(&#039;div&#039;)&lt;br /&gt;
			:attr(&#039;role&#039;, &#039;navigation&#039;)&lt;br /&gt;
			:addClass(cfg.class.navbox)&lt;br /&gt;
			:addClass(args[cfg.arg.navboxclass])&lt;br /&gt;
			:cssText(args[cfg.arg.bodystyle])&lt;br /&gt;
			:cssText(args[cfg.arg.style])&lt;br /&gt;
			:css(&#039;padding&#039;, &#039;3px&#039;)&lt;br /&gt;
			:node(tbl)&lt;br /&gt;
		-- aria-labelledby title, otherwise above, otherwise lone group&lt;br /&gt;
		if args[cfg.arg.title] or args[cfg.arg.above]&lt;br /&gt;
			or (args[cfg.arg.group1] and not args[cfg.arg.group2]) then&lt;br /&gt;
			nav:attr(&lt;br /&gt;
				&#039;aria-labelledby&#039;,&lt;br /&gt;
				mw.uri.anchorEncode(args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1])&lt;br /&gt;
			)&lt;br /&gt;
		else&lt;br /&gt;
			nav:attr(&#039;aria-label&#039;, cfg.aria_label)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if (args[cfg.arg.nocat] or cfg.keyword.nocat_false):lower() == cfg.keyword.nocat_false then&lt;br /&gt;
		renderTrackingCategories(res, border)&lt;br /&gt;
	end&lt;br /&gt;
	return striped(tostring(res), border)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.navbox(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
	end&lt;br /&gt;
	args = getArgs(frame, {wrappers = {cfg.pattern.navbox}})&lt;br /&gt;
&lt;br /&gt;
	-- Read the arguments in the order they&#039;ll be output in, to make references&lt;br /&gt;
	-- number in the right order.&lt;br /&gt;
	local _&lt;br /&gt;
	_ = args[cfg.arg.title]&lt;br /&gt;
	_ = args[cfg.arg.above]&lt;br /&gt;
	-- Limit this to 20 as covering &#039;most&#039; cases (that&#039;s a SWAG) and because&lt;br /&gt;
	-- iterator approach won&#039;t work here&lt;br /&gt;
	for i = 1, 20 do&lt;br /&gt;
		_ = args[format(cfg.arg.group_and_num, i)]&lt;br /&gt;
		_ = args[format(cfg.arg.list_and_num, i)]&lt;br /&gt;
	end&lt;br /&gt;
	_ = args[cfg.arg.below]&lt;br /&gt;
&lt;br /&gt;
	return p._navbox(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Place EU</name></author>
	</entry>
	<entry>
		<id>https://place-wiki.stefanocoding.me/index.php?title=Template:NavboxTemplate&amp;diff=32</id>
		<title>Template:NavboxTemplate</title>
		<link rel="alternate" type="text/html" href="https://place-wiki.stefanocoding.me/index.php?title=Template:NavboxTemplate&amp;diff=32"/>
		<updated>2022-04-06T19:49:26Z</updated>

		<summary type="html">&lt;p&gt;Place EU: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  {{Navbox&lt;br /&gt;
 | name  = Navbox/doc&lt;br /&gt;
 | title = [[MSC Malaysia]]&lt;br /&gt;
 | listclass = hlist&lt;br /&gt;
&lt;br /&gt;
 | group1 = Centre&lt;br /&gt;
 | list1  =&lt;br /&gt;
 * [[Cyberjaya]]&lt;br /&gt;
&lt;br /&gt;
 | group2 = Area&lt;br /&gt;
 | list2  =&lt;br /&gt;
 * [[Klang Valley]]&lt;br /&gt;
&lt;br /&gt;
 | group3 = Major landmarks&lt;br /&gt;
 | list3  =&lt;br /&gt;
 * [[Petronas Twin Towers]]&lt;br /&gt;
 * [[Kuala Lumpur Tower]]&lt;br /&gt;
 * [[Kuala Lumpur Sentral]]&lt;br /&gt;
 * [[Technology Park Malaysia]]&lt;br /&gt;
 * [[Putrajaya]]&lt;br /&gt;
 * [[Cyberjaya]]&lt;br /&gt;
 * [[Kuala Lumpur International Airport]]&lt;br /&gt;
&lt;br /&gt;
 | group4 = Infrastructure&lt;br /&gt;
 | list4  =&lt;br /&gt;
 * [[Express Rail Link]]&lt;br /&gt;
 * [[KL-KLIA Dedicated Expressway]]&lt;br /&gt;
&lt;br /&gt;
 | group5 = Prime applications&lt;br /&gt;
 | list5  =&lt;br /&gt;
 * [[E-Government]]&lt;br /&gt;
 * [[MyKad]]&lt;br /&gt;
 }}&lt;/div&gt;</summary>
		<author><name>Place EU</name></author>
	</entry>
	<entry>
		<id>https://place-wiki.stefanocoding.me/index.php?title=Module:Navbox&amp;diff=31</id>
		<title>Module:Navbox</title>
		<link rel="alternate" type="text/html" href="https://place-wiki.stefanocoding.me/index.php?title=Module:Navbox&amp;diff=31"/>
		<updated>2022-04-06T19:48:31Z</updated>

		<summary type="html">&lt;p&gt;Place EU: Created page with &amp;quot;local p = {} local navbar = require(&amp;#039;Module:Navbar&amp;#039;)._navbar local cfg = mw.loadData(&amp;#039;Module:Navbox/configuration&amp;#039;) local getArgs -- lazily initialized local args local format = string.format  local function striped(wikitext, border) 	-- Return wikitext with markers replaced for odd/even striping. 	-- Child (subgroup) navboxes are flagged with a category that is removed 	-- by parent navboxes. The result is that the category shows all pages 	-- where a child navbox is no...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
local navbar = require(&#039;Module:Navbar&#039;)._navbar&lt;br /&gt;
local cfg = mw.loadData(&#039;Module:Navbox/configuration&#039;)&lt;br /&gt;
local getArgs -- lazily initialized&lt;br /&gt;
local args&lt;br /&gt;
local format = string.format&lt;br /&gt;
&lt;br /&gt;
local function striped(wikitext, border)&lt;br /&gt;
	-- Return wikitext with markers replaced for odd/even striping.&lt;br /&gt;
	-- Child (subgroup) navboxes are flagged with a category that is removed&lt;br /&gt;
	-- by parent navboxes. The result is that the category shows all pages&lt;br /&gt;
	-- where a child navbox is not contained in a parent navbox.&lt;br /&gt;
	local orphanCat = cfg.category.orphan&lt;br /&gt;
	if border == cfg.keyword.border_subgroup and args[cfg.arg.orphan] ~= cfg.keyword.orphan_yes then&lt;br /&gt;
		-- No change; striping occurs in outermost navbox.&lt;br /&gt;
		return wikitext .. orphanCat&lt;br /&gt;
	end&lt;br /&gt;
	local first, second = cfg.class.navbox_odd_part, cfg.class.navbox_even_part&lt;br /&gt;
	if args[cfg.arg.evenodd] then&lt;br /&gt;
		if args[cfg.arg.evenodd] == cfg.keyword.evenodd_swap then&lt;br /&gt;
			first, second = second, first&lt;br /&gt;
		else&lt;br /&gt;
			first = args[cfg.arg.evenodd]&lt;br /&gt;
			second = first&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local changer&lt;br /&gt;
	if first == second then&lt;br /&gt;
		changer = first&lt;br /&gt;
	else&lt;br /&gt;
		local index = 0&lt;br /&gt;
		changer = function (code)&lt;br /&gt;
			if code == &#039;0&#039; then&lt;br /&gt;
				-- Current occurrence is for a group before a nested table.&lt;br /&gt;
				-- Set it to first as a valid although pointless class.&lt;br /&gt;
				-- The next occurrence will be the first row after a title&lt;br /&gt;
				-- in a subgroup and will also be first.&lt;br /&gt;
				index = 0&lt;br /&gt;
				return first&lt;br /&gt;
			end&lt;br /&gt;
			index = index + 1&lt;br /&gt;
			return index % 2 == 1 and first or second&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local regex = orphanCat:gsub(&#039;([%[%]])&#039;, &#039;%%%1&#039;)&lt;br /&gt;
	return (wikitext:gsub(regex, &#039;&#039;):gsub(cfg.marker.regex, changer)) -- () omits gsub count&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function processItem(item, nowrapitems)&lt;br /&gt;
	if item:sub(1, 2) == &#039;{|&#039; then&lt;br /&gt;
		-- Applying nowrap to lines in a table does not make sense.&lt;br /&gt;
		-- Add newlines to compensate for trim of x in |parm=x in a template.&lt;br /&gt;
		return &#039;\n&#039; .. item ..&#039;\n&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if nowrapitems == cfg.keyword.nowrapitems_yes then&lt;br /&gt;
		local lines = {}&lt;br /&gt;
		for line in (item .. &#039;\n&#039;):gmatch(&#039;([^\n]*)\n&#039;) do&lt;br /&gt;
			local prefix, content = line:match(&#039;^([*:;#]+)%s*(.*)&#039;)&lt;br /&gt;
			if prefix and not content:match(cfg.pattern.nowrap) then&lt;br /&gt;
				line = format(cfg.nowrap_item, prefix, content)&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(lines, line)&lt;br /&gt;
		end&lt;br /&gt;
		item = table.concat(lines, &#039;\n&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if item:match(&#039;^[*:;#]&#039;) then&lt;br /&gt;
		return &#039;\n&#039; .. item ..&#039;\n&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return item&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- we will want this later when we want to add tstyles for hlist/plainlist&lt;br /&gt;
local function has_navbar()&lt;br /&gt;
	return args[cfg.arg.navbar] ~= cfg.keyword.navbar_off&lt;br /&gt;
		and args[cfg.arg.navbar] ~= cfg.keyword.navbar_plain&lt;br /&gt;
		and (&lt;br /&gt;
			args[cfg.arg.name]&lt;br /&gt;
			or mw.getCurrentFrame():getParent():getTitle():gsub(cfg.pattern.sandbox, &#039;&#039;)&lt;br /&gt;
				~= cfg.pattern.navbox&lt;br /&gt;
		)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderNavBar(titleCell)&lt;br /&gt;
	if has_navbar() then&lt;br /&gt;
		titleCell:wikitext(navbar{&lt;br /&gt;
			[cfg.navbar.name] = args[cfg.arg.name],&lt;br /&gt;
			[cfg.navbar.mini] = 1,&lt;br /&gt;
			[cfg.navbar.fontstyle] = (args[cfg.arg.basestyle] or &#039;&#039;) .. &#039;;&#039; ..&lt;br /&gt;
				(args[cfg.arg.titlestyle] or &#039;&#039;) ..&lt;br /&gt;
				&#039;;background:none transparent;border:none;box-shadow:none;padding:0;&#039;&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTitleRow(tbl)&lt;br /&gt;
	if not args[cfg.arg.title] then return end&lt;br /&gt;
&lt;br /&gt;
	local titleRow = tbl:tag(&#039;tr&#039;)&lt;br /&gt;
&lt;br /&gt;
	local titleCell = titleRow:tag(&#039;th&#039;):attr(&#039;scope&#039;, &#039;col&#039;)&lt;br /&gt;
&lt;br /&gt;
	local titleColspan = 2&lt;br /&gt;
	if args[cfg.arg.imageleft] then titleColspan = titleColspan + 1 end&lt;br /&gt;
	if args[cfg.arg.image] then titleColspan = titleColspan + 1 end&lt;br /&gt;
&lt;br /&gt;
	titleCell&lt;br /&gt;
		:cssText(args[cfg.arg.basestyle])&lt;br /&gt;
		:cssText(args[cfg.arg.titlestyle])&lt;br /&gt;
		:addClass(cfg.class.navbox_title)&lt;br /&gt;
		:attr(&#039;colspan&#039;, titleColspan)&lt;br /&gt;
&lt;br /&gt;
	renderNavBar(titleCell)&lt;br /&gt;
&lt;br /&gt;
	titleCell&lt;br /&gt;
		:tag(&#039;div&#039;)&lt;br /&gt;
			-- id for aria-labelledby attribute&lt;br /&gt;
			:attr(&#039;id&#039;, mw.uri.anchorEncode(args[cfg.arg.title]))&lt;br /&gt;
			:addClass(args[cfg.arg.titleclass])&lt;br /&gt;
			:css(&#039;font-size&#039;, &#039;114%&#039;)&lt;br /&gt;
			:css(&#039;margin&#039;, &#039;0 4em&#039;)&lt;br /&gt;
			:wikitext(processItem(args[cfg.arg.title]))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getAboveBelowColspan()&lt;br /&gt;
	local ret = 2&lt;br /&gt;
	if args[cfg.arg.imageleft] then ret = ret + 1 end&lt;br /&gt;
	if args[cfg.arg.image] then ret = ret + 1 end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderAboveRow(tbl)&lt;br /&gt;
	if not args[cfg.arg.above] then return end&lt;br /&gt;
&lt;br /&gt;
	tbl:tag(&#039;tr&#039;)&lt;br /&gt;
		:tag(&#039;td&#039;)&lt;br /&gt;
			:addClass(cfg.class.navbox_abovebelow)&lt;br /&gt;
			:addClass(args[cfg.arg.aboveclass])&lt;br /&gt;
			:cssText(args[cfg.arg.basestyle])&lt;br /&gt;
			:cssText(args[cfg.arg.abovestyle])&lt;br /&gt;
			:attr(&#039;colspan&#039;, getAboveBelowColspan())&lt;br /&gt;
			:tag(&#039;div&#039;)&lt;br /&gt;
				-- id for aria-labelledby attribute, if no title&lt;br /&gt;
				:attr(&#039;id&#039;, args[cfg.arg.title] and nil or mw.uri.anchorEncode(args[cfg.arg.above]))&lt;br /&gt;
				:wikitext(processItem(args[cfg.arg.above], args[cfg.arg.nowrapitems]))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderBelowRow(tbl)&lt;br /&gt;
	if not args[cfg.arg.below] then return end&lt;br /&gt;
&lt;br /&gt;
	tbl:tag(&#039;tr&#039;)&lt;br /&gt;
		:tag(&#039;td&#039;)&lt;br /&gt;
			:addClass(cfg.class.navbox_abovebelow)&lt;br /&gt;
			:addClass(args[cfg.arg.belowclass])&lt;br /&gt;
			:cssText(args[cfg.arg.basestyle])&lt;br /&gt;
			:cssText(args[cfg.arg.belowstyle])&lt;br /&gt;
			:attr(&#039;colspan&#039;, getAboveBelowColspan())&lt;br /&gt;
			:tag(&#039;div&#039;)&lt;br /&gt;
				:wikitext(processItem(args[cfg.arg.below], args[cfg.arg.nowrapitems]))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderListRow(tbl, index, listnum, listnums_size)&lt;br /&gt;
	local row = tbl:tag(&#039;tr&#039;)&lt;br /&gt;
&lt;br /&gt;
	if index == 1 and args[cfg.arg.imageleft] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag(&#039;td&#039;)&lt;br /&gt;
				:addClass(cfg.class.noviewer)&lt;br /&gt;
				:addClass(cfg.class.navbox_image)&lt;br /&gt;
				:addClass(args[cfg.arg.imageclass])&lt;br /&gt;
				:css(&#039;width&#039;, &#039;1px&#039;)               -- Minimize width&lt;br /&gt;
				:css(&#039;padding&#039;, &#039;0 2px 0 0&#039;)&lt;br /&gt;
				:cssText(args[cfg.arg.imageleftstyle])&lt;br /&gt;
				:attr(&#039;rowspan&#039;, listnums_size)&lt;br /&gt;
				:tag(&#039;div&#039;)&lt;br /&gt;
					:wikitext(processItem(args[cfg.arg.imageleft]))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local group_and_num = format(cfg.arg.group_and_num, listnum)&lt;br /&gt;
	local groupstyle_and_num = format(cfg.arg.groupstyle_and_num, listnum)&lt;br /&gt;
	if args[group_and_num] then&lt;br /&gt;
		local groupCell = row:tag(&#039;th&#039;)&lt;br /&gt;
&lt;br /&gt;
		-- id for aria-labelledby attribute, if lone group with no title or above&lt;br /&gt;
		if listnum == 1 and not (args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group2]) then&lt;br /&gt;
			groupCell&lt;br /&gt;
				:attr(&#039;id&#039;, mw.uri.anchorEncode(args[cfg.arg.group1]))&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		groupCell&lt;br /&gt;
			:attr(&#039;scope&#039;, &#039;row&#039;)&lt;br /&gt;
			:addClass(cfg.class.navbox_group)&lt;br /&gt;
			:addClass(args[cfg.arg.groupclass])&lt;br /&gt;
			:cssText(args[cfg.arg.basestyle])&lt;br /&gt;
			-- If groupwidth not specified, minimize width&lt;br /&gt;
			:css(&#039;width&#039;, args[cfg.arg.groupwidth] or &#039;1%&#039;)&lt;br /&gt;
&lt;br /&gt;
		groupCell&lt;br /&gt;
			:cssText(args[cfg.arg.groupstyle])&lt;br /&gt;
			:cssText(args[groupstyle_and_num])&lt;br /&gt;
			:wikitext(args[group_and_num])&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local listCell = row:tag(&#039;td&#039;)&lt;br /&gt;
&lt;br /&gt;
	if args[group_and_num] then&lt;br /&gt;
		listCell&lt;br /&gt;
			:addClass(cfg.class.navbox_list_with_group)&lt;br /&gt;
	else&lt;br /&gt;
		listCell:attr(&#039;colspan&#039;, 2)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not args[cfg.arg.groupwidth] then&lt;br /&gt;
		listCell:css(&#039;width&#039;, &#039;100%&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rowstyle  -- usually nil so cssText(rowstyle) usually adds nothing&lt;br /&gt;
	if index % 2 == 1 then&lt;br /&gt;
		rowstyle = args[cfg.arg.oddstyle]&lt;br /&gt;
	else&lt;br /&gt;
		rowstyle = args[cfg.arg.evenstyle]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local list_and_num = format(cfg.arg.list_and_num, listnum)&lt;br /&gt;
	local listText = args[list_and_num]&lt;br /&gt;
	local oddEven = cfg.marker.oddeven&lt;br /&gt;
	if listText:sub(1, 12) == &#039;&amp;lt;/div&amp;gt;&amp;lt;table&#039; then&lt;br /&gt;
		-- Assume list text is for a subgroup navbox so no automatic striping for this row.&lt;br /&gt;
		oddEven = listText:find(cfg.pattern.navbox_title) and cfg.marker.restart or cfg.class.navbox_odd_part&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local liststyle_and_num = format(cfg.arg.liststyle_and_num, listnum)&lt;br /&gt;
	local listclass_and_num = format(cfg.arg.listclass_and_num, listnum)&lt;br /&gt;
	listCell&lt;br /&gt;
		:css(&#039;padding&#039;, &#039;0&#039;)&lt;br /&gt;
		:cssText(args[cfg.arg.liststyle])&lt;br /&gt;
		:cssText(rowstyle)&lt;br /&gt;
		:cssText(args[liststyle_and_num])&lt;br /&gt;
		:addClass(cfg.class.navbox_list)&lt;br /&gt;
		:addClass(cfg.class.navbox_part .. oddEven)&lt;br /&gt;
		:addClass(args[cfg.arg.listclass])&lt;br /&gt;
		:addClass(args[listclass_and_num])&lt;br /&gt;
		:tag(&#039;div&#039;)&lt;br /&gt;
			:css(&#039;padding&#039;,&lt;br /&gt;
				(index == 1 and args[cfg.arg.list1padding]) or args[cfg.arg.listpadding] or &#039;0 0.25em&#039;&lt;br /&gt;
			)&lt;br /&gt;
			:wikitext(processItem(listText, args[cfg.arg.nowrapitems]))&lt;br /&gt;
&lt;br /&gt;
	if index == 1 and args[cfg.arg.image] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag(&#039;td&#039;)&lt;br /&gt;
				:addClass(cfg.class.noviewer)&lt;br /&gt;
				:addClass(cfg.class.navbox_image)&lt;br /&gt;
				:addClass(args[cfg.arg.imageclass])&lt;br /&gt;
				:css(&#039;width&#039;, &#039;1px&#039;)               -- Minimize width&lt;br /&gt;
				:css(&#039;padding&#039;, &#039;0 0 0 2px&#039;)&lt;br /&gt;
				:cssText(args[cfg.arg.imagestyle])&lt;br /&gt;
				:attr(&#039;rowspan&#039;, listnums_size)&lt;br /&gt;
				:tag(&#039;div&#039;)&lt;br /&gt;
					:wikitext(processItem(args[cfg.arg.image]))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- uses this now to make the needHlistCategory correct&lt;br /&gt;
-- to use later for when we add list styles via navbox&lt;br /&gt;
local function has_list_class(htmlclass)&lt;br /&gt;
	local class_args = { -- rough order of probability of use&lt;br /&gt;
		cfg.arg.bodyclass, cfg.arg.listclass, cfg.arg.aboveclass,&lt;br /&gt;
		cfg.arg.belowclass, cfg.arg.titleclass, cfg.arg.navboxclass,&lt;br /&gt;
		cfg.arg.groupclass, cfg.arg.imageclass&lt;br /&gt;
	}&lt;br /&gt;
	local patterns = {&lt;br /&gt;
		&#039;^&#039; .. htmlclass .. &#039;$&#039;,&lt;br /&gt;
		&#039;%s&#039; .. htmlclass .. &#039;$&#039;,&lt;br /&gt;
		&#039;^&#039; .. htmlclass .. &#039;%s&#039;,&lt;br /&gt;
		&#039;%s&#039; .. htmlclass .. &#039;%s&#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	for _, arg in ipairs(class_args) do&lt;br /&gt;
		for _, pattern in ipairs(patterns) do&lt;br /&gt;
			if mw.ustring.find(args[arg] or &#039;&#039;, pattern) then&lt;br /&gt;
				return true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function needsHorizontalLists(border)&lt;br /&gt;
	if border == cfg.keyword.border_subgroup or args[cfg.arg.tracking] == cfg.keyword.tracking_no then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	return not has_list_class(cfg.pattern.hlist) and not has_list_class(cfg.pattern.plainlist)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hasBackgroundColors()&lt;br /&gt;
	for _, key in ipairs({cfg.arg.titlestyle, cfg.arg.groupstyle,&lt;br /&gt;
		cfg.arg.basestyle, cfg.arg.abovestyle, cfg.arg.belowstyle}) do&lt;br /&gt;
		if tostring(args[key]):find(&#039;background&#039;, 1, true) then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hasBorders()&lt;br /&gt;
	for _, key in ipairs({cfg.arg.groupstyle, cfg.arg.basestyle,&lt;br /&gt;
		cfg.arg.abovestyle, cfg.arg.belowstyle}) do&lt;br /&gt;
		if tostring(args[key]):find(&#039;border&#039;, 1, true) then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isIllegible()&lt;br /&gt;
	local styleratio = require(&#039;Module:Color contrast&#039;)._styleratio&lt;br /&gt;
	for key, style in pairs(args) do&lt;br /&gt;
		if tostring(key):match(cfg.pattern.style) then&lt;br /&gt;
			if styleratio{mw.text.unstripNoWiki(style)} &amp;lt; 4.5 then&lt;br /&gt;
				return true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getTrackingCategories(border)&lt;br /&gt;
	local cats = {}&lt;br /&gt;
	if needsHorizontalLists(border) then table.insert(cats, cfg.category.horizontal_lists) end&lt;br /&gt;
	if hasBackgroundColors() then table.insert(cats, cfg.category.background_colors) end&lt;br /&gt;
	if isIllegible() then table.insert(cats, cfg.category.illegible) end&lt;br /&gt;
	if hasBorders() then table.insert(cats, cfg.category.borders) end&lt;br /&gt;
	return cats&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTrackingCategories(builder, border)&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	if title.namespace ~= 10 then return end -- not in template space&lt;br /&gt;
	local subpage = title.subpageText&lt;br /&gt;
	if subpage == cfg.keyword.subpage_doc or subpage == cfg.keyword.subpage_sandbox&lt;br /&gt;
		or subpage == cfg.keyword.subpage_testcases then return end&lt;br /&gt;
&lt;br /&gt;
	for _, cat in ipairs(getTrackingCategories(border)) do&lt;br /&gt;
		builder:wikitext(&#039;[[Category:&#039; .. cat .. &#039;]]&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderMainTable(border, listnums)&lt;br /&gt;
	local tbl = mw.html.create(&#039;table&#039;)&lt;br /&gt;
		:addClass(cfg.class.nowraplinks)&lt;br /&gt;
		:addClass(args[cfg.arg.bodyclass])&lt;br /&gt;
&lt;br /&gt;
	local state = args[cfg.arg.state]&lt;br /&gt;
	if args[cfg.arg.title] and state ~= cfg.keyword.state_plain and state ~= cfg.keyword.state_off then&lt;br /&gt;
		if state == cfg.keyword.state_collapsed then&lt;br /&gt;
			state = cfg.class.collapsed&lt;br /&gt;
		end&lt;br /&gt;
		tbl&lt;br /&gt;
			:addClass(cfg.class.collapsible)&lt;br /&gt;
			:addClass(state or cfg.class.autocollapse)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	tbl:css(&#039;border-spacing&#039;, 0)&lt;br /&gt;
	if border == cfg.keyword.border_subgroup or border == cfg.keyword.border_none then&lt;br /&gt;
		tbl&lt;br /&gt;
			:addClass(cfg.class.navbox_subgroup)&lt;br /&gt;
			:cssText(args[cfg.arg.bodystyle])&lt;br /&gt;
			:cssText(args[cfg.arg.style])&lt;br /&gt;
	else  -- regular navbox - bodystyle and style will be applied to the wrapper table&lt;br /&gt;
		tbl&lt;br /&gt;
			:addClass(cfg.class.navbox_inner)&lt;br /&gt;
			:css(&#039;background&#039;, &#039;transparent&#039;)&lt;br /&gt;
			:css(&#039;color&#039;, &#039;inherit&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	tbl:cssText(args[cfg.arg.innerstyle])&lt;br /&gt;
&lt;br /&gt;
	renderTitleRow(tbl)&lt;br /&gt;
	renderAboveRow(tbl)&lt;br /&gt;
	local listnums_size = #listnums&lt;br /&gt;
	for i, listnum in ipairs(listnums) do&lt;br /&gt;
		renderListRow(tbl, i, listnum, listnums_size)&lt;br /&gt;
	end&lt;br /&gt;
	renderBelowRow(tbl)&lt;br /&gt;
&lt;br /&gt;
	return tbl&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function add_navbox_styles()&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	-- This is a lambda so that it doesn&#039;t need the frame as a parameter&lt;br /&gt;
	local function add_user_styles(templatestyles)&lt;br /&gt;
		if templatestyles and templatestyles ~= &#039;&#039; then&lt;br /&gt;
			return frame:extensionTag{&lt;br /&gt;
				name = &#039;templatestyles&#039;, args = { src = templatestyles }&lt;br /&gt;
			}&lt;br /&gt;
		end&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- get templatestyles. load base from config so that Lua only needs to do&lt;br /&gt;
	-- the work once of parser tag expansion&lt;br /&gt;
	local base_templatestyles = cfg.templatestyles&lt;br /&gt;
	local templatestyles = add_user_styles(args[cfg.arg.templatestyles])&lt;br /&gt;
	local child_templatestyles = add_user_styles(args[cfg.arg.child_templatestyles])&lt;br /&gt;
&lt;br /&gt;
	-- The &#039;navbox-styles&#039; div exists for two reasons:&lt;br /&gt;
	--  1. To wrap the styles to work around T200206 more elegantly. Instead&lt;br /&gt;
	--     of combinatorial rules, this ends up being linear number of CSS rules.&lt;br /&gt;
	--  2. To allow MobileFrontend to rip the styles out with &#039;nomobile&#039; such that&lt;br /&gt;
	--     they are not dumped into the mobile view.&lt;br /&gt;
	return mw.html.create(&#039;div&#039;)&lt;br /&gt;
		:addClass(cfg.class.navbox_styles)&lt;br /&gt;
		:addClass(cfg.class.nomobile)&lt;br /&gt;
		:wikitext(base_templatestyles .. templatestyles .. child_templatestyles)&lt;br /&gt;
		:done()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._navbox(navboxArgs)&lt;br /&gt;
	args = navboxArgs&lt;br /&gt;
	local listnums = {}&lt;br /&gt;
&lt;br /&gt;
	for k, _ in pairs(args) do&lt;br /&gt;
		if type(k) == &#039;string&#039; then&lt;br /&gt;
			local listnum = k:match(cfg.pattern.listnum)&lt;br /&gt;
			if listnum then table.insert(listnums, tonumber(listnum)) end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(listnums)&lt;br /&gt;
&lt;br /&gt;
	local border = mw.text.trim(args[cfg.arg.border] or args[1] or &#039;&#039;)&lt;br /&gt;
	if border == cfg.keyword.border_child then&lt;br /&gt;
		border = cfg.keyword.border_subgroup&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- render the main body of the navbox&lt;br /&gt;
	local tbl = renderMainTable(border, listnums)&lt;br /&gt;
&lt;br /&gt;
	local res = mw.html.create()&lt;br /&gt;
	-- render the appropriate wrapper for the navbox, based on the border param&lt;br /&gt;
&lt;br /&gt;
	if border == cfg.keyword.border_none then&lt;br /&gt;
		res:node(add_navbox_styles())&lt;br /&gt;
		local nav = res:tag(&#039;div&#039;)&lt;br /&gt;
			:attr(&#039;role&#039;, &#039;navigation&#039;)&lt;br /&gt;
			:node(tbl)&lt;br /&gt;
		-- aria-labelledby title, otherwise above, otherwise lone group&lt;br /&gt;
		if args[cfg.arg.title] or args[cfg.arg.above] or (args[cfg.arg.group1]&lt;br /&gt;
			and not args[cfg.arg.group2]) then&lt;br /&gt;
			nav:attr(&lt;br /&gt;
				&#039;aria-labelledby&#039;,&lt;br /&gt;
				mw.uri.anchorEncode(&lt;br /&gt;
					args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1]&lt;br /&gt;
				)&lt;br /&gt;
			)&lt;br /&gt;
		else&lt;br /&gt;
			nav:attr(&#039;aria-label&#039;, cfg.aria_label)&lt;br /&gt;
		end&lt;br /&gt;
	elseif border == cfg.keyword.border_subgroup then&lt;br /&gt;
		-- We assume that this navbox is being rendered in a list cell of a&lt;br /&gt;
		-- parent navbox, and is therefore inside a div with padding:0em 0.25em.&lt;br /&gt;
		-- We start with a &amp;lt;/div&amp;gt; to avoid the padding being applied, and at the&lt;br /&gt;
		-- end add a &amp;lt;div&amp;gt; to balance out the parent&#039;s &amp;lt;/div&amp;gt;&lt;br /&gt;
		res&lt;br /&gt;
			:wikitext(&#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
			:node(tbl)&lt;br /&gt;
			:wikitext(&#039;&amp;lt;div&amp;gt;&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		res:node(add_navbox_styles())&lt;br /&gt;
		local nav = res:tag(&#039;div&#039;)&lt;br /&gt;
			:attr(&#039;role&#039;, &#039;navigation&#039;)&lt;br /&gt;
			:addClass(cfg.class.navbox)&lt;br /&gt;
			:addClass(args[cfg.arg.navboxclass])&lt;br /&gt;
			:cssText(args[cfg.arg.bodystyle])&lt;br /&gt;
			:cssText(args[cfg.arg.style])&lt;br /&gt;
			:css(&#039;padding&#039;, &#039;3px&#039;)&lt;br /&gt;
			:node(tbl)&lt;br /&gt;
		-- aria-labelledby title, otherwise above, otherwise lone group&lt;br /&gt;
		if args[cfg.arg.title] or args[cfg.arg.above]&lt;br /&gt;
			or (args[cfg.arg.group1] and not args[cfg.arg.group2]) then&lt;br /&gt;
			nav:attr(&lt;br /&gt;
				&#039;aria-labelledby&#039;,&lt;br /&gt;
				mw.uri.anchorEncode(args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1])&lt;br /&gt;
			)&lt;br /&gt;
		else&lt;br /&gt;
			nav:attr(&#039;aria-label&#039;, cfg.aria_label)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if (args[cfg.arg.nocat] or cfg.keyword.nocat_false):lower() == cfg.keyword.nocat_false then&lt;br /&gt;
		renderTrackingCategories(res, border)&lt;br /&gt;
	end&lt;br /&gt;
	return striped(tostring(res), border)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.navbox(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
	end&lt;br /&gt;
	args = getArgs(frame, {wrappers = {cfg.pattern.navbox}})&lt;br /&gt;
&lt;br /&gt;
	-- Read the arguments in the order they&#039;ll be output in, to make references&lt;br /&gt;
	-- number in the right order.&lt;br /&gt;
	local _&lt;br /&gt;
	_ = args[cfg.arg.title]&lt;br /&gt;
	_ = args[cfg.arg.above]&lt;br /&gt;
	-- Limit this to 20 as covering &#039;most&#039; cases (that&#039;s a SWAG) and because&lt;br /&gt;
	-- iterator approach won&#039;t work here&lt;br /&gt;
	for i = 1, 20 do&lt;br /&gt;
		_ = args[format(cfg.arg.group_and_num, i)]&lt;br /&gt;
		_ = args[format(cfg.arg.list_and_num, i)]&lt;br /&gt;
	end&lt;br /&gt;
	_ = args[cfg.arg.below]&lt;br /&gt;
&lt;br /&gt;
	return p._navbox(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Place EU</name></author>
	</entry>
	<entry>
		<id>https://place-wiki.stefanocoding.me/index.php?title=Template:NavboxTemplate&amp;diff=29</id>
		<title>Template:NavboxTemplate</title>
		<link rel="alternate" type="text/html" href="https://place-wiki.stefanocoding.me/index.php?title=Template:NavboxTemplate&amp;diff=29"/>
		<updated>2022-04-06T19:37:58Z</updated>

		<summary type="html">&lt;p&gt;Place EU: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{Navbox&lt;br /&gt;
| name = Navbox Name&lt;br /&gt;
| title = Navbox Title&lt;br /&gt;
| bodyclass = hlist&lt;br /&gt;
&lt;br /&gt;
| group1 = Group 1&lt;br /&gt;
| list1 = List 1&lt;br /&gt;
&lt;br /&gt;
| group2 = Group 2&lt;br /&gt;
| list2 = {{Navbox|child&lt;br /&gt;
 | group1 = Group 2.1&lt;br /&gt;
 | list1 = List 2.1&lt;br /&gt;
&lt;br /&gt;
 | group2 = Group 2.2&lt;br /&gt;
 | list2 = {{Navbox|child&lt;br /&gt;
  | group1 = Group 2.2.1&lt;br /&gt;
  | list1 = List 2.2.1&lt;br /&gt;
&lt;br /&gt;
  | group2 = Group 2.2.2&lt;br /&gt;
  | list2 = List 2.2.2&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
 | group3 = Group 2.3&lt;br /&gt;
 | list3 = List 2.3&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
| group3 = Group 3&lt;br /&gt;
| list3 =&lt;br /&gt;
* List 3&lt;br /&gt;
* List&lt;br /&gt;
* List&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Place EU</name></author>
	</entry>
	<entry>
		<id>https://place-wiki.stefanocoding.me/index.php?title=Template:NavboxTemplate&amp;diff=28</id>
		<title>Template:NavboxTemplate</title>
		<link rel="alternate" type="text/html" href="https://place-wiki.stefanocoding.me/index.php?title=Template:NavboxTemplate&amp;diff=28"/>
		<updated>2022-04-06T19:35:59Z</updated>

		<summary type="html">&lt;p&gt;Place EU: Created page with &amp;quot; {{Navbox  | name  = Navbox/doc  | title = MSC Malaysia  | listclass = hlist   | group1 = Centre  | list1  =  * Cyberjaya   | group2 = Area  | list2  =  * Klang Valley   | group3 = Major landmarks  | list3  =  * Petronas Twin Towers  * Kuala Lumpur Tower  * Kuala Lumpur Sentral  * Technology Park Malaysia  * Putrajaya  * Cyberjaya  * Kuala Lumpur International Airport   | group4 = Infrastructure  | list4  =  * Express Rail Link...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{Navbox&lt;br /&gt;
 | name  = Navbox/doc&lt;br /&gt;
 | title = [[MSC Malaysia]]&lt;br /&gt;
 | listclass = hlist&lt;br /&gt;
&lt;br /&gt;
 | group1 = Centre&lt;br /&gt;
 | list1  =&lt;br /&gt;
 * [[Cyberjaya]]&lt;br /&gt;
&lt;br /&gt;
 | group2 = Area&lt;br /&gt;
 | list2  =&lt;br /&gt;
 * [[Klang Valley]]&lt;br /&gt;
&lt;br /&gt;
 | group3 = Major landmarks&lt;br /&gt;
 | list3  =&lt;br /&gt;
 * [[Petronas Twin Towers]]&lt;br /&gt;
 * [[Kuala Lumpur Tower]]&lt;br /&gt;
 * [[Kuala Lumpur Sentral]]&lt;br /&gt;
 * [[Technology Park Malaysia]]&lt;br /&gt;
 * [[Putrajaya]]&lt;br /&gt;
 * [[Cyberjaya]]&lt;br /&gt;
 * [[Kuala Lumpur International Airport]]&lt;br /&gt;
&lt;br /&gt;
 | group4 = Infrastructure&lt;br /&gt;
 | list4  =&lt;br /&gt;
 * [[Express Rail Link]]&lt;br /&gt;
 * [[KL-KLIA Dedicated Expressway]]&lt;br /&gt;
&lt;br /&gt;
 | group5 = Prime applications&lt;br /&gt;
 | list5  =&lt;br /&gt;
 * [[E-Government]]&lt;br /&gt;
 * [[MyKad]]&lt;br /&gt;
 }}&lt;/div&gt;</summary>
		<author><name>Place EU</name></author>
	</entry>
	<entry>
		<id>https://place-wiki.stefanocoding.me/index.php?title=Template:Navbox&amp;diff=27</id>
		<title>Template:Navbox</title>
		<link rel="alternate" type="text/html" href="https://place-wiki.stefanocoding.me/index.php?title=Template:Navbox&amp;diff=27"/>
		<updated>2022-04-06T19:35:24Z</updated>

		<summary type="html">&lt;p&gt;Place EU: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;{{#invoke:Navbox|navbox}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Navbox|navbox}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Place EU</name></author>
	</entry>
</feed>