Modulo:Poesia
La documentazione per questo modulo può essere creata in Modulo:Poesia/man
require('Module:No globals') local getArgs = require('Module:Arguments').getArgs local p = {} local function agg(t, ...) local args = {...} for _, s in ipairs(args) do table.insert(t, s) 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