| 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 |