Module:Liste éléments
Révision datée du 7 juillet 2019 à 05:00 par fr>Od1n (complétion de la modif précédente ; je ne sais plus si cette omission était volontaire ou un oubli, en tout cas présentement, il me semble préférable d'utiliser la classe ici aussi)
La documentation pour ce module peut être créée à Module:Liste éléments/doc
local z = {}
function z.main(frame)
local args = frame:getParent().args
local trimFunc = mw.text.trim -- cache accès global
local function getParam(name, default)
if args[name] ~= nil and args[name] ~= '' then
return args[name]
else
return default -- nil si non spécifié
end
end
local paramSep = getParam('séparateur', getParam('sép', '·'))
local espaces = tonumber(getParam('espaces', '1'))
local glue
if paramSep == ',' then
glue = ', '
elseif mw.text.unstripNoWiki(paramSep) == ' ' or paramSep == ' ' then -- {{espace}}
if espaces == 0 then
glue = ''
else
glue = string.rep('\194\160', espaces - 1) .. paramSep
end
elseif paramSep == ' ' or paramSep == ' ' then
glue = string.rep(paramSep, espaces)
elseif paramSep == '2·' or paramSep == '·2' then
-- '\194\160' est une espace insécable (code UTF-8 sur deux octets)
glue = '\194\160\194\160<span class="sep-liste">·</span>\194\160 '
elseif paramSep == '2•' or paramSep == '•2' then
glue = '\194\160\194\160•\194\160 '
else
if paramSep == '·' then
paramSep = '<span class="sep-liste">·</span>'
elseif paramSep == '-' then
paramSep = '–' -- tiret demi-cadratin
end
if espaces == 0 then
glue = paramSep
else
glue = string.rep('\194\160', espaces) .. paramSep .. string.rep('\194\160', espaces - 1) .. ' '
end
end
local secable = (args['sécable'] == 'oui')
local items = {}
for i,v in ipairs(args) do
local item = trimFunc(v)
if item ~= '' then
if not secable then
item = '<span class="nowrap">'..item..'</span>'
end
items[#items+1] = item
end
end
return table.concat(items, glue)
end
return z