|
|
(2 versioni intermedie di uno stesso utente non sono mostrate) |
Riga 1: |
Riga 1: |
| require('Module:No globals')
| | Poesia |
| local getArgs = require('Module:Arguments').getArgs
| | |1 = |
| local p = {}
| | |2 = |
| | | |... = |
| local function agg(t, ...)
| | |titolo = |
| local args = {...}
| | |colore = |
| for _, s in ipairs(args) do
| | |numera = |
| table.insert(t, s)
| | |inizio = |
| end
| |
| end
| |
| | |
| local function separa(ss)
| |
| local t = false
| |
| if (ss:find("*") and (ss:find("*") == 1)) then
| |
| ss = ss:sub(2)
| |
| t = true
| |
| end
| |
| local dd = { }
| |
| string.gsub(ss,"([^\/]+)", function(c) dd[#dd+1] = mw.text.trim(c) end)
| |
| for i=1,3 do
| |
| if (dd[i]) then
| |
| if (dd[i] == '-') then dd[i] = '' end
| |
| else
| |
| dd[i]= (i==1) and '' or false
| |
| end
| |
| end
| |
| | |
| return { t, dd[1], dd[2], dd[3] }
| |
| 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']
| |
| local colore = args['colore'] or 'ccc'
| |
| local numera = args['numera'] and tonumber(args['numera']) or 5
| |
| local inizio = args['inizio'] and tonumber(args['inizio']) or 1
| |
| inizio = inizio-1
| |
| local ret = {}
| |
| local n = 1
| |
| local vv
| |
| | |
| if (args[1]) then
| |
| | |
| agg(ret,'<div style="font-size:95%;margin:10px 0;padding:0 5px;border:0;border-left:4px solid #',colore,'"><table cellpadding=0 cellspacing=0 style="padding:0">')
| |
| | |
| if (titolo) then
| |
| vv = separa(titolo)
| |
| agg(ret,'<tr><td></td><td><i>',vv[2],'</i></td>')
| |
| if (vv[3]) then
| |
| agg(ret,'<td> </td><td><i>',vv[3],'</i></td>')
| |
| if (vv[4]) then
| |
| agg(ret,'<td> </td><td><i>',vv[4],'</i></td>')
| |
| end
| |
| end
| |
| agg(ret,'</tr><tr><td style="line-height:8px"> </td></tr>')
| |
| end
| |
| | |
| while (args[n]) do
| |
| vv = separa(args[n])
| |
| | |
| if (vv[1]) then -- nuova strofa
| |
| agg(ret,'<tr><td colspan=2 style="line-height:8px"> </td></tr>')
| |
| end
| |
| agg(ret,'<tr><td',(n == 1) and ' style="width:30px"' or '')
| |
| | |
| if ((n+inizio) % numera == 0) then -- mostra numero
| |
| agg(ret,' align=right><span style="font-size:85%">',(n+inizio),'</span> ')
| |
| else agg(ret,'>') end
| |
| | |
| agg(ret,'</td><td>',vv[2],'</td>')
| |
| if (vv[3]) then
| |
| agg(ret,'<td> </td><td>',vv[3],'</td>')
| |
| if (vv[4]) then
| |
| agg(ret,'<td> </td><td>',vv[4],'</td>')
| |
| end
| |
| end
| |
| agg(ret,'</tr>')
| |
| n = n+1
| |
| end
| |
| agg(ret,'</table></div>')
| |
|
| |
| return table.concat(ret)
| |
| else
| |
| return '<span style="color:#800">Errore nel template Poesia</span>'
| |
| end
| |
| end
| |
| | |
| return p
| |