Page précédente Page suivante Table des matières

2. Installation de PSGML

Cette section décrit l'installation de PSGML 1.0.1, autrement dit une version stable depuis le 20 novembre 1996 à 19 heures 40 minutes et 5 secondes.

2.1 Suivre à peu près les instructions du fichier INSTALL

Dans la section install-info du fichier Makefile.in, commencer par remplacer tous les --infodir par --info-dir, plus conformes à ce qu'attend le programme install-info (en tout cas dans sa version 1.2).

Ensuite seulement, suivre en toute confiance les instructions du fichier INSTALL.

La procédure décrite dans le fichier INSTALL aboutit simplement à la création des quelques fichiers et répertoires indispensables au fonctionnement de psgml, en particulier les fichiers .el, .elc, et .info. Un C-h i d dans Emacs vous confirmera que les fichiers Info ont bien été intégrés à la suite des autres (dans la catégorie Miscellaneous). Pour le reste, il suffit d'aller vérifier qu'un répertoire psgml a été créé dans le site-lisp de votre arborescence Emacs (je parie pour /usr/share/emacs).

2.2 Configurer Emacs

Il s'agit à présent de convaincre Emacs de charger le mode psgml chaque fois qu'un fichier SGML est ouvert. La solution qui me paraît la plus simple consiste à ajouter dans votre fichier ~/.emacs les lignes suivantes (si votre arborescence Emacs ne se trouve pas à cet emplacement, vous devrez bien sûr modifier le chemin ci-dessous en conséquence) :

(add-to-list 'load-path "/usr/share/emacs/site-lisp/psgml")
(autoload 'sgml-mode "psgml" "Mode majeur SGML." t)
          
Si vous voulez immédiatement vérifier que tout se passe comme prévu, rien ne vous empêche de relancer Emacs, et de charger un fichier SGML. Mais vous risquez d'être déçu : hormis l'apparition de nouveaux menus, dont les options sont au mieux inefficaces, vous ne trouverez rien qui vaille la peine d'avoir lu ce document jusqu'ici...

2.3 Configurer psgml

Il manque en fait à psgml deux types d'information distincts 

Le(s) chemins(s) d'accès à la DTD

Information vitale s'il en est. Si psgml ne sait pas accéder à la DTD du document (linuxdoc dans le cas qui nous intéresse), il sera bien sûr incapable de valider le document, ni d'émettre une quelconque suggestion ou de formater le texte en fonction de l'élément courant.

Les préférences de l'utilisateur

L'utilisateur dispose d'une floppée de variables à initialiser en fonction de ses habitudes de travail. Cela va de l'aspect des balises à l'écran au nom du parseur SGML externe, en passant par le niveau d'indentation requis.

Voyons comment les lui fournir.

Chemins d'accès à la DTD

Il existe quatre moyens différents d'indiquer à psgml où se trouve les informations sur le type de document SGML auquel il a à faire. Chacune de ses quatre méthodes peut être adaptée au système de l'utilisateur, et à l'usage qu'il en fait.

La solution recommandée par SGML/Opens est la plus universelle et a apparemment été retenue lors des implémentations de psgml effectuées pour les versions 20.x de XEmacs, ainsi que dans la version 1.03 du kit sgml-tools. Elle implique la création d'un ou plusieurs fichiers CATALOG, contenant eux-mêmes des références aux fichiers que psgml doit lire. Les prochaines versions de ce document décriront cette méthode, plus propre et plus générique que celle exposée ici.

En attendant, je préfère présenter celle qui nécessite le moins d'efforts : il suffit d'ajouter à votre environnement la variable SGML_PATH. Dans votre fichier ~/.bash_profile, vous pourrez donc écrire :

LINUXDOCLIB=/usr/lib/linuxdoc-sgml
SGML_PATH=$LINUXDOCLIB/dtd/%N.dtd:$LINUXDOCLIB/rep/latin1/%N 
export SGML_PATH
      

Il s'agit d'une liste de modèles de chemins, qui peuvent être instanciés aussi bien par psgml que par l'analyseur sgmls distribué avec la version 0.99 du kit sgml-tools. Attention, nsgml, le successeur de sgmls distribué avec les versions ultérieures de sgmltools n'a pas le même comportement par défaut !.

Comme vous l'avez sans doute deviné, LINUXDOCLIB est une variable temporaire, dont il suffit de modifier la valeur en fonction de l'endroit où se trouve le fichier de DTD linuxdoc.dtd et le fichier d'entité general le plus...général.

Variables à initialiser

Quelques variables psgml sont intéressantes à initialiser avant même la première utilisation. Je vous propose donc d'insérer le code ci-dessous dans votre fichier ~/.emacs, après celui donné à la section Configuration d'Emacs :

(setq sgml-validate-command "sgmls -s %s %s"
      sgml-trace-entity-lookup t
      sgml-set-face t
      sgml-live-element-indicator t
      sgml-indent-data t
      sgml-indent-step 1)
      
Vous aurez ainsi droit à :
  1. L'analyseur sgmls livré avec le kit sgml-tools.
  2. Un log de parsing un peu plus explicite que celui établi par défaut.
  3. Une mise en relief des balises SGML de votre document.
  4. Un rappel sur la ligne de mode de l'élément dans lequel se trouve votre point d'insertion.
  5. La possibilité d'utiliser TAB et C-c C-q pour justifier élégamment le texte.
  6. Un niveau d'indentation égal à 1, qui évitera de se retrouver trop vite à droite de l'écran, lorsqu'on se trouve en train d'écrire à niveau d'imbrication trop profond. Mais vous pouvez garder la valeur de 2 par défaut si vous préférez.


Page précédente Page suivante Table des matières