Module:Outils : Différence entre versions
(abr : l'abrévitation discrète est plus utilisée donc autant simplifier sont utilisation.) |
m |
||
Ligne 1 : | Ligne 1 : | ||
− | local | + | local Outils = { } |
-- trim nettoie un paramètre non nommé (supprime les espaces et retours ligne au début et à la fin) | -- 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. | -- retourne nil si le texte est vide ou n'est pas du texte. Les nombres ne sont PAS considérés comme du texte. | ||
− | function | + | function Outils.trim( texte ) |
if type( texte ) == "string" and texte ~= "" then | if type( texte ) == "string" and texte ~= "" then | ||
return mw.text.trim( texte ) | return mw.text.trim( texte ) | ||
Ligne 13 : | Ligne 13 : | ||
-- 1 - tableau contenant tous paramètres | -- 1 - tableau contenant tous paramètres | ||
-- 2, ... - les noms des paramètres qui doivent êtres testés. | -- 2, ... - les noms des paramètres qui doivent êtres testés. | ||
− | function | + | function Outils.validTextArg( args, name, ... ) |
− | local texte = | + | local texte = Outils.trim( args[name] ) |
if texte then | if texte then | ||
return texte | return texte | ||
end | end | ||
if select( '#', ... ) > 0 then | if select( '#', ... ) > 0 then | ||
− | return | + | return Outils.validTextArg( args, ... ) |
end | end | ||
end | end | ||
Ligne 27 : | Ligne 27 : | ||
-- 1 - tableau contenant tous paramètres | -- 1 - tableau contenant tous paramètres | ||
-- 2, ... - les noms des paramètres qui doivent êtres testés. | -- 2, ... - les noms des paramètres qui doivent êtres testés. | ||
− | function | + | function Outils.validArg( args, name, ... ) |
local arg = args[name] | local arg = args[name] | ||
local targ = type( arg ) | local targ = type( arg ) | ||
Ligne 40 : | Ligne 40 : | ||
end | end | ||
if select( '#', ... ) > 0 then | if select( '#', ... ) > 0 then | ||
− | return | + | return Outils.validArg( args, ... ) |
end | end | ||
end | end | ||
Ligne 50 : | Ligne 50 : | ||
-- 2, ... - une liste de nom de paramètre pour déterminé si les paramètres sont transmis par #invoke: | -- 2, ... - une liste de nom de paramètre pour déterminé si les paramètres sont transmis par #invoke: | ||
-- le premier paramètre sera systématiquement testé. | -- le premier paramètre sera systématiquement testé. | ||
− | function | + | function Outils.extractArgs ( frame, ... ) |
if type( frame ) == 'table' then | if type( frame ) == 'table' then | ||
if type( frame.getParent ) == 'function' then | if type( frame.getParent ) == 'function' then | ||
− | if | + | if Outils.validArg( frame.args, 1, ...) then |
return frame.args | return frame.args | ||
else | else | ||
Ligne 68 : | Ligne 68 : | ||
-- fonction abréviation discrète, abréviation (discrète par défaut) | -- fonction abréviation discrète, abréviation (discrète par défaut) | ||
-- paramètres : 1 = abréviation, 2 = texte, 3 = langue, visible = abréviation simple | -- paramètres : 1 = abréviation, 2 = texte, 3 = langue, visible = abréviation simple | ||
− | function | + | function Outils.abr( frame ) |
local args = extractArgs( frame ) | local args = extractArgs( frame ) | ||
if args[2] == nil then | if args[2] == nil then | ||
Ligne 92 : | Ligne 92 : | ||
− | return | + | return Outils |
Version du 8 septembre 2013 à 11:43
La documentation pour ce module peut être créée à Module:Outils/doc
local Outils = { } -- 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. function Outils.trim( texte ) if type( texte ) == "string" and texte ~= "" then return mw.text.trim( texte ) end end -- validArg 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. function Outils.validTextArg( args, name, ... ) local texte = Outils.trim( args[name] ) if texte then return texte end if select( '#', ... ) > 0 then return Outils.validTextArg( args, ... ) end end -- validArg renvoie le premier paramètre non vide ou nul. -- Paramètre : -- 1 - tableau contenant tous paramètres -- 2, ... - les noms des paramètres qui doivent êtres testés. function Outils.validArg( args, name, ... ) local arg = args[name] local targ = type( arg ) if targ == "string" and arg ~= "" then return mw.text.trim( arg ) end if targ == 'number' and arg ~= 0 or targ == 'table' and #arg > 0 or arg == true then return arg end if select( '#', ... ) > 0 then return Outils.validArg( args, ... ) end end -- extractArgs permet de récupérer les arguements du modèle, -- ou la table transmise à la fonction par une autre fonction d'un module -- Paramètres : -- 1 - un objet frame ou une table contenant les paramètre -- 2, ... - une liste de nom de paramètre pour déterminé si les paramètres sont transmis par #invoke: -- le premier paramètre sera systématiquement testé. function Outils.extractArgs ( frame, ... ) if type( frame ) == 'table' then if type( frame.getParent ) == 'function' then if Outils.validArg( frame.args, 1, ...) then return frame.args else return frame.getParent() end else return frame end else return { frame } end end -- fonction abréviation discrète, abréviation (discrète par défaut) -- paramètres : 1 = abréviation, 2 = texte, 3 = langue, visible = abréviation simple function Outils.abr( frame ) local args = extractArgs( frame ) if args[2] == nil then return args[1] or '' -- retoune l'abréviation ou au minimum une chaine vide s'il n'y a pas de texte end local wikiText = { '<abbr' } if not args.visible then table.insert( wikiText, ' class="abbr"' ) end table.insert( wikiText, ' title="' ) table.insert( wikiText, args[2] ) if args[3] then table.insert( wikiText, '" lang="' ) table.insert( wikiText, args[3] ) end table.insert( wikiText, '">' ) table.insert( wikiText, args[1] ) table.insert( wikiText, '</abbr>' ) return table.concat( wikiText ) end return Outils