Modulo:Sandbox/M.casanova/SecondoLivelloItaliano

require('Module:No globals')
local getArgs = require('Module:Arguments').getArgs
local mWikidata = require('Modulo:Wikidata')
local p = {}

local function agg(t, ...)
    local args = {...}
    for _, s in ipairs(args) do
        table.insert(t, s)
    end
end

function p.main(frame)
	local args = getArgs(frame, {
		valueFunc = function (key, value)
			if type(key) == "number" then
				if value == nil then
					return nil
				else
					value = mw.text.trim(value)
				end
			else
				if value == '' then return nil end
            end
			return value
		end
	})
	local titolo = args['titolo'] or '-'
	local parafrasi = args['parafrasi']
	local colore = args['colore'] or 'aaa'
	local numero = args['numera'] and tonumber(args['numera']) or 5
	local ret = {}
	local n = 1

	agg(ret,'<div style="height:200px;overflow:auto;padding:0px 20px;border:0;border-left:4px solid #',colore,'">')
	if (parafrasi) then
		agg(ret,'<table cellpadding=0 cellspacing=0 style="margin:0 auto"><tr><th>Testo</th><th>Parafrasi</th></tr><tr><td>')
	end
	if (titolo) then
		agg(ret,'<b><i>',titolo,'</i></b>')
	end
	agg(ret,'<table cellpadding=0 cellspacing=0>')
	while (args[n]) do
		agg(ret,'<tr><td')
		if (n % 5 == 0) then agg(ret,' align=right><small>',n,'</small>&ensp;') else agg(ret,'>') end
		agg(ret,'</td><td>',args[n],'</td></tr>')
		n = n+1
	end
	agg(ret,'</table>')
	if (parafrasi) then
		agg(ret,'</td><td>',parafrasi,'</td></tr></table>')
	end
	agg(ret,'</div>')
	
	return table.concat(ret)

end

return p