# Auto-éditer un wikilivre/Auto-référencer/Description du projet
## Pourquoi avoir choisi le shell bash ?

    Les codes shells sont les plus proches du code machine, ils sont donc ultra-rapides, même sur de très vieux micro-ordinateurs, ils sont disponibles pour tous les systèmes d'exploitation, gratuits, efficaces, parfois difficiles à mettre en œuvre ou à comprendre car les règles sont strictes et les différentes versions diffèrent quelque peu selon que l'on choisit les versions posix ou gnu ou autres shells : csh, tcsh, ksh, etc.

## Synopsis de ce projet

    Examiner le projet en préétude, avec le LivreTest Ce projet doit permettre de créer la page Annexe des livres de wikilivres, avec :
* Les références.
* La liste des articles avec le lien, la licence associée, ainsi que les noms des contributeurs.
* La liste des illustrations avec le lien, la licence associée, ainsi que les noms des auteurs.
* La licence de la page principale ou de sa version imprimable.

## Outils de programmation

* Le shell BASH : Le programme sera écrit en code bash (Bourne again shell) ou Bourne_shell(bsh ou sh), sous linux de préférence. Il existe des versions de bash pour d'autres systèmes d'exploitation.
* Le système d'exploitation : Préférez Ubuntu pour avoir un accès direct aux paquets de mkd et ses applications dérivées, par le serveur sécurisé launchpad
* Le logiciel mkd : extracteur de documents. Il est recommandé de l'installer dès que possible..
* En complément de mkd, le shell mkddocu extracteur de documents écrit en bash. Avec l'option -s il extrait toutes les chaînes de caractères pré-encodées pour les traductions avec gettext.
       À défaut de mkd vous pouvez compiler mkdcpp

## Directives de programmation

    Les modules du programme devront être indépendants et éprouvés séparément avant d'être intégrés dans le programme principal. Pour ce faire on écrira un module d'entête header.sh qui servira aux tests de chaque module. Ce module d'entête fonctionnera comme les module "include" des langages C, c++ etc. Ce sera le fichier d'entête de chaque module inclus avec la commande shell source. Exemple : source header.sh

## Utiliser les codes d'extraction suivants pour les logiciels de documentation

    #H pour les commentaires d'entête. On va les retrouver dans toutes les commandes du projet #O pour les commentaires d'organigramme. #P pour les commentaires destinés aux Programmeurs. #S pour les commentaires de structure. #T pour les commentaire de tests, ce sont souvent des points d'arrêt pour la mise au point. #w pour des commentaires d'attention, de mise en garde.

## Internationalisation des messages

    Tous le messages affichés avec la commande echo devront être traduits en anglais, langue de base pour les traductions, puis intégrés dans le programme final. Un fichier .pot sera créé pour les messages puis traduits à l'aide de Poedit et compilés sous forme de fichier .mo copiés dans les répertoires de traduction habituels.

## Internationalisation des manuels

* Un manuel man(1) unix sera écrit en français puis traduit en anglais.
* Un manuel html sera écrit en français et en anglais pour être lus à l'aide de navigateurs internet.

## Références

   * ↑ http://pwet.fr/man/linux/commandes/posix/
   * ↑ https://korben.info/installer-shell-bash-linux-windows-10.html
   * ↑ Mkd_(Extracteur_de_documents)/La_commande_mkd#Disponibilité
   * ↑ Mkd_(Extracteur_de_documents)/Ajouter_des_modules#
   * ↑ https://fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/mkdcpp