#! /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