Durant mon exploration des usages du Markdown (ce langage dont on ne revient pas), je suis tombé sur Grav, un système de gestion de contenus technologiquement à mi-chemin entre le CMS « traditionnel » (WordPress, Joomla, Drupal, …) et le CMS statique.
Au programme :
- Système Flat-File (pas de système de base de données, mais des fichiers parsés en php).
- Un interface de CMS traditionnel
- Yml ou json pour la configuration
- Pilotable en ligne de commande
- Des templates souvent basés sur Bootstrap
- Écriture en Markdown (le html marche aussi)
On garde, avec Grav, l’avantage d’une sauvegarde simple (il suffit de copier les fichiers), du Flat-File et la facilité d’usage des CMS traditionnels (au détriment d’une petite perte sécuritaire sur le modèle Flat-File).
Au-delà de la présence de Markdown et de l’usage de technologies en vogue ( Twig, Doctrine Cache, Symfony Console, … ), c’est tout particulièrement l’extension Git-Sync 2.0 qui m’a fait basculer vers une installation de Grav. Comme son nom l’indique, ce bout de programme permet d’utiliser un dépôt Git (Lab, Hub, …) comme système de sauvegarde et d’historisation des contenus ! Surprenant 🙂
Alors çà donne quoi ?
Cela faisait bien longtemps – enfermé dans l’écosystème WordPress (j’espère toujours un grand retour de Dotclear) – que je n’avais pas essayé un nouveau CMS). J’ai réussi à faire tourner Grav sur 2 hébergements mutualisés (OVH / Ionos), mais Git-Sync 2.0 n’a fonctionné que chez Ionos.
L’interface est sobrement agréable. L’organisation des contenus se fait au travers de « pages » que l’on ordonne dans des catégories. Une taxonomie flexible laisse imaginer des possibilités de classement avancées.
L’éditeur MD est sobre, mais efficace. L’enregistrement des pages est un peu plus long (quelques secondes) sur un CMS avec base de données. Par contre, la consultation des pages est ultra-rapide.
Niveau thème, c’est plaisant de voir une telle qualité pour un si jeune CMS. On en retrouve certains fortement inspirés par Medium, Ghost et WordPress.
Git-Sync
Côté historisation des contenus au travers d’un dépôt Git, cela fonctionne très bien. Les puristes fustigeront probablement l’Automatic Commit des modifications sans passer par une étape de push. Au sein du dépôt, on retrouve l’ensemble des éléments : textes et médias.
Les options essentielles sont au rendez-vous : types d’éléments à sauvegarder, synchronisation programmée, choix de la branche sur « sauvegarder »… Pour le test j’ai utilisé un dépôt GitLab.
La fin
Bien que je n’ai pas de projets dans l’immédiat qui pourraient s’appuyer sur Grav, j’ai aimé son concept et sa performance. Des plugins intéressants et une maintenance claire en bonus.
Laisser un commentaire