Module:List
Révision datée du 18 novembre 2019 à 13:08 par Frédéric Conrotte (discussion | contributions) (Page créée avec « local export = {}; -- Cached function for performance local _table_insert = table.insert; local _table_concat = table.concat; local str = require('Module:String'); local... »)
La documentation pour ce module peut être créée à Module:List/doc
local export = {}; -- Cached function for performance local _table_insert = table.insert; local _table_concat = table.concat; local str = require('Module:String'); local _getBoolean = str._getBoolean; local function _table_join( t, sep ) local type1 = type( t[1] ); if type1 == 'string' then local seq = {}; for _, item in ipairs( t ) do _table_insert( seq, item ); end return _table_concat( seq, sep ); elseif type1 == 'table' then local seq = {}; for _, tab in ipairs( t ) do for _, item in ipairs( tab ) do _table_insert( seq, item ); end end return seq; else return nil; end end export._t_join = _table_join; table.join = _table_join; --[[ list ]] local function list( frame ) frame = frame:getParent(); local trim = _getBoolean( frame.args.trim, true ); local all = _getBoolean( frame.args.all, false ); local separator = frame.args.separator or ' <b>·</b> '; local items = {}; for _, item in ipairs( frame.args ) do if trim then item = item:gsub('^%s+', ''):gsub('%s+$', '') end if all or item ~= '' then _table_insert( items, item ); end end return _table_join( items, separator ) or '' end export.list = list; return export;