(on reposait déjà sur le modèle pour que les paramètres 1 et 2 soient toujours définis, autant aller jusqu'au bout et aussi reposer sur lui pour trimmer les valeurs (refs 209387776) ; et j'ajoute un commentaire code pour se prémunir de l'introduction de régression) |
m (1 version importée : Infobox) |
(Aucune différence)
|
Version du 15 novembre 2023 à 12:11
La documentation pour ce module peut être créée à Module:Dièse couleur web/doc
local p = {}
function p.couleur( value, echappe )
if echappe == nil then
echappe = false
end
if value:sub( 1, 1 ) == '#' then
-- déjà un code hexadécimal précédé du "#"
if echappe then
return '#' .. value:sub( 2 )
else
return value
end
elseif ( #value == 6 or #value == 3 or #value == 8 or #value == 4 ) and value:match( '^%x+$' ) then
-- code hexadécimal auquel on ajoute le "#" manquant
if echappe then
return '#' .. value
else
return '#' .. value
end
else
-- nom de couleur HTML
return value
end
end
function p.main( frame )
-- les valeurs sont trimmées par le modèle (utilisation de paramètres nommés)
local value = frame.args[ 1 ]
if value == '' then
value = frame.args[ 2 ]
end
-- paramètre "echappe" à true,
-- pour échappement de l'éventuel "#" en début de résultat, en raison de [[phab:T14974]]
return p.couleur( value, true )
end
return p