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

Une page de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
on reposait déjà sur le modèle pour que les paramètres 1 et 2 soient toujours définis, autant aller jusqu'au bout et aussi reposer sur lui pour trimmer les valeurs (refs 209387776) ; et j'ajoute un commentaire code pour se prémunir de l'introduction de régression
Balise : Révoqué
à la réflexion, ça me dérange de reposer sur le modèle pour trimmer les valeurs ; on repose aussi sur lui pour transmettre les paramètres (dans frame.args), mais ça c'est obligé, à moins de passer par frame:getParent() ; pour trancher : considérer que le module peut être utilisé indépendamment, avec un #invoke, et que le modèle associé est seulement un sucre syntaxique
Balise : Révocation manuelle
Ligne 26 : Ligne 26 :


function p.main( frame )
function p.main( frame )
local value = mw.text.trim( frame.args[ 1 ] )
-- les valeurs sont trimmées par le modèle (utilisation de paramètres nommés)
local value = frame.args[ 1 ]
if value == '' then
if value == '' then
value = frame.args[ 2 ]
value = mw.text.trim( frame.args[ 2 ] )
end
end
-- paramètre "echappe" à true,
-- paramètre "echappe" à true,

Version du 10 décembre 2023 à 10:12

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