Module:Multiparamètres

De Wikidébats, l'encyclopédie des débats et des arguments « pour » et « contre »
Aller à la navigation Aller à la recherche

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
   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