« Module:Multiparamètres » : différence entre les versions
w>Od1n (retrait du paramètre de mise en forme en italique (202581100), parce que j'ai ensuite trouvé une meilleure solution (202581410) : la possibilité de passer directement un lien (désactivant ainsi la transformation du paramètre en lien), avec la mise en forme souhaitée ; à noter que ce n'est pas encore implémenté dans les modèles) |
m (1 version importée) |
(Aucune différence)
|
Dernière version du 5 juillet 2023 à 10:44
La documentation pour ce module peut être créée à Module:Multiparamètres/doc
Erreur de script : Erreur Lua : erreur interne : l’interpréteur s’est arrêté avec le signal « -129 ».
-- http://lua-users.org/wiki/StringTrim local function trim( s ) return s:match( '^()%s*$' ) and '' or s:match( '^%s*(.*%S)' ) end 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 '[[: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 gras = ( args.gras and args.gras ~= '' ) local items = {} for i, v in ipairs( args ) do local item = trim( v ) if item ~= '' then item = formatter( item ) if gras then item = '<b>' .. item .. '</b>' 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