Module:Redirect-distinguish: Difference between revisions

From escforumwiki
Jump to navigation Jump to search
Santos (talk | contribs)
m 1 revision imported
 
Santos (talk | contribs)
m 1 revision imported
 
(One intermediate revision by one other user not shown)
Line 20: Line 20:
end
end
local redirectTitle = mw.title.new(args[1])
local redirectTitle = mw.title.new(args[1])
if redirectTitle and redirectTitle.exists then
local currentTitle = currentTitle or mw.title.getCurrentTitle()
if not redirectTitle.isRedirect then
if
args[1] = args[1] .. '[[Category:Articles with redirect hatnotes needing review]]'
string.match(args[1], 'REDIRECT%d+') or
args[1] == 'TERM' or
currentTitle.namespace ~= 0
then
--do nothing
elseif not redirectTitle or not redirectTitle.exists then
args[1] = args[1] .. '[[Category:Missing redirects]]'
elseif not redirectTitle.isRedirect then
if string.find(redirectTitle:getContent(), '#invoke:RfD') then
args[1] = args[1] ..
'[[Category:Articles with redirect hatnotes impacted by RfD]]'
else
args[1] = args[1] ..
'[[Category:Articles with redirect hatnotes needing review]]'
end
end
elseif not string.match(args[1], 'REDIRECT%d+') and not args[1] == 'TERM' then
args[1] = args[1] .. '[[Category:Missing redirects]]'
end
end
if not args[2] then
if not args[2] then
Line 38: Line 49:
local redirect = table.remove(args, 1)
local redirect = table.remove(args, 1)
local text = string.format(
local text = string.format(
'"%s" redirects here. It is not to be confused with %s.',
'"%s" redirects here. Not to be confused with %s.',
redirect,
redirect,
mHatlist.orList(args, true)
mHatlist.orList(args, true)

Latest revision as of 12:19, 9 October 2024

Documentation for this module may be created at Module:Redirect-distinguish/doc

local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments --initialize lazily
local mTableTools = require('Module:TableTools')
local p = {}

function p.redirectDistinguish (frame)
	mArguments = require('Module:Arguments')
	local args = mArguments.getArgs(frame)
	return p._redirectDistinguish(args)
end

function p._redirectDistinguish(args)
	if not args[1] then
		return mHatnote.makeWikitextError(
			'no redirect supplied',
			'Template:Redirect-distinguish',
			args.category
		)
	end
	local redirectTitle = mw.title.new(args[1])
	local currentTitle = currentTitle or mw.title.getCurrentTitle()
	if
		string.match(args[1], 'REDIRECT%d+') or
		args[1] == 'TERM' or
		currentTitle.namespace ~= 0
	then
		--do nothing
	elseif not redirectTitle or not redirectTitle.exists then
		args[1] = args[1] .. '[[Category:Missing redirects]]'
	elseif not redirectTitle.isRedirect then
		if string.find(redirectTitle:getContent(), '#invoke:RfD') then
			args[1] = args[1] ..
				'[[Category:Articles with redirect hatnotes impacted by RfD]]'
		else
			args[1] = args[1] ..
				'[[Category:Articles with redirect hatnotes needing review]]'
		end
	end
	if not args[2] then
		return mHatnote.makeWikitextError(
			'no page to be distinguished supplied',
			'Template:Redirect-distinguish',
			args.category
		)
	end
	args = mTableTools.compressSparseArray(args)
	--Assignment by removal here makes for convenient concatenation later
	local redirect = table.remove(args, 1)
	local text = string.format(
		'"%s" redirects here. Not to be confused with %s.',
		redirect,
		mHatlist.orList(args, true)
	)
	return mHatnote._hatnote(text)
end

return p