Modulo:Content
Aspetto
La documentazione per questo modulo può essere creata in Modulo:Content/man
local p={}
-- analogi di Indice sommario
-- riceve nome, titolo, from e delta
function p.build(frame)
frame=frame:getParent()
local base="Page:" .. mw.title.getCurrentTitle().rootText
local nome=frame.args["nome"]
local titolo=frame.args["titolo"]
local from=frame.args["from"]
local delta=(function() if frame.args["delta"] == nil then return 0 else return frame.args["delta"] end end)()
local pag=delta
local testo=''
local livello=0
local data=""
-- costruzione di un attributo data-toc-data
-- i dati sono codificati analogamente a quanto fa urlencode(....|PATH) per evitare problemi nei casi di titoli opere
-- che contengono alcuni caratteri critici (es. apostrofi)
-- la funzione js che trasforma i dati codificati in un oggetto js è:
-- JSON.parse(decodeURIComponent(stringa contenuta nell'attributo data))
data='class="toc-data" data-toc-data="'
data=data .. mw.uri.encode('{"name":"'.. nome ..'","title":"'.. titolo ..'","from":"'.. from ..'","delta":"'.. delta ..'"}',"PATH") ..'"'
for i in string.gfind(nome, "%/") do
livello = livello + 1
end
if tonumber(delta) ~= nil and tonumber(from) ~= nil then
pag = from - delta
else
pag = delta
end
testo='<table width="100%" style="font-size:90%; line-height: 1.3em;" '..data..'><tr><td width="90%" class="dotted" style="padding-left:' .. livello .. 'em"><span class="opaque">'.."<b>[[" .. nome .. '#' .. pag .. '|' .. titolo .. ']]</b></span></td><td width="10%" align="right" valign="bottom">' .. '[[' .. base .. "/" .. from .. '|' .. pag .. ']]' .. '</td></tr></table>'
return testo
end
return p