Module:Redirect/sandbox: Difference between revisions

Content deleted Content added
use title objects to canonicalise the page name
format comments
Line 1:
-- This module provides functions for getting the target of a redirect page.
-- Given a single page name determines what page it redirects to and returns the 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 target cannot be determined for some reason.
 
-- Thus these are roughly the same:
-- [[{{#invoke:redirect|main|redirect-page-name}}]] and {{#invoke:redirect|main|redirect-page-name|bracket=yes}}
 
local p = {}
 
-- Gets a mw.title object, using pcall to avoid generating script errors if we
-- are over the expensive function count limit (among other possible causes).
local function getTitle(...)
local success, titleObj = pcall(mw.title.new, ...)
Line 18 ⟶ 14:
end
 
-- Gets the target of a redirect. If the page specified is not a redirect,
-- returns nil.
function p.getTarget(page)
-- Get the title object. Both page names and title objects are allowed
Line 59 ⟶ 57:
end
 
--[[
function p._main(rname, bracket)
-- Given a single page name determines what page it redirects to and returns the target page name, or the
-- target page name, or the passed page name when not a redirect. The passed
-- 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
-- page link. Returns an error message when page does not exist or the redirect
-- error message when page does not exist or the redirect target cannot be determined for some reason.
--]]
function p._mainluaMain(rname, bracket)
if type(rname) ~= "string" or not rname:find("%S") then
return nil
Line 76 ⟶ 83:
end
 
-- Provides access to the luaMain function from wikitext.
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame)
return p._mainluaMain(args[1], args.bracket) or ''
end