Module:Tfd links

From No Subject
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Documentation for this module may be created at Module:Tfd links/doc

-- 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 
		((args['wikipedia'] and args['wikipedia'] ~= '') and 'Wikipedia'))
		or  'Template'
	local tname = mw.getContentLanguage():ucfirst(args['1'])
	local fname = ns .. ':' .. tname
	local fullpagename = frame:preprocess('{{FULLPAGENAME}}')
	local sep = '&nbsp;<b>·</b> '
	
	local res = '<span id="' .. ns .. ':' .. tname 
	.. '" class="plainlinks nourlexpansion 1x">'
	.. '[[:' .. ns .. ':' .. tname .. ']]&nbsp;('
	.. '[[' .. ns .. ' talk:' .. tname .. '|talk]]' .. sep
	.. '[[Special:PageHistory/' .. fname .. '|history]]' .. sep
	.. fullurllink('Special:Whatlinkshere/' .. fname, 'limit=5000&hidelinks=1', 'transclusions') .. sep
	.. fullurllink('Special:Log', 'page=' .. urlencode(fname), 'logs') .. sep
	.. '[[Special:PrefixIndex/' .. fname .. '/|subpages]])</span>'
	
	return res
end

return p