Créer un blog avec Hugo, Emacs et ox-hugo

[David]

2018/08/14

Categories: emacs Tags: blog emacs orgmode hugo

Pré-requis

ox-hugo

ox-hugo est un plugin permettant l’export d’item org-mode vers un blog hugo.

Installation d’ox-hugo

Ajoutez à votre fichier de configuration emacs (.emacs.d/init.el par exemple) l’instruction use-package suivante :

(use-package ox-hugo
  :ensure t
  :after ox)

Une fois ox-hugo installé, les fonctions d’exports vers une instance d’hugo seront proposées dans le menu d’exports d’org-mode.

Utilisation

Deux modes de publication sont proposés, l’un utilisant un fichier org-mode pour chaque post, l’autre utilisant un fichier global.

Dans ce post seule la deuxième solution sera détaillée. C’est d’ailleurs celle qui est conseillée par le créateur du plugin : utiliser un fichier org-mode pour chaque post demande de recopier les propriétés globales sur chaque fichier.

Propriétés globales

Ces propriétés sont à mettre en haut du fichier org contenant l’ensemble des posts.

Dossier d’export

Racine du dossier hugo.

#+HUGO_BASE_DIR: /home/hugo/

Section

Chemin relatif des posts par rapport au dossier principal.

#+HUGO_SECTION: ./post/

Auteur

#+author: Auteur

Propriétés par post

Avec ox-hugo, chaque item org-mode peut être exporter en post, si les propriétés de post sont renseignées.

Il est possible d’avoir comme premier élément de hiérarchie une catégorie, ainsi chaque sous-item exporté en tant que post se verra assigné une catégorie.

Catégorie La syntaxe pour assigner une catégorie à un élément est la suivante :

* Emacs :@emacs:

Post

Afin d’exporter un item org-mode en tant que post, il est nécessaire de renseigner au moins la propriété EXPORT_FILE_NAME.

** Créer un blog avec ox-hugo :blog:
:PROPERTIES:
:EXPORT_FILE_NAME: creation-blog-ox-hugo.fr.md
:END:

Support multi-langues

Une fois les langues configurées dans hugo, il suffit d’ajouter entre le nom du fichier et l’extension de la propriété EXPORT_FILE_NAME le code de la langue voulue (par exemple creation-blog-ox-hugo.fr.md).

Exemple complet

#+HUGO_BASE_DIR: /home/david/hugo/
#+HUGO_SECTION: ./post/
#+author: Auteur

* Emacs :@emacs:
Catégorie Emacs

** Créer un blog avec ox-hugo :blog:
:PROPERTIES:
:EXPORT_FILE_NAME: creation-blog-ox-hugo.fr.md
:END:
Texte du post

Liens utiles