Notxor tiene un blog

Defenestrando la vida

Futuros cambios en el blog

2020-09-25

Para que todo siga igual

Ya sabéis que muchas veces hay que hacer cambios para que todo siga igual y a eso le estoy dando vueltas. Con el paso de los años el sistema este de org-page se me está haciendo algo pesado. Generar todo el sitio cuando cambio algo en las plantillas de algún espacio compartido me tarda mucho tiempo. Además es un sistema complejo, donde intervienen otras herramientas como git y creo que no es necesario, ─o no lo debía ser─. A ver, no me malinterpretéis, está muy bien tener el blog mantenido en un repositorio git, pero la herramienta que tenga que generar el sitio html desde org, no debería depender de ello. O al menos, es una sensación que tengo instalada en mi pushconciente.

El tema es que hace unos días, curioseando alternativas, encontré otra herramienta aún más minimalista que org-page: org-static-blog. Dicho paquete esa disponible en Melpa y se puede instalar directamente por el método habitual.

¿Qué me gusta de ese sistema nuevo?

Minimalismo en estado puro. Todo está contenido en un mismo archivo org-static-blog.el y ya está. Además no es largo ni farragoso. Es sencillo de entender y me permitirá hacer algún que otro hack para que todo me siga funcionando.

¿Qué no me gusta?

Le tengo que hacer cambios para mantener el blog actual con todas sus funcionalidades... Concretamente tres tareas:

  1. No soporta «categorías» como el actual. Tengo que añadir un subblog, por llamarlo de alguna manera, para incluir los artículos en Esperanto. Ya puesto, lo mismo hasta traduzco el chismático al Esperanto para esa sección.
  2. No genera archivos rss por etiquetas. Lo que viene muy bien para enlazar el blog en otro compendiador como http://planet.emacs-es.org/ y me consta que algunos de los lectores habituales de esta cosa, conocieron el sitio a través de él.
  3. Hay que ajustar todas las entradas que hay acumuladas hasta ahora a las nueva exigencias de cabecera... muy pesado todo lo que he escrito ─pensaba yo que escribía poco, pero ná una pasada de curro ingrato─.

    ...

  4. (Vale dije tres, pero es que esto no es obligatorio). Viene sin cosas como temas para la visualización. Tienes que enganchar tú el css en las cabeceras. Nada que no solucione una línea de código html. Además, aprovechando el asunto, se podría cambiar ya el aspecto del blog (que ya me estoy cansando del tema oscuro).

¿Cómo funciona?

Por las pruebas que llevo hechas, es realmente minimalista. Contempla la existencia de tres directorios: blog, posts y drafts... lo podemos ver en su código:

(defcustom org-static-blog-publish-directory "~/blog/"
  "Directory where published HTML files are stored."
  :type '(directory))

(defcustom org-static-blog-posts-directory "~/blog/posts/"
  "Directory where published ORG files are stored.
When publishing, posts are rendered as HTML, and included in the
index, archive, tags, and RSS feed."
  :type '(directory))

(defcustom org-static-blog-drafts-directory "~/blog/drafts/"
  "Directory where unpublished ORG files are stored.
When publishing, draft are rendered as HTML, but not included in
the index, archive, tags, or RSS feed."
  :type '(directory))

En el trabajo normal se ponen los ficheros org en el directorio que se encuentra en la variable org-static-blog-posts-directory y cuando se llama a org-static-blog-publish genera sólo los html que se encuentren el directorio de posts.

Además, según leo en su sitio de github cuando generas un sitio, sólo lo hace si no existe un fichero html ─más moderno─ correspondiente al fichero org.

Individual blog entries are only re-rendered if no current HTML file is available (i.e. the org file is older than the HTML file). If you want to forcibly re-render an entry, delete the HTML file.

Además, también se puede generar sólo la salida de un sólo fichero con org-static-blog-publish-file. Que, supongo, que ser utilizará en el caso de hacer correcciones en algún post antiguo.

Posibles trabajos futuros

Para que pueda pasarme al nuevo sistema con todas las funcionalidades que ahora tengo con org-page tengo que hacer un poco de trampa. Mi primera idea es tener un fichero de configuración, quizá un org con código diferente para cargarlo según el tipo de artículo que vaya a escribir y que todo se publique en el mismo directorio.

La idea sería, por lo menos, tener separados los temas de blog y esperanto, para simular las categorías. Las etiquetas también podrían servir y poner un enlace al fichero tag correspondiente. En cualquier caso, sí habría que hacerlo para el tema de generar un fichero rss, pues hay quien está suscrito sólo a ese apartado.

(defcustom org-static-blog-enable-tags nil
  "Show tags below posts, and generate tag pages."
  :group 'org-static-blog
  :type '(boolean)
  :safe t)

(defcustom org-static-blog-rss-file "rss.xml"
  "File name of the RSS feed."
  :type '(string)
  :safe t)

Tengo que probar si se puede publicar a subdirectorios o quizá tenga que hacerlo creando subdominio. Aprovechando el tema de los cambios, incluso creo que debo cambiar el aspecto de esos posts para resaltar su distinta categoría y que salte a la vista nada más abrir el artículo. Se podrían activar las etiquetas y cambiar el nombre del rss de rss.xml a cualquier otro como, por ejemplo, esperanto.xml o eo-rss.xml.

Conclusiones

Todo está muy incipiente y aún estoy haciendo pruebas. Lo escribo aquí para que no penséis que está abandonado el blog si paso una temporada sin escribir nada. O si poco a poco, veis que se van realizando cambios o experimentáis alguna de las pegas que he detallado antes.

Ahora queda el trabajo largo y pesado de convertir todos los posts que hay ya hechos. Son algunos años ya escribiendo tontás. En principio hay que cambiar las cabeceras y los enlaces a los ficheros gráficos. Así que, paciencia.

Categoría: blog

Comentarios

Debido a algunos ataques mailintencionados a través de la herramienta de comentarios, he decidido no proporcionar dicha opción en el Blog. Si alguien quiere comentar algo, me puede encontrar en Mastodon y en Diaspora con el nick de Notxor.

También se ha abierto un grupo en Telegram, para usuarios de esa red.

Disculpen las molestias.