Changes

MyWikiBiz, Author Your Legacy — Saturday September 06, 2025
Jump to navigationJump to search
1,472 bytes added ,  21:25, 15 July 2021
Pywikibot 6.4.0
-- Enumerates a given parameter set from the invoking template as a bullet list.
local getArgs = require('Module:Arguments').getArgs
local yesno = require("Module:Yesno")
local p = {}

function p.main(frame)
local args = getArgs(frame, {
trim = true,
removeBlanks = true
})

return p._main(frame, args)
end

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

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

function p._main(frame, args)
if not args[1] then
error("A parameter prefix to use was not found.")
end

local prefix = args[1]
local suffix = args[2] or ""
local parentArgs = frame:getParent() and getArgs(frame:getParent(), {
trim = true,
removeBlanks = true
}) or args
local finalOutput = ""

local list = mw.html.create(yesno(args["ordered"]) and "ol" or "ul")

local current = 1
local searching = true

mw.logObject(args)
mw.logObject(parentArgs)

while searching do
if parentArgs[prefix .. tostring(current) .. suffix] then
mw.log(prefix .. tostring(current) .. suffix)
mw.log(parentArgs[prefix .. tostring(current) .. suffix])
list:node(
mw.html.create("li")
:wikitext(parentArgs[prefix .. tostring(current) .. suffix])
)
current = current + 1
else
searching = false
end
end

return current == 1 and "" or tostring(list)
end

return p

Navigation menu