<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://test.indicwiki.in/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="https://test.indicwiki.in/index.php?action=history&amp;feed=atom&amp;title=Module%3ASubject_bar"/>
	<link rel="alternate" type="text/html" href="https://test.indicwiki.in/index.php?title=Module:Subject_bar&amp;action=history"/>
	<updated>2026-10-25T11:45:25Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://test.indicwiki.in/index.php?title=Module:Subject_bar&amp;diff=36959&amp;oldid=prev</id>
		<title>Sarika: Created page with &quot;require('strict')  local getArgs = require('Module:Arguments').getArgs local yesNo = require('Module:Yesno')  -- Determine whether we're being called from a sandbox local isSa...&quot;</title>
		<link rel="alternate" type="text/html" href="https://test.indicwiki.in/index.php?title=Module:Subject_bar&amp;diff=36959&amp;oldid=prev"/>
		<updated>2024-02-29T05:19:09Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;require(&amp;#039;strict&amp;#039;)  local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs local yesNo = require(&amp;#039;Module:Yesno&amp;#039;)  -- Determine whether we&amp;#039;re being called from a sandbox local isSa...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require('strict')&lt;br /&gt;
&lt;br /&gt;
local getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
local yesNo = require('Module:Yesno')&lt;br /&gt;
&lt;br /&gt;
-- Determine whether we're being called from a sandbox&lt;br /&gt;
local isSandbox = mw.getCurrentFrame():getTitle():find('sandbox', 1, true)&lt;br /&gt;
local sandbox = isSandbox and '/sandbox' or ''&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local sisters = {'commons','species','voy','n','wikt','b','q','s','v','iw','iw1','iw2','d'}&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('Module:TableTools').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) == 'portal' 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..'-search'],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('Module:Portal bar'..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({'author','commonscat','cookbook','display','tracking','qid'}) 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..'-search'] or args[t]&lt;br /&gt;
    	end&lt;br /&gt;
    	local sisterBar = require('Module:Sister project links'..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>Sarika</name></author>
	</entry>
</feed>