RuneScape Wiki
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)
 
 
-- get a list of params and args
+
-- 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
if type(k) == 'string' then
+
-- because lua has no continue statement
v = k .. '=' .. v
+
if k ~= 1 then
  +
if type(k) == 'string' then
  +
v = k .. '=' .. v
 
end
 
 
targs[i] = v
  +
i = i + 1
 
end
 
end
 
targs[i] = v
 
i = i + 1
 
 
end
 
end
 
 
 
 
targs = table.concat(targs, '|')
+
targs = table.concat(targs, '|')
   
 
if targs ~= '' then
 
if targs ~= '' then
targs = '|' .. 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, '&#124;')

    if targs ~= '' then
        targs = '&#124;' .. targs
    end
    
    return '<code>{{[' .. tostring(uri) ..  ' ' .. args[1] .. ']' .. targs .. '}}</code>'

end

return p