Modulo:Box interwiki/man
Questa è la pagina di documentazione per Modulo:Box interwiki
Questo modulo implementa le funzionalità di alcuni dei template per i box con collegamenti interwiki contenuti nella Categoria:Template Wikimedia.
L'unica funzione esportata è getBox
. Nel resto del testo, ogni volta che ci si riferisce ad un #invoke
al modulo, è sottintesa la chiamata di questa funzione.
Il modulo:Box interwiki/Man generico per template derivati fornisce dei manuali standardizzati per i template derivati.
Gestione dei parametri
modificaParametri di #invoke
modifica
Per i box che linkano una sola pagina, il modulo ha bisogno solo di questi parametri. I box che linkano più pagine, invece, richiedono anche i parametri posizionali nella chiamata al template derivato; vedi alla sezione Parametri dei template derivati.
parametro | o/f [t 1] | x [t 2] | default [t 3] | descrizione | |
---|---|---|---|---|---|
pagina |
o | — | pagina da linkare con un wikilink
| ||
progetto |
o | — | nome del progetto per il wikilink alla Pagina principale del progetto p.e. Wikipedia | ||
prefisso |
o | — | prefisso per i wikilink al progetto
p.e. per Wikipedia è w vedi | ||
immagine |
o | — | file del logo del progetto | ||
etichetta-pagina |
f | x | pagina |
testo da visualizzare nel wikilink alla pagina
vedi | |
lingua |
f | it | codice linguistico del progetto | ||
progetto-multilingue |
f | — | da valorizzare con un testo qualsiasi quando si tratta di un progetto multilingue
influenza l'uso che il modulo fa dei parametri dei template derivati | ||
dimensione-immagine |
f | x55px | dimensione da impostare se con il valore di default le dimensioni del logo del progetto risultano sbilanciate rispetto a quelle degli altri progetti | ||
una-pagina |
f | una pagina | testo che sostituisce "una pagina" in pre-pagina
p.e. "una voce" per Wikipedia | ||
pre-progetto |
f | — | testo da inserire prima del wikilink al progetto | ||
pre-pagina |
f | ha una pagina su | sostituzione completa del testo tra il wikilink al progetto e quello alla pagina, nel caso di box con una sola pagina linkata | ||
pre-pagina-multi |
f | ha le pagine: | sostituzione completa del testo tra il wikilink al progetto e quello alla prima pagina, nel caso di box con più pagine linkate | ||
multi-pagina-come |
f | x | pagine | modalita di lettura dei parametri posizionali da {{{ 1 + parametri-riservati }}} in su
i valori ammessi sono :
lingua-pagina e lingua-pagina-etichetta sono incompatibili con | |
parametri-riservati |
f | 2 | numero di parametri posizionali riservati al template derivato
il modulo ricava gli eventuali link aggiuntivi a partire dal primo successivo |
- Note
- ↑ obbligatorio / facoltativo
- ↑
Per i parametri segnati con una x, il valore impostato in
#invoke
può essere sovrascritto impostando lo stesso parametro nella chiamata al template derivato. - ↑ Il tratto — indica l'assenza di un valore di default.
Esempi
modificaIl testo tra grafe indica i parametri valorizzati.
Base
modificaPer mostrare esattamente il risultato dei parametri, i wikilink sono mostrati come wikicode, grazie al fatto che la presenza delle grafe ne fa fallire il rendering.
In un template utilizzabile almeno il parametro pagina
è valorizzato tramite uno dei parametri del template stesso.
{{#invoke: Box interwiki | getBox
| pagina = {pagina}
| progetto = {progetto}
| prefisso = {prefisso}
| immagine = Arma ignota.jpg
}}
[[{prefisso}:Pagina principale|{progetto}]] ha una pagina su [[{prefisso}:{pagina}|{pagina}]].
[[Categoria:Pagine con box interwiki verso {progetto}|Modulo:Box interwiki/man]]
Messaggio d'errore in caso di parametri obbligatori mancanti
modificaErrore nell'#invoke al Modulo:Box interwiki.
I seguenti parametri devono essere sempre valorizzati :
- pagina
- progetto
- prefisso
- immagine
Base + lingua
modifica
Per mostrare esattamente il risultato dei parametri, i wikilink sono mostrati come wikicode, grazie al fatto che la presenza delle grafe ne fa fallire il rendering.
Quando è indicato un codice lingua corretto, "lingua" in "in lingua ha una pagina su" viene sostituito dal nome della lingua per esteso.
[[{prefisso}:{lingua}:Main Page|{progetto}]] in ha una pagina su [[{prefisso}:{lingua}:{pagina}|{pagina}]].
[[Categoria:Pagine con box interwiki verso {progetto}|Modulo:Box interwiki/man]]
una-pagina
+ etichetta-pagina
modifica
Progetto ha {una-pagina} su {etichetta-pagina}.
pre-progetto
+ pre-pagina
modifica
Parametri dei template derivati
modificaparametri-riservati
I template derivati dal modulo (ovvero che contengono un #invoke
allo stesso) possono adoperare qualsiasi parametro con nome, per valorizzare i parametri di #invoke
o per qualsiasi altro uso interno al template.
Una particolare gestione avviene invece per i parametri posizionali.
I primi parametri posizionali (nel numero indicato da parametri-riservati
) sono a libera disposizione del template. In diversi template {{{ 1 }}}
valorizza pagina
e {{{ 2 }}}
valorizza lingua
.
I parametri posizionali da {{{ 1 + parametri-riservati }}}
in su, se presenti, sono gestiti dal modulo e, una loro eventuale gestione anche nel template deve essere compatibile con quella effettuata dal modulo. In particolare, la valorizzazione del parametro {{{ 1 + parametri-riservati }}}
chiede al modulo la creazione di un box con link a più pagine.
L'interpretazione dei parametri posizionali dipende dal valore di multi-pagina-come
. Vedi nella tabella alla sezione Parametri di #invoke.
Una stringa vuota in una posizione corrispondente a una etichetta indica di non usare un testo sostitutivo per il link, ma il nome della pagina indicato dal parametro precedente.
Una stringa vuota in una posizione corrispondente a una lingua indica di usare la stessa lingua del link precedente.
Categorie impostate dal modulo
modificaIl modulo inserisce automaticamente alcune categorie, sia quando è richiamato tramite template che quando direttamente con un #invoke
.
In tutte le pagine
modifica- Nelle pagine del namespace principale che visualizzano un box :
- Nelle pagine di namespace diversi da quello principale che visualizzano un box :
Dove _Progetto_ viene sostituito dal testo del parametro progetto
. Queste categorie, raccolte sotto la categoria madre Categoria:Pagine con box interwiki e impostate come __HIODDENCAT__
, permettono di far manutenzione e tener d'occhio quantità e distribuzione dei box che linkano verso altri progetti.
- Nelle pagine in cui il modulo genera un errore :
Testo da inserire nelle pagine delle categorie :
__HIDDENCAT__
{{ServizioVuota}}
[[Categoria:Pagine con box interwiki]]
Nelle pagine dei template derivati
modifica- Nelle pagine dei template che richiamano il modulo, purché il box vi sia visualizzato :
Se, per qualsiasi motivo, il template non visualizza il box nella propria pagina ( per esempio perché la chiamata di #invoke
è sotto una condizione non verificata quando i parametri non sono valorizzati ), si può ottenere la categorizzazione del template tramite un box nel manuale del template.
Test nella console di debug
modificaIl seguente codice può essere inserito nella console di debug ( disponibile durante l'editing del modulo ) per testare l'output di una chiamata all'ipotetico template derivato definito dai valori nel secondo args = { ... }
, mentre i valori nel primo args = { ... }
simulano i parametri nella chiamata al template derivato.
I primi due valori nel primo args = { ... }
sono ininfluenti, solo i valori dal terzo in poi vengono letti dal modulo. L'eventuale uso che il template farà dei primi due valori, andrà simulato inserendo direttamente i valori risultanti nei parametri del secondo args = { ... }
, che simula la chiamata a #invoke
.
= p.getBox(
mw.getCurrentFrame()
:newChild{ args = {
'', '' -- , '', ''
} }
:newChild{ args = {
pagina = 'page',
progetto = 'project',
prefisso = 'pref',
immagine = 'image.svg',
[ 'etichetta-pagina' ] = nil,
lingua = nil,
[ 'progetto-multilingue' ] = nil,
[ 'dimensione-immagine' ] = nil,
[ 'una-pagina' ] = nil,
[ 'pre-progetto' ] = nil,
[ 'pre-pagina' ] = nil,
[ 'pre-pagina-multi' ] = nil,
[ 'multi-pagina-come' ] = nil,
[ 'parametri-riservati' ] = nil
} }
)
Il seguente codice permette di visualizzare il risultato della chiamata di un template già esistente basato sul modulo.
ATTENZIONE: questo secondo codice, a differenza del precedente, utilizza l'ultima versione salvata del modulo, non quella contenuta nella casella di modifica.
= mw.getCurrentFrame()
:expandTemplate{
title = 'Wikipedia', -- nome del template
args = { 'An article' } -- parametri passati al template
}