« Module:Dièse couleur web » : différence entre les versions

Une page de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
code style mediawiki
échappement du "#" uniquement avec la fonction main(), invoquée par les modèles (à ce jour seulement {{Dièse couleur web}}, et c'est très bien comme cela), mais pas avec la fonction couleur(), appelée par les modules (à ce jour seulement Module:Infobox/Titre)
Ligne 3 : Ligne 3 :
function p.couleur( value )
function p.couleur( value )
if value:sub( 1, 1 ) == '#' then
if value:sub( 1, 1 ) == '#' then
return '#' .. value:sub( 2 )
return value -- déjà un code hexadécimal précédé du "#"
elseif ( #value == 6 or #value == 3 or #value == 8 or #value == 4 ) and value:match( '^%x+$' ) then
elseif ( #value == 6 or #value == 3 or #value == 8 or #value == 4 ) and value:match( '^%x+$' ) then
return '#' .. value
return '#' .. value -- code hexadécimal auquel on ajoute le "#" manquant
else
else
return value
return value -- nom de couleur HTML
end
end
end
end
Ligne 13 : Ligne 13 :
function p.main( frame )
function p.main( frame )
local value = mw.text.trim( frame.args[ 1 ] )
local value = mw.text.trim( frame.args[ 1 ] )
return p.couleur( value )
local result = p.couleur( value )
-- échappement de l'éventuel "#" en début de résultat, en raison de [[phab:T14974]]
if result:sub( 1, 1 ) == '#' then
result = '#' .. result:sub( 2 )
end
return result
end
end



Version du 12 janvier 2022 à 09:48

 Documentation[voir] [modifier] [historique] [purger]

Ce module Lua est utilisé par le modèle {{Dièse couleur web}}.

local p = {}

function p.couleur( value )
    if value:sub( 1, 1 ) == '#' then
        return value -- déjà un code hexadécimal précédé du "#"
    elseif ( #value == 6 or #value == 3 or #value == 8 or #value == 4 ) and value:match( '^%x+$' ) then
        return '#' .. value -- code hexadécimal auquel on ajoute le "#" manquant
    else
        return value -- nom de couleur HTML
    end
end

function p.main( frame )
    local value = mw.text.trim( frame.args[ 1 ] )
    local result = p.couleur( value )
    -- échappement de l'éventuel "#" en début de résultat, en raison de [[phab:T14974]]
    if result:sub( 1, 1 ) == '#' then
        result = '#' .. result:sub( 2 )
    end
    return result
end

return p