Modulo:Test

Da Wikisource.
Jump to navigation Jump to search

La documentazione per questo modulo può essere creata in Modulo:Test/man

local p={}

function p.test(frame) 
	-- carico il nome e il contenuto della pagina corrente
	local title=mw.title.getCurrentTitle()
	local result=""
	local text=title:getContent()
	
	-- cerco un tag pages e se esiste estraggo il nome della pagina Indice
	local indexPageData={}
	local indexPageText=""
	local indexPage=mw.title.new("Index:"..string.match(text,'index="(.-)"'))
	
	-- leggo la pagina Indice e eseguo il parsing del template mediaWiki:Proofreadpage index template
	if indexPage~=nil then
		indexPageText=indexPage:getContent()
		indexPageData.Autore=string.match(indexPageText,"Autore=(.-)\n|")
		indexPageData.NomePagina=string.match(indexPageText,"NomePagina=(.-)\n|")
		indexPageData.Titolo=string.match(indexPageText,"Titolo=(.-)\n|")
		indexPageData.TitoloOriginale=string.match(indexPageText,"TitoloOriginale=(.-)\n|")
		indexPageData.Sottotitolo=string.match(indexPageText,"Sottotitolo=(.-)\n|")
		indexPageData.Traduttore=string.match(indexPageText,"Traduttore=(.-)\n|")
		indexPageData.Curatore=string.match(indexPageText,"Curatore=(.-)\n|")
		indexPageData.Illustratore=string.match(indexPageText,"Illustratore=(.-)\n|")
		indexPageData.Traduttore=string.match(indexPageText,"Traduttore=(.-)\n|")
		indexPageData.Editore=string.match(indexPageText,"Editore=(.-)\n|")
		indexPageData["Città"]=string.match(indexPageText,"Città=(.-)\n|")
		indexPageData.Anno=string.match(indexPageText,"Anno=(.-)\n|")
		indexPageData.Fonte=string.match(indexPageText,"Fonte=(.-)\n|")
		indexPageData.Immagine=string.match(indexPageText,"Immagine=(.-)\n|")
		indexPageData.Progetto=string.match(indexPageText,"Progetto=(.-)\n|")
		indexPageData["Qualità"]=string.match(indexPageText,"Qualità=(.-)\n|")
		indexPageData.Pagine=string.match(indexPageText,"Pagine=(.-)\n|")
		indexPageData.Sommario=string.match(indexPageText,"Sommario=(.-)\n|")
		indexPageData.Volume=string.match(indexPageText,"Traduttore=(.-)}}")
		
		-- creo un codice Intestazione e ne rimpiazzo gli elementi variabili
		local intestazione=[=[<div style="background-color:#f4f4f4; border:1px solid #ddd;margin-bottom:2em;">
		<div style="text-align:center;font-size:110%">[[Autore:#autore|#autore]]</div>
		<div style="text-align:center;font-size:120%; font-weight:bold;">#titolo</div>
		<div style="text-align:center">#biblio</div>
		</div>
		<div class="testi">
		]=]
		intestazione=string.gsub(intestazione,"#autore",indexPageData.Autore)
		intestazione=string.gsub(intestazione,"#titolo",indexPageData.NomePagina)
		-- creazione lista biblio
		local biblio={}
			
		if indexPageData["Città"]~=nil and indexPageData["Città"]~="" then
			table.insert(biblio,indexPageData["Città"])
		end
		if indexPageData.Editore~=nil and indexPageData.Editore~="" then
			table.insert(biblio,indexPageData.Editore)
		end
		if indexPageData.Anno~=nil and indexPageData.Anno~="" then
			table.insert(biblio,indexPageData.Anno)
		end	
		biblio=table.concat(biblio,", ")
		intestazione=string.gsub(intestazione,"#biblio",biblio)
		
		result=intestazione
		
		-- eseguo un minimo di categorizzazione
		result=result.."[[Categoria:Testi di "..indexPageData.Autore.."]]"
		result=result.."[[Categoria:Testi del "..indexPageData.Anno.."]]"
	
		
	end
	return result
end
return p

-- call with {{#invoke:test|test}}