Module:Enumerate
This module is rated as beta, and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected. |
Usage
This module is meant to be invoked inside of a template, since it requires the argument list of the calling template.
This module allows the enumeration of a set of parameters with a given prefix. If the prefix was notes
, the parameters notes1
, notes2
, notes3
, and so on will be enumerated in a unordered list until it sees the first null parameter.
The prefix is defined by the first argument passed into the invocation.
Template:X35 |
---|
{{#invoke:Enumerate|main|notes}} |
Any page |
{{X35 | notes1 = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. | notes2 = Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. | notes3 = Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. | notes4 = Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. }} |
Output |
Module:Enumerate/doc/demo |
The entries will cut off in the event that the parameters are out of order.
Template:X35 |
---|
{{#invoke:Enumerate|main|notes}} |
Any page |
{{X35 | notes1 = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. | notes2 = Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. | notes3 = | notes4 = Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. }} |
Output |
Module:Enumerate/doc/demo |
Do note that
- REDIRECT Template:Template link
This page is a redirect. The following categories are used to track and monitor this redirect:
|
Examples
See also
-- 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, { frameOnly = true, trim = 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) local prefix = args[1] or args["prefix"] or "" local suffix = args[2] or args["suffix"] or "" local parentArgs = frame:getParent() and getArgs(frame:getParent(), { trim = true }) 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