Module:Dièse couleur web

Wikimedia module / De Wikipedia, l'encyclopédie libre

-- http://lua-users.org/wiki/StringTrim local function trim( s )

   return s:match( '^()%s*$' ) and  or s:match( '^%s*(.*%S)' )

end

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