Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 22:48, 14 May 2026 by Nadanke (talk | contribs) (Created page with "local p = {} local replacements = { ["'"] = "", ["’"] = "", ["`"] = "", [" "] = "-", [","] = "", ["%."] = "", [":"] = "", [";"] = "", ["!"] = "", ["%?"] = "", ["&"] = "and", ["é"] = "e", ["è"] = "e", ["ê"] = "e", ["ë"] = "e", ["á"] = "a", ["à"] = "a", ["â"] = "a", ["ä"] = "a", ["å"] = "a", ["í"] = "i", ["ì"] = "i", ["î"] = "i", ["ï"] = "i", ["ó"] = "o", ["ò"] = "o", ["ô"] = "o", ["ö"] = "o", ["ú"] = "u", ["ù"] = "u",...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:Domwiki/doc

local p = {}

local replacements = {
	["'"] = "",
	["’"] = "",
	["`"] = "",
	[" "] = "-",
	[","] = "",
	["%."] = "",
	[":"] = "",
	[";"] = "",
	["!"] = "",
	["%?"] = "",
	["&"] = "and",

	["é"] = "e",
	["è"] = "e",
	["ê"] = "e",
	["ë"] = "e",
	["á"] = "a",
	["à"] = "a",
	["â"] = "a",
	["ä"] = "a",
	["å"] = "a",
	["í"] = "i",
	["ì"] = "i",
	["î"] = "i",
	["ï"] = "i",
	["ó"] = "o",
	["ò"] = "o",
	["ô"] = "o",
	["ö"] = "o",
	["ú"] = "u",
	["ù"] = "u",
	["û"] = "u",
	["ü"] = "u",
	["ý"] = "y",
	["ÿ"] = "y",
	["ç"] = "c",
	["ñ"] = "n",
	["ø"] = "o",
	["æ"] = "ae",
	["œ"] = "oe",
	["ð"] = "d",
	["þ"] = "th",
	["å"] = "a",
}

local function slugify(s)
	s = mw.ustring.lower(s or "")

	for from, to in pairs(replacements) do
		s = mw.ustring.gsub(s, from, to)
	end

	s = mw.ustring.gsub(s, "[^a-z0-9%-]", "")
	s = mw.ustring.gsub(s, "%-+", "-")
	s = mw.ustring.gsub(s, "^%-", "")
	s = mw.ustring.gsub(s, "%-$", "")

	return s
end

function p.slug(frame)
	return slugify(frame.args[1] or "")
end

function p.nationFlagName(frame)
	local era = mw.ustring.lower(frame.args.era or "")
	local name = slugify(frame.args.name or "")
	return era .. "-" .. name .. ".png"
end

return p