N’utilisez pas (F)CKeditor !

, par Maïeul

Les différentes variantes du plugin (F)CKeditor de SPIP ont un certain succès. Ainsi, si j’en crois le site des statistiques SPIPiennes, près de 11% des sites SPIP l’utiliseraient, ce qui prouve qu’il y a demande.

Pourtant, c’est un très mauvais choix technique. L’expérience que j’ai eue avec tous ceux qui l’ont installé me le confirme : s’il semble plus pratique au début, il entraîne rapidement des soucis.

Une confusion des genres

Pourquoi utiliser ce plugin ? Deux raisons sont principalement évoquées :

  • permettre aux utilisateurs de ne pas avoir à apprendre les raccourcis typographiques de SPIP.
  • permettre aux utilisateurs de personnaliser l’apparence de leur article.

Je passe sur la première raison, étant donné que je dirais quelques alternatives.

La seconde raison est très mauvaise :

  • Elle incite à confondre sens et manière de présenter.
  • Elle incite à se concentrer non pas sur le contenu d’un article, mais sur la manière dont il sera présenté.
  • Elle a pour conséquence, bien souvent, d’obtenir un site dont l’unité graphique n’est plus assurée, ce qui produit au mieux des chocs visuels, au pire des crises d’épilepsies.

Autrement dit, elle rend inutile le travail du toilemestre. Elle rend même inutile la logique d’un CMS, puisqu’un CMS est là justement pour distinguer le travail de rédaction, qui relève des rédacteurs (si si !) et celui de présentation du contenu, qui relève du webmestre.

Ainsi une des conséquences pourra être que le rédacteur confonde, par exemple un intertitre et un texte « grosse police rouge ».

Une base de donnée bousillée

Ce type de plugins n’utilise pas les raccourcis typographiques de SPIP, mais introduit directement du HTML dans la base de donnée.

Conséquence :

  • un HTML bien souvent foutoir et illisible, impossible à « épurer » simplement, par exemple le jour où l’on décide d’avoir un site à l’allure cohérente.
  • l’absence d’abstraction entraîne une conversion plus difficile vers des formats autres que le HTML (LaTeX, XML et j’en passe).
  • l’absence d’abstraction rend tout changement beaucoup plus complexe.

Exemple du troisième point : alors que le système des documents de SPIP affecte un numéro à chaque document, numéro qui est appelé dans le texte grâce au raccourci <imgxxx>. Il est ainsi possible d’appeler plusieurs fois un même document dans divers articles, puis de modifier une seule fois ce document et que cela se répande sur tous les articles. Ce n’est pas du tout possible avec FCKeditor. En fait c’est possible avec la dernière version du plugin. Si le plugin s’améliore afin d’utiliser les raccourcis de SPIP et non pas du HTML, ma critique tombera à l’eau.

La perte des crayons

Et oui, il est impossible d’utiliser avec cela le plugin Crayons. Or ce plugin est incontestablement un très bon plugin et une aide précieuse pour le maintien d’un site, puisqu’il permet d’éditer le contenu sur le site public.

Si on essaye de crayonner un article créé avec CKeditor, on obtient alors une catastrophe, puisque le HTML apparaît dans le formulaire.

Quelles alternatives ?

  1. Apprendre les raccourcis typographiques de SPIP n’est pas la mer à boire et permet aussi de se concentrer sur le sens. On pourra même obtenir un tableau récapitulatif : http://www.uzine.net/IMG/pdf/doc-273.pdf. Et le temps pour un webmestre de formation des rédacteurs sera largement compensé par le non-temps passé à démêler le HTML produit par CKEditor.
  2. On pourra utiliser le porte-plume qui offre une barre typographique produisant des raccourcis SPIP, propre. Et les extensions du porte-plume permettront de combler certains manques.
  3. On pourra également utiliser le plugin Odt2SPIP qui permettra de convertir un fichier Openoffice structuré selon le sens en article SPIP.
  4. Pour la gestion des documents, on utilisera avec pertinence le plugin médiathèque, éventuellement en conjonction avec la Médiabox.

P.-S.

Cet article aurait pu être publié sur Contrib … mais celui-ci n’a pas pour but d’engendrer une polémique.

On lira également mon article suite aux modifications apportées dans le code de (F)CKeditor.