Cuaderno de GNUtas

Publicar en WordPress desde Emacs y Org Mode con org2blog

Para publicar las entradas en mi blog Apuntes tipográficos1, escritas en origen desde el Org Mode de Emacs, tenía que resignarme hasta ahora a algunas triquiñuelas no demasiado limpias ni elegantes. Conocía el paquete org2blog y lo probé un par de veces, pero nunca logré hacerlo funcionar bien. Por suerte, hace poco descubrí la causa del error gracias a este blog, así que ahora ya puedo publicar mis entradas directamente desde Emacs, sin necesidad de vérmelas con ese horrendo editor nuevo y sus no menos horrendos «bloques», incluidos en las últimas versiones de Wordpress. El paraíso.

El error que comentaba, en fin, estaba en una cosa muy tonta. Resulta que tenía que guardar las credenciales de WP no en un archivo ~/.netrc sino en un ~/.authinfo, el mismo donde se guardan los usuarios y contraseñas para Gnus, el gestor de correo y noticias de Emacs. Además de eso, era necesario hacer unas pequeñas modificaciones en la configuración de org2blog respecto a las indicaciones originales. Sin más dilación, aquí va cómo lo tengo ahora configurado todo2.

Lo primero, hay que añadir una línea con las credenciales de nuestro blog al archivo ~/.authinfo (si no existe, lo creamos y en paz. Yo ya lo tenía para usar las credenciales de Gmail en Emacs). Sustituyendo, claro, lo que está entre <...> por los datos reales:

machine  <alias-del-blog> login <mi-usuario> password <mi-contraseña>

Vamos a nuestro ~/.emacs y añadimos la siguiente y recomendada configuración:

(setq org-directory "<directorio donde se guardan los documentos org del blog>")

(setq org-list-allow-alphabetical t)

(require 'org2blog-autoloads)
(require 'auth-source)
(let (credentials)
	(add-to-list 'auth-sources "~/.authinfo")
	(setq credentials (auth-source-user-and-password "<alias del blog>"))
	(setq org2blog/wp-blog-alist
	      `(("<alias del blog>"
		 :url "ruta hacia el xmlrpc.php de nuestra instalación de WordPress"
		 :username ,(car credentials)
		 :password ,(cadr credentials)
		 :default-title "Hola Mundo"
		 :default-categories ("org2blog" "emacs")
		 :tags-as-categories nil))))

(setq org2blog/wp-use-sourcecode-shortcode nil)

(setq org2blog/wp-sourcecode-default-params nil)

(setq org2blog/wp-sourcecode-langs
      '("actionscript3" "latex" "bash" "coldfusion" "cpp" "csharp" "css" "delphi"
	"erlang" "fsharp" "diff" "groovy" "javascript" "java" "javafx" "matlab"
	"objc" "perl" "php" "text" "powershell" "python" "ruby" "scala" "sql"
	"vb" "xml" "sh" "emacs-lisp" "lisp" "lua"))

Las variables org2blog/wp-use-sourcecode-shortcode y org2blog/wp-sourcecode-default-params las paso a nil, pues usaré a partir de ahora los bloques de código nativos de Org en la exportación a HTML (los mismos que se usan en estas gnutas), en lugar del estilo que ofrece WordPress. Suelo poner, no obstante, esta opción en la cabecera de mis documentos de Org a exportar:

#+HTML_HEAD: <style>pre.src{background:#fdf6e3;overflow:auto;margin: 1.2em 0em}</style>

En la última variable org2blog/wp-sourcecode-langs va la lista de los lenguajes que queremos aplicar a nuestros bloques de código.

Y eso es todo, realmente. A partir de ahora, publicar en WordPress desde Emacs es tan sencillo como escribir en un documento Org. Si queremos publicar la entrada, llamamos a la función org2blog/wp-login, para activar nuestras credenciales, seguida de org2blog/wp-post-buffer, que nos mandará la entrada a nuestro WordPress como borrador, razonablemente lista. La podremos publicar entonces desde allí, pero también podemos en Emacs invocar org2blog/wp-post-buffer-and-publish para publicarla directamente desde nuestro querido y polifacético editor de texto.

Publicado: 12/06/2019

Última actualización: 18/05/20


Índice general

Acerca de...

Esta obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0 Internacional.

Notas:

1

Actualización de [2019-12-13 vie]: El contenido de este antiguo blog está en proceso de migración al sitio hermano de éste, La lunotipia. A fecha de hoy ya no mantengo ningún sitio con la infraestructura de WordPress.

2

org2blog podemos instalarlo, junto a sus dependencias, desde el repositorio MELPA.

© Juan Manuel Macías
Creado con esmero en
GNU Emacs