Projet mkd

De Wiki EELL.

(Différences entre les versions)
m (Exemple de manuel généré par mkd : ajouté en anglais)
m (Exemple de manuel généré par mkd : provisoire)
Ligne 130 : Ligne 130 :
       mkd [-ABCFPSafjlpstw] <u>codes</u> <u>chemin_source</u> [chemin_cible]<br><br>
       mkd [-ABCFPSafjlpstw] <u>codes</u> <u>chemin_source</u> [chemin_cible]<br><br>
  '''DESCRIPTION'''
  '''DESCRIPTION'''
-
       mkd    Des commentaires sélectionnes (ou tous  les  commentaires)  sont
+
       <u>mkd</u>   Des commentaires sélectionnes (ou tous  les  commentaires)  sont
               extraits des programmes sources: 'chemin_source', et sont copiés
               extraits des programmes sources: 'chemin_source', et sont copiés
               dans un fichier documentaire: 'chemin_cible', afin  de  produire
               dans un fichier documentaire: 'chemin_cible', afin  de  produire
Ligne 139 : Ligne 139 :
               respectivement  'O',  'S',  'P',  'T'  et  'www'  juste après le
               respectivement  'O',  'S',  'P',  'T'  et  'www'  juste après le
               caractère début de commentaire.<br>
               caractère début de commentaire.<br>
-
       codes  Les commentaires commençant par ces caractères sont extraits  du
+
       <u>codes</u> Les commentaires commençant par ces caractères sont extraits  du
               programme  source  et sont ajoutés au fichier documentaire. Tous
               programme  source  et sont ajoutés au fichier documentaire. Tous
               les caractères ASCII peuvent servir a  coder  les  commentaires,
               les caractères ASCII peuvent servir a  coder  les  commentaires,
Ligne 146 : Ligne 146 :
               extrait  tous  les  commentaires.  (Voir  aussi  option t et les
               extrait  tous  les  commentaires.  (Voir  aussi  option t et les
               exemples).<br>
               exemples).<br>
-
       chemin_source
+
       <u>chemin_source</u>
               Chemin du fichier source (ou fichier projet: option j)<br>
               Chemin du fichier source (ou fichier projet: option j)<br>
-
       path_target
+
       <u>chemin_cible</u>
               Chemin du fichier documentaire. Par défaut chemin_cible est  une
               Chemin du fichier documentaire. Par défaut chemin_cible est  une
               copie  de  chemin_source  auquel  on  remplace le suffixe par le
               copie  de  chemin_source  auquel  on  remplace le suffixe par le
               suffixe ´.doc´.<br><br>
               suffixe ´.doc´.<br><br>
  '''OPTIONS'''
  '''OPTIONS'''
-
       Options en majuscules:
+
       <u>Options en majuscules:</u>
               Restreind l'extraction des commentaires a un style de langage:<br>
               Restreind l'extraction des commentaires a un style de langage:<br>
       -A    extrait le style Assembleur (  ;    -> fin de ligne)<br>
       -A    extrait le style Assembleur (  ;    -> fin de ligne)<br>
Ligne 161 : Ligne 161 :
       -P    style Pascal              (  {    ->      }    )<br>
       -P    style Pascal              (  {    ->      }    )<br>
       -S    style Shell ou ratfor      (  #    -> fin de ligne)<br>
       -S    style Shell ou ratfor      (  #    -> fin de ligne)<br>
-
       options en minuscules:<br>
+
       <u>options en minuscules:</u><br>
       -a    (append)  Ajoute  a  la  suite  du  fichier  documentaire
       -a    (append)  Ajoute  a  la  suite  du  fichier  documentaire
               ´chemin_cible´.<br>
               ´chemin_cible´.<br>
Ligne 185 : Ligne 185 :
       -w    (overwrite) Réécrit le fichier documentaire.<br><br>
       -w    (overwrite) Réécrit le fichier documentaire.<br><br>
  '''EXEMPLES'''
  '''EXEMPLES'''
-
       avec une commande Cshell :<br>
+
       <u>avec une commande Cshell :</u><br>
       mkd -Ct F manual mkd.1 | gzip -f mkd.1.gz
       mkd -Ct F manual mkd.1 | gzip -f mkd.1.gz
               (Produit un manuel UNIX en francais. au format UTF-8  depuis  la
               (Produit un manuel UNIX en francais. au format UTF-8  depuis  la
Ligne 233 : Ligne 233 :
{{Boîte déroulante/début|titre=MKD(1) (en)}}
{{Boîte déroulante/début|titre=MKD(1) (en)}}
 +
Ligne 240 : Ligne 241 :
NAME
NAME
-
       mkd  -  make  documentation.  Extrait des informations codées dans les
+
       mkd  -  make  documentation.  Extract coded informations from programs
-
       programmes sources, et produit une documentation spécifique.
+
       sources and product specific documentation.
SYNOPSIS
SYNOPSIS
-
       mkd [-ABCFPSafjlpstw] codes chemin_source [chemin_cible]
+
       mkd [-ABCFPSafjlpstw] char_codes path_source [path_target]
DESCRIPTION
DESCRIPTION
-
       mkd   Des commentaires sélectionnes (ou tous  les  commentaires) sont
+
       mkd
-
               extraits des programmes sources: 'chemin_source', et sont copiés
+
              Selected comments (or all comments) are extracted from programs
-
               dans un fichier documentaire: 'chemin_cible', afin de produire
+
               sources and product specific documentation to target file. Usual
-
              une documentation spécifique  .  Habituellement les fichiers
+
               target files are  Organigramsor Structure of programs, or
-
               documentaires sont des  Organigrammes,   des  Structures  de
+
               comments for Programmers, Warnings and Tests points .... Coded
-
              programme,  des  commentaires  pour  Programmeurs, des points de
+
               informations are respectively 'O', 'S', 'P', 'www', ant 'T' just
-
              Test et 'warnings' .... Les  codes  de  sélection  peuvent  être
+
               after the comment character.
-
               respectivement  'O', 'S', 'P', 'T' et  'www' juste après le
+
-
               caractère début de commentaire.
+
-
       codes  Les commentaires commençant par ces caractères sont extraits  du
+
       char_codes
-
               programme source  et sont ajoutés au fichier documentaire. Tous
+
               All ASCIIThe comment are extracted if the comment begin with
-
              les caractères ASCII peuvent servir a  coder  les commentaires,
+
               this character. With two star mkd extract all comments.
-
               toutefois  on  utilise habituellement des caractères majuscules,
+
-
              sauf w pour 'warning'. Avec deux étoiles en paramètre codes, mkd
+
-
              extrait  tous  les  commentaires.  (Voir  aussi  option t et les
+
-
              exemples).
+
-
       chemin_source
+
       path_source
-
               Chemin du fichier source (ou fichier projet: option j)
+
               Path source file (or project file: option j ).
       path_target
       path_target
-
               Chemin du fichier documentaire. Par défaut chemin_cible est une
+
               Path target file. Default, path target is idendical to source
-
              copie  de  chemin_source  auquel on remplace le suffixe par le
+
               file with extension ´.doc´ .
-
               suffixe ´.doc´.
+
OPTIONS
OPTIONS
-
       Options en majuscules:
+
       Uppercase options:
-
               Restreind l'extraction des commentaires a un style de langage:
+
               restrict comments to one specific language:
-
       -A    extrait le style Assembleur (   ;   -> fin de ligne)
+
       -A    extract Assembler style comments ( ; to end of line )
-
       -B    style Basic               (REM ou ' -> fin de ligne)
+
       -B    Basic style                (REM or ' -> end of line)
-
       -C    style C                    (  / *    ->      * /   )
+
       -C    C style                     (  / *    ->      * /   )
-
       -F    style Fortran             (c,C ou * -> fin de ligne)
+
       -F    Fortran style              (c,C or * -> end of line)
-
       -P    style Pascal              (  {    ->      }     )
+
       -P    Pascal style               (  {    ->      }   )
-
       -S    style Shell ou ratfor     (  #    -> fin de ligne)
+
       -S    Shell or ratfor style      (  #    -> end of line)
-
       options en minuscules:
+
       Lowercase options:
-
       -a    (append)  Ajoute  a  la  suite  du  fichier  documentaire
+
       -a    append to current target file.
-
              ´chemin_cible´.
+
-
       -f    (find)  Trouve  le  langage  du  fichier  source par analyse du
+
       -f    find source file language. (useful with project file)
-
              suffixe. (s´utilise généralement avec un fichier projet)
+
-
       -j    (project) S´utilise avec un fichier projet composé de sources en
+
       -j    used if source file is a project file.
-
              langages différents.
+
-
       -l    (lignes) Extrait les lignes commençant par les caractères CD1 ou
+
       -l    lines  (extract lines delimited by CD1 or CD2 in first colomn or
-
               CD2 ou CD3 et suivis par un des caractères codes, le commentaire
+
               CD3 in line, and next New-Line. CD1CD2,  CD3  are compilable
-
              se  termine  par  la lecture du caractère ´New Line´. CD1 et CD2
+
               options in version.h from mkd distribution)
-
              doivent être placés en 1ère colonne, alors  que CD3  peut être
+
-
               placé  en  milieu  de  ligne. CD1, CD2, CD3, sont des options de
+
-
              compilation dans le fichier version.h de la distribution source
+
-
              de mkd.
+
-
       -p    (page) Extrait le texte débutant par le caractère CD4 suivi d´un
+
       -p    page  (extract text delimited by CD4 and CD5 -begin with CD4 and
-
               des caractères codes, l'extraction  du  commentaire  se  termine
+
               end with CD5-. CD4, CD5 are compilable options in version.h from
-
              avec la lecture du caractère CD5. CD4 et CD5 sont des options de
+
               mkd distribution)
-
              compilation dans le fichier version.h de la distribution  source
+
-
               de mkd.
+
-
       -s    (screen verbose) Duplique  les  commentaires  extraits  sur la
+
       -s    add to screen. (verbose)
-
              sortie standard.
+
-
       -t    (text) Ne copie que le commentaire.
+
       -t    text (copy only the comment).
-
       -w    (overwrite) Réécrit le fichier documentaire.
+
       -w    overwrite the current target file.
-
EXEMPLES
+
EXAMPLES
-
       avec une commande Cshell :
+
       with Cshell command:
       mkd -Ct F manual mkd.1 | gzip -f mkd.1.gz
       mkd -Ct F manual mkd.1 | gzip -f mkd.1.gz
-
               (Produit un manuel UNIX en francais. au format UTF-8  depuis  la
+
               Product UNIX manual for french users.
-
              version  12.03)  C: pour décoder le fichier en langage C, s:avec
+
-
              visualisation à  l´  écran,  t:ne  copier  que  le  commentaire,
+
-
              F:sélectionner les commentaires debutants par F.
+
       mkd -Ct M manual mkd.1 | gzip -f mkd.1.gz
       mkd -Ct M manual mkd.1 | gzip -f mkd.1.gz
-
               (Produit  un  manuel  UNIX standard  en anglais au format UTF-8
+
               Product UNIX manual.
-
              depuis la version 12.03)
+
       mkd -Csl '*Sied' mkd3.c  '*.verif_struct'
       mkd -Csl '*Sied' mkd3.c  '*.verif_struct'
-
               (avec les options de compilation CD1 ou CD2 = '#', produit une
+
               Product documentation  with structure of  program, includes,
-
              documentation avec la structure du programme, avec les: include,
+
               defines, ifdef else and  endif compile  options,  to verify
-
               define, ifdef, else, et endif, des options de compilations afin
+
               structure  of  program.   (with compilable options  CD1='#' or
-
               de  vérifier  la  structure   du programme.) C:décoder les
+
               CD2='#' in version.h from mkd distribution).
-
              commentaires style C, s:vérifier à l'écran, l:décoder  egalement
+
-
               des  lignes  commencant  par les caractères CD1 ou CD2 ou CD3 et
+
-
              suivis des char_codes:*Sied.
+
       mkd -jfsl '*OHie' mkd_docu.prj mkd.org
       mkd -jfsl '*OHie' mkd_docu.prj mkd.org
-
               (avec les options de compilation CD1 ou CD2 =  '#',  produit  un
+
               Product organigram. Comment begin with *,O,H, and sources files
-
              organigramme. Les  commentaires  commencent  par  *,O,H, et les
+
               are itemize in project file.  (with compilable options CD1='#'
-
              fichiers source sont décrits dans le fichier projet.) f:trouver
+
               or CD2='#').
-
               le style de langage, j:le fichier source est un fichier projet
+
-
               qui contient la liste des fichiers a documenter.
+
       mkd -l '*ide' mkd3.c '*.id_ei'
       mkd -l '*ide' mkd3.c '*.id_ei'
-
               (avec les options de compilation CD1='#' ou CD2='#', décode  les
+
               (with compilable options CD1='#' or CD2='#').
-
              #includes,  #define,  #ifdef,  #else,  #endif  des  options  de
+
-
              compilation en C ).
+
       mkd -pj '**' mkd_docu.prj mkd.strings
       mkd -pj '**' mkd_docu.prj mkd.strings
-
               (avec les options de  compilation  CD4=CD5=´\"´,  extrait  les
+
               Extract strings from program. (messages are printed to stdout).
-
              chaînes  de  caractères  du  programme.  (les  commentaires sont
+
              (sources  files are itemize in project file, and with compilable
-
              transmis a la sortie standard).
+
              options CD4=CD5=´\"´).
-
 
+
-
      mkd (sans argument)
+
-
              Génère une erreur et envoie la  syntaxe  au  terminal  avec  les
+
-
              caractères compilés pour les options l et p.
+
 +
      mkd (without argument)
 +
              Cause any  error  and  syntax  are  transmit  to  terminal  with
 +
              caracters compiled to use options l and p.
AUTHOR
AUTHOR
-
       JP LOUYOT, Clara JIMENEZ
+
       JP LOUYOT, Clara JIMENEZ.
       http://edeulo.free.fr/wiki/index.php/Projet_mkd/Compilations_UNIX-LINUX
       http://edeulo.free.fr/wiki/index.php/Projet_mkd/Compilations_UNIX-LINUX
NOTES
NOTES
-
       Cette  version 12.03.0 ne lit et ne décode pas les fichier inclus par
+
       No match, for read and decode include files from sources files in this
-
      '#include' dans les sources.
+
      Release 12.03.0
Ligne 378 : Ligne 350 :
       Bugs Report: http://edeulo.free.fr/phpBB3/index.php
       Bugs Report: http://edeulo.free.fr/phpBB3/index.php
-
       Générateur de documents mkd
+
       Générateur de documents mkd
Ligne 384 : Ligne 356 :
-
                                 29 Mars 2012                           MKD(1)
+
                                 29 March 2012                         MKD(1)
 +
 
   
   
{{Boîte déroulante/fin}}
{{Boîte déroulante/fin}}

Version du 6 avril 2012 à 09:37

Retour au portail mkd

Dossier extractdoc du 04/12/2009 mis à jour 05/04/2012

Sommaire

A QUOI SERVENT MKD ET SES DÉRIVÉS ?

mkd pour consoles ou terminaux sert essentiellement à l'installation de logiciels.
mkd génère automatiquement la documentation ou/et le manuel qui correspondent exactement aux fichiers actualisés du logiciel.
On se sert également de cette application dans les 'Makefile' de compilation des modules d'un projet : mkd extrait les fichiers d'entête des fonctions mises à jour.
mkdcpp est une version restreinte de mkd aux langages du style c++, C , c++, php.
mkdasm est une version restreinte de mkd aux langages de type assembleur.
Ces deux dernières applications ont été réalisées pour effectuer des tests sur les modules cpp et asm. Elles n'ont pas été prévues pour être utilisées comme mkd qui est la seule application réellement intéressante dans les projets.

Le fenêtrage est à la mode. Des versions fenêtrées, non intégrables aux fichiers d'installation 'install' et 'Makefile' sont en cours d'écriture à titre expérimental. En janvier 2012 Clara nous a proposé l'application expérimentale mkdcppw qui est la version fenêtrée de mkdcpp.

LE PROJET:

Ce projet reprend tout ou partie du projet MakeDoc (ou mkdoc ou encore mkd) de l'ex Centre d'Electronique de Montpellier, Université Montpellier II

Ce projet resté sans licence est maintenant repris sous licence libre européenne: European Union Public Licence (EUPL) par l' EELL

Ce logiciel doit évidemment, vu sa conception sous logiciel libre, rester libre de droit, gratuit, et ne peut en aucun cas faire l'objet d'une prise de brevet, d'une transaction ou d'une copie dans un but commercial, cependant le "copyleft" est autorisé et bienvenu.

Son but est d'être polyvalent, aussi universel que possible. Il doit permettre de générer de multiples documents à partir de commentaires précodés dans des fichiers de sources eux aussi multiples. (par exemple: des compilation avec des fichiers cpp + assembleur + fichiers texte etc.). Les documents habituels sont:

   Documentation sur l'architecture et la conception.
   Documentation technique: d'exploitation, matérielle, programmeurs.
   Documentation utilisateurs: bibliothèque logicielle, tutoriel.
   Documentation de marketing.

L'extraction permet en un tour de main, d'assurer le contrôle rapide et la mise à jour de l'ensemble des documents précités.

LE NOM:

Le nom choisi est mkd par le fait qu'en 2010 les noms mkdoc, makeDoc et makeDocu ont, entre temps, été pris par d'autres logiciels.

Ce nom, pour les besoins pourra avoir des extensions comme:

  • mkdasm pour décoder la documentation de style l'assembleur, équivalent à mkd -A, où mkd fait appel au module asm_
  • mkdcpp ou mkdphp pour le décodage de style C++ ou PHP, équivalent à mkd -c mais plus explicite, où mkd fait appel au module cpp_ etc.

Les extensions asm, cpp, php, etc. liés à mkd permettent d'accéder directement aux modules asm_, cpp_, etc. (php est équivalent à cpp pour le décodage).

En début 2012 cette idée de créer des applications comme mkdphp et similaires est abandonnée. Ces applications n'apportent rien de nouveau. Une application fenêtrée de mkdcpp (mkdcppw) en cependant en cours d'évaluation.

LA COMPILATION, LES PLATEFORMES:

La compilation devra être validée sous WINDOWS et sous UNIX/LINUX, voire sous MAC pour les processeurs 32 et 64 bits. La version 16 bits devra être préservée et pourra être mise à jour.

L'épreuve finale d'intégration pourra se faire au travers de fichiers shells (.bat ou .bash).

On pourra multiplier le nombre des modules au gré de l'évolution des langages et le cas échéant on pourra créer des libraires si le nombre des modules devient trop importants (.dll sous Windows ou .so sous UNIX/LINUX). Dans ce cas il faudra modifier les paramètres de transmission aux modules afin de récupérer les options. (Les variables d'options sont globales dans les versions actuelles)

Détails concernant les anciennes versions (antérieures à 3.22):

Contrairement aux versions précédentes, qui incluaient chaque fichier dans une seule compilation, tous les modules seront compilés séparéments et pourront faire l'objet d'épreuves unitaires de modules ou d'épreuves spécifiques lors de l'intégration.

Les compilations avec des options particulières des versions anciennes seront reprises dans des modules particuliers (anciennes compilations avec les options ligne et page).
Exemple mkdstring pour extraire les chaines de caractères, mkdpostscript pour extraire les commentaires postscript etc. feront l'objet de nouveaux modules et on introduira un nouveau code de commande pour remplacer l'option de compilation FULL_LINE (si nécessaire).

Lignes de commande console du programme exécutable:

 Ligne de commandes traditionnelle:
 mkd [--Options] [-5 caractères à décoder] fichier_source [fichier_destinataire]
Lignes de commandes spéciales: mkdxx..xx [--Options] [-5 caractères max à décoder] fichier_source [fichier_destinataire] où l'option 'f' n'a pas de sens.
Par défaut le fichier_destinataire prendra le nom du fichier source suivi de l'extension .txt

Options: a, f, j, n, s, t, v, w, langage à décoder

 a, f, j, v, w sont des options particulières au module de commande (main mkd)
 n, s, t sont des options destinées aux modules (asm_, cpp_, fortran_, etc.)
a, ajouter à un fichier destinataire (append) f, trouver le style de commentaire à décoder en fonction de son extension (find), pourra être affiné par un recherche à l'intérieur des fichiers. j, le fichier source est un fichier de projet, se combine avec l'optiopn 'f' s'il composé de fichiers sources différents. n, fait précéder le commentaire du numéro de ligne sur les premières colonnes. s, ajouter les commentaires décodés à l'écran. (Permet parfois des ajouts SHELL avec les redirections > et >>). t, ne copie que le texte. (copy text only) contrarie certaines options contrariantes comme le mode bavard dans l'écriture de la documentation. v, mode bavard (verbose) w, crée ou recrée le fichier destinataire de même nom (overwrite)
langage à décoder: exemples : C pour style C, (C++ ou PHP), F pour style FORTRAN, P pour style PASCAL, etc. Le style des langages compilés devra être précisé par la commande mkd --help --? ou dans la documentation utilisateur mkd.1 sous UNIX/LINUX

Caractères à décoder:
Tous caractères alphanumériques et caractères spéciaux ** (5 caractères maximum)


LE DROIT DE COPIE:

© EELL, Éditeurs Européens de Logiciels Libres, 20074
Contact: JPL EELL

Concédée sous licence EUPL, version 1.1 ou – dès leur approbation par la Commission européenne - versions ultérieures de l’EUPL (la «Licence»). Vous ne pouvez utiliser la présente œuvre que conformément à la Licence. Vous pouvez obtenir une copie de la Licence à l’adresse suivante:

http://ec.europa.eu/idabc/eupl5 ou sur ce site en version française Licence EUPL V1.1

Sauf obligation légale ou contractuelle écrite, le logiciel distribué sous la Licence est distribué «en l’état», SANS GARANTIES OU CONDITIONS QUELLES QU’ELLES SOIENT, expresses ou implicites. Consultez la Licence pour les autorisations et les restrictions linguistiques spécifiques relevant de la Licence.==ÉVOLUTION DU PROJET:==

Les bases précisées dans ce document sont susceptibles d'évoluer en fonction des besoins des programmeurs ou autres professions intéressées. Dans un premier temps on reprendra les modules définis dans les versions précédentes.

En mars 2010 le module cpp_ a été ajouté dans la version 10.03 pour extraire les documents de style C++, PHP, etc.

Les fichiers documentaires et de gestion des erreurs pour les différentes langues devront, si possible, être rapidement proposés au moins en français et anglais, puis dans les différentes langues européennes, sans oublier les autres langues évidemment.

Jusqu'en 2012 nous nous contentions des caractères ASCII étendus. Les caractères entrés en programmation (au clavier) ne nous ont pas obligés à reconcevoir fonamentalement les différents modules.
Les documents, aujourd'hui peuvent être écrits dans des langues très différentes et les codes utf8 ne suffisent pas. Il faut envisager de revoir nos souces. Cette question est d'actualité !

Exemple de manuel généré par mkd

Exemple de pseudocode généré par mkd

Outils personnels