Module:T
Revision as of 19:34, 3 October 2022 by Jacmob (talk | contribs) (Created page with "-- <nowiki> -- Template:T -- local p = {} function p.main(frame) local args = frame:getParent().args return p._main(args) end function p._main(args) local link = args[1] local uri local targs = {} local ns local i = 1 -- strip transclusion modifiers (mw:Help:Magic words#Transclusion modifiers) link = link :gsub('safesubst:', '') :gsub('subst:', '') :gsub('int:', '') :gsub('msg:', '')...")
Module documentation
This documentation is transcluded from Module:T/doc. [edit] [history] [purge]
A template link with a variable number of parameters.
Use
To use this for templates, use
{{T|parameter 1|parameter 2|parameter 3|...|parameter 20}}
To use other namespaces, use the namespace as prefix, for example
{{T|User:Example}}
And to show transclusions of mainspace pages, use
{{T|:Bucket}}
Example
{{T|Stub}}
{{Stub}}
{{T|Stub|Item1|Item2|Item3|Item4|Item5|...}}
{{Stub|Item5|Item1|Item2|Item3|Item4|...}}
-- <nowiki> -- [[Template:T]] -- local p = {} function p.main(frame) local args = frame:getParent().args return p._main(args) end function p._main(args) local link = args[1] local uri local targs = {} local ns local i = 1 -- strip transclusion modifiers ([[mw:Help:Magic words#Transclusion modifiers]]) link = link :gsub('safesubst:', '') :gsub('subst:', '') :gsub('int:', '') :gsub('msg:', '') :gsub('msgnw:', '') :gsub('raw:', '') ns = mw.text.split(link, ':')[1] -- check for valid namespace else prepend Template: if not (ns == '' or mw.site.namespaces[ns]) then link = 'Template:' .. link end -- use fullUrl so it doesn't cause any wanted pages uri = mw.uri.fullUrl(link) -- generate a list of args and params for k, v in pairs(args) do -- because lua has no continue statement if k ~= 1 then if type(k) == 'string' then v = k .. '=' .. v end targs[i] = v i = i + 1 end end targs = table.concat(targs, '|') if targs ~= '' then targs = '|' .. targs end return '<code>{{[' .. tostring(uri) .. ' ' .. args[1] .. ']' .. targs .. '}}</code>' end return p