Modulo:Intestazione
La documentazione per questo modulo può essere creata in Modulo:Intestazione/man
local c = require('Modulo:Common')
local a = require('Modulo:Autore')
local d = require('Modulo:Date')
local lang = mw.getContentLanguage()
local p = {}
function p.linkAutore(frame)
nomi = frame:getParent().args[1]
local links = {}
for nome in string.gmatch(nomi, '([^/]+)') do
nomeStripped = mw.text.trim(nome):gsub(" %(.*%)", "")
table.insert(links, '[[Autore:' .. nome .. '|' .. nomeStripped .. ']]')
end
return c.concat(links, ', ')
end
-- controlla che la data di composizione sia compresa tra le date di nascita e morte dell'autore
function p.checkDateAutore(frame)
nomi = frame.args[1]
dataComposizione = frame.args[2] or ''
mw.log('Data composizione: '..dataComposizione)
dataComp = d.absoluteDate(dataComposizione)
if nomi and dataComp then
ok = false
i = 0
for nome in string.gmatch(nomi, '([^/]+)') do
i = i + 1
mw.log('Autore: ' .. nome)
qid = mw.wikibase.getEntityIdForTitle('Autore:' .. nome)
autoreItem = mw.wikibase.getEntity(qid)
dati = a.getDatiAutore(autoreItem)
mw.log('anno morte autore: '..(dati.annoMorte or ''))
mw.log('anno nascita autore: '..(dati.annoNascita or ''))
annoMorte = d.absoluteDate(dati.annoMorte)
annoNascita = d.absoluteDate(dati.annoNascita)
if annoMorte then
if annoMorte >= dataComp then
ok = true
end
elseif annoNascita and dati.isHuman then
-- se non sappiamo quando e' morto, supponiamo sia vissuto 100 anni
if dati.annoNascita + 100 >= dataComp then
ok = true
end
else
ok = true
end
end
if not ok and i > 0 then
return '[[Categoria:Data di composizione da controllare]]'
end
end
end
function p.labelCapitolo(link, cap)
if c.startsWith(cap, '../') or c.startsWith(cap, '/') then
cap = mw.getCurrentFrame():callParserFunction('#rel2abs', cap)
end
cap = cap:gsub('^[^/]*/', '') -- togli ../ e / iniziali
local _, count = cap:gsub('/', '')
mw.log('count: '..count)
while count > 1 do
cap = cap:gsub('^[^/]+/', '') -- lasciamo massimo uno /
count = count -1
end
mw.log('count: '..count)
if count > 0 and link == '../' then
cap = cap:gsub('^[^/]+/', '') -- il link punta al livello più sopra, quindi lasciamo solo la parte finale del titolo
end
return link, c.stripTitolo2(cap:gsub('/', ' - '))
end
function p.capitolo(frame)
local precLink, prec = p.labelCapitolo(c.splitLink(frame.args[1]))
local succLink, succ = p.labelCapitolo(c.splitLink(frame.args[2]))
return c.template('CapitoloNuovo', { NomePaginaCapitoloPrecedente = precLink, CapitoloPrecedente = prec, NomePaginaCapitoloSuccessivo = succLink, CapitoloSuccessivo = succ })
end
return p