local yesNo = require("Module:Yesno")
local getArgs = require("Module:Arguments").getArgs
local banner = require("Module:WikiProject_banner")
local p = {}
end
--[[------------------------< getNamegetCanonicalCode >---------------------------------
Gets the fullcanonical namecode offor a task force. return tfData.canonicalCode
]]----------------------------------------------------------------------------
function p.getName(frame)
local args = getArgs(frame, { parentFirst = true })
local tfData = p._main(args)
if tfData then
return tfData.name
end
return nil
end
--[[------------------------< getNestedName >---------------------------------
Gets the nested name of a task force.
]]----------------------------------------------------------------------------
function p.getNestedName(frame)
local args = getArgs(frame, { parentFirst = true })
local tfData = p._main(args)
if tfData then
return tfData.nested
end
return nil
end
function p.main(frame)
--[[------------------------< getImage >---------------------------------
Gets the image filename for a task force.
]]----------------------------------------------------------------------------
function p.getImage(frame)
local args = getArgs(frame, { parentFirst = true })
local tfData =return p._main(args)
if tfData then
return tfData.image
end
return nil
end
-- Takes an input string "r" in the form "|a=b" (no spaces around the =) used in templates and adds it to the table
--[[------------------------< getCategory >---------------------------------
function p.tab2arg(trable,r)
Gets the category name for a task force.
local t = mw.text.split(r, "=", true, true) -- Split by comma, trim whitespace, remove empty strings
]]----------------------------------------------------------------------------
local x = mw.text.split(t[1], "|", true, true) -- Split by comma, trim whitespace, remove empty strings
function p.getCategory(frame)
local args = getArgs(frame, { parentFirst = true })
trable[x[2] ]=t[2]
local tfData = p._main(args)
return trable
if tfData then
return tfData.category
end
return nil
end
-- Adds an element to a table (syntactic sugar)
--[[------------------------< getLink >---------------------------------
function p.ma1(frame,s1,s2)
Gets the project link for a task force.
frame[s1]=s2
]]----------------------------------------------------------------------------
function p.getLink(frame)
local args = getArgs(frame, { parentFirst = true })
local tfData = p._main(args)
if tfData then
return tfData.link
end
return nil
end
--[[ pulls out our specially named parameter from the list of template-like args, and expands
--[[------------------------< getCanonicalCode >---------------------------------
Gets the canonical code for ait into the appropriate task force. table entries
]]--
]]----------------------------------------------------------------------------
function p.getCanonicalCodefudgeTaskforceParameters(frame)
local args = getArgs(frame, { parentFirst = true })
local tfDatataskforcesStr = p._main(args)""
taskforcesStr = args["HETF_TASKFORCES_TO_EXPAND"]
if tfData then
return tfData.canonicalCode
end
return nil
end
function p.main(frame)
local args = getArgs(frame, { parentFirst = true })
return p._main(args)
end
--[[------------------------< generateTaskforceParameters >---------------------------------
Generates the WikiProject banner parameters for a comma-separated list of task force codes.
Parameters:
* frame: The frame object.
Returns:
* A string containing the WikiProject banner parameters for the task forces.
]]----------------------------------------------------------------------------
function p.generateTaskforceParameters(frame)
local args = getArgs(frame, { parentFirst = true })
local taskforcesStr = p._main(args)
taskforcesStr = frame.args.taskforces
if not taskforcesStr then
return "oops" .. p._main(args)
end
local taskforceCodes = mw.text.split(taskforcesStr, ",", true, true) -- Split by comma, trim whitespace, remove empty strings
local paramsStr = ""
local tfCounter = 1
local trable=args
for _, code in ipairs(taskforceCodes) do
local tfData = p.getTaskForceData_main({code})
if tfData then
paramsStr = paramsStr .. trable = p.tab2arg(trable,string.format("\n|tf %d=%dyes", tfCounter,tfCounter))
paramsStrtrable = paramsStr p.. tab2arg(trable,string.format("\n|TF_%d_LINK=%s", tfCounter, tfData.link))
paramsStrtrable = paramsStr p.. tab2arg(trable,string.format("\n|TF_%d_NAME=%s", tfCounter, tfData.name))
paramsStrtrable = paramsStr p.. tab2arg(trable,string.format("\n|TF_%d_NESTED=%s", tfCounter, tfData.nested))
paramsStrtrable = paramsStr p.. tab2arg(trable,string.format("\n|TF_%d_IMAGE=%s", tfCounter, tfData.image))
paramsStrtrable = paramsStr p.. tab2arg(trable,string.format("\n|TF_%d_MAIN_CAT=%s", tfCounter, tfData.category))
tfCounter = tfCounter + 1
end
end
frame.args=trable
return frame
end
-- More or less a wrapper for WikiProject Banner with some argument sweetening
function p.hetf_banner(frame)
local oframe=frame
frame=p.fudgeTaskforceParameters(frame)
return banner.main(oframe)
return paramsStr
end
function p.printargs(frame)
local str=getArgs(frame, { parentFirst = true })
return str[1]
end
p[''] = function (frame) return p._main(frame.args) end
|