Cqm (Message Wall | contribs) mNo edit summary Tag: sourceedit |
(strip the other transclusion modifiers too) Tag: sourceedit |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 13: | Line 13: | ||
local i = 1 |
local i = 1 |
||
+ | -- strip transclusion modifiers ([[mw:Help:Magic words#Transclusion modifiers]]) |
||
− | -- strip subst/safesubst |
||
link = link |
link = link |
||
:gsub('safesubst:', '') |
:gsub('safesubst:', '') |
||
:gsub('subst:', '') |
:gsub('subst:', '') |
||
+ | :gsub('int:', '') |
||
+ | :gsub('msg:', '') |
||
+ | :gsub('msgnw:', '') |
||
+ | :gsub('raw:', '') |
||
ns = mw.text.split(link, ':')[1] |
ns = mw.text.split(link, ':')[1] |
||
Line 28: | Line 32: | ||
uri = mw.uri.fullUrl(link) |
uri = mw.uri.fullUrl(link) |
||
− | -- |
+ | -- generate a list of args and params |
− | table.remove(args, 1) |
||
⚫ | |||
for k, v in pairs(args) do |
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 |
||
⚫ | |||
⚫ | |||
⚫ | |||
+ | i = i + 1 |
||
end |
end |
||
− | |||
⚫ | |||
⚫ | |||
end |
end |
||
− | targs = table.concat(targs, ' |
+ | targs = table.concat(targs, '|') |
if targs ~= '' then |
if targs ~= '' then |
||
− | targs = ' |
+ | targs = '|' .. targs |
end |
end |
||
Latest revision as of 09:12, 6 August 2015
Documentation for this module may be created at Module:T/doc
-- <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]) 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, '|')
if targs ~= '' then
targs = '|' .. targs
end
return '<code>{{[' .. tostring(uri) .. ' ' .. args[1] .. ']' .. targs .. '}}</code>'
end
return p