Emacs por default viene con un modo llamado org-mode en el que puedes crear documentos tipo LaTeX, HTML, Markdown, pero tambien puedes publicar directamente en un blog y/o foro.
En este caso hablaremos de como publicar en Blogspot.com
Puedes mantener un registro local de tus publicaciones y actualizarlas en cualquier momento.
Instalacion
Primero que nada instalamos org2blog en emacs, hay varias maneras, una de ellas es utilizando la funcion que agregamos en este post.
(package-install-maybe 'org2blog)
O directamente desde emacs presionando
M-x package-install org2blog
Tambien puedes instalar `netrc.el’, de esta forma evitas tener tus contraseñas en texto plano (¿alguien quiere seguridad?).
Lo puedes conseguir aqui. Solo basta con colocarlo en tu carpeta personal, en mi caso es `$HOME/.emacs.d./personal/netrc.el’.
Necesitas tener GnuPG instalado para usar `netrc’ pero supongo que es insano no tenerlo. En dado caso lo puedes instalar con:
sudo pacman -S gnupg
Configuracion
Sin netrc
Cuando no te interesa la seguridad la configuracion es practicamente asi:
(setq org2blog/wp-blog-alist `(("wordpress" :url "https://eltaodelhao.wordpress.com/xmlrpc.php" :username "lalohao" :password "123456778" :default-title "Hello World" :default-categories ("org2blog" "emacs") :tags-as-categories nil) ))
Obviamente sustituyes los datos pertinentes a tu blog y o configuracion que gustes.
Con netrc
La seguridad es lo mas importante, esto toma un poco mas de configuracion pero la paga (seguridad) lo vale.
En lugar de tener en texto plano nuestras credenciales vamos a hacer unas funciones que las obtengan por medio de un archivo encriptado con GPG.
(setq org2blog/wp-blog-alist `(("wordpress" :url "https://eltaodelhao.wordpress.com/xmlrpc.php" :username ,(netrc-get-username "eltaodelhao.wordpress.com") :password ,(netrc-get-password "eltaodelhao.wordpress.com") :default-title "Hello World" :default-categories ("org2blog" "emacs") :tags-as-categories nil) ))
Las funciones de las que les hablo:
(defun netrc-get-entry (host entry &optional port) (let* ((netrc (netrc-parse (expand-file-name "~/.netrc.gpg"))) (port (or port "")) (hostentry (netrc-machine netrc host port))) (when hostentry (netrc-get hostentry entry)))) (defun netrc-get-password (host) (netrc-get-entry host "password")) (defun netrc-get-username (host) (netrc-get-entry host "login"))
Por default el archivo encriptado es `$HOME/.netrc.gpg’.
Creacion de archivo GPG
Creamos un archivo `/tmp/.netrc’ con algo asi:
machine eltaodelhao.wordpress.com login lalohao password 1234567
Lo encriptamos con:
gpg --default-recipient-self -e /tmp/.netrc
Esto deberá crear el archivo `.netrc.gpg’ con nuestras credenciales encriptadas utilizando nuestra previas llaves GPG.
Borramos el archivo de texto plano y movemos el archivo encriptado a `$HOME/.netrc.gpg’
rm /tmp/.netrc mv /tmp/.netrc.gpg $HOME/.netrc.gpg
Listo!
Inicia sesion con:
M-x org2blog/wp-login
Crea una nueva publicacion:
M-x org2blog/wp-new-entry
Podemos poner algo asi:
Puedes poner encabezados utilizando `*’, imagenes:
[[file://imagen.jpg]]
Enlaces:
[[http://google.com][Google]]
Por supuesto, la importancia de emacs viene en que no necesites escribir tanto, asi que podemos utilizar la combinacion de teclas `C-c C-l’ y esto nos abrira un menu pertinente para insertar enlaces:
En el caso de las imagenes solo es cuestion de seleccionarla:
Por default las imgenes solo se muestran como texto:
Pero si presionas `C-c C-x C-v’ puedes togglear la vista:
Cuando tengas tu publicacion como te guste puedes subirla como boceto:
M-x org2blog/wp-post-buffer
O publicarla con:
M-x org2blog/wp-post-buffer-and-publish
Automaticamente se subiran las imagenes y se acomodarán los encabezados, tablas y demas formato dependiendo de tu tema.
Cuando termine de subirse todo, te preguntará si lo quieres visualizar en tu navegador predeterminado: