Annexes de wikibooks
Avant-propos
Pourquoi titrer "Annexes_de_wikibooks" plutôt que "Annexes_de_wikilivres" sur un site en français ?
 Wikilivres peut désigner :
 * Wikibooks, "un projet de la "Wikimedia Foundation", aussi connu en français sous le pseudo « Wikilivres »"
 * Wikilivres, "un site web hébergeant des livres passés dans le domaine public (propriété intellectuelle) selon la loi canadienne."
Pourquoi « vouloir » créer une page "Annexe" aux livres de Wikibooks ?
 * Cette page "Annexe" n'a d'intérêt que pour les livres publiés, elle est automatiquement créée lors des commandes à PediaPress.
 * Éditer et imprimer un livre par ses propres moyens peut avoir plusieurs raisons: être perfectionniste ou/et être déçu par la recomposition automatique des pages par PediaPress
= Sommaire =
= Genèse =
C'est arrivé comme ça.
Créer une application pour générer automatiquement la page "Annexe" des livres de Wikibooks, semblable à celle produite par PediaPress.PediaPress utilise une application spéciale accessible par les utilisateurs sur le panneau gauche de l'éditeur: 
L'idée est d'utiliser le contenu édité de cette compilation.
La page de compilation sur le site français a cette forme 
Pour créer le livre il faut lancer un terminal et créer un répertoire que l'on a appelé "Annexe" dans notre expérience. Ensuite il faut créer l'application qui va décortiquer les sous-pages du livre pour en extraire tous les renseignements utiles à l'édition de l'Annexe du livre.
Wikibooks se veut accessible à tous. Le langage de programmation que nous avons choisi est le Bash sous linux ubuntu.
Linux ubuntu est installable en auto-démarrage (autoboot) sur une clé usb.
Tests de faisabilité ( et tests des premiers modules ).
Auto référencer
Auto référencer Version imprimable (36 pages)
= Développement des scripts en =
Premier programme ( Annexer ).
Version imprimable.
Annexer (92 pages)
Codes de l'application en français avec les manuels.
Auto-éditer_un_wikilivre#codes_de_l'application_en_français_avec_les_manuels
Copier les codes sources avec la version imprimable.
Auto-éditer_un_wikilivre#Copier_les_codes_sources_avec_la_version_imprimable
= Développement international des scripts =
Deuxième programme ( Annexer / Add_appendix ).
Installations.
Désinstallation.
"Note: La désinstallation des paquets est incluse dans les paquet et ne nécessite pas une désinstallation séparée"
 if [ /usr/share/man/fr.UTF-8/man1/annex.1.gz -ot /usr/share/man/fr.UTF-8/man1/annexer.1.gz ]; then sudo rm /usr/share/man/fr.UTF-8/man1/annex.1.gz; fi
 if test -e /usr/share/man/fr.UTF-8/man1/annexer.1.gz; then sudo rm /usr/share/man/fr.UTF-8/man1/annexer.1.gz; fi
 gzip ~/Annexer
 rm -rf ~/Annexer
 if test -e /usr/share/man/fr.UTF-8/man1/annexer.1.gz; then sudo rm /usr/share/man/fr.UTF-8/man1/annexer.1.gz; fi
 if test -e /usr/share/man/fr.UTF-8/man1/annex.1.gz; then sudo rm /usr/share/man/fr.UTF-8/man1/annex.1.gz; fi
 if test -e /usr/share/man/man1/annex.1.gz; then sudo rm /usr/share/man/man1/annex.1.gz; fi
 gzip ~/Add_Appendix
 rm -rf ~/Add_appendix
Installation par paquets.
= Notion d'empaquetage =
Exemple avec le paquet "mkaddappendixdocu.deb".
Généralités sur l'empaquetage Linux-ubuntu.
Structure de l'archive bêta mkaddapendixdocu.
 install -d ~/packaging/addappendix/mkaddappendixdocu; cd ~/packaging/addappendix; ls 
mkaddapendixdocu.
VERSION=210925
if test -d ./mkaddappendixdocu; then echo "Create Add_appendix documentation"; else echo "Directory ./mkaddappendixdocu not found exit -1"; exit -1; fi
install -d ./maintainers-documentation/src
if test -d /usr/local/src/Add_appendix
then
 if test -e /usr/local/src/Add_appendix/annex.sh; then cp /usr/local/src/Add_appendix/*.sh ./maintainers-documentation/src/.; else echo "annex.sh not found in /usr/local/src/Add_appendix exit -1"; exit -1; fi
else echo "/usr/local/src/Add_appendix not found exit -1"
fi
ls -1 ./maintainers-documentation/src/*.sh > ./maintainers-documentation/addappendixdocumentation.prj
echo "Make maintainers-documentation/sources-headers.txt"
mkd -Sjwt H ./maintainers-documentation/addappendixdocumentation.prj ./maintainers-documentation/sources-Headers.txt
echo "Make maintainers-documentation/sources-Documentation.txt"
mkd -Sjwt D ./maintainers-documentation/addappendixdocumentation.prj ./maintainers-documentation/sources-Documentation.txt
echo "Make maintainers-documentation/sources-Organization_charts.txt"
mkd -Sjnwt O ./maintainers-documentation/addappendixdocumentation.prj ./maintainers-documentation/sources-Organization_charts.txt
echo "Make maintainers-documentation/sources-Programmers-doc.txt"
mkd -Sjnwt P ./maintainers-documentation/addappendixdocumentation.prj ./maintainers-documentation/sources-Programmers-doc.txt
echo "Make maintainers-documentation/sources-Programmers-warnings-doc.txt"
mkd -Sjnwt w ./maintainers-documentation/addappendixdocumentation.prj ./maintainers-documentation/sources-Programmers-warnings-doc.txt
echo " mkaddappendidocu result of test:"
ls -l ./maintainers-documentation
changelog.debian.
 echo "First version 1.0 (2021-09-21)" > ./mkaddappendixdocu/usr/share/doc/changelog.debian
copyright.
 echo "First version 1.0 (2021-09-21) (c) Demo <demo.com>" > ./mkaddappendixdocu/usr/share/doc/copyright
changelog.
 echo "First version 1.0 (2021-09-21)" > ./mkaddappendixdocu/usr/share/doc/changelog
README.
 echo "This demo command is writed to create a self debian package." > ./mkaddappendixdocu/usr/share/doc/README
postrm.
 echo "#!/bin/bash" > $HOME/mkaddappendixdocu/DEBIAN/postrm
 echo 'echo " If this message appears then mkAdd_appendix package is removed "' » ./mkaddappendixdocu/DEBIAN/postrm
 echo » $HOME/mkaddappendixdocu/DEBIAN/postrm
control.
 echo "Package: mkaddappendixdocu" > ./mkaddappendixdocu/DEBIAN/control
 echo "Version: 1.0" » ./mkaddappendixdocu/DEBIAN/control
 echo "Section: utils" » ./mkaddappendixdocu/DEBIAN/control
 echo "Priority: optional" » ./mkaddappendixdocu/DEBIAN/control
 echo "architecture: all" » ./mkaddappendixdocu/DEBIAN/control
 echo "Depends: bash, mkd, shc" » ./mkaddappendixdocu/DEBIAN/control
 echo "Maintainer: Wikibooks user:Goelette_Cardabela" » ./mkaddappendixdocu/DEBIAN/control
 echo "Description: Install Add_appendix program to create Appendix or Annexe for wikibooks." » ./mkaddappendixdocu/DEBIAN/control
 echo "Homepage: https://fr.wikibooks.org/wiki/Annexes_de_wikibooks" » ./mkaddappendixdocu/DEBIAN/control
 echo » ./mkaddappendixdocu/DEBIAN/control
postinst.
 echo '#!/bin/bash' > ./mkaddappendixdocu/DEBIAN/postinst
 echo 'echo " Use mkaddappendixdocu to create the Add_appendix documentation "' » ./mkaddappendixdocu/DEBIAN/postinst
 echo 'echo " Type mkaddappendixdocu in your terminal or konsole "' » ./mkaddappendixdocu/DEBIAN/postinst
 echo' echo " See maintainers-documentation in your home directory "' » ./mkaddappendixdocu/DEBIAN/postinst
./empaqueter.
 echo "#!/bin/bash" > ./empaqueter
 echo "fakeroot chmod 755 mkaddappendixdocu/usr/local/bin/mkaddappendixdocu" » ./empaqueter
 echo "fakeroot chmod 755 mkAdd_appendix/DEBIAN/post*" » ./empaqueter
 echo "#fakeroot chmod 755 mkAdd_appendix/DEBIAN/pre*" » ./empaqueter; - preinst n'est pas utilisé ici
 echo "fakeroot rm *.deb" » ./empaqueter
 echo "fakeroot dpkg-deb --build mkAdd_appendix" » ./empaqueter
./installer.
 echo "#!/bin/bash" > ./installer
 echo "sudo dpkg -i mkaddappendixdocu.deb" » ./installer
./desinstaller.
 echo "#!/bin/bash" > ./desinstaller
 echo "sudo dpkg --remove mkAdd_appendix" » ./desinstaller
 echo "ou:" » ./desinstaller
 echo "sudo dpkg -- purge mkAdd_appendix" » ./desinstaller
./KONSOLE.
 echo "#!/bin/bash" > ./KONSOLE
 echo 'echo -e "\033[1;32mclick on New-line to start the Konsole\033[0m"' » ./KONSOLE
 echo 'echo -e "\033[1;32mclick on Ctrl-C to exit the Konsole\033[0m"' » ./KONSOLE
 echo "tput sgr0 # Reset text attributes to normal without clear" » ./KONSOLE
 echo "read pwd" » ./KONSOLE
 echo "pwd" » ./KONSOLE
 echo "echo $pwd" » ./KONSOLE
 echo "tput sgr0 # Reset text attributes to normal without clear" » ./KONSOLE
 echo "/usr/bin/konsole background-mode --workdir pwd dir" » ./KONSOLE
 echo "read" » ./KONSOLE
Création de la structure.
add_sclic.sh,
add_sclipco.sh,
add_sclipwb.sh,
add_sclt.sh,
annex.sh,
download.sh,
en_sclic.inc.sh,
en_sclipco.inc.sh,
en_sclipwb.inc.sh,
en_sclt.inc.sh,
fr_sclic.inc.sh,
fr_sclipco.inc.sh,
fr_sclipwb.inc.sh,
fr_sclt.inc.sh,
header.inc.sh,
list.sh,
pre-annex.sh,
scli.inc.sh
script pour faciliter la création de mk-addapendix-docu.bash.
clear
VERSION=210927
cd ~/packaging/addappendix
echo "Directories creation for package:"
mkdir ./mkaddappendixdocu
mkdir ./mkaddappendixdocu/usr
mkdir ./mkaddappendixdocu/usr/share
mkdir ./mkaddappendixdocu/usr/share/doc
echo "Creation of changelog.debian."
echo "First version 1.0 (2021-09-21)" > ./mkaddappendixdocu/usr/share/doc/changelog.debian
echo » ./mkaddappendixdocu/share/doc/changelog.debian
 echo "Control: ";cat ./mkaddappendixdocu/share/doc/changelog.debian
 echo "----"
echo "Creation of copyright."
echo "First version 1.0 (2021-09-21) (c) user:Goelette_Cardabela in wikibooks" > ./mkaddappendixdocu/share/doc/copyright
echo » ./mkaddappendixdocu/share/doc/copyright
 echo "Control: ";cat ./mkaddappendixdocu/share/doc/copyright
 echo "----"
echo "Creation of changelog."
echo "First version 1.0 (2021-09-21)" > ./mkaddappendixdocu/share/doc/changelog
echo » ./mkaddappendixdocu/share/doc/changelog
 echo "Control: ";cat ./mkaddappendixdocu/share/doc/changelog
 echo "----"
echo "Creation of README."
echo "This demo command is writed to create a self debian package." > ./mkaddappendixdocu/share/doc/README
echo » ./mkaddappendixdocu/share/doc/README
 echo "Control: ";cat ./mkaddappendixdocu/share/doc/README
 echo "----"
echo "Directories creation."
mkdir ./mkaddappendixdocu/usr/local 
mkdir ./mkaddappendixdocu/usr/local/bin
mkdir ./mkaddappendixdocu/usr/local/share
mkdir ./mkaddappendixdocu/usr/local/share/doc
mkdir ./mkaddappendixdocu/DEBIAN
 echo "Control: ";ls -dl ./mkaddappendixdocu/usr/local ./mkaddappendixdocu/usr/local/bin \
 ./mkaddappendixdocu/usr/local/share ./mkaddappendixdocu/usr/local/share/doc \
 ./mkaddappendixdocu/DEBIAN
 echo "----"
echo "Creation of postrm."
echo "#!/bin/bash" > ./mkaddappendixdocu/DEBIAN/postrm
echo 'echo " If this message appears then mkAdd_appendix package is removed "' » ./mkaddappendixdocu/DEBIAN/postrm
echo » ./mkaddappendixdocu/DEBIAN/postrm
 echo "Control: ";cat ./mkaddappendixdocu/DEBIAN/postrm
 echo "----"
echo "Creation of control."
echo "Package: mkaddappendix" > ./mkaddappendixdocu/DEBIAN/control
echo "Version: 1.0" » ./mkaddappendixdocu/DEBIAN/control
echo "Section: utils" » ./mkaddappendixdocu/DEBIAN/control
echo "Priority: optional" » ./mkaddappendixdocu/DEBIAN/control
echo "architecture: all" » ./mkaddappendixdocu/DEBIAN/control
echo "Depends: bash, mkd, shc" » ./mkaddappendixdocu/DEBIAN/control
echo "Maintainer: Wikibooks user:Goelette_Cardabela" » ./mkaddappendixdocu/DEBIAN/control
echo "Description: Install Add_appendix program to create Appendix or Annexe for wikibooks." » ./mkaddappendixdocu/DEBIAN/control
echo "Homepage: https://fr.wikibooks.org/wiki/Annexes_de_wikibooks" » ./mkaddappendixdocu/DEBIAN/control
echo » ./mkaddappendixdocu/DEBIAN/control
 echo "Control: ";cat ./mkaddappendixdocu/DEBIAN/control
 echo "----"
echo "Creation of postinst."
echo "#!/bin/bash" > ./mkaddappendixdocu/DEBIAN/postinst
echo 'echo " Use mkAdd_appendix in your working directory "' » ./mkaddappendixdocu/DEBIAN/postinst
echo 'echo " Then type mkAdd_appendix in your terminal or konsole "' » ./mkaddappendixdocu/DEBIAN/postinst 
echo 'echo " See manual man man1 Add_appendix and , or, mkAdd_appendix "' » ./mkaddappendixdocu/DEBIAN/postinst
echo » ./mkaddappendixdocu/DEBIAN/postinst
 echo "Control: ";cat ./mkaddappendixdocu/DEBIAN/postinst
 echo "----"
echo -e "\033[33mCreation of ./packaging.\033[0m"
echo "#!/bin/bash" > ./packaging
echo "fakeroot chmod 755 mkAdd_appendix/usr/local/bin/mkdocu.bash" » ./packaging
echo "fakeroot chmod 755 mkAdd_appendix/DEBIAN/post* " » ./packaging
echo "#fakeroot chmod 755 mkAdd_appendix/DEBIAN/pre* " » ./packaging
echo "fakeroot rm *.deb" » ./packaging
echo "fakeroot dpkg-deb --build mkAdd_appendix" » ./packaging
echo » ./packaging
 echo "Control:";cat ./packaging
 chmod 755 ./packaging
 echo "----"
echo "Creation of ./install."
echo "#!/bin/bash" > ./install
echo "sudo dpkg -i mkAdd_appendix.deb" » ./install
echo » ./install
 cat ./install
 chmod 755 ./install
 echo "----"
echo "Creation of ./desinslall."
echo "#!/bin/bash" > ./desinstall
echo "sudo dpkg --remove mkAdd_appendix" » ./desinstall
echo "# ou:" » ./desinstall
echo "# sudo dpkg --purge mkAdd_appendix" » ./desinstall
echo » ./desinstall
 echo "Control: ";cat ./desinstall
 chmod 755 ./desinstall
 echo "----"
echo "Creation of ./KONSOLE."
if test -e /usr/bin/konsole
then
echo "#!/bin/bash" > ./KONSOLE
echo 'echo -e "\033[1;32mclick on New-line to start the Konsole\033[0m"' » ./KONSOLE
echo 'echo -e "\033[1;32mclick on Ctrl-C to exit the Konsole\033[0m"' » ./KONSOLE
echo "tput sgr0 # Reset text attributes to normal without clear" » ./KONSOLE
echo "read pwd" » ./KONSOLE
echo "pwd" » ./KONSOLE
echo "echo $pwd" » ./KONSOLE
echo "tput sgr0 # Reset text attributes to normal without clear" » ./KONSOLE
echo "/usr/bin/konsole background-mode --workdir pwd dir" » ./KONSOLE
echo "read" » ./KONSOLE
 echo » ./KONSOLE
 echo "Control: ";cat ./KONSOLE
 chmod 755 ./KONSOLE
else
 echo -e '\e|'31';'01'm' "not 'start in a terminal'"
 echo "/usr/bin/konsole is not found, execute 'sudo apt install konsole' to install."
fi
 echo "----"
echo "Creation of .remarques"
echo "#!/bin/bash" > ./remarques
echo "echo 'à compléter'" » ./remarques
echo » ./remarques
 echo "Control: ";cat ./remarques
 chmod 755 ./remarques
 echo "----"
echo -e "\033[1;31mNe pas oublier de placer le script shell mkaddappendixdocu dans le répertoire mkaddappendixdocu/usr/local/bin/. et de le rendre exécutable.\033[0m"
= Dépôt d'un paquet linux-ubuntu sur un site personnel de confiance (PPA) =
La finalité se trouve dans ce Wikilivre technique avec la construction du paquet addappendix