Usare Wikibooks/Tecniche

Wikibooks, manuali e libri di testo liberi.
Indice del libro

Template[modifica]

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:

{{Disclaimer}}

Il cui risultato è

tossico
tossico
nocivo
nocivo
esplosivo
esplosivo
infiammabile
infiammabile
Questa pagina contiene informazioni che possono generare situazioni di pericolo. - Leggi il disclaimer

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

'''Il testo che segue è senza fonti'''
<noinclude>
;Finalità
:Questo template viene utilizzato per segnalare una pagina in cui non sono state citate le fonti.
</noinclude>

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ì:

<includeonly>
'''Il testo che segue è senza fonti'''
[[Categoria:Pagine senza fonti]]
</includeonly>
<noinclude>
;Finalità
:Questo template viene utilizzato per segnalare una pagina in cui non sono state citate le fonti.
[[Categoria:Template di avviso]]
</noinclude>

Parametri dei template[modifica]

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

{{Nota}}

avremo

Approfondimento

Per favore inserire un contenuto...

In questo template bisogna inserire almeno un parametro. Se scriviamo per esempio

{{Nota|contenuto=Ciao!}}

otterremo

Approfondimento

Ciao!

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

{{NotA|contenuto=Ciao!}}

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:

{| cellpadding=2 style="font-size:95%; -moz-border-radius: 1em; 
width:{{{larghezza|350px}}}; border:1px solid black; background:#FFFFF0; 
margin-top:5px; margin-bottom:20px; {{#switch:{{{allineamento}}}|centro=margin-left:auto;
margin-right:auto;|sinistra=float:left;margin-right:10px;margin-left:0;|float:right;
margin-right:0;margin-left:10px;}}"
|-
|align=center style="background:#8090E0; -moz-border-radius: 1em; 
color:#FFFFFF"|<big>'''{{{titolo|Approfondimento}}}'''</big>
|-
|align=justify style="padding-left:6px; 
padding-right:6px;"|{{{contenuto|per favore inserire un contenuto...}}}
|}<noinclude>[[Categoria:Template grafica|Nota]]</noinclude>

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

{{Nota
|allineamento = centro
|larghezza = 400px
|titolo = Nota
|contenuto = Lorem ipsum dolor sit amet
}}

è otterremo

Nota

Lorem ipsum dolor sit amet

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

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

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

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

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

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

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

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

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:

<div class="DPLFlat"><dynamicpagelist>...</dynamicpagelist></div>