Module:Redirect hatnote: Difference between revisions

Jump to navigation Jump to search
wp>Nihiltres
Updated from sandbox: Migrated p._quote to Module:Hatnote
m 1 revision imported
 
(2 intermediate revisions by 2 users not shown)
Line 13: Line 13:


local p = {}
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------


local function getTitle(...)
local function getTitle(...)
--Calls mw.title.new and returns either a title object, or nil on error
local success, titleObj = pcall(mw.title.new, ...)
local success, titleObj = pcall(mw.title.new, ...)
return success and titleObj or nil
if success then
return titleObj
else
return nil
end
end
end
--------------------------------------------------------------------------------
-- Main functions
--------------------------------------------------------------------------------


function p.redirect(frame)
function p.redirect(frame)
Line 64: Line 59:
local formattedRedirect = {}
local formattedRedirect = {}
for k,v in pairs(redirect) do
for k,v in pairs(redirect) do
formattedRedirect[k] = mHatnote.quote(v)
formattedRedirect[k] = '"' .. v .. '"'
end
end
local text = {
local text = {
Line 73: Line 68:
-- Functionality for adding categories
-- Functionality for adding categories
local categoryTable = {}
local categoryTable = {}
local function addCategory(cat)
function addCategory(cat)
if cat and cat ~= '' then
if cat and cat ~= '' then
-- Add by index to avoid duplicates
-- Add by index to avoid duplicates
Line 81: Line 76:
--Generate tracking categories
--Generate tracking categories
local mhOptions = {}
local mhOptions = {}
local redirTitle
for k,v in pairs(redirect) do
for k,v in pairs(redirect) do
-- We don't need a tracking category if the template invocation has been
-- We don't need a tracking category if the template invocation has been
Line 88: Line 82:
and currentTitle.namespace == 0 or currentTitle.namespace == 14
and currentTitle.namespace == 0 or currentTitle.namespace == 14
then
then
redirTitle = redirectTitle or getTitle(v)
redirectTitle = redirectTitle or getTitle(v)
if not redirTitle or not redirTitle.exists then
if not redirectTitle or not redirectTitle.exists then
addCategory('Missing redirects')
addCategory('Missing redirects')
elseif not redirTitle.isRedirect then
elseif not redirectTitle.isRedirect then
if string.find(redirTitle:getContent(), '#invoke:RfD') then
addCategory('Articles with redirect hatnotes needing review')
addCategory('Articles with redirect hatnotes impacted by RfD')
else
addCategory('Articles with redirect hatnotes needing review')
end
else
else
local target = targetTitle or redirTitle.redirectTarget
local mRedirect = require('Module:Redirect')
if target and target ~= currentTitle then
local target = mRedirect.getTarget(redirectTitle)
targetTitle = targetTitle or target and getTitle(target)
if targetTitle and targetTitle ~= currentTitle then
addCategory('Articles with redirect hatnotes needing review')
addCategory('Articles with redirect hatnotes needing review')
end
end
Line 107: Line 99:
-- Generate the options to pass to [[Module:Hatnote]].
-- Generate the options to pass to [[Module:Hatnote]].
if currentTitle.namespace == 0 and not mhOptions.selfref
if currentTitle.namespace == 0 and not mhOptions.selfref
and redirTitle and redirTitle.namespace ~= 0
and redirectTitle and redirectTitle.namespace ~= 0
then
then
-- We are on a mainspace page, and the hatnote starts with something
-- We are on a mainspace page, and the hatnote starts with something
Line 122: Line 114:
category = category .. k
category = category .. k
end
end
mhOptions.icon = 'WikimediaUI-ArticleDisambiguation-ltr.svg'


return mHatnote._hatnote(text, mhOptions) .. category
return mHatnote._hatnote(text, mhOptions) .. category