Avanti Indietro Indice

2. Basi su LDP e SGML

2.1 LDP

Il Linux Documentation Project (LDP) fu creato per dare ai nuovi utenti un modo per avere informazioni velocemente su di un particolare argomento. Esso non solo contiene una serie di libri su amministrazione, reti e programmazione, ma anche un gran numero di lavori minori su argomenti individuali, scritti da chi vi ha lavorato. Per trovare qualcosa sulle stampanti, 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 leggerlo da una pagina web, da un file di testo su un CD-ROM o anche da un PDA. La risposta, appena esso uscì, fu l'SGML.

2.2 SGML

Lo Standard Generalized Markup Language (SGML) è un linguaggio basato sul testo marcato. In questo modo, è 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 al processore SGML alla fine di preoccuparsi di posizione, colori, caratteri e così via. L'HTML fa la stessa cosa, ed è attualmente un subset 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 dal processore 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 sta per essere sostituito dal DocBook DTD, usato da altri, dando così all'LDP un aspetto coerente col resto della documentazione SGML. Quando questo accadrà, sarete tenuti informati 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ò enfatizzare il testo o farlo assomigliare ad una macchina da scrivere, per esempio).

Perché SGML invece di HTML o di altri formati?

L'SGML fornisce più della semplice formattazione. Si possono automaticamente costruire indici, sommari e collegamenti all'interno del documento o altrove. Il pacchetto sgmltools permette di esportare (lo chiamerò formattare da 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). L'SGML non soffre degli appesantimenti visti ultimamente nell'HTML. Non penso si vedrà molto presto un tag <blink> nell'SGML. Questo rende il codice non solo semplice da formattare, ma anche semplice da scrivere. Programmi come LyX (al momento il mio editor WYSIWYM scelto) permette di scrivere in formato TeX, esportarlo come SGML e poi formattare l'SGML ad un qualsiasi formato scelto.

Per finire, l'SGML si concentra più sul modo in cui gli elementi funzionano invece che sul modo in cui appaiono. Una grossa 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.

2.3 Gli strumenti

In questa sezione tratterò alcuni degli strumenti di cui avrete bisogno o che vorrete usare per creare la vostra 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.

sgmltools

Richiesti

Il pacchetto sgmltools contiene gli strumenti SGML necessari per formattare l'SGML in uno dei formati di file suddetti. Contiene anche il LinuxDoc DTD, necessario per creare la documentazione LDP. Per creare solo documentazione SGML, è tutto quello che serve. Se si vuole formattare in formati quali TeX, bisogna prendere almeno questo pacchetto. Il pacchetto sgmltools è disponibile nelle distribuzioni, oppure all'indirizzo http://www.sgmltools.org/

TeX

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 giro (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.

LyX

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 applicazione grafica e un formattatore facile da utilizzare e le a volte 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 puntato. LyX è disponibile all'indirizzo http://www.lyx.org/.

Per chi utilizza KDE, è disponibile un port di LyX che utilizza le librerie Qt. Ulteriori informazioni possono essere trovate all'indirizzo http://www.devel.lyx.org/~ettrich/klyx.html. Se utilizzate KLyX per scrivere SGML, per favore mandate una e-mail al mio indirizzo per farmi partecipe delle vostre esperienze con esso.


Avanti Indietro Indice