Module:Multiparamètres
Révision datée du 7 mars 2018 à 23:29 par w.fr>Od1n (dans ce cas, génère une seule espace au lieu de deux, toujours plus propre… et associé au diff précédent, code plus compréhensible)
La documentation pour ce module peut être créée à Module:Multiparamètres/Documentation
local p = {}
function p.brut(frame)
return p._main(frame, function (item) return item end)
end
function p.lien(frame)
return p._main(frame, function (item) return '[['..item..']]' end)
end
function p.categorie(frame)
return p._main(frame, function (item) return '[[:Catégorie:'..item..'|'..item..']]' end)
end
function p.utilisateur(frame)
return p._main(frame, function (item) return '[[Utilisateur:'..item..'|'..item..']]' end)
end
function p._main(frame, formatter)
local args = frame:getParent().args
local trimFunc = mw.text.trim -- cache accès global
local gras = (args.gras and args.gras ~= '')
local items = {}
for i,v in ipairs(args) do
local item = trimFunc(v)
if item ~= '' then
item = formatter(item)
if gras then
item = "'''" .. item .. "'''"
end
items[#items + 1] = item
end
end
local dernierSeparateur = args.et and ( ' ' .. args.et .. ' ' )
-- le paramètre "et" peut être défini à vide, exemple : [[Modèle:Module biblio/responsabilité principale]]
if args.et == '' then
dernierSeparateur = ' '
end
return mw.text.listToText( items, ', ', dernierSeparateur )
end
return p