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