Il Linux Documentation Project (LDP) fu fondato per fornire ai nuovi utenti un modo rapido di ottenere informazioni circa un particolare argomento. Esso non solo contiene una serie di libri su amministrazione, reti e programmazione, ma ha anche un gran numero di lavori minori su singoli argomenti, scritti da chi ne ha fatto l'esperienza. Se si vuole scoprire come stampare, basta prendere il Printing HOWTO. Per trovare qualcosa sulle reti, basta prendere l'Ethernet HOWTO, e così via.
All'inizio, molti di questi lavori erano scritti in testo o HTML. Col passare del tempo, serviva un modo migliore per gestire questi documenti. Un modo che permettesse di leggerli da una pagina web, da un file di testo su di un CD-ROM o anche da un PDA. La risposta, come si scoprì, è l'SGML.
Lo Standard Generalized Markup Language (SGML) è un linguaggio basato sul testo marcato. In questo senso, è simile al Tex o al groff, o a HTML. La potenza di SGML è che, diversamente dal WYSIWYG (What You See Is What You Get, quello che vedi è quello che avrai), non vengono definite cose come colori, grandezza dei caratteri o un tipo di formattazione. Invece, vengono definiti degli elementi (paragrafi, sezioni, elenchi numerati) e si lascia all'interprete SGML alla fine di occuparsi della posizione, colori, caratteri e così via. L'HTML fa la stessa cosa, ed è in realtà un sotto-insieme dell'SGML
L'SGML, in verità, è composto da due parti. La prima è la Struttura, chiamata comunemente DTD o Document Type Definition. Il DTD definisce le relazioni tra ognuno degli elementi. Il LinuxDoc DTD, usato per creare questo documento, ne è un esempio. Il DTD dà un aspetto comune ad ogni documento creato utilizzandolo. La seconda è il Contenuto, ovvero ciò che viene prodotto dall'interprete SGML e alla fine visto dall'utente. Questo paragrafo fa parte del Contenuto, ma ne farebbe parte anche un'immagine, una tabella, un elenco numerato e così via. Il Contenuto è circondato da tag per separare ogni differente elemento.
Col passare del tempo, il LinuxDoc DTD verrà ad essere sostituito dal DocBook DTD, usato da altri, dando così all'LDP un aspetto coerente col resto della documentazione SGML. Quando questo accadrà, verrete aggiornati tramite questo HOWTO o sulle mailing list. La differenza più grande tra LinuxDoc e DocBook, è che DocBook assegna i tag a differenti tipi di contenuto (come comandi, nomi di file, directory e così via) mentre LinuxDoc assegna i tag basandosi sul modo in cui il testo deve apparire (si può fare apparire il testo enfatizzato o, per esempio, come quello battuto da una macchina da scrivere).
L'SGML fornisce più della semplice formattazione. Si possono costruire automaticamente indici, sommari e collegamenti all'interno del documento o altrove. Il pacchetto sgmltools permette di esportare (qui chiamato rendere, d'ora in poi) l'SGML in formato LaTeX, info, testo, HTML e RTF. Da questi formati di base, possono poi essere creati altri formati (DOC, PostScript e così via).
In conclusione, l'SGML si concentra più sul modo in cui gli elementi funzionano invece che sul modo in cui appaiono. Una grande distinzione, che permette di scrivere più velocemente, in quanto non bisogna preoccuparsi della posizione dei paragrafi, grandezza dei caratteri, tipi di carattere e così via.
In questa sezione saranno trattati alcuni degli strumenti che saranno necessari o che si vorranno usare per creare la propria documentazione LDP. Li descriverò qui e li definirò meglio più avanti, insieme alle istruzioni per l'installazione. Se utilizzate altri strumenti per aiutarvi nello scrivere materiale LDP, fatemelo sapere e aggiungerò una nota per esso.
Richiesti
Il pacchetto sgmltools contiene gli strumenti SGML necessari per rendere l'SGML in uno dei formati di file suddetti. Contiene anche il LinuxDoc DTD, necessario per creare la documentazione LDP. Questo è tutto quel che serve per creare solo documentazione SGML. Se si vuole rendere in formati quali TeX, bisogna ottenere almeno questo pacchetto. Il pacchetto sgmltools è disponibile nelle distribuzioni, oppure all'indirizzo http://www.sgmltools.org/
Opzionale
TeX (che fa rima con blech!) è il linguaggio di markup scelto da molti, incluse le persone del mondo matematico. Ancora ricordo molti esami di Calcolo scritti in TeX. È anche uno dei primi linguaggi di markup che sia ancora in circolazione (un altro è il formato *roff utilizzato nelle pagine man). Il TeX attualmente segue alcuni dei concetti dell'SGML. Comunque, esso compila i suoi file in DVI (DeVice Independent) che possono essere convertiti in un altro formato. Sfortunatamente, il DVI non può essere facilmente convertito in altro che alcuni linguaggi di stampanti (PostScript, PCL), rendendo difficile utilizzarlo per generare codice HTML. TeX è disponibile su praticamente tutte le distribuzioni come LaTeX o TeTeX. Dovrebbero andar bene entrambi.
Opzionale
Il programma LyX è un WYSIWYM (What You See Is What You Mean, quello che vedi è quello che intendi) grafico e fornisce un collegamento molto utile tra una facile applicazione grafica per rendere testo e le talora complesse regole dell'SGML. LyX, effettivamente, serve per scrivere documenti TeX e molte delle regole del TeX si applicano in LyX. Per esempio, mentre le sezioni sono numerate automaticamente, non si possono inserire facilmente spazi bianchi (spazi e tabulazioni). È contro lo scopo per cui il TeX è stato creato. Nello stesso modo, l'SGML spesso ignora gli stessi spazi bianchi. Il programma LyX può leggere il LinuxDoc DTD e fornisce un documento modello per scrivere (o modificare) la propria documentazione LDP in modo familiare, senza dover utilizzare vi e ricordare quali sono i tag per fare un elenco a punti. LyX è disponibile all'indirizzo http://www.lyx.org/.
Per chi utilizza KDE, è disponibile una versione di LyX che utilizza le librerie Qt. Ulteriori informazioni su questa versione possono essere trovate all'indirizzo: http://www.devel.lyx.org/~ettrich/klyx.html.
Opzionale
C'è un modo di Emacs per scrivere documenti SGML e XML. Si possono ottenere ulteriori informazioni riguardo esso all'indirizzo: http://www.lysator.liu.se/projects/about_psgml.html.
Opzionale
La pù recente release di WordPerfect 2000 sorreggerà i modi SGML. Non si sa ancora di certo se questo includerà LinuxDoc, o solo DocBook. Si invitano i beta tester di WP2k a comunicare se funziona bene. Le loro note verranno felicemente incluse in questo HOWTO.
Opzionale (ma raccomandata)
Questo libro è stato rilasciato da O'Reilly nell'Ottobre del 1999, ed è una grande fonte di riferimento per il DocBook. L'autore di questo HOWTO non l'ha trovato un gran libro pratico e la maggior parte dell'enfasi è sul XML, ma i tag di DocBook per la versione 3.1 sono tutti elencati in un formato comodo. Si può prenderlo da un venditore di libri di propria scelta, o vederlo interamente online al http://www.docbook.org/.