Module:Redirect: Difference between revisions

m
46 revisions imported from wikipedia:Module:Redirect
(Copying change per request of AlexTheWhovian. Please revert me if this causes some sort of error)
m (46 revisions imported from wikipedia:Module:Redirect)
 
(5 intermediate revisions by 5 users not shown)
Line 17:
-- redirect.
function p.getTargetFromText(text)
returnlocal target = string.match(
text,
"^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)%]%]"
Line 24:
"^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)|[^%[%]]-%]%]"
)
return target and mw.uri.decode(target, 'PATH')
end
 
Line 43 ⟶ 44:
), 2)
end
if not titleObj or not titleObj.isRedirect then
return nil
end
local targetTitle = getTitle(target)titleObj.redirectTarget
if targetTitle then
-- Find the target by using string matching on the page content.
if fulltext then
local target = p.getTargetFromText(titleObj:getContent() or "")
return targetTitle.fullText
if target then
local targetTitle = getTitle(target)
if targetTitle then
if fulltext then
return targetTitle.fullText
else
return targetTitle.prefixedText
end
else
return niltargetTitle.prefixedText
end
else
return nil
-- The page is a redirect, but matching failed. This indicates a bug in
-- the redirect matching pattern, so throw an error.
error(string.format(
'could not parse redirect on page "%s"',
fulltext and titleObj.fullText or titleObj.prefixedText
))
end
end
Line 74 ⟶ 63:
-- target page name, or the passed page name when not a redirect. The passed
-- page name can be given as plain text or as a page link.
--
-- Returns page name as plain text, or when the bracket parameter is given, as a
-- page link. Returns an error message when page does not exist or the redirect
rtl-contributors
1,630

edits