Difference between revisions of "Module:Silent1/sandbox"
Jump to navigation
Jump to search
m |
m |
||
Line 1: | Line 1: | ||
+ | -- <nowiki> | ||
+ | -- [[Template:T]] | ||
+ | -- Shamelessly stolen from the OSRS wiki. Basically just gives an easy way to nowiki Template formatting | ||
+ | |||
local p = {} | local p = {} | ||
− | local | + | function p.main(frame) |
− | + | local args = frame:getParent().args | |
− | + | return p._main(args) | |
− | + | end | |
− | function p. | + | function p._main(args) |
− | + | local link = args[1] | |
− | + | local uri | |
− | + | local targs = {} | |
− | + | local ns | |
− | + | local i = 1 | |
− | + | ||
− | end | + | -- 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 ipairs(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 | ||
+ | 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 | ||
+ | targs[i] = v | ||
+ | i = i + 1 | ||
+ | end | ||
+ | |||
+ | end | ||
+ | end | ||
+ | |||
+ | targs = table.concat(targs, '|') | ||
− | + | if targs ~= '' then | |
− | + | targs = '|' .. targs | |
− | + | end | |
+ | |||
+ | return '<code>{{[' .. tostring(uri) .. ' ' .. args[1] .. ']' .. targs .. '}}</code>' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
end | end | ||
return p | return p |
Revision as of 13:27, 10 February 2022
-- <nowiki> -- [[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 ipairs(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 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 targs[i] = v i = i + 1 end end end targs = table.concat(targs, '|') if targs ~= '' then targs = '|' .. targs end return '<code>{{[' .. tostring(uri) .. ' ' .. args[1] .. ']' .. targs .. '}}</code>' end return p