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: | Line 7: | ||
function p.main(frame) |
function p.main(frame) |
||
local args = frame:getParent().args |
local args = frame:getParent().args |
||
return p._main(args) |
|||
end |
|||
function p._main(args) |
|||
local link = args[1] |
local link = args[1] |
||
local uri |
local uri |
||
Line 29: | Line 25: | ||
-- check for valid namespace else prepend Template: |
-- check for valid namespace else prepend Template: |
||
if not (ns == '' or mw.site.namespaces[ns]) then |
if not (ns == '' or mw.site.namespaces[ns]) or ns == link then |
||
link = 'Template:' .. link |
link = 'Template:' .. link |
||
end |
end |
||
Line 49: | Line 45: | ||
end |
end |
||
local pipeChar = frame:extensionTag{ name='nowiki', content = '|' } |
|||
targs = table.concat(targs, |
targs = table.concat(targs, pipeChar) |
||
if targs ~= '' then |
if targs ~= '' then |
||
targs = |
targs = pipeChar .. targs |
||
end |
end |
||
return '<code>{{[' .. tostring(uri) .. ' ' .. args[1] .. ']' .. targs .. '}}</code>' |
return '<span class="plainlinks"><code>{{[' .. tostring(uri) .. ' ' .. args[1] .. ']' .. targs .. '}}</code></span>' |
||
end |
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