Migration vers hugo
Sat, 9 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êmelayouts
etstatic
.
- 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 Hugo — vdemeester.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) :
- Démarre
hugo server -w
dans mon repositoryblog
. - 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 fichiersorg
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.
- J'exécute
org-publish-current-project
(qu'il faut que je bind pour éviter de me le taper à la main..) - 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
).