Aller au contenu | Aller au menu | Aller à la recherche

l'amphi-gouri

Pour une utilisation sereine et équilibrée des technologies de l'information.

2004-09-16

Le convertisseur wiki du pauvre : convertir un site simple en syntaxe moinmoin en quelques lignes.

Un hack de quelques minutes pour passer de phpwiki à moinmoin, qui peut servir à transformer un ensemble de pages HTML simples en syntaxe pour moinmoin. Cette page intéresse peu de monde, ne vous y attardez pas. Cela dit, ça me resservira peut-être et peut servir à d'autres.

J'ai récemment transféré un wiki de phpwiki à moinmoin.

La méthode ? Basique et incomplète, mais fait la majorité du boulot en un minimum d'effort. Attention, ce qui suit est un hack rapide et ne marchera pas chez vous sans comprendre ce que ça fait.

Un wget récursif sur le site phpwiki :

wget -nd -r --no-parent http://url.du.wiki/chemin

m'a fourni l'ensemble de pages à plat dans un dossier (-nd pour "no directories"). Notez que ça n'est pas spécifique à phpwiki, et fonctionne donc avec d'autres sites avec majorité de texte simple.

J'ai ensuite passé cette liste à travers lynx. Je n'ai plus la ligne de commande ; quelque chose comme

for  a in * ; do lynx -dump $a >pagesenascii/$a ; done

Alors j'avais des pages en texte très vaguement formatté (par lynx à partir du HTML). Certes, une solution plus élégante serait de partir du code HTML et de générer du wiki à l'aide d'une feuille de style XSLT, mais XSLT est assez illisible (et en réalité le plus élégant serait bien d'avoir une interface WYSIWIM pour écrire du XHTML ou XML).

Pour passer du formattage texte lynx à la syntaxe moinmoin, il reste choses à faire :

  • les lignes ne commençant pas par un espace sont (en général) des titres
  • les lignes commençant par un espace sont (en général) du texte préformatté
  • les lignes commençant par deux espace sont (en général) des sous-titres
  • les lignes commençant par trois espace sont (en général) du texte brut.

On doit donc convertir cela en respectivement :

  • = Un titre =
  • { du texte préformaté }
  • == Un sous-titre ==
  • Du texte sans espace devant.
cd pagesenascii
for a in * ; do sed <"$a" -e  's/^   /²/' -e 's/^  \(.*\)/== \1 ==/' -e 's/^ \(.*\)/ { \1 }/' -e 's/^\([^²={ ].*\)/= \1 =/' -e 's/^²//' >../pagesmoinmoin/{} ; done

Et on récupère les pages en syntaxe moinmoin, il n'y a plus qu'à les placer dans /var/www/moin/data/text .

Vos commentaires

Le 2005-06-10, commentaire par fa :: #

Voir ce site:
search.cpan.org/dist/HTML...

Le 2005-06-10, commentaire par Stéphane Gourichon :: site :: #

Intéressant, merci ! Et ça supporte de nombreux styles de wiki !

C'est un peu le couteau suisse de la conversion, une sorte de "any2wiki" si on veut.

Il semble qu'il y ait phpwiki.sourceforge.net/p... aussi (plus anectodique).

Ajouter un commentaire

Le formulaire de commentaires est désactivé pour cause de spam. Si vous voulez ajouter un commentaire écrivez-moi à gouri chez amphi-gouri.org.