Changes
Module:Template wrapper (view source)
Revision as of 21:11, 21 October 2022
, 21:11, 21 October 2022Replace Module:No globals with require( "strict" )
Line 1:
Line 1:
−local function list (frame)+ 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+ +
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
− template = _main (frame, args, true); -- get default and live parameters and the name of the listed template
− if not template then -- template name is required
− 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,
};
};