# Mkd (Extracteur de documents)/Comprendre les options
## Généralités
### Syntaxe de la ligne de commande

    mkd [-ABCFPSafjlnpstvw] codes chemin_source [chemin_cible]

### Distinguer les options impératives

    Les options de langages en majuscules ABCFPS permettent d'extraire les commentaires codés dans un style de langage générique.
       Le style C par exemple peut décoder le C, c++, c--, c#, CSS, java, javascript, php
    Les options de langage en minuscules l et p
       Ces options dépendent de la compilation CD1, CD2, CD3, CD4, CD5. On peut connaître ces options par la commande mkd \?; options l et p
       Les options -l d'extraction des lignes peuvent être utilisées simultanément;
       les options -l; CD1 et CD2 :'%' '<' et CD3 '!' on peut simultanément extraire le PostsScript, les tags html, les commentaires Fortran 90
       L'option -p d'extraction de blocs permet d'extraire des blocs de chaînes de caractères avec les options CD4=CD5= '\"'. CD1 '(' avec CD5 ')' permet d'extraire des blocs entre parenthèses

### Les options d'extraction et d'ouverture des fichiers anstvw

    L'ouverture des fichiers peut être la création du fichier cible avec l'option -w ou l'ajout avec l'option -a
    Les options nstv sont des options d'extration et d'affichage
       n permet de connaître le numéro de la ligne extraite
       s permet une copie vers la sortie standard (un écran, un fichier, une imprimante, etc.
       t permet d'éliminer les codes d'extraction et les caractères de début et de fin de commentaire
       v mode bavard qui permet d'afficher les conditions d'extraction au terminal ou à la sortie standard

## Exercices élémentaires pour se familiariser avec la commande mkd
#### Commande: mkd -Cwsv H cpp.c

    en mode bavard (-v), vous devez obtenir à la console:
    Le fichier cpp.doc contient:
       Notez qu'avec l'option -v on ne peut pas obtenir un fichier d'entête cpp.h car cette option crée une première ligne avec le nom du fichier.

#### Commande: mkd -Cws H cpp.c

    Sans l'option -v on obtient au terminal:
    Le fichier cpp.doc contient:
       Les options Cw ou Cws ne suffisent pas pas pour créer le fichier d'entête cpp.h car les caractères de commentaires sont recopiés.

#### Commande: mkd -Cwts H cpp.c

Avec l'option -t et sans l'option -v on obtient au terminal:
    Le fichier cpp.doc contient:

#### Commande: mkd -Cwt H cpp.c *.h

    Cette fois le fichier d'entête cpp.h peut être créé correctement et cette syntaxe doit être employée dans les fichiers de commandes, ainsi que dans les Makefiles

#### Résumé des observations sur les options s, t, v

* L'option -v, mode bavard, est inappropriée pour générer des documents imprimables. Elle sert pour la mise au point des fichiers de commandes avec l'option -s
* L'option -s permet la mise au point des fichiers de commandes sans nécessité d'éditer le fichier cible.
* L'option -t est nécessaire pour obtenir des document présentables et imprimables.

#### Créez ou écrasez le fichier cible de l'organigramme cpp.organigramme

* Organigramme simple avec numérotation des lignes:
mkd -Cnstw O cpp.c cpp.organigramme
* Organigramme avec structure avec numérotation des lignes:
mkd -Cnstw OS cpp.c cpp.organigramme
* Organigramme complet avec les tests warnings et numérotation des lignes:
mkd -Cnstw POSTw cpp.c cpp.organigramme

#### Crééz ou écrasez le fichier de documentation logicielle html du fichier cpp.c

* Familiarisation avec l'option -a
mkd -Ctw h cpp.c cpp-documentation_logicielle_codage.html
mkd -Cat d cpp.c cpp-documentation_logicielle_codage.html
mkd -Cat f cpp.c cpp-documentation_logicielle_codage.html
* Solution globale pour un seul fichier:
mkd -Cat hdf cpp,c cpp-documentation_logicielle_codage.html

## Notes et références

Notez que:
    Les options impératives -ABCFPS sont incompatibles entre elles et avec l'option -f (find - trouver le style du langage de programmation).
    Les options -a (append - ajouter) et -w (overwrite - écraser) sont difficilement compatibles ...