Aiuto:Template: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Ciampix (discussione | contributi)
 
(280 versioni intermedie di oltre 100 utenti non mostrate)
Riga 1:
{{tipi di pagina}}
<center>''(Di una possibile ristrutturazione dei template presenti su Wikipedia si parla [[Discussioni Wikipedia:Monobook.css#Proposta_template|anche qui. Vuoi dire cosa ne pensi?]])''</center>
{{abbreviazioni|WP:TL|WP:Tl}}
----
In Wikipedia, un '''template'''<ref>Il termine è di lingua inglese ({{IPA|[ˈtɛmpleɪt]}} o {{IPA|[ˈtɛmplɪt]}}): in italiano sta per "modello", ma letteralmente è "sagoma", "calco". Per informazioni generali, vedi la voce [[Template]].</ref> è una pagina speciale creata per essere inclusa in altre pagine tramite il meccanismo dell'[[Aiuto:Inclusione|inclusione]].
Il '''template namespace''' è il [[Wikipedia:Namespaces|namespace]] con il prefisso "'''Template:'''".
 
Può essere usata per diversi scopi:
Una pagina con questo ''namespace'' è chiamata '''template'''. I contenuti di questo tipo di pagina sono progettati per essere inseriti all'interno di altre pagine, creando un documento composto.
* inserire facilmente del testo ripetuto su diverse pagine, scrivendolo una sola volta, come per i [[Wikipedia:Template di navigazione|template di navigazione]]
* inserire degli elementi standard, delle tabelle informative o degli avvisi
* inserire elementi di cui sia possibile programmare il comportamento in funzione di alcune variabili.
 
I template sono contenuti nel '''namespace template''' (o namespace 10), cioè il [[Aiuto:Namespace|namespace]] le cui pagine hanno la forma "'''Template:NOME'''" (ad esempio: [[Template:S]], [[Template:Benvenuto]], [[Template:Europa]]).
La sintassi per l'inserimento della pagina "Template:''nome''<nowiki>" in un'altra pagina è {{</nowiki>''nome''<nowiki>}}</nowiki>.
 
Per riferirsi a un template si può usare anche l'abbreviazione T, ad es. [[:t:Europa]].
Questo riferimento nel ''wikitext'' provoca l'inserimento del contenuto del template quando la pagina viene visualizzata.
 
{{TOC Aiuto|clear}}
Se la pagina "Template:''nome''<nowiki>" non esiste, allora {{</nowiki>''<nowiki>nome</nowiki>''<nowiki>}}</nowiki> funziona come <nowiki>[[</nowiki>Template:''nome''<nowiki>]]</nowiki>, un link a una pagina non esistente, che porta alla pagina di edit.
 
==Inserimento==
Se ''nome'' comincia con il prefisso di un namespace valido, o i due punti, allora non viene messo il prefisso "Template:". In questo modo, ogni pagina può essere usata come template (i due punti all'inizio si riferiscono al namespace principale). Questa caratteristica è utile soprattutto per inserire messaggi nel MediaWiki namespace ed effettuare esperimenti coi template nelle sottopagine di una pagina utente.
{{vedi anche|Aiuto:Inclusione}}
[[File:Transclusion-simple.png|frame|right|Esempio di inclusione]]
 
Tutte le pagine che appartengono al namespace 10 possono essere inserite rapidamente in una pagina, semplicemente scrivendo il nome del template (la parte che segue la scritta ''Template:'') tra doppie [[parentesi graffe]]<ref>Con la [[Disposizione di tastiera#Iitaliana|tastiera italiana]] la parentesi graffa aperta si può ottenere premendo {{tasto|Alt Gr}}+{{tasto|SHIFT}}+{{tasto|[}}, mentre la parentesi graffa chiusa premendo {{tasto|Alt Gr}}+{{tasto|SHIFT}}+{{tasto|]}})</ref>, come in <nowiki>{{</nowiki>''NOME''<nowiki>}}</nowiki>.
Come al solito, il nome distingue maiuscole e minuscole ad eccezione della prima lettera e degli spazi che sono equivalenti agli underscore.
Questo riferimento nel ''wikitext'' provoca l'inserimento del contenuto del template quando la pagina viene visualizzata.
 
Se la pagina "Template:''nome''<nowiki>" non esiste, allora {{</nowiki>''<nowiki>nome</nowiki>''<nowiki>}}</nowiki> funziona come <nowiki>[[</nowiki>Template:''nome''<nowiki>]]</nowiki>, un link a una pagina non esistente, che porta alla pagina di edit.
&Egrave; possibile utilizzare l'inclusione ricorsiva.
 
Non è consentito l'inserimento di template inesistenti.
Una variabile in un template è valutata dopo l'inserimento nella pagina che lo referenzia, per esempio se la variabile <nowiki>{{PAGENAME}}</nowiki> appare nel wikitext di un template, è reso con il nome della pagina che lo contiene e non il nome del template.
 
Se il template non si trova nel namespace apposito (perché ancora in lavorazione, o perché si tratta di un inserimento di un'altra pagina) può essere usato ugualmente, inserendo il nome con il percorso completo (ad esempio <nowiki>{{utente:NOME COGNOME/Pagina di prova}}</nowiki>).
==Parametri==
 
L'inserimento è ''case sensitive'', ovvero il software distingue le lettere maiuscole e minuscole, ad eccezione della prima lettera e degli spazi che sono equivalenti agli ''underscore'' ( "_" ). Quindi:
Sono supportati i template parametrici, richiamabili sia mediante un nome che mediante un numero. La sintassi è <tt><nowiki>{{templatename|nomeparametro1=valoreparametro1|nomeparametro2=valoreparametro2}}</nowiki></tt> con i tag <tt><nowiki>{{{nomeparametroe}}}</nowiki></tt> nel template, oppure <tt><nowiki>{{templatename|valoreparametro1|valoreparametro2}}</nowiki></tt> con i tag <tt><nowiki>{{{1}}}</nowiki></tt>, <tt><nowiki>{{{2}}}</nowiki></tt>, etc. nel template (nota che i [[Aiuto:Glossario#Tag|tag]] dei parametri nel template hanno tre parentesi graffe e non due).
* i template <nowiki>{{pagina di prova}} e il template {{pagina di Prova}}</nowiki> saranno riconosciuti come differenti
* i template <nowiki>{{pagina di prova}} e {{pagina_di_prova}}</nowiki> saranno identici.
 
È possibile utilizzare l'inclusione annidata: un template incluso in una pagina può contenere a sua volta uno o più template.
Nella fase di ''rendering'', i parametri in soprannumero sono ignorati. Se vengono passati pochi parametri, il risultato è come si vede nel template stesso, dipendendo dai parametri che mancano.
 
Nell'inserire i template è possibile dichiarare delle variabili che verranno usate all'interno dello stesso: in questo caso si parla di ''template parametrico''.
Nota che i parametri nel [[m:MediaWiki namespace]] (messaggi di interfaccia) sono scritti in maniera differente: $1, $2, etc.
 
== Parentesi graffe ==
==Vedere il contenuto di un template==
Per inserire le doppie parentesi graffe che aprono e chiudono un template esistono diversi modi che dipendono sia dal [[Tastiera (informatica)|layout di tastiera]] sia dal [[sistema operativo]]. Si può anche fare copia e incolla da qui: <nowiki>{{ }}</nowiki>
{| class="wikitable"
!graffa aperta
!graffa chiusa
!sistema
|-
|{{tasto|AltGr|7}}
|{{tasto|AltGr|0}}
|[[GNU/Linux]] - [[QWERTY#Tipo_di_layout_della_tastiera|layout it]]
|-
|{{tasto|Shift|[}}
|{{tasto|Shift|]}}
|[[Microsoft Windows]], [[GNU/Linux]] - [[QWERTY#Tipo_di_layout_della_tastiera|layout en]]
|-
|{{tasto|Alt|123}}
|{{tasto|Alt|125}}
|[[Microsoft Windows]]
|-
|{{tasto|AltGr|Shift|è}}
|{{tasto|AltGr|Shift|+}}
|[[Microsoft Windows]], [[GNU/Linux]] - [[QWERTY#Tipo_di_layout_della_tastiera|layout it]]
|-
|{{tasto|Alt|Ctrl|Shift|è}}
|{{tasto|Alt|Ctrl|Shift|+}}
|[[Microsoft Windows]] - [[QWERTY#Tipo_di_layout_della_tastiera|layout it]]
|-
|{{tasto|⌥|⇧|è}}
|{{tasto|⌥|⇧|+}}
|[[macOS]] (con il layout ''Italiano&nbsp;– Pro'')
|}
 
<u>'''Nota'''</u>: Il tasto {{tasto|shift}}, su alcune tastiere, per esempio inglesi può anche essere chiamato "Shift". Spesso si trova subito sotto il tasto {{tasto|invio}} (o "Enter").
Per vedere il contenuto di un template, è necessario aprirlo in modifica, non solo la pagina del template in quanto in essa:
 
==Utilizzo==
*non sono mostrate le variabili ma i loro valori; per esempio vedere la pagina [[:en:Template:In_Wikipedia]] con il contenuto
I template sono utili per ogni elemento complesso, specialmente con formattazione grafica, che occorre ripetere in due o più pagine senza doverlo digitare ogni volta. Grazie ai parametri è anche possibile variarne l'aspetto a seconda della voce, sempre senza dover digitare tutto ogni volta.
I template non solo sono comodi ma possono aiutare a raggiungere l'uniformità fra le pagine.
 
Tipiche applicazioni sono:
<nowiki>:''See [[Wikipedia:{{PAGENAME}}]] for the usage of "{{PAGENAME}}" in Wikipedia.''</nowiki>
*'''[[Aiuto:Avvisi|Avvisi]]''' come {{tl|S}}
*'''[[Wikipedia:Template di navigazione|Template di navigazione]]''' come [[Template:Europa]]. Questi template vanno a fondo pagina, dopo i [[WP:collegamenti esterni|collegamenti esterni]] e prima del template {{tl|portale}} e delle [[Aiuto:categorie|categorie]].
*'''[[Wikipedia:Template sinottici|Template sinottici]]''' (detti anche ''infobox''), che ogni volta mostrano lo stesso tipo di informazione con lo stesso formato ma differenziato utilizzando i parametri, per esempio {{tl|Stato}}. Questi template vanno inseriti in alto a destra nella voce.
 
===Utilizzi sconsigliati===
mostra
Si sconsiglia di duplicare i contenuti testuali (sia con i template sia senza), per esempio mettere una sezione che ha a che fare con A e B sia nella voce A sia nella voce B. Questo genera confusione, soprattutto nei contributori novizi. In questi casi conviene visualizzare il testo in un solo luogo e sfruttare i wikilink per collegarlo da più parti.
 
==Template parametrici==
:''See [[Wikipedia:In Wikipedia]] for the usage of "In Wikipedia" in Wikipedia.''
[[Immagine:Curly Brackets.svg|right|75px]]
Quando si costruisce un template, può essere necessario lasciare all'utente la possibilità di personalizzare una parte del testo o del comportamento del template, a seconda della pagina dove viene inserito. In questo caso, l'utente indica uno o più parametri che poi verranno sfruttati per la rappresentazione a video del template stesso. Ad esempio il [[template:Film]] mostra dati diversi a seconda del film che descrive.
 
In ogni pagina in cui il template è inserito, i parametri vengono espressi di seguito al nome del template, separati da barre verticali, e possono essere identificati da un nome di parametro o da un ordine progressivo. Il metodo di identificazione dipende da come è stato costruito il template ed è spiegato nel suo [[Wikipedia:Manuali dei template|manuale]]; possono anche essere supportati entrambi.
* i parametri sono visualizzati come se la coppia più interna di parentesi fosse un riferimento ad altri template, quindi <nowiki>{{{Nome parametro}}}</nowiki> è visualizzato come {[[Template:Nome parametro]]}, a meno che il nome del parametro non sia uguale al nome del template, in questo caso viene mostrato il contenuto del template; per la precisione, un template può essere creato col nome del parametro ed al suo interno questo nome fra doppia parentesi graffa ed il tag nowiki (a meno che il nome del template non sia necessario per scopi più importanti). Questo è stato fatto sulla Meta per i parametri 1 e 2, vedere [[:en:Template:1]] e [[:en:Template:2]]. In ogni modo, bisognerebbe usare nomi di parametri che non siano già nome di template (a parte lo scopo sopra menzionato).
 
Esempio di inclusione con parametri chiamati per nome:
In effetti, il rendering di una pagina template può implicare anche altre conversioni che non è utile prendere in considerazione.
<nowiki>{{nome template|nome=Tizio|cognome=Caio|data=martedì}}</nowiki>
 
Esempio di inclusione con parametri in ordine progressivo:
La pagina del template mostra anche per ogni paramentro quello che viene mostrato quando il parametro stesso non è specificato.
<nowiki>{{nome template|Tizio|Caio|martedì}}</nowiki>
 
All'interno del template stesso, in mezzo al [[Aiuto:Glossario#Wikicodice|wikicodice]] che costituisce la pagina "Template:nome template", i parametri sono rappresentati da etichette racchiuse tra ''triple'' parentesi graffe; quando il template verrà incluso, a queste etichette verranno sostituiti i valori di testo assegnati di volta in volta dall'utente ai parametri.
==msgnw==
 
Nel primo esempio:
Nel wikitext, usare "msgnw:" dopo le parentesi graffe aperte per visualizzarne il contenuto. Per esempio <nowiki>{{stub}}</nowiki> e <nowiki>{{msgnw:stub}}</nowiki> visualizzano rispettivamente
<nowiki>{{{nome}}}, {{{cognome}}} e {{{data}}}</nowiki>
Nel secondo:
<nowiki>{{{1}}}, {{{2}}} e {{{3}}}</nowiki>
 
La sintassi per esteso è dunque
{{stub}}
<nowiki>{{templatename|nomeparametro1=valoreparametro1|nomeparametro2=valoreparametro2}}</nowiki><br />con i [[Aiuto:Glossario#Tag|tag]] <code><nowiki>{{{nomeparametro}}}</nowiki></code> nel template
:oppure
<code><nowiki>{{templatename|valoreparametro1|valoreparametro2}}</nowiki></code><br />con i tag <code><nowiki>{{{1}}}</nowiki></code>, <code><nowiki>{{{2}}}</nowiki></code>, ecc. nel template.
 
'''note importanti''':
e <br>
*i tag dei parametri nel template hanno ''tre'' parentesi graffe e non ''due''!
*i nomi dei parametri devono corrispondere esattamente; le maiuscole contano, e gli spazi ''non'' sono equivalenti agli underscore.
 
{{Approfondimento
{{msgnw:stub}}.
|allineamento = centro
|larghezza = 100%
|titolo = Esempio
|contenuto = La pagina "Template:Saluto" contiene:
<nowiki>Ciao {{{nome}}}, come va?</nowiki>
Il template viene incluso in una voce digitando:
<nowiki>{{Saluto|nome=Tizio}}</nowiki>
Dopo aver salvato la modifica (oppure nell'[[Aiuto:Anteprima|anteprima]]), nella voce comparirà:
Ciao Tizio, come va?
}}
 
Nella fase di ''rendering'' (ossia di generazione a video del risultato dell'inserimento del template), i parametri in soprannumero saranno ignorati. Se invece i parametri sono insufficienti, normalmente si verificherà un errore, a meno che non sia stata prevista la possibilità di omettere un dato parametro.
==Link per modificare un template==
 
===Parametri opzionali===
Il link di edit di ogni pagina non permette l'editing del testo del template che appare nella pagina stessa. Potrebbe essere desiderabile avere un link speciale per questo scopo. Questo link può essere inserito nel template stesso. Poiché questi link di edit sono simili nei vari template, potrebbe essere creato un template per lo scopo con il nome del template come parametro. Vedere per esempio [[Template:ed]] e [[Template:Letteratura]].
Solitamente un parametro si rende opzionale con la forma <code><nowiki>{{{1|}}}</nowiki></code> oppure <code><nowiki>{{{1|Pippo}}}</nowiki></code>, cioè con una barra verticale dopo il nome. La barra significa che, in mancanza di quel parametro, verrà usato di default il valore successivo alla barra (niente, nel primo caso; "Pippo" nel secondo).
 
Il default non viene applicato se il parametro è vuoto, ma la sua dichiarazione è comunque presente: chiamando <code><nowiki>{{nome template|}}</nowiki></code> (o <code><nowiki>{{nome template|nome=}}</nowiki></code> se tale parametro ha un nome) il valore del parametro sarà proprio nullo e non "Pippo". Per controllare che il parametro non sia né assente né vuoto è necessaria la [[Aiuto:Funzioni_parser#if|funzione #if]].
A volte un link di edit non è necessario, per esempio un un template contenente la lista delle provincie in una regione, che è stata già controllata per eventuali errori e non dovrà essere cambiata per molto tempo.
 
===Caratteri di spazio===
==Utilizzo==
Quando si usa la notazione con =, gli eventuali spazi e ritorni a capo intorno ai valori dei parametri vengono ignorati, quindi <code><nowiki>{{Saluto|nome=Tizio}}</nowiki></code> è equivalente a <code><nowiki>{{Saluto| nome = Tizio }}</nowiki></code>. Per questo motivo, i template che hanno molti parametri con nome vengono spesso inseriti nel seguente formato, più leggibile e facile da compilare:<br />
<syntaxhighlight lang=moin style="margin-left:1em;">{{nome template
|nome = Tizio
|cognome = Caio
...
}}</syntaxhighlight>
 
Non è così invece per le dichiarazioni implicite: <code><nowiki>{{Saluto|Tizio}}</nowiki></code> e <code><nowiki>{{Saluto| Tizio }}</nowiki></code> sono differenti, e nel secondo caso gli spazi verranno testualmente riportati nella pagina chiamante.
I template sono utili per ogni testo che occorre avere in due o più pagine e non occorre che il testo venga modificato indipendentemente per adattarlo alle pagine in cui è presente. Dal momento che è possibile utilizzare i parametri, le versioni possono anche essere differenziate dal momento che i parametri sono indipendenti fra le varie pagine.
Spesso gli spazi sono comunque innocui, ma se così non fosse, un possibile trucco per rimuoverli è usare <code><nowiki>{{#if:toglispazi|{{{1}}}}}</nowiki></code> nel codice del template ("toglispazi" è una stringa qualunque).
 
===Limitazioni===
I template non solo sono comodi ma possono aiutare a raggiungere l'uniformità fra le pagine.
Un nome di parametro o il suo valore non può contenere il carattere "'''|'''", dal momento che serve per separare i parametri. Eventuali "|" all'interno dei wikilink ([[Aiuto:Piped_link|piped link]]) o di altri template non sono un problema, ma se occorre inserire un "|" per altri motivi, usare il comando <nowiki>{{!}}</nowiki>.
:questa sintassi funziona correttamente: '''<nowiki>{{Template|[[Marte (astronomia)|Marte]]}}</nowiki>'''
:ma questa non funziona: '''<span style="color:red"><nowiki>{{</nowiki>Template|La | è una barra}}</span>'''
:per porvi rimedio, è necessario usare questa variante: '''<span style="color:green"><nowiki>{{Template|La {{!}} è una barra}}</nowiki></span>'''
 
Inoltre, se il nome delle variabili non viene specificato, il loro valore non può contenere il segno "'''='''". Se si ha bisogno di inserire il segno "=" in un template che usa i nomi impliciti per le variabili allora è necessario esplicitarne il nome, ad esempio:
Tipiche applicazioni sono:
:questa sintassi funziona correttamente: '''<nowiki>{{</nowiki>Template|A|B}}'''
*[[:en:Wikipedia:Template messages]] come [[Template:stub]]
:ma questa non funziona: '''<span style="color:red"><nowiki>{{</nowiki>Template|A=10|B=32}}</span>'''
*[[:en:Wikipedia:Navigational templates]] come [[Template:Europa]]
:per porvi rimedio, è necessario usare questa variante: '''<span style="color:green"><nowiki>{{</nowiki>Template|1= <span style="color:gray">A=10</span>|2= <span style="color:gray">B=32</span>}}</span>'''
*[[:en:Wikipedia:Infobox]], ogni volta mostrano lo stesso tipo di informazione con lo stesso formato ma differenziato utilizzando i parametri, per esempio il già menzionato [[:en:Template:Infobox Countries]].
Oppure si può usare la [[Aiuto:Variabili#parolamagica_uguale|parola magica]] <code><nowiki>{{=}}</nowiki></code> nel seguente modo: <nowiki>{{Template|A{{=}}10|B{{=}}32}}</nowiki>.
*permette la portabilità attraverso le varie lingue dei testi che sono molto simili a parte alcuni termini standard che differiscono per ogni lingua; i termini standard sono rimpiazzati da {{..}} che si riferisce a pagine di template con lo stesso nome ma col contenuto localizzato per ogni lingua. Per esempio [[:en:Wikipedia:Template_messages#Taxobox_components_.28Taxons.29]] per le schede di tassonomia, vedi [[:en:Template:Familia]] e [[:fr:Mod%C3%A8le:Familia]].
 
==Modificare un template==
Sono possibili varie combinazioni. Per esempio, le ultime due possono essere combinate in modo che ogni versione nazionale di Wikipedia ha lo stesso template "Infobox Countries" (ne occorre una copia per ogni progetto poiché non è supportata un meccanismo di importazione fra i vari progetti), che ha i vari dati parametrici e si riferisce ad altri template per la traduzione dei termini standard.
Per vedere il contenuto di un template è necessario aprirlo in modalità modifica.
 
Andando semplicemente sulla pagina del template, a seconda di come questa è impostata si otterrà nei casi più comuni un esempio di visualizzazione del template o una pagina di istruzioni, a volte accompagnate da un avviso che marca i template più complessi e di difficile modifica.
===Template di navigazione===
 
Per andare alla pagina di un template, oltre a digitare il suo nome nella casella di ricerca, è possibile cliccare sul tag ''modifica'' di una voce in cui è contenuto il template. In fondo a sinistra, dopo il wikicodice della voce, apparirà una sezione con titolo "Template utilizzati in questa pagina", contenente i link a tutti i template inseriti nella pagina.
Un semplice tipo, largamente utilizzato, di template di navigazione in una gerarchia di pagine è costituito dai nomi coi link alle pagine "genitore" e "figlio". &Egrave; posto in tutte le pagine della gerarchia. Ogni pagina che non è la prima o l'ultima della gerarchia ha due template, una con padre e fratelli, l'altra con i figli.
 
È necessaria una precisazione importante:
Possono esserci delle varianti come pagine con due padri ecc.
 
<strong class="error">NON MODIFICARE MAI IL CONTENUTO DI UN TEMPLATE IN USO SE NON SAI QUELLO CHE STAI FACENDO</strong>
I [[:en:Wikipedia:Self link|self link]] non sono un problema: sono visualizzati in grassetto piuttosto che come link. In questo caso il template dovrebbe essere nella pagina corretta e non avere redirezioni, altrimenti questa caratteristica non funzionerebbe.
 
Modificare un template molto richiamato può danneggiare numerose pagine, oltre a sovraccaricare di lavoro i server di Wikipedia, che devono aggiornare tutte le pagine che lo includono. In particolare, <u>non cambiare il nome/ordine dei [[#Template parametrici|parametri]]</u>, a meno che tu intenda correggere subito una per una anche tutte le pagine che già includono il template. È sempre meglio fare delle prove prima di modificare template molto usati, sfruttando l'anteprima oppure le [[aiuto:sandbox|sandbox]].
Un template di navigazione può anche permettere di muoversi avanti ed indietro in una sequenza lineare, per esempio [[Template:Papa]]. Un piccolo inconveniente è che l'inizio e la fine della sequenza sono da trattare come un caso a parte.
 
Quando un template è aperto in modifica, è possibile come per tutte le pagine visualizzare l'[[aiuto:Anteprima|anteprima]] del template stesso; inoltre, per i template è disponibile un'altra funzione (il riquadro "{{int:templatesandbox-editform-legend}}") che consente di visualizzare direttamente l'effetto che avrebbero le modifiche in una voce che include già il template, senza dover fare alcun salvataggio, nemmeno di sandbox.
===Utilizzi sconsigliati===
 
Inoltre, a causa di numerosi vandalismi, un certo numero di template è protetto automaticamente dalle modifiche tramite alcune Regexp.
Si sconsiglia di duplicare i contenuti (sia coi template che senza), per esempio mettere una sezione che ha a che fare con A e B sia in A che in B. Questo ingenera confusione e irrita il lettore, soprattutto se il testo ripetuto non è immediatamente riconoscibile con una formattazione speciale. In questi casi conviene usare i link con le duplicazioni limitate il più possibile.
 
==Creare un template==
==Limitazioni==
La creazione di un template nuovo avviene come per qualsiasi altra pagina. Poiché un template è fatto per essere utilizzato in diverse voci, talvolta anche migliaia, è bene discutere l'opportunità della sua creazione, ad esempio presso un [[WP:progetto|progetto tematico]].
 
Quando scrivi un template è sempre una buona idea inserire le categorie a cui il template appartiene, un breve testo di istruzioni (o meglio ancora un [[aiuto:manuali dei template|manuale]]) e una presentazione delle funzioni del template tra i tag {{tag|noinclude}}. Si veda [[Aiuto:Inclusione]] per una descrizione di questi tag. Se non si utilizza noinclude, le categorie e le istruzioni appariranno erroneamente anche in tutte le voci in cui il template è inserito.
Un nome di parametro o il suo valore non può contenere il carattere "|", dal momento che serve per separare i parametri. Se occorre usare un "piped link", usare lo stile dei link esterni o due parametri distinti.
 
Se necessario, il codice del template vero e proprio viene invece racchiuso tra i tag {{tag|includeonly}}, per evitare che un risultato senza senso venga mostrato nella pagina del template stesso. Non inserire spazi e andate a capo al di fuori dei tag {{code|includeonly}} e {{code|noinclude}}, perché apparirebbero anche nelle voci.
In un template, il nome di un'immagine o un altro template non possono dipendere da un parametro. Possono essere utilizzate le variabili come mostrato più avanti.
In un template, un link ad una pagina con lo stile dei link interni dipendente da un parametro è reso come un link ad una pagina non esistente, per evitare questo utilizzare lo stile dei link esterni.
 
Esiste un terzo tipo di tag, ovvero {{tag|onlyinclude}} (alternativo e da non confondere col precedente), che può essere usato per marcare la parte di codice che va inclusa. Tale codice verrà comunque mostrato nella pagina del template, e ciò che non è marcato verrà ignorato nell'inclusione.
Vedere per esempio [[:en:Template:T2]], richiamato con <nowiki>{{T2|H|a}}</nowiki> risulterà in Wikipedia come [[:en:List_of_people_by_name:_Ha]] e richiamato con <nowiki>{{T2|H|1}}</nowiki> risulterà [[:en:List_of_people_by_name:_H1]]. Questi link, anche se appaiono come esterni, sono comunque link a pagine interne e non mostrano se la pagina esiste quindi, indipendentemente dal contenuto, mostrano la pagina e non la pagina di modifica.
 
{| class="wikitable" style="text-align: center;"
==Immagini nei template==
! Wikitesto
! Cosa mostra la pagina del template
! Cosa mostra pagina che invoca il template
|-
|<code><nowiki><noinclude> testo1 </noinclude> testo2</nowiki></code>
|<code>testo1 testo2</code>
|<code>testo2</code>
|-
|<code><nowiki>&lt;onlyinclude&gt; testo1 &lt;/onlyinclude&gt; testo2</nowiki></code>
|<code>testo1 testo2</code>
|<code>testo1</code>
|-
|<code><nowiki><includeonly> testo1 </includeonly> testo2</nowiki></code>
|<code>testo2</code>
|<code>testo1 testo2</code>
|-
|<code><nowiki>&lt;onlyinclude&gt;<includeonly> testo1 </includeonly>&lt;/onlyinclude&gt; testo2</nowiki></code>
|<code>testo2</code>
|<code>testo1</code>
|}
 
==Nomi dei template==
Un'immagine in un template che dovrebbe essere differente in ogni pagina nella quale il template è richiamato, dovrebbe avere un nome del tipo ''prefisso''<nowiki>{{PAGENAME}}</nowiki>''suffisso'' (con un prefisso, un suffisso o entrambi), poiché le variabili sono ammesse nei nomi delle immagini e i parametri no. Attenzione che cambiando il nome della pagina in cui è presente il template, occorre ricaricare l'immagine col nuovo nome.
Sui titoli non ci sono limiti tecnici oltre a quelli che hanno tutte le altre pagine; un template si può tranquillamente chiamare "Template:Città italiane maggiori", senza necessità di nomi da linguaggio di programmazione come "Template:CittaITA1" (lo stesso si può dire dei nomi dei parametri). In linea generale si seguano quindi le stesse [[WP:Titolo della voce|convenzioni usate per le voci]], scegliendo nomi in italiano corretto.
 
Le abbreviazioni vengono usate di solito solo per template molto utilizzati che richiedono un'alta velocità di inserimento manuale, è il caso ad esempio dei principali [[aiuto:Avvisi|avvisi]].
Esempio: <nowiki>[[Immagine:Location{{PAGENAME}}.png|Location of {{{the}}} {{PAGENAME}}]]</nowiki>.
 
Notare che anche per i template funzionano i [[aiuto:Redirect|redirect]].
Se il nome dell'immagine dipende da un parametro, l'immagine non viene mostrata nella pagine che la referenzia ma appare soltanto il link alla pagina di descrizione dell'immagine, vedere per esempio [[:en:Template_talk:Infobox Thai Province]].
 
==Elenco delle pagine che contengono un template==
==Cache==
Per verificare quali pagine contengono un template si utilizza (come per qualsiasi pagina) il ''[[aiuto:Puntano qui|Puntano qui]]'' degli strumenti a sinistra. Lo strumento permette di distinguere quali pagine includono il template e quali semplicemente lo puntano con un wikilink.
 
== Elenco dei template inclusi in una pagina ==
Quando una pagina nel namespace dei template viene modificata, automaticamente azzera la cache di tutte le pagine che utilizzano il template. Comunque, esistono di casi di dipendenza indiretta in cui la pagine potrebbe non venire agggiornata anche premendo Ctrl-F5 o simili. Questo è, per esempio, il caso delle pagine (in genere pagine di discussione sui template) che si riferiscono a [Template:Tc], contenente <nowiki>{{msgnw:{{PAGENAME}}}}</nowiki>, probabilmente perché la pagina di template dipende da una variabile.
Se si vuole visualizzare l'elenco dei template inclusi in una pagina, aprire tale pagina in modalità modifica (o visualizza sorgente, per le pagine protette).
 
Poco sotto il riquadro di modifica, sulla sinistra, vi è una parte della pagina dal titolo "Template utilizzati in questa pagina:" che elenca i vari template inclusi nella pagina in questione. È possibile cliccare sul nome di uno di essi per raggiungere la relativa pagina e da lì, eventualmente, editarla.
==subst==
'''Nota: dopo la ricategorizzazione dei template (agosto 2005) l'uso di ''subst:'' per l'inserimento di un template è da evitare, perchè aggiunge la pagina su cui è utilizzato alle [[:Categoria:Template|categorie di servizio dei template]].'''
 
Nota: Lì sono indicati non solo i template inclusi direttamente, ma anche indirettamente (cioè quelli inclusi a loro volta in un template incluso nella pagina, e così via).
Mettendo "subst:" dopo le doppie graffe aperte, questo comando nel wikitext verrà rimpiazzato dal template quando la pagina verrà salvata. Se qualcuno modificherà la pagina in seguito, non vedrà più il tag nel [[wikitext]] ma solo il testo sostituito. Questo è simile al "pipe trick" ed alla firma nelle pagine di Talk, vedere [[Aiuto:Come si modifica una pagina]].
 
==Cache==
:Esempio: <nowiki>{{subst:rcnote}}</nowiki>
{{vedi anche|Aiuto:Purge}}
Quando un template viene modificato, la versione HTML di cache di tutte le pagine che utilizzano il template viene marcata come da rigenerare, attività che è eseguita tramite una coda di lavoro dai server. L'aggiornamento può quindi richiedere un po' di tempo, specialmente quando il template è incluso in molte pagine; perciò non preoccuparti se le modifiche al template non appaiono subito nelle pagine. Per forzare subito l'[[Aiuto:Purge|aggiornamento]] di una certa pagina, basta fare un salvataggio (anche senza modifiche) della pagina.
 
==Sostituzione di un template (subst:)==
Se si vuole utilizzare una versione modificata del messaggio standard, occorre salvare la versione standard e poi modificarla perché nell'anteprima il codice non viene rimpiazzato enl box di edit. Nell'oggetto è possibile indicare con un "tmp" che non si è fatto un errore ma si sta ancora lavorando sulla pagina.
{{vedi anche|Aiuto:Subst}}
Mettendo "subst:" dopo le doppie graffe aperte, questo comando nel wikitesto verrà rimpiazzato dal contenuto del template quando la pagina verrà salvata. Se qualcuno modificherà la pagina in seguito, non vedrà più il tag nel wikitesto ma solo il testo sostituito.
 
== Controllare l'aspetto grafico ==
Le [[Variabile|variabili]] sono copiate come appaino nel wikitext.
Quando si modifica la grafica di un template, è buona norma controllarne l'aspetto con i principali browser, poiché non tutti i browser visualizzano la [[Wikipedia:Grafica di Wikipedia|grafica di Wikipedia]] allo stesso modo. Vedi anche [[Wikipedia:Accessibilità del contenuto]].
 
==Variabili di sistema==
Se si prova a specificare dei parametri, come in <nowiki>{{subst:t2|R|s}}</nowiki> viene accettata come sintassi del comando subst ma i valori dei parametri saranno ignorati. Se il template ha dei parametri, saranno presenti anche nel testo sostituito.
Le [[Aiuto:Variabili|variabili di sistema]] possono essere considerate come dei template speciali gestiti con la medesima sintassi, anche se il sistema le riconosce senza necessità di una pagina corrispondente nel [[Aiuto:Namespace|namespace]] {{ns:10}}, che anzi, qualora fosse creata con un nome già usato dalle variabili, verrebbe ignorata.
 
È possibile usare le variabili anche all'interno dei template, oltre ai parametri dichiarati dall'utente, per ottenere alcune informazioni come i nomi delle pagine in cui il template è incluso <nowiki>({{PAGENAME}})</nowiki> o la data (<nowiki>{{CURRENTDAY}} {{CURRENTMONTHNAME}} e {{CURRENTYEAR}}</nowiki> nelle varie combinazioni).
==Voci correlate==
Una [[aiuto:Glossario#Parola magica|parola magica]] in un template è valutata dopo l'inserimento nella pagina che lo referenzia, per esempio se la parola magica <nowiki>{{PAGENAME}}</nowiki> appare nel wikicodice di un template, è resa con il nome della pagina che la contiene e non con il nome del template.
* [[Wikipedia:Messaggi]]
 
* [[Wikipedia:Progetto_Coordinamento/Elenco_di_tutti_i_template|Tutti i template di Wikipedia]]
==msgnw==
Usare "msgnw:" dopo le parentesi graffe aperte per visualizzare il wikicodice interno del template anziché il suo aspetto. Per esempio <nowiki>{{ITA}}</nowiki> e <nowiki>{{msgnw:ITA}}</nowiki> visualizzano rispettivamente:
 
{{ITA}}<br />e<br />{{msgnw:ITA}}
*[[:en:Wikipedia:Template namespace]]
*[[m:MediaWiki namespace]]
*[[m:MediaWiki_1.3_comments_and_bug_reports#Bugs_related_to_templates]]
*[[m:MediaWiki_roadmap#Template_syntax]]
*[[m:Message substitution]]
 
== Ricerca combinata ==
==Esempi==
{{RicercaCombinata}}
 
==Note==
(Vedi ''{{MediaWiki:Whatlinkshere}}'' per le pagine che usano questi template)
<references/>
 
== Pagine correlate ==
*[[Template:Stub]]
* [[Template:Tl]]: utile per citare template (in documentazione, esempi, discussioni ecc.)
*[[Template:Benvenuto]]
* [[Template:Avviso]]: usato per uniformare i template degli avvisi temporanei nelle voci e alcuni avvisi nelle pagine di servizio
*[[Template:Europa]]
* [[Template:Avviso permanente]]: usato per uniformare i template degli avvisi permanenti nelle voci
*[[Template:Fisica]]
* [[Template:Avviso utente]]: usato per uniformare i template di avviso agli utenti
* [[Aiuto:Schema dei template]] (esclusi quelli sinottici, tematici e di navigazione)
* [[Aiuto:Manuali dei template]]
* [[Aiuto:Inclusione]]
* [[Aiuto:Funzioni parser]] (per variazioni dinamiche, come nella programmazione)
* [[Aiuto:Moduli]] (programmazione vera e propria)
* [[Aiuto:Templatestyles]] (per stili CSS specifici)
* [[Wikipedia:Template di navigazione]]
* [[Wikipedia:Template sinottici]]
* [[:Categoria:Template]]
* [[m:MediaWiki namespace]] (collegamento a Meta-Wiki)
* [[m:MediaWiki 1.3 comments and bug reports#Bugs related to templates]] (collegamento a Meta-Wiki)
* [[m:MediaWiki roadmap#Template syntax]] (collegamento a Meta-Wiki)
* [[m:Message substitution]] (collegamento a Meta-Wiki)
* [[m:Help:Advanced templates]] (collegamento a Meta-Wiki)
 
==Altri progetti==
Nelle wiki straniere:
{{ip|meta=help:template|q}}
 
{{progetto|template}}
*[[:en:Template:Europe]]
*[[:en:Template:JuneCalendar]]
*[[:en:Template:Infobox Countries]], [[:fr:Modèle:Tableau pays]]
**many parameters
**images depending on <nowiki>{{PAGENAME}}</nowiki>
*[[:eo:Ŝablono:El]]
*[[:fr:Modèle:Familia]]
*http://wikibooks.org/wiki/Template:GeneralChemTOC
*http://wikibooks.org/wiki/Template:New
*[http://wikiquote.org/w/wiki.phtml?title=Template:Qotd Quote of the day]
 
[[categoriaCategoria:Aiuto|Template template]]