Aller au contenu

Module:Episode/index

De Stargate Wiki Sémantique
Documentation icon Documentation module[créer]
local data = mw.loadData("Module:Episode/index/data")

local p = {}

local function normalize(s)
    s = s or ""
    s = mw.text.trim(s)

    -- Décomposition Unicode
    s = mw.ustring.toNFD(s)

    -- Suppression des diacritiques (accents)
    s = mw.ustring.gsub(s, "%pM", "")

    -- Apostrophes typographiques → apostrophe simple
    s = mw.ustring.gsub(s, "[’‘´`]", "'")

    -- Guillemets typographiques → guillemets simples
    s = mw.ustring.gsub(s, "[“”]", "\"")

    -- Tirets typographiques → tiret simple
    s = mw.ustring.gsub(s, "[–—−]", "-")

    -- Espaces multiples → un seul espace
    s = mw.ustring.gsub(s, "%s+", " ")

    -- Minuscule + trim final
    return mw.ustring.lower(mw.text.trim(s))
end

function p.get(key)
    return data[normalize(key)]
end

return p