Modulo:Test
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}}