Module:Redirect-distinguish: Difference between revisions
Jump to navigation
Jump to search
en>MusikBot II m (Changed protection settings for "Template:Redirect-distinguish": High-risk template or module: 2673 transclusions (more info) ([Edit=Require extended confirmed access] (indefinite) [Move=Require extended confirmed access] (indefinite))) |
en>Elli (Undid revision 1066390800 by Faster than Thunder (talk) yeah, no, this is inappropriate) |
||
Line 1: | Line 1: | ||
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 |
Revision as of 05:49, 18 January 2022
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