| Line 1: |
Line 1: |
| − | require('Module:No globals'); | + | require('strict'); |
| | | | |
| | local error_msg = '<span style=\"font-size:100%\" class=\"error\"><code style=\"color:inherit; border:inherit; padding:inherit;\">|_template=</code> missing or empty</span>'; | | local error_msg = '<span style=\"font-size:100%\" class=\"error\"><code style=\"color:inherit; border:inherit; padding:inherit;\">|_template=</code> missing or empty</span>'; |
| Line 249: |
Line 249: |
| | ]] | | ]] |
| | | | |
| | + | local function list(frame, do_link) |
| | + | local args = {}; -- table of default and live parameters and their values to be passed to the listed template |
| | + | local template; -- the name of the listed template |
| | | | |
| − | local function list (frame)
| + | template = _main (frame, args, true); -- get default and live parameters and the name of the listed template |
| − | local args = {}; -- table of default and live parameters and their values to be passed to the listed template
| + | if not template then -- template name is required |
| − | local template; -- the name of the listed template
| + | return error_msg; -- emit error message and abandon if template name not present |
| − | | + | end |
| − | template = _main (frame, args, true); -- get default and live parameters and the name of the listed template | + | if do_link then |
| − | if not template then -- template name is required | + | template = ('[[%s|%s]]'):format(frame:expandTemplate{ title='Transclude', args = {template} }, template) |
| − | return error_msg; -- emit error message and abandon if template name not present | + | end |
| | + | table.sort(args) |
| | + | for i = 1, #args do |
| | + | local stripped = args[i]:match('^' .. i .. '=([^=]*)$') |
| | + | if stripped then args[i] = stripped else break end |
| | end | | end |
| | + | return frame:preprocess(table.concat({ |
| | + | '<code style="color:inherit; background:inherit; border:none;">{{', |
| | + | template, |
| | + | ('<wbr><nowiki>|%s</nowiki>'):rep(#args):format(unpack(args)), '}}</code>'})); -- render the template |
| | + | end |
| | | | |
| − | return frame:preprocess (table.concat ({'<code style="color:inherit; background:inherit; border:none;"><nowiki>{{', template, ' |', table.concat( args, ' |' ), '}}</nowiki></code>'})); -- render the template | + | local function link (frame) |
| | + | return list(frame, true) |
| | end | | end |
| − |
| |
| | | | |
| | --[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------ | | --[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------ |
| Line 267: |
Line 279: |
| | | | |
| | return { | | return { |
| | + | link = link, |
| | list = list, | | list = list, |
| | wrap = wrap, | | wrap = wrap, |
| | }; | | }; |