« Module:Charte » : différence entre les versions
Apparence
Aucun résumé des modifications Balises : Révocation manuelle Révoqué |
Aucun résumé des modifications Balise : Révoqué |
||
| Ligne 3 : | Ligne 3 : | ||
local chartes = { | local chartes = { | ||
biographie = { | biographie = { | ||
titre | titre = "#6eacdc9c", | ||
soustitre | soustitre = "#a9c8e09c", | ||
hr | hr = "#6eacdc9c", | ||
}, | }, | ||
empire = { | empire = { | ||
titre | titre = "#993333b0", | ||
soustitre | soustitre = "#831f1fc7", | ||
hr | hr = "#993333b0", | ||
}, | }, | ||
geographie = { | geographie = { | ||
titre | titre = "#209a57d9", | ||
soustitre | soustitre = "#209a57a8", | ||
hr | hr = "#209a57d9", | ||
}, | }, | ||
darkgods = { | darkgods = { | ||
titre | titre = "#000000cc", | ||
soustitre | soustitre = "#000000a3", | ||
hr | hr = "#000000a3", | ||
texte = "#ffffff", -- couleur du texte explicitement définie | |||
}, | }, | ||
defaut = { | defaut = { | ||
titre | titre = "#eaecf0", | ||
soustitre | soustitre = "#a2a9b1", | ||
hr | hr = "#eaecf0", | ||
} | } | ||
} | } | ||
| Ligne 42 : | Ligne 42 : | ||
end | end | ||
local function couleurDirect(charte, type) | local function couleurDirect(charte, type) | ||
charte = charte or "defaut" | charte = mw.ustring.lower(charte or "defaut") | ||
type = type or "titre" | type = type or "titre" | ||
-- Si on demande une couleur de texte mais qu'aucune n’est définie → ne rien retourner | |||
if type == "texte" then | if type == "texte" then | ||
if chartes[charte] and chartes[charte]. | if chartes[charte] and chartes[charte].texte then | ||
return chartes[charte]. | return chartes[charte].texte | ||
else | else | ||
return " | return "" -- chaîne vide : donc pas de color appliqué | ||
end | end | ||
end | end | ||
if | if isHexCode(charte) then | ||
return charte | |||
end | end | ||
if | if chartes[charte] and chartes[charte][type] then | ||
return chartes[charte][type] | return chartes[charte][type] | ||
end | end | ||
return chartes["defaut"][type] or "#dddddd" | |||
end | end | ||
function p.couleur(frameOrCharte, typeOrNil) | function p.couleur(frameOrCharte, typeOrNil) | ||
if type(frameOrCharte) == "table" and frameOrCharte.args then | if type(frameOrCharte) == "table" and frameOrCharte.args then | ||
local args = frameOrCharte.args | local args = frameOrCharte.args | ||
return couleurDirect(args["charte"], args["type"]) | return couleurDirect(args["charte"], args["type"]) | ||
else | else | ||
return couleurDirect(frameOrCharte, typeOrNil) | return couleurDirect(frameOrCharte, typeOrNil) | ||
end | end | ||
end | end | ||
function p.soustitre(frame) | function p.soustitre(frame) | ||
local charte = frame.args["charte"] or "defaut" | local charte = mw.ustring.lower(frame.args["charte"] or "defaut") | ||
return soustitres[charte] or soustitres["defaut"] | return soustitres[charte] or soustitres["defaut"] | ||
end | end | ||
return p | return p | ||
Version du 7 juin 2025 à 09:00
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 = "#000000cc",
soustitre = "#000000a3",
hr = "#000000a3",
texte = "#ffffff", -- couleur du texte explicitement définie
},
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 on demande une couleur de texte mais qu'aucune n’est définie → ne rien retourner
if type == "texte" then
if chartes[charte] and chartes[charte].texte then
return chartes[charte].texte
else
return "" -- chaîne vide : donc pas de color appliqué
end
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
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
function p.soustitre(frame)
local charte = mw.ustring.lower(frame.args["charte"] or "defaut")
return soustitres[charte] or soustitres["defaut"]
end
return p