Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Correct title categories

Permanently protected module
From Wikipedia, the free encyclopedia

local p = {}
function p.main(frame)
	local args = frame:getParent().args
	if args.nocat == "1" or args.nocat == "yes" then
		return ""
	end
	return p._main(frame.args[1])
end
function p._main(title)
	title = mw.text.unstripNoWiki(title)
	-- Decode HTML entities unless the title itself is demonstrating one
	if title:sub(1, 1) ~= "&" then
		title = mw.text.decode(title)
	end
	title = title:gsub("'","")
	-- Add a trailing "a" to distinguish empty from no fragment
	local titleObj = mw.title.new(title.."a")
	if not titleObj or title == "/." then
		if title:find("%[") or title:find("%]") or title:find("<") or title:find(">") or title:find("{") or title:find("}") then
			return "[[Category:Restricted titles (brackets)]]"
		elseif title:find("|") then
			return "[[Category:Restricted titles (vertical bar)]]"
		else
			return "[[Category:Restricted titles (other)]]"
		end
	elseif #titleObj.fragment > 0 then
		if #titleObj.text > 0 then
			return "[[Category:Restricted titles (non-leading number sign)]]"
		else
			return "[[Category:Restricted titles (leading number sign)]]"
		end
	elseif #titleObj.interwiki > 0 then
		return "[[Category:Restricted titles (interwiki prefix)]]"
	elseif not titleObj.isContentPage then
		return "[[Category:Restricted titles (namespace)]]"
	else
		return "[[Category:Pages using technically valid titles in correct title hatnotes]]"
	end
end
return p