Module:Stratagem type categories

From Helldivers Wiki
Jump to navigation Jump to search
Template-info.svg Documentation

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.

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