Les débuts de ce blog
Pourquoi et comment je gère ce blog de manière statique ?
/Préambule
Je vous disais dans un précédent billet que j'avais vu ici et là quelques solutions pour gérer du contenu dit "dynamique" tout en produisant in fine un site statique. Mais quels en sont les avantages ? Et comment ai-je mis en place la solution trouvée pour ce blog ? C'est à ces questions que je vais répondre dans ce billet.
/Pourquoi ?
Les avantages de rester sur un site statique sont multiples !
Déjà, du point de vue de la sécurité : vu qu'il n'y a plus d'élément dynamique dans le site, l'un des seuls points d'entrée possible reste le serveur lui-même. Pas d'injection SQL, pas de faille CSRF, etc.
Vient ensuite la rapidité. En ne passant que par de simples pages HTML, le serveur n'a pas de page à produire, il n'a qu'à envoyer la page demandée. C'est tout. Les perspectives d'optimiser le site s'en trouvent alors grandement simplifiées.
Le référencement également. Bien des frameworks JavaScript proposent de générer une sorte de coquille vide, remplie au chargement du site. Les robots de Google ont du mal à l'indexer, quand une simple page HTML l'est plus facilement…
/Est-ce vraiment nécessaire de générer une page à chaque fois qu'elle est demandée ?
Je vous pose la question. A-t-on réellement besoin d'un site dont tous les éléments de la page sont générés au chargement de celle-ci ? J'ai plusieurs fois créé des sites en suivant grosso modo les grandes étapes suivantes :
- Création d'un template HTML
- Création d'une base de données
- Ajout des différents éléments de la base de données dans le template via PHP
- Création d'un cache pour limiter les appels à la base de données
Souvent je faisais un cache 'illimité' dans le temps parce que je ne voyais déjà pas l'intérêt de générer la page plusieurs fois. Le seul moment où il fallait la générer à nouveau, c'était éventuellement lorsqu'on modifiait son contenu dans la base de données, à ce moment-là, je supprimais le cache.
Évidemment, pour des sites dont le contenu évolue régulièrement (réseaux sociaux par exemple), le statique n'a aucun intérêt, mais pour un petit blog comme celui-ci, c'est exactement ce qu'il nous faut.
/Le meilleur des deux mondes
Bon, maintenant qu'on a vu les avantages liés au statique, parlons de inconvénients !
C'est quand même bien pratique de pouvoir se faire un petit CRUD pour ajouter, modifier, supprimer des articles. Coder en HTML chaque article, refaire totalement la page d'accueil pour l'y ajouter, risquer de casser totalement le site en oubliant de fermer une balise... On revient totalement à l'âge de pierre, autant se remettre au PHP.
C'est ce que propose Cecil !
Un dossier content
dans lequel on créé des fichiers Markdown, un dossier layout
dans lequel on crée le design à l'aide de Twig... Et c'est tout. Enfin, pour commencer, et c'est ce que j'ai fait aujourd'hui.
Ensuite une simple commande suffit :
php cecil.phar build
Un dossier _site
est créé, avec un site totalement en html, et c'est le contenu de ce dossier que vous envoyez en ligne.
/Conclusion
J'ai beaucoup apprécié m'amuser avec l'outil Cecil, ça utilise des technologies que je connais déjà et je n'ai pas eu de difficultés à le mettre en place.
Dans de futurs billets, je vous parlerais un peu plus des outils que j'utilise, et c'est la raison pour laquelle il était important que je puisse générer facilement des articles, sans avoir à les taper en html ;-)