<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://safernicotine.wiki/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ANavbox_with_collapsible_groups</id>
	<title>Module:Navbox with collapsible groups - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://safernicotine.wiki/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ANavbox_with_collapsible_groups"/>
	<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:Navbox_with_collapsible_groups&amp;action=history"/>
	<updated>2026-04-04T11:00:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://safernicotine.wiki/mediawiki/index.php?title=Module:Navbox_with_collapsible_groups&amp;diff=7106&amp;oldid=prev</id>
		<title>Richardpruen: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:Navbox_with_collapsible_groups&amp;diff=7106&amp;oldid=prev"/>
		<updated>2021-08-29T04:20:37Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:20, 29 August 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key uk_vapewiki:diff:1.41:old-7105:rev-7106 --&gt;
&lt;/table&gt;</summary>
		<author><name>Richardpruen</name></author>
	</entry>
	<entry>
		<id>https://safernicotine.wiki/mediawiki/index.php?title=Module:Navbox_with_collapsible_groups&amp;diff=7105&amp;oldid=prev</id>
		<title>Wikipedia&gt;MusikAnimal: Protected &quot;Module:Navbox with collapsible groups&quot;: High-risk Lua module ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</title>
		<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:Navbox_with_collapsible_groups&amp;diff=7105&amp;oldid=prev"/>
		<updated>2019-01-24T21:07:28Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/mediawiki/index.php/Module:Navbox_with_collapsible_groups&quot; title=&quot;Module:Navbox with collapsible groups&quot;&gt;Module:Navbox with collapsible groups&lt;/a&gt;&amp;quot;: &lt;a href=&quot;/mediawiki/index.php?title=WP:High-risk_templates&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:High-risk templates (page does not exist)&quot;&gt;High-risk Lua module&lt;/a&gt; ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module implements {{Navbox with collapsible groups}}&lt;br /&gt;
local q = {}&lt;br /&gt;
local Navbox = require(&amp;#039;Module:Navbox&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- helper functions&lt;br /&gt;
local function concatstrings(s)&lt;br /&gt;
	local r = table.concat(s, &amp;#039;&amp;#039;)&lt;br /&gt;
	if r:match(&amp;#039;^%s*$&amp;#039;) then r = nil end&lt;br /&gt;
	return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function concatstyles(s)&lt;br /&gt;
	local r = table.concat(s, &amp;#039;;&amp;#039;)&lt;br /&gt;
	while r:match(&amp;#039;;%s*;&amp;#039;) do&lt;br /&gt;
		r = mw.ustring.gsub(r, &amp;#039;;%s*;&amp;#039;, &amp;#039;;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if r:match(&amp;#039;^%s*;%s*$&amp;#039;) then r = nil end&lt;br /&gt;
	return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function q._navbox(pargs)&lt;br /&gt;
	-- table for args passed to navbox&lt;br /&gt;
	local targs = {}&lt;br /&gt;
&lt;br /&gt;
	-- process args&lt;br /&gt;
	local passthrough = {&lt;br /&gt;
		[&amp;#039;name&amp;#039;]=true,[&amp;#039;navbar&amp;#039;]=true,[&amp;#039;state&amp;#039;]=true,[&amp;#039;border&amp;#039;]=true,&lt;br /&gt;
		[&amp;#039;bodyclass&amp;#039;]=true,[&amp;#039;groupclass&amp;#039;]=true,[&amp;#039;listclass&amp;#039;]=true,&lt;br /&gt;
		[&amp;#039;style&amp;#039;]=true,[&amp;#039;bodystyle&amp;#039;]=true,[&amp;#039;basestyle&amp;#039;]=true,&lt;br /&gt;
		[&amp;#039;title&amp;#039;]=true,[&amp;#039;titleclass&amp;#039;]=true,[&amp;#039;titlestyle&amp;#039;]=true,&lt;br /&gt;
		[&amp;#039;above&amp;#039;]=true,[&amp;#039;aboveclass&amp;#039;]=true,[&amp;#039;abovestyle&amp;#039;]=true,&lt;br /&gt;
		[&amp;#039;below&amp;#039;]=true,[&amp;#039;belowclass&amp;#039;]=true,[&amp;#039;belowstyle&amp;#039;]=true,&lt;br /&gt;
		[&amp;#039;image&amp;#039;]=true,[&amp;#039;imageclass&amp;#039;]=true,[&amp;#039;imagestyle&amp;#039;]=true,&lt;br /&gt;
		[&amp;#039;imageleft&amp;#039;]=true,[&amp;#039;imageleftstyle&amp;#039;]=true&lt;br /&gt;
	}&lt;br /&gt;
	for k,v in pairs(pargs) do&lt;br /&gt;
		if k and type(k) == &amp;#039;string&amp;#039; then&lt;br /&gt;
			if passthrough[k] then&lt;br /&gt;
				targs[k] = v&lt;br /&gt;
			elseif (k:match(&amp;#039;^list[0-9][0-9]*$&amp;#039;) &lt;br /&gt;
					or k:match(&amp;#039;^content[0-9][0-9]*$&amp;#039;) ) then&lt;br /&gt;
				local n = mw.ustring.gsub(k, &amp;#039;^[a-z]*([0-9]*)$&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
				if (targs[&amp;#039;list&amp;#039; .. n] == nil and pargs[&amp;#039;group&amp;#039; .. n] == nil&lt;br /&gt;
					and pargs[&amp;#039;sect&amp;#039; .. n] == nil and pargs[&amp;#039;section&amp;#039; .. n] == nil) then&lt;br /&gt;
					targs[&amp;#039;list&amp;#039; .. n] = concatstrings(&lt;br /&gt;
						{pargs[&amp;#039;list&amp;#039; .. n] or &amp;#039;&amp;#039;, pargs[&amp;#039;content&amp;#039; .. n] or &amp;#039;&amp;#039;})&lt;br /&gt;
				end&lt;br /&gt;
			elseif (k:match(&amp;#039;^group[0-9][0-9]*$&amp;#039;) &lt;br /&gt;
					or k:match(&amp;#039;^sect[0-9][0-9]*$&amp;#039;) &lt;br /&gt;
					or k:match(&amp;#039;^section[0-9][0-9]*$&amp;#039;) ) then&lt;br /&gt;
				local n = mw.ustring.gsub(k, &amp;#039;^[a-z]*([0-9]*)$&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
				if targs[&amp;#039;list&amp;#039; .. n] == nil then&lt;br /&gt;
					local titlestyle = concatstyles(&lt;br /&gt;
						{pargs[&amp;#039;groupstyle&amp;#039;] or &amp;#039;&amp;#039;,pargs[&amp;#039;secttitlestyle&amp;#039;] or &amp;#039;&amp;#039;, &lt;br /&gt;
							pargs[&amp;#039;group&amp;#039; .. n .. &amp;#039;style&amp;#039;] or &amp;#039;&amp;#039;, &lt;br /&gt;
							pargs[&amp;#039;section&amp;#039; .. n ..&amp;#039;titlestyle&amp;#039;] or &amp;#039;&amp;#039;})&lt;br /&gt;
					local liststyle = concatstyles(&lt;br /&gt;
						{pargs[&amp;#039;liststyle&amp;#039;] or &amp;#039;&amp;#039;, pargs[&amp;#039;contentstyle&amp;#039;] or &amp;#039;&amp;#039;, &lt;br /&gt;
							pargs[&amp;#039;list&amp;#039; .. n .. &amp;#039;style&amp;#039;] or &amp;#039;&amp;#039;, &lt;br /&gt;
							pargs[&amp;#039;content&amp;#039; .. n .. &amp;#039;style&amp;#039;] or &amp;#039;&amp;#039;})&lt;br /&gt;
					local title = concatstrings(&lt;br /&gt;
						{pargs[&amp;#039;group&amp;#039; .. n] or &amp;#039;&amp;#039;, &lt;br /&gt;
							pargs[&amp;#039;sect&amp;#039; .. n] or &amp;#039;&amp;#039;,&lt;br /&gt;
							pargs[&amp;#039;section&amp;#039; .. n] or &amp;#039;&amp;#039;})&lt;br /&gt;
					local list = concatstrings(&lt;br /&gt;
						{pargs[&amp;#039;list&amp;#039; .. n] or &amp;#039;&amp;#039;, &lt;br /&gt;
							pargs[&amp;#039;content&amp;#039; .. n] or &amp;#039;&amp;#039;})&lt;br /&gt;
					local state = (pargs[&amp;#039;abbr&amp;#039; .. n] and pargs[&amp;#039;abbr&amp;#039; .. n] == pargs[&amp;#039;selected&amp;#039;]) &lt;br /&gt;
						and &amp;#039;uncollapsed&amp;#039; or pargs[&amp;#039;state&amp;#039; .. n] or &amp;#039;collapsed&amp;#039;&lt;br /&gt;
					&lt;br /&gt;
					targs[&amp;#039;list&amp;#039; .. n] = Navbox._navbox(&lt;br /&gt;
						{&amp;#039;child&amp;#039;, navbar = &amp;#039;plain&amp;#039;, state = state,&lt;br /&gt;
						basestyle = pargs[&amp;#039;basestyle&amp;#039;],&lt;br /&gt;
						title = title, titlestyle = titlestyle,&lt;br /&gt;
						list1 = list, liststyle = liststyle,&lt;br /&gt;
						listclass = pargs[&amp;#039;list&amp;#039; .. n .. &amp;#039;class&amp;#039;],&lt;br /&gt;
						image = pargs[&amp;#039;image&amp;#039; .. n],&lt;br /&gt;
						imageleft = pargs[&amp;#039;imageleft&amp;#039; .. n],&lt;br /&gt;
						listpadding = pargs[&amp;#039;listpadding&amp;#039;]})&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- ordering of style and bodystyle&lt;br /&gt;
	targs[&amp;#039;style&amp;#039;] = concatstyles({targs[&amp;#039;style&amp;#039;] or &amp;#039;&amp;#039;, targs[&amp;#039;bodystyle&amp;#039;] or &amp;#039;&amp;#039;})&lt;br /&gt;
	targs[&amp;#039;bodystyle&amp;#039;] = nil&lt;br /&gt;
	&lt;br /&gt;
	-- child or subgroup&lt;br /&gt;
	if targs[&amp;#039;border&amp;#039;] == nil then targs[&amp;#039;border&amp;#039;] = pargs[1] end&lt;br /&gt;
&lt;br /&gt;
	return Navbox._navbox(targs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function q.navbox(frame)&lt;br /&gt;
	local pargs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {wrappers = {&amp;#039;Template:Navbox with collapsible groups&amp;#039;}})&lt;br /&gt;
&lt;br /&gt;
	-- Read the arguments in the order they&amp;#039;ll be output in, to make references number in the right order.&lt;br /&gt;
	local _&lt;br /&gt;
	_ = pargs.title&lt;br /&gt;
	_ = pargs.above&lt;br /&gt;
	for i = 1, 20 do&lt;br /&gt;
		_ = pargs[&amp;quot;group&amp;quot; .. tostring(i)]&lt;br /&gt;
		_ = pargs[&amp;quot;list&amp;quot; .. tostring(i)]&lt;br /&gt;
	end&lt;br /&gt;
	_ = pargs.below&lt;br /&gt;
&lt;br /&gt;
	return q._navbox(pargs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return q&lt;/div&gt;</summary>
		<author><name>Wikipedia&gt;MusikAnimal</name></author>
	</entry>
</feed>