Module:Domwiki
From Domwiki
More actions
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