Aller au contenu

Module:Dièse couleur web

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.

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

Utilisation

Ce module Lua est utilisé par le modèle {{Dièse couleur web}}. Il fournit une fonction permettant d'ajouter un éventuel # à un code hexadécimal pour en faire un code hexadécimal de couleur.

Fonctions exportables

  • main( frame ) – Prend en argument un frame de la forme { couleur, couleur_défaut }. Retourne couleur si couleur est non vide et #couleur si couleur est un code hexadécimal ; si couleur est vide, retourne la même chose pour couleur_défaut.
  • couleur( value, echappe )value est un code hexadécimal ou un nom de couleur, echappe est un booléen valant false par défaut. Retourne value si value est non vide et #value si value est un code hexadécimal. Si echappe vaut true, le # est échappé.

Modules externes et autres éléments dont ce module a besoin pour fonctionner

  • mw.text.trim – Enlève les espaces au début et à la fin d'une chaine de caractères.

Modèles appelant directement ce module

Modules lua utilisant ce module

Exemples

Appel depuis un modèle

Dans Modèle:Dièse couleur web, ce module est appelé par le code :

{{#invoke:Dièse couleur web|main|1={{{1}}}|2={{{2|}}}}}

Appel depuis un module

Dans Module:Infobox/Titre, ce module est appelé par le code :

local couleur = require( 'Module:Dièse couleur web' ).couleur

return 'background-color:' .. couleur( background ) .. ';'
		.. 'color:' .. couleur( color ) .. ';'
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