« Auto-éditer un wikilivre/Auto-référencer » : différence entre les versions

Contenu supprimé Contenu ajouté
m →‎Lister (module) : WL:RD : ! mise en page
m →‎Télécharger (module) : WL:RD : ! mise en page, * diverses retouches
Ligne 641 :
copier les pages et sous pages html dans les répertoires respectifs.
quitter le programme d'essai et passer à la création de la page "Annexe" des articles.
 
{{Boîte déroulante début|titre=Code du module télécharger|styleFrame=width:100%;|fondtitre=#F0F0F0<!--|styleTitre=color:white;<!|style=headerbleu-->}}
{{/télécharger}}
<syntaxhighlight lang="bash">
#! /bin/bash
#P Nom du fichier de commandes : télécharger
#P Syntaxe : "télécharger <Page wikimedia>"
#P Exemple : "./télécharger LivreTest" à la console.
#P Date de création : 28 mars 2020
#P Modifié le : 26 avril 2020 par GC
#P Version sur WikiLivres le : 26 avril 2020
#P
#P LES FICHIERS DE COMMANDES
#P## header.sh ##############
#P header.sh, a crée 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## lister #################
#P lister a créé le fichier de liste $Projet/$1.list par l'extraction du fichie
#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.
 
 
#D La commande ./télécharger <wikilivre> télécharge la page complète d'une
#D "page" ou d'un "livre" de wikilivre. Elle crée les répertoires de travail
#D avec la même hiérarchie que dans la page originale du livre, ou de sa
#D version imprimable, ou de sa page de compilation.
#D
#D On procède par le téléchargement complet de la page et des sous-pages du
#D livre. Viennent ensuite la création des répertoires de travail des pages
#D qui composent le livre, puis on copie des pages html dans ces répertoires.
 
#D Pendant tout ce processus des lichiers temporaires de liste sont créés en
#D local:
#D $Projet/$1.locale.list qui est une image locale de la structure du livre.
#D $Projet/$1.mainPage. lien local vers l' "Article maître du livre"
#D $Projet/$1.dirs : liste des sous-pages de l'article principal du livre.
 
 
source header.sh
 
#O## télécharger ############
 
#O télécharger dans le répertoire de travail, la structure complète du livre.
cd $Projet
echo "télécharger tous des répertoires du livre '$1'"
wget -r -linf -k -p -E -i $1.list -o wget-log-télécharger.txt
echo "----------"
 
#O Déplacer les pages html dans des sous-répertoires de travail pour documenter les pages et sous pages
#O créer une liste locale vers les répertoires téléchargés $Projet/$1.locale.list
echo "créer la hirarchie complète concaténées des répertoires du livre '$1'"
cat $Projet/$1.list | sed "s/https:\/\///g" | sed "s/\ /\\\ /g" | tr '\n' ',' > $Projet/$1.locale.list
echo " Liste locale concaténée $Projet/$1.locale.list :"
echo ""
cat $Projet/$1.locale.list
echo "----------"
#O Copier les fichiers html dans les répertoires respectifs.
#O créer un fichier avec le nom de la page $Projet/$1.mainPage.
echo "créer la page du lien local vers la page principale, 'le livre'."
cat $Projet/$1.locale.list | sed "s/ /\\ /g" | cut -d ',' -f1 > $Projet/$1.mainPage
echo "----------"
 
#O initialiser la variable $mainPage
read mainPage < $Projet/$1.mainPage
echo "variable mainPage = $mainPage"
#T cat $Projet/$1.mainPage | awk -F"/" '{print NF}' > nbchamps
#T read NbChamps < nbchamps
#T echo "Variable NbChamps = $NbChamps"
echo "----------"
#O créer un fichier des répertoires de travail à créer.
ls "$mainPage" | sed "s/.html//g" > $Projet/$1.dirs
echo "sous-répertoires de travail : "
cat $Projet/$1.dirs
echo "----------"
 
#O copier les pages et sous pages html dans les répertoires respectifs.
while read line
do
echo "$line".html | sed "s/https:\/\///g" | tr '\n' ' ' > source
read Source < source
echo "Source = $Source"
 
echo "$line" | awk -F"/" '{ print $NF }'| tr '\n' '/' > destination
read dir < destination
mkdir $dir
echo "$line".html | awk -F"/" '{ print $NF }' >> destination
read Destination < destination
echo "Destination = $Destination"
echo "Copier : cp ./$Source $Destination"
cp -f "./$Source" "$Destination"
done < $Projet/$1.list
rm source ; rm destination
 
#O quitter le programme d'essai et passer à la création de la page "Annexe" des articles.
echo "----------"
# echo -en "\033[31mRetour-chariot une pour créer l'Annexe des articles, Ctrl-C pour quitter.\033[0m "
# read -p ">"
# "\033[31mRetour-chariot une pour créer l'Annexe, Ctrl-C pour quitter >"
return 0
</syntaxhighlight>
{{Boîte déroulante fin}}