Modulo:Interprogetto: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Moroboshi (discussione | contributi)
Nessun oggetto della modifica
Moroboshi (discussione | contributi)
Nessun oggetto della modifica
Riga 7:
local root -- radice del markup html
local log= '' -- per debug
 
local function add_space(s)
--ritorna uno spazio se l'ultimo carattere non è un accento o un "«"
if mw.ustring.sub(s, -1) == "'" or mw.ustring.sub(s, -1)=='«' then
return ''
else
return ' '
end
end
 
 
local function Link(intext, progetto)
if langintext then
_, _, prefix, nome_progetto, _, lingua_interfaccia, etichetta, icona, dimensione_icona, testo_iniziale, opere, preposizione,
vapri, vchiudi, lingua = unpack(progetto)
text = root.wikitext(table.concat({'* [[File:', icona, '|link=', prefix, '|', dimensione_icona,'|Collabora a ', nome_progetto,
"]]", ' ', testo_iniziale, "'''[[", prefix, nome_progetto, '|', nome_progetto, "]]''' contiene ", opere, ' ', lingua,
preposizione, add_space(preposizione), vapri, "'''[[", prefix, etichetta, '|',
etichetta, "]]'''", vchiudi }))
else
_, _, prefix, nome_progetto, nome_leftbar, etichetta = unpack(progetto)
text = leftbar.wikitext(table.concat({'* [[', prefix, etichetta, '|', nome_leftbar or nome_progetto, ']]'}))
end
return text
end
 
local function LinkWithLanguage(intext, progetto)
if intext then
_, _, prefix, nome_progetto, _, etichetta, icona, dimensione_icona, testo_iniziale, opere, preposizione,
vapri, vchiudi, lingua = unpack(progetto)
text = root.wikitext(table.concat({'* [[File:', icona, '|link=', prefix, '|', dimensione_icona, '|Collabora a ', nome_progetto,
"]]", ' ', testo_iniziale, "'''<span class=\"plainlinks\">[", tostring(mw.uri.fullUrl(prefix .. 'Pagina principale',
{uselang='it'})), ' ', nome_progetto, "]</span>''' contiene ", opere, ' ', preposizione,
add_space(preposizione), vapri, "'''<span class=\"plainlinks\">[",
tostring(mw.uri.fullUrl(prefix .. etichetta, {uselang='it'})), ' ',
etichetta, "]<span class=\"plainlinks\">'''", vchiudi }))
else
_, _, prefix, nome_progetto, nome_leftbar, etichetta = unpack(progetto)
text = leftbar.wikitext(table.concat({'* [', tostring(mw.uri.fullUrl(prefix .. etichetta, {uselang='it'})),
' ', nome_leftbar or nome_progetto, ']'}))
end
return text
end
 
local function LinkNotizia(intext, progetto)
if intext then
_, _, prefix, nome_progetto, _, etichetta, icona, dimensione_icona, testo_iniziale, opere, preposizione,
vapri, vchiudi, lingua = unpack(progetto)
text = table.concat({'* [[File:', icona, '|link=', prefix, '|', dimensione_icona,'|Collabora a ', nome_progetto,
"]]", ' ', testo_iniziale, "'''[[", prefix, nome_progetto, '|', nome_progetto, "]]''': ",
"'''[[", prefix, etichetta, '|', etichetta, "]]'''" })
else
text = ''
end
return text
end
-- default_parameter: contiene i valori di default dei parametri
-- priorità: ordine di priorità in cui visualizzare il link (un numero intero)
-- funzione da richiamare per inserire i link
-- 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 se coincide con
-- il nome del progetto, altrimenti una stringa, da usare per esempio per wikiricette)
-- lingua del progetto: da usare per i progetti che prevedono la specifica della lingua di interfaccia
-- per esempio commons. Cambia il modo in cui è costruito il link. Da impostare
-- a falso se non serve, altrimenti da mettere a true (viene usato automaticamente
-- l'italiano)
-- etichetta: se diversa da falso è l'etichetta visualizzata nel collegamento del testo, che non
-- viene modificata da eventuali parametri, se è falsa l'etichetatetichetta è impostata al nome
-- della pagina o al valore impostato dal parametro "etichetta"
-- (usata da wikiricette che visualizza sempre "ricette" come etichetta per il collegamento)
Riga 43 ⟶ 96:
local default_parameter ={
wikisource = {1, Link, 'wikisource:', 'Wikisource', false, false, false, 'Wikisource-logo.svg', '18px', '', 'opere originali ', 'di o su', '', '', false},
s = {2, Link, 's:', 'Wikisource', false, false, false, 'Wikisource-logo.svg', '18px', '', 'opere originali ', 'di o su', '', '', true},
s2 = {3, Link, 's:', 'Wikisource', false, false, false, 'Wikisource-logo.svg', '18px', '', 'opere originali ', 'di o su', '', '', true},
testo = {4, Link, 's:', 'Wikisource', false, false, false, 'Wikisource-logo.svg', '18px', '', 'opere originali ', 'di o su', '', '', false},
wikiquote = {5, Link, 'wikiquote:', 'Wikiquote', false, false, false, 'Wikiquote-logo.svg', '18px', '', 'citazioni', 'di o su', '', '' , false},
q = {6, Link, 'q:', 'Wikiquote', false, false, false, 'Wikiquote-logo.svg', '18px', '', 'citazioni', 'di o su', '', '' , true},
q2= {7, Link, 'q:', 'Wikiquote', false, false, false, 'Wikiquote-logo.svg', '18px', '', 'citazioni', 'di o su', '', '' , true},
wikibooks = {8, Link, 'wikibooks:', 'Wikibooks', false, false, false, 'Wikibooks-logo.svg', '22px', '', 'testi o manuali', 'su', '', '' , false},
b = {9, Link, 'b:', 'Wikibooks', false, false, false, 'Wikibooks-logo.svg', '22px', '', 'testi o manuali', 'su', '', '' , false},
ricetta = {10, Link, 'b:Libro di cucina/Ricette/', 'Wikibooks', 'Ricette', false, 'ricette', 'Wikibooks-logo.svg', '22px', "Il ''[[b:Libro di cucina|Libro di cucina]]'' di ", false, false, '', ' relative a questo argomento' , false}, --TODO rivedere
wiktionary = {11, Link, 'wiktionary:', 'Wikizionario', false, false, false, 'Wiktionary small.svg', '18px', '', 'il lemma di dizionario', false, '«', '»', false},
wikt = {12, Link, 'wikt:', 'Wikizionario', false, false, false, 'Wiktionary small.svg', '18px', '', 'il lemma di dizionario', false, '«', '»', false},
v = {13, Link, 'v:', 'Wikiversità', false, false, false, 'Wikiversity-logo-It.svg', '18px', '', 'informazioni', 'su', '', '', false},
wikinews = {14, Link, 'wikinews:', 'Wikinotizie', false, false, false, 'Wikinews-logo.svg', '25px', '', 'notizie di attualità', 'su', '', '', false},
n = {15, Link, 'n:', 'Wikinotizie', false, false, false, 'Wikinews-logo.svg', '25px', '', 'notizie di attualità', 'su', '', '', false},
notizia = {16, LinkNotizia, 'n:', 'Wikinotizie', false, false, false, 'Wikinews-logo.svg', '25px', 'Articolo su ', false, false, ': ', '', false},
commons = {17, LinkWithLanguage, 'commons:', 'Commons', false, true, false, 'Commons-logo.svg', '18px', '', 'immagini o altri file', 'su', '', '', false},
meta = {18, LinkWithLanguage, 'meta:', 'Meta-Wiki', false, true, false, 'Wikimedia Community Logo.svg', '18px', '', 'informazioni', 'su', '', '', false},
m = {19, LinkWithLanguage, 'm:', 'Meta-Wiki', false, true, false, 'Wikimedia Community Logo.svg', '18px', '', 'informazioni', 'su', '', '', false},
wikispecies = {20, LinkWithLanguage, 'wikispecies:', 'Wikispecies', false, true, false, 'WikiSpecies notext.svg', '21px', '', 'informazioni', 'su', '', '', false},
-- incubator = {13, 'incubator:', 'Incubator', 'it', false}, --TODO
voy = {22, Link, 'voy:', 'Wikivoyage', false, false, false, 'Wikivoyage-logo.svg', '18px', '', 'informazioni turistiche', 'su', '', '', false}
}
, false}
-- nota oldwikisource rimosso, stando a http://toolserver.org/~kolossos/templatetiger/template-parameter.php?template=interprogetto&lang=itwiki non usato
Riga 88 ⟶ 141:
return default_value
end
 
local function add_space(s)
--ritorna uno spazio se l'ultimo carattere non è un accento o un "«"
if mw.ustring.sub(s, -1) == "'" or mw.ustring.sub(s, -1)=='«' then
return ''
else
return ' '
end
end
local function RenderLeftBar()
-- Crea la barra di sinistra con i link interprogetto
Riga 104 ⟶ 148:
local leftbar = HtmlBuilder.create()
for k, progetto in pairs(progetti) do
priority_, prefix, nome_progetto, nome_leftbar, lang, etichettalink = unpack(progetto)
leftbar.wikitext(link(false, progetto))
if lang then
leftbar.wikitext(table.concat({'* [', tostring(mw.uri.fullUrl(prefix .. etichetta, {uselang='it'})),
' ', nome_leftbar or nome_progetto, ']'}))
else
leftbar.wikitext(table.concat({'* [[', prefix, etichetta, '|', nome_leftbar or nome_progetto, ']]'}))
end
if nome_leftbar then
leftbar.wikitext(table.concat({'<br />(', nome_progetto, ')'}))
Riga 127 ⟶ 166:
end
local function RenderLinkInTextRenderLinksInText()
-- produce il codice html per l'elenco puntato
for k, progetto in pairs(progetti) do
_, link = unpack(progetto)
_, prefix, nome_progetto, _, lingua_interfaccia, etichetta, icona, dimensione_icona, testo_iniziale, opere, preposizione,
vapri, vchiudi, lingua = unpack(progetto)
root.newline()
root.wikitext(link(true, progetto))
if lingua_interfaccia then
root.wikitext(table.concat({'* [[File:', icona, '|link=', prefix, '|', dimensione_icona, '|Collabora a ', nome_progetto,
"]]", ' ', testo_iniziale, "'''<span class=\"plainlinks\">[", tostring(mw.uri.fullUrl(prefix .. 'Pagina principale',
{uselang='it'})), ' ', nome_progetto, "]</span>''' contiene ", opere, ' ', preposizione,
add_space(preposizione), vapri, "'''<span class=\"plainlinks\">[",
tostring(mw.uri.fullUrl(prefix .. etichetta, {uselang='it'})), ' ',
etichetta, "]<span class=\"plainlinks\">'''", vchiudi }))
else
root.wikitext(table.concat({'* [[File:', icona, '|link=', prefix, '|', dimensione_icona,'|Collabora a ', nome_progetto,
"]]", ' ', testo_iniziale, "'''[[", prefix, nome_progetto, '|', nome_progetto, "]]''' contiene ", opere, ' ', lingua,
preposizione, add_space(preposizione), vapri, "'''[[", prefix, etichetta, '|',
etichetta, "]]'''", vchiudi }))
end
end
root.newline()
Riga 176 ⟶ 202:
if default_parameter[k] then
table.insert(progetto, default_parameter[k][1]) --priority
table.insert(progetto, default_parameter[k][2]) -- prefix
table.insert(progetto, default_parameter[k][3]) -- nome progettoprefix
table.insert(progetto, default_parameter[k][4]) -- nome leftbarprogetto
table.insert(progetto, default_parameter[k][5]) -- sinome deve impostare o meno la lingua dell'interfaccialeftbar
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])
Riga 213 ⟶ 239:
RenderLeftBar()
if not origArgs.nolink then
RenderLinkInTextRenderLinksInText()
end
return tostring(root)