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

Une page de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
pas benchmarké, mais je présume que c'est légèrement plus performant
j'aime bien comme ça, un peu plus lisible je trouve
 
(11 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
local p = {}
local p = {}


function p.couleur(value)
function p.couleur( value, echappe )
if value:sub(1, 1) == '#' then
if echappe == nil then
return '#' .. value:sub(2)
echappe = false
end
elseif (#value == 6 or #value == 3) and value:match('^%x+$') then
return '#' .. value
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
else
-- nom de couleur HTML
return value
return value
end
end
end
end


function p.main(frame)
function p.main( frame )
local value = mw.text.trim(frame.args[1])
local args = frame.args

return p.couleur(value)
local value = mw.text.trim( args[ 1 ] or '' )
if value == '' then
value = mw.text.trim( args[ 2 ] or '' )
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
end



Dernière version du 10 décembre 2023 à 10:29

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

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

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 args = frame.args

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