Automad est un "file-based CMS" pourvu d'une interface d'administration en ligne. Il est développé par Marc Anton Dahmen, ses initiales expliquent le nom qu'il a choisi pour son CMS. Plutôt que de décrire point par point ses fonctionnalités, qui sont nombreuses, je préfère exposer ici les raisons pour lesquelles je l'ai choisi pour construire mon site. Après ces points forts, je citerai les rares lacunes qui pourrait aùener à opter pour un autre produit.

Automad

Vendredi 4 janvier 2019

Le système de modèles

Automad n'intègre pas un template engine générique mais propose sa propre solution, à la fois riche en fonctionnalités et très souple d'emploi. A vrai dire, le langage de template est si bien pensé que certaines fonctionnalités qui semblent manquantes (comme la création de galeries d'images) sont en fait très faciles à réaliser par la création d'un modèle. C'est sûrement une des choses les plus géniales de ce CMS : plutôt que de multiplier les fonctions dans le dashboard ou les plugins, dans lesquels on arrive plus à se retrouver et qui sont la source d'incompatibilités, on s'appuie sur le langage de template qui est au cœur du système. Voici ses principales caractéristiques :

  • le rédacteur peut créer à tout moment dans une page une nouvelle variable : elle pourra alors être appelée dans un modèle. Selon le mot par lequelle commenec le nom de cette variable (checkbox, text ou date) elle sera éditable dans le dashboard avec un bouton radio, un éditeur de texte évolué ou un calendrier
  • les images téléchargées pour une page peuvent être enrichies d'une légende, qu'on peut bien sûr appeler depuis les modèles
  • des variables partagées peuvent être crées par le rédacteur ou de manière dynamique, qui seront donc communes à toutes les pages du site. Elles seront par exemples des valeurs par défaut quand elles ne seront pas renseigées sur certaines pages. Des variables de session peuvent être également crées, ce qui permet d'envisager un site multilingue
  • on peut attribuer des tags à une page
  • quand il s'agit de sélectionner des pages dans le site, on peut décider à partir de quel dossier de départ on lance le listing, en faisant une recherche textuelle dans le contenu, en filtrant en fonction des tags, et avec un tri de son choix (sur n'importe quelle variable utilisée)
  • on peut lister les images associées à une page pour ensuite leur appliquer une action, comme les afficher sous forme de vignettes. Dans son langage de template, Automad comprend la possibilité de créer des vignettes d'images à la volée, qui sont ensuite mises en cache. Ainsi, même si la création d'une galerie d'images ne fait pas partie des fonctionnalités d'Automad, il est très simple de créer un modèle pour une telle galerie. Les possibilités de manipulation d'images avec le langage de template permettent même de mettre au point une stratégie pour servir différentes versions au client selon la taille de son écran et sa résolution, tout ça en ayant téléchargé une seule version de l'image et sans développer une ligne de code hors du modèle !
  • on peut fractionner les modèles en autant de fragments (snippets) qu'on le juge utile
  • chaque page peut utiliser un template particulier
  • on peut dans le langage de template utiliser des conditions pour charger du contenu, ou des snippets particuliers
  • la boite à outils comprend la création rapide de fil d'Ariane et de menu de navigation. On peut programmer une navigation récursive pour explorer une arborescence en partant du point de son choix
  • les variables appelées peuvent être modifiées lors de l'appel : parsing markdown, limite aux premiers caractères sans couper de mots, suppression des tags HTML, choix d'une valeur par défaut si la variable n'est pas renseignée, remplacement, changement de casse…

Autres points clef

Automad peut intégrer du Markdown, qu'on peut éditer directement et avec prévisualisation du résultat, quel confort, et avec les extra de Michel Fortin. Si on n'est pas à son aise avec ça, l'éditeur de texte du dashboard permet d'un clic le passage en gras, en italique, les listes, etc.

Le dashboard permet de verser tout un lot d'images en un seul cliquer-glisser. L'interface permettant de les renommer, légender, etc. est très pratique.

Automad est fourni avec des tutoriaux et des thèmes permettant d'aborder tous les cas courants pour les modèles.

Si malgré tout il manque quelque chose

Si on se débrouille en PHP on peut créer facilement des extensions qu'on peut ajouter à son thême. C'est une manière d'étendre le langage de template. Je l'ai fait par exemple pour traduire et formater en français les dates des articles et des billets. L'extension peut-être appelée dans le modèle, et on peut bien sûr lui envoyer des arguments depuis cet appel.

On peut dans un modèle ou un snippet développer directement en PHP si ça parait pour une fonction plus efficace qu'une extension. L'API complète d'Automad est disponible en ligne. La doc d'Automad, les thèmes fournis en exemple, les tutoriaux donnent de très bons exemples de syntaxe et d'applications. On trouve vite son bonheur pour le développement d'un thème personnel.

Ce qu'on ne trouve pas dans Automad

On peut avoir plusieurs utilisateurs mais ils ont tous les mêmes droits, c'est-à-dire celui d'administrateur.

Il n'y a pas de sauvegarde en un clic, idem pour la restauration. Avec un client FTP ce n'est pas bien compliqué, mais il faut penser à copier tout ce qui est utile et seulement ça, donc le contenu de plusieurs dossiers, on verra ça plus loin. Cela dit, quand on s'est fait des sueurs froides avec Wordpress, ici c'est quand même peu de choses.

Il n'y a pas de pages cachées.

En guise de conclusion

On peut trouver dans d'autres CMS du même type de qui manque à Automad. Pluxml et Getsimple CMS sont de bons choix, notamment en ce qui concerne la gestion des droits des utilisateurs, la clarté de l'interface utilisateur et la possibilité d'avoir des pages cachées, ou encore les sauvegardes simplifiées.

Pour autant, ce qui m'a séduit avec Automad c'est principalement le fait que toutes les fonctionnalités dont j'ai eu besoin viennent du noyau du logiciel et se retrouvent dans les templates. C'est une bonne garantie de ne pas voir apparaitre d'incompatibilités au fur et à mesure des mises à jour. Ça simplifie aussi la maintenance, puisque c'est dans les templates et pas ailleurs qu'on cherche et qu'on trouve les solutions.