Modulo:Interprogetto: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 2:
local p = {} -- per l'esportazione delle funzioni del modulo
local HtmlBuilder = require('Module:HtmlBuilder') -- richiesto per la costruzione del markup html
local progetti={} -- dati da usare per la costruzione delle righe dell'elenco di link ai progetti
Riga 19:
local function Link(intext, progetto)
if intext then
_, _, prefix, nome_progetto, _, collegamento, etichetta, icona, dimensione_icona
vapri, vchiudi, lingua = unpack(progetto)
text = table.concat({'* [[File:', icona, '|link=', prefix, '|', dimensione_icona,'|Collabora a ', nome_progetto,
"]]", ' '
preposizione, add_space(preposizione), vapri, "'''[[", prefix, collegamento, '|',
etichetta, "]]'''", vchiudi })
Riga 31:
return text
end
local function LinkRicette(intext, progetto)
if intext then
_, _, prefix, nome_progetto, _, collegamento, etichetta, icona, dimensione_icona, oggetto,
preposizione = unpack(progetto)
text = table.concat({'* [[File:', icona, '|link=', prefix, '|', dimensione_icona,'|Collabora a ',
nome_progetto, "]] Il ''[[b:Libro di cucina|Libro di cucina]]'' di '''[[",
prefix, '|', nome_progetto, "]]''' contiene ", "[[", prefix, collegamento,
"|ricette]]", " relative a questo argomento." }) --TODO check etichette
_, _, prefix, nome_progetto, nome_leftbar, collegamento, etichetta = unpack(progetto)
text = table.concat({'* [[', prefix, collegamento, '|', nome_leftbar or nome_progetto, ']]'})
return text
end
local function LinkWithLanguage(intext, progetto)
if intext then
_, _, prefix, nome_progetto, _, collegamento, etichetta, icona, dimensione_icona
vapri, vchiudi, lingua = unpack(progetto)
text = table.concat({'* [[File:', icona, '|link=', prefix, '|', dimensione_icona, '|Collabora a ', nome_progetto,
"]]", ' ',
{uselang='it'})), ' ', nome_progetto, "]</span>''' contiene ", oggetto, ' ', preposizione,
add_space(preposizione), vapri, "'''<span class=\"plainlinks\">[",
Riga 52 ⟶ 68:
local function LinkNotizia(intext, progetto)
if intext then
_, _, prefix, nome_progetto, _, collegamento, etichetta, icona, dimensione_icona
vapri, vchiudi, lingua = unpack(progetto)
text = table.concat({'* [[File:', icona, '|link=', prefix, '|', dimensione_icona,'|Collabora a ', nome_progetto,
"]]",
"'''[[", prefix, collegamento, '|', collegamento, "]]'''" })
else
Riga 62 ⟶ 78:
return text
end
-- default_parameter: contiene i valori di default dei parametri
-- priorità: ordine di priorità in cui visualizzare il link (un numero intero)
Riga 68 ⟶ 84:
-- prefisso_progetto: prefisso da usare per i link del progetto
-- nome_progetto: nome del progetto
-- nome_leftbar: nome da usare per il collegamento nella barra di sinistra (falso
-- il nome del progetto, altrimenti una stringa, da usare per esempio per wikiricette)
-- etichetta: se diversa da falso è l'etichetta visualizzata nel collegamento del testo, che non
-- viene modificata da eventuali parametri, se è falsa l'etichetta è impostata al nome
-- della pagina o al valore impostato dal parametro "etichetta"
-- (usata da wikiricette che visualizza sempre "ricette" come etichetta per il collegamento)
-- logo del progetto: nome del file che contiene il logo del progetto
-- dimensioni del logo: dimensioni da usare per il logo
▲-- oggetto standard: per il contenuto ('opere originali', 'testi o manuali', ecc..).
-- preposizione standard: da mettere prima dell'etichetta ('di o su', 'relative a questo argomento', ecc..)
-- testo di apertura intorno all'etichetta: stringa vuota o testo da usare immediatamente prima del
▲-- testo di apertura intorno all'etichetta: stringa vuota o testo da usare immediatamente prima del
-- collegamento (usate dal wikizionario per la virgoletta di
-- apertura e da wikiricette per non inserire niente)
Riga 91 ⟶ 101:
-- di chiusura e da wikiricette per scrivere " relative a questo argomento")
-- lingua originale: lingua di un testo linkato (falso se non è possibile impostarla, '' altrimenti,
--
--
local default_parameter ={
wikisource = {1, Link, 'wikisource:', 'Wikisource', false, false, 'Wikisource-logo.svg', '18px
s = {2, Link, 's:', 'Wikisource', false, false, 'Wikisource-logo.svg', '18px
s2 = {3, Link, 's:', 'Wikisource', false, false, 'Wikisource-logo.svg', '18px
testo = {4, Link, 's:', 'Wikisource', false, false, 'Wikisource-logo.svg', '18px
wikiquote = {5, Link, 'wikiquote:', 'Wikiquote', false, false, 'Wikiquote-logo.svg', '18px
q = {6, Link, 'q:', 'Wikiquote', false, false, 'Wikiquote-logo.svg', '18px',
q2= {7, Link, 'q:', 'Wikiquote', false, false, 'Wikiquote-logo.svg', '18px', '', 'citazioni', 'di o su', '', '' , true},
wikibooks = {8, Link, 'wikibooks:', 'Wikibooks', false, false, 'Wikibooks-logo.svg', '22px
b = {9, Link, 'b:', 'Wikibooks', false, false, 'Wikibooks-logo.svg', '22px
ricetta = {10,
wiktionary = {11, Link, 'wiktionary:', 'Wikizionario', false, false, 'Wiktionary small.svg', '18px
wikt = {12, Link, 'wikt:', 'Wikizionario', false, false, 'Wiktionary small.svg', '18px
v = {13, Link, 'v:', 'Wikiversità', false, false, 'Wikiversity-logo-It.svg', '18px
wikinews = {14, Link, 'wikinews:', 'Wikinotizie', false, false, 'Wikinews-logo.svg', '25px
n = {15, Link, 'n:', 'Wikinotizie', false, false, 'Wikinews-logo.svg', '25px
notizia = {16, LinkNotizia, 'n:', 'Wikinotizie', false, false, 'Wikinews-logo.svg', '25px', '
commons = {17, LinkWithLanguage, 'commons:', 'Commons', false, false, 'Commons-logo.svg', '18px
meta = {18, LinkWithLanguage, 'meta:', 'Meta-Wiki', false, false, 'Wikimedia Community Logo.svg', '18px
m = {19, LinkWithLanguage, 'm:', 'Meta-Wiki', false, false, 'Wikimedia Community Logo.svg', '18px
wikispecies = {20, LinkWithLanguage, 'wikispecies:', 'Wikispecies', false, false, 'WikiSpecies notext.svg', '21px
-- incubator = {13, 'incubator:', 'Incubator', 'it', false}, --TODO
voy = {22, Link, 'voy:', 'Wikivoyage', false, false, 'Wikivoyage-logo.svg', '18px', '', 'informazioni turistiche', 'su', '', '', false}
}
-- nota oldwikisource rimosso, stando a http://toolserver.org/~kolossos/templatetiger/template-parameter.php?template=interprogetto&lang=itwiki non usato
local function trim(s)
-- ritorna la stringa senza spazi iniziali o finali
-- vedi http://lua-users.org/wiki/StringTrim
-- esempio 6 e commento ai test
return s:match'^()%s*$' and '' or s:match'^%s*(.*%S)'
end
local function sort_by_priority(t1, t2)
-- per ordinare una tabella in base al valore del primo elemento della tabella
Riga 134 ⟶ 144:
end
end
local function default_value(value, default_value)
-- ritorna default_value se il valore è nil o stringa vuota
Riga 162 ⟶ 172:
.attr('title', 'Collegamenti verso gli altri progetti Wikimedia')
.node(leftbar)
end
local function RenderLinksInText()
-- produce il codice html per l'elenco puntato
Riga 174 ⟶ 184:
root.newline()
end
function p.interprogetto(frame)
local origArgs
Riga 184 ⟶ 194:
origArgs = frame
end
-- Carico i parametri
local current_title = mw.title.getCurrentTitle().text
Riga 190 ⟶ 200:
local preposizione = default_value(origArgs.preposizione, nil)
local oggetto = default_value(origArgs.oggetto, nil)
for k, collegamento in pairs(origArgs) do
-- controlla se è un parametro posizionale e in questo caso la memorizza come
Riga 207 ⟶ 217:
table.insert(progetto, collegamento)
if default_parameter[k][6] then -- se inserire una descrizione standard per l'etichetta piuttosto che il valore impostato nei parametri
table.insert(progetto, default_parameter[k][6])
else
table.insert(progetto, default_value(origArgs[k .. '_etichetta'], etichetta))
Riga 213 ⟶ 223:
table.insert(progetto, default_parameter[k][7]) -- icona
table.insert(progetto, default_parameter[k][8]) -- dimensione icona
table.insert(progetto, default_value(origArgs[k .. '_oggetto'], oggetto) or default_parameter[k][9])
table.insert(progetto, ' in lingua ' .. origArgs[k ..'_lingua'] .. ' ')▼
else
table.insert(progetto, '')
end
▲ table.insert(progetto, default_value(origArgs[k .. '_preposizione'], preposizione) or default_parameter[k][11])
▲ else
▲ end
▲ table.insert(progetto, default_parameter[k][13]) -- testo immediatamente dopo il collegamento
▲ if default_parameter[k][14] and origArgs[k ..'_lingua']then
▲ table.insert(progetto, ' in lingua ' .. origArgs[k ..'_lingua'] .. ' ')
table.insert(progetti, progetto)
end
Riga 239 ⟶ 238:
root = HtmlBuilder.create()
RenderLeftBar()
if
RenderLinksInText()
end
return tostring(root)
end
return p
|