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

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

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

    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.
 
migration_wiki.1280438464.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ó