# Usare Wikibooks/Tecniche

Usare Wikibooks
Copertina Tutti i moduli · Sviluppo
Introduzione
* Cos'è WikibooksUsare Wikibooks/Cos'è
* Cosa Wikibooks non èUsare Wikibooks/Cosa non è
* Creare ed usare un accountUsare Wikibooks/Registrazione
* I pilastri di Wikibooks: discussione e consenso effettivoUsare Wikibooks/Discussione e consenso
Guida per il lettore
* Cercare e trovare un libroUsare Wikibooks/Cercare
* Stampare un libroUsare Wikibooks/Stampare
* Usare un wikibook a scuolaUsare Wikibooks/Scuola
* Correggere piccoli erroriUsare Wikibooks/Errori
Guida per il redattore
* Modificare un wikibookUsare Wikibooks/Modificare
* MarkupUsare Wikibooks/Markup
* Manutenzione e puliziaUsare Wikibooks/Manutenzione
* Tecniche avanzateUsare Wikibooks/Tecniche
* Aggiungere un'immagineUsare Wikibooks/Immagini
Guida per lo scrittore
* Contribuire ad un libro esistenteUsare Wikibooks/Contribuire
* Iniziare un nuovo wikibookUsare Wikibooks/Iniziare
* Donare un libro a WikibooksUsare Wikibooks/Donare
* Strutturare un wikibookUsare Wikibooks/Strutturare
* Argomento, categorie e classificazioniUsare Wikibooks/Classificare
* Attrarre lettoriUsare Wikibooks/Attrarre
* Versione in PDFUsare Wikibooks/PDF
Guida per l'admin
* Come essere amministratoreUsare Wikibooks/Amministratori
* Cancellare, ripristinare ed importareUsare Wikibooks/Operazioni
* Spam e vandalismiUsare Wikibooks/Vandalismi
* Amministrazione avanzataUsare Wikibooks/Amministrazione avanzata
Modifica il sommario

## Template

Abbiamo già parlato berevemente di template nella sezione sulla manutenzione. Ora introdurremo alcune caratteristiche avanzate di questi. I template, le loro funzioni e i loro usi, sono argomento di lunga discussione, troppo per le finalità di questo singolo libro. Il modo migliore per imparare a usarli è osservare come funzionano gli altri template, oppure chiedere aiuto agli altri utenti e vedere quali soluzioni vengono adottate.
I template hanno molti vantaggi. Anzitutto, aiutano a tenere nascoste complesse e ingombranti funzioni all'interno di una pagina: questo significa che quando un nuovo utente contribuisce a una pagina, non ha bisogno di imparare a usare procedure per la formattazione troppo complicate. In secondo luogo, i template sono utili per applicare lo stesso tipo di markup a più pagine (o in più punti all'interno della stessa pagina) senza dover fare copia-incolla di grosse porzioni di codice. Infine, usando i parametri, i template possono rendere automatiche molte richieste che diversamente andrebbero fatte a mano.
I template sono un caso speciale di pagine che vengono incluse in altre. Solitamente, per includere una pagina la sintessi è {{namespace:nome della pagina}}. Per il ns-0 (quello principale, dove si trovano i libri e i moduli) bisogna lasciare vuota la parte del namespace, e scrivere soltanto {{:nome della pagina}}. Il namespace di default è Template:, quindi scrivendo {{nome della pagina}} verrà inclusa automaticamente la pagina Template:Nome della pagina.
Ecco ora un esempio di semplice template:
Il cui risultato è
Questo è un esempio di template standard realizzato per risparmiare tempo. Simili avvisi possono essere utilizzati per generare liste di libri che non citano le fonti. Se vai su Template:Disclaimer e clicchi sul link "Puntano qui" nella barra a sinistra, potrai visualizzare un elenco di pagine, alcune delle quali avranno l'indicazione "(inclusione)" a lato: queste sono le pagine che includono il template. Un utente può quindi utilizzare questa lista per sapere quali pagine sono prive di fonti.
Quando scrivi {{Senza fonti}} in una pagina, stai includendo il codice contenuto in Template:Senza fonti.
Puoi utilizzare <includeonly> ... </includeonly> per marcare le sezioni di un template che devono apparire quando la pagina è inclusa in un'altra ma non devono essere visualizzate nella pagina del template stesso. Puoi usare invece <noinclude> ... </noinclude> per marcare le sezioni che non devono essere incluse. Puoi utilizzare quest'ultima opzione per inserire le categorie in cui rientra il template, senza che per questo anche le pagine in cui il template è incluso siano inserite nella stessa categoria. Puoi inoltre mostrare la documentazione sull'uso del template nella sua pagina, senza che la documentazione venga visualizzata nella pagina in cui il template è incluso. Così, se vuoi che chi visita la pagina Template:Senza fonti voglia sapere a cosa serve il template, devi scrivere nel codice qualcosa del tipo
che verrà visualizzato così:
    Il testo che segue è senza fonti

### Finalità

    Questo template viene utilizzato per segnalare una pagina in cui non sono state citate le fonti.
Quando qualcuno leggerà la pagina e la includerà in un'altra, sarà visualizzata soltanto la scritta "Il testo che segue è senza fonti".
Puoi anche giocare con le categorie, così:

## Parametri dei template

Il Template:Nota è un po' più complesso dei precedenti, perché usa dei parametri, cioè valori che vengono usati dal sistema quando crea il codice per includere il template in una pagina. Quando si utilizza Nota, è necessario inserire dei parametri. Se ci si limita a scrivere
avremo
Approfondimento
In questo template bisogna inserire almeno un parametro. Se scriviamo per esempio
otterremo
Approfondimento
Quando includi un template non devi preoccuparti degli spazi o di scrivere la prima lettera maiuscola, ma il nome della pagina rimane case-sensitive per tutte le altre lettere. Così se scrivi
vedrai solo
Template:NotA
Perché hai scritto la A finale maiuscola invece che minuscola.
Facendo ora un passo indietro "contenuto" è il nome di uno dei parametri di Nota. Questo di seguito è il codice del Template:Nota:
Lo trovi complesso? Tutto quello che è contenuto tra tre parentesi graffe è un parametro. Qui ne abbiamo ben quattro, ovvero larghezza, allineamento, titolo e contenuto. Noterai che alcuni parametri hanno un pipe | con il quale viene indicato il valore di default del parametro. In questo modo, se non precisiamo un titolo da dare al box, comparirà sempre "Approfondimento". Se un parametro invece non ha un valore di default e non gliene passi uno, mostrerà semplicemente il nome del parametro racchiuso tra triple parentesi graffe.
Ma non è detto che non si possa cambiare questi valori. Per esempio, possiamo scrivere
è otterremo
Nota
Non è importante in quale ordine inserisci gli argomenti dei parametri, purché vengano utilizzati i loro nome. È importante, invece, se i parametri sono numerati, come {{{1}}}. In questo caso bisogna scriverli nel giusto ordine, così che {{{1}}} sia sempre al primo posto.
Gli unici limiti che puoi avere nella realizzazione dei template sono la tua immaginazione e la tua conoscenza di css e html, così come la tua conoscenza delle variabili e delle funzioni parser. Inoltre, ci sono dei limiti ai template previsti dal software MediaWiki per evitare un carico eccessivo di lavoro per il server.

## Modifiche avanzate

Ci sono moltissimi tool avanzati che un utente può usare per creare pagine e template migliori. Molti di questi sono estensioni del software MediaWiki. All'occorrenza, nuove estensioni possono essere aggiunte e Wikibooks. Se stai pensando a un'estensione disponibile che però non è presente qui, puoi prenderla dalla lista delle estensioni di Mediawiki.org. Prima di installare qualsiasi cosa, comunque, bisogna avere l'approvazione della comunità al Bar.

### Estensioni che non possono essere utilizzate

Ci sono estensioni che i wikibookiani hanno chiesto in passato, ma che non è stato possibile installare. Spesso, questo accade per motivi di performance: alcune estensioni richiedono troppe risorse al server. A volte, è per motivi di sicurezza: certe estensioni non sono state testate abbastanza rigorosamente per essere utilizzate in un sito delle dimensioni di Wikibooks.

## Html e css

Il wikitesto viene convertito in codice html da Mediawiki. Usiamo il linguaggio wiki perché è più semplice da leggere e editare rispetto all'html. Ci sono però molti casi in cui è necessario ricorrere all'html e ai css.

### Classi css

Qui abbiamo alcune comuni classi css che sono usate in Wikibooks. Usare queste classi nel tuo lavoro aiuta a standardizzare il tutto, e può farti risparmiare un sacco di fastidi se stai cercando di duplicare degli stili complicati.

#### PrettyTextBox

    produce un box con bordo e sfondo grigi. Un comune utilizzo è <div class="PrettyTextBox">...</div>.

#### wikitable

    questa classe è usata per tabelle simili al tema cromatico di PrettyTextBox. Le celle normali sono grigie, quelle di intestazione sono di un grigio più scuro, e tutte hanno un bordo grigio.

#### metadata, noprint

    queste classi generano elementi nella pagina che non appaio quando il libro viene stampato. Questo è utile per certi messaggi o note che servono più agli autori che ai lettori.

#### printonly

    come i due precedenti, ma all'opposto. Gli oggetti con questa classe appariranno soltanto quando viene stampata la pagina, ma non quando questa viene visualizzata on line.

#### plainlinks

    quando crei un link esterno, il software include automaticamente una piccola icona vicino al link per indicare il tipo di risorsa. Con questa classe l'icona viene nascosta.

## Funzioni parser

Le funzioni parser sono potenti ma complicate. Sono utilizzate al meglio nel namespace Template:, dove la loro complessità può essere nascosta dalla gente che edita libri e pagine. Usare una funzione parser in una pagina di un libro può rendere il codice più difficile da leggere e comprendere.
La versione delle funzioni parser che abbiamo non è completa e non è nemmeno la più recente. Per la documentazione si rimanda abbastanza
    http://www.mediawiki.org/wiki/Help:Extension:ParserFunctions
Non abbiamo la versione "Extended" delle funzioni parser, né le l'estensione "StringFunctions" o qualsiasi altra estensione correlata.

## Simboli matematici

Visitando pagine di matematica, scienze o ingegneria ti capiterà di vedere formule matematiche. Queste sono rese utilizzando una variante di LaTeX specificamente progettata per la matematica. Puoi leggere la pagina di aiuto completa in meta:Help:Displaying a formula.

## Dynamic Page Lists

Dynamic Page Lists (DPL) è un'estensione genera una lista di pagine basata sulla categoria e il namespace di quelle pagine. La documentazione completa è disponibile in:
    http://www.mediawiki.org/wiki/Extension:DynamicPageList/old
Questa opzione è utilizzata in pagine di servizio, mentre non è facile incontrarla in un libro, ma questo non significa che non possa accadere.

### Flattening DPL Lists

Le DPL, di default, vengono visualizzate in un elenco puntato. Comunque, usando la classe css DPLFlat è possibile forzare la lista su un'unica riga. Per esempio: