Module:Resolve code category name

From Wikipedia, the free encyclopedia
This is the current revision of this page, as edited by imported>Casablanca Rock at 22:07, 18 September 2025 (Create module). The present address (URL) is a permanent link to this version.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
local p = {}
local DEFAULT_CAT = "Category:Articles with example code"

local function category_exists(cat)
	local title = mw.title.new("Category:" .. cat)
	return title and title.exists
end

function p._resolve(lang)
	if not lang or lang == "" then
		return DEFAULT_CAT
	end

	local resolved_lang
	if lang:lower() == "cpp" then
		resolved_lang = "C++"
	else
		resolved_lang = lang:gsub("^%l", string.upper) -- First letter uppercase
	end

	local cat = "Category:Articles with example " .. resolved_lang .. " code"
	return category_exists(cat) and cat or DEFAULT_CAT
end

function p.resolve(frame)
	local arg = frame.args and frame.args[1]
	return p._resolve(arg)
end

return p