Comment passer de WP-codebox à Syntax Highlighter ?


J’ai changé de plugin pour le code source que je partage sur ce blog, passant de wp-codebox à Syntax Highlighter. J’ai changé car wp-codebox posait des problèmes avec le flux rss (celui ci n’était plus à jour et ne pouvais plus se générer). Sinon en terme d’utilisation, je trouve les deux très bien. Cependant y’a un petit plus pour syntax highlighter qui a un peu plus d’options et de thèmes, de plus le thème par défaut est très sympa.

Par contre la syntaxe à utiliser entre les deux est un peu différente. Je vous propose un petit script php a exécuter en ligne de commande pour pouvoir passer facilement de wp-codebox à Syntax Highlighter. Il va falloir commencer par exporter les données de la table *_posts (wp_posts par défaut) et de sauvegarder le fichier sur votre disque dur. (avec phpmyadmin, c’est un jeux d’enfant, cliquer sur l’image ci-dessous pour voir les options a cocher)

Voila, maintenant il ne reste plus qu’a télécharger le script, le renommer et l’exécuter avec comme paramètre le nom du fichier qui correspond à l’export de la base MySQL : (la partie suivante ne concerne que les linuxiens, pour windows il faut tout faire à la main …)

wget http://blog.lyrixx.info/wp-content/uploads/2009/12/codebox2syntaxhighlighter.php.txt
mv codebox2syntaxhighlighter.php.txt codebox2syntaxhighlighter.php
php codebox2syntaxhighlighter.php /path/vers/fichier/sql.sql

Voila, pour ceux qui sont sous windows il faut le télécharger ici : script de renommage

Le code : (Si vous copiez/collez directement ce code, pensez a virer l’espace ligne 31 dans la balise [/C ODE]

<?php
/**
 * Description :
 * Ce script sert à renommer dans un fichier text (export de base sql)
 * les portions de code qui font référence au plugin wp-codebox
 * en portion de code pour Syntax highlighter.
 *
 * Utilisation
 * php codebox2syntaxhighlighter.php fichiersource.sql
 * Le résultat sera ecrit dans un fichier output.sql. Pensez a vérifier
 * les droits en écriture sur le dossier courant.
 *
 * Auteur :
 * Pineau Grégoire
 * http://blog.lyrixx.info/*
 *
 */
if (isset($argv[1]) && $argv[1] != ''){
 $file = $argv[1];
 if (!file_exists($file)){
 die ('Le fichier a charger n'existe pas'."n");
 }
 $handle = fopen ($file,'r');
 $content = stream_get_contents($handle);
 fclose($handle);

 $regex='#<pre lang="(w{0,6})"(?:(?: +file=".{0,25}")|(?: +colla="-")){0,2}>#iU';
 $replace='[code language="$1"]';
 $content2 = preg_replace($regex,$replace,$content);

 $content2 = str_replace('</pre>','[/c ode]',$content2);
 $handle2 = fopen ('output.sql','w');
 fwrite($handle2,$content2);
 fclose($handle2);
}else {
 die ( 'Il n'y a pas de fichier a charger'."n");
}

P.S. J'ai utilisé le script sur ce blog, si jamais il y a des erreurs, merci de me le signaler ;)

Enfin, je vous invite à découvrir le service http://gskinner.com/RegExr/ qui vous permet de tester en live vos regexp ;)

Articles en rapport :

Laisser un commentaire

Votre commentaire :