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

De Musique du Saguenay–Lac-Saint-Jean
Aller à la navigation Aller à la recherche
Modèle:Infobox_Musique_(artiste)>Od1n
(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)
m (1 version importée)
 
(3 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
-- http://lua-users.org/wiki/StringTrim
local function trim( s )
    return s:match( '^()%s*$' ) and '' or s:match( '^%s*(.*%S)' )
end
local p = {}
local p = {}


Ligne 31 : Ligne 26 :


function p.main( frame )
function p.main( frame )
     local value = trim( frame.args[ 1 ] )
    local args = frame.args
 
     local value = mw.text.trim( args[ 1 ] or '' )
     if value == '' then
     if value == '' then
         value = trim( frame.args[ 2 ] )
         value = mw.text.trim( args[ 2 ] or '' )
     end
     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 actuelle datée du 22 mars 2024 à 19:16

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 )
    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