Module:Template redirect regex

local p = {}

--returns a table of regular expressions, sorted by descending popularity, for a parent template and all redirects to it as of a certain date, or nil
--regex for the 1st pipe and surrounding whitespace are purposefully omitted to give the calling modules more flexibility
function p.main( template )

	--expand the following table as-needed, following the same format
	local tCanonical_templates = {
		['Category redirect'] = { 
			--the following 11 pages (6 condensed) redirect to [[Template:Category redirect]], as of 2022/9:
			'{{%s*[Cc]ate?g?o?r?y?[ _]*[rR]edirect',	--parent+505+312+243+1 transclusions
			'{{%s*[Cc]atr',								--21
			'{{%s*[Cc]at[ _]*[rR]edir',					--5+3
			'{{%s*[Cc]at[ _]*[rR]ed',					--3+2
			'{{%s*[Cc]at[ _]*[mM]ove',					--1
			'{{%s*[Cc]ategory[ _]*[mM]ove',				--0
		},
		
		['Taxonbar'] = { 
			--the following 6 pages (3 condensed) redirect to [[Template:Taxonbar]], as of 2023/8:
			'{{%s*[Tt]axon?[ _-]?[bB]ar',				--parent+50+11+2+2 transclusions
			'{{%s*[Tt]axon[Ii]ds',						--45
			'{{%s*[Tt]axon[ _]*[iI]dentifiers',			--1
			--detect direct calls to [[Module:Taxonbar]]
			'{{ *#invoke *: *[Tt]axonbar',
		},
		
		['Short description'] = { 
			--the following 4 pages (2 condensed) redirect to [[Template:Short description]], as of 2024/8:
			'{{%s*[Ss]hort[ _]?[dD]escription',			--parent+125+6 transclusions
			'{{%s*[Ss]hort[ _]?[d]esc',					--10+8
		},
	}
	
	return tCanonical_templates[template] or nil
end

return p