Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche

Cette page est considérée comme une ébauche à compléter . Si vous possédez quelques connaissances sur le sujet, vous pouvez les partager en éditant dès à présent cette page (en cliquant sur le lien « modifier »).

Ressources suggérées : Aucune (vous pouvez indiquer les ressources que vous suggérez qui pourraient aider d'autres personnes à compléter cette page dans le paramètre « ressources » du modèle? engendrant ce cadre)

Pourquoi créer une sous-page « Annexe et index » avec le nom des auteurs et les licences d’utilisation du texte et des images ? Cela n’a sans doute aucun intérêt pour les lecteurs et pour les impressions personnelles, le lecteur a accès aux origines des textes et des images par le réseau internet.

Si un livre doit être imprimé et distribué on ne peut pas faire fi du nom des contributeurs et du droit de copie.

PediaPress imprime les wiki-livres par l’intermédiaire du compilateur, ajoute une page "annexe" et une page "index", mais lors de l’édition des livres de « La goélette Cardabela » il n’a pas été possible de remédier à la disposition et à la taille des images, de plus; l’index lexical mériterait d’être affiné.

Le compilateur en libre service qui créait ce PDF n’est pas disponible actuellement. L’annexe et l’index sont difficiles à produire, il faut chercher dans l’historique de chaque article, recopier manuellement l’origine des images, les noms des auteurs, les licences d’utilisation.

Faire imprimer les livres par un imprimeur local est une solution. Les imprimeurs peuvent assembler les feuilles et produire des livres, mais il faut leur fournir tout le matériel au format PDF et l’éditeur du livre (vous, moi) doit intégrer l’annexe et l’index dans ce PDF.

Ce livret, "Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres" propose des solutions.


Liste des articles[modifier | modifier le wikicode]

Articles[modifier | modifier le wikicode]

   Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres/Introduction
   Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres/Référencement manuel
   Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres/Référencement semi-automatique
   Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres/Référencement automatique

Annexe et index[modifier | modifier le wikicode]

   Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres/Annexe et index


Introduction[modifier | modifier le wikicode]

Documentation des ressources[modifier | modifier le wikicode]

Les articles de ce wiki-livre font appel à de nombreuses ressources media-wiki :

https://fr.wikipedia.org/wiki/Aide:Syntaxe
https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions
https://www.mediawiki.org/wiki/Help:Magic_words/fr#Fonctions_de_parseur

Annexer et indexer les articles[modifier | modifier le wikicode]

Une première solution consiste à créer une sous-page sclti de chaque article à l'aide du « canevas sclti »[1] : {{FULLPAGENAME}}/sclti où {{FULLPAGENAME}} est le lien racine de l'article.
Il est possible d'utiliser le modèle {{Référencer la page}} à placer à la fin de l'article, le modèle est à supprimer lorsque la page "Annexe et index" aura été créée.

Exemple : Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres/Introduction et sa sous-page est Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres/Introduction/sclti.

Annexer et indexer les livres[modifier | modifier le wikicode]

Un wiki-livre est normalement composé d'articles.
Pour créer l'annexe d'un livre on utilise le « canevas SCLTI » dans la sous page {{FULLPAGENAME}}/SCLTI où {{FULLPAGENAME}} est le nom de base de l'article « Livre ».

Exemple : le nom de base de ce livre {{FULLPAGENAME}} : Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres,
* la sous-page intermédiaire : Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres/SCLTI,
* la sous-page finale Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres/Annexe et index,
* et la sous-page imprimable du livre Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres/Version_imprimable

Références
  1. https://fr.wikibooks.org/w/index.php?title=Goélette_Cardabela/Références/Canevas_sclti&action=edit



Référencement manuel[modifier | modifier le wikicode]

Avant de vous lancer dans ce référencement manuel il faut que ça en vaille la peine.
Faites une compilation (menu de gauche : Imprimer/Exporter) et vérifiez que la présentation de PediaPress peut vous convenir.

Avec le référencement manuel, on ne sort pas de l'environnement Wiki

Dans l'environnement semi-automatique ou complètement automatisé, il est nécessaire d'utiliser des programmes sous Windows ou Linux.

Le canevas sclti[modifier | modifier le wikicode]

Signification de “sclti” : sources, contributeurs, licences, textes et images

Il s'agit de produire la sous-page {{PAGENAME}}/sclti de chaque article. La création est assez facile lorsqu'il n'y a qu'un auteur et peu d'images,mais c'est plus compliqué lorsqu'il y a de nombreuses images.

Dans le cas où il y aurait nombreuses images il faudrait extraire les liens, rechercher les attributions, les licences, trouver les pages où elles apparaissent.
Construction de l'index des articles, il est construit à l'aide de la sous-page {{PAGENAME}}/Sommaire.

Disponibilité du canevas sclti : Références/Canevas_sclti pour les articles disposant d'un "Sommaire"

Exemple de création d'une sous-page {{PAGENAME}}/sclti : Goélette_Cardabela/Après/L'entretien/sclti
« L'entretien » est la sous page, elle apparaît à la fin de la version imprimable : Goélette_Cardabela/Après/L'entretien/Version imprimable débarrassée de sa structure d'extractions.

Le canevas SCLTI ? Ou la section ? Ou la sous-page "Annexe"[modifier | modifier le wikicode]

Si le livre n'est pas trop compliqué on pourra créer directement la sous-page {{BASEPAGENAME}}/Annexe en extrayant les lignes des sous-pages {{PAGENAME}}/sclti.

Si le livre est plus compliqué on pourra utiliser le "canevas SCLTI" pour produire l’annexe, à défaut de disponibilité des sous-pages sclti.

Disponibilité du canevas SCLTI : Goélette_Cardabela/Références/Canevas SCLTI Ce canevas se distingue du canevas sclti par le fait qu'un livre est constitué d'articles avec un sommaire de Contenus qui est la liste des articles du livre, semblable à la liste créée par le compilateur. C'est cette liste qui doit nous servir pour créer la sous-page Annexe.
L’index est habituellement construit à l’aide de la sous-page {{PAGENAME}}/Contenus.

Exemple de création d'une sous-page {{BASEPAGENAME}}/SCLTI : Collection des livrets techniques de la goélette Cardabela/SCLTI. Elle apparaît à la fin de la version imprimable : Collection des livrets techniques de la goélette Cardabela/Version imprimable débarrassée de la structure des repères d'extraction.
Remarque : Dans cet exemple la sous-page SCLTI est utilisée directement sans produire la sous-page Annexe.

Les canevas des référencements manuels[modifier | modifier le wikicode]

Les canevas sont proposés pour créer la documentation d'un article ou d'un Wiki-livre.

Utiliser le canevas sclti[modifier | modifier le wikicode]

Le En cours de finition Canevas_sclti est proposé pour créer la sous page sclti des articles simples, ou composé de peu de sous-pages et de peu d'images.
La création simplifiée est manuelle.
La création est semi-automatique avec les fichiers de commandes :
https://fr.wikibooks.org/w/index.php?title=Goélette_Cardabela/Références#Les_fichiers_de_commandes

Utiliser le canevas SCLTI[modifier | modifier le wikicode]

Le En cours de finition Canevas_SCLTI permet de créer une section ou une sous-page SCLTI non imprimable d'un livre qui sera transformé en Annexe imprimable.

Copier les résultats dans la page Annexe[modifier | modifier le wikicode]

Exemple dans l'espace de noms Utilisateur[modifier | modifier le wikicode]

Indexer les documents avec OpenOffice (OO)[modifier | modifier le wikicode]

Ooo writer.svg

Une version OpenDocument de ce livre? est disponible.

OpenOffice peut nous aider à créer les pages d'index et peut être téléversé.
(OO est l'abréviation de OpenOffice)

Préparation du document OO pour l’exercice[modifier | modifier le wikicode]

  1. Démarrer "OpenOffice Writer".
    Au démarrage la page est en style "Standard". Modifier le style de la page en style "Première page". (Pour le sommaire dont la page ne doit pas être numérotée). Appuyer sur la touche "F11", Choisir "Style et formatage" puis "Première page" et validez par un retour chariot.
  2. Insérer une nouvelle page de style "Première page". (Pour le verso du sommaire qui ne doit pas être numéroté.)
    "Insérer" un "Saut manuel", avec le choix du "Style" : "Première page", sans cocher "Modifier le numéro de page".
  3. Insérer une troisième page, style "Standard", et valider la numérotation qui doit commencer à 1 (page impaire).

Copier le document dans OO[modifier | modifier le wikicode]

  1. Se déconnecter du compte utilisateur. (Cela évite de recopier les renvois tels que ↑ [URL] [[lien]].)
  2. Dérouler les textes masqués.
  3. Surligner et copier (avec touches Crtl-c) le document. (Tout le document imprimable par exemple.)
  4. Coller (avec touches Ctrl-v) le document dans la page de "Style standard".
  5. Le cas échéant, chercher et supprimer les liens associés aux chapitres « ↑ », « [URL][[lien]] ».
  6. Corriger la mise en page, réinsérer les sauts de pages qui n'auront pas été pris en compte.

Créer l'« Index lexical »[modifier | modifier le wikicode]

Il faut commencer par créer tous les index afin qu'ils soient pris en compte dans la table des matières. Documentation : Index lexical[1], Fichier de concordance[2].
Références de la documentation :

  1. https://forum.openoffice.org/fr/forum/viewtopic.php?p=185643#p185643 Writer - Index Lexical
  2. https://help.libreoffice.org/6.3/fr/text/swriter/01/04120250.html?DbPAR=WRITER#bm_id3148768 Fichier de concordance


  1. Ajouter une page de style standard à la suite du document pour y insérer les index. Dans le menu « Insérer, saut manuel, saut de page », Choisir style Index et placer le curseur en haut de la page.
  2. Créer l'indexation : « Insertion/Index et tables », choisir « Entrée » et « Index lexical »
  3. Dans le champ « Entrée » surligner le mot ou la phrase à indexer. Carthagène des Indes dans l'exemple ci-dessous.
  4. Dans le champ « Clé 1 » LivreTest dans l'exemple ci-dessous.
  5. Dans le champ « Clé 2 » Annexe dans l'exemple ci-dessous.
  6. Cliquer sur « Insérer »

Exemple d'Index lexical créé pour l'exercice "LivreTest" (Utilisateur:Goelette_Cardabela/Sandbox/LivreTest).

Index lexical
LivreTest	
   Annexe	
      Carthagène des Indes. (Colombie), 		5
      Commerce de communautés indigènes,		5
      Fernando Botero (2018),				5
      Fernando_Botero, 					5
      Gabriel Garcia Marquez, 				5
      Leticia et Tabatinga, 				5
      Licence,						6
      Pano Plazo Botero,				5
      Pohline Blast,					5
      Références,					5
      Source des images, licences et contributeurs,	5
      Sources et contributeurs des articles,		5
      Utilisateur:Goelette Cardabela,			5
   ArticleDeux,						3
      Chapitre 1,					3
      Chapitre 2,					3
      Chapitre 3,					3
      Sommaire,						3
   ArticleTrois,					4
      Chapitre 1,					4
      Chapitre 2,					4
      Chapitre 3,					4
   ArticleUn,						2
      Chapitre 1,					2
      Chapitre 2,					2
      Chapitre 3,					2
      Sommaire,						2
   Contenu,						1

Créer la « Table des matières »[modifier | modifier le wikicode]

Créer une page de style "première page" en tête du document pour y insérer la table des matières. Placer le curseur au début de la page.

La table des matières donne le titre des articles et des sections. Il n'y a pratiquement aucun travail supplémentaire pour établir cet index. Dans le menu « Insertion/Index et tables », choisir « Table des matières » puis décocher la case « Protéger contre toute modification manuelle », puis cliquer sur « OK ». C'est terminé, l'index se place où votre souris a positionné le curseur.
Les liens internes vers les chapitres peuvent être effacés si l'index n'est pas protégé contre les modifications manuelles.

Exemple de table des matières créé pour l'exercice "LivreTest".

Table des matières
Contenu du livre,					1
   ArticleUn,						2
      Sommaire,						2
      Chapitre 1,					2
      Chapitre 2,					2
      Chapitre 3,					2
   ArticleDeux,						3
      Sommaire,						3
      Chapitre 1,					3
      Chapitre 2,					3
      Chapitre 3,					3
   ArticleTrois,					4
      Chapitre 1,					4
      Chapitre 2,					4
      Chapitre 3,					4
   Annexe,						5
      Références,					5
      Sources et contributeurs des articles,		5
      Source des images, licences et contributeurs,	5
      Licence,						6
   Index,						7      

Méthode générale pour imprimer avec OpenOffice (OO)[modifier | modifier le wikicode]

Rappel : (OO est l'abréviation de OpenOffice)

Préparer le document OO[modifier | modifier le wikicode]

  1. Procéder comme dans le sous-chapitre précédent #Préparation_du_document_OO, en créant autant de pages de style "Première page" qu'il y aura de pages non numérotées, ou numérotées différemment des pages du contenu (i, ii,iii, etc.) : L'énumération suivante est non-exhaustive : Première et deuxième de couverture, deux éventuelles pages de gardes blanches (pour les gros livres), faux titre, dos de faux titre, titre avec sous-titre et le nom de l'éditeur, sommaire, voire un dos de sommaire, (huit ou dix pages en général, sachant que le contenu doit toujours commencer sur une page impaire.)
  2. Ajouter une page standard à la fin du document avec une numérotation qui doit commencer à 1.
  3. Ajouter les pages de la fin du document en style "Première page", (pages de garde, troisième et quatrième de couverture. etc.). À défaut, elles pourront facilement être ajoutées plus tard.

Recopier le contenu WikiMedia (textes et images) dans OO[modifier | modifier le wikicode]

  1. Méthode 1 : Surligner et Copier (clic Ctrl-c) le contenu WikiMedia à recopier sans être connecté, ceci permet d'éviter d'être obligé de supprimer les ↑ [URL] [[lien]]. La méthode convient lorsqu'il y a des textes masqués que l'on doit dérouler avant de copier.
    Méthode 2 : Éditer, surligner, copier, avec le menu "Modifier" s’il n'y a pas de texte masqué.
  2. Coller ce contenu dans "OO writer" (clic Ctrl-v), le contenu collé ne tient pas compte des directives {{Nouvelle pages imprimée}}
  3. Rétablir les nouvelles pages à imprimer dans "OO Writer" : "Insertion" + "Saut manuel" + "Saut de page"
  4. Faites une sauvegarde initiale du contenu dans le style "date-titre-initial".

Corriger et compléter les pages[modifier | modifier le wikicode]

  1. Si vous disposez d'un correcteur analyseur de syntaxe ("Antidote" ?), c'est le moment de vous en servir.
  2. Faites une sauvegarde du contenu corrigé dans le style "date-titre-corrrigé".
    Toutes les sauvegardes doivent ensuite être incrémentées de façon à retrouver les originaux si ça tourne mal après, ou au cours d'une intervention. Il existe une macro qui fait cela :
    https://forum.openoffice.org/fr/forum/viewtopic.php?f=18&t=18566.
  3. Vous pouvez maintenant insérer l'index lexical "Insertion" + "Index et tables" + "Entrée" (Voir la section précédente Indexation de l'index lexical).
  4. Faites une sauvegarde incrémentée.
  5. Insérer une "En-tête" dans les pages de contenu (ou un pied de page) dans laquelle vous pourrez placer le numéro de page qui doit commencer à '1' sur une page impaire. Cliquez sur la touche F11 pour obtenir les listes de styles et formatages. Finissez par ajouter "Insérer" une "Règle horizontale" (sur la même ligne). Cette règle crée une sorte de séparateur entre le texte et l'entête.
  6. Pour finir Recopiez les éventuelles pages de présentation et faites une sauvegarde du fichier.

Documentation générale[modifier | modifier le wikicode]

  1. Une liste des styles de pages est disponible sur https://fr.wikipedia.org/wiki/Page_(livre)#Lexique.
  2. Exemple de modèle pour les couvertures : {{Couverture d'un wikilivre}}
  3. Visualiser le fichier PDF cette page, daté du 23 septembre 2019
    https://upload.wikimedia.org/wikipedia/commons/e/eb/Référencement_manuel_des_pages_et_livres_de_MediaWiki-fr.pdf
  4. Créez une compilation des fichiers du livre (menu latéral, "imprimer/exporter") et voyez ce que propose PediaPress.
    Vous pourrez noter à part les résultats qui vous conviennent (le copier-coller ne marche pas), si tout est bon commandez le livre.




Référencement semi-automatique[modifier | modifier le wikicode]

Attention : modification en cours !link={{{link}}}

Un contributeur est en train de retravailler en profondeur cette page. Vous êtes prié(e) d'éviter de le modifier pour limiter les risques de conflit de versions jusqu'à disparition de cet avertissement. Merci.


Les fichiers de commandes[modifier | modifier le wikicode]

Les fichiers de commandes servent à automatiser la création des fichiers Annexe.doc des livres.

Ces fichiers seront recopiés sous formes de pages ou de sous-pages dans l'environnement Wiki

Où trouver la documentation des fichiers de commandes[modifier | modifier le wikicode]

Aperçu explicatif des fichiers de commandes[modifier | modifier le wikicode]

Commuer en sous-pages "Annexe" et "Index" le texte concaténé ou transclus ou en sous-page[modifier | modifier le wikicode]

Commuer les sous-pages sclti du livre, les articles, en sous-page Annexe[modifier | modifier le wikicode]


Référencement automatique[modifier | modifier le wikicode]

Face-sad.svg Ce wikilivre est encore à l'état d'ébauche, tout reste à faire.

Informations sur la page

Automatiser l'ensemble des tâches de la documentation des livres n'est pas facile car rien n'est prévu par WikiMedia.

Jusqu'en 2017 le menu Créer une compilation permettait de créer une image PDF du livre avec sa documentation, annexes et index. Plus tôt encore, on pouvait obtenir d'autres formats.

Notez qu'il est toujours possible de créer une compilation et de commander un livre à PediaPress.

Automatiser la documentation avec mwlib et linux ubuntu[modifier | modifier le wikicode]

C'est la méthode utilisée par PediaPress avec les versions pdf writer 0.10.4 et mwlib 0.15.18

documentation
https://media.readthedocs.org/pdf/mwlib/latest/mwlib.pdf

Cette librairie est obsolète et on comprend le problème actuel de PediaPress. Elle a été publiée par Volker Haas, Ralf Schmitt, Johannes Beige en 2010.

Pour utiliser cette librairie il faudrait équiper un serveur avec les recommandations pour Ubuntu 18 LTS et Mediawiki Version 1.17 ou + à cette url :

http://edutechwiki.unige.ch/en/Mediawiki_collection_extension_installation

Automatiser la documentation sans changer les habitudes Wikimédia[modifier | modifier le wikicode]

Il n'est pas possible d'agir sur une page Wiki à l'aide de commandes externes, il faut donc créer des fichiers sur lesquels on peut agir.

L'idée première est de créer un fichier html copie de la page à documenter. Cela peut se faire avec les commandes spéciales wget disponibles en standard sous Linux et PowerShell

La seconde idée est de créer un flux d'extraction du texte d'un fichier et de faire un tri à la volée de ce que l'on cherche, et que l'on redirige vers un fichier qui recueuille ces données.

Équivalence des commandes shell selon les systèmes d'exploitation[modifier | modifier le wikicode]

Comparaison des commandes Windows_PowerShell, DOS et UNIX

Utiliser les commandes bash sous linux ou sous Windows[modifier | modifier le wikicode]

http://montefiore.ulg.ac.be/~nvecoven/ci/files/tuto_bash/tuto_bash.html

Pour extraire la documentation nous disposons des commandes grep, mkd, etc. Mais comment faire pour que le contributeur puisse créer la documentation de son livre avec un minimum de clics.

Code d'essai avec wget[modifier | modifier le wikicode]

Attention : modification en cours !link={{{link}}}

Un contributeur est en train de retravailler en profondeur cette page. Vous êtes prié(e) d'éviter de le modifier pour limiter les risques de conflit de versions jusqu'à disparition de cet avertissement. Merci.

Code des commandes d'essais avec une liste fullurl des pages à traduire en code html
extraire.bash
#!/bin/bash
# fichier extraire (ou extraire.bash)
# fichier de test de la commande wget
# ce fichier de commandes lit le contenu du fichier liste projet.list ligne à ligne et produit des fichiers
# Syntaxe : extraire <projet>
# exemple : ./extraire.bash LivreTest
# Exemple de LivreTest.list 
#################################################################################################
### https://fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest              #
### https://fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn    #
### https://fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleDeux  #
### https://fr.wikibooks.org/wiki/Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleTrois #
#################################################################################################
# Exemple de LivreTest.prj obtenu
##################
### ArticleDeux  #
### ArticleTrois #
### ArticleUn    #
### LivreTest    #
##################
rm *.1 *.2
clear
echo "Extraction de la documentation du livre en test: "$1
echo " "
echo "Ce fichier de commandes "$0" doit être en mode lecture, écriture et exécution : Commande : chmod 777 "$0
echo " "
echo $1" est le nom de projet du livre à documenter."
echo " "
echo "La liste "$1".list, doit contenir les liens vers les pages qui composent le livre, (le Contenu du livre)."
echo " "
#read -p "Appuyer sur retour-chariot une pour continuer ..."
if (test -a $1".list") then  {
   wget -i $1.list
   if (test -a $1".1") 
      then echo "Les listes sont créées au premier tour.";
      else wget -i $1.list # force la création des fichiers d'extension ".1" pour la sélection.
      echo "Les listes sont créées au deuxième tour.";
   fi	  
   }
   else exit -1;
fi
rm *.tmp
ls *.1 > $1.tmp
cat $1.tmp | sed "s/.1//g" > $1.prj
cp -f *.1 *
echo $1".prj contient la liste des fichiers à convertir en fichier.html avec les liens vers wikibooks à compléter :"
echo " "
cat $1.prj

Fichier des liens internet vers les pages du livre pour créer la page Annexe[modifier | modifier le wikicode]

  • La liste des liens vers les pages du livre permet de créer la page Annexe avec wget.
  • Dans les exemples suivants les liens vers wikibooks français sont artificiels. Pour les pages issues d'autres sites wiki il faudrait extraire l'adresse du site {{SERVER}}=//fr.wikibooks.org pour l'incorporer à la génération de la liste, ou encore: extraire la liste des pages de la page principale.
  • Il est peut être préférable d'utiliser les Modèles pour créer ces listes ?
Exemple : {{FULLURL:Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn}}
qui donne //fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn
Le lien est relatif mais il suffit de faire précéder la commande par "https:"
qui donne https://fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn
avec la page Contenu de LivreTest[modifier | modifier le wikicode]
Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/Contenu
LivreTest.contenu (Fichier)
Copier le wikicode suivant dans l'espace de travail ~Wget (Dossier Personnel) :
[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn|ArticleUn]]<br />
[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleDeux|ArticleDeux]]<br />
[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleTrois|ArticleTrois]]

{{AutoCat}}
Construction du fichier de liste LivreTest.list
Copier mkd-getwikifiles dans le même répertoire : ~Wget.
Utilisateur:Goelette_Cardabela/mkd-getwikifiles
mkd-getwikifiles --s LivreTest.contenu > LivreTest.list
autre solution avec bash, sans mkd-getwikifiles :
Code bash ;
cat LivreTest.contenu | sed "s/\[\[/%https:\/\/fr.wikibooks.org\/wiki\//g" | sed "s/]]/%/g" | cut -d'%' -f2 |tr '|' '\n' | grep "wiki" > LivreTest.list
avec la page LivreTest.compilé issue de la compilation[modifier | modifier le wikicode]
wikicode de LivreTest compilé (fichier)
== LivreTest ==
=== Tests de référencement ===
:[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn]]
:[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleDeux]]
:[[Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleTrois]]

[[Catégorie:Compilations|LivreTest]]
Code bash ;
cat LivreTest.compilé | sed "s/:\[\[/%https:\/\/fr.wikibooks.org\/wiki\//g" | sed "s/]]/%/g" | cut -d'%' -f2 |tr '|' '\n' | grep "wiki" > LivreTest.list
fichier LivreTest.list obtenu avec les pages Contenu ou la page issue de la compilation[modifier | modifier le wikicode]
https://fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn
https://fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleDeux
https://fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleTrois

Code ArticleUn.1 obtenu avec wget pour la page ArticleUn[modifier | modifier le wikicode]

Les liens sont relatifs à la page, sur le serveur de wikibooks, ce code html n'est pas exploitable tel quel sur un navigateur local. ...
Voir le sous-chapitre ci-après #Extraire_les_liens_des_images_de_la_page_ArticleUn

Quellle documentation peut-on extraire de ces fichiers obtenus avec wget ?[modifier | modifier le wikicode]

Voir aussi :

mw.config.set : Tout le nécessaire pour créer la documentation se trouve dans la ligne 7 : (table de configuration du serveur)
Informations sur la page : https://fr.wikibooks.org/w/index.php?title=Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn&action=info
Code JavaScript : https://fr.wikipedia.org/wiki/MediaWiki:Guidedtour-tour-tuto3.js

Extraits du fichier obtenu : (ligne 7)
...
"wgPageName":"Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn",
"wgTitle":"Goelette Cardabela/Sandbox/LivreTes/ArticleUn",
"wgCurRevisionId":610077,
"wgRevisionId":610077,
"wgArticleId":72692,
"wgRelevantPageName":"Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn",
"wgRelevantArticleId":72692,
"wgRelevantUserName":"Goelette Cardabela",
...

On y trouve aussi du texte extractible :
ligne 5: titre de la page, <title>Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn — Wikilivres</title>
ligne 19: le nom de la page, <link rel="edit" title="Modifier" href="/w/index.php?title=Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn&action=edit"/>
ligne 23: la licence, <link rel="license" href="//creativecommons.org/licenses/by-sa/3.0/"/>
ligne 25: le lien canonical, <link rel="canonical" href="https://fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn"/>
lignes 42 à 46: le Sommaire,

<h2><span class="mw-headline" id="Sommaire">Sommaire</span> ...
<pre>   <a href="/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn#Chapitre_1" title="Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn">Chapitre 1</a>
   <a href="/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn#Chapitre_2" title="Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn">Chapitre 2</a>
   <a href="/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn#Chapitre_3" title="Utilisateur:Goelette Cardabela/Sandbox/LivreTest/ArticleUn">Chapitre 3</a>
</pre>

lignes 91 et 92: le bas de page de la dernière page imprimée,

					<div class="printfooter">
						Récupérée de «&#160;<a dir="ltr" href="https://fr.wikibooks.org/w/index.php?title=Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn&amp;oldid=610077">https://fr.wikibooks.org/w/index.php?title=Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn&amp;oldid=610077</a>&#160;»					</div>

lignes 190 à 192: suite du bas de page de la dernière page imprimée,

								<li id="footer-info-lastmod"> La dernière modification de cette page a été faite le 21 décembre 2018 à 11:14.</li>
								<li id="footer-info-copyright">Les textes sont disponibles sous <a href="//creativecommons.org/licenses/by-sa/3.0/">licence Creative Commons attribution partage à l’identique</a> ; d’autres termes peuvent s’appliquer.<br/>
Créer une page html et en extraire les chaînes de caractères pour créer la documentation annexe[modifier | modifier le wikicode]

Les commandes ci-après sont à inclure dans un fichier shell bash pour l'exécution automatique. On pourra ensuite essayer de créer un équivalent pour Windows 10.

  1. Transformer le fichier ArticleUn.1 en fichier html avec les commandes cat et sed :
cat ArticleUn | sed -e "s/\"\/wiki\//\"https:\/\/fr.wikibooks.org\/wiki\//g" > ArticleUn.html
Signifie : Remplacer de façon récursive (option g) la chaîne de caractères « "/wiki/ » par la chaîne« "https://fr:wikibooks.org/wiki/ » et concaténer le résultat dans un nouveau fichier ArticleUn.html
  1. Vérifier avec le navigateur internet que ce fichier html a bien été correctement modifié et s'affiche avec un navigateur web. Remarque: La mise en page n'est pas copiée.
  2. Extraire toutes les chaînes de caractères avec mkd option -p et les copier dans un nouveau fichier AtrticleUn.str
mkd -p '**' ArticleUn.html ArticleUn.str
Extraire la documentation[modifier | modifier le wikicode]
Obtenir le droit de copie (exemple)
cat ArticleUn.str | grep -n -m 1 -i -e license | sed "s/\"\//%\//g" | cut -d'%' -f2 |sed "s/\/\//https:\/\//g" > ArticleUn.license
Signifie : ouvrir le flux ArticleUn.str
| ne retenir que les chaînes de caractères contenant license
| remplacer les caractères "/ par le caractère %
| couper les chaînes en dehors des chaîne contenue entre les deux caractères %
| remplacer les caractères // par https://
> concaténer le résultat dans un nouveau fichier ArticleUn.license
Résultat : https://creativecommons.org/licenses/by-sa/3.0/
Obtenir le nom de l'auteur de la page (exemple)
cat ArticleUn.str | grep -n -m 1 -i -e wgRelevantUserName | sed "s/,\"/%\"\n\"%/g" | grep -n -m 1 -i -e wgRelevantUserName | cut -d'%' -f2 | sed "s/wgRelevantUserName\":\"/\"''Auteur '' : /g" | cut -d'"' -f2 > ArticleUn.auteur
Signifie : ouvrir le flux ArticleUn.str
| ne retenir que la première chaîne contenant wgRelevantUserName
| remplacer les caractères ,/ par %"\n"%
| couper les chaînes en dehors de celles contenues entre les deux caractères %
| remplacer les chaînes wgRelevantUserName\":\" par la chaîne "Auteur  :
> ArticleUn.auteur
Noter que '\n' est un simple retour chariot et "\n" est un double retour chariot car la fin de chaîne inclut un retour-chariot.
Résultat :Auteur  : Goelette Cardabela
Construire la section Source des articles; droits; auteur(s), de la page Annexe[modifier | modifier le wikicode]

Les liens vers les pages se trouvent dans la page « Contenus ». Pour le cas, l'exemple est limité à l'« ArticleUn »

'''''Article : ''{{PAGENAME:Nom de la page}}''' 
''Source : ''{{canonicalurl:Nom de la page}}, 
''Droits de copie :''_, 
''Auteur(s) :''_, 
({{orange|''Page :''_.}})

Wikitexte à copier dans la page Annexe et index :

<small><small>'''''Article : ''{{PAGENAME:Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn}}''' 
''Source : ''{{canonicalurl:Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn}}, 
''Droits de copie :''https://creativecommons.org/licenses/by-sa/3.0/, 
''Auteur(s) :''Goelette Cardabela, </small></small>

Résultat :

Article : Goelette Cardabela/Sandbox/LivreTest/ArticleUn Source : https://fr.wikibooks.org/wiki/Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn, Droits de copie :https://creativecommons.org/licenses/by-sa/3.0/, Auteur(s) : Goelette Cardabela,
Notez que l'on peut remplacer le lien Utilisateur:Goelette_Cardabela/Sandbox/LivreTest/ArticleUn par son numéro de révision : "wgRevisionId":610077 que l'on peut aussi obtenir par {{REVISIONID}} au moment de l'édition, car ce numéro changera dès la prochaine révision de la page ...
Source : https://fr.wikibooks.org/w/index.php?oldid=610077
Code bash en exemple pour créer la ligne Source licence et contributeur des articles[modifier | modifier le wikicode]
Exemple avec ArticleUn de LivreTest
#! /bin/bash
clear
rm ArticleUn.tmp
rm ArticleUn.sclt
echo "Création de ArticleUn.sclt avec ArticleUn.str "
echo '--------------------'
echo " "
echo "<small><small>'''ArticleUn''' ''Source :''"\
'https://fr.wikibooks.org/w/index.php?oldid=' >> ArticleUn.tmp
cat ArticleUn.str | grep -n -m 1 -i -e wgRevisionId | sed "s/,\"/%\"\n\"%/g" | grep -n -m 1 -i -e wgRevisionId | cut -d'%' -f2 | sed "s/wgRevisionId\"://g"  >> ArticleUn.tmp
echo ", ''Droits de copie :''"  >> ArticleUn.tmp
cat ArticleUn.str | grep -n -m 1 -i -e license | sed "s/\"\//%\//g" | cut -d'%' -f2 |sed "s/\/\//https:\/\//g"  >> ArticleUn.tmp
echo ", ''Auteur(s) :''"   >> ArticleUn.tmp
cat ArticleUn.str | grep -n -m 1 -i -e wgRelevantUserName | sed "s/,\"/%\"\n\"%/g" | grep -n -m 1 -i -e wgRelevantUserName | cut -d'%' -f2 | sed "s/wgRelevantUserName\":\"/\"/g" | cut -d'"' -f2  >> ArticleUn.tmp
echo "</small></small>"  >> ArticleUn.tmp
#
echo "== Sources et contributeurs de l'article ==" > ArticleUn.sclt
cat ArticleUn.tmp | sed ':z;N;s/\n//g;bz' >> ArticleUn.sclt  ##voir aussi avec la commande tr
cat ArticleUn.sclt

Résutat (wikitexte) :

== Sources et contributeurs de l'article ==
<small><small>'''ArticleUn''' ''Source :''https://fr.wikibooks.org/w/index.php?oldid=632571, ''Droits de copie :''https://creativecommons.org/licenses/by-sa/3.0/, ''Auteur(s) :''Goelette Cardabela</small></small>

Résutat (affichage) :
Il ne convient pas, ici, d'afficher le titre == Sources et contributeurs de l'article ==
ArticleUn Source :https://fr.wikibooks.org/w/index.php?oldid=632571, Droits de copie :https://creativecommons.org/licenses/by-sa/3.0/, Auteur(s) :Goelette Cardabela

Extraire les liens des images de la page ArticleUn[modifier | modifier le wikicode]
  1. Sélectionner les lignes qui contiennent les liens d'images, avec la commande grep, et les pousser dans un nouveau fichier ArticleUn.img
    cat ArticleUn.str | grep -n -i -e fichier: -e file: -e image: > ArticleUn.img
    Signifie : Sélectionner les lignes contenant fichier: ou file: ou image: avec -i : sans distinction majuscules/minuscules et avec -n : numéroter les lignes.
    Code ArticleUn.img résultant : ligne 42 de ArticleUn.
    42:<div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:502px;"><a href="https://fr.wikibooks.org/wiki/Fichier:Gabriel_Garcia_Marquez_-_Fresque.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/b/ba/Gabriel_Garcia_Marquez_-_Fresque.jpg/500px-Gabriel_Garcia_Marquez_-_Fresque.jpg" width="500" height="375" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/b/ba/Gabriel_Garcia_Marquez_-_Fresque.jpg/750px-Gabriel_Garcia_Marquez_-_Fresque.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/b/ba/Gabriel_Garcia_Marquez_-_Fresque.jpg/1000px-Gabriel_Garcia_Marquez_-_Fresque.jpg 2x" data-file-width="1280" data-file-height="960" /></a>  <div class="thumbcaption"><div class="magnify"><a href="https://fr.wikibooks.org/wiki/Fichier:Gabriel_Garcia_Marquez_-_Fresque.jpg" class="internal" title="Agrandir"></a></div>Gabriel Garcia Marquez - Fresque de Pohline Blast</div></div></div></div>
    
  2. Couper les chaînes avec la commande awk et comme séparateur le retour chariot '\n' ("\n" double le new-line)
    Nonbre de champs du fichier ArticleUn.img avec le séparateur de champ "=" : cat ArticleUn.img | awk -F"=" '{print NF}' ⇒ 20 champs.
cat ArticleUn.img |awk -F"=" '{for (i=1;i<=NF;i++) print $i "\n"}' | grep https | sed "s/\"/%/g" | cut -d'%' -f2 > ArticleUn.lnk
signifie : remplacer le séparateur '=' par un double retour-chariot "\n", sélectionner les lignes qui contiennent "https", répéter (option /g) le remplacement du caractère '"' par le caractère '%', et à la fin (cut), ne sélectionner que les 2 champs délimités par les caractères '%' (-f2). Le flux est envoyé au fichier en création > ArticleUn.lnk.
⇒ résultat: un champ $0 contenant les deux liens de ArticleUn.img vers la page de l'image sur wikibooks, sur deux lignes :
ArticleUn.lnk :
Couper le doublon
cat ArticleUn.lnk | sed 'N;s/\nh/%h/g;P;D;' |  cut -d'%' -f1 > ArticleUn.images
signifie : concaténer les chaînes en remplaçant dans l'espace de traitement (N) de façon répétitive (/g) "\nh" par "%h" (P=print dans l'espace de traitement) avec la condition (D:si l'espace de traitement ne contient pas '\n'), et enfin, sélectionner (cut) le premier champ délimité par le caractère '%' (-f1). Le flux est envoyé au fichier en création > ArticleUn.images.
( il reste):
https://fr.wikibooks.org/wiki/Fichier:Gabriel_Garcia_Marquez_-_Fresque.jpg
Construire la section Source des images; droits; auteur(s), de la page Annexe[modifier | modifier le wikicode]
  1. Éliminer les lignes en doublon des fichiers .lnk de la Version imprimable.
  2. Éditer les pages des images sur wikilivres puis sélectionner et copier le nom des auteurs et les licences associées.
'''''Illustration : ''{{PAGENAME:Fichier:Gabriel_Garcia_Marquez_-_Fresque.jpg}}''' 
''Source : ''{{canonicalurl:Fichier:Gabriel_Garcia_Marquez_-_Fresque.jpg}}, 
''Droits de copie :''_, 
''Auteur(s) :''_, 
({{orange|''Page :''_.}})

Illustration : Gabriel Garcia Marquez - Fresque.jpg  Source : https://fr.wikibooks.org/wiki/Fichier:Gabriel_Garcia_Marquez_-_Fresque.jpgDroits de copie :_,  Auteur(s) :_,  (Page :_.)

Code bash en exemple pour créer la ligne Source licence et contributeurs des images[modifier | modifier le wikicode]
Exemple avec ArticleUn de LivreTest
#!/bin/bash
clear
prefix=https://fr.wikibooks.org/wiki/
file=File:Gabriel_Garcia_Marquez_-_Fresque.jpg
### Téléchargement du fichier image
# wget $prefix$file
### Extraction de la licence : licensetpl (courte)
cat $file | grep licensetpl_short | sed "s/\">/%/g" > tmp
echo '%' >> tmp
cat tmp | tr -d '\n' | cut -d'%' -f2 > $file.licence
#
echo "'''$file''' " > tmp
cat tmp | tr _ ' ' > temp
echo ", ''source:''$prefix$file" >> temp
echo ", ''licence:''">> temp
cat $file.licence >> temp
echo ", ''Contributeur(s):''">> temp
#
### Extraction du nom du contributeur : User
cat $file | grep User: | tr \" % | cut -d'%' -f2 | grep User: | tr / '\n' \
| grep User: | \sed "s/User://g" | tr _ ' ' >> temp
### Supprimer les retour-chariot
cat temp | tr -d '\n' > $file.scli
echo " " >> $file.scli
cat $file.scli
exit 0
Résultat
'''File:Gabriel Garcia Marquez - Fresque.jpg''' , ''source:''https://fr.wikibooks.org/wiki/File:Gabriel_Garcia_Marquez_-_Fresque.jpg, ''licence:''CC BY-SA 4.0 , ''Contributeur(s):''Pohline Blast Clm
Application dans le wiki
File:Gabriel Garcia Marquez - Fresque.jpg , source:https://fr.wikibooks.org/wiki/File:Gabriel_Garcia_Marquez_-_Fresque.jpg, licence:CC BY-SA 4.0 , Contributeur(s):Pohline Blast Clm
Construire le fichier complet Annexe et index de la Version imprimable[modifier | modifier le wikicode]

La gestion automatique des numéros de pages est un problème insoluble avec les Versions imprimables.

À faire...link={{{link}}}

Compléter avec le contenu des sections précédentes. Lors de l'édition proposer un index des pages et un index lexical.


Automatiser, éditer avec OpenOffice ou LibreOffice[modifier | modifier le wikicode]

OpenOffice peut nous aider à automatiser la création d'un livre grâce aux "macros".

Voyez cette première approche : Indexer les documents avec OpenOffice

Votre aide pour créer des "macros" serait bienvenue. ...


Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres/Annexe et index

À faire : [[Utilisateur:Goelette Cardabela/Sandbox/Annexion et indexation des wiki-livres/Version imprimable]]