Notxor tiene un blog

Defenestrando la vida


Sobre cómo utilizo org-page para hacer este blog

Este artículo va de cómo estoy utilizando org-page para hacer éste blog. Lo haré con pelos y señales, porque me lo ha pedido así Ángel, del blog y podcast uGeek que se está planteando emplear el sistema para sus proyectos. Sobre cómo ponerlo en marcha ya hablé en otra ocasión y no voy a reincidir, aunque haré alguna puntualización.

Hay algunos cambios en la configuración desde que lo inicié. Copio aquí la configuración que tengo en el init.el.

;;; Para el blog en org-mode
(require 'org-page)
(setq op/repository-directory "~/proyectos/blog-org-page/")
(setq op/site-domain "https://notxor.nueva-actitud.org")
(setq op/site-main-title "Notxor tiene un blog")
(setq op/site-sub-title "Defenestrando la vida")
(setq op/theme-root-directory "/home/notxor/proyectos/themes-org-page") ;; Temas propios
(setq op/theme (quote notxor))   ;; Ajustes personales del tema
(setq op/tag-rss t)              ;; Hacer que se creen los feed por etiquetas.
(setq op/hashover-comments t)
(setq op/personal-github-link "")
(setq op/site-preview-directory "~/public_html")

Quiero recordar nada más que todo el blog está en un repositorio git. Es un repositorio particular y privado sobre un servidor propio. No utilizo ni gitlab ni tampoco github ni ningún otro repositorio externo.

El repositorio del blog tiene dos ramas: master y source. Los html que se publican se guardan en la rama master y los ficheros org que son los que escribo están en la rama source.

Flujo de trabajo

Escribir un artículo y publicarlo tiene un proceso muy sencillo. El sistema lo describo a continuación.

Escribir el artículo

Antes de comenzar a escribir me aseguro de que el repositorio git está en la rama source que es la destinada a recoger los textos que escribes en formato org. Si no estamos en la rama adecuada, hay que hacer en una consola situada en el repositorio:

git chekout source

En un primer momento creé también una rama drafts para guardar los borradores de los artículos según se me iban ocurriendo. Esa rama al final la abandoné. Los borradores son los artículos que aún no he guardado en el repositorio git. Pero para iniciar la escritura de un artículo es muy sencillo, utilizo el siguiente comando de emacs

M-x op/new-post

Ese comando inicia una serie de preguntas, como la categoría del artículo, en mi caso están la mayoría en la categoría blog aunque tengo otros en la categoría esperanto. Pregunta también un nombre de archivo, unas etiquetas y palabras clave, un título y una URL. Estos datos componen la cabecera del fichero org. Relleno todos los campos lo mejor que sé, tampoco me preocupo mucho, pues esos datos se pueden modificar más tarde. Lo que suelo tener en cuenta es que en la URL no haya caracteres especiales con tildes o eñes.

Subirlo al repositorio

Para manejar el repositorio utilizo magit desde el mismo emacs, pero empecé utilizando directamente git y la línea de comandos. En ambos casos hacía básicamente lo mismo y puedes utilizar para manejar el repositorio la herramienta con la que mejor te entiendas:

  1. Comprobar el estado del repositorio con status. articulo-blog-magit.png
  2. Añadir los cambios con add o con stage.
  3. Meterlos en el repositorio local con commit. articulo-blog-commit.png
  4. Sincronizar el repositorio remoto con push.

Bien, ya tenemos la información subida al repositorio local. Esto es importante porque el sistema sólo genera las páginas de lo que esté subido e ignora los demás ficheros.

Publicar en local los cambios realizados

Antes de subirlo donde lo pueda ver la gente, primero lo publico en local. Es decir, en mi ordenador monto un equivalente al sitio web para comprobar que está todos bien, que funcionan todo, que las imágenes, o vídeos o sonido, enlazan correctamente.

Para hacer la publicación se utiliza el comando

M-x op/do-publication

Nos preguntará si publica todos los archivos org y si lo hace en un directorio local. Yo lo hago sobre el ~/public_html. Allí, en el directorio que indiquemos, colocará todos los archivos como se verán en la web. Si queremos consultarla como si lo hiciéramos en una remota, hay que montar un servidor. Podemos utilizar el de emacs o cualquier otro. Yo utilizo el que proporciona Python, por tanto utilizo los siguientes comandos desde una consola:

cd ~/public_html
python3 -m http.server 8080

Para comprobar que todo funciona abro los navegadores; normalmente lo compruebo con tanto con firefox como con iridium. Iridium es un navegador basado en chromium que no se chiva de nuestras cosas a Google. Una vez que creo que todo está correcto, llega el momento de subir las páginas al sitio de Internet y actualizar la rama master del repositorio.

Guardar las páginas generadas

Si todo está correcto, primero meto los cambios en el repositorio. Pero hay que recordar cambiar la rama sobre la que trabajamos:

git checkout master

y copio los ficheros desde ~/public_html al directorio de trabajo ~/proyectos/blog-org-page. Se puede utilizar la herramienta rsync pero últimamente me he acostumbrado a utilizar el gestor de archivos mc, porque es la herramienta que utilizo también para subir los ficheros al sitio de Internet.

articulo-blog-copiar.png

Una vez tengo los ficheros en el directorio del repositorio local, toca actualizar el repositorio git con los mismos pasos que hemos visto al trabajar con la rama source. El único cambio es que lo haremos sobre la rama master.

Subir los cambios a Internet

Igual que he hecho para guardar el sitio generado por el sistema en mi repositorio, paso los ficheros que lo componen por ftp al sitio en Internet.

articulo-blog-ftp.png

Conclusiones

Contado así, con tanto detalle puede parecer un poco farragoso el sistema. En realidad es bastante sencillo. Tienes los ficheros generados como html estático. Yo además lo tengo de manera que el javascript no llame ni se comunique con sitios externos, ni siquiera para regalarle los datos de visitas a Google. Así no puedo saber quién entra, ni cuántos son, pero es que en realidad me da igual. No pienso poner publicidad ni ganar dinero con ello, así pues ¿para qué regalarle a una gran corporación americana los datos que generan los que aquí vienen a leerme?

Respuestas a algunas dudas planteadas

La mayoría de las dudas son sobre el funcionamiento de git. No soy un experto en git, lo único que puedo hacer es recomendar un buen manual sobre esa herramienta.

La otra duda que me han preguntado es cómo parar el servidor http de emacs. No suelo utilizarlo, pero hay un comando M-x httpd-stop que supongo que lo detendrá.

La parte de utilizar otro editor para escribir los artículos no termino de pillar el porqué. Concretamente org-mode es potente por todo el elisp que lo mueve sin que lo veamos. A ver, es texto plano, lo puedes escribir con cualquier editor. El hacerlo con emacs es más rápido, me parece a mí:

  1. Escribes o modificas el artículo.
  2. Metes los cambios en el repositorio local. (Si no quieres mezclar herramientas y que se abran un montón de buffers usas git desde una consola.)
  3. Generas el sitio con M-x op/do-publication.

Ya te puedes olvidar de emacs si quieres y usar las herramientas que quieras para guardar el sitio generado en el repositorio y subirlo a Internet.


Comentarios