| Prima Homepage Ravi Homepage Le langage scml et la doc Ravi Le module modxdraw Installation Ravi sur Ensibull - PIA99 ImaLab | Le langage scml et la doc RaviLa doc-en-ligne de Ravi doit être indépendante des contraintes d'un langage de documents: elle est donc rédigée dans un formalisme différent de tous les autres, qui permet facilement de générer du html, et tout aussi facilement du Latex. Le principe de base de scml(une invention de Bruno Zoppis en 97) est aussi astucieux que simple: le texte source est mélangé avec des commandes (comme d'habitude), et ces commandes sont des expressions Scheme écrites sous la forme @(expression Scheme). Le traducteur scml2html transmet dans le fichier-cible html le texte source caractère par caractère, sauf pour les expressions Scheme, qui sont évaluées; l'expression peut écrire en sortie (avec display, etc.) ou créer des structures de données diverses (par exemple la table des matières). Tout cela est très simple, les programmes font à peine 3 pages de Scheme: le traducteur se trouve dans le répertoire Doc/Pgm. Le fichier filter.scmcontient les fonctions générales (c. à d. indépendantes de html), le fichier html.scmimplémente la génération de html. Avis aux amateurs: il reste à écrire le fichier latex.scm.
Toute la doc de ravi est un example. Elle se trouve dans le répertoire Doc/Src. La génération de la doc se fait par un Makefile qui se trouve avec les programmes: faire make dans Doc/Pgm. Les fichiers générés se trouvent dans Doc/Html.Il n'y a pas d'installation automatique. Le transfert dans /home/pandora2/WWW/Ravise fait manuellement. La traduction d'un fichier scml isolé se fait depuis le répertoire Src:
Le résultat sera le fichier Html/zz_xx.html.
Les "commandes"scml sont donc des fonctions Scheme prédéfinis (dans le fichier html.scm). Les principe de base a quelques conséquences mal commodes: comme une doit s'ecrire @(fn arg1 arg2 ...) les parenthèses et guillemets abondent; deux élements simplifient l'emploi des commandes à 0 ou 1 arguments (ce qui couvre la majorité des cas): pour une commande sans argument, on peut omettre les parenthèses. On écrit donc juste @commande. Si pour une commande à 1 argument on ne met pas de parenthèses, l'argument sera constitué par la chaîne de caractères formant le reste de la ligne. Au lieu de @(commande "texte") on écrit donc @commande text.
Regarder ce que font ces commandes dans le fichier html.scm. Les titresPlusieurs présentations de titres et sous-titres sont prévues. La commande head1 introduit un titre qui sera inclu dans la table des matières apparaissant en tête de chaque fichier.
Environnements
Les commandes simples
|