Difference between revisions of "Tools/fr"

From Kiwix
Jump to navigation Jump to search
Line 101: Line 101:


=== Étape 3 : copier les contenus de l'original au miroir ===
=== Étape 3 : copier les contenus de l'original au miroir ===
Copier les contenus d'un Mediawiki est la partie la plus délicate. C'est délicat, car il n'est pas toujours nécessaire de copier tous les contenus et que une page de Mediawiki pour s'afficher correctement peut dépendre de nombreux autres pages : une page peut donc avoir de nombreuses dépendences. Pour faire simple, il existe deux types de dépendences: les médias (le plus souvent des images, mais cela peut aussi être des films) et d'autres pages de texte (le plus souvent des modèles ou template en anglais). Avant de commencer à copier des contenus il faut vous demander si vous souhaitez copier seulement quelques articles ou l'ensemble des articles.
Si vous souhaitez copier l'ensemble des articles et que le Mediawiki que vous souhaitez reproduire et un de la Wikimedia Foundation, alors le plus simple est de travailler avec les [http://download.wikimedia.org/backup-index.html dumps XML et SQL] fournis... Ce n'est pas simple mais c'est la méthode normale : voir l'[http://www.mediawiki.org/wiki/Importing_a_Wikipedia_database_dump_into_MediaWiki aide]. Un script perl sera écrit bientôt pour faciliter cette tâche (suivre http://www.mediawiki.org/wiki/Importing_a_Wikipedia_database_dump_into_MediaWiki).
Si vous ne souhaitez reproduire qu'une sélection des articles, alors mirrorMediawikiCode.pl est le script qu'il vous faut. mirrorMediawikiCode.pl permet à partir de reproduire une liste d'articles avec toutes les dépendences nécessaire à son bon affichage.


=== Étape 4 : préparer les contenus à votre façon ===
=== Étape 4 : préparer les contenus à votre façon ===

Revision as of 19:38, 31 March 2010


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 :

Le cœur de Kiwix étant le moteur de rendu HTML Gecko, l'objectif des Kiwix tools est de produire :

  1. 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.
  2. 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.
  • 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.
  • listAllPages.pl liste toutes les pages d'une instance de Mediawiki en ligne.
  • 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.
  • 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.
  • 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. La outils présentés ici ne sont pas parfait, si vous expérimentez des difficultés durant une partie du processus, n'hésitez pas à prendre contact avec les développeurs à l'adresse email suivante : kiwix-developer _arobase_ lists.sourceforge.net (remplacer _arobase_ par @)

É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 6.

Sinon, il vous faut choisir un site web en ligne dont vous souhaitez copier les contenus. Lorsque ce choix sera fait, vérifier bien que ce site fonctionne avec Mediawiki car sinon les Kiwix tools ne pourront vous aider que pour une partie seulement du processus : à partir de l'étape 6.

Étape 2 : créer une instance "miroir" d'un site en ligne

Vous pouvez installer Mediawiki "normalement" à partir d'une archive ou à partir de SVN. Cependant la plupart du temps on cherche à avoir quelque chose le plus proche possible de la version qui est en ligne et que l'on souhaite reproduire. Il faut donc ici avoir une version précise de Mediawiki avec quelques extension particulières. Pour faire cela il existe le script mirrorMediawikiCode.pl. C'est une solution bien imparfaite, sachant que il n'est pas possible facilement de connaitre exactement les détails d'une installation de Mediawiki ; mais pour Wikipedia par exemple, ce script vous aidera facilement à avoir une version du code de Mediawiki et des extension proche de la version originale.

Étape 3 : copier les contenus de l'original au miroir

Copier les contenus d'un Mediawiki est la partie la plus délicate. C'est délicat, car il n'est pas toujours nécessaire de copier tous les contenus et que une page de Mediawiki pour s'afficher correctement peut dépendre de nombreux autres pages : une page peut donc avoir de nombreuses dépendences. Pour faire simple, il existe deux types de dépendences: les médias (le plus souvent des images, mais cela peut aussi être des films) et d'autres pages de texte (le plus souvent des modèles ou template en anglais). Avant de commencer à copier des contenus il faut vous demander si vous souhaitez copier seulement quelques articles ou l'ensemble des articles.

Si vous souhaitez copier l'ensemble des articles et que le Mediawiki que vous souhaitez reproduire et un de la Wikimedia Foundation, alors le plus simple est de travailler avec les dumps XML et SQL fournis... Ce n'est pas simple mais c'est la méthode normale : voir l'aide. Un script perl sera écrit bientôt pour faciliter cette tâche (suivre http://www.mediawiki.org/wiki/Importing_a_Wikipedia_database_dump_into_MediaWiki).

Si vous ne souhaitez reproduire qu'une sélection des articles, alors mirrorMediawikiCode.pl est le script qu'il vous faut. mirrorMediawikiCode.pl permet à partir de reproduire une liste d'articles avec toutes les dépendences nécessaire à son bon affichage.

Étape 4 : préparer les contenus à votre façon

Étape 5 : créer une version statique du mirroir

Étape 6 : optimiser les fichier HTML et médias associés

Étape 7 : créer un fichier ZIM

Étape 8 : créer un index de recherche du fichier ZIM