মডিউল:বিষয় দণ্ড
অবয়ব
এই মডিউলের জন্য মডিউল:বিষয় দণ্ড/নথি-এ নথিপত্র তৈরি করা হয়ে থাকতে পারে
require('Module:No globals')
local sisterBar = nil
local portalBar = nil
local compressSparseArray = nil
local getArgs = require('Module:Arguments').getArgs
local yesNo = require('Module:Yesno')
local p = {}
local sisters = {'commons','species','voy','n','wikt','b','q','s','v','d'}
local function findNumericArgs(key, args)
local pattern = "^"..key.."_?(%d+)$" -- pattern to match
local values = {}
for k, v in pairs(args) do --- loop through all arguments
local ord = tonumber(mw.ustring.match(k,pattern)) --- if "foo_?%d+", extract number
if ord then
values[ord] = v
end
end
if args[key] ~= nil then
values[1] = args[key]
end
values = compressSparseArray(values) --- squeeze out gaps/nils in values, keep ordering
return values
end
function p._main(args)
local result = ""
local hasPortal = false
for key, _ in pairs(args) do
if mw.ustring.sub(key,1,6) == 'portal' or tonumber(key) then
hasPortal = true
break
end
end
if hasPortal then
portalBar = require('মডিউল:প্রবেশদ্বার দণ্ড')._main
compressSparseArray = require('Module:TableTools').compressSparseArray
local portalList = findNumericArgs("portal",args)
for _, positional in ipairs(args) do
table.insert(portalList, positional)
end
result = portalBar(portalList, {tracking=args.tracking, qid=args.qid})
end
local hasSister = yesNo(args.auto,true)
for _, sister in ipairs(sisters) do
if hasSister then
break
end
if args[sister] ~= nil then
hasSister = true
end
end
if hasSister then
sisterBar = require('মডিউল:সহপ্রকল্প সংযোগসমূহ')._main
local sisterArgs = {auto=1, bar=1, display=args.display, tracking=args.tracking, qid=args.qid}
for _, t in ipairs(sisters) do
sisterArgs[t] = args[t..'-search'] or yesNo(args[t],true)
end
result = result..sisterBar(sisterArgs)
end
return result
end
function p.main(frame)
-- If called via #invoke, use the args passed into the invoking template,
-- or the args passed to #invoke if any exist. Otherwise assume args are
-- being passed directly in from the debug console or from another Lua module.
local args = getArgs(frame)
return p._main(args)
end
return p