Module:Enumerate Explained

-- Enumerates a given parameter set from the invoking template as a bullet list.local getArgs = require('Module:Arguments').getArgslocal yesno = require("Module:Yesno")local p =

function p.main(frame) local args = getArgs(frame,)

return p._main(frame, args)end

function startswith(target, prefix) return mw.ustring.sub(target, 1, mw.ustring.len(prefix))

prefixend

function endswith(target, suffix) return mw.ustring.sub(target, -mw.ustring.len(suffix), -1)

suffixend

function p._main(frame, args) local prefix = args[1] or args["prefix"] or "" local suffix = args[2] or args["suffix"] or "" local parentArgs = frame:getParent and getArgs(frame:getParent,) or args local finalOutput = "" local list = mw.html.create(yesno(args["ordered"]) and "ol" or "ul") local current = 1 local searching = true while searching do local arg = (prefix

"" and suffix

"") and current or prefix .. tostring(current) .. suffix if parentArgs[arg] then list:node(mw.html.create("li") :wikitext((args["pre"] or "") .. parentArgs[arg] .. (args["post"] or "")) ) current = current + 1 else searching = false end end return current

1 and "" or tostring(list)end

return p