Modulo:Separatore lista
Inpostasion de letura
--[[
* Modulo che implementa i template Separatore lista e Separatore lista br.
]]--
require('Modulo:No globals')
local getArgs = require('Modulo:Arguments').getArgs
local p = {}
local function formatList(args, separatore, congiunzione)
local keys, tbl = {}, {}
-- una sequence Lua non può mancare di un elemento,
-- mentre getArgs avrà rimosso gli elementi con stringa vuota,
-- quindi è necessario prima ottenere la lista
-- delle chiavi numeriche con pairs e ordinarla
for key, _ in pairs(args) do
key = tonumber(key)
if key and key >= 1 and math.floor(key) == key then
table.insert(keys, key)
end
end
table.sort(keys)
for _, key in ipairs(keys) do
table.insert(tbl, args[key])
end
return mw.text.listToText(tbl, separatore, congiunzione)
end
-- Funzione per il template {{Separatore lista}}
function p.separatore_lista(frame)
local args = getArgs(frame, { parentOnly = true })
return formatList(args, args.separatore or '', args.congiunzione or args.separatore or '')
end
-- Funzione per il template {{Separatore lista br}}
function p.separatore_lista_br(frame)
local args = getArgs(frame, { parentOnly = true })
return formatList(args, '<br />', '<br />')
end
return p