Module:Episode/Shared/Utils
Apparence
| Il sera peut-être nécessaire de créer une page documentation pour ce module Scribunto programmé dans la page créer Les éditeurs peuvent faire des tests sur les pages bac à sable (créer | miroir) et études de cas (créer) du module. Veuillez ajouter les catégories dans la sous-page /documentation. Sous-pages de ce module. |
-- Module:Episode/Shared/Utils
local p = {}
-- Normalize alias: lowercase, remove quotes/apostrophes, replace common accents, collapse spaces
function p.normalize_alias(s)
if not s then return nil end
local u = mw.ustring.lower(s)
u = mw.ustring.gsub(u, "[\"'`]", "")
local accents = {
["à"]="a", ["á"]="a", ["â"]="a", ["ä"]="a", ["ã"]="a", ["å"]="a",
["ç"]="c",
["è"]="e", ["é"]="e", ["ê"]="e", ["ë"]="e",
["ì"]="i", ["í"]="i", ["î"]="i", ["ï"]="i",
["ò"]="o", ["ó"]="o", ["ô"]="o", ["ö"]="o", ["õ"]="o",
["ù"]="u", ["ú"]="u", ["û"]="u", ["ü"]="u",
["œ"]="oe", ["æ"]="ae",
}
for a,b in pairs(accents) do
u = mw.ustring.gsub(u, a, b)
end
u = mw.ustring.gsub(u, "%s+", " ")
u = mw.ustring.gsub(u, "^%s*(.-)%s*$", "%1")
return u
end
-- Validate episode entry minimal shape
function p.validate_episode(ep)
if type(ep) ~= "table" then return false end
if not ep.id or not ep.season or not ep.episode then return false end
return true
end
return p