Zdoc: version 1.1
Zdoc est un générateur de documentation pour des projets TCL.
Zdoc analyse un ensemble de programmes source TCL et produit la documentation
des procédures en format HTML.
Ecrit en TCL pur, zdoc.tcl ne demande aucune extension;
Il ne demande pas non plus des tags documentaires spécifiques.
Cet outil est dédié à toutes les personnes utilisant le langage TCL.
Copyright Vincent Wartelle © 2001-2004 Oklin.com ®
Ce logiciel est livré sous licence BSD: libre pour tout usage, sans garantie aucune.
Voir le texte de licence (anglais) license.html
Entrées et Sorties
Zdoc analyse un ensemble de programmes TCL, et il écrit:
- un fichier
index.html, index de tous les programmes et des procédures qu'ils contiennent; - et un fichier nomProgramme.html correspondant à chaque fichier source.
Le fichier index.html comporte un tableau HTML par fichier source,
lequel comprend une ligne par procédure.
- Dans ce fichier d'index, cliquer sur le nom d'une procédure conduit à
la procédure correspondante dans le fichier détaillé.
Cliquer sur le nom de procédure dans le fichier détaillé retourne au fichier d'index...
On passe ainsi facilement de la vue d'ensemble à la vue détaillée. - Chaque ligne de l'index décrit: nom de la proc, nombre de lignes, commentaires d'entête, liste des arguments.
Chaque fichier détaillé nomProgramme.html
comporte un tableau HTML par procédure (proc);
-
ce tableau montre les commentaire d'entête de la proc, ses arguments,
les références croisées :
procédures utilisées par la proc , procédures utilisant la proc; puis le code source de la procédure.
La documentation des références croisées constitue un atout majeur de Zdoc.
Ces références croisées sont des liens HTML, qui permettent une navigation rapide
à travers la logique du projet documenté.
( voir les exemples dans les liens ci-dessous )
Mode d'emploi
Zdoc est facile à utiliser. Dans votre environnement TCL,
- "Sourcer" le programme zdoc.tcl;
- Exécuter la procédure zdoc::init pour initialiser Zdoc;
- Indiquez les options nécessaires (voir tableau)
- Lancez la procédure zdoc::run pour analyser les programmes TCL et produire la documentation.
Par exemple, en utilisant tclsh, analyser les programmes TCL tcl/bin.tcl et tcl/grun.tcl, et créer la documentation HTML dans le répertoire doc/ :
unix> tclsh
% source ../public/tcl/zdoc.tcl
% zdoc::init
% zdoc::set_filelist {tcl/blin.tcl tcl/grun.tcl}
% zdoc::set_outdir doc
% zdoc::run
% exit
unix> ls doc
blin.tcl.html grun.tcl.html index.html
Les tableaux ci-dessous détaillent les procédures qui permettent de contrôler et d'exécuter Zdoc, ainsi que ses limites.
Télécharger
Télécharger ! zdoc.tcl (23ko)
La version précédente 1.0 : zdoc_10.tcl
Historique
1.0 - 2001/09/27 première version
1.01 - 2001/10/31 - non publiée - contributions de Patrick Fradin
- ne pas prendre en compte les fichiers pkgIndex
- expressions entre accolades (optimisation)
- ajout de l'option -nocomplain dans le glob de ::init
- outdir initialisé en tant que [file join [pwd]], et non [file join .] dans ::init
1.1 - 2003/03/05
- avec corrections 2003/2/28 de John McGehee, Voom, Inc. www.voom.net :
- correction des noms de fichiers et liens pour supporter
filelist dir != working dir != outdir - aide sur la documentation anglaise
- changement de format de date et de position du message "generated by zdoc"
- ajout de l'option _omitlines
- admettre un caractère blanc avant le mot clé proc et son accolade de fin
Liens
A titre d'exemple, la documentation que Zdoc génère
pour lui même
Un exemple plus conséquent, la doc du toolkit graphique BWidget-1.5
et zdocbw.tcl le programme qui l'a généré (il y a des pièges techniques).
Le domicile de Tcl chez ActiveState
Le portail TCL/tk francophone
Autodoc, le
générateur de documentation de A.Kupries.
Le livre de recettes TCL d'ActiveState,
où l'on peut trouver tcl2html, un convertisseur de tcl en html colorisé, écrit par J. Hobbs
| Fonctions | Description | Valeur par défaut |
| zdoc::init | initialise le générateur et pose ses options par défaut | |
| zdoc::set_filelist { liste de procédures TCL } |
définit les fichiers source à analyser | tous les fichiers *.tcl du répertoire courant |
| zdoc::set_outdir répertoire |
définit le répertoire où Zdoc placera les documentations | sous-répertoire "zdoc" du répertoire courant |
| zdoc::set_procsort alpha | asintext |
définit dans quel ordre les procédures seront triées
asintext signifie : dans le même ordre que celui des programmes source |
alpha |
| zdoc::set_codeprint yes | no |
décide si le code source est inclus dans la documentation | yes |
| zdoc::set_source yes | no |
décide si les programmes sont "sourcés" ou non. Pour faire fonctionner
l'information concernant la liste des arguments et les références croisées,
Zdoc a besoin de sourcer les fichiers à analyser. Mais certains d'entre eux peuvent avoir besoin d'un contexte particulier pour être sourcés. Le choix "no" signifie que l'utilisateur prendra à sa charge cette tâche avant de lancer l'analyse. |
yes |
| zdoc::set_tabsize valeur |
définit la taille des tabulations, en nombre de blancs; c'est utile pour l'impression du code en html: les tabulations sont traduites en blancs. | 4 |
| zdoc::set_omitlines 1 | 0 |
definit si les commentaires de type "#---------------" doivent être affichés (ils ont peu d'intérêt à l'intérieur de tables html). | 1 |
| zdoc::run | lance l'analyse et crée la documentation | |
| zdoc::reset | remet à zéro toutes les structures de stockage de Zdoc, pour se préparer à une nouvelle éxécution. | |
| zdoc::analyze | fait fonctionner l'analyse des sources seule | |
| zdoc::create_doc | fait fonctionner la génération de documentation seule |
| Limites |
| Zdoc est fait pour documenter du code TCL standard réparti en procédures. Il ne fonctionnera peut-être pas sur des constructions sophistiquées, où par exemple le mot-clé "proc" a été remplacé. |
| Zdoc ne documente que les procédures, pas le code situé en dehors. |
L'analyse a besoin de "sourcer" chaque procédure, parce qu'elle utilise les fonctions
"info proc", "info args" et "info body"; ainsi tout code situé en dehors des procédures
sera éxécuté. Et si un contexte particulier est nécessaire au "sourçage" (!) des procédures,
,Zdoc ne l'aura pas. Pour résoudre ceci, utiliser l'option
zdoc::set_source "no" , et sourcez les fichiers par vos propres moyens.
|
| Le mot-clé "proc" et son accolade de fin "}" doivent commencer la ligne, et peuvent être précédés d'un seul blanc. |
| Les références croisées ne seront correctes que si les procédures sont
appelées par un nom identique à celui de leur déclaration. Autrement dit, Zdoc n'active pas les mécanismes de résolution des namespaces; |
| Dans la présentation du code, il y a une mise en couleur syntaxique très limitée:
seules les lignes de commentaires (pleine ligne) sont colorées en vert.
Les mots-clés, variables, noms de procédures ... ne sont pas colorés. Cette limite permet à Zdoc d'être très rapide. |
| Dans la présentation du code, l'indentation ne sera correcte que si l'emploi des tabulations est correcte et l'option set_tabsize bien employée. Une autre méthode consiste à sauvegarder les sources avec des espaces seulement, sans tabulation. |
| Les expressions régulières un peu complexes comme {(^|[^\\])(\$\{[^\}]*\}|\$[a-z0-9_]+(\([^\)]*\))?)} (chères à Jeff), pourraient ne pas être traduites correctement en HTML. |
Remarque concernant les tags
Si un jour Zdoc supporte les tags, ces tags seront les mêmes que dans Autodoc Voir la liste ici.
