Purpose
This module exists so that templates can list an arbitrary number of pages. It is used by notice templates such as Template:Merge.
Usage
{{#invoke:Page List|Main|default= <default>}}
- default — Default value to display if no pages are specified to the template.
Examples
# | Input | Output | Categories added |
---|---|---|---|
1 | {{Merge|Link|Zelda|Ganon}} | ||
2 | {{Merge|Link|Zelda|}} | ||
3 | {{Merge|Link}} | ||
4 | {{Merge}} |
local p = {}
local utilsMarkup = require("Module:UtilsMarkup")
local utilsString = require("Module:UtilsString")
local utilsTable = require("Module:UtilsTable")
function p.Main(frame)
local args = utilsTable.merge({}, frame.args, frame:getParent().args)
return p.main(args)
end
function p.main(args)
local default = args.default
local pages = utilsTable.filter(args, utilsString.notEmpty)
if #pages == 0 then
return default
end
pages = utilsTable.map(pages, utilsString.trim)
pages = utilsTable.map(pages, utilsMarkup.link)
local pageList = mw.text.listToText(pages)
return pageList
end
return p