Pré-requis
- Emacs, avec les plugins org-mode et use-package
- une instance hugo
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