Module:Charte
Apparence
La documentation pour ce module peut être créée à Module:Charte/doc
local p = {}
local chartes = {
biographie = {
titre = "#6eacdc9c",
soustitre = "#a9c8e09c",
hr = "#6eacdc9c"
},
empire = {
titre = "#993333b0",
soustitre = "#831f1fc7",
hr = "#993333b0"
},
geographie = {
titre = "#209a57d9",
soustitre = "#209a57a8",
hr = "#209a57d9"
},
darkgods = {
titre = "#ffffff", -- Titres blancs uniquement pour darkgods
soustitre = "#ffffff", -- Sous-titres blancs uniquement pour darkgods
hr = "#000000a3",
texte = "#ffffff"
},
defaut = {
titre = "#eaecf0",
soustitre = "#a2a9b1",
hr = "#eaecf0"
}
}
local soustitres = {
biographie = "Informations biographiques",
empire = "Données impériales",
geographie = "Informations géographiques",
darkgods = "Entité obscure",
defaut = "Informations générales"
}
local function isHexCode(value)
return type(value) == "string" and mw.ustring.match(value, "^#%x%x%x%x%x%x%x?$") ~= nil
end
local function couleurDirect(charte, type)
charte = mw.ustring.lower(charte or "defaut")
type = type or "titre"
-- Si darkgods et type titre ou soustitre, forcer blanc
if charte == "darkgods" and (type == "titre" or type == "soustitre") then
return "#ffffff"
end
if isHexCode(charte) then
return charte
end
if chartes[charte] and chartes[charte][type] then
return chartes[charte][type]
end
return chartes["defaut"][type] or "#dddddd"
end
-- Fonction principale appelée avec #invoke
function p.couleur(frameOrCharte, typeOrNil)
if type(frameOrCharte) == "table" and frameOrCharte.args then
local args = frameOrCharte.args
return couleurDirect(args["charte"], args["type"])
else
return couleurDirect(frameOrCharte, typeOrNil)
end
end
-- Renvoie un style de couleur texte complet uniquement si défini
function p.styleTexte(frame)
local charte = mw.ustring.lower(frame.args["charte"] or "defaut")
local couleurTexte = chartes[charte] and chartes[charte].texte
if couleurTexte then
return 'style="color: ' .. couleurTexte .. ';"'
else
return ""
end
end
-- Fournit un nom de sous-titre générique
function p.soustitre(frame)
local charte = mw.ustring.lower(frame.args["charte"] or "defaut")
return soustitres[charte] or soustitres["defaut"]
end
return p