Générateurs de site statique - principe et fonctionnement
Dans la démarche structure first, la composition des pages précède les phases de développement fonctionnel. Comment faire pour d'une part pour construire un système de pages navigables (testables) et d'autre part mettre à profit cette phase pour la suite la construction du site ?
Dans ce premier article, nous verrons le principe et le fonctionnement des générateurs de sites statiques.
Qu'est-ce qu'un Générateurs de sites statiques ?
Un générateurs de sites statiques permet comme son nom l'indique de gérer des fichiers statiques. Pour comprendre ceci, il faut bien évidemment l'opposer aux traditionnels CMS, moteurs de blog et autres systèmes couplés à des bases de données.
Dans un générateurs de sites statiques, il n'y a pas de bases de données, l'ensemble du site (fonctionnel, apparence, contenu) est présenté sous forme de fichiers. C'est pas rien de le dire, puisque ça veut dire que l'ensemble des fichiers qui compose votre projet constitue votre site. En gros, votre répertoire de travail est un site, sous la seule condition de lancer un serveur au sein de celui-ci (le répertoire) pour interpréter les fichiers.
Utiliser avec un gestionnaire de versionning de fichiers comme git, il est ainsi possible de partager un site de machine à machine (différents utilisateurs ou serveur de production).
T'as quoi comme exemple ?
Il existe plusieurs générateurs de sites statiques, le plus connu est Jekyll (Ruby), mais il en existe d'autres comme Octopress (Ruby), Middleman (Ruby), Wintersmith (Ruby), Hyde (Python), Phrozn (PHP), etc…
Après avoir fait beaucoup d'émules dans la communauté Ruby, Jekyll a profité du lancement du projet github permettant de créer en 3 clics un site web : Github:Pages.
Vous pouvez consulter le projet w3cjs de Thomas Davies ou encore la page des projets Twitter sur github. Bien entendu, rien ne prouve que ce sont des projets réalisés avec Jekyll, mais le principe est là.
A quoi ça sert ?
Concrètement, ça sert à mettre en ligne des sites. C'est-à-dire ? Un générateurs de sites statiques permet (comme tout bon CMS) de générer des menus, des affichages à partir de boucles, de conditions… tous ça, principalement à l'aide d'un moteur de template (Liquid pour Jekyll).
Ainsi, le générateurs de sites statiques permet de créer un site web, avec des connaissances rudimentaires que ce soit en intégration (HTML & CSS) mais aussi en développement (Ruby, PHP, etc…) et en administration de sites (bases de données, backup, mise en prod…) ; tout cela en partageant son code et en versionnant son code (rien que ça.)
Et vous allez me dire : mais techniquement, ça arrive pas à la cheville de Drupal qui est le meilleur CMS ! A cela, je dirai : oui, techniquement les générateurs de sites statiques sont volontairement limités, leur objectif et de disposer du strict nécessaire. Ces système sont avant tout utilisés pour la présentation de projets et la mise en ligne de blog de développeurs. Voir ce site : The blog of Scott Parker.
Quels en sont les usages ?
Le site carte de visite
Imaginons, un client vous demande un petit site avec principalement du contenu statique pour présenter son activité. Vous savez pertinemment qu'il ne le changera pas. Dans ce cas très particulier, pourquoi vous embêter avec une configuration de base de données, des backups, la mise en place d'un CMS assez lourds pour seulement quelques pages ?
La page unique type dataviz ou parallax.
Seule une page statique est nécessaire pour présenter ce projet, du HTML pur et simple suffira. Pourquoi ne pas profiter d'un moteur de template pour appeler des helpers, mutualiser certains fichiers, créer la page "mentions légales", laisser la main à un tiers sur le contenu ?
Un prototype HTML
Cas le plus intéressant, vous déclinez des gabarits HTML/CSS, les pages se multiplient, les modules se multiplient… Passez donc par un générateurs de sites statiques !
Vous mutualiserez du code et en plus vos gabarits pourront être dynamiques, ce qui sera plus facile pour tester les comportements.
Conclusion
Le générateurs de sites statiques pourrait devenir un nouveau buzzword, la nouvelle technologie à la mode, le prochain mot sur toutes les bouches, mais certainement pas en tant qu'innovation mais plus en tant que pratique.
En effet, face à la multiplicité des formes que peuvent prendre les sites web de nos jours, commencer par mettre place une petite structure de pages accompagnée de son thème avec un minimum de contenu pourrait être une première étape.
Première étape à laquelle l'ensemble des participants à une équipe projet pourrait participer tellement les prérequis techniques sont basiques.
Nous verrons dans une série d'articles à suivre, comment les générateurs de sites statiques peuvent permettre de faire apprendre le code, d'éduquer un client, de réaliser rapidement des prototypes, de mettre en place une démarche qualité et bien d'autres choses encore.