Modulo:Box interwiki/man

Da Wikinotizie, le notizie a contenuto aperto

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[modifica]

Parametri 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]   [t 2]   default [t 3]   descrizione
pagina o pagina da linkare con un wikilink

[[prefisso:pagina|etichetta-pagina]]

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 pagina

immagine o file del logo del progetto
etichetta-pagina f x pagina testo da visualizzare nel wikilink alla pagina

vedi pagina

lingua f it codice linguistico del progetto
progetto-multilingue f da valorizzare con un testo qualsiasi quando si tratta di un progetto multilingue

p.e. Commons o Meta-Wiki

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 :

  • pagine
ognuno è una pagina da linkare
  • pagina-etichetta
per coppie  [[ pagina | etichetta ]]
  • lingua-pagina
per coppie  [[ lingua : pagina ]]
  • lingua-pagina-etichetta
per triplette  [[ lingua : pagina | etichetta ]]

lingua-pagina e lingua-pagina-etichetta sono incompatibili con progetto-multilingue e ricadono, rispettivamente, su pagine e pagina-etichetta

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
  1. obbligatorio / facoltativo
  2. Per i parametri segnati con una x, il valore impostato in #invoke può essere sovrascritto impostando lo stesso parametro nella chiamata al template derivato.
  3. Il tratto — indica l'assenza di un valore di default.

Esempi[modifica]

Il testo tra grafe indica i parametri valorizzati.

Base[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.

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
}}
logo {progetto}
logo {progetto}

[[{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[modifica]

Errore 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.

logo {progetto}
logo {progetto}

[[{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]
logo Progetto
logo Progetto

Progetto ha {una-pagina} su {etichetta-pagina}.

pre-progetto + pre-pagina[modifica]
logo Progetto
logo Progetto

{pre-progetto} Progetto {pre-pagina} pagina.

Parametri dei template derivati[modifica]

parametri-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[modifica]

Il 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 :
Categoria:Articoli con box interwiki verso _Progetto_
  • Nelle pagine di namespace diversi da quello principale che visualizzano un box :
Categoria:Pagine con box interwiki verso _Progetto_

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 :
Categoria:Pagine con errori in box interwiki

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 :
Categoria:Template Wikimedia
Categoria:Template basati su Modulo:Box interwiki

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[modifica]

Il 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
}