Ceci est une ancienne révision du document !


Migration Wikini vers Dokuwiki


Dernières nouvelles

  • 2011-12 : en attendant le jour J, quelques irréductibles battent le fer tant qu'il est chaud et poursuivent le travail de migratrion, correction des scripts, nettoyage des bugs, création des pages statiques, …
  • 2011-12-14 : SylvainC migre le wiki puis revient à wikini suite à quelques remarques sur la liste gulliver@
  • 2010_06_17 : soubresaut de migration au CA.
  • Mise en place de tests simples sur les transformations wikini → dokuwiki au sein de migrate-to-doku.py
  • Bug sur not ok 33 '##fixed## -> ''fixed'' = ''fixed##'
  • La conduite par les tests c'est simple et bon.
  • Les dernières modifications de Gilles sur les scripts sont disponibles ici : http://lamiral.info/~gilles/gulliver/migration_wiki/
  • 2010_07_29 : atelier avec Étienne, Fred, Gaëtan, Vincent et Valérie-Emma
  • déclaration de nouveaux bugs ;
  • corrections de différents bugs dans le script python par Étienne ;
  • le reste de l'équipe travaille à la correction dans les pages wikini de tous les noms avec plusieurs majuscules (ex : OpenOffice) qui crée un appel de pages dans wikini et donc des erreurs (pages manquantes en rouge) dans dokuwiki : suppression du formatage automatique wikini en ajoutant des paires de double guillemets ; corrections des pages listées dans cet index : http://www.linux-france.org/~eloks/dokuwiki/doku.php?do=index ; toutes les pages sont maintenant vérifiées).
  • corrections également des apostrophes « windows » qui ne passent pas ;
  • corrections des mises en page qui sont modérément foireuses dans wikini mais explosent dans dokuwiki ;
  • ajout d'exceptions de nommage dans le script ;
  • import des commentaires dans les pages ;
  • suppression de pages sans intérêt (redondantes ou quasi-vides et orphelines).

Url de comparaison fraîche

Index

Comment regénérer la page index de DokuWiki après injection manuelle ?

En appelant du répertoire de DokuWikila commande bin/indexer.php par PHP en ligne de commande (paquet phpcli chez Debian) en tant qu'utilisateur du serveur Apache (www-data chez Debian).

Jeu de base


MigrationWikiJeu : une page simple qui regroupe un jeu d'exemple synthétisant les traductions à faire
MigrationWikiCrashTest : tests de non-régression sur tout ce qui a posé problème au script de migration

Script de migration


Pour fabriquer (et modifier) toute la manipulation de conversion chez vous :
http://lamiral.info/~gilles/gulliver/migration_wiki/memo
Demander le mot de passe sur la liste gulliver-ca@

Mise à jour du script wikini2txt.pl en vue d'une distribution à usage général pour la conversion wikini/dokuwiki :

  • retrait de l'extension .pl (est-ce une commande venant de la Pologne :-)
  • un mode debug activé avec l'option –debug

Url du script dernière mouture : http://lamiral.info/~gilles/gulliver/migration_wiki/wikini2txt
Origine : http://www.linux-france.org/cgi-bin/hgwebdir.cgi/migration-wiki?file=migrate-to-doku.py
(à reporter à David une fois la session GL terminée)

Script de conversion Wikini vers dokuwiki


Etienne et David ont fait un premier script de conversion : http://www.linux-france.org/cgi-bin/hgwebdir.cgi/migration-wiki

Quelques modifications ont été faites non mises à jour sur le dépot.
Un bundle de celles-ci sont disponible ici :
http://www.linux-france.org/~eloks/bundle.hg
Pour obtenir la dernière version :
hg clone http://www.linux-france.org/cgi-bin/hgwebdir.cgi/migration-wiki
cd migration-wiki
mv ~/bundle.hg .
hg unbundle bundle.hg
hg update


Questions sur les pages statiques

GwenB s'occupe de créer les pages statiques dans Dokuwiki. Quelques remarques, questions :

  • page Nous rencontrer : les listes des lieux publics sont vides depuis des années !!
  • page statuts : David, peux-tu vérifier que j'ai correctement repris ta note de bas de page, notamment le version du document ?
  • page formulaire|de contact : A FAIRE (GwenB ne sait pas) (voir un exemple en php)
  • Bulletin d'adhésion : le mettre en téléchargement (pdf) et supprimer la version Scribus (GwenB la mettra ailleurs)

Bugs à corriger


  • Nouveau - Sera Fait par GL. changer les < pre > en <code> par exemple ici : ArchivesListes . Ne sera pas fait : les <pre> ne sont pas des balises wikini, ils ont été mis à l'intérieur de double guillemets pour forcer une interprétation du code HTML. Il s'agit au mieux d'une mauvaise tolérance de wikini, au pire d'une potentielle faille de sécurité. Les pages utilisant ce genre de façon de faire (du code HTML entre double guillemets) sont à corriger en amont. GL Corriger en amont ne corrige pas les versions de l'historique alors qu'il est simple et sécurisé de transformer les <pre> en . Les deux corrections ne s'excluent pas et peuvent être appliquées toutes les deux.


  • Nouveau - Fait. Les en-têtes énormes (======) ne passent pas (exemple dans Inventaire2003 et 2007).
  • Nouveau - Fait. Les lignes horizontales (----) ne passent pas si elles ne sont pas suivies ou précédées d'un retour charriot (exemple dans page Reseaux).
  • Nouveau - Fait. Lorsqu'il y a plusieurs appels de pages avec descriptif (ex : [[page_truc Page sur un truc]]) sur une même ligne, seul le premier est bien traduit. Exemples :

http://lamiral.info/~gilles/gulliver/migration_wiki/dokuwiki/doku.php/gulliver_statut_v8

Un titre avec des espaces ne devrait pas exister dans wikini, donc ne devrait pas poser de problème au script… Par ailleurs, cette page était justement à supprimer, donc résolution du pb par forfait… GL: Le bug était corrigé, les blancs dans les titres sont bien gérés, le wiki n'était pas à jour, laissé marqué non fait, laissé en test pour voir si 5 cerveaux en réunion physique savaient détecter un faux problème déjà réglé. Raté.

  • À moitié fait . Les 21 commentaires existants ne sont pas gérés. Que faire pour DokuWikiqui n'a pas cette notion ? Créer une page spéciale ? Ajouter un paragraphe/section “commentaire” dans chaque page de l'actuel wiki où il y a des commentaires et les enlever en tant que commentaire. Ainsi ils seront conservés et disponibles au bon endroit pour les comprendre.

Seuls les commentaires 3,6,7,8, 9, 13, 14, 19 ont été importés dans les pages wikini ; les autres ne me [VE] paraissent pas inoubliables. Ok pour la migration donc ; il faut ensuite supprimer les pages Comment1 à Comment 21 (noté plus bas).

  • Impossible à faire. les noms d'utilisateurs dans l'historique des changements ne sont pas convertis (inchangés : toujours CamelCase) de façon cohérente avec les pages de ces utilisateurs (renommées, elles). Impossible à faire (ou trop compliqué) : les noms de machines ou adresses IP ne sont pas des wikinames. Dommage
  • Fait. Le nom de la page Debian_5.0_sur_ordinosaures contient un point et cela plante le script wikini2txt. Le point est autorisé dans les noms de page wikini et de dokuwiki. Le bug est à corriger dans le script wikini2txt.
  • Fait.La page Publication engendre une erreur “processing 'Publication' ⇒ 'publication'”. No such file or directory: 'dokuwiki/data/pages/publications/publication.1233783763.txt.gz'. Il manque la catégorie (le répertoire) publications. Est-ce vraiment le comportement voulu (je ne pense pas GL.)?
  • Fait Les formatages dans les titres sont autorisés dans Wikini mais pas de dokuwiki. Une solution proposée : faire deux fonctions : l'actuelle et une plus stricte et plus propre. Utiliser l'actuelle (conservatrice) pour toutes les pages de l'historique et faire une nouvelle version “courante” de chaque page avec la fonction stricte et propre (en incrémentant la date Unix de 1, comme ça elle a quasiment la même date de dernière modif'). Avantage: on garde toute la sémantique exacte dans l'historique et le wiki obtenu au premier abord est clean. Et s'il y a un souci, on peut faire un revert page par page.
    • Fait. Le logo ASCII est mal transformé. On a amélioré mais on ne fera pas mieux
    • Fait. Quand une URL absolue vers le wiki a été utilisée dans un lien externe (par ex. http://gulliver.eu.org/wiki/xDRoutau lieu de xDRout), le lien sera cassé dans le dokuwiki converti. Solution possible : reconnaître le motif [[http://gulliver.eu.org/wiki/UnePage Commentaire]]et le transformer en lien interne dokuwiki [[une_page|Commentaire]].
  • Fait. http://www.linux-france.org/~eloks/compare.php?page=IRC La chaine “Gtk2” est mal transformée.
    • Fait. apparition de -\\dans la page traduite (c'est une barre en travers de la page mal traduit).
    • Fait. Dans la partie “Logistique”, les items imbriqués sont mal traduits.
  • Fait. il faut appeler la page d'accueil « accueil » et non « start »
  • Fait. Ne pas mettre « change » dans le journal des changements (inutile). Correction avec une phrase française, ça va mieux ? Noooooon (une chaîne vide serait mieux, non ?) :-)

Comparaison du résultat


Le résultat actuel de la conversion est visible ici : http://www.linux-france.org/~eloks/dokuwiki/doku.php

Une page permet de comparer les deux versions de wiki : http://www.linux-france.org/~eloks/compare.php?page=NomDeLaPage

Le source de cette page est disponible ici : http://www.linux-france.org/~eloks/compare.php.txt

Procédure de migration


  1. Arrêter le wikini (comment : [s] passer toutes les pages en RO, changer l'url de /wiki → /wikini, garder le dump de la base au chaud)
  2. Faire un dump de toutes les pages au format texte
  3. Convertir les pages du Latin1en UTF-8
  4. Supprimer les pages de wikipourriel identifiées
  5. Mettre en place un dokuwiki vierge ([s] et à jour)
  6. Appliquer le script de migration
  7. Vérifier le résultat
  8. Définir qui est administrateur du wiki
  9. Placer le nouveau comme wiki accessible par l'URL http://gulliver.eu.org/wiki/
  10. Espérer qu'on a rien oublié :-)
    • si : migrer les comptes utilisateurs (mots de passe et nouveaux identifiants… convertis ?)
  11. Corriger à la main les quelques pages qui posent problèmes

Exceptions dans la conversion de [[mots_wiki|MotsWiki]]

fait

Voir le script pour la liste complète des conversions : http://www.linux-france.org/cgi-bin/hgwebdir.cgi/migration-wiki?file=migrate-to-doku.py

Autre

Je suggère de supprimer toutes le pages contenant la phrase « vide (cause pollution) » ou analogue, en général ajoutée par Sylvain lors de ses chasses au WikiPourriel.

Pages spécifiques à [[wiki_ni|WikiNi]] qui devraient être supprimées (non exhaustif)

Outils


Renommage de pages dans DokuWiki

Essentiellement, ça ne fonctionne pas : http://www.dokuwiki.org/plugin:pagemove

wakka2doku


http://wiki.splitbrain.org/wiki:tips#importing_from_other_wikis
http://wiki.splitbrain.org/wiki:tips:wakka2doku

wakka est l'ancêtre de wikini, il est possible que ce script wakka2doku soit adapté.
Remplacements à faire :
<pre> $database = "wakka"; $database = "gulliver"; $user = "username"; $user = "gulliver"; $password = "secret"; $password = "turêvestrop"; FROM wakka_pages FROM wikini_pages </pre>
Questions :

  • [d.] ce script garde l'historique ? Je n'ai pas l'impression.
  • [s] réponse : non

html2wik i


html2wiki --dialect DokuWiki PagePrincipale.html

Voir aussi LesWikis

Personnes intéressées par un atelier / réunion de travail sur la migration


 
migration_wiki.1324144968.txt.gz · Dernière modification: Le 13/02/2012 à 21:07 (modification externe)     Haut de page
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Design by Chirripó