Template:T

From Melvor Idle
Revision as of 15:18, 18 September 2020 by Falterfire (talk | contribs) (Continuing to commandeer random stuff from the OSRS wiki)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

-- <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)
   
   -- 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 '{{[' .. tostring(uri) ..  ' ' .. args[1] .. ']' .. targs .. '}}'

end

return p