Module:Redirect: Difference between revisions
Content added Content deleted
en>Johnuniq (restore p.getTargetFromText which is used by Module:RfD which is causing "Lua error in Module:RfD at line 87: attempt to call upvalue 'getTargetFromText' (a nil value)") |
Vivaporius (talk | contribs) m (1 revision imported) |
||
Line 17: | Line 17: | ||
-- redirect. |
-- redirect. |
||
function p.getTargetFromText(text) |
function p.getTargetFromText(text) |
||
return string.match( |
|||
text, |
text, |
||
"^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)%]%]" |
"^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)%]%]" |
||
Line 24: | Line 24: | ||
"^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)|[^%[%]]-%]%]" |
"^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)|[^%[%]]-%]%]" |
||
) |
) |
||
return target and mw.uri.decode(target, 'PATH') |
|||
end |
end |
||
Line 44: | Line 43: | ||
), 2) |
), 2) |
||
end |
end |
||
if not titleObj then |
if not titleObj or not titleObj.isRedirect then |
||
return nil |
return nil |
||
end |
end |
||
⚫ | |||
-- Find the target by using string matching on the page content. |
|||
⚫ | |||
local target = p.getTargetFromText(titleObj:getContent() or "") |
|||
⚫ | |||
if target then |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
else |
|||
return targetTitle.prefixedText |
|||
end |
|||
else |
else |
||
return |
return nil |
||
end |
end |
||
else |
else |
||
-- The page is a redirect, but matching failed. This indicates a bug in |
|||
return nil |
|||
-- 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 |
||
end |
end |
||
Line 63: | Line 74: | ||
-- target page name, or the passed page name when not a redirect. The passed |
-- 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. |
-- 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 |
-- 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 |
-- page link. Returns an error message when page does not exist or the redirect |