mardi 3 mars 2015

Pelican : l’agilité d’un site web statique

Récemment, mon collègue David Lesieur et moi avons eu plusieurs discussions à propos de la pertinence d’utiliser un système de gestion de contenu comme Drupal pour gérer des sites web simples, où le nombre de rédacteurs est restreint et où la plupart des contenus ne sont presque jamais modifiés. L’utilisation de ce genre de système entraîne en effet un lot de complexité à tous les niveaux :

  • les développeurs font face à un système complexe de génération de code HTML dans lequel ils doivent configurer des dizaines de paramètres;
  • l’administrateur doit gérer les mises à jour du logiciel et s’assurer de la sécurité de la plateforme;
  • les rédacteurs font face à une interface complexe qui dépasse leurs besoins les plus courants et qui est souvent mal adaptée à leur tâche principale, rédiger et publier des textes;
  • l’affichage d’une page entraîne l’utilisation de ressources non négligeables sur le serveur;
  • les lecteurs doivent souvent attendre quelques secondes avant de pouvoir lire le document demandé.

Divers moyens peuvent être mis en œuvre pour limiter ces inconvénients. Par exemple, les développeurs peuvent travailler plus fort afin de créer une interface de gestion et de rédaction conviviale, ou encore des systèmes de cache peuvent être mis en place afin de diminuer la charge sur le serveur et optimiser le temps d’affichage. Paradoxalement, tout ceci ajoute à la complexité du système.

L’utilisation d’un système de gestion de contenu entraîne aussi une inertie qui retarde les améliorations et les mises à jour :

  • la complexité du système décourage le déploiement d’améliorations ponctuelles;
  • la lenteur de l’interface d’édition web et le manque de convivialité des éditeurs WYSIWYG rendent la rédaction moins agréable qu’elle ne pourrait l’être.

Ces constatations nous ont amené à considérer l’utilisation de logiciels moins complexes pour la mise en œuvre de ce genre de sites. Au cours de nos discussions, l’idée d’un site web statique, composé entièrement de fichiers HTML, revenait souvent. Suite aux recherches de David, nous avons commencé à expérimenter avec Pelican, un générateur de site web qui convertit un ensemble de documents texte en documents HTML, générant au passage tout les éléments nécessaires à la navigation. Les documents HTML peuvent ensuite être versés sur le serveur, et aucun script n’est nécessaire au fonctionnement du site. Les fonctionnalités dynamiques, comme la gestion des commentaires et le formulaire de contact, sont prises en charge par des services externes spécialisés.

Mon site web personnel est un parfait exemple de site qui ne devrait pas être construit avec un système de gestion de contenu. Celui-ci tournait jusqu’à tout récemment sous Drupal 5 avec les couleurs par défaut; au cours des six ou sept dernières années, je n’ai jamais pris le temps de lui donner un air respectable et j’en avais secrètement honte. Un peu avant Noël, j’ai décidé de le reconstruire avec Pelican, me donnant ainsi une occasion de me faire la main avec ce logiciel. Le projet s’est déroulé avec une facilité surprenante grâce entre autres à la simplicité de la couche de présentation de Pelican et à l’utilisation de Bootstrap et de Sass. Qui plus est, la modification du site et sa mise en production est tellement simple (pas de code à déployer, pas de base de données à mettre à jour) que j’ai adopté l’attitude publiez tôt, publiez souvent. Cela me permet de publier mes (quelques) textes aujourd’hui, même si le site n’est pas exactement comme je le souhaite, en sachant que les améliorations viendront au fil du temps.