Ceci est une ancienne révision du document !
Migration Wikini vers Dokuwiki
Dernières nouvelles
- 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.
- 2010_07_29 : atelier avec Étienne, Fred, Gaëtan, Vincent et Valérie-Emma ; déclaration de nouveaux bugs ; corrections de 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.
Url de comparaison fraîche
Index
Pas d'index sous Wikini ?
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
Bugs à corriger
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
. 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
http://lamiral.info/~gilles/gulliver/migration_wiki/dokuwiki/doku.php/gulliver_statut_v7
http://lamiral.info/~gilles/gulliver/migration_wiki/dokuwiki/doku.php/gulliver_statut_v6
http://lamiral.info/~gilles/gulliver/migration_wiki/dokuwiki/doku.php/gulliver_canalb
http://lamiral.info/~gilles/gulliver/migration_wiki/dokuwiki/doku.php/gulliver_archipel
Fait
. Le nom de la page http://gulliver.eu.org/wiki/Anniversaire%20de%20Debian contient des blancs, mal traduits vers dokuwiki (“anniversaire de _debian”).
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…
- les 20 commentaires existant 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.
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
. Dans l'index dokuwiki le lien sur bayart__actux__gulliver__2009 est en rouge (dokuwiki supprime les double-underscore).
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
. Problèmes de caractères non ASCII (le 'Oe' de 'Oeuvres') sur la page : http://lamiral.info:81/~gilles/gulliver/migration_wiki/dokuwiki/doku.php?id=oeuvres_libres . C'est fait ce point illustre bien l'aphorisme “tout l'intérêt est dans le détail”. L'étude et la résolution de ce problème est intéressante et demande une bonne page. En résumé : les ligatures oe dans wikini sont les bugs.
Fait
.La page Publication engendre une erreur “processing 'Publication' ⇒ 'publication'”. No such file or directory: 'dokuwiki/data/pagespublications/publication.1233783763.txt.gz'. Il manque la catégorie (le répertoire) publications. Est-ce vraiment le comportement voulu (je ne pense pas GL.)?
* entre http://gulliver.eu.org/wiki/DavidMentre/revisions et http://www.linux-france.org/~eloks/dokuwiki/doku.php?do=revisions&id=david_mentre
* décalage d'une heure ⇒ vérifier utilisation mktime dans dump mysql ou problème de décalage été/hiver
*Fait
. La page courante n'a pas la même date : dokuwiki prend la date du fichier unix.
* entre http://gulliver.eu.org/wiki/PagePrincipale et http://www.linux-france.org/~eloks/dokuwiki/doku.php?id=start
* “d’Ille-et-Vilaine” : apostrophe mal convertie ⇒ vérifier encodage dump mysql. Il y a une différence entre ’ et ' (regarder aussi le source wikini de cette ligne) ; autre problème d'apostrophe mal convertie dans la page Thierry
* <file>qui traine (mais on peut le supprimer à la main)
*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.
* http://www.linux-france.org/~eloks/compare.php?page=NoNo
*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.
* http://www.linux-france.org/~eloks/compare.php?page=PseudoGaetan
*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 =====
- 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)
- Faire un dump de toutes les pages au format texte
- Convertir les pages du Latin1en UTF-8
- Supprimer les pages de wikipourriel identifiées
- Mettre en place un dokuwiki vierge ([s] et à jour)
- Appliquer le script de migration
- Vérifier le résultat
- Définir qui est administrateur du wiki
- Placer le nouveau comme wiki accessible par l'URL http://gulliver.eu.org/wiki/
- Espérer qu'on a rien oublié
* si : migrer les comptes utilisateurs (mots de passe et nouveaux identifiants… convertis ?)
- Corriger à la main les quelques pages qui posent problèmes
==== Exceptions dans la conversion de MotsWiki ====fait
* AtelierLaTeX : atelier_latex
* BsD : bsd
* BanderollE : banderolle
* CassiS : cassis
* CovoituRage : covoiturage
* FranmboisE : framboise
* FranCois : francois
* GnuPG : gnupg
* GulliveR : gulliver
* InfoGraphie : infographie
* InterLug : interlug
* KiCad : kicad
* MichaeL : michael
* PermanencE : permanence
* RzR : rzr
* WiFi : wifi
* TamTam2005 : tamtam2005
* IlleetBio2006 : ille_et_bio_2006
* IlleetBio2007 : ille_et_bio_2007
* Carte_de__Visite: carte_de_visite
* Kermesse__Paimpont: kermesse_paimpont
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 à WikiNi qui devraient être supprimées (non exhaustif) ====
~/gulliver/migration-wiki/wikini2txt-utf8$ ls Action*|cut -d'.' -f1|uniq
ActionBacklinks
ActionInclude
ActionListPages
ActionListUsers
ActionOrphanedPages
ActionPageInde
ActionPageIndex
ActionRecentChanges
ActionRecentlyCommented
ActionRedirect
ActionTextSearch
ActionTrail
ActionUserSettings
ActionWantedPages
PlanDuSite
Parametresutilisateur
PagePrincipaleNew
Et ajouter :
~/gulliver/migration-wiki/wikini2txt-utf8$ ls Page*|grep -v PagePrincipal |grep -v PagePreparation|cut -d'.' -f1|uniq
PagesACreer
PagesOrphelines
doku.php?id=action_backlinks
doku.php?id=action_include
doku.php?id=action_list_pages
doku.php?id=action_list_users
doku.php?id=action_orphaned_pages
doku.php?id=action_page_inde
doku.php?id=action_page_index
doku.php?id=action_recent_changes
doku.php?id=action_recently_commented
doku.php?id=action_redirect
doku.php?id=action_text_search
doku.php?id=action_trail
doku.php?id=action_user_settings
doku.php?id=action_wanted_pages
doku.php?id=administration_groupes
doku.php?id=aide_wiki_ni
doku.php?id=ajout_utilisateur
Il y a aussi des id=page…
===== 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 =====
* david (pas avant décembre, et vu l'AG et la période de Noël, je dirais pas avant janvier 2009)
* Gaëtan
* Valérie-Emma
* Frédéric L.