Modulo:Separatore lista
Istruzioni per l'uso
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Separatore lista/man (modifica · cronologia)
Sandbox: Modulo:Separatore lista/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Separatore lista/test (modifica · cronologia · Esegui)
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Separatore lista/man (modifica · cronologia)
Sandbox: Modulo:Separatore lista/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Separatore lista/test (modifica · cronologia · Esegui)
Modulo che implementa il template {{Separatore lista}}.
--[[
* Modulo che implementa il template Separatore lista.
]]--
require('strict')
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
return p