Tag Archives: DocBook

DocBook – Créer le contenu du document

DocBook est de montrer comment construire le contenu d’un document conformément aux spécifications de cet outil. Les trois premiers articles de cette série ayant montré la manière de générer les formats HTML et PDF d’un document DocBook, on verra dans cet article comment créer le contenu lui même. Cet article fait partie d’une série qui traite de l’utilisation de DocBook et qu’il convient de lire dans l’ordre indiqué:

  1. Installation et utilisation de base
  2. Utilisation avancée et amélioration de la présentation en HTML
  3. Utilisation avancée et amélioration de la présentation en PDF
  4. Cet article: Créer le contenu du document

Présentation

Le fichier du contenu DocBook est un document au format XML qui correspond à la DTD DocBook. Qui dit format XML, dit une hiérarchie d’éléments XML structurée en arbre. Ces éléments sont délimités par des balises XML et la structure doit correspondre exactement à ce qui est défini par la DTD. La DTD (Document  type definition) étant un ensemble de règles qui définissent le contenu du document et sa structure. Un tel document est dit valide et bien formé.
<racine param1="..." param2="...">
  <niveau1a>
    ......
  </niveau1a>
  <niveau1b>
    <niveau2a>
      ......
      <niveau3a>
        ......
      </niveau3a>
      <niveau3b param1="...">
        .....
      </niveau3b>
      <niveau3c>
        ......
      </niveau3c>
    </niveau2a>
    <niveau2b>
      ......
    </niveau2b>
  </niveau1b>
</racine>
Dans cet exemple l’élément « racine » est la racine de l’arbre qui constitue le document. Cet arbre contient deux éléments de niveau 1:
  • « niveau1a”: élément final qui ne contient que des données (matérialisées par 6 points) et aucun élément.
  • « niveau1b »: contient deux éléments:
    • « niveau2a »: contient trois éléments:
      • des données et aussi « niveau3a », « niveau3b » et « niveau3c » qui sont des éléments finaux.
    • « niveau2b »: élément final.
On note également qu’un élément peut avoir un nombre quelconque de paramètres, ou ne pas en avoir du tout. Les règles de la DTD définissent, principalement, les noms possibles des éléments, leurs contenus possibles, les paramètres et leurs valeurs possibles.

L’en-tête et l’élément racine

Un canevas vide d’un document DocBook doit ressembler à ce qui suit:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD docbook XML V5.0b5//EN" "http://www.oasis-open.org/docbook/xml/5.0b5/dtd/docbook.dtd">
<article xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='fr'>
</article>
  • La première ligne est la déclaration de la nature XML du document et de l’encodage de son contenu. Dans l’exemple on utilise « UTF-8 » dont l’usage systématique est fortement conseillé.
  • La deuxième ligne référence la DTD utilisée par le document. le tag de cette déclaration doit correspondre au nom de l’élément racine. Dans l’exemple c’est « article » qui est utilisé.
  • La troisième et la quatrième lignes sont les balises d’ouverture et de fermeture de l’élément racine. L’ensemble du contenu du document doit se trouver entre ces deux balises. Les paramètres de cet élément sont:
    • xmlns: la référence du namespace DocBook, utiliser l’URL indiquée.
    • version: la version de DocBook,  actuellement la dernière version est la 5.0
    • xml:lang : Positionne la langue du document. On utilise un code ISO 639-1 à deux lettres pour définir ce paramètre. Il détermine principalement la langue des termes introduits automatiquement par DocBook dans le contenu, comme: « Table des matières » ou « Chapitre ». Il détermine également l’orientation du texte pour les langues qui s’écrivent de droite à gauche comme l’Arabe ou le Persan.
L’élément racine a une importance capitale car il détermine la nature du document. principalement on utilisera: book pour un livre ou article pour un article dont le contenu est plus court. Dans une moindre mesure on utilisera: journal ou newsposting.

Informations à propos du document

C’est l’élément articleinfo (pour un livre il faudra utiliser bookinfo) qui contient ces informations. Il s’agit du titre, des auteurs, des contributeurs, de la date de publication, du résumé et des mots-clé. Dans la pratique, et ceci est valable pour tous les éléments DocBook, on choisit seulement les rubriques estimées utiles pour le document, aucune n’étant obligatoire. Concrètement pour notre exemple, il faudra insérer dans le canevas vide ce qui suit:
<articleinfo>
    <title>Comment débuter avec DocBook</title>
    <authorgroup>
      <author>
        <firstname>Meddeb</firstname>
        <surname>Abdelhamid</surname>
        <affiliation>
          <address><email>a@meddeb.net</email></address>
        </affiliation>
      </author>
      <author>
        <firstname>Dupond</firstname>
        <surname>Nathalie</surname>
      </author>
    </authorgroup>
    <othercredit>
      <firstname>Durand</firstname>
      <surname>Michel</surname>
      <contrib>Illustration</contrib>
    </othercredit>
    <pubdate>25/02/2018</pubdate>
    <abstract>
      <para>Présente de manière simplifiée la création du contenu d'un document DocBook.</para>
      <para>Texte integral à consulter <ulink url="http://tutoriels.meddeb.net/docbook-installation-utilisation-de-base">sur ce le blog de l'un des auteurs</ulink>.</para>
    </abstract>
    <keywordset>
      <keyword>DocBook</keyword>
      <keyword>Contenu</keyword>
    </keywordset>
 </articleinfo>
Cela donne le résultat suivant en PDF: DocBook

Le corps du document

Le corps d’un document DocBook est constitué d’une succession de sections: élément « section ». Chaque section peut contenir un nombre quelconque de sous-sections qui ne sont en réalité, elles-mêmes, que des sections. Une sous-section est donc une section fille contenue dans une section mère. La profondeur d’imbrication ainsi constituée pouvant être quelconque. Par ailleurs, une section (ou sous-section) est composée d’un nombre quelconque de paragraphes: élément « para ». L’exemple suivant montre un contenu avec deux sections, dont l’une d’entre elles possède plusieurs sous-sections.
<section>
  <title>Titre de la première section</title>
  <para>
    Le corps d'un document DocBook est constitué d'une succession de sections: élément « section ».
    La section suivante sera une section qui possède plusieurs sous-sections.
  </para>
</section>
<section>
<title>Titre de la deuxième section</title>
  <para>
    Chaque section peut contenir un nombre quelconque de sous-sections qui ne sont en réalité, elles-mêmes, que des sections. Une sous-section est donc une section fille contenue dans une section mère.
  </para>
  <section>
    <title>Titre de la sous-section de niveau 1</title>
    <para>
      Chaque section peut contenir un nombre quelconque de sous-sections qui ne sont en réalité, elles-mêmes, que des sections. Une sous-section est donc une section fille contenue dans une section mère.
    </para>
    <section>
      <title>Titre de la sous-section de niveau 2</title>
      <para>
        La profondeur d'imbrication ainsi constituée pouvant être quelconque. 
      </para>
    </section>
  </section>
</section>
Ce contenu donne le résultat suivant en PDF: DocBook

Citer un code informatique

Pour citer un code informatique dans un document, on utilise l’élément programlisting. L’exemple suivant illustre cette utilisation:
<programlisting>
  #include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  int main(int argc, char *argv[])
  {
    printf("Hello world!");
  }
</programlisting>
Ce contenu donne le résultat suivant en PDF: DocBook

Insérer une citation

Pour insérer une citation, on utilise l’élément quote.
<title>Le logiciel libre</title>
  <para>
    <quote lang="en">Steve Jobs, le pionnier qui a rendu la notion de prison informatique appréciée, est mort. Son invention était de priver les crétins de leur liberté.</quote>
  </para>
  <para>
    Richard Stallman, 6 octobre 2011.
  </para>
Ce contenu donne en PDF: DocBook

Insérer une note de bas de page

Pour ajouter une notre de bas de page, on utilise l’élément footnote.
<title>Outils de saisie du contenu DocBook</title>
<para>
  Pour saisir le contenu d'un document au format DocBook, on peut utiliser l'éditeur de texte Emacs
  <footnote>
    <para>Le mode nXML d'emacs permet la validation du contenu en fonction de la DTD et aussi la complétion en cours de saisie des balises DocBook</para>
  </footnote>
  qui est un outil puissant et souple. Il est particulièrement adapaté à ce type de tâche.
</para>
Ce contenu donne en PDF: DocBookNoter la numérotation automatique de la note de bas de page et l’insertion du contenu de l’élément footnote en fin de la page.]]>

DocBook – Améliorer la présentation en PDF

DocBook. Dans le premier article de cette série sur l’utilisation de DocBook, nous avons vu comment produire un document cible au format PDF à partir du contenu initial. Dans cet article on verra comment améliorer la présentation de ce document. Cet article fait partie d’une série qui traite de l’utilisation de DocBook et qu’il convient de lire dans l’ordre indiqué:

  1. Installation et utilisation de base
  2. Utilisation avancée et amélioration de la présentation en HTML
  3. Cet article: Utilisation avancée et amélioration de la présentation en PDF
  4. Créer le contenu du document

Le contenu à transformer

Dans cet article nous allons utiliser un document de contenu prêt à l’emploi: le fichier document.xml_.txt qu’il convient de télécharger et enregistrer sur le disque de votre machine. Pour cela, faites un Click droit sur le lien et choisir « Enregistrer le lien sous.. » dans le menu. Renommer ensuite en document.xml.

Générer le format PDF

Pour générer le document au format PDF exécuter:
xsltproc -o document.fo /usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl document.xml
fop -pdf document.pdf -fo document.fo
Le document obtenu est composé de 5 pages (cliquer pour agrandir si besoin): [gallery size="medium" ids="705,709,710"] [gallery size="medium" ids="706,712"] Par défaut DocBook:
  • Crée une page pour le titre du livre
  • Une page pour le verso du titre
  • Une page pour la table des matières
  • Insère un saut de page à la fin de chacun des chapitres (2 chapitres dans notre exemple)
  • Le format des page est celui de l’Amérique du nord: US Letter (279 × 216 mm)
Dans la suite, on va améliorer cette présentation.

Améliorer le contenu des chapitres

Comme pour la personnalisation du contenu du document HTML, on doit créer une feuille de style XSL qui sert à modifier certains paramètres en plus d’importer la feuille de style originale. Cette partie s’appelle cutom layer (la couche personnalisée). Pour créer cette feuille de style:
vi pdf_document.xsl
Ensuite saisir et enregistrer:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:import href="/usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl"/>
  <xsl:param name="paper.type">A4</xsl:param>
  <xsl:param name="page.orientation">portrait</xsl:param>
  <xsl:param name="chapter.autolabel">I</xsl:param>
  <xsl:param name="section.autolabel">1</xsl:param>
  <xsl:param name="section.label.includes.component.label">0</xsl:param>
  <xsl:param name="toc.max.depth">3</xsl:param>
  <xsl:attribute-set name="section.title.level1.properties">
    <xsl:attribute name="font-size">11pt</xsl:attribute>
    <xsl:attribute name="color">#008080</xsl:attribute>
  </xsl:attribute-set>
  <xsl:attribute-set name="section.title.level2.properties">
    <xsl:attribute name="font-size">10pt</xsl:attribute>
    <xsl:attribute name="color">#007070</xsl:attribute>
  </xsl:attribute-set>
  <xsl:attribute-set name="component.title.properties">
    <xsl:attribute name="font-size">14pt</xsl:attribute>
    <xsl:attribute name="color">#009595</xsl:attribute>
    <xsl:attribute name="text-align">center</xsl:attribute>
  </xsl:attribute-set>
</xsl:stylesheet>
Remarquer l’import du fichier XSL origine /usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl. Avec cet import 9 paramètres sont modifiés:
  1. paper.type: Format du papier positionné à A4 qui est le format européen (297 x 210 mm)
  2. page.orientation : Orientation des pages positionnée à portrait.
  3. Les 4 paramètres suivants sont similaires à ceux modifiés pour le format HTML: numérotation des paragraphes et profondeur de la table des matières.
  4. section.title.level1.properties: Taille et couleur des caractères des titres des paragraphe de niveau 1.
  5. section.title.level2.properties: Taille et couleur des caractères des titres des paragraphe de niveau 2.
  6. component.title.properties: Taille, alignement et couleur des caractères des titres des chapitres.
Ensuite ré-générer le format PDF du document avec les deux commandes successives:
xsltproc -o document.fo pdf_document.xsl document.xml
fop -pdf document.pdf -fo document.fo
Le résultat obtenu pour les deux pages des chapitres, le reste étant inchangé: [gallery columns="2" size="medium" ids="719,720"]

Améliorer la présentation du titre du document

Le titre du document et son sous-titre occupent les deux premières pages:
  • Première page: la couverture du livre (puisqu’il s’agit ici d’un livre)
  • Deuxième page: le verso de la couverture et qui reprend le titre et le sous titre.
L’amélioration qu’on se propose d’effectuer ici est de modifier la position, la couleur et les tailles de caractère de ces titres d’un côté et de supprimer la page de verso qui ne sert pas à grand chose dans le contexte d’un document électronique, d’un autre côté. La démarche pour arriver à cet objectif est légèrement plus complexe que la première modification effectuée. Elle se compose de trois étapes:

1. Copier le modèle par défaut

Pour ne pas modifier les fichiers d’origine de DocBook, il convient de copier le fichier-modèle du titre de document (titlepage) dans le dossier de travail:
cp -p /usr/share/xml/docbook/stylesheet/nwalsh/fo/titlepage.templates.xml document_titlepage.xml
Le nom de fichier cible utilisé ici: document_titlepage.xml, est un nom au choix.

2. Modifier et/ou ajouter les paramètres cibles de la modification

Editer le fichier copie du modèle, par exemple:
vi document_titlepage.xml
Repérer l’endroit qui concerne les titres et sous titre du livre, c’est à dire la portion du fichier entre les lignes:
<t:titlepage t:element="book" t:wrapper="fo:block">
 ....
 ....
</t:titlepage>
Remarquer t:titlepage qui veut dire les pages de titre et t:element=’book’ qui veut dire qu’il s’agit du type livre (pas article ni slide ..). Dans cette portion on s’intéresse d’abord à la partie: <t:titlepage-content t:side=’recto’>, qui est la première page du livre. Modifier comme indiqué ci-après. Les lignes modifiées ou ajoutées sont en gras:
<title
        t:named-template="division.title"
        param:node="ancestor-or-self::book[1]"
        text-align="left" 
        font-size="&hsize2;" 
        space-before="&hsize2space;" 
        color="#009595" 
        margin-top ="60%"
        font-weight="bold"
        font-family="{$title.fontset}"/>
  <subtitle
         text-align="left" 
         font-size="&hsize1;" 
         font-style='italic' 
         font-weight="normal" 
         color="#008080" 
         space-before="&hsize1space;"
         font-family="{$title.fontset}"/>
Ces modifications concernent l’alignement et la taille des caractères des titres et sous-titres qui ont été modifiés en alignement à gauche au lieu de centre et des tailles de caractères plus petites. Elles concernent également les paramètres de couleur et de position verticale (margin-top) qui ont été ajoutés au titre. Les paramètres de style (font-style) et de couleur qui ont été ajoutés au sous-titre. Ensuite on s’intéresse à la partie <t:titlepage-content t:side=’verso’> qui contrôle le contenu de la deuxième page,  ainsi qu’à <t:titlepage-before t:side=’verso’> qui contrôle le saut de page. On supprime tout ce qui se trouve dans ces deux paramètres:
<t:titlepage-content t:side="verso">
</t:titlepage-content>
...
<t:titlepage-before t:side="verso">
</t:titlepage-before>
Ceci élimine cette deuxième page du document.

3. Générer la feuille de style à partir du modèle et l’intégrer au custom layer

Pour générer la feuille de style à partir de ce modèle modifié:
xsltproc --output document_titlepage.xsl /usr/share/xml/docbook/stylesheet/nwalsh/template/titlepage.xsl document_titlepage.xml
Ceci génère le fichier document_titlepage.xsl qu’il convient d’intégrer au custom layer c’est à dire le fichier pdf_document.xsl comme suit:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:import href="/usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl"/>
  <xsl:import href="document_titlepage.xsl"/>
  <xsl:param name="paper.type">A4</xsl:param>
  .....
  .....
</xsl:stylesheet>
La ligne ajoutée (en gras) importe cette feuille de style créée. Ensuite il convient de ré-générer le document PDF comme précédemment, c’est à dire avec les deux commandes successives:
xsltproc -o document.fo pdf_document.xsl document.xml
fop -pdf document.pdf -fo document.fo
On obtient un document au format PDF avec 4 pages cette fois et dont la présentation a été améliorée: [gallery size="medium" columns="2" ids="740,741"] [gallery size="medium" columns="2" ids="742,743"]  ]]>

DocBook – Améliorer la présentation en HTML

DocBook. Dans l’article précédent sur l’utilisation de base de DocBook, nous avons vu comment produire un document cible au format HTML à partir du contenu initial. Dans cet article on verra comment améliorer la présentation de ce document HTML. Cette amélioration repose sur l’utilisation des feuilles de style CSS d’un côté et du paramétrage de la transformation du contenu d’un autre. Cet article fait partie d’une série qui traite de l’utilisation de DocBook et qu’il convient de lire dans l’ordre indiqué:

  1. Installation et utilisation de base
  2. Cet article: Utilisation avancée et amélioration de la présentation en HTML
  3. Utilisation avancée et amélioration de la présentation en PDF
  4. Créer le contenu du document

Le contenu à transformer

Dans cet article nous allons utiliser un document de contenu prêt à l’emploi: le fichier document.xml_.txt qu’il convient de télécharger et enregistrer sur le disque de votre machine. Pour cela, faites un click droit sur le lien et choisir “Enregistrer le lien sous..” dans le menu. Renommer ensuite en document.xml.

Générer le format HTML

Pour générer le document au format HTML exécuter:
xsltproc -o document.html /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl document.xml
Le résultat obtenu est le suivant (image partielle): DocBookC’est la présentation de base de DocBook comme vue dans l’article précédent. Dans la suite de cet article, il s’agit d’améliorer cette présentation.

Créer une feuille de style CSS

Avec un éditeur de texte créer le fichier document.css
vi document.css
Ensuite saisir le contenu suivant:
:root {
  --textfont: Carlito;
}
div.titlepage h1 {
  font-size: 135%;
  font-family: var(--textfont);
  font-weight: Bold;
  color: #008080;
}
div.titlepage h2 {
  font-size: 120%;
  font-family: var(--textfont);
  font-weight: Bold;
  color: #008080;
}
div.chapter div.titlepage h2 {
  font-size: 115%;
  font-family: var(--textfont);
  font-weight: Bold;
  color: #009999;
}
div.chapter div.titlepage h3 {
  font-size: 105%;
  font-family: var(--textfont);
  font-weight: Bold;
  color: #009999;
}
div.chapter {
  font-family: var(--textfont);
}
.toc {
  font-family: var(--textfont);
}
.code {
  font-family: courier;
  background-color: lightgray ;
  padding: 10px;
}
Dans cette feuille de style on définit une variable comme étant le nom d’une police de caractère (Carlito). Cette police de caractère est affectée aux différentes parties du document dont la taille, la couleur et le style du texte sont modifiés également avec des valeurs différentes à chaque fois. Ces parties sont le titre et le sous-titre du document, les titres et les sous-titres des chapitres, la table de matière (toc) et le paragraphe de code (code). Le choix de la police de caractère est arbitraire et peut être différent. Toutefois cette police est d’une assez jolie apparence. La police de caractère Carlito n’est pas installée par défaut sur le système, c’est pourquoi il convient de le faire.

Installation de la police de caractère Carlito

Pour cela exécuter:
sudo apt-get install fonts-crosextra-carlito

Générer le document HTML amélioré

Cette amélioration consiste ici à lier le document produit, avec la feuille de style document.css. Exécuter pour ré-générer le fichier document.html avec ce lien:
xsltproc -o document.html --stringparam html.stylesheet document.css /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl document.xml
Le document obtenu, visualisé dans un navigateur, est alors: DocBook

Personnaliser la transformation

La deuxième possibilité d’amélioration est la personnalisation du document HTML lui même. Ceci est obtenu par un paramétrage de la génération du document. Ce paramétrage passe par la création d’une feuille de style XSL qui importe la feuille de style originale de DocBook avant de modifier les valeurs de certains paramètres. Pour créer cette feuille de style:
vi html_document.xsl
Ensuite saisir et enregistrer:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:import href="/usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl"/>
  <xsl:param name="chapter.autolabel">I</xsl:param>
  <xsl:param name="section.autolabel">1</xsl:param>
  <xsl:param name="section.label.includes.component.label">1</xsl:param>
  <xsl:param name="toc.max.depth">3</xsl:param>
  <xsl:param name="generate.toc" select="'book toc'"/>
</xsl:stylesheet>
Remarquer l’import du fichier XSL origine /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl. Avec cet import, 5 paramètres sont modifiés:
  1. chapter.autolabel: indique la numérotation des chapitres.
  2. section.autolabel: indique la numérotation des sections (paragraphe numérotés)
  3. section.label.includes.component.label: indique s’il faut inclure le numéro de l’élément parent de la section dans sa numérotation.
  4. toc.max.depth: indique la profondeur de la table des matières
  5. generate.toc: contrôle la génération des tables de matières. Ici on force la génération de la table de matières globale au document seulement.
Ensuite la ré-génération de document.html se fait avec:
xsltproc -o document.html --stringparam html.stylesheet document.css html_document.xsl document.xml
Remarquer l’appel au fichier XSL personnalisé. Le résultat visible dans un navigateur est désormais:DocBookRemarquer la présence d’une seule table de matières et la numérotation des chapitres, des sections et des sous-sections.]]>

DocBook – Installation et utilisation de base

  • Cet article: Installation et utilisation de base.
  • Utilisation avancée et amélioration de la présentation en HTML
  • Utilisation avancée et amélioration de la présentation en PDF
  • Créer le contenu du document
  • Pré-requis: Connaissance de base de XML et ses feuilles de style XSL. Une connaissance des principes suffit.

    Installation sur un système Ubuntu/Debian ou compatible.

    Pour une installation minimale qui permet de générer des documents au format html et pdf, exécuter:
    sudo apt-get install xsltproc fop docbook-xsl
    
    Cette commande installe les trois paquets:
    • xsltproc : Processeur de feuilles de styles XSLT
    • fop: Moteur de transformation au format PDF.
    • docbook-xsl: ensemble de feuilles de syle xsl du système DocBook. Cet ensemble est installé dans: /usr/share/xml/docbook/stylesheet/nwalsh/

    Création du document.

    Le contenu du document à créer doit être saisi au format XML en respectant le formalisme DocBook. Ce formalisme est constitué par un ensemble de balises XML organisées selon une structure pré-définie. Concrètement, il faut utiliser un éditeur de texte pour créer un fichier qui s’appelle document.xml (à titre d’exemple, car le nom peut être quelconque).
    vi document.xml
    
    Ensuite saisir le contenu:
    <?xml version="1.0" encoding="UTF-8"?>
    <book xml:id="doc" xmlns="http://docbook.org/ns/docbook" version="5.0" lang="fr">
    </book>
    
    Ceci crée un document conforme aux spécifications DocBook mais vide. On reconnait en première ligne l’en-tête d’un fichier XML qui indique la version XML utilisée et l’encodage du texte (UTF-8, recommandé). La 2eme et la 3eme lignes constituent respectivement les balises de début et de fin du document. La 2eme ligne contient les paramètres principaux du document créée:
    • xml:id : Identifiant unique du document
    • xmlns : l’url du namespace DocBook, utiliser toujours http://docbook.org/ns/docbook
    • version: Version de DocBook utilisée, actuellement 5.0 est la version stable.
    • lang: Code ISO de la langue du document.
    Enregistrer le fichier puis exécuter:
    xsltproc -o document.html /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl document.xml
    
    Il s’agit d’un appel au processeur xslt, xsltproc, avec trois paramètres:
    • -o : Indique le nom, au choix du document à générer.
    • 2ème paramètre: Chemin et nom du fichier xsl du format cible, ici le format html.
    • 3ème paramètre: le fichier du contenu à transformer.
    Cette commande doit réussir et générer le fichier document.html dont le contenu est vide. Pour le vérifier, ouvrez ce fichier dans un navigateur web.

    Ajouter un contenu au document.

    Modifier le fichier document.xml de manière à ajouter un titre, un chapitre à un seul paragraphe:
    <?xml version="1.0" encoding="UTF-8"?>
    <book xml:id="doc" xmlns="http://docbook.org/ns/docbook" version="5.0" lang="fr">
      <title>Utiliser DocBook pour créer un document multi-usages</title>
      <chapter xml:id="ch1">
        <title>Introduction</title>
        <section xml:id="ch1se1">
          <title>Qu'est ce que DocBook ?</title>
          <para>
            Un ensemble d'outils XML.
          </para>
        </section>
      </chapter>
    </book>
    
    Maintenant la même commande permet d’obtenir un résultat plus significatif dans document.html: docbook Les éléments ajoutés au document sont dans l’ordre: . Titre du document (<title>xxxx</title>) . Un chapitre (<chapter>xxxx</chapter>) . Au sein du chapitre:

    . Titre du chapitre (<title>xxxx</title>) . Une section qui génère un numéro de paragraphe

    . Au sein de la section: . Titre de la section (<title>xxxx</title>) . Un paragraphe, non numéroté (<para>xxxx</para>)

    Générer le document au format PDF

    Deux commandes successives doivent être exécutées:
    xsltproc -o document.fo /usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl document.xml
    fop -pdf document.pdf -fo document.fo
    
    La première commande est similaire à celle utilisée pour générer le format html. La seule différence est l’utilisation d’un autre fichier xsl: /usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl au lieu de /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl Cette première commande génère un fichier intermédiaire, document.fo, qui sera utilisé par la deuxième commande qui génère le fichier document.pdf]]>