Module:Content

From Wikisource
Jump to navigation Jump to search

Called by Template:Content (see there its doc). An example of usage here: Index:Labi 1996.djvu.


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=frame.args["delta"]
	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