Module:Multiparamètres
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 ''..item..'' end)
end
function p.utilisateur(frame)
return p.main(frame, function (item) return ''..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
if #items == 0 then
return
elseif #items == 1 then
return items[1]
else
-- le paramètre "et" peut être défini à vide, exemple : Modèle:Module biblio/responsabilité principale
local dernierSeparateur = (args.et and args.et or 'et')
return table.concat(items, ', ', 1, #items - 1) .. ' ' .. dernierSeparateur .. ' ' .. items[#items] end
end
return p