Module:Resolve category redirect
Lua
CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules
Used by Template:Resolve category redirect, uses Module:Template redirect regex, see also Module:Redirect
Code
local p = {}
--Returns the target of {{Category redirect}}, if it exists, else returns the original cat.
function p.rtarget( cat )
if (mw.ustring.match( cat, '[{}!|]') ~= nil ) then
return cat
end
local title = mw.title.new( cat or '', 'Category' )
if (not title) then
return cat
end
local catcontent = title:getContent()
if string.match( catcontent or '', '{{ *[Cc]at' ) then
local getRegex = require('Module:Template redirect regex').main
local tregex = getRegex('Category redirect')
for _, v in pairs (tregex) do
local rtarget = mw.ustring.match( catcontent, v..'%s*|%s*([^|{}}]+)' )
if rtarget then
rtarget = mw.ustring.gsub(rtarget, '^1%s*=%s*', '')
rtarget = string.gsub(rtarget, '^[Cc]ategory:', '')
return rtarget
end
end
end
return cat
end
function p.main( frame )
local args = frame:getParent().args
local cat = args[1]
if (cat == '') or (cat == nil) then
return ''
end
return p.rtarget( cat )
end
return p