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

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche
Face-sad.svg Ce wikilivre est encore à l'état d'ébauche, tout reste à faire.

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

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]

Code des commandes d'essais avec une liste fullurl des pages à traduire en code html
wget.bash 
clear
#echo "Ce fichier de commandes "$0" est un fichier d'extraction de la documentation du livre en test : LivreTestSA."
echo " "
echo "Le fichier de commandes "$0" doit être en mode lecture, écriture et exécution : Commande : chmod 777 "$0
echo " "
echo "Le premier argument "$1" est un fichier de liste contenant les liens vers les textes sources."
#echo "Le deuxième argument "$2" est le fichier texte cible."
read -p "Appuyer sur une touche pour continuer ..."
wget -i $1 -o wget-log

Fichier de liste pour wget[modifier | modifier le wikicode]

LivreTest.list
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 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 ci-après.

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

On peut extraire les liens et obtenir une page Index très complète. Cependant ce système ne permet pas de préciser directement les pages ni les Licences associées, pour cela il faut automatiser la lecture des pages d'images et compléter les noms des auteurs et les licences.

En cours de finition Extraire les liens des images de la page ArticleUn ( Étude en cours)[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.1 | 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 pousser le résultat dans un nouveau fichier ArticleUn.html
  2. Vérifier avec le navigateur internet que ce fichier html a bien été correctement modifié et s'affiche correctement.
  3. Extraire toutes les chaînes de caractères avec mkd option -p et les pousser dans un nouveau fichier AtrticleUn.str
    mkd -p '**' ArticleUn.html ArticleUn.str
  4. 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>
    
  5. 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
    ⇒ donne 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.lnk3 :
ArticleUn.lnk3 ( il reste):
https://fr.wikibooks.org/wiki/Fichier:Gabriel_Garcia_Marquez_-_Fresque.jpg
Éditer les pages d'images et construire la section Images de l'Annexe ( Projet )[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.
    essayez avec : https://fr.wikibooks.org/wiki/Fichier:Gabriel_Garcia_Marquez_-_Fresque.jpg
Construire le fichier complet Annexe de la Version imprimable ( Projet )[modifier | modifier le wikicode]

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




Voila, fin janvier 2019 on en est là ... Votre participation serait bienvenue si vous avez des compétences pour créer de la documentation à l'usage des wikipédiens qui publient des livres.

Discussion:Goélette_Cardabela/Références

Automatiser avec OpenOffice[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. ...