Tools/fr
Les Kiwix tools sont un ensemble de scripts (le plus souvent en Perl) ayant pour vocation d'aider à la création de contenus exploitables par le logiciel Kiwix.
Introduction
Kiwix est avant tout pensé comme un outil pour publier Wikipédia, mais tout est fait pour qu'il puisse faire plus comme :
- publier d'autres projets de la Fondation Wikimédia,
- d'autres contenus publiés avec l'aide de Mediawiki,
- ou même produit avec d'autres outils, typiquement d'autres moteurs de wiki (comme ici par exemple).
Le cœur de Kiwix étant le moteur de rendu HTML Gecko, l'objectif des Kiwix tools est de produire :
- dans un premier temps un ensemble cohérent de fichier HTML statiques adjoints de leur nécessaires ressources : feuilles de style, scripts javascript, images, etc.
- ensuite seulement, et à partir de ces fichiers statiques, de produire un fichier ZIM.
Stockage
Dans notre jargon un tel ensemble cohérent de contenus multimédias est appelé un dump ou encore un corpus. Ces dumps peuvent avoir plusieurs formes : pour Kiwix v0.5, c'était un simple répertoire, Moulinwiki a utilisé un format ou plusieurs fichiers étaient amalgamés et compressés avec bzip2, l'ensemble étant indexé dans une base Sqlite.
Aujourd'hui, Kiwix se base sur le format ZIM : un format tout en un (tout dans un fichier), qui permet à la fois d'avoir des accès rapides ainsi que une compression forte et paramétrable.
ZIM est un format créé par le projet openZIM dont Kiwix est avec d'autres l'initiateur. ZIM est lui-même basé sur un format plus ancien : ZENO. ZENO a été créé par la maison d'édition berlinoise Directmedia et a servi pour publié les CD-ROM de Wikipédia en allemand. Aujourd'hui, le format est abandonné, mais nous avons voulu continuer sont développement. L'avenir dira si cette initiative sera un succès, mais l'objectif est d'en faire un standard et ainsi simplifier pour chacun la problématique du stockage des dumps. Il est de toute manière déjà la meilleure solution libre.
Génération
La question de la méthode pour générer un dump n'est pas une question simple. Pour plusieurs raisons, Kiwix s'est jusqu'à présent concentré sur la manière de générer des dumps offrant une sélection ; même si la publication de dumps complets de Wikipédia reste clairement un objectif. Les Kiwix tools sont donc étudiés pour aider à la sélection, aider à répliquer des contenus issus du site en ligne sur un miroir pour ensuite à partir de ce miroir faire un dump.
Mais ce n'est pas la seule méthode pour générer un dump : on peut s'y prendre théoriquement de différentes manières. Voici une petite liste non exhaustive d'approches :
- Si l'on souhaite produire un dump complet, on peut :
- prendre un dump HTML issu du gestionnaire du wiki, la Fondation Wikimédia en fournit ici par exemple.
- choisir de monter un miroir du wiki, d'uploader les données (le code wiki entre autre) dans la base de données et de ensuite générer un dump soit-même. On peut trouver de telles données pour la Fondation Wikimedia ici. Dans le cas d'une sélection, on peut aussi les récupérer dynamiquement sur le site (puisque un wiki est open source).
- si l'on souhaite générer directement (en récupérant les pages HTML) un dump à l'aide du site web avec un logiciel de type aspirateur.
- Si l'on souhaite un dump partiel, il faut faire une sélection des articles, ensuite la problématique est analogue que pour un dump complet.
Les contraintes sont assez nombreuses, voici de manière générale celles qu'il faut prendre en compte :
- les ressources matérielles du serveur,
- vos propres ressources matérielles,
- l'espace de stockage dont vous disposez pour le résultat final,
- comment faire la sélection si nécessaire.
Inventaire
Voici une liste non exhaustive des scripts disponibles (de nombreux d'entre eux sont spécifiques à Mediawiki) :
- backupMediawikiInstall.pl permet de faire un tgz d'une installe complète de Mediawiki (code + ressources + base de données).
- buildHistoryFile.pl permet à partir d'une liste d'articles et d'une instance en ligne de Mediawiki d'obtenir les historiques complet de chaque page de la liste.
- extractContributorsFromHistoryFile.pl permet à partir d'extraire une liste des auteurs à partir des historiques obtenus avec buildHistoryFile.pl.
- buildContributorsHtmlPages.pl permet à partir d'un template et d'une liste d'auteurs de contruire un set de pages HTML comportant l'ensemble des auteurs de la liste.
- checkMediawikiPageCompleteness.pl vérifie si les pages d'une instance en ligne de Mediawiki sont complètes ; c'est à dire n'ont pas de dépendences (templates ou fichiers multimédiats) manquantes.
- checkPageExistence.pl vérifie à partir d'une liste et d'une instance de Mediawiki en ligne l'existence des pages. Cela peut-être pratique par exemple pour savoir quelle pages ont été répliquées.
- checkRedirects.pl vérifie si il n'y a pas des pages de redirections pointant vers du vide. Il faudrait aussi ajouter la vérification des pages de redirections se pointant mutuellement.
- installMediawiki.pl permet de mettre en ligne une instance de Mediawiki à partir de son code sans intervention humaine. Cela simule en fait le processus manuel d'installation.
- listAllImages.pl liste les images d'une instance de Mediawiki en ligne.
- listAllPages.pl liste toutes les pages d'une instance de Mediawiki en ligne.
- listCategoryEntries.pl liste les pages dans une catégorie de manière recursive.
- listRedirects.pl liste les redirections dans une instance de Mediawiki en ligne.
- mirrorMediawikiCode.pl permet de télécharger exactement la même version que celle utilisée par un site Mediawiki en ligne ; ceci est valable pour le code de Mediawiki ainsi que pour le code des extensions.
- mirrorMediawikiInterwikis.pl permet d'installer pour sa version locale de Mediawiki exactement les mêmes interwikis que pour une version de Mediawiki déjà en ligne.
- mirrorMediawikiPages.pl permet de copier tout page, ainsi que leurs dépendances (template et ressources multimédia) entre deux Mediawikis en ligne.
- modifyMediawikiEntry.pl permet de supprimer, vider, faire des remplacement sur une liste de pages présentent dans un Mediawiki en ligne.
- resetMediawikiDatabase.pl permet de vider une instance locale de Mediawiki de toutes ces pages.
- buildZimFileFromDirectory.pl permet à partir d'un repertoire contenus les fichiers HTML de créer un fichier ZIM.
- checkEmptyFilesInHtmlDirectory.pl permet de vérifier qu'un répertoire et ses sous répertoires ne contiennent pas de fichiers vides.
- dumpHtml.pl permet à partir d'une instance locale de Mediawiki de rendre statique toutes les pages ; c'est à dire créer un repertoire HTML avec toute ce qu'il faut dedans.
- launchTntreader.pl permet de lancer facilement le tntreader.
- optimizeContents.pl permet d'optimiser un répertoire avec les pages HTML et leurs ressources. Ce script appelle suivant l'extension Tidy HTML pour les fichiers HTML ou les Litte utils pour les images.
Générer un fichier ZIM de A à Z
Il existe de multiple manières d'utiliser ces outils et il est impossible de les lister tous. Cependant semble utile de présenter toutes les étapes nécessaires à la création d'un fichier ZIM.
Étape 1 : choisir sa source
Si vous avez déjà vos fichiers HTML statiques (et le reste) alors tout ce qui suit ne sert à rien et il faut vous rendre directement à l'étape