Modulo:Content

'A Wikisource.

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