B.  Produire simplement une version HTML d'un document XML DocBook

Ce court chapitre explique comment produire le plus simplement possible un document HTML à partir d'un document au format XML DocBook.

Vous devez disposer des paquets suivants[8] :

docbook-xml

Les définitions de type de document (DTD) décrivant le format DocBook. Ils sont disponibles sur le site du consortium OASIS : http://www.oasis-open.org/docbook/xml/4.5/.

docbook-xsl

Les feuilles de style XSLT de base du format DocBook. Elle permettent notamment la production de versions HTML de documents au format XML DocBook. Elles sont disponibles sur : http://docbook.sourceforge.net.

xsltproc

La commande xsltproc permet d'appliquer une feuille de style XSLT à un document XML pour produire un document final (par exemple au format HTML).

Pour produire une version HTML, vous devrez simplement indiquer à xsltproc l'emplacement de la feuille de style utilisée (appelée xhtml/docbook.xsl) et le nom du fichier source XML :

xsltproc feuille_de_style.xsl document.xml > document.html

Par exemple, chez moi, j'utilise la commande suivante :

FEUILLE_DE_STYLE="/usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl"
xsltproc "${FEUILLE_DE_STYLE}" document.xml > document.html

Et voilà ! C'est fini. Vous disposez maintenant d'une version HTML de votre document.

Il est possible d'améliorer le rendu du document produit en utilisant certaines options de la feuille de style XSL DocBook. Du fait de l'ajout de ces options, la ligne de commande peut devenir un peu longue. Pour simplifier, j'ai donc préparé un petit script qui rassemble toutes les options que j'utilise.

#!/bin/bash

# On s'arrête en cas d'erreur

set -e

# Vérification du nombre de paramètres

if [ "$#" -ne 1 ] ; then

    echo
    echo "Script de production d'une version HTML d'un document XML DocBook."
    echo
    echo "Utilisation :"
    echo "$(basename $0) document.xml"
    echo
    exit 1

fi

# Définition des fichiers à utiliser

SOURCE_XML="$1"
DOCUMENT_HTML="${1%.xml}.html"

# Feuille de style XSL (à personnaliser)

FEUILLE_DE_STYLE_XSL="/usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl"

# Vérification de l'existence du document XML source

if [ ! -f "${SOURCE_XML}" ] ; then

    echo
    echo "Erreur : fichier ${SOURCE_XML} introuvable !"
    echo
    exit 1

fi

# Vérification de la structure du document

echo "Vérification de la structure de ${SOURCE_XML}"

xmllint --valid --noout "${SOURCE_XML}"

# Production de la version HTML

echo "Production de la version HTML de ${SOURCE_XML}"

xsltproc --stringparam "admon.graphics" "1" \
         --stringparam "html.stylesheet" "style.css" \
         --stringparam "css.decoration" "0" \
         --stringparam "blurb.on.titlepage.enabled" "1" \
         --stringparam "contrib.inline.enabled" "0" \
         --stringparam "make.valid.html" "1" \
         --stringparam "make.year.ranges" "1" \
         --stringparam "html.cleanup" "1" \
         --stringparam "section.autolabel" "1" \
         "${FEUILLE_DE_STYLE_XSL}" "${SOURCE_XML}" \
         > "${DOCUMENT_HTML}"

echo "Terminé"


[8] Le nom de ces paquets peut varier selon la distribution Linux utilisée.