Auto-éditer un wikilivre/Auto-référencer/ajouter sclip.inc.sh

#! /bin/bash
# Fichier : ajouter_sclip.inc.sh
VERSION=200623
#P Nom du fichier de commandes : ajouter_sclip.inc
#P Syntaxe : "ajouter_sclip.inc <nom du livre>"
#P Exemple : "./ajouter_sclip.inc LivreTest" à la console.
#P Date de création :  9 mai 2020
#P Modifié le : 15 mai 2020 par GC pour ajouter une version d'images depuis
#P   wilimedia commons
#P Modifié le : 16 mai 2020 par GC pour séparer les fichier en trois parties
#P   Partie 1 : entête des deux versions de téléchargement, 'ajouter_sclip'.
#P   Partie 2 : fichier de téléchargement des images sur wikibooks, sclipwb.inc
#P   Partie 3 : fichier de téléchargement des images sur coomons, sclipco.inc
#P Modifié le : 30 mai 202 por l'installation automatique du module.
#P Version de la documentation sur WikiLivres le : 17 mai 2020
#P
#P LES FICHIERS DE COMMANDES 
#P
#P## header.sh ##############
#P header.sh, a créé le répertoire des commandes si celui-ci ne préexistait pas
#P   il a vérifié la validité ou invalidé de ligne de commande, initialisé
#P   les variables $Projet, $Site, $SitePrefix, vérifié l'existence des
#P   fichiers de liste "$Projet/$1".list et "$Projet/$1".prj, puis affiché le
#P   contenu du répertoire de travail.
#P
#P## lister #################
#P lister a créé le fichier de liste $Projet/$1.list par l'extraction du 
#P   fichier $Projet/$1.contenu, copie de la page "Contenus" de la version
#P   imprimable du livre, ou du fichier $Projet/$1.compilé issu d'une
#P   compilation destinée à la publication par PediaPress.
#P   il crée aussi le fichier $Projet/$1.prj qui conserve l'ordre d'affichage
#P   de la publication.
#P
#P## télécharger ############
#P la commande aura téléchargé toutes les pages du livre et aura copié les
#P   pages html dans des répertoires qui leurs sont dédiés pour y extraire
#P   toute la documentation nécessaire à la création de la page "Annexe", et
#w      à ce stade, pour les tests avec LivreTest; on dispose des répertoires
#w      de travail : LivreTest, ArticleUn, ArticleDeux, ArticleTrois.
#P   qui contiennent chacun le fichier html de la page ou de l'article qui le
#P   concerne.
#P   L'ensemble des commandes aura créé les fichiers de listes :
#P   $Projet/$1.dirs, $Projet/$1.list, $Projet/$1.mainPage, $Projet/$1.prj
#P
#P## ajouter_sclt ###########
#P La commande ./ajouter-sclt <wikilivre> commence par créer la page
#P   $Projet/$1.sclt comme elle apparaîtra dans la première partie de la page
#P   "Annexe" du livre, avec les titres et les sections en wikitexte :
#P   * Références: toutes celles qui n'ont pas été affichées dans les pages.
#P   * Contenus: liens établis vers la page du livre et les articles.
#P     (les sous-pages).
#P   * Source de l'édition: lien vers la page qui a permis de créer l'Annexe.
#P   * Sources licences et contributeurs des articles: ne concerne que les
#P     articles, les sous-pages.
#P
#D## ajouter_sclic ##########
#D Le répertoire de travail est le sous répertoire du projet $Projet/$1/$1
#D   plus précisément : ~/Annexer/<nom du livre>/<nom du livre>
#D   <nom du livre> pourrait être la sous-page 'Version imprimable' du livre
#D   et peut être considéré comme un 'Article'.
#D Remarques :
#D   à ce stade, Les fichiers $1.list, $1.prj, $1.pj, $1.sclt, $.mainPage sont  
#D   censés préexister dans le répertoire racine du projet $1 (nom du livre).
#D   De même, les fichiers <Article>.str sont sensés préexister dans les
#D   répertoires <Article> correspondants.
#D Seront créés :
#D   * Dans le répertoire de travail racine ~/Annexe/$1/. :
#D     le fichier $1.sclic qui vient compléter le fichier $1.sclt afin de créer
#D     le fichier "Annexe",
#D   * dans le sous-répertoire de travail ~/Annexe/$1/$1/. :
#D     $1.files, $1.pict, $1.illustrations, $1.links, html.list et
#D     les fichiers d'images .str .title, .source, .license, .auteur.
#D
#D## ajouter_sclip ##########
#D Ce module est l'entête des programmes sclipco.inc et sclipwb.inc du
#D   programme Annexer :
#D   Si une des options -pc ou -pb de la ligne de commande 'annexer <livre>'
#D   est validée, le module ajouter_sclip est exécuté puis un des modules
#D   sclipco ou sclipwb est exécutés selon l'option choisie -pc ou -pb.
#D   (-pc pour images sur 'Commons', -pb pour images sur 'Wikilivres'.)
#D Structure, organisation des fichiers :
#D Les répertoires de travail sont les répertoires des 'Articles'.
#D Le fichier $Projet/$ligne/$ligne.str a été créé avec la commande
#D   ajouter_sclt
#D Remarques :
#D 1.les images extraites avec le fichier de commandes ajouter_sclic peuvent
#D   être copiées dans les répertoires des articles correspondants lorsqu'ils
#D   sont identifiés dans leurs répertoires respectifs pour créer une option
#D   d'images téléchargées de 'Commons'.
#D 2.le fichier de conversions url/html vers utf8 a été inclus dans l'entête
#D   header.sh depuis le 13 mai 2020
#D
#P Générer la documentation de cette page :
#P   grep -E "#D" ajouter_sclip | grep -v 'grep' | sed s/#D//g > <livre>_doc/ajouter_sclip.D.doc
#   grep -E "#D" ajouter_sclip | grep -v 'grep' | sed s/#D//g > LivreTest_doc/ajouter_sclip.D.doc
#P Générer la documentation programmeur :
#P   grep -n -E "#P|#D|#w" ajouter_sclip | grep -v 'grep' > <livre>_doc/ajouter_sclip.PDw.doc
#   grep -n -E "#P|#D|#w" ajouter_sclip | grep -v 'grep' > LivreTest_doc/ajouter_sclip.PDw.doc
#P Générer l'organigramme de cette commande :
#P   grep -n -E "#O" ajouter_sclip | grep -v 'grep' > <livre>_doc/ajouter_sclip.O.doc
#   grep -n -E "#O" ajouter_sclip | grep -v 'grep' > LivreTest_doc/ajouter_sclip.O.doc  
#P

#O inclure le fichier d'entête header.sh
source header.inc

#O## ajouter_scli_p (personnalisé) ############
if [ $0=ajouter_sclip.inc ]; then echo "ajouter_sclip.inc : Version "$VERSION; fi

#0 initialisation de la variables $PageScliP, avec le premier paramètre de la
#O   ligne de commande "ajouter_sclip <livre>" où "livre" = variable $1

#O PageScliP sera la variable d'identifiation du fichier "livre.sclip" placé
#O    dans le répertoire" de travail du projet : $Projet = ~/Annexe/$1/.
PageScliP=$Projet/$1.sclip
echo "Page .scli personnalisée .sclip = " $PageScliP
echo "------"

#O créer la section 'Image', 'Source', 'licence', 'Contributeur(?)'
echo "== Sources des images licences et contributeurs ==" > $PageScliP
#O   ajouter le texte : style PediaPress ou personnalisé.
#O   style PediaPress :
#O   Les ''sources'' listées pour chaque article fournissent des informations
#O   de licence plus détaillées, y compris le statut des droits d'auteurs, les
#O   détenteurs de ces droits et les conditions de licence.
echo "<span style="font-size:85%">Les ''sources'' listées pour chaque illustration fournissent des informations de licence plus détaillées, y compris le statut des droits d'auteurs, les détenteurs de ces droits et les conditions de licence.</span>" >>  $PageScliP
#O   ou: (imprimer l'un ou l'autre de ces textes)
#O   style personnalisé :
#O   Les textes sont disponibles avec leurs licences respectives, cependant
#O   d’autres termes peuvent s’appliquer.<br />
#O   Voyez les termes d’utilisation pour plus de détails :<br /> 
#O   https://wikimediafoundation.org/wiki/Conditions_d'utilisation
# echo "<span style="font-size:85%">Les textes sont disponibles avec leurs licences respectives, cependant d’autres termes peuvent s’appliquer.<br />Voyez les termes d’utilisation pour plus de détails :<br />https://wikimediafoundation.org/wiki/Conditions_d'utilisation.</span>" >>  $PageScliP
echo " " >>  $PageScliP
echo "<div style="font-size:72%>" >> $PageScliP
echo "" >>  $PageScliP
#T
 cat $PageScliP
#T exit
# Fin de ajouter_sclip.inc.sh