localOutils={}--[[ trim nettoie un paramètre non nommé (supprime les espaces et retours ligne au début et à la fin) retourne nil si le texte est vide ou n'est pas du texte. Les nombres ne sont PAS considérés comme du texte.]]functionOutils.trim(texte)iftype(texte)=='string'andtexte~=''then-- http://lua-users.org/wiki/StringTrimtexte=texte:match('^()%s*$')and''ortexte:match('^%s*(.*%S)')iftexte~=''thenreturntexteendendreturnnilend--[[ validTextArg renvoit le premier paramètre chaine non vide Paramètre : 1 - tableau contenant tous paramètres 2, ... - les noms des paramètres qui doivent êtres testés.]]functionOutils.validTextArg(args,name,...)localtexte=Outils.trim(args[name])iftextethenreturntexteendifselect('#',...)>0thenreturnOutils.validTextArg(args,...)endreturnnilend--[[ notEmpty renvoie le premier paramètre non vide ou nul. Paramètre : 1, ... - les variables qui doivent êtres testés.]]functionOutils.notEmpty(var,...)localtexte=Outils.trim(var)iftextethenreturntexteendlocaltvar=type(var)iftvar=='table'thenlocalnextFunc=pairs(var)-- n'utilise pas next car non défini par mw.loadDataifnextFunc(var)~=nilthenreturnvarendelseifvar==trueor(tvar=='number'andvar~=0)ortvar=='function'thenreturnvarendifselect('#',...)>0thenreturnOutils.notEmpty(...)endend--[[ extractArgs permet de récupérer les arguments du modèle, ou la table transmise à la fonction par une autre fonction d'un module Paramètre : 1 - un objet frame ou une table contenant les paramètres]]functionOutils.extractArgs(frame)iftype(frame.getParent)=='function'thenlocalargs=frame:getParent().argsfork,vinpairs(frame.args)doargs[k]=v;endreturnargselsereturnframeendendreturnOutils