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

Une page de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
code de trim plus performant
ajout d'un paramètre optionnel, pour spécifier une valeur par défaut si le 1er paramètre est vide ; voir aussi la modif dans le modèle : 199529813
Ligne 32 : Ligne 32 :
function p.main( frame )
function p.main( frame )
local value = trim( frame.args[ 1 ] )
local value = trim( frame.args[ 1 ] )
if value == '' then
value = trim( frame.args[ 2 ] )
end
-- paramètre "echappe" à true,
-- paramètre "echappe" à true,
-- pour échappement de l'éventuel "#" en début de résultat, en raison de [[phab:T14974]]
-- pour échappement de l'éventuel "#" en début de résultat, en raison de [[phab:T14974]]

Version du 16 décembre 2022 à 04:36

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

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

-- http://lua-users.org/wiki/StringTrim
local function trim( s )
    return s:match( '^()%s*$' ) and '' or s:match( '^%s*(.*%S)' )
end

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 )
    local value = trim( frame.args[ 1 ] )
    if value == '' then
        value = trim( 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