Un escargot à Manhattan

Générateurs de pages statiques

Parce que oui, il y a autre chose dans la vie que WordPress.

Le saviez-vous ? Il est possible d’avoir un blog minimaliste (donc pas WordPress) sans payer aucun hébergement, sans pub, ni besoin d’installer des choses sur son ordinateur. Pour le savoir, sautez directement à « Jekyll Now » dans ce post ou cliquez ici si vous êtes pressé.

Update 18/04. L’organisation Seed Development propose un éditeur de pages GitHub : Prose.IO.

Pourquoi WordPress m’a gonflé

  1. J’en avais marre d’avoir des pages qui chargeaient lentement.
  2. J’avais tout le temps des mises à jour de sécurité à faire.
  3. J’avais énormément de spam dans les commentaires, ou alors il fallait que j’installe le plug-in Akismet.

Octopress 2.0

Autant commencer par le moteur qui propulse ce blog. J’écris des posts sous la forme suivante, en Markdown :

---
title: Générateurs de pages statiques
authors:
  - Jill-Jênn Vie
layout: post
published: true
permalink: /2016/02/26/generateurs-de-pages-statiques/
categories:
  - Code
  - Méta
---

Parce que **oui**, il y a autre chose dans la vie que WordPress.

## Pourquoi WordPress m'a gonflé

1. J'en avais marre d'avoir des pages qui chargeaient lentement.
1. J'avais tout le temps des mises à jour de sécurité à faire.
1. J'avais énormément de spam dans les commentaires, ou alors il fallait que j'installe le plug-in Akismet.

## Octopress 2.0

Autant commencer par le moteur qui propulse ce blog. J'écris des posts sous la forme suivante :

Et en tapant rake generate, tout le HTML est généré à partir de mes posts écrits en Markdown, même les regroupements de posts par catégorie. Je peux donc envoyer tout mon blog sur un serveur par FTP ou SSH.

L’avantage : c’est plus clean, je n’ai pas besoin d’écrire du PHP, et les pages s’affichent rapidement. Quelque chose que j’aime beaucoup avec Octopress, c’est son plug-in de footnotes1.

Le code ayant servi à obtenir ce résultat :

Quelque chose que j'aime beaucoup avec Octopress, c'est son plug-in de footnotes[^1].

 [^1]: Reconnaissez que c'est mignon.    

Jekyll

Octopress s’appuie sur Jekyll, un générateur de pages statiques écrit en Ruby.

Les gens derrière cet outil bossent pour la plupart à GitHub, la plateforme closed source de projets open source.

Jekyll Now

Un fan de Jekyll a rédigé un tutorial pour que quelqu’un de non technique puisse tester le système de blogs Jekyll. Je vous invite à y jeter un œil : Jekyll Now.

Poole

En fait, ce qui est fantastique, c’est que la communauté derrière Jekyll est si grande qu’il y a plein de choses qui se sont construites par dessus.

Mark Otto (@mdo), le créateur de Bootstrap, a rassemblé une panoplie de fichiers CSS et de templates pour démarrer un projet Jekyll. Ça s’appelle Poole.

Deux exemples de blogs créés à partir de Poole :

Octopress 3.0

L’auteur d’Octopress a voulu à nouveau réécrire une grosse partie de son code, mais la nouvelle version est supposée sortir bientôt… depuis 1 an, en fait.

En tout cas, sa version bêta a un thème sympa que j’ai utilisé pour un blog de voyage :

Pelican

Pelican, qui se veut être une2 anagramme de calepin, est un générateur de pages statiques écrit en Python.

Je me disais que Pelican serait mieux que Jekyll car plus léger et en Python. Mais ce que j’ai vu dans certains templates et dans le fonctionnement m’a semblé un peu sale (plein de variables globales, peu d’organisation).

Fun fact: l’auteur de Pelican utilise Jekyll pour son propre blog xD

Pandoc

pandoc est un couteau suisse développé en Haskell par un prof de philosophie de l’université de Berkeley (oui oui) qui convertit tout vers tout, en particulier Markdown vers HTML, LaTeX, slides Beamer ou reveal.js, et même en .docx.

Vous pouvez essayer pandoc en ligne ou via ce repo GitHub. Ça me semble un peu overkill pour créer un blog (en plus, il faut appliquer pandoc à toutes les pages), mais pourquoi pas. En tout cas, j’écrirai sûrement ma thèse avec, en Markdown, comme ces gens fous :

Sphinx

Là, on est encore dans le détournement : utiliser un outil de documentation (Sphinx) pour faire des pages statiques. C’est ce que je fais actuellement pour jill-jenn.net et je suis plutôt satisfait, car ça m’a permis d’organiser tout mon contenu sous la forme d’un arbre, et j’ai un module de recherche en JavaScript intégré (en bas de la colonne de gauche).

Pour les commentaires, si on ne souhaite pas utiliser Disqus (car un peu intrusif), on peut utiliser Isso (même si seulement sous Python 2.7 et un peu embêtant à configurer).

Lektor

J’allais oublier le plus récent et important. Un générateur de pages statiques :

  • facile à installer ;
  • sans besoin d’utiliser la ligne de commande ;
  • modifiable soit à partir des fichiers, soit à partir d’un panneau admin (!) ;
  • et ne requérant pas de compte GitHub.

Ce qui est bien, c’est que je peux l’installer à quelqu’un et cette personne peut devenir autonome.

Ça a été développé par Armin Ronacher, le jeune développeur archiprolifique à l’origine de Jinja, Flask, Sphinx, etc..

Il a d’ailleurs un post où il explique pourquoi il a créé un n-ième générateur de pages statiques :

Moralité

Si vous êtes tech, installez Jekyll, éventuellement via le thème Lanyon de Poole et si vous êtes en train de coder un site pour votre grand-mère, installez-lui Lektor.

Zut, j’ai pas fini

Peut-être qu’un jour, j’aurai l’occasion d’essayer :

  1. Reconnaissez que c’est mignon. 

  2. Anagramme est un mot féminin, sans accent circonflexe ni trait d’union.