AutoIt-CMS, ou quelque chose d'approchant

Edit (04/02/05): voir le projet « AutoIt-CMS » pour plus de détails.

C'est finalement fait, et cela m'a pris plus temps que prévu. Pour écrire le code mais aussi et surtout pour corriger les textes du site et les adapter au nouvel outil dont je viens de me doter: un petit gestionnaire de contenu pour pages web statiques que j'ai nommé, pour l'instant et faute de mieux, un « AutoIt-CMS ».

Capture d'écran

Une interface graphique pour gérer les pages web statiques du site.

Le cahier des charges que je m'étais fixé était le suivant:

  • Gérer l'arborescence du site, avec ses sections et rubriques.
  • Générer des pages statiques HTML à partir d'un modèle de page pour uniformiser la présentation et la structure des contenus.
  • Pouvoir travailler en local et ne transférer les pages que lorsqu'elles sont prêtes.
  • Ne pas être dépendant d'une technologie « trop particulière » pour consulter et modifier le contenu (logiciel de base de données, serveurs, langage de script).

En gros : un outil qui ressemble à Thingamablog mais permettant de gérer l'ensemble du site. En fait, Thingamablog lui-même ne répondait pas à toutes ces attentes puisqu'il nécessite l'installation d'un environnement java; sans lui, la consultation des données est vraiment problématique. Et, à moins d'être passé à côté d'un logiciel incontournable, je n'ai trouvé aucun outil libre et/ou gratuit qui répondent pleinement à mes besoins. D'où l'idée d'en écrire un moi-même, surtout qu'il existe un langage de script simple et intuitif permettant de remplir ce cahier des charges : AutoIt.

Après plusieurs heures d'écriture, de tests et autres vérifications, j'ai fini par obtenir un programme qui automatise ce qui, jusque là, me prenait énormément de temps.

Le principe de fonctionnement est relativement simple: le script va chercher le contenu d'un article qu'il plaque sur un modèle de page web pour générer le fichier html correspondant. Idem pour les pages brèves, rubriques, sections et la page d'accueil.

La redondance de certains contenus (brèves reprises sur la page d'accueil et dans les pages d'archives par exemple) est assurée par des boucles qui modifient en même temps les liens web. Ces contenus (articles ou brèves) sont stockés dans de simples fichiers texte (ou « plat »). La dépendance vis à vis d'une technologie particulière devient dés lors beaucoup moins grande : la plupart des éditeurs sont capables d'ouvrir ce type de fichier (pour ma part, j'utilise Keynote). La consultation du contenu n'est donc plus aliénée à un ou quelques logiciels de gestion de base de données « classiques ».

Enfin, le programme gère l'arborescence du site en sections et rubriques (ou sous-sections), permet la publication de tout ou partie des articles et/ou brèves et construit le fil de nouvelles RSS du site.

Reste le désavantage inhérent au statique par rapport au dynamique : la mise à jour du site par transfert FTP. Pour un site web dynamique, l'ajout d'un nouveau contenu se résume à écrire ce contenu dans la base de donnée. Pour un site statique, il faut en plus transférer les nouvelles pages créées et les anciennes modifiées.

Par ailleurs, le code n'est pas encore parfait : il est loin d'être optimisé, de nombreuses répétitions pourraient sans doute être évitées et certaines fonctions boguent encore. Mais ça marche: le programme produit du XHTML valide et assure l'harmonisation des pages du site. Quelques fonctionnalités supplémentaires seraient nécessaires, comme la création d'un fichier d'historique des modifications, mais le principal est fait.

La nouvelle suivante parlera de la syntaxe wiki utilisée avec « AutoIt-CMS ».

Pour en savoir plus :