Module:Liste éléments (Hexasoft 2013)
[voir] [modifier] [historique] [purger]
Utilisation
modifierFonctions exportables :
p.liste(frame)
– cette fonction affiche la liste de ses paramètres, dans l'ordre, séparés par un "⋅". Les paramètres sont déclarés insécables.- option "espaces=N" : permet d'indiquer combien d'espaces doivent être insérés autour du "⋅". Valeur par défaut 1.
- option "séparateur=texte" (ou "sép=texte") : permet de remplacer le séparateur par défaut "⋅" par le texte indiqué. Notez les valeurs spéciales suivantes :
- "2⋅" ou "⋅2" : fixe le séparateur à "⋅" et le nombre d'espaces à 2.
- "2•" ou "•2" : fixe le séparateur à "•" et le nombre d'espaces à 2.
- "espace" ou "" (vide) : fixe le séparateur à l'espace et le nombre d'espaces à 0.
Exemples
{{Utilisateur:Hexasoft/Modèle:Liste éléments | Riri | Fifi | Loulou}}
- → Riri · Fifi · Loulou
{{Utilisateur:Hexasoft/Modèle:Liste éléments | séparateur = * | espaces = 2 | Riri | Fifi | Loulou}}
- → Riri * Fifi * Loulou
{{Utilisateur:Hexasoft/Modèle:Liste éléments | sép = 2• | Riri | Fifi | Loulou}}
- → Riri • Fifi • Loulou
{{Utilisateur:Hexasoft/Modèle:Liste éléments | sép = espace | Riri | Fifi | Loulou}}
- → Riri Fifi Loulou
Note : utilisation de "espace" au lieu de {{espace}}, Lua ne gérant pas les tags tels que nowiki dans les paramètres reçus (enfin, si, mais on ne peut pas les tester correctement actuellement)
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
-- module ayant pour rôle de remplacer le code « lourd » de {{m|Liste éléments}}
local p = {}
-- retourne le texte après avoir supprimer les espaces, retour ligne... en début et fin de texte.
-- si texte == nil, la fonction retourne nil.
-- Si le texte est vide ou composé uniquement d'espaces, la fonction retourne un texte vide ''.
function p.trim (texte)
return texte and string.match (texte, '^%s*(.-)%s*$')
end
-- fonction principale
function p.liste(frame)
-- on récupère les paramètres
local args = frame:getParent().args
local nbsp = nil -- nombre d'espaces de séparation
-- note : les paramètres sont testés en provenance du modèle (frame.args) et si absent
-- en provenance de l'appel au modèle. Permet facilement une surcharge du
-- comportement depuis les modèles.
local sep = frame.args["séparateur"] or frame.args["sép"]
if (sep == nil) then
sep = args["séparateur"] or args["sép"]
end
-- cas spéciaux (de m....)
if (sep == "2•" or sep == "•2") then
sep = "•"
nbsp = 2
elseif (sep == "2·" or sep == "·2") then
sep = "·"
nbsp = 2
-- on ne peut pas gérer en Lua pour le moment la réception de {{espace}} qui
-- contient "<nowiki> </nowiki>" car c'est encodé avant d'arriver
elseif (sep == " " or sep == " " or sep == "espace") then
nbsp = 0
sep = " "
end
-- caractère séparateur par défaut
if (sep == nil) then
sep = "·"
end
-- nombre d'espaces autour du séparateur (sauf si cas spécial)
if (nbsp == nil) then
nbsp = frame.args["espaces"] or args["espaces"]
end
-- valeur par défaut
if (nbsp == nil) then
nbsp = 1
end
-- on vérifie que c'est un nombre, et qu'il est valide
nbsp = tonumber(nbsp)
if (nbsp == nil) then
-- on ignore et on met la valeur par défaut
nbsp = 1
end
if (nbsp < 0) then
nbsp = 0
end
-- on parcours les paramètres nom nommés dans l'ordre (dans args) pour construire le résultat
local i = 1
local res = ""
local sept = mw.ustring.rep(" ", nbsp) .. sep .. mw.ustring.rep(" ", nbsp)
while (args[i]) do
if (i > 1) then -- séparateur avant, sauf le premier
res = res .. sept
end
res = res .. '<span class="nowrap">' .. p.trim(args[i]) .. '</span>'
i = i + 1
end
return res
end
-- retour du module
return p