Difference between revisions of "Module:TfdLinks"

From MINR.ORG WIKI
m (14 revisions imported: Import Template Tlx and subtemplates)
 
(10 intermediate revisions by 3 users not shown)
Line 11: Line 11:
  
 
local function fullurllink(t, a, s)
 
local function fullurllink(t, a, s)
return '[//en.wikipedia.org/w/index.php?title=' .. t .. '&' .. a .. ' ' .. s .. ']'
+
return '[//en.wikipedia.org/w/index.php?title=' .. urlencode(t) .. '&' .. a .. ' ' .. s .. ']'
 
end
 
end
  
 
function p.main(frame)
 
function p.main(frame)
 
local args = frame:getParent().args
 
local args = frame:getParent().args
local ns = (args['catfd'] and args['catfd'] ~= '')  
+
local ns = ((args['catfd'] and args['catfd'] ~= '') and 'Category')
and 'Category' or 'Template'
+
or ((args['module'] and args['module'] ~= '') and 'Module')
 +
or 'Template'
 
local tname = mw.getContentLanguage():ucfirst(args['1'] or 'Example')
 
local tname = mw.getContentLanguage():ucfirst(args['1'] or 'Example')
 
local fname = ns .. ':' .. tname
 
local fname = ns .. ':' .. tname
 
local ymd = args['2'] or ''
 
local ymd = args['2'] or ''
 
local fullpagename = (ymd ~= '')
 
local fullpagename = (ymd ~= '')
and 'WP:Templates for discussion/Log' .. ymd
+
and 'WP:Templates for discussion/Log/' .. ymd
 
or frame:preprocess('{{FULLPAGENAME}}')
 
or frame:preprocess('{{FULLPAGENAME}}')
 
local sep = '&nbsp;<b>·</b> '
 
local sep = '&nbsp;<b>·</b> '
Line 32: Line 33:
 
if ymd ~= '' then
 
if ymd ~= '' then
 
local dmy = frame:expandTemplate{ title='date', args={ymd, 'dmy'} }  
 
local dmy = frame:expandTemplate{ title='date', args={ymd, 'dmy'} }  
res = res .. '[[' .. fullpagename .. '#' .. fname .. '|' .. dmy .. ') ('
+
res = res .. '[[' .. fullpagename .. '#' .. fname  
 +
.. '|' .. dmy .. ']]) ('
 
end
 
end
 
res = res .. fullurllink(fname, 'action=edit', 'edit') .. sep
 
res = res .. fullurllink(fname, 'action=edit', 'edit') .. sep
Line 43: Line 45:
 
res = res .. fullurllink('Special:Log', 'page='  
 
res = res .. fullurllink('Special:Log', 'page='  
 
.. urlencode(fname), 'logs') .. sep
 
.. urlencode(fname), 'logs') .. sep
res = res .. '[[Special:PrefixIndex/' .. fname .. '|subpages]]' .. sep
+
res = res .. '[[Special:PrefixIndex/' .. fname .. '/|subpages]]'
res = res .. fullurlink(fname, 'action=delete&wpReason='  
+
res = res .. '<span class="sysop-show">' .. sep .. fullurllink(fname, 'action=delete&wpReason='  
.. urlencode('[[' .. fullpagename .. '#' .. fname .. ']]'), 'delete')
+
.. urlencode('[[' .. fullpagename .. '#' .. fname .. ']]'), 'delete') .. '</span>'
 
res = res .. ')</span>'
 
res = res .. ')</span>'
 
 

Latest revision as of 19:29, 11 August 2017

Documentation for this module may be created at Module:TfdLinks/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 '[//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'] or 'Example')
	local fname = ns .. ':' .. tname
	local ymd = args['2'] or ''
	local fullpagename = (ymd ~= '')
		and	'WP:Templates for discussion/Log/' .. ymd
		or frame:preprocess('{{FULLPAGENAME}}')
	local sep = '&nbsp;<b>·</b> '
	
	local res = '<span id="' .. ns .. ':' .. tname 
		.. '" class="plainlinks nourlexpansion 1x">'
		.. '[[:' .. ns .. ':' .. tname .. ']]&nbsp;('
	
	if ymd ~= '' then
		local dmy = frame:expandTemplate{ title='date', args={ymd, 'dmy'} } 
		res = res .. '[[' .. fullpagename .. '#' .. fname 
			.. '|' .. dmy .. ']]) ('
	end
	res = res .. fullurllink(fname, 'action=edit', 'edit') .. sep
	res = res .. '[[' .. ns .. ' talk:' .. tname .. '|talk]]' .. sep
	res = res .. fullurllink(fname, 'action=history', 'history') .. sep
	if ns ~= 'Category' then
		res = res .. fullurllink('Special:Whatlinkshere/' 
			.. fname, 'limit=999', 'links') .. sep
	end
	res = res .. fullurllink('Special:Log', 'page=' 
		.. urlencode(fname), 'logs') .. sep
	res = res .. '[[Special:PrefixIndex/' .. fname .. '/|subpages]]'
	res = res .. '<span class="sysop-show">' .. sep .. fullurllink(fname, 'action=delete&wpReason=' 
		.. urlencode('[[' .. fullpagename .. '#' .. fname .. ']]'), 'delete') .. '</span>'
	res = res .. ')</span>'
	
	return res
end

return p