Crea tu Blog con Emacs y ox-hugo

Si tienes un blog con Hugo puedes usar Emacs y org-mode junto a ox-hugo para crear contenido de una forma sencilla. El paquete ox-hugo se encargará de exportar a ficheros markdown compatibles con Hugo nuestros ficheros org

Puedes organizar el blog guardando todos los artículos en un único fichero .org, como mi blog.

O puedes ir creando un fichero org por cada articulo

Instalación ox-hugo

ox-hugo requiere de una versión de Emacs igual o superior a la 24.4+ y Org 9.0 o superior

  • Instalación desde el gestor de paquetes:
M-x package-install RET ox-hugo RET
  • Desde el fichero .emacs:
(with-eval-after-load 'ox__
  (require 'ox-hugo))
  • Si utilizas use-package
(use-package ox-hugo
  :ensure t            ;Auto-instala el paquete desde Melpa (opcional)
  :after ox)

Configuración Global

Antes de poder exportar nuestros ficheros debemos de realizar una pequeña configuración en nuestro fichero org, en mi caso, he realizado la siguiente configuración que afecta a todos los artículos que se escriban en el fichero

Por defecto Hugo busca los artículos del blog en la carpeta posts, el tema que utilizo para mi blog, Even, necesita que los artículos residan en la carpeta post

#+hugo_section: post

Directorio raíz del blog.

#+hugo_base_dir: /home/carlos/Documentos/proyectos/elblogdelazaro.gitlab.io

Añado el valor lastmod en el fichero que se exporta a markdown con la fecha de la última modificación

#+hugo_auto_set_lastmod: t

Dado que el tema que utilizo para Hugo permite configurar el autor/autores de las publicaciones, no lo exporto

#+options: author:nil

Secuencia de los estados por lo que pueden pasar los artículos

#+seq_todo: TODO BORRADOR TERMINADA PUBLICADA

Con estos sencillos pasos ya tengo configurado mi fichero org para trabajar con Hugo.

Configuración del artículo

Por cada artículos que escribo le indico el nombre y la fecha de publicación, si es una fecha en el futuro, ox-hugo seteara la variable draft a valor true en el fichero exportado, lo que hace que Hugo no lo muestre.

Creo que las opciones se explican por si solas.

:PROPERTIES:
:EXPORT_FILE_NAME: 2019-10-14-rea-tu-blog-con-hugo-y-gitlab-pages
:EXPORT_DATE: 2019-10-14
:END:

Exportar artículos

El proceso es muy sencillo, con la combinacion Cc-Ce accedemos al menú de exportación de org-mode

Con HH, exportamos la rama en la estamos situados y si pulsamos HA exportará todo el árbol.

Recursos

Si quieres aprender o profundizar mas sobre ox-hugo u org-mode te dejo estos enlaces por si te sirven de ayuda

Espero que te haya gustado, pasa un buen día… 🐧