Una vez abierto emacs presionamos M-x (Alt+x) y escribimos easy-hugo [RET] (RET = intro) para iniciar el servidor hugo además de un panel de comandos:

como se aprecia en la imagen está presente el fichero de prueba (test.org) que creé anteriormente desde la terminal. El panel es bastante simple, si presionamos la tecla Tabular ampliaremos el menú. Por lo demás solo resta teclear enter, o el atajo e para empezar a editar un archivo creado. Por su parte n crea un nuevo post.

Algunos atajos que usaremos a menudo:

Atajo Función n Iniciar un nuevo post d Borrar un post e Editar un post p Pre-visualizar en el navegador , . Desplazarse por las carpetas incluidas en content – + Ídem a lo anterior D Posts en modo borrador c Abre archivo de configuración config.toml O Abre directorio base < > Desplazarse entre varios blogs / Selecciona directorio de post q Sale de easy-hugo

En la parte superior se encuentra la sección de cabecera (meta-datos) en formato TOML. Aunque en un archivo .org es posible cambiar por el formato de cabecera de Org-mode agregando la siguiente linea en .emacs:

(setq easy-hugo-org-header t)

Ahora mi cabecera se verá así —las dos últimas lineas son agregadas para que se ajusten a mi configuración habitual—:

Esto es importante para mi ya que utilizo algunas configuraciones propias de Org-mode y de otro modo no podría realizarlas. También es posible iniciar cualquiera de los lenguajes .md, .org, .ad, .rst de forma predeterminada. Cuando iniciamos un nuevo post (atajo n ) automáticamente generará la extensión escogida y nos pedirá un nombre.

Un ejemplo: la siguiente instrucción establece markdown por omisión. Reemplazar .md por el lenguaje de marcas de preferencia:

(setq easy-hugo-default-ext ".md")

La secuencia C-c C-e se define para iniciar easy-hugo de forma rápida sin necesidad de recurrir a M-x easy-hugo [RET] . Si se utiliza .org no funciona ya que está destinado a la función exportar. Yo utilizo C-x b para intercambiar el buffer, aunque se puede escoger otra secuencia.

(define-key global-map (kbd "C-c C-e") 'easy-hugo)

A partir de versiones más modernas de Hugo se puede pre-visualizar el blog en el navegador, cada cambio que hagamos se hará efectivo al momento de guardar los cambios. Hugo mantendrá la ejecución del server por 300 segundos, no es necesario matar el proceso. Claro que se puede cambiar ese tiempo: easy-hugo-previewtime "300"

Cuando iniciamos un post este se encuentra en modo borrador, por lo que no hay vista previa del mismo, se debe cambiar DRAFT: true por false , o nil para el caso de la cabecera de Org-mode para pre-visualizar el post. Para iniciar directamente la pre-visualización de los borradores escribimos la siguiente linea en .emacs: (setq easy-hugo-server-flags "-D")

Hay mucho más en easy-hugo. Ejecutando M-x easy-hugo-[TAB] veremos muchas acciones que no están presentes en el panel:

Veamos que hacen easy-hugo-image, easy-hugo-put-image, easy-hugo-pull-image:

M-x easy-hugo-image [RET] Genera el enlace de la imagen desde el directorio del archivo de imagen en el directorio ‘estático’. En este caso el directorio por omisión es images

si queremos otro directorio debemos especificarlo en .emacs, este ejemplo establece pictures: (setq easy-hugo-image-directory "pictures")

M-x easy-hugo-put-image [RET] Este comando mueve una imagen de un directorio dado al directorio por omisión images —o el que hayamos personalizado para tal caso— y genera un enlace de la imagen.

M-x easy-hugo-pull-image [RET] Descarga una imagen desde Internet al directorio por omisión y genera el enlace de la imagen. En este caso debemos especificar la URL de la imagen.

Los comandos M-x easy-hugo-figure [RET] , M-x easy-hugo-put-figure [RET] y M-x easy-hugo-pull-figure [RET] realizan la misma tarea que los mencionados anteriormente, solo que los enlaces se representan de otra forma.

{{< figure src="/images/easy-hugo.png" title="" >}}