La sintassi GuideXML è leggera ma espressiva, essendo in questo modo facile da imparare, ed offrendo allo stesso tempo tutto ciò di cui si ha bisogno per creare documentazione per il web. Il numero dei tag è mantenuto al minimo indispensabile. Questo rende facile trasformare i documenti in altri formati come DocBook XML/SGML o vere e proprie pagine HTML.
L'obiettivo è di
Se si desidera contribuire alla documentazione di Gentoo, o se si vuole provare
Guide XML, leggere la guida
È possibile guardare il
La prima cosa da fare è imparare la sintassi Guide XML. Si comincerà con il tag d'inizio usato in un documento Guide XML:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> <!-- $Header$ --> <guide lang="it"> <title>Guida alla Documentazione Gentoo</title> <author title="Autore"> <mail link="tuonome@gentoo.org">Tuo Nome</mail> </author> <abstract> Questa guida mostra come produrre documentazione web utilizzando la nuova e leggera sintassi Gentoo Guide XML. Questa sintassi è il formato ufficiale della documentazione Gentoo, e questo stesso documento è stato creato utilizzando Guide XML. Questa guida presuppone una conoscenza base di XML e HTML. </abstract> <!-- The content of this document is licensed under the CC-BY-SA license --> <!-- See http://creativecommons.org/licenses/by-sa/3.0 --> <license version="3.0"/> <version>1</version> <date>2011-11-29</date>
Nelle prime linee, c'è il tag che identifica il documento come un documento XML
e ne specifica il DTD. La riga
L'attributo
Segue un tag
Si arriva ai tag
Successivamento si trovano i tag
Questo riassume i tag che dovrebbero apparire all'inizio di un documento di
guida. Insieme ai tag
Infine c'è il tag
Una volta specificati i tag iniziali, si è pronti per iniziare ad aggiungere
elementi strutturali al documento. I documenti sono divisi in capitoli, e ogni
capitolo può avere una o più sezioni. Capitoli e sezioni hanno sempre un titolo.
Segue un capitolo d'esempio con una singola sezione, composta da un paragrafo.
Se si accoda questo codice XML all'
<chapter> <title>Questo è il mio capitolo</title> <section> <title>Questa è la sezione del mio capitolo</title> <body> <p> Questo è il paragrafo della mia sezione. </p> </body> </section> </chapter>
Sopra, è stato inserito il titolo del capitolo, aggiungendo un elemento
E' tempo di imparare ad arricchire il contenuto della guida. Ecco un esempio di
codice XML per l'elemento
<p> Questo è un paragrafo. <path>/etc/passwd</path> è un file. <uri>http://forums.gentoo.org</uri> è il mio sito preferito. Se hai voglia digita <c>ls</c>. Voglio <e>davvero</e> andare a dormire. </p> <pre caption="Code Sample"> Questo è l'output. # <i>questo è l'input dell'utente</i> Rendi l'HTML/XML facile da leggere evidenziando in maniera selettiva: <foo><i>bar</i></foo> <comment>(Ecco come inserire un commento in un blocco di codice)</comment> </pre> <note> Questa è una nota. </note> <warn> Questo è un warning. </warn> <impo> Questo è importante. </impo>
Ecco ora, come appare l'elemento
Questo è un paragrafo.
Questo è l'output. # questo è l'input dell'utente Rendi l' HTML/XML facile da leggere evidenziando in maniera selettiva: <foo>bar</foo>(Ecco come inserire un commento in un blocco di codice)
Sono stati introdotti molti nuovi tag nella sezione precedente, ecco quello che
è necessario sapere. I tag
<pre caption = "Output di uptime"> # <i>uptime</i> 16:50:47 up 164 days, 2:06, 5 users, load average: 0.23, 0.20, 0.25 </pre>
I delegati dei 13 stati originali hanno formato il Congresso. Thomas Jefferson e Benjamin Franklin sono stati due artefici della Dichiarazione di Indipendenza. Franklin ha scoperto l'elettricità accarezzando due gatti e ha dichiarato "Un cavallo diviso non può stare in piedi". Franklin è morto nel 1790 ed è ancora morto.
Le epigrafi a volte sono usate all'inizio dei capitoli per introdurre quello che
segue. E' un semplice paragrafo con un attributo
<p by="Studente anonimo"> I delegati dei 13 stati originali hanno formato... </p>
Gli elementi
L'elemento
L'elemento
Come si potrà immaginare,
Per migliorare la leggibilità degli esempi di codice, i tag seguenti sono
consentiti all'interno di blocchi
Esempio di blocco
# Copyright 1999-20069 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ DESCRIPTION ="Exuberant ctags generates tags files for quick source navigation" HOMEPAGE ="http://ctags.sourceforge.net" SRC_URI ="mirror://sourceforge/ctags/${P}.tar.gz" LICENSE ="GPL-2" SLOT ="0" KEYWORDS ="~mips ~sparc ~x86" IUSE ="" src_compile() {econf --with-posix-regexemake ||die "emake failed" }src_install() {make DESTDIR ="${D}" install ||die "install failed" dodoc FAQ NEWS READMEdohtml EXTENDING.html ctags.html }
Precedentemente si è visto il tag
Alcune forme abbreviate facilitano l'utilizzo di nomi ed email degli
sviluppatori di Gentoo. Sia
Ciò è particolarmente utile quando si vuole scrivere il nome di uno sviluppatore
il cui nome contiene caratteri "particolari" che non si è in grado di scrivere.
Il tag
Non si dovrebbe utilizzare un tag
Si prega di evitare la sindrome da
Ecco come inserire una figura in un documento:
Così come in HTML, il sistema GuideXML supporta una sintassi semplificata per le
tabelle. Per iniziare un tabella, usare un tag
Inoltre, sia le intestazioni delle tabelle (
Inoltre, le celle della tabella (
| Questo titolo si estende su 4 colonne | |||
|---|---|---|---|
| Questo titolo si estende su 6 righe | |||
| Titolo in un blocco 2x2 | |||
Per creare liste ordinate e non, usare semplicemente i tag stile XHTML
Sono supportate le definizioni di liste (
La seguente lista copiata da
GuideXML rende veramente semplice fare riferimento ad altre parti di un
documento usando collegamenti ipertestuali (hyperlinks). È possibile creare un
collegamento che punti a
Tuttavia, alcune guide cambiano spesso, e vi possono essere alcuni link non più
esatti. Per evitare questo, si può definire un nome per un
<chapter id="foo"> <title>Questo è foo!</title> ... <p> Ulteriori informazioni possono essere trovate nel <uri link="#foo">foo chapter</uri> </p>
Può essere applicato un attributo
Quando si afferma che un documento è obsoleto, si può aggiungere un collegamento
alla nuova versione. Ciò che serve in questo caso è l'attributo
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> <!-- $Header$ --> <guide disclaimer="obsolete" redirect="/doc/it/handbook/handbook-x86.xml"> <title>Guida all'installazione di Gentoo su x86</title> <author title="Autore"> ...
I documenti delle Domande Frequenti (FAQ) devono iniziare con una lista di
domande con i collegamenti alle rispettive risposte. Creare una tale lista
richiede molto tempo ed è soggetto ad errori. La lista può essere creata in
automatico utilizzando un elemento
Uno sguardo veloce alle
Per documentazione molto voluminosa, come
Il primo cambiamento consiste nell'esigenza di creare un documento "master". Questo documento non ha del contenuto effettivo, ma dei collegamenti ai moduli individuali della documentazione. La sintassi non differisce molto da GuideXML:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> <!-- $Header$ --> <book> <title>Esempio di utilizzo di un Manuale</title> <author...> ... </author> <abstract> ... </abstract> <!-- The content of this document is licensed under the CC-BY-SA license --> <!-- See http://creativecommons.org/licenses/by-sa/3.0 --> <license version="3.0"/> <version>...</version> <date>...</date>
Al momento, nessuna vera differenza (tranne il tag
<part> <title>Parte Uno</title> <abstract> ... </abstract>(definire i capitoli) </part>
Ogni parte è accompagnata da un tag
All'interno di ogni parte, definire i singoli
<chapter> <title>Capitolo Uno</title> <include href="path/to/chapter-one.xml"/> </chapter>
Il contenuto di un singolo capitolo è strutturato nel modo seguente:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE sections SYSTEM "/dtd/book.dtd"> <!-- $Header$ --> <!-- The content of this document is licensed under the CC-BY-SA license --> <!-- See http://creativecommons.org/licenses/by-sa/3.0 --> <sections> <abstract> Questa è una breve spiegazione del capitolo uno. </abstract> <version>...</version> <date>...</date>(Definire le <section> e le <subsection>) </sections>
All'interno di ogni capitolo è possibile definire
Ogni singolo capitolo dovrebbe avere i propri elementi
Alcune volte, gli stessi valori sono ripetuti molte volte in varie parti dell'handbook. Operazioni di ricerca e sostituzione globali tendono a far sfuggire alcuni valori o a produrre modifiche non volute. Inoltre, potrebbe essere utile definire alcune variabili in capitoli condivisi da vari handbook, in modo che esse assumano valori differenti a seconda di quale handbook include i capitoli.
Variabili globali possono essere definite nel file master dell'handbook ed essere poi utilizzate in tutti i capitoli inclusi.
Per definire delle variabili globali, aggiungere un elemento
L'esempio seguente definisce tre valori in un file master di un handbook.
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> <!-- $Header$ --> <book> <title>Esempio di utilizzo di un Manuale</title> <values> <key id="arch">x86</key> <key id="min-cd-name">install-x86-minimal-2007.0-r1.iso</key> <key id="min-cd-size">57</key> </values> <author...> ... </author> ...
I valori definiti possono poi essere utilizzati attraverso l'intero handbook con
l'elemento
<p> Il CD di Installazione Minimale è chiamato <c><keyval id="min-cd-name"/></c> e richiede solo <keyval id="min-cd-size"/> MB di spazio su disco. E' possibile utilizzare questo CD di installazione per installare Gentoo, ma <e>solo</e> con una connessione Internet attiva. </p>
Per rendere la vita facile ai traduttori, utilizzare solamente valori che non
necessitano di essere tradotti. Ad esempio, abbiamo definito il valore della
variabile
I capitoli che sono condivisi da vari handbook come il
La condizione deve essere un'espressione
L'esempio seguente utilizza il valore
<body test="contains('AMD64 x86',func:keyval('arch'))">
<p>
Questo paragrafo si applica si all'architettura x86 che AMD64.
</p>
<p test="func:keyval('arch')='x86'">
Questo paragrafo si applica solamente all'architettura x86.
</p>
<p test="func:keyval('arch')='AMD64'">
Questo paragrafo si applica solamente all'architettura AMD64.
</p>
<p test="func:keyval('arch')='PPC'">
Questo paragrafo non sarà mai mostrato!
L'intero corpo sarà saltato a causa della condizione.
</p>
</body>
<body test="contains('AMD64 PPC64',func:keyval('arch'))">
<p>
Questo paragrafo si applica alle architetture AMD64, PPC64 e
PPC poiché la stringa 'AMD64 PPC64' contiene 'PPC'.
</p>
<note test="func:keyval('arch')='AMD64' or func:keyval('arch')='PPC64'">
Questa nota si applica solamente alle architetture AMD64 e PPC64.
</note>
</body>
E' necessario uno stile di codifica, poiché tutta la documentazione di Gentoo è un lavoro fatto in comune tra molte persone, le quali andranno a modificare la documentazione esistente. Uno stile di codifica è costituito da due parti. La prima riguarda la codifica interna, ossia come vanno messi i tag xml. La seconda riguarda il contenuto, ossia come non confondere il lettore.
Verranno descritte le due parti.
Si deve andare a capo riga (interruzione di riga) subito dopo
Le righe vuote devono essere inserite subito dopo
Il word-wrapping (a capo) deve essere applicato a 80 caratteri tranne
dentro
L'indentazione non deve essere usata, tranne con i costrutti XML i cui
tag XML genitori sono
Nel caso in cui ci sia word-wrapping in
Un esempio di indentazione:
<table>
<tr>
<th>Foo</th>
<th>Bar</th>
</tr>
<tr>
<ti>Questo è un esempio di indentazione</ti>
<ti>
Se il testo non può essere messo in una riga di 80 caratteri,
dovete usare l'indentazione se il tag lo permette
</ti>
</tr>
</table>
<ul>
<li>Prima opzione</li>
<li>Seconda opzione</li>
</ul>
Gli attributi non possono avere spazi tra il segno "=" e il loro valore. Un esempio:
Sbagliato : <pre caption = "Attributi">Corretto: <pre caption="Attributi">
Nelle tabelle (
Ogni frase, incluse quelle nelle tabelle e negli elenchi, dovrebbe iniziare con una lettera maiuscola.
<ul> <li>Nessun punto</li> <li>Con punto. Frasi multiple..</li> </ul>
I listati di codice dovrebbero avere
Cercare di usare il più possibile
Quando si commenta qualcosa dentro a
(Sostituire "john" con il proprio nome utente) # id john
Il sistema GuideXML è stato progettato per essere "snello e
significativo" affinché gli sviluppatori possano passare più tempo a
scrivere documentazione e meno ad imparare la sintassi XML, con la speranza che
questo permetterà agli sviluppatori che non sono "grandi scrittori" di
cominciare a produrre documentazione di qualità per Gentoo. La guida