Mot-clé - xsltproc

Fil des billets - Fil des commentaires

jeudi, avril 12 2007

Suite à mon install de feisty

Je n'avais rien remarqué hier de particulièrement intéressant dans Feisty. En bossant un peu dessus, j'ai quand même noté deux très grosses améliorations, bien qu'en douceur, de cette version.

Tout d'abord, KNetworkManager. C'est un excellent outil que j'aurais rêvé avoir plus tôt. Je n'ai pas eu besoin de configurer quoi que ce soit, que ce soit chez Damien (wifi), chez un client (câble DHCP) ou chez moi (câble DHCP). Rien du tout. Ça marche, tout simplement.

Autre point excellent. J'ai compilé et installé un certain nombre de programmes aujourd'hui. Mais je ne me rappelle pas de tous les programmes à installer. Parfois, j'essaie d'en utiliser un qui n'est pas encore installé. D'ordinaire, j'obtiens la réponse laconique :

guillaume@laptop:~$ xsltproc
bash: xlstproc : commande introuvable

Bon, je connais bien. Un petit apt-cache search suivi d'un apt-get install et tout rentre dans l'ordre. Feisty va plus loin. Voici sa réponse :

guillaume@laptop:~$ xsltproc
The program 'xsltproc' is not currently installed. You can install it by typing:
sudo apt-get install xsltproc
bash: xlstproc : commande introuvable

En dehors de la traduction manquante, je dois avouer que je trouve le conseil intelligent. Rien qu'aujourd'hui, ça m'est arrivé quatre ou cinq fois. Ce n'est pas grand chose mais c'est diablement utile.

Alors merci M'sieur Kubuntu.

dimanche, mai 21 2006

Encore des nouvelles du département...

Après impression, le format A6 est vraiment trop petit. J'ai donc opté pour le format 4"25 sur 6"875 (ce qui nous donne du 10cm de large sur 17 de hauteur), le format des « Précis et concis » d'O'Reilly. Je gagne une centaine de pages :)



Pour en gagner un peu plus, j'ai essayé de supprimer le saut de page entre chaque page man. Malheureusement, même avec un refentry.pagebreak à 0, j'ai toujours un saut de page. J'ai fini par me demander si cela ne venait pas de ma version de docbook-xsl étant donné que je me traîne toujours la 1.68. J'ai donc utilisé la toute nouvelle version 1.70. J'ai eu droit à un joli message d'erreur. J'essaie donc la 1.69. De nouveau, un message d'erreur. Après quelques recherches dans Google, je finis par comprendre qu'il me faut utiliser une autre version que la 1.1.15 d'xsltproc. Donc, c'est parti : téléchargement/compilation/installation de libxml (dépendance de libxslt), et pareil pour libxslt. Rapidement, ça donne ceci :

wget http://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.24.tar.bz2
tar xvfj libxml2-2.6.24.tar.bz2
cd libxml2-2.6.24
./configure --prefix=/opt/libxml2-2.6
make
sudo make install
wget http://ftp.acc.umu.se/pub/GNOME/sources/libxslt/1.1/libxslt-1.1.16.tar.bz2
tar xvfj libxslt-1.1.16.tar.bz2
cd libxslt-1.1.16
./configure --with-libxml-prefix=/opt/libxml2-2.6 --prefix=/opt/libxslt-1.1.16
make
sudo make install

Après un « export PATH=/opt/libxslt-1.1.16/bin:$PATH », « make quickpdf » ne me génère plus d'erreurs, j'ai bien mon PDF et je n'ai plus les sauts de page :)

Passons à la suite. J'ai ajouté le document d'installation, il faudra donc que j'utilise le profile standalone. J'ai aussi ajouté le tutoriel. J'ai supprimé les balises part, je n'utilise que des chapter pour gagner de la place. Ça commence à avoir une belle tête... enfin, à prendre forme plutôt car joli n'est pas le mot. Je vais avoir encore pas mal de bidouillage à effectuer pour avoir quelque chose de propre.

mardi, avril 18 2006

Passage en XML

fabix avait bien démarré le projet du passage des sources SGML du manuel de PostgreSQL en XML. J'ai continué hier après-midi et terminé ce matin. xmllint ne donnait aucune erreur hier, xsltproc se plaignait encore un peu à cause d'identifiants inconnus. En effet, certains identifiants n'étaient pas identiques à cause de leur casse. J'ai commencé à me faire la liste manuellement avec gvim mais c'est un peu long et « chiant ». Bref, quelques tests avec sed et j'obtiens cette jolie commande :

grep -l "id=\"[A-Za-z0-9]" *.sgml | while read fichier
do
  mv ${fichier} ${fichier}.bak
  sed s/id=\"[a-zA-Z0-9-]*\"/\\L\&/g \
      s/linkend=\"[a-zA-Z0-9-]*\"/\\L\&/g \
      s/endterm=\"[a-zA-Z0-9-]*\"/\\L\&/g" ${fichier}.bak > ${fichier}
  echo "$fichier ok"
done

\L& permet de convertir ce qui a été récupéré par sed en minuscule.

Ceci fait, xsltproc s'est encore plaint pour deux/trois bêtises (Id au lieu de id, ProductName au lieu de productname... bref encore un problème de minuscule/majuscule).

Tout ce travail me permet de générer la documentation de PostgreSQL avec xsltproc, à priori plus rapide et me donnant plus d'options pour la génération... sans compter que les feuilles de style XSLT sont bien plus lisibles que les feuilles DSSSL. Néanmoins, il me reste encore du travail car il y a pas mal de différences entre le document généré par openjade et celui généré par xsltproc. Je m'y remets ce soir.