Module:Stratagem type categories
Jump to navigation
Jump to search
This module is used in the {{Infobox Stratagem}}
template
Given a comma separated string list with no spaces, eg. "Orbital,Explosive", the code will output [[Category:{item} Stratagems]]
per item in the list.
The above documentation is transcluded from Module:Stratagem type categories/doc. (edit | history)
local getArgs = require("Module:Arguments").getArgs
local p = {}
function titleCase(str)
return ((str:gsub("^%l", string.upper)):gsub("%s%l", string.upper))
end
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
function p._main(args)
local categories=args[1]
local categoryList = ""
local last = 0
local i, _ = categories:find(",",0)
while (last ~= nil)
do
if (i == nil) then
categoryList = categoryList .. ('[[Category:%s Stratagems]]\n'):format(titleCase(categories:sub(last,categories:len())))
break
else
categoryList = categoryList .. ('[[Category:%s Stratagems]]\n'):format(titleCase(categories:sub(last,i-1)))
end
last = i+1
i = (categories:find(",",last+1))
end
return categoryList
end
return p