Module:Multiparamètres
Révision datée du 7 janvier 2017 à 02:02 par Od1n (discussion) (la fonction locale ne fonctionnait pas car pas de hoisting en Lua, mais finalement c'est bien comme ça, en propriété de l'objet principal)
La documentation pour ce module peut être créée à Module:Multiparamètres/doc
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 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