-- This module implements [[Template:Tfd links]]
local p = {}
local function urlencode(text)
-- Return equivalent of {{urlencode:text}}.
local function byte(char)
return string.format('%%%02X', string.byte(char))
end
return text:gsub('[^ %w%-._]', byte):gsub(' ', '+')
end
local function fullurllink(t, a, s)
return '[https://en.wikipedia.org/w/index.php?title=' .. urlencode(t) .. '&' .. a .. ' ' .. s .. ']'
end
function p.main(frame)
local args = frame:getParent().args
local ns = (((args['catfd'] and args['catfd'] ~= '') and 'Category') or
(args['module'] and args['module'] ~= '') and 'Module')
or 'Template'
local tname = mw.getContentLanguage():ucfirst(args['1'])
local fname = ns .. ':' .. tname
local fullpagename = frame:preprocess('{{FULLPAGENAME}}')
local sep = ' <b>·</b> '
local res = '<span id="' .. ns .. ':' .. tname
.. '" class="plainlinks nourlexpansion 1x">'
.. '[[:' .. ns .. ':' .. tname .. ']] ('
.. '[[' .. ns .. ' talk:' .. tname .. '|talk]]' .. sep
.. '[[Special:PageHistory/' .. fname .. '|history]]' .. sep
.. fullurllink('Special:Whatlinkshere/' .. fname, 'limit=5000&hidelinks=1&hideredirs=1', 'transclusions') .. sep
.. fullurllink('Special:Log', 'page=' .. urlencode(fname), 'logs') .. sep
.. '[[Special:PrefixIndex/' .. fname .. '/|subpages]])</span>'
return res
end
return p