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

Une page de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
é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)
ajout d'un paramètre "echappe" à la fonction couleur(), ce qui permet de l'utiliser avec ou sans échappement du résultat ; en prime, on économise un string.sub() redondant quand on utilise la fonction main(), enfin bon…
Ligne 1 : Ligne 1 :
local p = {}
local p = {}


function p.couleur( value )
function p.couleur( value, echappe )
if echappe == nil then
echappe = false
end
if value:sub( 1, 1 ) == '#' then
if value:sub( 1, 1 ) == '#' then
return value -- déjà un code hexadécimal précédé du "#"
-- déjà un code hexadécimal précédé du "#"
if echappe then
return '#' .. result:sub( 2 )
else
return value
end
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 -- code hexadécimal auquel on ajoute le "#" manquant
-- code hexadécimal auquel on ajoute le "#" manquant
if echappe then
return '#' .. value
else
return '#' .. value
end
else
else
return value -- nom de couleur HTML
-- nom de couleur HTML
return value
end
end
end
end
Ligne 13 : Ligne 27 :
function p.main( frame )
function p.main( frame )
local value = mw.text.trim( frame.args[ 1 ] )
local value = mw.text.trim( frame.args[ 1 ] )
-- paramètre "echappe" à true,
local result = p.couleur( value )
-- é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]]
if result:sub( 1, 1 ) == '#' then
return p.couleur( value, true )
result = '#' .. result:sub( 2 )
end
return result
end
end



Version du 12 janvier 2022 à 10:04

 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 '#' .. result: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 = mw.text.trim( frame.args[ 1 ] )
    -- 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