Module:Redirect: Difference between revisions

Copying change per request of AlexTheWhovian. Please revert me if this causes some sort of error
(handle redirects that pipe their link)
(Copying change per request of AlexTheWhovian. Please revert me if this causes some sort of error)
Line 28:
-- Gets the target of a redirect. If the page specified is not a redirect,
-- returns nil.
function p.getTarget(page, fulltext)
-- Get the title object. Both page names and title objects are allowed
-- as input.
Line 52:
local targetTitle = getTitle(target)
if targetTitle then
if fulltext then
return targetTitle.prefixedText
return targetTitle.fullText
else
return targetTitle.prefixedText
end
else
return nil
Line 61 ⟶ 65:
error(string.format(
'could not parse redirect on page "%s"',
fulltext and titleObj.fullText or titleObj.prefixedText
))
end
Line 75 ⟶ 79:
-- target cannot be determined for some reason.
--]]
function p.luaMain(rname, bracket, fulltext)
if type(rname) ~= "string" or not rname:find("%S") then
return nil
Line 81 ⟶ 85:
bracket = bracket and "[[%s]]" or "%s"
rname = rname:match("%[%[(.+)%]%]") or rname
local target = p.getTarget(rname, fulltext)
local ret = target or rname
ret = getTitle(ret)
if ret then
if fulltext then
ret = ret.prefixedText
ret = ret.fullText
else
ret = ret.prefixedText
end
return bracket:format(ret)
else
Line 95 ⟶ 103:
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {frameOnly = true})
return p.luaMain(args[1], args.bracket, args.fulltext) or ''
end
 
Anonymous user