Module:Couleur

Une page de Wikipédia, l'encyclopédie libre.

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

Ce module est destiné à stocker des fonctions utiles sur le traitement des couleurs.

La fonction p.nuance permet d'obtenir un code de couleur en hexadécimal lorsqu'un nom de couleur reconnu est rentré en argument. Dans le cas où l'argument rentré ne constitue pas un nom de couleur reconnu, la fonction le renvoie à l'identique. Par exemple, si l'on rentre un code de couleur en hexadécimal, ce code sera renvoyé sans modification.

Modules externes et autres éléments dont ce module a besoin pour fonctionner[modifier le code]

  • Module:Couleur/Data – Tableau contenant la correspondance entre le nom des couleurs et le code hexadécimal correspondant.


Exemples[modifier le code]

{{#invoke:Couleur|nuance|ocre}} nous donne : c4a000

{{#invoke:Couleur|nuance|a27ed3}} nous donne : a27ed3





local p = {}

function p.nuance(frame)
	local nuancier = mw.loadData('Module:Couleur/Data')
	local param =frame.args[1]
	local code = nuancier[string.lower(param)]
	if code == nil then
		return param
	else
		return code
	end
end

-- fonction destiné à affiché l'ensemble des couleurs de 'Module:Couleur/Data'
-- destiné à la documentation de ce sous-module, pour aider à choisir une couleur.
function p.nuancier( frame )
	local list =  mw.loadData('Module:Couleur/Data')
	local sortList = {}
	for name, _ in pairs( list ) do
		table.insert( sortList, name )
	end
	table.sort( sortList )
	
	local colorNode = function( name, color )
		local node = mw.html.create( 'li' )
		node:cssText( 'display:inline-block; margin-left:.2em; width:7em; height:5em; vertical-align:top;' )
			:tag( 'div' )
				:cssText( 'border:1px solid grey; margin:.2em; padding:.2em;' )
				:css( 'background-color', '#' .. color )
				:wikitext( '\194\160' )
				:done()
			:wikitext( name )
			:done()
		return node
	end
	
	local root = mw.html.create( 'div' )
	root:addClass( 'mw-collapsible' )
		:cssText( 'margin:2em; border:1px solid grey; background-color:white; padding:0.2em 1em;' )
		:tag( 'h2' )
			:cssText( 'border:0; margin:.5em;' )
			:wikitext( 'Nuancier' )
			:done()
	local ul = root:tag( 'ul' )
		ul	:addClass( 'mw-collapsible-content' )
			:cssText( 'margin:0; text-align:center; font-size:90%; line-height:1.25em;' )
	for i, name in ipairs( sortList ) do
		ul	:node( colorNode( name, list[ name ] ) )
	end
	
	return tostring( root )
end

return p