Auto-éditer un wikilivre/Annexer (Version orignale)/Version imprimable
Goelette Cardabela Auto-éditer un wikilivre Annexer (Version orignale) |
Auto-éditer un wikilivre
Annexer (Version orignale)
Éditeur : Goelette Cardabela
Table des matières par chapitres
modifier1 Table des matières par chapitres 5
- Programmes d'installation et de dépendances
2 Installer les fichiers de l'application 7 3 LivreTest.contenu 9 4 LivreTest.compilé 9
- Programmes sources
5 header.inc.sh 12 5.1 header.inc.sh 13 5.1.1 ctrl-header.inc.bash 17 5.1.2 test-header.inc.bash18 6 lister.sh 19 7 télécharger.sh 24 8 ajouter_sclt.sh 28 9 ajouter_sclic.sh 33 10 ajouter_sclip.inc.sh 11 sclipwb.sh 43 12 sclipco.sh 48 13 annexer.sh 52
- Progammes de maintenance
14 cp-localsrc-2-localbin 61
- Manuels
15 Manuel linux annexer_fr.1 64 15.1 Code 65 15.2 Aperçu 66 16 Manuel annexer_fr.html 70 16.1 Code 70 16.2 Aperçu html 72 16.3 Aperçu annexer_fr.txt 74 17 makeman_annexer.sh 77
Annexer_(Version_orignale)
Installer les fichiers de l'application
Éditeur : Goelette Cardabela
Installer les fichiers de l'application
modifier- Préinstaller l'application sur le PC
- Note : BASH doit être installé sur le PC; il existe en standard sous linux.
- 1. Copier le code suivant dans un terminal de votre PC, et exécuter la commande.
mkdir ~/Tmp ~/Annexer ~/Annexer/src ~/Annexer/man ~/Annexer/LivreTest;
- 2. La méthode d'installation manuelle est la plus simple.
Copier et coller les codes de l'application, dans un éditeur de texte, les enregistrer dans le répertoire ~/Annexer que vous venez de créer.
- 3. Contenu du répertoire Annexer après l'installation
ajouter_sclic ajouter_sclip.inc ajouter_sclt annexer données_de_conversions header.inc lister LivreTest man sclipco sclipwb src télécharger
- Les sources shell.sh sont copiées dans le répertoire Annexer/src, les manuels dans Annexer/man, LivreTest est créé pour l'exécution de Annexer LivreTest
Annexer_(Version_orignale)
Fichiers pour les tests
Éditeur : Goelette Cardabela
Fichiers pour les tests avec LivreTest
modifier- Article maître du livre
- Le lien suivant est nécessaire pour les livres qui n'ont pas leur page à la racine de wikibooks. On peut éviter cette ligne avec la commande :
annexer Utilisateur:Goelette_Cardabela/Sandbox/LivreTest en remplacement de annexer LivreTest,
au risque de saturer le buffer de la ligne de commandes et de provoquer un dysfonctionnement de l'application annexer.
Utilisateur:Goelette_Cardabela/Sandbox/LivreTest
- Contenus
ArticleUn
ArticleDeux
ArticleTrois
LivreTest
modifierTests de référencement
modifier- Article maître du livre
- LivreTest
- Contenus
- Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn
- Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleDeux
- Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleTrois
Annexer_(Version_orignale)
Téléchargement de l'application
Éditeur : Goelette Cardabela
Téléchargement de l'application
modifierIl est possible de télécharger cette application expérimentale à but éducatif à l'adresse ci-dessous : Annexer-fr_200701.zip Copies des articles avec le lien ci-dessous.
md5sum : c4825faa84eef1514d72edb0bd7b394e Annexer-fr_200701.zip.
Les droits de copies et de partages sont ceux des articles de wikilivres téléchargés.
Remarque concernant l'état du serveur de téléchargements
Annexer_(Version_orignale)
header.inc.sh
Éditeur : Goelette Cardabela
Fichier d'entête, inclus dans tous les modules. Version 210505
header.inc.sh
modifier- Ce code est à transcrire dans le répertoire ~/Annexer/tests/header.inc.sh et ne doit pas être exécutable.
- Lorsque le code est éprouvé, le transcrire dans le répertoire ~/Annexer/src
- Le code header.inc validé peut être transcrit dans le répertoire ~/Annexer/bin et ne doit pas être exécutable, le code doit être inclus dans un programme appelant par la commande 'source ~/Annexer/bin/header.inc'
- Notez que ce code a été testé et peut être copié dans le répertoire des sources sans subir de tests préablables.
#! /bin/bash
# VERSION=200623
VERSION=210505
#H Nom du fichier de commandes : header.sh ou header.inc.sh (30 mai 2020)
#H Syntaxe : "./header.inc.sh <nom du livre>"
#H Exemple : "./header.inc.sh LivreTest" à la console pour les essais.
#H Ce fichier d'entête est commun aux fichiers de commandes annexer, lister,
#H télécharger, ajouter_sclt, ajouter_sclip dans lesquels ils sont inclus.
#H Date de création : 24 mars 2020
#H Modifié le : 14 mai 2020 par GC ajout des "données_de_conversions" url->utf8
#H Modifié le : 16 mai 2020 par GC maj de la nouvelle syntaxe de la commande.
#H Modifié le : 30 mai 2020 par GC maj pour l'installation automatique.
#H Modifié le 04 mai 2021 par JPL suppression des caractères ';' en fin de ligne
#H Modifié le 05 mai 2021 par JPL modification de la structure des répertoires
#H Version sur WikiLivres le : 17 mai 2020
#H
#D Le fichier de commandes header.sh doit être inclus dans tous les modules
#D de test du programme principal. Il initialise le répertoire des commandes,
#D le répertoire de travail du projet; le projet est le nom du livre, de
#D l'article ou de la page. Si ils n'existent pas ils seront créés
#D Ce projet éducatif et de tests est destiné à être utilisé sous wikilivres
#D en langue française et en caractères UTF8.
#D Les variables Site et SitePrefix se rapportent à "fr.wikibooks.org".
#D Le programme est prévu pour fonctionner à l'initiative du contributeur qui
#D qui doit copier la page "Contenus" ou la page de la compilation dans le
#D répertoire de travail "~/Annexe/<nom du livre>"
#D Les modules en tests sont indépendants, cependant ils doivent être exécutés
#D dans l'ordre ./header.sh <livre>, ./lister <livre>, ./télécharger <livre>
#D ./ajouter_sclt <livre>, ./ajouter_sclic, ./ajouter_sclip <livre>
#D La liste des pages à analyser est indispensable dans tous les modules en
#D tests. L'absence de la liste des pages à analyser est signalée à chaque
#D lancement des modules du programme principal "Annexer"
#D
#D AVERTISSEMENT : Ce programme avec ses modules doit être utilisé par des
#D wikipédiens, à titre personnel. La structure du résultat est voisine de
#D l'impression par PediaPress. Pour cette raison ce programme n'est pas
#D commercialisable.
#D
#P Note : L'extraction de la documentation peut se faire par les commandes :
#P Documentation :
#P mkd -Stw D header.sh <livre>_doc/header.inc.sh.D.doc
#P grep -e '#D' header.inc.sh | sed s/#D//g > <livre>_doc/header.inc.sh.D.doc
#P Organigrammes :
#P grep -e -n '#H' -e '#P' -e '#w' header.sh
#P ou : grep -E "#H|#P|#w" header.sh > <livre>_doc/header.sh.HPw.doc
#P Exemples :
#P mkd -Stw D header.inc.sh LivreTest_doc/header.inc.sh.D.doc
#P grep -e '#D' header.sh | sed s/#D//g > LivreTest_doc/header.sh.D.doc
#P grep -n -E "#O|#P|#w" header.sh > LivreTest_doc/header.sh.HPw.doc
#P
#O Vider (nettoyer) l'écran.
clear
echo $0, $1
#T Test break exit 0
#O Si l'option --t est présente, afficher la version de header.inc
if [ "$0" = "./test-header.inc.bash" ] && [ "$1" = "--t" ]
then
echo "header.inc : Version "$VERSION
sleep 2
fi
#T Test break exit 0
#O Initialiser les répertoires des commandes et des données.
RepRef=~/Annexer
RepCom=~/Annexer/bin
RepConv=~/Annexer/datas
#O Tester la présence du répertoire des commandes, si il n'existe pas,
#O le créer
echo "Test de présence du répertoire des commandes : "$RepCom
if test -d $RepCom
then
echo " Le répertoire des commandes : "$RepCom" est présent !"
else
mkdir $RepCom
echo " Le répertoire des commandes "$RepCom" a été créé !"
fi
#O Tester la présence du répertoire des données, si il n'existe pas,
#O le créer
echo "Test de présence du répertoire des données : "$RepConv
if test -d $RepConv
then
echo " Le répertoire des données : "$RepConv" est présent !"
else
mkdir $RepConv
echo " Le répertoire des données "$RepConv" a été créé !"
fi
#O Initialiser la variable Conversion avec le lien vers le fichier
#O Données_de_conversion
Conversions=~/Annexer/datas/données_de_conversions
#O Si le programme de test de header.inc est actif, alors vérifier la
#O présence du fichier de données
if [ "$0" = "./test-header.inc.bash" ] && [ "$1" = "--t" ]
then
if test -a $Conversions
then echo " Le fichier données_de_conversion est présent il ne sera pas actualisé."
else
{
echo "s/%E2%80%99/&#8217;/g;s/%E2%82%AC/&#8364;/g;s/%2F///g;s/%3F/?/g;" > $Conversions
echo "s/%24/$/g;s/%21/!/g;s/%25/%/g;s/%2B/+/g;s/%3C/\&lt;/g;s/%3E/&gt;/g;" >> $Conversions
echo "s/%5C/\/g;s/%B0/°/g" >> $Conversions
echo "s/%E0/à/g;s/%E2/â/g" >> $Conversions
echo "s/%E8/è/g;s/%E9/é/g;s/%EA/ê/g;s/%EB/ë/g" >> $Conversions
echo "s/%EE/î/g;s/%EF/ï/g" >> $Conversions
echo "s/%F4/ô/g" >> $Conversions
echo "s/%F9/ù/g;s/%FB/û/g" >> $Conversions
echo 's/%2C/,/g;s/%21/!/g;s/%3F/?/g;s/%40/@/g;s/%23/#/g;s/%24/$/g' >> $Conversions
echo "s/%25/%/g;" >> $Conversions
echo "s/%26/&#x26;/g;" >> $Conversions
echo "s/%28/(/g;s/%29/)/g;" >> $Conversions
echo "s/%2B/+/g;" >> $Conversions
echo "s/%3A/:/g;" >> $Conversions
echo "s/%3D/=/g;" >> $Conversions
echo "s/%5B/[/g;" >> $Conversions
echo "s/%5D/]/g" >> $Conversions
echo "s/%3B/;/g;s/%2F///g;s/%27//g" >> $Conversions
echo 's/%22/"/g' >> $Conversions
echo "s/%C3%A7/ç/g;s/%E7/ç/g" >> $Conversions
echo "s/+/ /g;s/%7E/~/g;s/\/&#92;/g" >> $Conversions
echo "s/%0D/&#x0D;/g;s/%0A/&#x0A;/g" >> $Conversions
echo "s/%C3%A0/à/g;s/%C3%A2/â/g" >> $Conversions
echo "s/%C3%A9/é/g;s/%C3%A8/è/g;s/%C3%AA/ê/g" >> $Conversions
echo "s/%C3%AE/î/g;s/%C3%AF/ï/g" >> $Conversions
echo "s/%C3%B4/ô/g" >> $Conversions
echo "s/%C3%B9/ù/g;s/%C3%BB/û/g" >> $Conversions
echo "s/%C2%B7/-/g;s/%C2%AB/«/g;s/%C2%BB/»/g" >> $Conversions
}
echo " Le fichier '$Conversions' est créé."
fi
fi
#T cat $RepCom/$Conversions
#T exit
#T echo "https://fr.wikibooks.org/wiki/Fichier:Commerce_de_communaut%C3%A9s_indig%C3%A8nes.JPG"| sed -f $RepCom/$Conversions
#T exit
#T
#T echo "Paramètre d'entrée : "$1
#T exit 2
#O Créer la foncion header_syntax en mode test.
function header_syntax
{
echo "Syntaxe de la commande header.inc en mode tests: header.inc [ --t | <livre>" ]
echo -e "\033[1m-> ATTENTION\033[0m : Le nom du livre ne doit pas contenir le caractère 'espace'"
echo "Exemples : 'test-header.inc.bash Faire_fleurir_le_sel' ou"
echo " 'test-header.inc.bash ?' ou"
echo " 'test-header.inc.bash --t' "
echo " Le premier paramètre est transmis à la commande header.inc"
#w seulement avec la commande 'Annexer'
#w echo "ou header.inc <livre> [-v] [-pb||-pc]"
#w echo "options -v:mode bavard, -pb ou -pc:versions personnalisées Wikibooks ou Commons."
echo
}
#O Tester la présence du premier paramètre de la ligne de commandes
if test -z "$1"
then
echo "-----"
echo "Erreur, pas de paramètre en entrée"
header_syntax
exit 1;
fi
if test $1; then
if [ $1 = '?' ]
then
header_syntax
exit 0
fi
fi
if [ "$1" != "--t" ]
then
echo "Projet : création de la page '$1.annexe' du livre : $1"
#O Initialiser la variable "Projet" = répertoire de projet.
Projet=$RepRef/$1
echo "Répertoitre de projet : "$Projet
echo "----------"
else
echo -e "\033[33m Le projet n'est pas défini veuillez entrer un paramètre valide. \033[0m"
exit 0
fi
#T
read -p "Si tout est correct : retour-chariot une pour continuer, Ctrl-C pour quitter >"
#O 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 de projet : "$Projet" est correct !"
else
mkdir $Projet
echo "Le répertoire de projet "$Projet" a été créé !"
fi
#O Initialiser les variables 'Site' (nom du serveur) et 'SitePrefix'.
Site="fr.wikibooks.org"
SitePrefix="https://fr.wikibooks.org/wiki/"
#O 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 pour la commande shell sed."
echo "----------"
echo "Liste des liens vers les articles à analyser:"
echo "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
echo "----------"
echo "Liste des pages et articles à analyser:"
echo "fichier : "$Projet/$1".prj si il existe."
if test -a $Projet/$1.prj;
then
echo "le fichier : "$Projet/$1".prj existe."
else
echo -e "\033[31mle fichier : "$Projet/$1".prj n'a pas encore été créé.\033[0m"
fi
echo "----------"
echo "Contenu du répertoire de travail du projet:"
ls -al $Projet
echo "----------"
# Fin header.inc.sh
ctrl-header.inc.bash
modifierCe code est à transcrire dans le répertoire ~/Annexer/tests/header.inc.sh et doit être rendu exécutable (chmod 755 ctrl-header.inc.bash)
- ctrl-header.inc.bash contrôle des codes de header.inc.sh
- vérifie que les lignes de codes ne contiennent pas de commentaire et lance les tests de validation avec test-header.inc.bash ci-après.
#! /bin/bash
#H file : ctrl-header.inc.bash
VERSION=210505
# Remplacer 'file.sh' par le nom du fichier de codes, exemple 'annexer.sh'
# Control if the local file.sh is clean
echo -e "\033[1;33m Control header.inc.sh in the local test directory \033[0m" > text-control.txt
echo -e "\033[1;33m Please check that the comment line does not contain an command \033[0m" >> text-control.txt
grep -n -e "#O\|#P\|#T" header.inc.sh >> text-control.txt
more text-control.txt
#T echo -e "\033[31m ROUGE \033[0m"
#T echo -e "\033[1;33m Please check that the comment line does not contain an command \033[0m"
echo; echo "Continue ? y/n"
read -s -e -n 1 -t 60 -p "y/n ? : " Inkey;echo
#T echo "Inkey = $Inkey"
if [ "$Inkey" != 'y' ]; then echo " Inkey is not yes, or time out after 60 sec, exit from $0"; exit 0;fi
# Copy file.sh file to fil without #O, #P,#T
ls -l header.*
echo -e "\033[1;33m Is the .sh file newer than the file without an extension ? \033[0m"
echo -e "\033[1;33m Le fichier .sh est-il plus récent que le fichier sans extension ? \033[0m"
read -s -e -n 1 -t 60 -p "y/n ? : " Inkey;echo
#T echo "Inkey = $Inkey"
if [ "$Inkey" != 'y' ]; then echo " Inkey is not yes, or time out after 60 sec, exit from $0"; exit 0;fi
cat header.inc.sh | grep -v "#O\|#P\|#T" > header.inc
echo " Test sans paramètre"
./test-header.inc.bash
sleep 5
echo " Test avec paramètre '?'"
./test-header.inc.bash ?
sleep 5
echo " Test avec paramètre '--t'"
./test-header.inc.bash --t
sleep 5
echo " Test avec paramètre 'LivreTest'"
./test-header.inc.bash LivreTest
sleep 5
test-header.inc.bash
modifierCe code est à transcrire dans le répertoire ~/Annexer/tests/header.inc.sh et doit être rendu exécutable
#! /bin/bash
#H file : test-header.inc.bash
#H Syntaxe : ./test-header.inc.bash [ ? | --t | <livre> ]
VERSION=210505
# Begin tests
echo "Premier paramètre : $1"
if test -z $1
then
echo " Syntaxe : ./test-header.inc.bash [ ? | --t | <livre> ]"
exit -1
fi
source header.inc
echo "retour : $?"
Annexer_(Version_orignale)
lister.sh
Éditeur : Goelette Cardabela
Crée les fichiers de listes pour les modules suivants. Version obsolète 200701
#! /bin/bash
# Fichier : lister.sh
VERSION=200701
#P Nom du fichier de commandes : lister
#P Syntaxe : "lister <nom du livre>"
#P Exemple : "./lister LivreTest" à la console.
#P Date de création : 26 mars 2020
#P Modifié le : 26 avril 2020 par GC
#P Modifié le : 30 mai 2020 par GC pour l'installation automatique.
#P Modifié le : 30 juin par GC pour inclure les sommaires aux fichiers de liste
#P Version de documentation sur WikiLivres le : 26 avril 2020
#P
#P LES FICHIERS DE COMMANDES
#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.
#D L'objet de cette commande est de créer le fichier de liste $Projet/$1.list
#D avec le fichier "contenu" prioritaire, sinon avec le fichier "compilé"
#D si il existe.
#D Le 23 avril; créer la liste de projet $Projet/$1.prj a été jugée nécessaire
#D pour que l'utilisation des boucles de commandes s'exécutent dans l'ordre
#D de présentation des textes et des images afin de créer la page "Annexe"
#D du livre (ou de la page).
#D
#D Si le fichier "<livre>.contenu" (copie de la page "Contenus" de la version
#D imprimable) n'exite pas le programme teste la présence du fichier de
#D compilation "<livre>.compilé", et si celui-ci n'est pas présent le
#D programme se termine avec un code de retour à 1.
#D Lorsque le programme se termine normalement le code de retour est 0, le
#D fichier examiné aura été protégé contre l'effacement, donc en lecture
#D seule, et le fichier projet.list aura été créé.
#D Le contenu des listes sont affichés pour être validés.
#D
#P L'extraction de la documentation peut se faire par la commande :
#P mkd -Stw DP lister
#O inclure le fichier d'entête header.sh
source header.inc
#O## lister #################
if [ $0=lister ]; then echo "lister : Version "$VERSION; fi
#O effacer tous les fichiers *.list,
rm *.list
#O initialiser la variable de retour à 0
retour=0
err1=1 #P initialise une valeur d'erreur
#T echo "retour = "$retour
#T echo "valeur d'erreur de retour N°1 = "$err1
#T exit
#O initialisation du fichier de liste avec la page racine du livre
echo "https://$Site/wiki/$1" > $Projet/$1.list
#O créer le fichier de liste $Projet/$1.list avec les fichiers "contenu" ou
#O "contenus" prioritaires, ou avec les fichier "Sommaire" ou
#O "Sommaire_du_livre", sinon avec le fichier "compilé" si ils existent.
#O
#O si un fichier de contenu existen, affecter la variable $Contenu, protéger
#O le fichier conte l'écriture.
#P REMARQUE:les extensions en majuscules peuvent avoir tét produites par la
#P fonction "findbook.sh" par la commande "findbook.sh [ url ]" du sommaire
#P ou du fichier de Contenus de la version imprimable du livre.
#P Exemple : (findbook.sh se trouve dans le répertoire ~/Annexer/bin)
#P ./findbook https://fr.wikibooks.org/w/index.php?title=Goélette_Cardabela/Sommaire_du_livre
#P Dans ce cas le répertoire du projet aura été créé dans ~/Annexer, et le
#P fichier "Contenu=$Projet/$1.Sommaire" du_livre aura été créé dans ce
#P répertoire.
if test -r $Projet/$1.contenu; then Contenu=$Projet/$1.contenu; fi
if test -r $Projet/$1.Contenus; then Contenu=$Projet/$1.Contenus;fi
if test -r $Projet/$1.compilé; then Contenu=$Projet/$1.compilé;fi
if test -r $Projet/$1.Sommaire; then Contenu=$Projet/$1.Sommaire;fi
if test -r $Projet/$1.Sommaire_du_livre; then Contenu=$Projet/$1.Sommaire_du_livre;fi
chmod 444 $Contenu
echo "Contenu : "; ls -l $Contenu
#O si la variable "$Contenu" n'existe pas existe ou n'est pas vide,
if test -z $Contenu
#O alors : afficher les raisons de l'échec et recommander la marche à suivre.
then
clear
echo "Les pages $Projet/$1.contenu et $Projet/$1.compilé n'ont pas été trouvées"
echo ""
echo -e "\033[31m copier la page 'Contenus' du livre dans le fichier $Projet/$1.contenu \033[0m"
echo ""
echo -e "\033[31m ou : copier la page de compilation dans le fichier $Projet/$1.compilé \033[0m"
let retour+=1;
#O afficher le code de retour de la commande et quitter.
#P Le code $retour n'est valable que pour un appel de fonction n'est pas pour
#P une commande directe.
if "$O" != "./lister"
then
echo "code de retour : $retour"
return $retour
else
exit $retour
fi
#O fin si la variable "$Contenu" n'existe pas existe ou n'est pas vide,
fi
#O si la variable "$Contenu" est égale à la chaîne "$Projet/$1.contenu" ou "$Projet/$1.Contenus"
if [ "$Contenu" = "$Projet/$1.Contenu" ] || [ "$Contenu" = "$Projet/$1.Contenus" ]
#O alors :
then
{
#O créer la liste des articles de la page avec la page de Contenus du livre.
echo ""
echo "$Projet/$1.list avec $Contenu :"
cat $Contenu | sed "s/\[\[/$SitePrefix/g" | tr '|' '\n' | sed "s/\]\]//g" | grep "wiki" | tr ' ' '_' >> $Projet/$1.list
#O créer le fichier de projet avec la page de Contenus du livre.
cat $Contenu | grep $1 | sed "s/\[\[//g" | tr '|' '\n' |grep $1 | sed "s/$1\]\]/\r/g" | sed "s/\]\]//g" | cut -sd '/' -f2-5 > $Projet/$1.prj
}
fi
#O si le fichier LivreTest.compilé existe,
if test -r $Projet/$1".compilé"
#O alors :
then
{
#O créer la liste avec la page compilée.
echo ""
echo "$Projet/$1.list avec $Projet/$1.compilé :"
cat $Projet/$1.compilé | sed "s/:\[\[/$SitePrefix/g" | tr '|' '\n' | sed "s/\]\]//g" | grep "wiki" | tr ' ' '_' >> $Projet/$1.list
#O créer le fichier de projet avec la page compilée
cat $1.compilé | grep $1 | sed "s/:\[\[//g" | tr '|' '\n' | grep $1 | sed "s/$1\]\]/\r/g" | sed "s/\]\]//g" | cut -sd '/' -f2-5 > $Projet/$1.prj
}
fi
#O si la variable "$Contenu" est égale à la chaîne "$Projet/$1.Sommaire" ou "$Projet/$1.Sommaire_du_livre"
if [ "$Contenu" = "$Projet/$1.Sommaire" ] || [ "$Contenu" = "$Projet/$1.Sommaire_du_livre" ]
#O alors :
then
{
#O créer la liste des articles de la page avec la page de Contenus du livre.
echo ""
echo "$Projet/$1.list avec $Contenu :"
cat $Contenu | sed "s/\[\[/\n$SitePrefix/g" | grep -e "https:" | grep -v "Catégorie:" | grep -v "#" | sed "s/{{BASEPAGENAME}}/$1/g" | tr '|' '\n' | sed "s/\]\]//g" | grep "wiki" | tr ' ' '_' >> $Projet/$1.list
exit 0
#cat $Contenu | sed "s/\[\[/$SitePrefix/g" | tr '|' '\n' | sed "s/\]\]//g" | grep "wiki" | tr ' ' '_' >> $Projet/$1.list
#O créer le fichier de projet avec la page de Contenus du livre.
cat $Contenu | grep "[[" | sed "s/\[\[//g" | tr '|' '\n' | grep $1 | sed "s/$1\]\]/\r/g" | sed "s/\]\]//g" | cut -sd '/' -f2-5 > $Projet/$1.prj
}
fi
#O afficher les listes pour contrôle et retourner la valeur 0 si tout est correct.
echo ""
echo " fichier Projet.list"
cat $Projet/$1.list
echo ""
echo " fichier Projet.prj"
cat $Projet/$1.prj
echo " "
read -p "Si tout est correct : retour-chariot pour continuer, Ctrl-C pour quitter > "
exit 0
# Fin lister.sh
Annexer_(Version_orignale)
télécharger.sh
Éditeur : Goelette Cardabela
Télécharge les pages de Wikilivres selon les listes générées.Version obsolète 200623
#! /bin/bash
# Fichier : télécharger.sh
VERSION=200623
#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 Modifié le : 30 mai 2020 par GC pour l'installation automatique.
#P Version de la documentation sur WikiLivres le : 26 avril 2020
#P
#P LES FICHIERS DE COMMANDES
#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## 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.inc
#O## télécharger ############
if [ $0=télécharger ]; then echo "télécharger : Version "$VERSION; fi
#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 >"
exit 0
# Fin télécharger.sh
Annexer_(Version_orignale)
ajouter_sclt.sh
Éditeur : Goelette Cardabela
Ajoute l'entête pour les textes et les articles de l'Annexe. Version obsolète 210125
#! /bin/bash
# Fichier : ajouter_sclt.sh
VERSION=210125
#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 : par GC le 1er mai 2020
#P Modifié le : par GC pour l'installation automatique.
#P Version de la documentation sur WikiLivres le : 30 avril 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 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.
#P
#P## télécharger ############
#P la commande aura téléchargé toutes les page du livre et aura copié les pages
#P html dans des répertoires qui leurs sont dédiés pour y extraire toute la
#P documentation nécessaire à la création de la page "Annexe" du livre.
#w à ce stade, pour les tests; on dispose des répertoires de travail :
#w 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 de commandes aura créé les fichiers de listes :
#P $Projet/$1.dirs, $Projet/$1.list, $Projet/$1.mainPage, $Projet/$1.prj
#P
#D La commande ./ajouter-sclt <wikilivre> commence par créer la page
#D $Projet/$1.sclt comme elle apparaîtra dans la première partie de la page
#D "Annexe" du livre avec les titre en wikitexte et les sections :
#D Références: toutes celles qui n'ont pas été affichées dans les pages.
#D Contenus: liens établis vers la page du livre et les articles (sous-pages)
#D Source de l'édition: lien vers la page qui a permis de créer l' "Annexe".
#D Sources licences et contributeurs des articles: ne concerne que les
#D articles, les sous-pages.
#D
#O inclure le fichier d'entête header.sh
source header.inc
if [ $0=ajouter_sclt ]; then echo "ajouter_sclt : Version "$VERSION; fi
#O## ajouter_sclt ###########
PageSclt=$Projet/$1.sclt
echo $PageSclt
cd $Projet
#T exit 0
#O but final: créer la page "Annexe" avec les pages Projet.sclt et Projet.scli.
#O ---
#O créer la page PageSclt=$Projet/$1.sclt et afficher son contenu.
echo "créer la page "$PageSclt
echo "----------"
echo "= Annexe =" > $PageSclt
echo "" >> $PageSclt
#O ajouter la balise <references />
echo "== Références ==" >> $PageSclt
echo "<references />" >> $PageSclt
echo " " >> $PageSclt
echo "{{Nouvelle page imprimée}}" >> $PageSclt
#? (option) ajouter la liste créée avec la page "Contenus" de la version imprimable ou la page compilée ?
#O ajouter le lien vers : la page du livre imprimable, et vers les articles.
echo "== Contenus ==" >> $PageSclt
echo "<div style="font-zize:85%";>" >> $PageSclt
cat $Projet/$1".list" | tr ' ' '_' | tr '\n' '%' | sed "s/%/\n\n/g" >> $PageSclt
echo "</div>" >> $PageSclt
#0 ajouter lien vers la source de cette édition.
echo "=== Source de cette édition ===" >> $PageSclt
echo "<div style="font-zize:85%";>" >> $PageSclt
echo -n "https://" >> $PageSclt
cat $Projet/$1.mainPage |sed "s/\\\ /_/g" >> $PageSclt
#P autre version : cat $Projet/$1".list" | tr ' ' '_' | tr '\n' '%' | sed "s/%/%\n/g" | grep $1% | tr -d % >> $PageSclt
echo "</div>" >> $PageSclt
echo " " >> $PageSclt
echo "{{Nouvelle page imprimée}}" >> $PageSclt
#O créer la section 'Article', 'Source', 'licence', 'Contributeur(?)'
echo "== Sources licences et contributeurs des articles ==" >> $PageSclt
#O ajouter le texte : style PediaPress ou personnalisé.
#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-zize:85%";>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.</span>" >> $PageSclt
#O ou, valider l'un ou l'autre de ces textes :
#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-zize: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>" >> $PageSclt
echo " " >> $PageSclt
echo "<div style="font-zize:72%";>" >> $PageSclt
#T exit 0
#T echo -n "Répertoire courant : "
#T pwd
echo "----------"
#O Créer ou recréer le fichier de liste $Projet/$1.pj
cat $Projet/$1.list | awk -F"/" '{ print $NF }' > $Projet/$1.pj
#Liste=~/Annexer/$1/$1.pj
Liste=$Projet/$1.pj
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 du fichier html
#O $ligne.html dans le fichier $ligne.str et les dupliquer à l'écran
#T pwd
mkd -pws '**' "$ligne/$ligne.html" $Projet/$ligne/$ligne.tmp | tr ',' '\n' > $Projet/$ligne/$ligne.str
#T break
#O créer les fichiers de documentation des pages :
echo "*** Références : articles, src, lic, contrib. "
#O article,
if [ $ligne != $1 ]
then
echo "'''"$ligne"'''" >> $PageSclt
fi
echo "'''"$ligne"'''" > $Projet/$ligne/$ligne.article
cat $Projet/$ligne/$ligne.article
#O source,
echo -n ", ''source : ''https://"$Site"/w/index.php?oldid=" > $Projet/$ligne/$ligne.RevisionId
cat $Projet/$ligne/$ligne.str | grep -n -m 1 -i -e wgRevisionId | tr -d ':' | sed "s/\"/%/g" | cut -d'%' -f3 >> $Projet/$ligne/$ligne.RevisionId
if [ $ligne != $1 ]
then
cat $Projet/$ligne/$ligne.RevisionId >> $PageSclt
fi
cat $Projet/$ligne/$ligne.RevisionId
#P licence du bas de page :
#P <li id="footer-info-copyright">Les textes sont disponibles sous <a href="https://creativecommons.org/licenses/by-sa/3.0/">licence Creative Commons attribution partage à l’identique</a> ; d’autres termes peuvent s’appliquer.<br/>
#P Voyez les <a href="https://wikimediafoundation.org/wiki/Conditions_d'utilisation">termes d’utilisation</a> pour plus de détails.<br/></li>
#P
#P license :
#P licence s'écrit license en anglais (langage de base en programmation).
#P <link rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/"/>
#T echo ", ''Droits de copie :''" >> ArticleUn.tmp
#T cat ArticleUn.str | grep -n -m 1 -i -e license | sed "s/\"\//%\//g" | cut -d'%' -f2 |sed "s/\/\//https:\/\//g" >> ArticleUn.tmp
#O license :
echo -n ", ''licence : ''" > $Projet/$ligne/$ligne.license
#T cat $Projet/$ligne/$ligne.str | grep -n -m 1 -i -e license | sed "s/\"\//%\//g" | cut -d'%' -f4 >> $Projet/$ligne/$ligne.license
cat $Projet/$ligne/$ligne.str | grep -n -m 1 -i -e license | sed "s/\"\//%\//g" | tr '"' '%' | cut -d'%' -f4 >> $Projet/$ligne/$ligne.license
#T cat $Projet/$ligne/$ligne.str | grep -n -m 1 -i -e license | sed "s/\"\//%\//g" | cut -d'%' -f2 | sed "s/\/\//https:\/\//g" >> $Projet/$ligne/$ligne.license
if [ $ligne != $1 ]
then
cat $Projet/$ligne/$ligne.license >> $PageSclt
fi
cat $Projet/$ligne/$ligne.license
#
#P spécial pour bas de page fr ##
cat $Projet/$ligne/$ligne.str | grep -n -m 1 -i -e footer-info-copyright | sed "s/\"\//%\//g" | tr '"' '%' | cut -d'%' -f4 > $Projet/$ligne/$ligne.licence
#O auteur(s).
echo -n ", ''auteur(s) : ''" > $Projet/$ligne/$ligne.auteur
cat $Projet/$ligne/$ligne.str | grep -n -m 1 -i -e wgRelevantUserName | sed "s/\"/%/g" | cut -d'%' -f4 > tmp
if test -s tmp;
then cat tmp >> $Projet/$ligne/$ligne.auteur; rm tmp;
else
echo "Pas trouvé d'auteur ! " >> $Projet/$ligne/$ligne.auteur
echo "voir : https://xtools.wmflabs.org/articleinfo/fr.wikibooks.org/$ligne" >> $Projet/$ligne/$ligne.auteur;
fi
if [ $ligne != $1 ]
then
cat $Projet/$ligne/$ligne.auteur >> $PageSclt
cat $Projet/$ligne/$ligne.auteur
fi
echo "" >> $PageSclt
#O fin du tant que.
done < $Projet/$1.pj #< $Liste
echo "</div>" >> $PageSclt
echo "{{Nouvelle page imprimée}}" >> $PageSclt
exit 0
# Fin de ajouter_sclt.sh
Annexer_(Version_orignale)
ajouter_sclic.sh
Éditeur : Goelette Cardabela
Ajoute l'entête globale pour les images et illustration, etc. Version obsolète 210125
#! /bin/bash
# Fichier : ajouter_sclic.sh
VERSION=210125
#P Nom du fichier de commandes : ajouter_sclic
#P Syntaxe : "ajouter_sclic <nom du livre>"
#P Exemple : "./ajouter_sclic LivreTest" à la console.
#P Date de création : 30 mars 2020
#P Modifié le : 7 mai 2020 par GC
#P Modifié le : 30 mai 2020 par GC pour l'installation automatique
#P Version de la documentation sur WikiLivres le : 7 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 page du livre et aura copié les pages
#P html dans des répertoires qui leurs sont dédiés pour y extraire toute la
#P documentation nécessaire à la création de la page "Annexe" du livre.
#w à ce stade, pour les tests; on dispose des répertoires de travail :
#w 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 titre en wikitexte et les sections :
#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 (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 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.
#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/. : le fichier $1.sclic qui
#D vient compléter le fichier $1.sclt afin de créerle 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
#O inclure le fichier d'entête header.sh
source header.inc
#O## ajouter_scli_classique ###########
if [ $0=ajouter_sclic ]; then echo "ajouter_sclic : Version "$VERSION; fi
#0 initialisation de la variables $PageScliC, avec le premier paramètre de la
#O ligne de commande "ajouter_sclic <livre>" où "livre" = variable $1
#O PageScliC sera la variable d'identifiation du fichier "livre.sclic" placé
#O dans le répertoire" de travail du projet : $Projet = ~/Annexe/$1/.
PageScliC=$Projet/$1.sclic
echo "Page .scli classique .sclic = " $PageScliC
echo "------"
#O se placer dans le sous-répertoire de travail "$Projet/$1/"
#P rappel : $Projet = ~/Annexer/$1 d'où ss-rep = ~/Annexer/$1/$1/.
cd $Projet/$1/
echo -n "Répertoire de travail pour l'annexion classique des illustrations : "
pwd
#O créer la section 'Image', 'Source', 'licence', 'Contributeur(?)'
echo "== Sources des images licences et contributeurs ==" > $PageScliC
#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-zize: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>" >> $PageScliC
#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-zize: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>" >> $PageScliC
echo " " >> $PageScliC
echo "<div style="font-zize:72%";>" >> $PageScliC
#T exit
#O créer les fichiers de documentation des images de la page principale.
#O ouvrir le flux $Projet/$1/$1.str de la page principale et sélectionner les
#O chaînes de caractères contenant fichier:, file:, image:, dans le nouveau
#O fichier $Projet/$1/$1.files
cat $Projet/$1/$1.str | grep -n -i -e fichier: -e file: -e image: > $Projet/$1/$1.files
cat $Projet/$1/$1.str | grep -n -i -e fichier: -e .jpg -e .png -e .gif > $Projet/$1/$1.picts
cat $Projet/$1/$1.files | grep title |sed "s/<\/div>//g" | awk -F">" '{print $NF}' > $Projet/$1/$1.illustrations
#T ls $Projet/$1/.
#T exit
# O ouvrir le flux $Projet/$1/$1.files, et remplacer à la volée le caractère
# O '=' par un double retour-chariot,
# O sélectionner les lignes contenant https
# T #T avec les deux lignes suivantes option -A 2,
# O couper les lignes au caractère " et conserver le deuxième champ,
# O #T conserver les lignes qui contennent le champ "image"
# O remplacer à la volée le caractère " par le caractère '!', et
# O concaténer les chaînes contenant le caractère ! dans le nouveau fichier
# O Projet/$1/$1/.lnk
# #T cat $Projet/$1/$1.files | awk -F"=" '{for (i=1;i<=NF;i++) print $i "\n"}' |grep -A 2 https|cut -d '"' -f2
# #T |grep -B 2 image|tr '\n' !|cut -d ! -f1-3
#cat $Projet/$1/$1.files | awk -F "=" '{for (i=1;i<=NF;i++) print $i "\n"}' | grep https | sed "s/\"/!/g" | cut -d '!' -f2-3 | grep https | tr '>' ! | sed "s/<\/a//g" |sed "s/!//g" > $Projet/$1/$1.links
cat $Projet/$1/$1.files | awk -F "=" '{for (i=1;i<=NF;i++) print $i "\n"}' | grep https | sed "s/\"/!/g" | cut -d '!' -f2-3 | grep https | tr '>' ! | sed "s/<\/a//g" |sed "s/!/\n/g" | grep https |grep -v 'upload' > $Projet/$1/$1.links
exit 0
#O télécharger les fichiers d'images depuis le serveur wikimedia.
# #T wget -P $Projet/$1 -i $Projet/$1/$1.links
wget -P $Projet/$1 -r -linf -k -p -E -i $Projet/$1/$1.links
cp ./commons.wikimedia.org/wiki/*.html .
#T créer un fichier de liste html.list
#T ls *.html | grep -i -e fichier: -e file: -e image: > html.list
#T echo html.list
#O initialiser le fichier de liste html.list avec un texte vide.
echo -n "" > html.list
#O lister les fichiers d'images dans l'ordre d'impression ou de l'affichage,
#O à laide de la liste $1.links.
while read line
do
echo $line | awk -F"/" '{print $NF}' | cut -d '%' -f1 | cut -d '.' -f1 > tmp
#echo $line | tr ' ' '_' > tmp
read Image < tmp
ls $Image*.html >> html.list
echo "Image : "$Image.html
done < $Projet/$1/$1.links
#T exit
#T compter le nombre de lignes (nb d'images) du fichier $Projet/$1/$1.links
#T cat $Projet/$1/$1.links | wc -l > $Projet/$1/links.nblignes
#T read nbl < $Projet/$1/links.nblignes
#T echo -n "Nombre de lignes de links = "
#T echo $nbl
#T initialiser la variable entière de comptage de boucle
#T declare -i n=1
#T cd $Projet/$1
#T echo -n "pwd = "
#T pwd
#O créer les fichiers de documentation des pages :
echo "*** Références : image, src, lic, contrib. "
#O tant qu'il y a des liens (locaux) dans le fichier d'images html.list
while read line
do
#O afficher la ligne lue,
echo ""
echo ""
echo "---- ligne lue = $line ---"
echo ""
#O sélectionner les chaînes du fichier d'image et les transférer dans
mkd -pw '**' $line $line.tmp
cat $line.tmp | tr ',' '\n' > $line.str
#O images,
echo -n "'''Illustration : '''" > $line.title
cat $line.str |grep wgTitle | cut -d '"' -f4 >> $line.title
cat $line.title >> $PageScliC
cat $line.title
#O source,
echo -n ", ''source : ''https://"$Site"/w/index.php?title=" > $line.source
echo $line | sed "s/.html//g" >> $line.source
cat $line.source >> $PageScliC
cat $line.source
#O license,
echo -n ", ''licence : ''" > $line.license
cat $line.str | grep licensetpl_short | sed "s/<td>//g" | sed "s/<span class//g" | sed "s/<\/span>//g" | sed "s/style=\"display:none;\"//g" | tr '=' '\n' | grep licensetpl_short | awk -F">" '{print $NF}' >> $line.license
cat $line.license >> $PageScliC
cat $line.license
#O auteur(s).
echo -n ", ''auteur(s) : ''" > $line.auteur
cat $line.str | grep -i -n -m1 -A 1 -e Author | grep -i -e user -e utilisteur -e auteur | tr '/' '\n' | grep -i -e user -e utilisteur -e auteur | cut -d '"' -f1 > tmp
if test -s tmp
then echo "Nom d'auteur non vide"
else echo "-" > tmp
fi
cat tmp >> $line.auteur
cat $line.auteur >> $PageScliC
cat $line.auteur
#O terminer la page $PageScliC
echo "" >> $PageScliC
#O fin du tant qu'il y a des lignes
done < html.list
#O terminer la page $PageScliC
echo "</div>" >> $PageScliC
echo "{{Nouvelle page imprimée}}" >> $PageScliC
exit 0
# Fin de ajouter_sclic.sh
Annexer_(Version_orignale)
ajouter_sclip.inc.sh
Éditeur : Goelette Cardabela
Ajoute les textes des conditions de copie des images. Version obsolète 210125
#! /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
Annexer_(Version_orignale)
sclipwb.sh
Éditeur : Goelette Cardabela
Ajoute, par article, les liens vers les images selon Wikilivres. Version obsolète 210125
#! /bin/bash
# Fichier sclipwb.sh
VERSION=210125
#P Nom du fichier de commandes : sclipwb (source : sclipwb.sh)
#P Syntaxe : "sclipwb <nom du livre>"
#P Exemple : "./sclipwb LivreTest" à la console.
#P Date de création : 9 mai 2020
#P Modifié le : 15 mai 2020 par GC
#P Modifié le : 20 mai 2020 par GC lignes 15 à 27 'Retour' de ajouter_sclip.
#P Modifié le : 30 mai 2020 par GC pour l'installation automatique.
#P Version de la documentation sur WikiLivres le : 20 mai 2020
#P
if [ $0=sclipwb ]; then echo "sclipwb : Version "$VERSION; fi
#O inclure dans bin : ajouter_sclip.inc ou, dans src ajouter_sclip.inc.sh ?
source ajouter_sclip.inc
Retour=$?
#T echo "Code de retour de la commande ajouter_sclip : " $Retour
#O si le code de retour est différent de '0'
if [ $Retour -gt '0' ] && [ $Personal = "true" ];
#O alors afficher le nom du module de commande en erreur et quitter 'annexer'
#O avec retour à 1
then
echo "Erreur au module shell 'ajouter_sclip.inc'"
exit 1
#O fin si
fi
#O Créer une boucle d'identification des répertoires correspondants aux article
#O du livre.
#O tant que l'on peut lire les lignes du fichier $Projet/$1.pj
while read pjline
do
#O si la ligne lue n'est pas $1 (nom du livre)
#T echo "ligne lue : " $line
if [ $pjline != $1 ]
#O alors:
then
#T echo "====="
#T echo ""
#T echo "ligne prise en compte : " $pjline
#O entrer dans le répertore de l'article,
cd $Projet/$pjline
#T echo -n "répertoire courant : "
#T pwd
#T break
#O créer les fichiers de documentation des images de la page principale.
#O ouvrir le flux $Projet/$1/$1.str de la page principale et sélectionner les
#O chaînes de caractères contenant fichier:, file:, image:, dans le nouveau
#O fichier $Projet/$line/$line/.files, .pict, .illustration, .links
cat $Projet/$pjline/$pjline.str | grep -n -i -e Fichier: -e file: -e image: | sed -f $RepCom/$Conversions > $Projet/$pjline/$pjline.files
cat $Projet/$pjline/$pjline.str | grep -n -i -e fichier: -e .jpg -e .png -e .gif | sed -f $RepCom/$Conversions> $Projet/$pjline/$pjline.picts
cat $Projet/$pjline/$pjline.files | grep title |sed "s/<\/div>//g" | awk -F">" '{print $NF}' > $Projet/$pjline/$pjline.illustrations
#T cat $Projet/$pjline/$pjline.files | awk -F"=" '{for (i=1;i<=NF;i++) print $i "\n"}' | grep https | sed "s/\"/!/g" | cut -d '!' -f3 | grep https | tr '>' ! | sed "s/<\/a//g" |sed "s/!//g" > $Projet/$pjline/$pjline.links
cat $Projet/$pjline/$pjline.files | awk -F"=" '{for (i=1;i<=NF;i++) print $i "\n"}' | grep https://fr.wikibooks.org | sed "s/\"/!/g" | cut -d '!' -f2 > $Projet/$pjline/$pjline.images
#Tbreak
#O télécharger les fichiers d'images depuis le serveur wikimedia.
#P remarque : l'option -N permet d'éviter de téléchager un fichier à jour
#P et sans ajouter une numérotation.
#T #T wget -N -P $Projet/$pjline -i $Projet/$pjline/$pjline.images
wget -P $Projet/$pjline -r -linf -k -p -E -i $Projet/$pjline/$pjline.images
#O copier les images téléchargées dans le répertoire de l'article courant.
cp $Projet/$pjline/fr.wikibooks.org/wiki/*.html $Projet/$pjline/.
#O initialiser le fichier de liste html.list avec un texte vide.
echo -n "" > html.doublons
#O lister les fichiers d'images dans l'ordre d'impression ou de l'affichage,
#O à laide de la liste $Projet/$pjline/$pjline.images
#O tant que l'on peut lire des lignes dans $Projet/$pjline/$pictline.images
while read pictline
do
#O couper les lignes au retour chariot, sélectionner le dernier champ et ajouter '.html'
#echo $pictline | awk -F"/" '{for (i=1;i<=NF;i+=2) print $i "\n"}' #| cut -d '%' -f1 | cut -d '.' -f1 > tmp
echo $pictline | awk -F"/" '{ print $NF".html"}' >> html.doublons
#O couper les doublons et sélectionner les champs pairs.
echo -n "" > html.list
awk 'BEGIN { FILENAME }
{memfile [NR] = $0 }
END { for ( i = 1 ; i <= NR ; i=i+2 ) {
print memfile[i] >> "html.list"
}
# print "Fin"
} ' html.doublons
#O fin tant que l'on peut lire des lignes dans $Projet/$pictline/$pictline.images
done < $Projet/$pjline/$pjline.images
#T afficher html.list
#T cat html.list
#O copier le nom de l'article dans $1.sclip
echo "'''Article : $pjline'''<br \>" >> $PageScliP
echo "'''Article : $pjline'''"
#P## Annexe version 'wikibooks' ##############################
#O tant qu'il y a des liens (locaux) dans le fichier d'images html.list
while read htmlline
do
#O afficher la ligne lue,
echo ""
echo ""
echo "---- ligne lue = $htmlline ---"
echo ""
#O sélectionner les chaînes de caractères du fichier image $htmlline et les
#O copier dans $htmlline.str après remplacement du caractère ',' par 'new-line'
mkd -pw '**' $htmlline $htmlline.tmp
cat $htmlline.tmp | tr ',' '\n' > $htmlline.str
#O images,
echo -n "'''Illustration : '''" > $htmlline.title
cat $htmlline.str |grep wgTitle | cut -d '"' -f4 >> $htmlline.title
cat $htmlline.title >> $PageScliP
cat $htmlline.title
#O source,
echo -n ", ''source : ''https://"$Site"/w/index.php?title=" > $htmlline.source
echo $htmlline.str | sed "s/.html//g" | sed "s/.str//g" >> $htmlline.source
cat $htmlline.source >> $PageScliP
cat $htmlline.source
#O license,
echo -n ", ''licence : ''" > $htmlline.license
cat $htmlline.str | grep licensetpl_short | sed "s/<td>//g" | sed "s/<span class//g" | sed "s/<\/span>//g" | sed "s/style=\"display:none;\"//g" | tr '=' '\n' | grep licensetpl_short | awk -F">" '{print $NF}' >> $htmlline.license
cat $htmlline.license >> $PageScliP
cat $htmlline.license
#O auteur(s).
echo -n '' > tmp
echo -n ", ''auteur(s) : ''" > $htmlline.auteur
cat $htmlline.str | grep -i -n -m1 -A 1 -e Author -e Auteur | tr '/' '\n' | grep -i -e user -e utilisteur -e auteur | cut -d '"' -f1 | grep -i -e user -e utilisteur -e auteur > tmp
read Tmp < tmp
#T
echo "Tmp = $Tmp"
if [ "$Tmp" = "" ]
#T then echo "tmp vide"
then echo "-" > tmp
fi
#T echo $Tmp | cut -d '-' -f2 | sed "s/\.\ /%/g" | cut -d '%' -f1
cat tmp >> $htmlline.auteur
cat $htmlline.auteur >> $PageScliP
cat $htmlline.auteur
#O terminer la page $PageScliP
echo "" >> $PageScliP
#O fin du tant qu'il y a des lignes
done < html.list
#O fin du 'si la ligne n'est pas le nom du livre'.
fi
#O fin du tq .pj
done < $Projet/$1.pj
#O terminer la page $PageScliP
echo "</div>" >> $PageScliP
echo "{{Nouvelle page imprimée}}" >> $PageScliP
exit 0
# Fin de sclipwb.sh
Annexer_(Version_orignale)
sclipco.sh
Éditeur : Goelette Cardabela
Ajoute, par article, les liens vers les images selon Commons. Version obsolète 210125
- ↑ Ce module sclipco.sh utilise des données produites par le module sclipwb sclipco.sh l’exécutable est à réviser. Avis du 30 juillet 2020 et du 25/01/2021.
#! /bin/bash # Fichier : sclipco.sh VERSION=210125 #P Nom du fichier de commandes : sclipco #P Syntaxe : "ajouter_sclipco <nom du livre>" #P Exemple : "./ajouter_sclpco LivreTest" à la console. #P Date de création : 16 mai 2020 #P Modifié le : 18 mai 2020 par GC #P Modifié le : 20 mai 2020 par GC lignes 25 à 37 'Retour' de ajouter_sclip. #P Modifié le : 30 mai 2020 par CG pour l'installation automatique du module. #P Modifié le : 4 juin 2020 par GC mise à jour des liens d'exécution. #P Version de la documentation sur WikiLivres le : 20 mai 2020 #P## Une version 'commons' est possible en co-édition avec la commande #P## 'ajouter_sclic'. #P## Les images, sources, licences, auteurs sont copiés dans les #P## sous-répertoires respectifs depuis le sous-répertoire du livre. #P## Les noms des images de 'commons' commencent par 'File:' alors qu'en #P## version wikibooks les noms des images commencent par 'Fichier:' #P## Dans l'exemple 'LivreTest' : #P## cd $Projet/ArticleUn; ls Fichier*.html Fichier*.html.* | sed s/Fichier:/File:/g > ArticleUn.commonshtmlpict #P## while read pict; do cp $Projet/$1/$pict .; done < ArticleUn.commonshtmlpict #P## Il suffit de construire la page LivreTest.sclip à partir des fichiers : #P## *.title, *.source, *.license, *.auteur #P if [ $0=sclipco ]; then echo "sclipco : Version "$VERSION; fi #O inclure dans bin : ajouter_sclip.inc ou, dans src/* ajouter_sclip.inc.sh source ajouter_sclip.inc Retour=$? #T echo "Code de retour de la commande ajouter_sclip : " $Retour #O si le code de retour est différent de '0' if [ $Retour -gt '0' ] && [ $Personal = "true" ]; #O alors afficher le nom du module de commande en erreur et quitter 'annexer' #O avec retour à 1 then echo "Erreur au module shell 'ajouter_sclip'" exit 1 #O fin si fi echo "fichier cible : "$PageScliP echo "------" #T exit #O tant que l'on peut lire les lignes du fichier $Projet/$1.pj while read pjline do #O si la ligne lue n'est pas $1 (nom du livre) #T echo "ligne lue : " $line if [ $pjline != $1 ] #O alors: then #T echo "ligne prise en compte : " $pjline #O entrer dans le répertore de l'article, cd $Projet/$pjline #O lister les 'Fichier*.html' et Fichier*.html.* dans le fichier #O $pjline.commonshtmlpict ls Fichier*.html Fichier*.html.* | sed s/Fichier:/File:/g > $pjline.commonshtmlpict #O copier les fichiers Fichier*.html Fichier*.html.* du répertoire #O $Projet/$1 while read pict; do cp $Projet/$1/$pict .; done < $pjline.commonshtmlpict #O copier le nom de l'article dans $1.sclip echo "'''Article : $pjline'''<br \>" >> $PageScliP echo "'''Article : $pjline'''" #P## Annexe version 'commons' ############################## #O sélectionner les images de chaque articles dans Article/htmlcommons.list #O exclure .title|.source|.license|.auteur|.str|.tmp cat $pjline.commonshtmlpict | grep -v -E ".title|.source|.license|.auteur|.str|.tmp" > htmlcommons.list #T cat htmlcommons.list #O tant qu'il y a des lignes d'images dans le fichier htmlcommons.list while read htmlcommonsline do #O images, cat $htmlcommonsline.title >> $PageScliP cat $htmlcommonsline.title #O source, cat $htmlcommonsline.source >> $PageScliP cat $htmlcommonsline.source #O license, cat $htmlcommonsline.license >> $PageScliP cat $htmlcommonsline.license #O auteur(s). cat $htmlcommonsline.auteur >> $PageScliP cat $htmlcommonsline.auteur #O terminer la page $P$PageScliP echo "" >> $PageScliP #O fin du tant qu'il y a des lignes d'images done < htmlcommons.list #O fin du 'si la ligne n'est pas le nom du livre'. fi #O fin du tq .pj done < $Projet/$1.pj #O terminer la page $PageScliP echo "</div>" >> $PageScliP echo "{{Nouvelle page imprimée}}" >> $PageScliP exit 0 # Fin de sclipco.sh
Annexer_(Version_orignale)
annexer.sh
Éditeur : Goelette Cardabela
Commande globale. Version obsolète 200626
#! /bin/bash
# Fichier annexer.sh
VERSION=200626
#P Nom du fichier de commandes : annexer
#P Syntaxe : "annexer <nom du livre> [options]"
#P Options :
#P annexer ? pour obtenir la syntaxe de la ligne de commandes.
#P -p pour la version personnalisée de l'annexe (personal version).
#P -v pour la version bavarde à l'exécution (verbose mode).
#P Exemple : "./annexer LivreTest -v -pb" à la console.
#P Date de création : 24 mars 2020
#P Modifié le : 7 mai 2020 par GC
#P Modifié le : 18 mai 2020 par GC mise à jour de modules.
#P Modifié le : 19 mai 2020 par GC lignes 350 à 392.
#P Modifié le : 30 mai 2020 par GC pour l'installation automatique.
#P Modifié le : 2 juin 2020 par GC mise à jour des liens d'exécution.
#P Version sur WikiLivres le : 20 mai 2020
#P
#P LES FICHIERS DE COMMANDES
#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## annexer ################
#P lors de l'exécution de la commande "Annexer" le répertoire courant EST le
#P répertoire travail ; $1 (~/annexer/$1/.), il est inutile de s'encombrer de
#P la variable $Projet.
#P
#D la commande "annexer" est le programme principal de tests pour créer la
#D page "Annexe" des livres de wikilivres.
#D annexer (module de tests) analyse la ligne de commandes et initialise la
#D variable $Verbose ou affiche la syntaxe à la demande interrogative '?'
#D en premier paramètre.
#D ce programme supprime tous les fichiers obsolètes du répertoire de travail
#D "~/Annexe/<nom du livre>" et de ses sous répertoires, avec l'accord de
#D l'utilisateur.
#D les modules lister, télécharger, ajouter_sclt, ajouter_scli? sont exécutés
#D dans l'ordre, puis pour finir, le fichier "Annexe" du livre est assemblé.
#D à la fin de l'exécution de chaque module il est possible d'interrompre le
#D programme par la validation de la ligne (retour chariot après #T) :
#D #T exit -> sur deux lignes comme ci-après :
#D #T
#D exit
#D
#D l'extraction de la documentation peut se faire par la commande :
#D mkd -Stw DOP annexer (D=Docu, O=organigramme, P=pour programmeurs)
#D
if [ $0=annexer ]; then echo "annexer : Version "$VERSION; fi
#O analyse de la ligne de commandes :
#O si le premier paramètre est le caractère ?
if [ "$1" = "?" ]
#O alors :
then {
#O afficher la syntaxe et quitter.
clear
echo "Syntaxe de la ligne de commande :"
echo " annexer [ <nom du livre> || ? ] [ -v ] [ -pb || -pc ]"
echo " Par défaut, seule la version Annexe globale sera proposée."
echo " Options pour obtenir une version personnalisée par article :"
echo " annexer ?, pour afficher la syntaxe de la ligne de commandes."
echo " -pb pour la version personnalisée wikilivres (personal version whith wikibooks)."
echo " -pc pour la version personnalisée commons (personal version with commons)."
echo " -v pour la version bavarde (verbose mode)."
exit 0
}
#O fin si
fi
#O inclure le fichier d'entête header.sh
source header.inc
#O## annexer ################
#O initialiser les variables $Verbose et $Personal à 'false'
Verbose="false"
Personal="false"
Personalwb="false"
Personalco="false"
#P si le nombre de paramètres reçus est inférieur à 2 ($0 ne compte pas)
#P alors : passer, il n'y a rien à initialiser
#O si ne nombre de paramètres est supérieur à 1
if (("$#" > "1"))
#O alors :
then
#O si le deuxième paramètre est '-v'
if [ "$2" = "-v" ]
#O alors initialiser la variable $Verbose à 'true' (vrai).
then
Verbose="true";
#O fin si
fi
#O si le deuxième paramètre est '-pb'
if [ "$2" = "-pb" ]
#O alors initialiser la variable $Personalwb à 'true' (vrai).
then
Personalwb="true"; Personal="true";
#O fin si
fi
#O si le deuxième paramètre est '-pc'
if [ "$2" = "-pc" ]
#O alors initialiser la variable $Personalco à 'true' (vrai).
then
Personalco="true"; Personal="true";
#O fin s
fi
#O fin si
fi
#O si le nombre de paramètres est égal à 3
if (("$#" == "3"))
#O alors :
then
#O si le troisième paramètre est '-v'
if [ "$3" = "-v" ]
#O alors initialiser la variable $Verbose à 'true' (vrai).
then
Verbose="true";
#O fin si
fi
#O si le troisième paramètre est '-pb'
if [ "$3" = "-pb" ]
#O alors, si la variable $Personalco n'est pas à validée, initialiser la variable $Personalwb à 'true' (vrai).
then if test "$Personalco" = "false"; then Personalwb="true"; Personal="true"; else echo "Erreur de syntaxe paramètre 3 :$3 incompatible avec paramètre 2 :$2"; exit 1; fi;
#O fin si
fi
#O si le troisième paramètre est '-pc'
if [ "$3" = "-pc" ]
#O alors, si la variable $Personalwb n'est pas à validée, initialiser la variable $Personalco à 'true' (vrai).
then if test "$Personalwb" = "false"; then Personalco="true"; Personal="true"; else echo "Erreur de syntaxe paramètre 3 :$3 incompatible avec paramètre 2 :$2"; exit 1; fi;
#O fin si
fi
#O fin si
fi
#O si le nombre de paramètres est supérieur à 3
if (("$#" > "3"))
#O alors : signaler l'erreur et quitter.
then
echo "Erreur : trop de paramètres !"
echo "'./annexer ?' pour la syntaxe."
exit 1
#O fin si
fi
#T
echo "La variable Verbose est initialisée à : $Verbose"
#T
echo "La variable Personalwb est initialisée à : $Personalwb"
#T
echo "La variable Personalco est initialisée à : $Personalco"
#T
echo "La variable Personal est initialisée à : $Personal"
#-----
#T exit #w interrompt l'exécution de la suite.
#O afficher : 'effacer tous les fichiers obsolètes ? :'
#O '*.html *.str *.img *.lnk tmp temp *.tmp *.temp *.list ?'
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."
#O attendre 'un' (un seul) caractère de réponse.
read -n1 -p -s Inkey
echo "Inkey = "$Inkey
#O si la réponse au clavier est 'o' (oui !),
if [ "$Inkey" = "o" ]
#O alors effacer les fichiers du répertoire de projet (nom du livre).
then {
cd $Projet
echo -e "\033[31mSuppression des fichiers obsolètes.\033[0m "
rm -R *.html *.str *.img *.lnk tmp temp *.tmp *.temp *.list
}
#O sinon, continuer.
else echo "Pas de suppression de fichiers ! ... suite ..."
#O fin si
fi
#-----
#T exit #w interrompt l'exécution de la suite.
#O se placer dans le répertoire des commandes(~/Annexer/.)
cd $RepCom
#O créer le fichier contenant la liste des articles à analyser. (./lister $1)
#O si la variable $Verbose et validée (à 'true'),
if [ $Verbose = "true" ]
#O alors : exécuter la commande 'lister' en mode bavard.
then
./lister $1
#O sinon : exécuter 'lister' en mode silencieux, les observation seront dans
#O le fichier lister-cmd.txt
else
./lister $1 > lister-cmd.txt
#O fin si
fi
Retour=$?
#T echo "Code de retour de la commande lister : " $Retour
#O si le code de retour est supérieur à 0
if [ $Retour -gt '0' ]
#O alors afficher le nom du module de commande en erreur et quitter 'annexer'
#O avec retour à 1
then
echo "Erreur au module shell 'lister' en mode silencieux voyez lister-cmd.txt"
exit 1
#O fin si
fi
#
# -----
#T exit #w interrompt l'exécution de la suite.
#O se placer dans le répertoire des commandes
cd $RepCom
#T créer les répertoires et sous répertoires complets du livre. (../télécharger $1)
#O si le mode bavard est activé,
if [ $Verbose = "true" ]
#O alors: exécuter la commande 'télécharger' en mode bavard.
then
./télécharger $1
#O sinon: exécuter la commande 'télécharger' en mode silencieux..
else
./télécharger $1 > télécharger-cmd.txt
#O fin si
fi
Retour=$?
#T echo "Code de retour de la commande télécharger : " $Retour?
#O si le code de retour est supérieur à 0
if [ $Retour -gt '0' ]
#O alors afficher le nom du module de commande en erreur et quitter 'annexer'
#O avec retour à 1
then
echo "Erreur au module shell 'télécharger' en mode silencieux voyez télécharger-cmd.txt"
exit 1
#O fin si
fi
# -----
#T exit #w interrompt l'exécution de la suite.
#O se placer dans le répertoire des commandes
cd $RepCom
#O créer la "page Annexe" et ajouter les sources, contributeurs, droits de
#O copie du texte des articles.
#O sclt signifie : s=source, c=contributeurs, l=license, t=texte des articles
#O si le mode bavard est activé,
if [ $Verbose = "true" ]
#O alors : exécuter la commande 'ajouter_sclt' en mode bavard.
then
./ajouter_sclt $1
#O sinon : exécuter la commande 'ajouter_sclt' en mode silencieux.
else
./ajouter_sclt $1 > ajouter_sclt-cmd.txt
#O fin si
fi
Retour=$?
#T echo "Code de retour de la commande ajouter_sclt : " $Retour
#O si le code de retour est supérieur à 0
if [ $Retour -gt '0' ]
#O alors afficher le nom du module de commande en erreur et quitter 'annexer'
#O avec retour à 1
then
echo "Erreur au module shell 'ajouter-sclt' en mode silencieux voyez ajouter_sclt-cmd.txt"
exit 1
#O fin si
fi
# -----
#T exit #w interrompt l'exécution de la suite.
#O se placer dans le répertoire des commandes
cd $RepCom
#O si la variable $Personal est invalide 'false'
if [ $Personal = "false" ]
#O alors:
then
#O exécuter ajouter_sclic
#O (ajouter les sources, licence, contributeurs des images avec la commande
#O globale conventionnelle ajouter_sclic
#O si le mode bavard est validé,
if [ $Verbose = "true" ]
#O alors : ajouter_sclic en mode bavard
then
./ajouter_sclic $1
#O sinon : ajouter_sclic et copier les observations dans ajouter-sclic-cmd.txt
else
./ajouter_sclic $1 > ajouter-sclic-cmd.txt
#O fin si
fi
cat $Projet/$1.sclic > $Projet/$1.scli
#O fin si
fi
Retour=$?
#T echo "Code de retour de la commande ajouter_sclic : " $Retour
#O si le code de retour est supérieur '0'
if [ $Retour -gt '0' ] && [ $Personal = "false" ];
#O alors afficher le nom du module de commande en erreur et quitter 'annexer'
#O avec retour à 1
then
echo "Erreur au module shell 'ajouter_sclic'"
exit 1
#O fin si
fi
# -----
#T exit #w interrompt l'exécution de la suite.
#O se placer dans le répertoire des commandes
#cd $RepCom
#O si l'option annexe' personalisée est validée ($Personal=true)
# if [ $Personal = "true" ]
#O alors:
# then
#O exécuter ajouter_sclip
#O (ajouter les sources, licence, contributeurs des images avec la commande
#O globale conventionnelle ajouter_sclic
# if [ $Verbose = "true" ]
# then
# ./ajouter_sclip $1
# else
# ./ajouter_sclip $1 > ajouter-sclip-cmd.txt
#O fin si
# fi
# cat $1.sclip > $1.scli
#O fin si
# fi
#Retour=$?
#T echo "Code de retour de la commande ajouter_sclip : " $Retour
#O si le code de retour est différent de '0'
# if [ $Retour -gt '0' ] && [ $Personal = "true" ];
#O alors afficher le nom du module de commande en erreur et quitter 'annexer'
#O avec retour à 1
# then
# echo "Erreur au module shell 'ajouter_sclip'"
# exit 1
#O fin si
# fi
#T echo "La variable Verbose est initialisée à : $Verbose"
#T echo "La variable Personalwb est initialisée à : $Personalwb"
#T echo "La variable Personalco est initialisée à : $Personalco"
#T echo "La variable Personal est initialisée à : $Personal"
#T break
#O se placer dans le répertoire des commandes.
cd $RepCom
#O si l'option de la commande annexe '-pc' (personalco) est activée à 'vrai'
if [ "$Personalco" == "true" ]
#O alors exécuter sclipco
then
if [ "$Verbose" == "true" ]; then ./sclipwb $1 && ./sclipco $1; else ./sclipwb $1 > sclipwb-cmd.txt && ./sclipco $1 > sclipco-cmd.txt; fi;
echo "sclipwb et sclipco ont été exécutés successivement.";
#O fin si
fi
#O si le code de retour est différent de '0',
if [ $Retour -gt '0' ] && [ $Personalpc = "true" ];
#O alors afficher le nom du module de commande en erreur et quitter 'annexer'
#O avec retour à 1
then
echo "Erreur au module shell 'slipco' ou au module 'sclipw'"
exit 1
#O fin si
fi
#T Remarque :
#T $Personalpc et $Personalpw ne peuvent pas être actifs en même temps au
#T cours de la commande.
#O se placer dans le répertoire des commandes.
cd $RepCom
#O si l'option de la commande annexe '-pb' (personalwb) est activée à 'vrai'
if [ "$Personalwb" == "true" ]
#O alors exécuter sclipwb.inc
then
if [ "$Verbose" == "true" ]; then ./sclipwb $1; else ./sclipwb $1 > scliwb.inc-cmd.txt; fi;
echo "sclipwb a été exécuté";
#O fin si
fi
#O si le code de retour est différent de '0',
if [ $Retour -gt '0' ] && [ $Personalwb = "true" ];
#O alors afficher le nom du module de commande en erreur et quitter 'annexer'
#O avec retour à 1
then
echo "Erreur au module shell 'slipwb'"
exit 1
#O fin si
fi
# -----
#T exit #w interrompt l'exécution de la suite.
#O assembler la page 'Annexe' du livre.
cd $Projet
#O copier sclt dans la page 'Annexe' du livre.
cat $1.sclt > $1.annexe
#O si la variable Personal est activée à 'true'
if [ $Personal == "true" ]
#O alors : ajouter le contenu du fichier $1.sclip au fichier $1.annexe
then cat $Projet/$1.sclip >> $Projet/$1.annexe; echo "$1.sclip est copié dans $1.annexe";
#O sinon :
else
#O ajouter $1.sclic à l'annexe
cat $1.sclic >> $1.annexe echo "$1.sclic est copié dans $1.annexe";
#O fin si
fi
#O ajouter la licence (fr) à la page 'Annexe'
echo "== Licence ==" >> $1.annexe
cat $1/$1.licence >> $1.annexe
echo "" >> $1.annexe
echo "{{Nouvelle page imprimée}}" >> $1.annexe
echo ""
echo ""
echo ""
echo "Copier le contenu du fichier "$1/annexe" dans la page 'Annexe' du livre "$1.
exit 0
# Fin de fichier annexer.sh
Annexer_(Version_orignale)
cp-localsrc-2-localbin
Éditeur : Goelette Cardabela
. Version 210504
- ↑ L'Installateur ci-dessous installe les fichiers de commandes dans le répertoire d'exécution ~/Annexer,
il doit d'être installé en mode exécutable dans le répertoire des sources ~/Annexer/src.
#! /bin/bash
#H file : cp-localsrc-2-localbin.bash
#H Ce fichier doit être copié dans le répertoire sbin en mode exécutable.
#H copie les fichiers sources ~/Annexer/src dans le répertoire des exécutables
#H ~/Annexer/bin, pour effectuer des tests unitaires avec des livres différents.
#H copie aussi les fichier du répertoitre ~/Annexer/lib/src dans ~/Annexer/lib
#H les codes sources doivent avoir été contrôlé dans les répertoires de tests
#H avec les codes de contrôle ci-après.
clear
VERSION=210504
echo "cp-localsrc-2-localbin : Version "$VERSION
echo -e "\033[1;33m Les codes sources doivent avoir été contrôlés dans les répertoires de tests \033[0m"
echo -e "\033[1;33m par les programmeurs ou les mainteneurs. \033[0m"
echo "Copie des fichiers sources *.sh vers ~/Annexer/Bin/."
ls ~/Annexer/src/*.sh > bin_files.pj
while read line
do
echo $line | sed s/.sh//g > new_bin_name.txt
read New_bin_name < new_bin_name.txt
cat $line |grep -v "#O\|#P\|#T" > ~/Annexer/bin/$New_bin_name
done < bin_files.pj
echo "Changement du mode lecture pour le mode exécutable 'chmod 755'"
chmod 755 ~/Annexer/bin/*
rm bin_files.pj; new_bin_name.txt
echo "Copie des fichiers sources *.sh vers ~/Annexer/Bin/."
ls ~/Annexer/lib/src/*.sh > lib_files.pj
while read New_lib_name
do
echo $line | sed s/.sh//g > new_lib_name.txt
read New_lib_name < new_lib_name.txt
cat $line |grep -v "#O\|#P\|#T" > ~/Annexer/bin/$New_lib_name
done < lib_files.pj
rm lib_files.pj; new_lib_name.txt
# Code à placer dans le répertoire des tests exemple ~/Annexer/tests/annexer.sh/
# test-annexer.bash
# Remplacer 'file.sh' par le nom du fichier de codes, exemple 'annexer.sh'
# Control if the local file.sh is clean
echo -e "\033[1;33m Control file.sh in the local test directory \033[0m" > text-control.txt
echo -e "\033[1;33m Please check that the comment line does not contain an command \033[0m" >> text-control.txt
grep -n -e "#O\|#P\|#T" ecfpc.sh >> text-control.txt
more text-control.txt
#T echo -e "\033[31m ROUGE \033[0m"
#T echo -e "\033[1;33m Please check that the comment line does not contain an command \033[0m"
echo; echo "Continue ? y/n"
read -s -e -n 1 -t 60 -p "y/n ? : " Inkey;echo
#T echo "Inkey = $Inkey"
if [ "$Inkey" != 'y' ]; then echo " Inkey is not yes, or time out after 60 sec, exit from $0"; exit 0;fi
Annexer_(Version_orignale)
Manuel linux annexer_fr.1
Éditeur : Goelette Cardabela
- Les fichiers suivants doivent être installés dans le répertoire ~Annexer/man puis installés avec makeman_annexer.sh
Fichier nroff avec un aperçu, pour l'installation du manuel français version 200626 Fichier : annexer_fr.1
- annexer_fr.1 ci-après est formaté nroff pour manuels au format Unicode UTF-8
- Le manuel est lisible au format UTF-8 par la commande man .\annexer_fr.1
- Il est lisible éventuellement au format ASCII par la commande : nroff -man annexer_fr.1
- Lors de l'installation il sera renommé annexer.1 et installé dans le répertoire des manuels français UTF-8.
Code d'extraction :
mkd -Cts M annexer_fr.1 ~/annexer/man/annexer_fr.1
Code
modifier/*M
.\" Création par Utilisateur:Goelette_Cardabela pour wikilivres le 26 juin 2020
.\" Vérifications UTF-8 par Clara le 6 novembre 2012
.\" Mise à jour
.\" Mise à jour
.\" .
.\" FILE manuals Update_annexer_(fr).1.txt to edit in UTF-8 format
.TH ANNEXER 1 "26 Juin 2020"
.SH NOM
annexer \- Crée la page Annexe des livres de wikilivres.
.SH RÉSUMÉ
\fBannexer\fP < \fBnom du livre || ? \fP > [ -v ] [ -pb || -pc ]
.SH DESCRIPTION
\fBannexer\fP permet de créer les pages \fIAnnexes\fP des livres de Wikilivres.
.TP
\fB?\fP affiche la syntaxe de la commande.
.SS Options
.TP
\fB-v\fR
Mode bavard (Verbose mode)
.TP
\fB-pb\fR
Crée une version personnalisée du classement des images avec les données du serveur Mediawiki \fIWikilivres\fP.
.TP
\fB-pc\fR
Crée une version personnalisée du classement des images avec les données du serveur Mediawiki \fICommons\fP
.SH "EXIT STATUS"
L'application renvoie normalement la valeur 0 et une valeur différente en cas d'erreurs
.SH ERREURS
Les erreurs les plus fréquentes peuvent être causées par des débordement de la capacité de la ligne de commandes. Il peut être intéressant, à titre exceptionnel, de créer une page à la racine du serveur et de créer une redirection vers une page plus longue, afin de débloquer la ligne de commande. Il serait plus judicieux de renommer le nom de la page trop longue vers la racine du site Wikibooks avec un nom plus court.
.SH FICHIERS
Il existe de nombreux fichiers dont les versions peuvent changer lorsque des améliorations sont souhaitées. Reportez votre attention, pour cette version française vers la section 19 : \fIhttps://fr.wikibooks.org/w/index.php?title=Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)§ion=19\fP
.SH VERSIONS
Les versions sont notée AAMMJJ - AA pour année, MM pour mois, JJ pour jour, de la dernière modification.
.SH HISTOIRE
.PP
2020 - Début de l'histoire avec le confinement au domicile à cause du virus COVID-19 :
\fIhttps://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre\fP
.SH TELECHARGEMENTS
.PP
https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)#src.orig_en_français
.SH AUTEURS
.PP
Manuel créé par le wikipédien : Goelette Cardabela
.SH NOTES
.PP
La version actuelle 200623 est encore en phase de tests
.SH BUGS
.PP
Il n'y a pas encore de page pour discuter des bugs.
.SH EXEMPLES
"./annexer LivreTest -v -pb" à la console en version test dans le répertoire ~/Annexer.
.TP
"./annexer Faire_fleurir_le_sel -pb", toujours en version test dans le répertoire ~/Annexer.
.SH VOIR AUSSI
https://fr.wikibooks.org/wiki/Goélette_Cardabela/Référencement_manuel
*/
Aperçu
modifierANNEXER(1) General Commands Manual ANNEXER(1) NOM annexer - Crée la page Annexe des livres de wikilivres. RÉSUMÉ annexer < nom du livre || ? > [ -v ] [ -pb || -pc ] DESCRIPTION annexer permet de créer les pages Annexes des livres de Wikilivres. ? affiche la syntaxe de la commande. Options -v Mode bavard (Verbose mode) -pb Crée une version personnalisée du classement des images avec les données du serveur Mediawiki Wikilivres. -pc Crée une version personnalisée du classement des images avec les données du serveur Mediawiki Commons EXIT STATUS L'application renvoie normalement la valeur 0 et une valeur différente en cas d'erreurs ERREURS Les erreurs les plus fréquentes peuvent être causées par des déborde‐ ment de la capacité de la ligne de commandes. Il peut être intéressant, à titre exceptionnel, de créer une page à la racine du serveur et de créer une redirection vers une page plus longue, afin de débloquer la ligne de commande. Il serait plus judicieux de renommer le nom de la page trop longue vers la racine du site Wikibooks avec un nom plus court. FICHIERS Il existe de nombreux fichiers dont les versions peuvent changer lorsque des améliorations sont souhaitées. Reportez votre attention, pour cette version française vers la section 19 : https://fr.wiki‐ books.org/w/index.php?title=Auto-éditer_un_wikilivre/Annexer_(Ver‐ sion_internationalisée)§ion=19 VERSIONS Les versions sont notée AAMMJJ - AA pour année, MM pour mois, JJ pour jour, de la dernière modification. HISTOIRE 2020 - Début de l'histoire avec le confinement au domicile à cause du virus COVID-19 : https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre TELECHARGEMENTS https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre/Annexer_(Ver‐ sion_internationalisée)#src.orig_en_français AUTEURS Manuel créé par le wikipédien : Goelette Cardabela NOTES La version actuelle 200623 est encore en phase de tests BUGS Il n'y a pas encore de page pour discuter des bugs. EXEMPLES "./annexer LivreTest -v -pb" à la console en version test dans le répertoire ~/Annexer. "./annexer Faire_fleurir_le_sel -pb", toujours en version test dans le répertoire ~/Annexer. VOIR AUSSI https://fr.wikibooks.org/wiki/Goélette_Cardabela/Référencement_manuel 26 Juin 2020 ANNEXER(1)
Annexer_(Version_orignale)
Manuel annexer_fr.html
Éditeur : Goelette Cardabela
Fichier html avec un aperçu, pour l'installation du manuel français version 200626
- Le manuel html s'installe dans le répertoire /usr/local/share/doc/annxer/annexer_fr.html
#Aperçu html (aspect du manuel au format html) Pas de très bonne qualité, ne reproduit pas correctement l'aspect du manuel.
#Aperçu annexer_fr.txt (manuel annexer_fr.txt.gz décompressé) De bonne qualité, reproduit correctement l'aspect du manuel.)
Code
modifier<meta charset="utf-8">
Content-type: text/html; charset=UTF-8
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>Man page of ANNEXER</TITLE>
</HEAD><BODY>
<H1>ANNEXER</H1>
Section: User Commands (1)<BR>Updated: 26 Juin 2020<BR><A HREF="#index">Index</A>
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
<A NAME="lbAB"> </A>
<H2>NOM</H2>
annexer - Crée la page Annexe des livres de wikilivres.
<A NAME="lbAC"> </A>
<H2>RÉSUMÉ</H2>
<B>annexer</B> < <B>nom du livre || ? </B> > [ -v ] [ -pb || -pc ]
<A NAME="lbAD"> </A>
<H2>DESCRIPTION</H2>
<B>annexer</B> permet de créer les pages <I>Annexes</I> des livres de Wikilivres.
<DL COMPACT>
<DT><B>?</B> affiche la syntaxe de la commande.<DD>
</DL>
<A NAME="lbAE"> </A>
<H3>Options</H3>
<DL COMPACT>
<DT><B>-v</B><DD>
Mode bavard (Verbose mode)
<DT><B>-pb</B><DD>
Crée une version personnalisée du classement des images avec les données du serveur Mediawiki <I>Wikilivres</I>.
<DT><B>-pc</B><DD>
Crée une version personnalisée du classement des images avec les données du serveur Mediawiki <I>Commons</I>
<P>
</DL>
<A NAME="lbAF"> </A>
<H2>EXIT STATUS</H2>
L'application renvoie normalement la valeur 0 et une valeur différente en cas d'erreurs
<P>
<A NAME="lbAG"> </A>
<H2>ERREURS</H2>
Les erreurs les plus fréquentes peuvent être causées par des débordement de la capacité de la ligne de commandes. Il peut être intéressant, à titre exceptionnel, de créer une page à la racine du serveur et de créer une redirection vers une page plus longue, afin de débloquer la ligne de commande. Il serait plus judicieux de renommer le nom de la page trop longue vers la racine du site Wikibooks avec un nom plus court.
<P>
<A NAME="lbAH"> </A>
<H2>FICHIERS</H2>
Il existe de nombreux fichiers dont les versions peuvent changer lorsque des améliorations sont souhaitées. Reportez votre attention, pour cette version française vers la section 19 : <I><A HREF="https://fr.wikibooks.org/w/index.php?title=Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)">https://fr.wikibooks.org/w/index.php?title=Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)</A>&section=19</I>
<P>
<A NAME="lbAI"> </A>
<H2>VERSIONS</H2>
Les versions sont notée AAMMJJ - AA pour année, MM pour mois, JJ pour jour, de la dernière modification.
<P>
<A NAME="lbAJ"> </A>
<H2>HISTOIRE</H2>
<P>
2020 - Début de l'histoire avec le confinement au domicile à cause du virus COVID-19 :
<I><A HREF="https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre">https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre</A></I>
<BR>
<A NAME="lbAK"> </A>
<H2>TELECHARGEMENTS</H2>
<P>
<A HREF="https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)#src.orig_en_français">https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)#src.orig_en_français</A>
<P>
<A NAME="lbAL"> </A>
<H2>AUTEURS</H2>
<P>
Manuel créé par le wikipédien : Goelette Cardabela
<P>
<A NAME="lbAM"> </A>
<H2>NOTES</H2>
<P>
La version actuelle 200623 est encore en phase de tests
<P>
<A NAME="lbAN"> </A>
<H2>BUGS</H2>
<P>
Il n'y a pas encore de page pour discuter des bugs.
<P>
<A NAME="lbAO"> </A>
<H2>EXEMPLES</H2>
"./annexer LivreTest -v -pb" à la console en version test dans le répertoire ~/Annexer.
<DL COMPACT>
<DT>"./annexer Faire_fleurir_le_sel -pb", toujours en version test dans le répertoire ~/Annexer. <DD>
<P>
</DL>
<A NAME="lbAP"> </A>
<H2>VOIR AUSSI</H2>
<A HREF="https://fr.wikibooks.org/wiki/Goélette_Cardabela/Référencement_manuel">https://fr.wikibooks.org/wiki/Goélette_Cardabela/Référencement_manuel</A>
<P>
<HR>
<A NAME="index"> </A><H2>Index</H2>
<DL>
<DT><A HREF="#lbAB">NOM</A><DD>
<DT><A HREF="#lbAC">RÉSUMÉ</A><DD>
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
<DL>
<DT><A HREF="#lbAE">Options</A><DD>
</DL>
<DT><A HREF="#lbAF">EXIT STATUS</A><DD>
<DT><A HREF="#lbAG">ERREURS</A><DD>
<DT><A HREF="#lbAH">FICHIERS</A><DD>
<DT><A HREF="#lbAI">VERSIONS</A><DD>
<DT><A HREF="#lbAJ">HISTOIRE</A><DD>
<DT><A HREF="#lbAK">TELECHARGEMENTS</A><DD>
<DT><A HREF="#lbAL">AUTEURS</A><DD>
<DT><A HREF="#lbAM">NOTES</A><DD>
<DT><A HREF="#lbAN">BUGS</A><DD>
<DT><A HREF="#lbAO">EXEMPLES</A><DD>
<DT><A HREF="#lbAP">VOIR AUSSI</A><DD>
</DL>
<HR>
This document was created by
<A HREF="/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 14:05:11 GMT, June 27, 2020
</BODY>
</HTML>
Aperçu html
modifierContent-type: text/html; charset=UTF-8 Content-type: text/html; charset=UTF-8 ANNEXER Section: User Commands (1) Updated: 26 Juin 2020 Index Return to Main Contents NOM annexer - Crée la page Annexe des livres de wikilivres. RÉSUMÉ annexer < nom du livre || ? > [ -v ] [ -pb || -pc ] DESCRIPTION annexer permet de créer les pages Annexes des livres de Wikilivres. ? affiche la syntaxe de la commande. Options -v Mode bavard (Verbose mode) -pb Crée une version personnalisée du classement des images avec les données du serveur Mediawiki Wikilivres. -pc Crée une version personnalisée du classement des images avec les données du serveur Mediawiki Commons EXIT STATUS L'application renvoie normalement la valeur 0 et une valeur différente en cas d'erreurs ERREURS Les erreurs les plus fréquentes peuvent être causées par des débordement de la capacité de la ligne de commandes. Il peut être intéressant, à titre exceptionnel, de créer une page à la racine du serveur et de créer une redirection vers une page plus longue, afin de débloquer la ligne de commande. Il serait plus judicieux de renommer le nom de la page trop longue vers la racine du site Wikibooks avec un nom plus court. FICHIERS Il existe de nombreux fichiers dont les versions peuvent changer lorsque des améliorations sont souhaitées. Reportez votre attention, pour cette version française vers la section 19 : https://fr.wikibooks.org/w/index.php?title=Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)§ion=19 VERSIONS Les versions sont notée AAMMJJ - AA pour année, MM pour mois, JJ pour jour, de la dernière modification. HISTOIRE 2020 - Début de l'histoire avec le confinement au domicile à cause du virus COVID-19 : https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre TELECHARGEMENTS https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)#src.orig_en_français AUTEURS Manuel créé par le wikipédien : Goelette Cardabela NOTES La version actuelle 200623 est encore en phase de tests BUGS Il n'y a pas encore de page pour discuter des bugs. EXEMPLES "./annexer LivreTest -v -pb" à la console en version test dans le répertoire ~/Annexer. "./annexer Faire_fleurir_le_sel -pb", toujours en version test dans le répertoire ~/Annexer. VOIR AUSSI https://fr.wikibooks.org/wiki/Goélette_Cardabela/Référencement_manuel Index NOM RÉSUMÉ DESCRIPTION Options EXIT STATUS ERREURS FICHIERS VERSIONS HISTOIRE TELECHARGEMENTS AUTEURS NOTES BUGS EXEMPLES VOIR AUSSI This document was created by man2html, using the manual pages. Time: 14:05:11 GMT, June 27, 2020
Aperçu annexer_fr.txt
modifier- Ce fichier est normalement compressé au format .gz
- annexer_fr.txt.gz
ANNEXER(1) General Commands Manual ANNEXER(1) NOM annexer - Crée la page Annexe des livres de wikilivres. RÉSUMÉ annexer < nom du livre || ? > [ -v ] [ -pb || -pc ] DESCRIPTION annexer permet de créer les pages Annexes des livres de Wikilivres. ? affiche la syntaxe de la commande. Options -v Mode bavard (Verbose mode) -pb Crée une version personnalisée du classement des images avec les données du serveur Mediawiki Wikilivres. -pc Crée une version personnalisée du classement des images avec les données du serveur Mediawiki Commons EXIT STATUS L'application renvoie normalement la valeur 0 et une valeur différente en cas d'erreurs ERREURS Les erreurs les plus fréquentes peuvent être causées par des déborde‐ ment de la capacité de la ligne de commandes. Il peut être intéressant, à titre exceptionnel, de créer une page à la racine du serveur et de créer une redirection vers une page plus longue, afin de débloquer la ligne de commande. Il serait plus judicieux de renommer le nom de la page trop longue vers la racine du site Wikibooks avec un nom plus court. FICHIERS Il existe de nombreux fichiers dont les versions peuvent changer lorsque des améliorations sont souhaitées. Reportez votre attention, pour cette version française vers la section 19 : https://fr.wiki‐ books.org/w/index.php?title=Auto-éditer_un_wikilivre/Annexer_(Ver‐ sion_internationalisée)§ion=19 VERSIONS Les versions sont notée AAMMJJ - AA pour année, MM pour mois, JJ pour jour, de la dernière modification. HISTOIRE 2020 - Début de l'histoire avec le confinement au domicile à cause du virus COVID-19 : https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre TELECHARGEMENTS https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre/Annexer_(Ver‐ sion_internationalisée)#src.orig_en_français AUTEURS Manuel créé par le wikipédien : Goelette Cardabela NOTES La version actuelle 200623 est encore en phase de tests BUGS Il n'y a pas encore de page pour discuter des bugs. EXEMPLES "./annexer LivreTest -v -pb" à la console en version test dans le répertoire ~/Annexer. "./annexer Faire_fleurir_le_sel -pb", toujours en version test dans le répertoire ~/Annexer. VOIR AUSSI https://fr.wikibooks.org/wiki/Goélette_Cardabela/Référencement_manuel 26 Juin 2020 ANNEXER(1)
Annexer_(Version_orignale)
makeman_annexer.sh
Éditeur : Goelette Cardabela
Cet exécutable installe le manuel dans la sructure unix/linux en français.
#! /bin/bash
#
# Version bash
# File : makeman_annexer.sh
# Syntax: sudo ./makeman_annexer.sh
#
# Version Makefile
# Manual:
# annexer_fr.1.gz: annexer_fr.1
# Compresser
gzip -c annexer_fr.1 > annexer_fr.1.gz
# Fichier: En lecture seule
chmod 444 annexer_fr.1.gz
# Installation
echo "Installation du manuel français"
if [ -d "/usr/share/man/fr.UTF-8/man1" ]; \
then sudo cp -f annexer_fr.1.gz /usr/share/man/fr.UTF-8/man1/annexer.1.gz ; \
elif [ -d "/usr/share/man/fr/" ]; \
then sudo cp -f annexer_fr.1.gz /usr/share/man/fr/man1/annexer.1.gz ; \
fi