Auto-éditer un wikilivre/Auto-référencer/Version imprimable

Un livre de Wikilivres.
Aller à la navigation Aller à la recherche
En travauxlink={{{link}}}

Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.

Wikibooks user     

Auto-éditer_un_wikilivre
Auto-référencer
Annexer pré-étude

 
Bash logo france.svg

 

Auto-éditer un wikilivre
Auto-référencer
Éditeur : wikibooks user


 

Auto-référencer[modifier | modifier le wikicode]

L'édition de la version du 17 avril 2020 a l'avantage de sa fraîcheur, plus claire que les versions plus récentes.

Table des matières par chapitres[modifier | modifier le wikicode]

   1 Titre page 3
   2 Auto-référencer page 5
       2.1 Table des matières par chapitres page 5
       2.2 Codes shell pour créer la page « Annexe »
           2.2.1 Annexer
           2.2.2 Lister
           2.2.3 Télécharger
           2.2.4 Ajouter sclt
           2.2.5 Ajouter scli
               2.2.5.1 Le fichier d'entête
               2.2.5.2 Le fichier de commandes
       2.3 Tester les codes
           2.3.1 Commençons par le fichier de commandes principal « annexer »
               2.3.1.1 Lançons les tests
           2.3.2 Poursuivons avec le fichier de commandes « lister »
               2.3.2.1 Les lignes qui méritent notre attention
               2.3.2.2 Lançons les tests
           2.3.3 Poursuivons avec le fichier de commandes « télécharger »
               2.3.3.1 Les lignes qui méritent notre attention
               2.3.3.2 Lançons les tests
           2.3.4 Poursuivons avec le fichier de commandes « ajouter_sclt »
               2.3.4.1 Les lignes qui méritent notre attention
               2.3.4.2 Lançons les tests
           2.3.5 Poursuivons avec le fichier de commandes « ajouter_scli »
               2.3.5.1 Le fichier d'entête

self-referencing

Codes shell pour créer la page « Annexe »[modifier | modifier le wikicode]

Annexer[modifier | modifier le wikicode]

(Appendix)

Annexer ou annexer.sh est la page principale qui permet de produire la page « Annexe », elle utilise les commandes shell "lister", "télécharger", "ajouter_sclt" et "ajouter_scli"

La première partie qui précède #O## annexer ################ est l'entête. Elle utilisée dans tous les fichiers de commandes de cet article.
dans le fichier de commandes ajouter_scli cette entête est volontairement séparée pour la démonstration, avec son inclusion par la commande source.
Les autres fichiers de commandes incluent directement cette entête pour faciliter la compréhension des codes.

#! /bin/bash
#P Nom du fichier de commandes : annexer
#P Syntaxe : "annexer <nom du livre>"
#P Exemple : "./annexer LivreTest" à la console.
#P Date de création : 24 mars 2020
#P Modifié le : 7 avril 2020 par GC
#P Version sur WikiLivres le : 9 avril 2020

#H vider (nettoyer) l'écran.
clear

#Initialiser le répertoire des commandes.
RepCom=~/Annexer
echo "Répertoire des commandes : "$RepCom

#H tester la présence du répertoire racine des commandes, si il n'existe pas, le créer.
if test -d $RepCom
   then 
      echo "Le répertoire des commandes : "$RepCom" est correct !";
   else
      mkdir $RepCom
      echo "Le répertoire de travail "$RepCom" a été créé !";
fi
cd $RepCom

#T echo "Paramètre d'entrée : "$1
#T exit 2

#H tester la présence du paramètre de la ligne de commandes
if test -z "$1"
    then echo "Erreur, pas de paramètre en entrée : le paramètre est \"${1}\" "
	   echo "Syntaxe de la commande : ./annexer <fichier>, (exemple : Annexer LivreTest)"
	   echo " "
	   exit 1;
	else echo "Projet : création de la page "$1.annexe" du livre : \"${1}\" "
fi

#H initialiser la variable "Projet" = répertoire de projet.
Projet=$RepCom/$1
echo "Répertoitre de projet : "$Projet
echo "----------"
#T read -p "Si tout est correct : retour-chariot une pour continuer, Ctrl-C pour quitter >"

#H tester la présence du répertoire du projet, si il n'existe pas, le créer.
if test -d $Projet
   then 
      echo "Le répertoire des commandes : "$Projet" est correct !";
   else
      mkdir $Projet
      echo "Le répertoire de travail "$Projet" a été créé !";
fi

#H initialiser les variables 'Site' (nom du serveur) et 'SitePrefix'.
Site="fr.wikibooks.org"
SitePrefix="https:\/\/fr.wikibooks.org\/wiki\/"

#H nettoyer l'écran, afficher les variables globales et le contenu du répertoire de projet.
#T clear
echo "----------"
echo "Nom du projet: "$1
echo "Site: "$Site
echo "Préfixe du site: "$SitePrefix
echo "----------"
echo "Liste des pages et articles à analyser, fichier : "$Projet/$1".list si il existe."
if test -a $Projet/$1.list;
   then 
      echo "le fichier : "$Projet/$1".list existe."; 
   else 
   echo -e "\033[31mle fichier : "$Projet/$1".list n'a pas encore été créé.\033[0m";
fi
ls -al $Projet 
echo "----------"

#H entrer dans la répertoire de travail.
cd $Projet

#O## annexer ################

#O effacer tous les fichiers *.html *.str *.img *.lnk tmp temp *.tmp *.temp *.list ?
#O si le la réponse au clavier est 'o' (oui !), effacer les fichiers du répertoire de projet (nom du livre).
#O sinon, continuer.
echo "effacer tous les fichiers *.html *.str *.img *.lnk tmp temp *.tmp *.temp *.list ?"
echo -e "\033[31m 'o' pour approuver l'effacement des fichiers obsolètes. \033[0m " 
echo " Retour-chariot pour continuer, Ctrl-C pour quitter."
read -n1 -p -s Inkey
echo "Inkey = "$Inkey
if test [$Inkey = 'o']
   then {
      cd $Projet
      echo -e "\033[31mSuppresssion des fichiers obsolètes.\033[0m "
      rm *.html *.str *.img *.lnk tmp temp *.tmp *.temp *.list
      }
   else echo "Pas de suppression de fichiers ! ... suite ..."
fi

#O créer le fichier contenant la liste des articles à analyser. (../lister $1)
../lister $1
echo "Code de retour de la commande lister : "$?
#w exit 0
exit 0
#T créer les répertoires et sous répertoires complets du livre. (../télécharger $1)
../télécharger $1
echo "Code de retour de la commande télécharger : "$?

#O créer la "page Annexe" et ajouter les sources, contributeurs, droits de copie du texte des articles.
#O sclt : s=source, c=contributeurs, l=license, t=texte des articles. (../ajouter_sclt $1)
#../ajouter_sclt
echo "Code de retour de la commande ajouter_sclt : "$?

#O ajouter les sources, licence, contributeurs des images. (../ajouter_scli $1)
#../ajouter_scli
echo "Code de retour de la commande ajouter_scli : "$?
exit 0

Lister[modifier | modifier le wikicode]

(List)

Créer une liste des liens vers les pages qui composent le livre.

#! /bin/bash
#P Nom du fichier de commandes : lister
#P Syntaxe : "lister <nom du livre>"
#P Exemple : "./lister LivreTest" àl a console.
#P Date de création : 26 mars 2020
#P Modifié le : 11 avril 2020 par GC
#P Version sur WikiLivres le : 10 avril 2020

#H vider (nettoyer) l'écran.
clear

#Initialiser le répertoire des commandes.
RepCom=~/Annexer
echo "Répertoire des commandes : "$RepCom

#H tester la présence du répertoire racine des commandes, si il n'existe pas, le créer.
if test -d $RepCom
   then 
      echo "Le répertoire des commandes : "$RepCom" est correct !";
   else
      mkdir $RepCom
      echo "Le répertoire de travail "$RepCom" a été créé !";
fi
cd $RepCom

#T echo "Paramètre d'entrée : "$1
#T exit 2

#H tester la présence du paramètre de la ligne de commandes
if test -z "$1"
    then echo "Erreur, pas de paramètre en entrée : le paramètre est \"${1}\" "
	   echo "Syntaxe de la commande : ./annexer <fichier>, (exemple : Annexer LivreTest)"
	   echo " "
	   exit 1;
	else echo "Projet : création de la page "$1.annexe" du livre : \"${1}\" "
fi

#H initialiser la variable "Projet" = répertoire de projet.
Projet=$RepCom/$1
echo "Répertoitre de projet : "$Projet
echo "----------"
#T read -p "Si tout est correct : retour-chariot une pour continuer, Ctrl-C pour quitter >"

#H tester la présence du répertoire du projet, si il n'existe pas, le créer.
if test -d $Projet
   then 
      echo "Le répertoire des commandes : "$Projet" est correct !";
   else
      mkdir $Projet
      echo "Le répertoire de travail "$Projet" a été créé !";
fi

#H initialiser les variables 'Site' (nom du serveur) et 'SitePrefix'.
Site="fr.wikibooks.org"
SitePrefix="https:\/\/fr.wikibooks.org\/wiki\/"

#H nettoyer l'écran, afficher les variables globales et le contenu du répertoire de projet.
#T clear
echo "----------"
echo "Nom du projet: "$1
echo "Site: "$Site
echo "Préfixe du site: "$SitePrefix
echo "----------"
echo "Liste des pages et articles à analyser, fichier : "$Projet/$1".list si il existe."
if test -a $Projet/$1.list;
   then 
      echo "le fichier : "$Projet/$1".list existe."; 
   else 
   echo -e "\033[31mle fichier : "$Projet/$1".list n'a pas encore été créé.\033[0m";
fi
ls -al $Projet 
echo "----------"

#H entrer dans la répertoire de travail.
cd $Projet

#O## lister #################

#O effacer tous les fichiers *.list,
rm *.list

#O créer le fichier de liste $Projet/$1.list avec le fichier "contenu" prioritaire, sinon avec le fichier "compilé" s'il existe.
#O si le fichier LivreTest.contenu existe,
    if test -r $Projet/$1.contenu; 
#O alors :
	then {
#O    s'assurer que le fichier sera en lecture seule,
       chmod 444 $Projet/$1.contenu
#O    créer la liste des articles de la page avec le contenu. 
       echo "LivreTest.list avec LivreTest.contenu :"
       cat $Projet/$1.contenu | sed "s/\[\[/$SitePrefix/g" | tr '|' '\n' | grep "wiki" > $Projet/$1.list
	   }
#O sinon, si le fichier LivreTest.compilé existe,
    elif test -r $Projet/$1.compilé 
#O alors :
    then {
#O    s'assurer que le fichier sera en lecture seule,
       chmod 444 $Projet/$1.compilé
#O    créer la liste avec la page de compilation.
       echo "LivreTest.list avec LivreTest.compilé :"
       cat $Projet/$1.compilé | sed "s/:\[\[/$SitePrefix/g" | tr '|' '\n' | sed "s/\]\]//g" | grep "wiki" > $Projet/$1.list
	   }
#O fin si
fi

#O afficher la liste pour contrôle et retourner la valeur 0 si tout est correct.
echo ""
cat $Projet/$1.list
echo " "
read -p "Si tout est correct : retour-chariot une pour continuer, Ctrl-C pour quitter > "
exit 0

Télécharger[modifier | modifier le wikicode]

(Download)

Télécharger le code source de la page ou la sous page grâce à la liste obtenue dans la section Télécharger.

#! /bin/bash
#P Nom du fichier de commandes : télécharger
#P Syntaxe : "télécharger <nom du livre>"
#P Exemple : "./télécharger LivreTest" à la console.
#P Date de création : 28 mars 2020
#P Modifié le : 10 avril 2020 par GC
#P Version sur WikiLivres le : 10 avril 2020

#H vider (nettoyer) l'écran.
clear

#Initialiser le répertoire des commandes.
RepCom=~/Annexer
echo "Répertoire des commandes : "$RepCom

#H tester la présence du répertoire racine des commandes, si il n'existe pas, le créer.
if test -d $RepCom
   then 
      echo "Le répertoire des commandes : "$RepCom" est correct !";
   else
      mkdir $RepCom
      echo "Le répertoire de travail "$RepCom" a été créé !";
fi
cd $RepCom

#T echo "Paramètre d'entrée : "$1
#T exit 2

#H tester la présence du paramètre de la ligne de commandes
if test -z "$1"
    then echo "Erreur, pas de paramètre en entrée : le paramètre est \"${1}\" "
	   echo "Syntaxe de la commande : ./annexer <fichier>, (exemple : Annexer LivreTest)"
	   echo " "
	   exit 1;
	else echo "Projet : création de la page "$1.annexe" du livre : \"${1}\" "
fi

#H initialiser la variable "Projet" = répertoire de projet.
Projet=$RepCom/$1
echo "Répertoitre de projet : "$Projet
echo "----------"
#T read -p "Si tout est correct : retour-chariot une pour continuer, Ctrl-C pour quitter >"

#H tester la présence du répertoire du projet, si il n'existe pas, le créer.
if test -d $Projet
   then 
      echo "Le répertoire des commandes : "$Projet" est correct !";
   else
      mkdir $Projet
      echo "Le répertoire de travail "$Projet" a été créé !";
fi

#H initialiser les variables 'Site' (nom du serveur) et 'SitePrefix'.
Site="fr.wikibooks.org"
SitePrefix="https:\/\/fr.wikibooks.org\/wiki\/"

#H nettoyer l'écran, afficher les variables globales et le contenu du répertoire de projet.
#T clear
echo "----------"
echo "Nom du projet: "$1
echo "Site: "$Site
echo "Préfixe du site: "$SitePrefix
echo "----------"
echo "Liste des pages et articles à analyser, fichier : "$Projet/$1".list si il existe."
if test -a $Projet/$1.list;
   then 
      echo "le fichier : "$Projet/$1".list existe."; 
   else 
   echo -e "\033[31mle fichier : "$Projet/$1".list n'a pas encore été créé.\033[0m";
fi
ls -al $Projet 
echo "----------"

#O## télécharger ############

#O créer les répertoires et sous répertoires complets du livre.
echo "Créer le fichier de projet "$Projet/$1.prj
cd $Projet
echo "créer la hirarchie complète des répertoires du livre"$1
wget -r -linf -k -p -E  -i $1.list -o wget-log.txt
echo "----------"

#O créer les fichiers html des articles (sans l'extension '.html').
echo "créer les fichiers exploitables pour douomenter la page Annexe et les lister dans le fichier " $Projet/$1.prj
wget -r -i $1.list -o wget-log.txt
ls --format=single-column  --hide=*.txt --hide=*.list --hide=*.prj --hide=*.annexe --hide=*.co* --hide=Sauv --hide=*.org > $Projet/$1.prj
cat $Projet/$1.prj
#T exit 2
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

Ajouter sclt[modifier | modifier le wikicode]

(Adding sclt) or (Append sclt)

Ajouter la section article, source, licence, contributeur(s).

#! /bin/bash
#P Nom du fichier de commandes : ajouter_sclt
#P Syntaxe : "ajouter_sclt <nom du livre>"
#P Exemple : "./ajouter_sclt LivreTest" à la console.
#P Date de création : 12 avril 2020
#P Modifié le : 12 avril 2020 par GC
#P Version sur WikiLivres le : 13 avril 2020

#H vider (nettoyer) l'écran.
clear

#Initialiser le répertoire des commandes.
RepCom=~/Annexer
echo "Répertoire des commandes : "$RepCom

#H tester la présence du répertoire racine des commandes, si il n'existe pas, le créer.
if test -d $RepCom
   then 
      echo "Le répertoire des commandes : "$RepCom" est correct !";
   else
      mkdir $RepCom
      echo "Le répertoire de travail "$RepCom" a été créé !";
fi
cd $RepCom

#T echo "Paramètre d'entrée : "$1
#T exit 2

#H tester la présence du paramètre de la ligne de commandes
if test -z "$1"
    then echo "Erreur, pas de paramètre en entrée : le paramètre est \"${1}\" "
	   echo "Syntaxe de la commande : $0 <fichier>, (exemple : $0 LivreTest)"
	   echo " "
	   exit 1;
	else echo "Projet : création de la page "$1.annexe" du livre : \"${1}\" "
fi

#H initialiser la variable "Projet" = répertoire de projet.
Projet=$RepCom/$1
echo "Répertoitre de projet : "$Projet
echo "----------"
#T read -p "Si tout est correct : retour-chariot une pour continuer, Ctrl-C pour quitter >"

#H tester la présence du répertoire du projet, si il n'existe pas, le créer.
if test -d $Projet
   then 
      echo "Le répertoire des commandes : "$Projet" est correct !";
   else
      mkdir $Projet
      echo "Le répertoire de travail "$Projet" a été créé !";
fi

#H initialiser les variables 'Site' (nom du serveur) et 'SitePrefix'.
Site="fr.wikibooks.org"
SitePrefix="https:\/\/fr.wikibooks.org\/wiki\/"

#H nettoyer l'écran, afficher les variables globales et le contenu du répertoire de projet.
#T clear
echo "----------"
echo "Nom du projet: "$1
echo "Site: "$Site
echo "Préfixe du site: "$SitePrefix
echo "----------"
echo "Liste des pages et articles à analyser, fichier : "$Projet/$1".list si il existe."
if test -a $Projet/$1.list;
   then 
      echo "le fichier : "$Projet/$1".list existe."; 
   else 
   echo -e "\033[31mle fichier : "$Projet/$1".list n'a pas encore été créé.\033[0m";
fi
ls -al $Projet 
echo "----------"

#O## ajouter_sclt ###########
PageSclt=$Projet/$1.sclt
echo $PageSclt
cd $Projet
#T exit 0

#O But : créer la page "Annexe" (avec les pages Projet.sclt + Projet.scli)
echo "créer la page "$PageSclt
echo "----------"
echo "= Annexe =" > $PageSclt

#O ajouter les références
echo "<references />" >> $PageSclt
echo " "  >> $PageSclt
echo "{{Nouvelle page imprimée}}" >> $PageSclt

#O ajouter la liste créée avec la page "Contenus" de la version imprimable ou la page compilée ?
echo "== Contenus ==" >> $PageSclt
echo "<small>" >> $PageSclt
cat $Projet/$1".list" | tr ' ' '_' | tr '\n' '%' | sed "s/%/\n\n/g" >> $PageSclt
echo " "  >> $PageSclt

#0 ajouter La source de cette édition.
echo "=== Source de cette édition de version imprimable ou compilée ===" >> $PageSclt
cat $Projet/$1".list" | tr ' ' '_' | tr '\n' '%' | sed "s/%/%\n/g" |grep $1% | tr -d % >> $PageSclt
echo "</small>" >> $PageSclt
echo " "  >> $PageSclt
echo "{{Nouvelle page imprimée}}" >> $PageSclt

#O Créer la page 'Article', 'Source', 'licence', 'Contributeur(?)'
echo "== Sources licences et contributeurs des articles ==" >> $PageSclt
echo "Les ''sources'' listées pour chaque article 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." >> $PageSclt
echo " " >> $PageSclt
echo "<small><small>" >> $PageSclt
#T exit 0
#T echo -n "Répertoire courant : "
#T pwd
echo "----------"
Liste=~/Annexer/$1/$1.prj
echo "Fichier de liste : "$Liste
#T exit 0

#O tant qu'il y a des lignes dans le fichier de liste,
    while read ligne
    do   
#O    afficher la ligne lue,
       echo ""
       echo "   ligne lue = "$ligne
       echo ""

#O    extraire et copier toutes les chaînes de caractères de $line dans le fichier $ligne.str et les dupliquer à l'écran.
       mkd -pws '**' $Projet/$ligne $Projet/$ligne.tmp | tr ',' '\n' > $Projet/$ligne.str

#O    créer les fichiers de documentation des pages.
       echo "*** Références : articles, src, lic, contrib. "
    
#O    article :
       echo "'''"$ligne"'''" >> $PageSclt
       echo "'''"$ligne"'''" >> $Projet/$ligne.article
       cat $Projet/$ligne.article
       
#O    source :
       echo -n ", ''source : ''https://"$Site"/w/index.php?oldid=" > $Projet/$ligne.RevisionId
       cat $Projet/$ligne.str | grep -n -m 1 -i -e wgRevisionId | tr -d ':' | sed "s/\"/%/g" | cut -d'%' -f3 >> $Projet/$ligne.RevisionId
       cat $Projet/$ligne.RevisionId  >> $PageSclt
       cat $Projet/$ligne.RevisionId
       
#O    licence : 
#w    licence s'écrit license en anglais (langage de base en programmation).
#echo ", ''Droits de copie :''"  >> ArticleUn.tmp
#cat ArticleUn.str | grep -n -m 1 -i -e license | sed "s/\"\//%\//g" | cut -d'%' -f2 |sed "s/\/\//https:\/\//g"  >> ArticleUn.tmp

       echo -n ", ''licence : ''" >> $PageSclt 
       echo -n ", ''licence : ''" > $Projet/$ligne.license
       cat $Projet/$ligne.str | grep -n -m 1 -i -e license | sed "s/\"\//%\//g" | cut -d'%' -f2 | sed "s/\/\//https:\/\//g" >> $Projet/$ligne.license
       #T (french footer licence) cat $Projet/$ligne.str | grep -n -m 1 -i -e licence | sed "s/\"\//%\//g" | tr '"' '%' | cut -d'%' -f4 | sed "s/\/\//https:\/\//g" > $Projet/$ligne.licence
       cat $Projet/$ligne.license >> $PageSclt
       cat $Projet/$ligne.license

#O    auteur(s) : 
       echo -n ", ''auteur(s) : ''" >> $PageSclt
       cat $Projet/$ligne.str | grep -n -m 1 -i -e wgRelevantUserName | sed "s/\"/%/g" | cut -d'%' -f4 > $Projet/$ligne.auteur
       cat $Projet/$ligne.auteur >> $PageSclt
       cat $Projet/$ligne.auteur       
       echo "" >> $PageSclt
       
#O fin du tant que.
    done < $Liste
    echo "</small></small>" >> $PageSclt
    echo "{{Nouvelle page imprimée}}" >> $PageSclt

exit 0

Ajouter scli[modifier | modifier le wikicode]

(Adding scli) or (Append scli)

Ajouter la section image, source, license, contributeurs(s) à la page Annexe.

Le fichier d'entête[modifier | modifier le wikicode]

Ce fichier doit être inclus dans le fichier de commandes ajouter_scli

#! /bin/bash
#P Nom du fichier de commandes : header ou header.sh
#P Syntaxe : "annexer <nom du livre>"
#P Exemple : "./annexer LivreTest" à la console pour les essais.
#P Ce fichier d'entête est commun aux fichiers de commandes annexer, lister, télécharger, ajouter_sclt, dans lesquels ils sont inclus.
#P    Il doit être inclus dans le fichier de commandes ajouter_scli par la commande "source". Exemple : "source header.sh"
#P Date de création : 24 mars 2020
#P Modifié le : 12 avril 2020 par GC
#P Version sur WikiLivres le : 127 avril 2020

#H vider (nettoyer) l'écran.
clear

#Initialiser le répertoire des commandes.
RepCom=~/Annexer
echo "Répertoire des commandes : "$RepCom

#H tester la présence du répertoire racine des commandes, si il n'existe pas, le créer.
if test -d $RepCom
   then 
      echo "Le répertoire des commandes : "$RepCom" est correct !";
   else
      mkdir $RepCom
      echo "Le répertoire de travail "$RepCom" a été créé !";
fi
cd $RepCom

#T echo "Paramètre d'entrée : "$1
#T exit 2

#H tester la présence du paramètre de la ligne de commandes
if test -z "$1"
    then echo "Erreur, pas de paramètre en entrée : le paramètre est \"${1}\" "
	   echo "Syntaxe de la commande : $0 <fichier>, (exemple : $0 LivreTest)"
	   echo " "
	   exit 1;
	else echo "Projet : création de la page "$1.annexe" du livre : \"${1}\" "
fi

#H initialiser la variable "Projet" = répertoire de projet.
Projet=$RepCom/$1
echo "Répertoitre de projet : "$Projet
echo "----------"
#T read -p "Si tout est correct : retour-chariot une pour continuer, Ctrl-C pour quitter >"

#H tester la présence du répertoire du projet, si il n'existe pas, le créer.
if test -d $Projet
   then 
      echo "Le répertoire des commandes : "$Projet" est correct !";
   else
      mkdir $Projet
      echo "Le répertoire de travail "$Projet" a été créé !";
fi

#H initialiser les variables 'Site' (nom du serveur) et 'SitePrefix'.
Site="fr.wikibooks.org"
SitePrefix="https:\/\/fr.wikibooks.org\/wiki\/"

#H nettoyer l'écran, afficher les variables globales et le contenu du répertoire de projet.
#T clear
echo "----------"
echo "Nom du projet: "$1
echo "Site: "$Site
echo "Préfixe du site: "$SitePrefix
echo "----------"
echo "Liste des pages et articles à analyser, fichier : "$Projet/$1".list si il existe."
if test -a $Projet/$1.list;
   then 
      echo "le fichier : "$Projet/$1".list existe."; 
   else 
   echo -e "\033[31mle fichier : "$Projet/$1".list n'a pas encore été créé.\033[0m";
fi
ls -al $Projet 
echo "----------"

#H entrer dans la répertoire de travail.
cd $Projet

Le fichier de commandes[modifier | modifier le wikicode]

Cette partie est consultable sur les versions plus récentes de Auto-référencer.

Pour consulter la section la plus élaborée, voyez Annexer, la troisième partie, imprimable.

Tester les codes[modifier | modifier le wikicode]

Les fichiers de commandes shell peuvent être éprouvés successivement, sous linux ou sous d'autres systèmes d'exploitation acceptant les commandes shell : Windows 10[1][2], MinGw, Cygwin, ....

Pour effectuer ces tests il faut se placer dans le répertoire utilisateur et créer un répertoire des commandes, dans les exemples : mkdir ~/annexer

Les fichiers de commandes annexer, lister, télécharger, ajouter-sclt, ajouter-scli, sont prévus pour être placés dans ce répertoire.

Les commandes peuvent être éprouvées avec tous les livres disponibles. Pour ces tests nous avons utilisé le livre « LivreTest ».

Commençer par le fichier de commandes principal « annexer »[modifier | modifier le wikicode]

Ce fichier de commandes contrôle le bon fonctionnement de l'entête qui est commune à tous les fichiers de commandes. cette entête pourrait s'appeler header.sh et être inclus dans les fichiers de commandes avec l'option source header.sh s'il est dans le même répertoire des commandes, ou reconnu dans l'environnement (path).
Il vérifie que le répertoire des fichiers de commandes est correct, que le nom du projet est bien présent sur la ligne de commande en premier paramètre, comme dans l'exemple suivant : "./annexer LivreTest" où la variable de projet est LivreTest, le nom du livre.

Les commandes de ce fichier créent le répertoire des fichiers de commandes si il n'existe pas. Il va créer le répertoire du projet dans lequel on trouvera tous les fichiers intermédiaires, notamment : "Projet.list", "Projet.prj", "Projet.annexe", tous les fichiers html des Articles et les documents extraits les concernant; Article avec les extensions .article, .auteur, .license, voire aussi .licence français du bas de page, .RevisionID, etc ...

Pseudo codes obtenu avec la commande "mkd -Snws OPTHw annexer" :

#H sont les commentaires d'entête. On va les retrouver dans toutes les commandes du projet
#O sont les commentaires d'organigramme.
#P sont les commentaires destinés aux Programmeurs.
#S sont les commentaires de structure.
#T sont les commentaire de tests, ce souvent des point d'arrêt pour la mise au point.
#w sont des commentaires d'attention, de mise en garde.
(fichier annexer :)
    2 #P Nom du fichier de commandes : annexer
    3 #P Syntaxe : "annexer <nom du livre>"
    4 #P Exemple : "./annexer LivreTest" à la console.
    5 #P Date de création : 24 mars 2020
    6 #P Modifié le : 7 avril 2020 par GC
    7 #P Version sur WikiLivres le : 9 avril 2020
    9 #H vider (nettoyer) lcran.
   16 #H tester la présence du répertoire racine des commandes, si il n'existe pas, le créer.
   26 #T echo "Paramètre d'entrée : "$1
   27 #T exit 2
   29 #H tester la présence du paramètre de la ligne de commandes
   38 #H initialiser la variable "Projet" = répertoire de projet.
   42 #T read -p "Si tout est correct : retour-chariot une pour continuer, Ctrl-C pour quitter >"
   44 #H tester la présence du répertoire du projet, si il n'existe pas, le créer.
   53 #H initialiser les variables 'Site' (nom du serveur) et 'SitePrefix'.
   57 #H nettoyer lcran, afficher les variables globales et le contenu du répertoire de projet.
   58 #T clear
   74 #H entrer dans la répertoire de travail.
   77 #O## annexer ################
   79 #O effacer tous les fichiers *.html *.str *.img *.lnk tmp temp *.tmp *.temp *.list ?
   80 #O si le la réponse au clavier est 'o' (oui !), effacer les fichiers du répertoire de projet (nom du livre).
   81 #O sinon, continuer.
   96 #O créer le fichier contenant la liste des articles à analyser. (../lister $1)
   99 #w exit 0
  101 #T créer les répertoires et sous répertoires complets du livre. (../télécharger $1)
  105 #O créer la "page Annexe" et ajouter les sources, contributeurs, droits de copie du texte des articles.
  106 #O sclt : s=source, c=contributeurs, l=license, t=texte des articles. (../ajouter_sclt $1)
  110 #O ajouter les sources, licence, contributeurs des images. (../ajouter_scli $1)

Lançer les tests[modifier | modifier le wikicode]

Faire un brouillon avec le micro-ordinateur sous linux (ou autre système acceptant les shells linux).

  1. Mettre l'ordinateur en marche.
  2. Copier le code du fichier annexer dans un éditeur de texte comme Notepadqq, Gedit, ou Bluefish.
  3. Créer le répertoire Annexer avec l'éditeur, ou, sous console : mkdir ~/Annexer
  4. Enregistrer le texte avec pour nom annexer dans le répertoire Annexer.
  5. Sous console, entrer dans le répertoire Annexer : cd ~/Annexer
  6. Rendre la commande "annexer" exécutable : chmod 777 annexer
  7. Lancer la commande ./annexer LivreTest et finir avec un retour-chariot
  8. Observer le répertoire Annexer : ls -l ~/Annexer/LivreTest qui doit être vide.

Note : Si vous lancez la commande ./annexer LivreTest de n'importe répertoire, les répertoires ~/Annexer et ~/annexer LivreTest seront automatiquement créés. Il suffira de copier le fichier de commandes Annexer ou annexer.sh dans le répertoire de fichiers de commandes :
"mv ./annexer ~/Annexer/annexer" ou "mv ./annexer.sh ~/Annexer/annexer.sh"

Poursuivre avec le fichier de commandes « lister »[modifier | modifier le wikicode]

Le but est d'obtenir un fichier qui content la liste des liens vers les pages d'un de wikilivres à documenter.

Exemple par la page LivreTest.list
Cette page va nous servir pour télécharger le code html de ces pages.
https://fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest
https://fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn
https://fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleDeux
https://fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleTrois

Nous pouvons obtenir ces liens grâce aux pages « Contenus » des Versions imprimables et « Compilation » issue de la compilation d'une page. (Menu à gauche d'une page wikimedia.)
Il est aussi possible d'éditer et d'enregistrer manuellement une telle liste.

Les lignes qui méritent une attention[modifier | modifier le wikicode]

La ligne 91 dans l'édition du 11 avril 2020 :
Remarque : $Projet est un répertoire et $1.contenu est un fichier.

cat $Projet/$1.contenu | sed "s/\[\[/$SitePrefix/g" | tr '|' '\n' | sed "s/\]\]//g" | grep "wiki" > $Projet/$1.list

Cette ligne prend en compte le texte de la page Contenus de la Version imprimable du livre pour créer le fichier de liste.

La ligne elle même signifie :

  ouvrir le flux du fichier '''''$Projet/$1.contenu'''''
| filtrer et remplacer la chaîne "[[" par le préfixe du site $SitePréxixe (chaîne "https://fr.wikibooks.org/wiki/"),
| filtrer et remplacer le caractère '|' par le caractère '\n' (retour-chariot),( si ce caractère '|' existe !),
| filtrer et supprimer la chaîne "]]", (si cette chaîne exite !),
| fitrer et ne retenir que la ligne qui contient la chaîne "wiki",
  > rediriger le flux vers la création du fichier '''''$Projet/$1.list'''''.
  • Exemple d'une page Contenus de Version imprimable :
; Article maître du livre
[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest|LivreTest]]
; Contenus
[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn|ArticleUn]]<br />
[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleDeux|ArticleDeux]]<br />
[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleTrois|ArticleTrois]]
{{Autocat}}


La ligne 101 de la même édition :

cat $Projet/$1.compilé | sed "s/:\[\[/$SitePrefix/g" | tr '|' '\n' | sed "s/\]\]//g" | grep "wiki" > $Projet/$1.list

Cette ligne prend en compte le texte de la page Compilation de la Version compilée du livre pour créer le fichier de liste.

Le commentaire est le même que pour la ligne précédent à ceci près qu'au premier filtre on supprime aussi le caractère ':' du début de ligne des fichiers issus de la compilation.

  • Exemple d'une page de Compilation de Version compilée :
== LivreTest ==
=== Tests de référencement ===
; Article maître du livre
:[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest|LivreTest]]
; Contenus
:[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn]]
:[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleDeux]]
:[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleTrois]]
[[Catégorie:Compilations|LivreTest]]

Lancer les tests[modifier | modifier le wikicode]

  1. Copier le code du chapitre Lister dans un éditeur et enregitrer ce code dans le répertoire Annexe sous le nom « lister » ou « lister.sh »
  2. Autoriser l'exécution du code par la commande chmod 777 ~/Annexe/lister
  3. Copier le « Contenus » de la Version imprimable vu précédemment dans ce sous chapitre,
  4. Enregistrer ce « Contenus » dans le fichier Annexe/LivreTest/LivreTest.contenus
  5. Lancer la commande ./lister LivreTest

On devrait obtenir le fichier ~/Annexe/LivreTest/LivreTest.list :

https://fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest
https://fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn
https://fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleDeux
https://fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleTrois

Vérifier que l'on a modifié les autorisations du fichier LivreTest.contenus afin qu'il ne puisse pas être supprimé par mégarde lors des manipulations de fichiers.

~/Annexer$ ls -l ~/Annexer/LivreTest/LivreTest.contenu
-r--r--r-- 1 gc gc 353 avril  3 16:57 /home/gc/Annexer/LivreTest/LivreTest.contenu

Poursuivre avec le fichier de commandes « télécharger »[modifier | modifier le wikicode]

Le but est de télécharger tous les fichiers html qui composent le livre grâce au fichier de liste obtenu précédemment.

Les lignes qui méritent une attention[modifier | modifier le wikicode]

lignes 80 à 87 de la version du 10avril 2020

wget -r -linf -k -p -E  -i $1.list -o wget-log.txt
echo "----------"

#O créer les fichiers html des articles (sans l'extension '.html').
echo "créer les fichiers exploitables pour documenter la page Annexe et les lister dans le fichier " $Projet/$1.prj
wget -r -i $1.list -o wget-log.txt
ls --format=single-column  --hide=*.txt --hide=*.list --hide=*.prj --hide=*.annexe --hide=*.co* --hide=Sauv --hide=*.org > $Projet/$1.prj
cat $Projet/$1.prj

La première ligne crée la structure complète des répertoires et fichiers, depuis la racine du site, jusqu'aux fichiers html qui composent le livre.

La cinquième ligne crée les fichiers html à analyser, dans le répertoire courant.

La sixième ligne crée le fichier de projet $Projet/$1.prj. Ce fichier nous sera utile pour créer la page « Annexe » complète sclti concaténation de sclt et scli.
  sclti signifie : Sources, Contributeur(s), Licences, Textes, et Images; on entend par Textes les contenus des articles, et par Images toutes les illustrations.

Liste des fichiers html créés
ls -a ./LivreTest ./Article* dans le répertoire du projet LivreTest.
./ArticleDeux             ./ArticleUn             ./ArticleTrois            
./LivreTest

Lancer les tests[modifier | modifier le wikicode]

   Copier le code du chapitre Télécharger dans un éditeur et enregistrer ce code dans le répertoire Annexe sous le nom « télécharger » ou « télécharger.sh »
   Autoriser l'exécution du code par la commande chmod 777 ~/Annexe/télécharger
   Lancer la commande ./télécharger LivreTest

On devrait obtenir :

Structure complète avec la commande "wget -r -linf -k -p -E -i $1.list -o wget-log.txt"
ls -R fr.wikibooks.org/ dans le répertoire du projet LivreTest.
fr.wikibooks.org/:
robots.txt  wiki

fr.wikibooks.org/wiki:
'Utilisateur:Goelette Cardabela'

'fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela':
Sandbox

'fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox':
LivreTest  LivreTest.html

'fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest':
ArticleDeux       ArticleTrois       ArticleUn
ArticleDeux.html  ArticleTrois.html  ArticleUn.html
Liste des fichiers html créés avec la commande" wget -r -i $1.list -o wget-log.txt"
ls -a ./LivreTest ./Article* dans le répertoire du projet LivreTest.
./ArticleDeux             ./ArticleUn             ./ArticleTrois            
./LivreTest
Contenu du fichier de projet LivreTest.prj
cat LivreTest.prj dans le répertoire du projet LivreTest.
ArticleDeux
ArticleTrois
ArticleUn
LivreTest

Poursuivre avec le fichier de commandes « ajouter_sclt »[modifier | modifier le wikicode]

Le but est de créer l'entête de la page Annexe et d'y ajouter la liste des articles avec les sources, licences, contributeurs.

Les numéros des pages n'est possibles que lorsque la version imprimable aura été créée, avec une post-indexation et une post-annexion.

Les lignes qui méritent une attention[modifier | modifier le wikicode]

Remarque : Dans les explications du code on entend par projet le nom du projet entré en paramètre dans la commande ./ajouter_sclt projet

Lignes 125-126 de la version du 13 avril 2020

#O    extraire et copier toutes les chaînes de caractères de $line dans le fichier $ligne.str et les dupliquer à l'écran.
      mkd -pws '**' $Projet/$ligne $Projet/$ligne.tmp | tr ',' '\n' > $Projet/$ligne.str

mkd n'est pas inclus dans les distributions linux. les paquets et sources sont téléchargeable pour tous les systèmes d'exploitation.
Pour toute informations complémentaires : mkd (commande unix), Mkd_(Extracteur_de_documents)
Cette ligne de commandes extrait tous les commentaires avec une sortie dans un fichier projet.tmp ainsi que vers la sortie standard (l'écran par défaut) où elle est reprise pour être listée en colonne grâce au séparateur de chaînes ','.

Lignes 131-134

#O    article :
      echo ""$ligne"" >> $PageSclt
      echo ""$ligne"" >> $Projet/$ligne.article
      cat $Projet/$ligne.article

$ligne est la variable lue ligne par ligne du fichier de liste projet.prj dans une boucle tant qu'il y a des lignes à lire, faire ...
Cette ligne est aussi le nom de l'article qui va être analysé.

Lignes 136-140

#O    source :
      echo -n ", source : https://"$Site"/w/index.php?oldid=" > $Projet/$ligne.RevisionId
      cat $Projet/$ligne.str | grep -n -m 1 -i -e wgRevisionId | tr -d ':' | sed "s/\"/%/g" | cut -d'%' -f3 >> $Projet/$ligne.RevisionId
      cat $Projet/$ligne.RevisionId  >> $PageSclt
      cat $Projet/$ligne.RevisionId

La deuxième ligne crée le fichier de projet.RevisionId dans lequel on écrit une chaîne de caractères sans retour à la ligne.
La troisième ligne :

  cat ouvre le flux du fichier projet.str
| retient la ligne qui contient wgRevisionId,
| supprime le caractère ':' qu'il contient
| remplace les caractères '"' par le caractère '%'
| coupe la chaîne à l'endroit où se trouvent les caractères '%' et sélectionne le champ 3.
>> la chaîne résultante est ajoutée au fichier projet.RevisionId

Lignes 143-153

#O    licence : 
#w    licence s'écrit license en anglais (langage de base en programmation).
#echo ", Droits de copie :"  >> ArticleUn.tmp
#cat ArticleUn.str | grep -n -m 1 -i -e license | sed "s/\"\//%\//g" | cut -d'%' -f2 |sed "s/\/\//https:\/\//g"  >> ArticleUn.tmp

      echo -n ", licence : " >> $PageSclt 
      echo -n ", licence : " > $Projet/$ligne.license
      cat $Projet/$ligne.str | grep -n -m 1 -i -e license | sed "s/\"\//%\//g" | cut -d'%' -f2 | sed "s/\/\//https:\/\//g" >> $Projet/$ligne.license
      #T (french footer licence) cat $Projet/$ligne.str | grep -n -m 1 -i -e licence | sed "s/\"\//%\//g" | tr '"' '%' | cut -d'%' -f4 | sed "s/\/\//https:\/\//g" > $Projet/$ligne.licence
      cat $Projet/$ligne.license >> $PageSclt
      cat $Projet/$ligne.license

Les lignes 1 et 2 sont des commentaires à l'usage des programmeurs.
Les lignes 3 et 4 sont des lignes de tests
La ligne 6 ajoute ", ''licence'' :" au fichier projet.sclt
La ligne 7 crée le fichier projet.lisence et y ajoute la même chaîne qu'à la ligne 6
La ligne 8 :

  cat ouvre le flux du fichier projet.str,
| retient la ligne qui contient lisence,
| sélectionne la chaîne "/ et la remplace par la chaîne %/,
| supprime '%' et coupe la chaîne au caractère '%' puis sélectionne le deuxième tronçon (-f2), il existe aussi (-f2-3, -f2-4) etc.
| remplacer les caractères // par https://
>> copier la chaîne dans le fichier projet.lisence

ligne 9 : mêmes remarques que précédemment par sélection du bas de page en français avec licence.
ligne 10 : ajout de la chaîne projet.lisense au fichier projet.sclt
ligne 11 : ajout à l'écran, peut être masqué à l'écran et copié dans un fichier projet.log.txt avec la commande ./ajouter_clt projet > projet.log.txt

Lignes 155-159

#O    auteur(s) : 
      echo -n ", auteur(s) : " >> $PageSclt
      cat $Projet/$ligne.str | grep -n -m 1 -i -e wgRelevantUserName | sed "s/\"/%/g" | cut -d'%' -f4 > $Projet/$ligne.auteur
      cat $Projet/$ligne.auteur >> $PageSclt
      cat $Projet/$ligne.auteur

La ligne 1 est un commentaire
La ligne 2 ajoute la chaîne de caractères , auteur(s) : au fichier projet.sclt
la ligne 3 trie la ligne qui contient wgRelevantUserName, la chaîne est coupée et la partie de la chaîne qui contient le nom de l'utilisateur est copiée dans le fichier projet.auteur
les lignes 4 et 5 copient respectivement le contenu du fichier projet.auteur dans le fichier projet.sclt, puis à la console.

Lancer les tests[modifier | modifier le wikicode]

fichier obtenu avec la commande ~/Annexer/ajouter_sclt LivreTest
cat LivreTest.sclt dans le répertoire du projet LivreTest
= Annexe =
<references />
 
{{Nouvelle page imprimée}}
== Contenus ==
<small>
https://fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest

https://fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn

https://fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleDeux

https://fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleTrois

 
=== Source de cette édition de version imprimable ou compilée ===
https://fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest
</small>
 
{{Nouvelle page imprimée}}
== Sources licences et contributeurs des articles ==
Les ''sources'' listées pour chaque article 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.
 
<small><small>
'''ArticleDeux'''
, ''source : ''https://fr.wikibooks.org/w/index.php?oldid=632572
, ''licence : '', ''licence : ''https://creativecommons.org/licenses/by-sa/3.0/
, ''auteur(s) : ''Goelette Cardabela

'''ArticleTrois'''
, ''source : ''https://fr.wikibooks.org/w/index.php?oldid=632573
, ''licence : '', ''licence : ''https://creativecommons.org/licenses/by-sa/3.0/
, ''auteur(s) : ''Goelette Cardabela

'''ArticleUn'''
, ''source : ''https://fr.wikibooks.org/w/index.php?oldid=632571
, ''licence : '', ''licence : ''https://creativecommons.org/licenses/by-sa/3.0/
, ''auteur(s) : ''Goelette Cardabela

'''LivreTest'''
, ''source : ''https://fr.wikibooks.org/w/index.php?oldid=632562
, ''licence : '', ''licence : ''https://creativecommons.org/licenses/by-sa/3.0/
, ''auteur(s) : ''Goelette Cardabela

</small></small>
{{Nouvelle page imprimée}}

Poursuivre avec le fichier de commandes « ajouter_scli »[modifier | modifier le wikicode]

Dans les articles on inclut des illustrations, des images, des photos, le but est d'extraire de ces articles; les liens vers ces fichiers, ainsi que les licences, auteurs, voire le chapitre ou le sous chapitre, afin de les retrouver dans les textes, faute de numéro de page.

Le fichier d'entête[modifier | modifier le wikicode]

Ce fichier doit être inclus dans le fichier de commandes ajouter_scli

#! /bin/bash
#P Nom du fichier de commandes : header ou header.sh
#P Syntaxe : "annexer <nom du livre>"
#P Exemple : "./annexer LivreTest" à la console pour les essais.
#P Ce fichier d'entête est commun aux fichiers de commandes annexer, lister, télécharger, ajouter_sclt, dans lesquels ils sont inclus.
#P    Il doit être inclus dans le fichier de commandes ajouter_scli par la commande "source". Exemple : "source header.sh"
#P Date de création : 24 mars 2020
#P Modifié le : 12 avril 2020 par GC
#P Version sur WikiLivres le : 127 avril 2020

#H vider (nettoyer) l'écran.
clear

#Initialiser le répertoire des commandes.
RepCom=~/Annexer
echo "Répertoire des commandes : "$RepCom

#H tester la présence du répertoire racine des commandes, si il n'existe pas, le créer.
if test -d $RepCom
   then 
      echo "Le répertoire des commandes : "$RepCom" est correct !";
   else
      mkdir $RepCom
      echo "Le répertoire de travail "$RepCom" a été créé !";
fi
cd $RepCom

#T echo "Paramètre d'entrée : "$1
#T exit 2

#H tester la présence du paramètre de la ligne de commandes
if test -z "$1"
    then echo "Erreur, pas de paramètre en entrée : le paramètre est \"${1}\" "
	   echo "Syntaxe de la commande : $0 <fichier>, (exemple : $0 LivreTest)"
	   echo " "
	   exit 1;
	else echo "Projet : création de la page "$1.annexe" du livre : \"${1}\" "
fi

#H initialiser la variable "Projet" = répertoire de projet.
Projet=$RepCom/$1
echo "Répertoitre de projet : "$Projet
echo "----------"
#T read -p "Si tout est correct : retour-chariot une pour continuer, Ctrl-C pour quitter >"

#H tester la présence du répertoire du projet, si il n'existe pas, le créer.
if test -d $Projet
   then 
      echo "Le répertoire des commandes : "$Projet" est correct !";
   else
      mkdir $Projet
      echo "Le répertoire de travail "$Projet" a été créé !";
fi

#H initialiser les variables 'Site' (nom du serveur) et 'SitePrefix'.
Site="fr.wikibooks.org"
SitePrefix="https:\/\/fr.wikibooks.org\/wiki\/"

#H nettoyer l'écran, afficher les variables globales et le contenu du répertoire de projet.
#T clear
echo "----------"
echo "Nom du projet: "$1
echo "Site: "$Site
echo "Préfixe du site: "$SitePrefix
echo "----------"
echo "Liste des pages et articles à analyser, fichier : "$Projet/$1".list si il existe."
if test -a $Projet/$1.list;
   then 
      echo "le fichier : "$Projet/$1".list existe."; 
   else 
   echo -e "\033[31mle fichier : "$Projet/$1".list n'a pas encore été créé.\033[0m";
fi
ls -al $Projet 
echo "----------"

#H entrer dans la répertoire de travail.
cd $Projet
  1. https://korben.info/installer-shell-bash-linux-windows-10.html
  2. http://montefiore.ulg.ac.be/~nvecoven/ci/files/tuto_bash/tuto_bash.html