<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>http://206.189.52.199/index.php?action=history&amp;feed=atom&amp;title=Module%3ASubject_bar</id>
	<title>Module:Subject bar - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://206.189.52.199/index.php?action=history&amp;feed=atom&amp;title=Module%3ASubject_bar"/>
	<link rel="alternate" type="text/html" href="http://206.189.52.199/index.php?title=Module:Subject_bar&amp;action=history"/>
	<updated>2026-05-02T07:17:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://206.189.52.199/index.php?title=Module:Subject_bar&amp;diff=791&amp;oldid=prev</id>
		<title>Leo: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://206.189.52.199/index.php?title=Module:Subject_bar&amp;diff=791&amp;oldid=prev"/>
		<updated>2024-06-12T14:39:21Z</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;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:39, 12 June 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&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;/table&gt;</summary>
		<author><name>Leo</name></author>
	</entry>
	<entry>
		<id>http://206.189.52.199/index.php?title=Module:Subject_bar&amp;diff=790&amp;oldid=prev</id>
		<title>t1&gt;Hike395: detect sandbox call</title>
		<link rel="alternate" type="text/html" href="http://206.189.52.199/index.php?title=Module:Subject_bar&amp;diff=790&amp;oldid=prev"/>
		<updated>2022-10-23T21:51:52Z</updated>

		<summary type="html">&lt;p&gt;detect sandbox call&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local yesNo = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- Determine whether we&amp;#039;re being called from a sandbox&lt;br /&gt;
local isSandbox = mw.getCurrentFrame():getTitle():find(&amp;#039;sandbox&amp;#039;, 1, true)&lt;br /&gt;
local sandbox = isSandbox and &amp;#039;/sandbox&amp;#039; or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local sisters = {&amp;#039;commons&amp;#039;,&amp;#039;species&amp;#039;,&amp;#039;voy&amp;#039;,&amp;#039;n&amp;#039;,&amp;#039;wikt&amp;#039;,&amp;#039;b&amp;#039;,&amp;#039;q&amp;#039;,&amp;#039;s&amp;#039;,&amp;#039;v&amp;#039;,&amp;#039;iw&amp;#039;,&amp;#039;iw1&amp;#039;,&amp;#039;iw2&amp;#039;,&amp;#039;d&amp;#039;}&lt;br /&gt;
&lt;br /&gt;
local function findNumericArgs(key, args)&lt;br /&gt;
	local pattern = &amp;quot;^&amp;quot;..key..&amp;quot;_?(%d+)$&amp;quot;  -- pattern to match&lt;br /&gt;
	local values = {}&lt;br /&gt;
	for k, v in pairs(args) do  --- loop through all arguments&lt;br /&gt;
		local ord = tonumber(mw.ustring.match(k,pattern)) --- if &amp;quot;foo_?%d+&amp;quot;, extract number&lt;br /&gt;
		if ord then&lt;br /&gt;
			values[ord] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if args[key] ~= nil then&lt;br /&gt;
		values[1] = args[key]&lt;br /&gt;
	end&lt;br /&gt;
	local compressSparseArray = require(&amp;#039;Module:TableTools&amp;#039;).compressSparseArray&lt;br /&gt;
	values = compressSparseArray(values)  --- squeeze out gaps/nils in values, keep ordering&lt;br /&gt;
	return values&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local result = &amp;quot;&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
	local hasPortal = false&lt;br /&gt;
	for key, _ in pairs(args) do&lt;br /&gt;
		if mw.ustring.sub(key,1,6) == &amp;#039;portal&amp;#039; or tonumber(key) then&lt;br /&gt;
			hasPortal = true&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local hasSister = yesNo(args.auto,true) or yesNo(args.author,true) or yesNo(args.cookbook,true)&lt;br /&gt;
	for _, sister in ipairs(sisters) do&lt;br /&gt;
		if hasSister then&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
		if yesNo(args[sister],true) or yesNo(args[sister..&amp;#039;-search&amp;#039;],true) then&lt;br /&gt;
			hasSister = true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if hasPortal then&lt;br /&gt;
		local portalList = findNumericArgs(&amp;quot;portal&amp;quot;,args)&lt;br /&gt;
		for _, positional in ipairs(args) do&lt;br /&gt;
			table.insert(portalList, positional)&lt;br /&gt;
		end&lt;br /&gt;
		local portalBar = require(&amp;#039;Module:Portal bar&amp;#039;..sandbox)._main&lt;br /&gt;
		result = result..portalBar(portalList, {tracking=args.tracking, qid=args.qid})&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if hasSister then&lt;br /&gt;
		local sisterArgs = {auto=1, bar=1, trackSingle=not hasPortal}&lt;br /&gt;
		sisterArgs[1] = args.search&lt;br /&gt;
		for _, k in ipairs({&amp;#039;author&amp;#039;,&amp;#039;commonscat&amp;#039;,&amp;#039;cookbook&amp;#039;,&amp;#039;display&amp;#039;,&amp;#039;tracking&amp;#039;,&amp;#039;qid&amp;#039;}) do&lt;br /&gt;
			sisterArgs[k] = args[k]&lt;br /&gt;
		end&lt;br /&gt;
    	for _, t in ipairs(sisters) do&lt;br /&gt;
    		sisterArgs[t] = args[t..&amp;#039;-search&amp;#039;] or args[t]&lt;br /&gt;
    	end&lt;br /&gt;
    	local sisterBar = require(&amp;#039;Module:Sister project links&amp;#039;..sandbox)._main&lt;br /&gt;
		result = result..sisterBar(sisterArgs)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    -- If called via #invoke, use the args passed into the invoking template,&lt;br /&gt;
    -- or the args passed to #invoke if any exist. Otherwise assume args are&lt;br /&gt;
    -- being passed directly in from the debug console or from another Lua module.&lt;br /&gt;
    local args = getArgs(frame)&lt;br /&gt;
    return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>t1&gt;Hike395</name></author>
	</entry>
</feed>