Difference between revisions of "Template:T"

From Melvor Idle
(Continuing to commandeer random stuff from the OSRS wiki)
 
(Copy+pasted the wrong thing initially)
Tag: Replaced
 
Line 1: Line 1:
-- <nowiki>
+
<includeonly><span class="plainlinks">{{#invoke:T|main}}</span></includeonly><noinclude>{{/doc}}</noinclude>
-- [[Template:T]]
 
-- Shamelessly stolen from the OSRS wiki. Basically just gives an easy way to nowiki Template formatting
 
 
 
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, '&#124;')
 
 
 
    if targs ~= '' then
 
        targs = '&#124;' .. targs
 
    end
 
   
 
    return '<code>{{[' .. tostring(uri) ..  ' ' .. args[1] .. ']' .. targs .. '}}</code>'
 
 
 
end
 
 
 
return p
 

Latest revision as of 15:18, 18 September 2020

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|...}}