Module:Drvlinks Explained

-- This module implements

local lang = mw.language.getContentLanguagelocal mToolbar = require('Module:Toolbar')

local p =

local function para(k, v) return string.format('|%s=%s', k, v or )end

local function makeWikilink(page, display) if display then return string.format('%s', page, display) else return string.format('%s', page) endend

local function makeExternalLink(url, display) -- The URL can be a URL string or a mw.uri object. url = tostring(url) return string.format('[%s %s]', url, display)end

function p._main(args, frame) frame = frame or mw.getCurrentFrame

-- Get the page name local page = args.pg if not page then error('no page name specified; please use ' .. para('pg', "pagename"), 2) end

-- Get the namespace table from mw.site.namespaces local ns = args.ns if type(ns)

'string' then ns = ns:lower ns = lang:ucfirst(ns) end ns = tonumber(ns) or ns if not ns or ns

'Article' then ns = 0 end ns = mw.site.namespaces[ns] if not ns or ns.id < 0 then -- Invalid parameter or a special namespace error(string.format('Invalid %s, please use "Article" or a namespace name listed ' .. 'at (excluding special namespaces)', para('ns') ), 2) end

-- Get the page links local pageLinks do local templateTitle if ns.id

0 then templateTitle = 'la' elseif ns.id

1 then templateTitle = 'lat' elseif ns.isTalk then templateTitle = 'lnt' else templateTitle = 'ln' end

local targs = if templateTitle

'ln' then targs[1] = ns.name targs[2] = page elseif templateTitle

'lnt' then targs[1] = ns.subject.name targs[2] = page else targs[1] = page end

pageLinks = frame:expandTemplate end

-- Get the tool links local toolLinks do local tlargs = local fullPageName if ns.id

0 then fullPageName = page else fullPageName = ns.name .. ':' .. lang:ucfirst(page) end

-- Restore link tlargs[#tlargs + 1] = makeWikilink('Special:Undelete/' .. fullPageName, 'restore' )

-- Google cache link local pageUrl = mw.uri.fullUrl(fullPageName) pageUrl = tostring(pageUrl) tlargs[#tlargs + 1] = makeExternalLink('https://www.google.com/search?q=cache:' .. pageUrl, 'cache' )

-- XfD link if ns.id ~= 6 and ns.id ~= 10 and ns.id ~= 14 then -- No XfD links for files, templates or categories. local xfdPage, display if ns.id

0 then xfdPage = 'Wikipedia:Articles for deletion/' .. fullPageName display = 'AfD' else xfdPage = 'Wikipedia:Miscellany for deletion/' .. fullPageName display = 'MfD' end tlargs[#tlargs + 1] = makeWikilink(xfdPage, display) end

toolLinks = mToolbar._main(tlargs) end

return pageLinks .. ' ' .. toolLinksend

function p.main(frame) local args = require('Module:Arguments').getArgs(frame,) return p._main(args, frame)end

return p