Ce document s'adresse aux chefs d'équipe ou aux programmeurs désireux d'utiliser un standard libre, optimisé pour le travail d'équipe et facilement exportable pour leurs documentations. Vous trouverez dans ce document les logiciels à utiliser ainsi que la façon de les utiliser pour mener à bien cette tache.
Pourquoi utiliser le docBook ? Tout d’abord, comme nous le verrons plus en détail dans le 2eme chapitre de ce document, le docbook présente l’avantage d’être standardisé grâce à l’utilisation du XML. Il peut ainsi être lu ou modifié indifféremment par différentes applications.
Deuxième avantage, il permet de n’écrire un document qu’une fois pour le générer de façon automatique dans différents formats. Cela évitera les opérations laborieuses que nous répétons régulièrement, à savoir l’utilisation de Word pour rédiger le document, puis accrobat pdf writer pour le convertir en pdf, puis utilisation du parseur pour le générer en html…
L’objectif étant d’écrire un document en docbook une seule fois, puis la génération des fichiers pdf, word, html et autres est automatisée !
Cela permet non seulement un gain de temps pour chaque nouveau document ajouté, mais aussi une meilleure synchronisation des documents modifiés.
Par ailleurs l’utilisation du format XML (qui est un simple fichier texte) permet de synchroniser les documents avec subversion de façon optimale.
Nous allons donc voir, dans ce document, quels sont les avantages et les inconvénients d’un tel choix.
Vous trouverez joint à ce fichier, toutes les applications nécessaires pour exporter
docbook-xsl-1.69.1.zip: Contient les feuilles de styles pour générer des export à partir du docbook. Nécéssaire à FOP et Saxon.
fop-0.91beta.zip: Contient le logiciel FOP de la fondation apache, pour générer les fichiers pdf
saxon6-5-5.zip: Contient le logiciel Saxon qui permet de générer des page HTML à partir du docbook.
Cela vous évitera d’avoir à les télécharger et éventuellement à les configurer. Nous reviendront évidemment sur chacun de ces logiciels dans la suite de ce tutorial.
2.Le format DocBook
2.1.Présentation
DocBook est un langage de balisage conçu à la base pour les documentations techniques d’informatique (matériel et logiciel). C'est à l'origine une Définition de type de document (DTD) SGML.
Elle a été portée depuis sous forme de schéma XML.
La grande force de DocBook est d'être un format XML totalement orienté sémantique, il n'inclut en effet aucune information de mise en forme ce qui permet d'utiliser ensuite la documentation ainsi structurée par tout type de support / lecteur. Un ensemble de feuille de styles XSLT est disponible pour transformer des documents DocBook vers de nombreux formats comme HTML, PDF, RTF, JavaDoc, etc.
DocBook est en train de s'imposer comme le format standard pour la documentation logicielle (notamment dans la communauté Open Source) et commence à être utilisé dans l'industrie. La normalisation par l'OASIS devrait d'ailleurs le rendre de plus en plus prisé.
2.2.La syntaxe Docbook
Décrire l’ensemble des balises ainsi que leurs fonctionnalités ne serait pas très intéressant. Voici un petit exemple de fichier Docbook qui est très compréhensible et qui explique la facilité déconcertante avec laquelle on peut créer un fichier Docbook.
Noter que les premières lignes contiennent des informations relative au document (version de XML utilisée, encodage de caractère, nom de l’auteur, titre du document, langue, type de document, …).
<!DOCTYPE article PUBLIC " -//OASIS//DTD DocBook V3.1//EN"> <!-- La ligne ci dessus décrit le document -->
<!-- On définit la classe et la langue de notre texte -->
<article class="whitepaper" id="un-example" lang="fr"> <!-- On entre d'abord les informations concernants le header, elles permetteront entre autre, de retrouver les auteurs, les dates de modification, etc -->
<artheader>
<title>Premier exemple</title>
<author> <firstname>Stéphane</firstname> <surname>ARNAULT</surname>
<affiliation> <address>
<email>stephane.arnault@supinfo.com</email> </address>
</affiliation>
</author>
</artheader>
<!-- On entre dans la première section -->
<sect1>
<title>Première partie</title>
<para> Dans ce paragraphe, j'insère une figure:
<!-- On verra plus tard d'autres moyens d'insérer des figures --> <figure>
<title>Le logo de Supinfo</title>
<graphic fileref="images/logo.gif"> </graphic>
</figure>
</para>
<sect2> <title> Premiere sous-section </title>
<para> Les tableaux peuvent être très complexes en docbook, en voici une version simple. </para>
<para> Voici un tableau simple : Une description fictive des caractéristiques du compilateur <informaltable frame="all">
<tgroup cols="4">
<!-- on décrit le nombre de colonnes -->
<thead> <!-- on passe au "header" du tableau --> <row> <entry>Architecture</entry> <entry>Companie</entry>
<entry>Code natif supporté</entry>
<entry>Optimisation max.</entry>
</row> </thead> <tbody>
<!-- et on remplit les lignes -->
<row>
<entry>i386</entry>
<entry>Intel</entry>
<entry>oui</entry> <entry>-O4</entry> </row>
<row> <entry>alpha</entry> <entry>DEC</entry>
<entry>oui</entry> <entry>-O3</entry> </row> <row>
<entry>Z80</entry> <entry>Zilog</entry>
<entry>non</entry> <entry>-O1</entry> </row> </tbody>
</tgroup>
</informaltable>
</para>
</sect2>
<sect2> <title>Une autre sous_section</title>
C’est pour cette raison que le premier critère qui va faire le choix d’un outil plutôt qu’un autre sera sa portabilité. Heureusement, la majorité des outils permettant de travailler avec le Docbook sont écrits en Java. Nous pourrons donc exécuter ces applications sur toutes les machines sans avoir à s’adapter à un nouveau logiciel lorsqu’on change d’architecture. Comme nous le verrons, les programmes Java présentent l’inconvénient d’être un peu plus lent que ces homologues c++. Cependant la durée des traitements de génération de documents n’excède pas 30 secondes, ce qui reste acceptable.
Tous les outils utilisés devront évidemment être libres d’utilisation.
3.1.Les feuilles de style
L’exportation des fichiers XML de type DocBook dans un format lisible tel que le html ou le pdf est basée sur l’utilisation des feuilles de style xsl.
Sans ces feuilles de style, il est impossible de générer le moindre document puisque c’est ces feuilles XSL qui définissent l’affichage produit à partir du fichier XML.
3.2.Editer un fichier Docbook
Après avoir testé de nombreux logiciels pour écrire du Docbook, j’ai retenu deux solutions intéressantes pour créer un nouveau document.
Editer directement du XML
Pour cela, de nombreux éditeurs existent en version freeware. Nous n’allons pas nous attarder sur cette partie, tous les lecteurs de ce document savent, je l’espère, de quoi il s’agit.
Utiliser un éditeur WYSIWYG
Parmi les éditeurs WYSIWYG, celui qui l’emporte haut la main est incontestablement Open-Office qui prend en charge le format DocBook nativement.
Par ailleurs l’interface graphique est extrêmement semblable à celle de Microsoft Word, les rédacteurs ne seront donc pas dépaysés.
Note : Il peut être intéressant de rédiger l’intégralité d’un document avec un éditeur WYSIWYG afin de gagner du temps, puis de corriger les erreurs ou améliorer l’affichage en éditant le XML. Un mélange des deux « techniques » ne pose évidemment aucun problème.
3.3.Importer nos document existants en docbook
De la même façon qu’on a créé un document DocBook grâce à open-office, cet outil peut aussi nous servir pour importer nos documents existants.
En effet, open-office supporte le format Doc utilisé par word.
Il suffit donc d’ouvrir le fichier doc, puis de le sauvegarder en DocBook (XML).
3.4.Exporter un fichier docbook
Nous arrivons dans la partie la plus intéressante du format docBook, l’exportation du fichier. Comme nous l’avons rapidement abordé dans l’introduction, nous passons actuellement beaucoup trop de temps a générer les documents après leurs rédaction. Pire encore, la moindre petite modification du document tel que la correction d’une faute d’orthographe nécessite une nouvelle conversion en PDF, HTML, « parsage » en jsp, compression, envoi sur le site…
Pour un simple « S » manquant, il y a 20 minutes de travail aussi intéressant que productif…
Grâce à docBook, on modifie le document une seule fois, et les modifications sur les différents exports du document pourraient être automatisées !
3.4.1.Export html
Le meilleur outil pour faire de l’export en HTML se nomme Saxon. Il est open-source et développé en Java (disponible sur http://saxon.sourceforge.net/.). Il en est à la version 6-5-5 à l’heure ou j’écris ces lignes, cependant le projet à l’air bien suivi et les évolutions sont régulières.
Attention, il existe aussi une version payante nommée Saxon-SA et maintenue par l’entreprise Saxonica, cette version ne nous intéresse évidemment pas.
Utilisation de Saxon
Le site officiel nous propose de télécharger une archive qu’il suffit de décompresser.
Le fichier que nous devons démarrer est « saxon.jar ». Pour cela nous allons executer la ligne de commande suivante afin de générer une page HTML :
Le chemin "..docbook-xsl-1.69.1xhtmldocbook.xsl" correspond au chemin de ma feuille de style qui défini l’affichage généré. Je vous invite à relire le chapitre 3.1 avoir de brèves informations sur ces feuilles de style ou pour savoir comment les télécharger.
3.4.2.Export pdf
Pour l’export PDF, la meilleur alternative provient de notre bien aimé fondation Apache.
La encore le projet est développé en Java et est Open-Source. Ce logiciel s’appelle FOP et est disponible sur http://xmlgraphics.apache.org/fop.
Bien qu’il n’en soit qu’à la version 0.91beta, je l’ai trouvé stable et simple d’utilisation.
Utilisation de FOP
L’installation se résume à une simple décompression d’un fichier archivé.
Apres avoir décompressé l’archive, on a un sous répertoire « build » qui contient le fichier « fop.jar » qui nous interresse. La commande pour lancer la génération du pdf est :
Le chemin "..docbook-xsl-1.69.1odocbook.xsl" correspond au chemin de ma feuille de style qui défini l’affichage généré. Je vous invite à relire le chapitre 3.1 avoir de brèves informations sur ces feuilles de style ou pour savoir comment les télécharger.
/ ! La feuille de style pour générer le fichier PDF n’est pas la même que celle qui permet de générer un fichier HTML. L’une se trouve dans le sous répertoire « fo » du chemin d’installation de « docbook-xsl », l’autre se trouve dans le sous répertoire xhtml.
Lors de la génération du pdf, quelques Exceptions et erreurs peuvent survenir dans la console. Il ne faut pas s’en inquiéter, la génération fonctionnera malgré tout.
4.Travail collaboratif et mises à jour
4.1.Subversion
Comme nous l’avons vu, DocBook est basé sur XML. Il s’agit donc d’un fichier texte linéaire.
Cela présente l’énorme avantage de pouvoir être synchronisable grâce à subversion (ou cvs).
Ainsi, les conflits produits lors des modifications concurrentes du même document par plusieurs personnes seront gérés quasiment automatiquement.
Il pourrait donc être extrêmement judicieux de conserver nos documents sources en Docbook sur subversion afin de pouvoir gérer le versionning et les accès concurrents.
4.2.Automatisation des générations de document
Afin de gagner beaucoup de temps, et pour nous épargner un travail ennuyeux de génération de documents, il serait intéressant d’automatiser la génération de nos documents.
Pour cela, une solution très simple consistera à exécuter un script à intervalle de temps régulier (toute les heures par exemple) qui compare la date de modification du fichier source en Docbook et celle des fichiers générés (html, pdf). Ainsi tous les documents Docbook dont la date de modification est ultérieure à celle des documents générés pourraient être à nouveau générés pour être mis à jour sans aucune intervention manuelle.
5.Inconvénients du Docbook
Lors de mes tests, j’ai malgré eu quelques problèmes, principalement au niveau de la mise en page.
Tout d’abord je n’ai pas réussi à conserver une page de garde, avec le logo de l'entreprise par exemple. Il doit être possible de palier à ce problème en utilisant un tableau et en plaçant les éléments de notre page de garde dans des cases de ce tableau. Cependant le DocBook n’est pas fait pour décrire une mise en page, mais uniquement des données. C’est pourquoi cette solution tient plus du « bidouillage » que de l’utilisation des fonctionnalités DocBook.
Je n’ai pas réussi à modifier l’en-tête et le pied des pages générées. Cependant j’approfondirai plus les possibilités du format. Une telle opération est certainement possible.
Je n’ai pas trouvé d’outils satisfaisant permettant de générer des fichiers Doc pour Microsoft Word. La majorité sont payants et ne conviennent donc pas à l’utilisation que l’on souhaite en faire. Il est possible en revanche de générer des fichiers RTF (que Word sait aussi manipuler). Nous pourrions donc nous contenter d’utiliser des fichiers RTF au lieu des fichiers DOC, ou encore de sauvegarder manuellement ce fichier RTF en DOC grâce à Word (mais on perd donc l’avantage du « tout automatisé »).
6.Conclusion
Nous avons vu dans ce document comment créer des fichiers Docbook, et comment migrer les documentations dans ce format.
On a pu constater que c'est le format idéal pour le travail en équipe, grâce à la possibilité de pouvoir gérer facilement l'acces concurentiels au meme document par plusieurs personnes.
Sujets
Auteur du sujet: adult
Auteur de la derniere réponse: adult
Date de la derniere réponse: 2008/05/14 06:00