Module:T: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
(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:', '')...") |
No edit summary |
||
Line 7:
function p.main(frame)
local args = frame:getParent().args
local link = args[1]
local uri
Line 29 ⟶ 25:
-- check for valid namespace else prepend Template:
if not (ns == '' or mw.site.namespaces[ns]) or ns == link then
link = 'Template:' .. link
end
Line 49 ⟶ 45:
end
local pipeChar = frame:extensionTag{ name='nowiki', content = '|' }
targs = table.concat(targs,
if targs ~= '' then
targs =
end
return '<span class="plainlinks"><code>{{[' .. tostring(uri) .. ' ' .. args[1] .. ']' .. targs .. '}}</code></span>'
end
|
Latest revision as of 07:03, 15 November 2024
Module documentation
This documentation is transcluded from Module:T/doc. [edit] [history] [purge]
This module does not have any documentation. Please consider adding documentation at Module:T/doc. [edit]
Module:T's function main is invoked by Template:T.
-- <nowiki>
-- [[Template:T]]
--
local p = {}
function p.main(frame)
local args = frame:getParent().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]) or ns == link 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
local pipeChar = frame:extensionTag{ name='nowiki', content = '|' }
targs = table.concat(targs, pipeChar)
if targs ~= '' then
targs = pipeChar .. targs
end
return '<span class="plainlinks"><code>{{[' .. tostring(uri) .. ' ' .. args[1] .. ']' .. targs .. '}}</code></span>'
end
return p