HACKING
branchopera
changeset 0 4a9a448a9005
equal deleted inserted replaced
-1:000000000000 0:4a9a448a9005
       
     1 On Mon, Apr 23, 2001 at 11:57:49PM +0200, Jean-Luc et Anna-Maria Donnadieu wrote:
       
     2 > > Je fais tout à partir du XML à la place: il y a plus de souplesse ainsi
       
     3 > > et j'ai jamais trop apprécié les logiciels de transformations
       
     4 > > tex->html... c'est généralement du bizounage pas très solide.
       
     5 > > 
       
     6 > > Pour information (attention, je deviens technique là), voici un peu
       
     7 > > l'arbre de transformations:
       
     8 > > 
       
     9 > > XML+DSL -->{jade}--> HTML -->{HTML2TEXT}--> Text
       
    10 > >                  |        +-> {html2ps} --> PS
       
    11 > >                  +-> TeX  --> {jadetex} --> DVI -->{dvips} --> PS
       
    12 > >                  |                      +-> PDF -->{ps2pdf}--> PS
       
    13 > >                  +-> RTF
       
    14 > > 
       
    15 > > Ça demande toutefois pas mal de matériels installés:
       
    16 > > ...
       
    17 > > apt-get install task-sgml make w3m xfig gs
       
    18 > > ...
       
    19 > 
       
    20 > Je me suis mis a la debian, et je vais essayer d'utiliser jade. Mais
       
    21 > j'ai du mal a debuter. J'ai telecharge les sources des arpeges, j'ai
       
    22 > tape make, et j'ai tout un tas de formats qui ont ete generes, c'est
       
    23 > super !
       
    24 > Maintenant, j'ai du pain sur la planche pour comprendre le
       
    25 > fonctionnement ;-)
       
    26 
       
    27 Tout est dans le fichier Makefile.rules qui peut-être pratiquement
       
    28 utilisé comme tel pour un autre projet similaire.  Tu y trouveras les
       
    29 lignes de commandes nécessaire pour faire les transfo.  Avec le schéma
       
    30 ci-dessus, tu devrais être capable de t'y retrouver... Et rappelle-toi,
       
    31 man et /usr/share/doc/package sont tes amis!
       
    32 
       
    33 L'autre partie de la magie est dans les fichiers .dsl et dans le
       
    34 répertoire dtd. Voici une petite description de chacun:
       
    35 
       
    36 print.dsl:  Fichier DSSSL contenant les instructions pour formatter
       
    37 les éléments XML dans une version imprimable (TeX, PS, PDF).  C'est du
       
    38 scheme principalement, avec quelques primitives supplémentaires.   Ca
       
    39 vaut la peine de lire la doc fourni dans le paquet
       
    40 docbook-stylesheets-doc pour s'y retrouver un peu.  Il donne un bon
       
    41 exemple sur comment ajouter un formattage spécial lorsqu'on ajoute un
       
    42 élément à Docbook (en l'occurence les éléments complist et comp).
       
    43 
       
    44 html.dsl:  Meme chose que print.dsl, mais comme le html est une forme de
       
    45 SGML (comme le XML), c'est plus des instructions de transformations
       
    46 (transformer un <emphasize>...</emphasize> en <em>...</em>).  Le
       
    47 principe est donc un peu différent.  Même paquet pour la doc.
       
    48 
       
    49 arpeges.dtd:  Fichier principal qui se contente d'inclure les autres DTD
       
    50 (Document Type Description).  C'est ça qui va définir qu'est-ce qui est
       
    51 permis et qu'est-ce qui l'est pas.
       
    52 
       
    53 comp.dtd:  Ajout des éléments complist et comp à docbook.  Un bon
       
    54 exemple de comment augmenter docbook avec ces propres définitions.  Le
       
    55 paquet docbook-doc donne plus d'infos là-dessus, ainsi que Docbook, the
       
    56 definitive guide chez O'Really (aussi disponible sur le net sur
       
    57 www.docbook.org!).  Le livre est une excellente référence.
       
    58 
       
    59 struct.dtd:  Définition des fichiers des Arpèges.  Dans la version
       
    60 courante, tu retrouveras une inclusion conditionnelle:  c'est la version
       
    61 simplifié des arpèges, dans laquelle de nombreux fichiers sont exclus
       
    62 (simplement en les faisant pointer vers /dev/null).  Note que tu peux
       
    63 définir deux fois la même entité mais seule la PREMIÈRE définition (pas
       
    64 de redéfinition possible!) est prise en compte (ce qui permet de faire
       
    65 un parser en une seule passe)... C'est pourquoi l'ordre d'inclusion est
       
    66 très important.
       
    67 
       
    68 terms.dtd:  Définition d'abbréviations.  En fait, très peu sont des
       
    69 abbréviations... Ce sont plus des termes que je veux garder afin de les
       
    70 retrouver plus facilement s'il change.  J'ai mis quelques abrégés connus
       
    71 (&mj; => meneur du jeu) mais l'expérience m'a montré qu'à la longue,
       
    72 c'était bon d'éviter d'en faire trop et que c'était plus facilement
       
    73 lisible ainsi.  De plus, avec un éditeur comme Emacs et le mode PSGML,
       
    74 c'est pas plus long à écrire.  La touche miracle?  Ctrl-/ qui complète
       
    75 un mot à partir des mots déjà écrit.  Par exemple, si tu as déjà écrit
       
    76 une fois &Competence;, tu n'as qu'à faire &Com<CTRL-/> et il va te
       
    77 trouver la première occurence d'un mot qui commence par &Com... Si c'est
       
    78 pas le bon, C-/ à nouveau et tu passes au suivant.  Chouette, n'est-ce
       
    79 pas.  Si tu préfères Vim, dans le mode d'insertion, c'est C-N (en mode
       
    80 insertion) qui fait un truc semblable.  ':help completion' pour les
       
    81 autres raccourcis.
       
    82 
       
    83 Le reste, c'est du SGML bien standard, du texte.
       
    84 Toutefois, j'avoue sans humilité que les Arpèges sont un exemple
       
    85 intéressant des capacités des Arpèges.
       
    86 
       
    87 > Connais-tu une bonne adresse pour trouver de la doc ?
       
    88 
       
    89 Pour le XML, XMLfr.org est excellent et contient beaucoup de tutoriels
       
    90 en français.  Par contre, ça parle beaucoup des XPath, XSL et tout le
       
    91 reste, dont les outils sont encore plutôt bêta (et principalement en
       
    92 Java en plus; très lourd pour ma machine donc).  Même chose pour
       
    93 www.xml.org et www.w3.org.  Le paquet wdg-html-reference contient
       
    94 plusieurs des documents (standards) qu'on retrouve sur le site de
       
    95 w3.org.  Mais c'est un peu lourd parfois comme lecture.  À utiliser plus
       
    96 comme référence.
       
    97 
       
    98 J'utilise présentement du DSSSL pour les Arpèges qui est du Scheme avec
       
    99 des primitives pour l'impression.  Le site de Normand Walsh
       
   100 (www.nwalsh.com) et celui de James Clark (www.jclark.com) contiennent
       
   101 beaucoup d'infos et tutoriel à ce niveau mais la spec elle-même est peu
       
   102 digestible.  Si tu as le courage et que tu es prêt à faire des
       
   103 tentatives, Norman Walsh a déjà un docbook-stylesheets en XSL ainsi que
       
   104 des instructions à ce sujet sur son site.  D'excellents livres à ce
       
   105 sujet ainsi que sur le XML.  J'ai bien apprécié the XML companion ainsi
       
   106 que the XSL companion chez Addison Wesley.  Ce dernier peut aussi
       
   107 fournir une bonne introduction au modèle de mise-en-page utiliser pour
       
   108 le DSSSL (et les CSS) puisque c'est pratiquement le même avec des
       
   109 primitives presque identiques.  Il y'a aussi the XML Blackbook chez
       
   110 Coriolis qui semble aussi bien fourni.
       
   111 
       
   112 Finalement, il y a aussi le site de openjade.sourceforge.net.  Je n'ai
       
   113 toutefois pas encore essayé ce dernier mais les dernières nouvelles (qui
       
   114 sont quand même assez vieille) indiqué l'introduction de quelques
       
   115 incompabilité avec jade standard... c'est donc à tes risques.
       
   116 
       
   117 > 
       
   118 > Jean-Luc
       
   119 
       
   120 
       
   121 Bonne chance!  Moi, il me reste juste à mettre tout ça dans un fichier
       
   122 HACKING pour ne pas avoir à le réécrire la prochaine fois ;) A+ et
       
   123 bienvenue sur Debian...
       
   124 
       
   125 En passant, si tu as upgradé sur woody, un petit package bien cool et
       
   126 pratique pour faire le ménage: debfoster...  ça ajoute le petit rien qui
       
   127 manquait à apt pour en faire mon package tool de rêve.  C'est d'ailleurs
       
   128 probablement recompilable sur potato (dépendance sur libc seulement)...
       
   129 Faudrait que j'y vois.  http://packages.debian.org/debfoster pour plus
       
   130 d'infos.
       
   131 
       
   132 Fabien
       
   133 
       
   134 -- 
       
   135 -------------------------------*  *-------------------------
       
   136 Fabien Niñoles                /  /          fabien@tzone.org
       
   137 Chevalier Servant de Sa Dame /  /   C15D FE9E BB35 F596 127F
       
   138 Veneur Gris par la Clef     /  /    BF7D 8F1F DFC9 BCE0 9436
       
   139 Développeur pour Debian    /  / http://www.tzone.org/~fabien
       
   140 --------------------------*  *------------------------------