Les raisons

Pourquoi abandonner mon site en SPIP, qui m’a si bien servi toutes ces années ? Peut-être principalement parce que j’avais envi d’aller voir ce qui se fait ailleurs. SPIP est de très bonne qualité, il n’y a pas de doute là-dessus, mais c’est un logiciel de publication web. Il a été créé avant le développement des blogs, et même si il en intègre quelques fonctions, c’est avant tout un outil bien plus complet (et plus complexe), destiné à réaliser un vrai site web, par exemple un journal en ligne. Et mon besoin à moi est plus simple que ça.

Mais ce qui a véritablement été le déclencheur, c’est que la personne qui m’héberge grâcieusement (coucou Orgrim !) essaye d’économiser de la mémoire sur son serveur dédié, parce qu’il rame un peu, et il se trouve que je suis le seul à utiliser la base MySQL. Ça l’aurait donc arrangé que je migre sur PostgreSQL, la base qu’il utilise actuellement. En plus, vu l’actualité récente sur MySQL, c’est une bonne occasion d’investiguer le fonctionnement de PostgreSQL.

J’ai essayer passer SPIP sur PostgreSQL, mais il n’y a qu’un début de gestion de ce moteur de base pour l’instant. J’avais des tas d’erreurs dans les squelettes, des articles qui changeaient de date de parution, etc. Bref, le boxon. Ça a été l’occasion de migrer vers quelquechose d’autre.

Le choix

Pour faire mon choix, j’ai d’abord listé les concurrents :

Puis j’ai établi une liste de critères qui sont importants pour moi, et que je vous détaille ici :

  • La syntaxe des templates doit être simple mais puissante
  • Est-il possible de faire un vrai site web, et pas seulement un blog (pour d’autres usages que mon site perso) ?
  • Doit fonctionner avec PostgreSQL
  • Doit posséder une architecture de plugins, pour pouvoir y contribuer facilement
  • Existe-t-il déjà un plugin d’export ODT ? (c’est un projet perso, que je pourrais développer)
  • Possibilité d’envoyer par mail les réponses aux commentaires
  • Hiérarchie dans les commentaires (pouvoir répondre à un commentaire)
  • Authentification OpenID pour les commentaires
  • Plusieurs types d’articles (articles normaux, liens simples / brèves)

Il y a aussi deux critères que je ne liste pas parce qu’ils sont tellement primordiaux qu’il ont servi à determiner les concurrents : le moteur doit être un logiciel libre, et doit respecter les standards du web.

Dans cette comparaison, Wordpress partait avec une longueur d’avance, parce que j’ai un bon pote qui y contribue (coucou Xibe !). Malheureusement, il a été rapidement éliminé, puisqu’il ne fonctionne pas avec PostgreSQL, ni aujourd’hui ni dans un futur proche. Dommage !

J’ai ensuite évalué Drupal et Dotclear, et en gros ce que je n’ai pas aimé dans Drupal c’est la complexité de l’interface d’administration, ainsi que l’absence d’un éditeur avancé pour la rédaction (wysiwyg ou wiki). Dotclear, par contre, passait tous les tests haut la main, sauf la hiérarchie dans les commentaires (mais j’ai ma petite idée pour y remédier, à suivre… ;-) ).

Je suis donc parti sur Dotclear.

La migration

La migration n’a pas été aisée du tout. Le modèle de données et les possibilités de rédactions offertes par SPIP sont beaucoup plus complexes que celles de Dotclear : chaque article peut avoir un chapeau, un descriptif, un sur-titre, un titre, un sous-titre, un contenu, et un post-scriptum. Dans Dotclear, c’est un titre, un extrait et un contenu. Beaucoup plus simple, mais ça veut dire qu’il va falloir faire une correspondance à l’import. Heureusement, je n’utilisais pas tous les champs de SPIP, mais il a quand même fallu que je me résolve à perdre des données dans la migration.

J’ai donc réalisé un script qui parcourt la base de données de SPIP, et importe les articles dans Dotclear, en les convertissant en XHTML au passage, en ajoutant les catégories nécessaires, et sans oublier les commentaires. Ça m’a pris quelques jours à perfectionner, et encore toute la syntaxe de SPIP n’est pas gérée, mais ça marchouille à peu près. Par contre, c’est codé crado ! Si le code vous intéresse, je peux vous le transmettre, y’a qu’à demander.

Pour assurer la transition des URLs d’un moteur à l’autre, j’ai utilisé le plugin Alias, auquel j’ai ajouté une fonctionnalité permettant de rediriger le navigateur vers la nouvelle page, plutôt que l’afficher simplement. Grâce à ce plugin, une simple directive de RewriteRule dans Apache et les liens vers les articles sont conservés ! Je perds le suivi des liens vers les rubriques, mais c’est moins important.

J’en ai profité aussi pour faire fonctionner le site directement depuis la racine du domaine aurelien.bompard.org, comme suggéré sur la page d’installation propre de Dotclear.

Le thème graphique

Étape suivante, refaire un thème. Pour cela, je me suis basé sur le thème par défaut de Dotclear, puis j’ai modifié les couleurs, les images, et ajouté un peu de javascript. Je détaille l’évolution de ce thème, et du site en général sur cette page.

J’ai testé dans Firefox évidemment, dans Konqueror (donc Webkit), et si l’occasion se présente je regarderai ce que ça donne dans Internet Explorer. M’enfin je suppose que dans IE 6 les images PNG à fond transparent apparaîtront avec un fond noir ou gris, comme d’habitude… Si vous utilisez encore IE 6, il est temps de mettre à jour !

Et voilà, mon site a fini sa mue, j’espère qu’il vous plaît, et que l’attraît de la nouveauté et la simplicité m’encourageront à blogguer plus ! Si vous tombez sur des bugs, n’hésitez évidemment pas à me contacter.

Dotclear 2