Modul:Redirect hatnote: Unterschied zwischen den Versionen

K
39 Versionen von wpen:Module:Redirect_hatnote importiert
(Updated from sandbox to fix argument initialization bug)
K (39 Versionen von wpen:Module:Redirect_hatnote importiert)
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 13: Zeile 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, ...)
if success then
return success and titleObj or nil
return titleObj
else
return nil
end
end
end
--------------------------------------------------------------------------------
-- Main functions
--------------------------------------------------------------------------------


function p.redirect(frame)
function p.redirect(frame)
Zeile 59: Zeile 64:
local formattedRedirect = {}
local formattedRedirect = {}
for k,v in pairs(redirect) do
for k,v in pairs(redirect) do
formattedRedirect[k] = '"' .. v .. '"'
formattedRedirect[k] = mHatnote.quote(v)
end
end
local text = {
local text = {
Zeile 76: Zeile 81:
--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
Zeile 82: Zeile 88:
and currentTitle.namespace == 0 or currentTitle.namespace == 14
and currentTitle.namespace == 0 or currentTitle.namespace == 14
then
then
redirectTitle = redirectTitle or getTitle(v)
redirTitle = redirectTitle or getTitle(v)
if not redirectTitle or not redirectTitle.exists then
if not redirTitle or not redirTitle.exists then
addCategory('Missing redirects')
addCategory('Missing redirects')
elseif not redirectTitle.isRedirect then
elseif not redirTitle.isRedirect then
addCategory('Articles with redirect hatnotes needing review')
if string.find(redirTitle:getContent(), '#invoke:RfD') then
addCategory('Articles with redirect hatnotes impacted by RfD')
else
addCategory('Articles with redirect hatnotes needing review')
end
else
else
local mRedirect = require('Module:Redirect')
local target = targetTitle or redirTitle.redirectTarget
local target = mRedirect.getTarget(redirectTitle)
target = targetTitle or target and getTitle(target)
if target and target ~= currentTitle then
if target and target ~= currentTitle then
addCategory('Articles with redirect hatnotes needing review')
addCategory('Articles with redirect hatnotes needing review')
Zeile 99: Zeile 107:
-- 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 redirectTitle and redirectTitle.namespace ~= 0
and redirTitle and redirTitle.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