Migration vers hugo

Sat, 5 May, 2015 (500 Words)

Et voilà, une semaine après m'être remis en route sur ce blog, je fais déjà une migration >_<. Je me suis rendu compte que Jekyll m'énervait un peu, et comme je suis à fond dans go en ce moment, j'ai regardé du côté des générateurs de sites static et Hugo a clairement retenu mon attention.

Pourquoi Hugo ?

Make the Web Fun Again

Introducing Hugo, a new idea around making website creation simple again. Hugo flexibly works with many formats and is ideal for blogs, docs, portfolios and much more. Hugo’s speed fosters creativity and makes building a website fun again.

Presque tout est dit dans cette citation.

  • Hugo est rapide.
  • Le système de content est un régale.
  • L'organisation d'un projet hugo est simple :
    • content pour le contenu, avec ce qu'on veut dedans,
    • static pour le contenu statique (css, javascript, images, …),
    • layouts pour les templates (super facile de mettre des templates différents en fonction des contenus, voir ici),
    • themes pour les themes applicables (qui définissent eux même layouts et static.
  • Le système de template est puissant et un vrai régale.
  • Le mode server a la possiblité de surveiller les fichiers(avec le flag -w, et implémente LiveReload ce qui est un petit bonus non négligeable.

Ce qui changes

Le principale changement est sur le/les repository utilisés. Avant tout était dans vdemeester.github.com, puisque c'est github qui générait le résultat final avec Jekyll. Ce n'est maintenant plus le cas : blog héberge les sources du blog (les fichiers content en Markdown ou HTML-from-orgmode ainsi que les templates et la configuration Hugovdemeester.github.com héberge désormais le résultat.

J'en ai profité également pour faire quelques ajustements graphique, principalement sur les tags qui ont maintenant, parfois, des couleurs différentes.

Intégration avec Emacs & orgmode

Il me manque encore quelques petits trucs pour rendre ça automatique, mais dans l'idée, voilà le workflow que j'utilise quand je publie un article (comme maintenant) :

  1. Démarre hugo server -w dans mon repository blog.
  2. Je créer mon fichier org au bon endroit (soit $HOME/desktop/org/notes/vdf/monfichier.org). Par rapport au billet précédent, le header de mes fichiers org change un peu :
    #+begin_html
    +++
    title="Migration vers hugo"
    date="2015-05-09"
    categories=["developement"]
    tags=["hugo","golang","blog","emacs","orgmode","html"]
    lang="fr"
    +++
    #+end_html
    
    Et voilà, une semaine après  m'être remis en route sur ce blog, je fais déjà une migration =>_<=. Je me suis rendu compte que [[http://jekyllrb.com/][Jekyll]] m'énervait un peu, et comme je suis à fond dans [[http://golang.org/][go]] en ce moment, j'ai regardé du côté des générateurs de sites static et [[http://gohugo.io/][Hugo]] a clairement retenu mon attention.
    
  3. J'exécute org-publish-current-project (qu'il faut que je bind pour éviter de me le taper à la main..)
  4. Et je regarde le résultat dans mon navigateur (merci encore LiveReload).

Pour me simplifier la vie, il me resterais à démarrer et arrêter facilement hugo server -w dans le bon dossier directement depuis emacs (un peu à-la compile), binder org-publish-current-project et un petit script final qui copie le rendu de blog vers vincent.demeester.fr et qui commit (le tout appellable depuis Emacs ;-P).