Module:T: Difference between revisions

From Brighter Shores Wiki
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, '&#124;')
targs = table.concat(targs, pipeChar)


if targs ~= '' then
if targs ~= '' then
targs = '&#124;' .. 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