Crear un RSS de nuestro sitio web (escrito en Org Mode)
Para generar un RSS de un sitio web escrito en Org (como éste), la opción orgcéntrica de ox-rss.el
no acababa de
funcionarme bien. El problema principal es que en este sitio cada post es un archivo html
independiente, y esta
solución (alambicada, tal vez, en exceso) para situaciones así tampoco es que me fuese muy fina, probablemente porque
ox-rss
es un paquete que se ha quedado algo desactualizado. Y, la verdad, no deseo enredarme aquí más allá
de lo necesario.
Una solución alternativa, y mucho más simple, la encontré en el paquete webfeeder
, que genera un RSS razonablemente
limpio y que no depende de Org Mode. Su acción principal vendría a ser ésta:
(webfeeder-build "rss.xml" "/ruta/hacia/nuestra/carpeta/web" "https://nuestro-sitio-web" '("lista de las pág. web o post que queramos añadir al RSS") :title "Título del sitio" :description "sobre lo que trata el sitio" :builder 'webfeeder-make-rss)
Para automatizar todo, y no tener que añadir la lista de post a manopla, definí esta sencilla función:
(require 'webfeeder) (defun rss-gnutas () (interactive) (let ((ficheros (directory-files "/ruta/hacia/nuestra/carpeta/web" nil "html" nil))) (webfeeder-build "rss.xml" "/ruta/hacia/nuestra/carpeta/web" "https://maciaschain.gitlab.io/gnutas/" (setq ficheros (cl-remove-if (lambda (k) (string-match (regexp-opt '("acerca-de.html" "index.html" ".html~")) k)) ficheros)) :title "Cuaderno de GNUtas" :description "sobre GNU Emacs y otras cosas aledañas" :builder 'webfeeder-make-rss) (message "creado rss para %s" ficheros)))
Explicación:
- Añadimos a la variable
ficheros
la lista de nombres de archivo, filtrados porhtml
, que hay en mi carpeta web y que me entregadirectory-files
. - Introducimos esa lista en la acción
webfeeder-build
pero eliminando de aquélla los ficherosacerca-de.html
,index.html
y todos los que terminan con la tilde de los backups. Para ello nos viene de perlas la funciónregexp-opt
, que nos busca entre varias cadenas sin tener que enredarnos con las expresiones regulares. - Y, por último, un mensaje que entrega la lista de ficheros
html
añadidos al RSS.
En nuestra capeta web se habrá creado, por fin, un archivo rss.xml
.
∞
Publicado: 15/07/2019
Última actualización: 16/08/23
Esta obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0 Internacional.