Aller au contenu

Modèle:Multiparamètres

Cha vient éd Wikipedia

local mwTrim = mw.text.trim

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:sub( 1, 1 ) == ':' ) and item or ':' .. item ) .. ''
   end )

end

function p.lienAutomatique( frame )

   return p._main( frame, function ( item )
       if item:find( '[', nil, true ) then
           return item
       else
           return '' .. ( ( item:sub( 1, 1 ) == ':' ) and item or ':' .. item ) .. ''
       end
   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 gras = ( args.gras and args.gras ~=  )
   local items = {}
   for i, v in ipairs( args ) do
       local item = mwTrim( 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