Line 44: |
Line 44: |
| ), 2) | | ), 2) |
| end | | end |
− | if not titleObj or not titleObj.isRedirect then | + | if not titleObj then |
| return nil | | return nil |
| end | | end |
− |
| + | local targetTitle = titleObj.redirectTarget |
− | -- Find the target by using string matching on the page content.
| + | if targetTitle then |
− | local target = p.getTargetFromText(titleObj:getContent() or "") | + | if fulltext then |
− | if target then | + | return targetTitle.fullText |
− | local targetTitle = getTitle(target)
| |
− | if targetTitle then | |
− | if fulltext then | |
− | return targetTitle.fullText
| |
− | else
| |
− | return targetTitle.prefixedText
| |
− | end
| |
| else | | else |
− | return nil | + | return targetTitle.prefixedText |
| 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 75: |
Line 63: |
| -- 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 |