Auto-éditer un wikilivre/Annexer (Version orignale)/Version imprimable

 1
La structure spéciale de cette page permet d'éditer chaque chapitre afin de recopier le code dans un éditeur de texte, il suffit alors d'enregistrer ce code dans le répertoire de travail : ~/Annexer
Goelette Cardabela     

Auto-éditer un wikilivre
Annexer (Version orignale)

 
Bash logo france.svg

 

Auto-éditer un wikilivre
Annexer (Version orignale)
Éditeur : Goelette Cardabela


 

Table des matières par chapitresModifier

   1 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'applicationModifier

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 LivreTestModifier

LivreTest.contenu

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.compilé

LivreTestModifier

Tests de référencementModifier

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'applicationModifier

Il 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


header.inc.shModifier

Fichier d'entête, inclus dans tous les modules. Version 210505

header.inc.shModifier

  1. Ce code est à transcrire dans le répertoire ~/Annexer/tests/header.inc.sh et ne doit pas être exécutable.
  2. Lorsque le code est éprouvé, le transcrire dans le répertoire ~/Annexer/src
  3. 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/&amp;#8217;/g;s/%E2%82%AC/&amp;#8364;/g;s/%2F///g;s/%3F/?/g;" > $Conversions
      echo "s/%24/$/g;s/%21/!/g;s/%25/%/g;s/%2B/+/g;s/%3C/\&amp;lt;/g;s/%3E/&amp;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/&amp;#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/\/&amp;#92;/g" >> $Conversions
      echo "s/%0D/&amp;#x0D;/g;s/%0A/&amp;#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.bashModifier

Ce 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.bashModifier

Ce 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


lister.shModifier

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écharger.shModifier

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


ajouter_sclt.shModifier

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


ajouter_sclic.shModifier

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


ajouter_sclip.inc.shModifier

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


sclipwb.shModifier

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


sclipco.shModifier

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


annexer.shModifier

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 personnalsée wikilivres (personal version whith wikibooks)."
        echo "    -pc pour la version personnalsé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


cp-localsrc-2-localbinModifier

. 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


Manuel linux annexer_fr.1Modifier

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

#Aperçu

CodeModifier

/*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)&section=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çuModifier


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)&section=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


Manuel annexer_fr.htmlModifier

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.)

CodeModifier

<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">&nbsp;</A>
<H2>NOM</H2>

annexer - Crée la page Annexe des livres de wikilivres.
<A NAME="lbAC">&nbsp;</A>
<H2>RÉSUMÉ</H2>

<B>annexer</B>  &lt; <B>nom du livre  ||  ? </B> &gt;   [ -v ]  [ -pb || -pc ]
<A NAME="lbAD">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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>&amp;section=19</I>
<P>
<A NAME="lbAI">&nbsp;</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">&nbsp;</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>&nbsp;
<A NAME="lbAK">&nbsp;</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">&nbsp;</A>
<H2>AUTEURS</H2>

<P>

Manuel créé par le wikipédien  : Goelette Cardabela
<P>
<A NAME="lbAM">&nbsp;</A>
<H2>NOTES</H2>

<P>

La  version actuelle 200623 est encore en phase de tests
<P>
<A NAME="lbAN">&nbsp;</A>
<H2>BUGS</H2>

<P>

Il n'y a pas encore de page pour discuter des bugs.
<P>
<A NAME="lbAO">&nbsp;</A>
<H2>EXEMPLES</H2>

&quot;./annexer LivreTest -v -pb&quot; à la console en version test dans le répertoire ~/Annexer.
<DL COMPACT>
<DT>&quot;./annexer Faire_fleurir_le_sel  -pb&quot;, toujours en version test dans le répertoire ~/Annexer. <DD>
<P>
</DL>
<A NAME="lbAP">&nbsp;</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">&nbsp;</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 htmlModifier

Content-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)&section=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.txtModifier

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)&section=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


makeman_annexer.shModifier

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