Module:RedirectData

local p = {}

function p.getRedirectToNamespace(frame)

titleObject = mw.title.getCurrentTitle() -- check if this is a redirect

if titleObject.redirectTarget then

targetNamespace = titleObject.redirectTarget.nsText

return targetNamespace

end

return "Notaredirect"

end

function p.getTalkPage(frame) -- this is code written to check for the criteria to apply {{R to talk page}} - essentially, whether the redirect is outside of, and going into, a talk namespace

titleObject = mw.title.getCurrentTitle() -- check if this is a redirect

if titleObject.redirectTarget then

if not titleObject.isTalkPage then -- the current page is NOT a talk page

if titleObject.redirectTarget.isTalkPage then -- the target page IS a talk page

return "Yes"

end

end

return "No"

end

return "Notaredirect"

end

function p.getSubpageStatus(frame)

titleObject = mw.title.getCurrentTitle()

if titleObject.redirectTarget then -- check if this is a redirect

pageIsSubpage = titleObject.isSubpage

targetIsSubpage = titleObject.redirectTarget.isSubpage

if (pageIsSubpage or targetIsSubpage) then

if (pageIsSubpage and targetIsSubpage) then

return "Both" -- both are subpages, return three

elseif pageIsSubpage then

return "Onlypage" -- just the page is a subpage, target isn't, return one

else

return "Onlytarget" -- just the target is a subpage, the page isn't, return two

end

else -- neither page nor target is a subpage, return zero

return "Neither"

end

end

return "Notaredirect"

end

function p.toDisambig(frame) -- this checks if the page title contains (disambiguation), as well as if it's a talkpage

titleObject = mw.title.getCurrentTitle()

if titleObject.redirectTarget then -- check if this is a redirect

if string.match(titleObject.text, "(disambiguation)") then -- title contains (disambiguation)

if titleObject.isTalkPage then -- this is a talk page ({{R from unnecessary disambiguation}})

return "Talk"

else -- this is not a talkpage ({{R to disambiguation page}})

return "Article"

end

else -- title does not contain "(disambiguation)"

return "No"

end

end

return "Notaredirect"

end

return p