Difference between revisions of "Module:T"

From Idlescape Wiki
Jump to navigation Jump to search
(Added new module)
 
m
 
(2 intermediate revisions by the same user not shown)
Line 36: Line 36:
 
     uri = mw.uri.fullUrl(link)
 
     uri = mw.uri.fullUrl(link)
 
      
 
      
 +
while args[i+1] ~= nil do
 +
v = args[i+1]
 +
targs[i] = v
 +
i = i + 1
 +
end
 +
 
     -- generate a list of args and params     
 
     -- generate a list of args and params     
 
     for k, v in pairs(args) do
 
     for k, v in pairs(args) do
Line 42: Line 48:
 
             if type(k) == 'string' then
 
             if type(k) == 'string' then
 
                 v = k .. '=' .. v
 
                 v = k .. '=' .. v
 +
targs[i] = v
 +
i = i + 1
 
             end
 
             end
 
          
 
          
            targs[i] = v
 
            i = i + 1
 
 
         end
 
         end
 
     end
 
     end
       
 
 
      
 
      
 
     targs = table.concat(targs, '|')
 
     targs = table.concat(targs, '|')

Latest revision as of 16:03, 14 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)
    
	while args[i+1] ~= nil do
		v = args[i+1]
		targs[i] = v
		i = i + 1
	end

    -- 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
				targs[i] = v
				i = i + 1
            end
        
        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