Cómo usar Emacs para RSS con Elfeed

Emacs es un software muy extensible. Puede ser tu editor de texto, tu cliente de correo electrónico e incluso tu lector de USENET. Con Elfeed, también puedes usar Emacs como tu lector de feeds RSS.
Tabla de Contenidos
- ¿Qué es Elfeed?
- ¿Por qué usar un lector de feeds en Emacs?
- Instalando Elfeed en Emacs
- Configurando tu primer feed RSS en Emacs
- Cómo etiquetar y filtrar feeds automáticamente en Emacs
- Cómo etiquetar feeds automáticamente según la URL
- Cómo crear colores y fuentes personalizadas para etiquetas
- Preguntas Frecuentes
También lee: 5 de las mejores aplicaciones de lector de RSS para macOS
¿Qué es Elfeed?
Elfeed es un lector de feeds RSS ligero pero poderoso escrito para Emacs. Utiliza un sistema simple basado en etiquetas para clasificar tus feeds RSS. No solo eso, también viene con un potente sistema de etiquetado “basado en hooks” que te permite etiquetar automáticamente los feeds según su contenido.

Esto hace que Elfeed sea útil para las personas que siguen muchos feeds RSS y buscan una manera de clasificar automáticamente sus feeds.
También lee: Cómo usar Emacs para reproducir música con EMMS
¿Por qué usar un lector de feeds en Emacs?
Emacs trabaja bajo la noción de interoperabilidad, ya que Emacs toma datos y permite que sean interpretados de varias maneras diferentes.

Si bien puedes usar Emacs exclusivamente para editar texto, poder acceder a tu correo electrónico mientras editas texto, por ejemplo, puede permitirte usar sin problemas el texto que estás escribiendo en el correo que estás componiendo.

Por eso, incorporar tu lector de feeds RSS en Emacs puede ser tentador. Te permitiría usar las potentes capacidades de edición de Emacs para manipular tus feeds y otras funciones en Emacs.
Instalando Elfeed en Emacs
Instalar Elfeed es realmente simple. Está disponible en el repositorio GNU ELPA, por lo que puedes acceder a él sin ninguna modificación en tu archivo init.el.

Para instalar Elfeed, presiona Alt + X para abrir el búfer de comandos, luego escribe package-install. Debes proporcionar elfeed como el nombre del paquete y presionar Enter. Emacs descargará el código fuente de Elfeed y lo compilará inmediatamente después.
Configurando tu primer feed RSS en Emacs
Con eso instalado, accede a Elfeed presionando Alt + X y escribiendo elfeed en el búfer de comandos. Hacer esto cargará un búfer vacío de Elfeed.

Hay dos maneras de agregar un feed RSS a Elfeed:
Editar manualmente tu archivo init.el
Sin Emacs
Agregando un feed RSS manualmente en Elfeed
Puedes llenar fácilmente Elfeed agregando manualmente las URLs de los feeds en tu archivo init.el, ya que Elfeed tiene una variable “elfeed-feeds” que rastrea. Esto le dice a Elfeed qué feeds buscar y mostrar en su pantalla de resumen.
Por ejemplo, este es un fragmento de mi archivo init.el.
(setq elfeed-feeds
'("https://feeds.maketecheasier.com/MakeTechEasier"
"https://solar.lowtechmagazine.com/feeds/all-en.atom.xml"
"https://old.reddit.com/r/f1technical.rss"))Setq es una función de Emacs que establece el valor de una variable particular. En este caso, está configurando la variable elfeed-feeds con tres enlaces de feeds como valores.
A partir de ahí, Elfeed añadirá automáticamente esos enlaces a su base de datos interna, luego cargará la próxima vez que ejecutes el programa.

Agregando un feed RSS dentro de Emacs
Otra forma de llenar Elfeed es dándole enlaces de feeds mientras está en funcionamiento. Esto te permite actualizar activamente tu lista de feeds con enlaces RSS sin recargar Emacs.
Para hacer esto, presiona Alt + X para abrir el búfer de comandos. Escribe elfeed-add-feed y presiona Enter. Elfeed te pedirá que proporciones la URL del feed que deseas cargar.

En mi caso, estoy proporcionando nuestra URL de feed a Elfeed para recibir actualizaciones diarias sobre los últimos artículos de tecnología.
Copio la URL del feed y presiono Ctrl + Y en el aviso de URL para pegar el enlace en Emacs. Una vez pegado, solo necesito presionar Enter para confirmar la URL del feed en Elfeed.

También lee: Cómo renombrar archivos fácilmente en Linux
Cómo etiquetar y filtrar feeds automáticamente en Emacs
Además de listar y ver feeds RSS, Elfeed también puede realizar una serie de funciones que te permitirán ajustar finamente tu lista de feeds.
Una de esas funciones interesantes es el etiquetado automático. Esta característica te permite etiquetar inmediatamente las entradas RSS que provienen de un feed específico.
Por ejemplo, si tienes múltiples feeds sobre un cierto tema, puedes configurarlos para que todos tengan la misma etiqueta, facilitando y haciendo intuitivo el proceso de clasificación a través de múltiples feeds en la pantalla de resumen.
Para hacer esto, edita los feeds RSS en tu archivo init.el. Echa un vistazo a este breve ejemplo.
(setq elfeed-feeds
'("https://feeds.maketecheasier.com/MakeTechEasier" tech news)
("https://solar.lowtechmagazine.com/feeds/all-en.atom.xml" tech)
("https://old.reddit.com/r/f1technical.rss" tech f1)))Para etiquetar automáticamente un feed RSS, necesitas hacer dos cosas a tu formato predeterminado de elfeed-feeds:
- Encierra el enlace del feed entre paréntesis. Esto le dice a
elfeed-feedsque esta entrada específica en la variable tiene múltiples partes. - Proporciona una palabra que actuará como tu etiqueta para ese enlace particular. Puedes incluir múltiples etiquetas siempre que las separes con un espacio.

Filtrando tu feed RSS en Elfeed
Estas etiquetas funcionan en conjunto con el potente sistema de filtrado de Elfeed. Esto te permite agrupar tus feeds RSS basándote solo en etiquetas.
Por ejemplo, si tienes feeds RSS etiquetados como “noticias”, “noticias tecnología” y “noticias juegos”, Elfeed te permite agrupar todos ellos bajo la etiqueta “noticias”.
Para filtrar tu lista de feeds, presiona S mientras estás en Elfeed para abrir el aviso de filtro de Elfeed. Por defecto, el aviso contiene lo siguiente:
@6-months-ago +unread- El símbolo @ indica un rango de fechas. Esto podría ser una fecha absoluta como “2022-02-22” o una relativa como “hace 3 días”.
- El símbolo “+” es un operador de etiqueta que le dice a Elfeed que incluya explícitamente todos los feeds que tienen esta etiqueta.

Con eso en mente, considera el siguiente feed RSS.
[0](setq elfeed-feeds
[1] '("https://feeds.maketecheasier.com/MakeTechEasier" tech news)
[2]("https://solar.lowtechmagazine.com/feeds/all-en.atom.xml" tech)
[3]("https://old.reddit.com/r/f1technical.rss" tech f1)
[4]("https://www.autosport.com/rss/f1/photos/" f1)
[5]("https://www.philstar.com/rss/world" news)))Para filtrar la etiqueta “tecnología”, escribe “+tech” en el aviso de filtro de Elfeed para mostrar los primeros tres enlaces en el búfer de resumen de Elfeed. Sin embargo, si agregas “+news”, Elfeed mostrará la primera y la quinta etiqueta en su lugar.
Sabiendo esto, puedes ser más específico con tu lógica de filtrado. Por ejemplo, si deseas incluir todos los enlaces de tecnología pero sin “f1”, puedes escribir lo siguiente:
+tech -f1Cómo etiquetar automáticamente feeds según la URL
Otra forma de etiquetar automáticamente las entradas RSS en Elfeed es clasificarlas según la URL. Esto es útil si estás usando Elfeed para suscribirte a feeds RSS que tienen una estructura de URL similar.

Para hacer eso, usa el elfeed-new-entry-hook de Elfeed. Esta es una función hook que ejecuta un comando personalizado basado en condiciones específicas. Esta función se ejecutará cada vez que se agregue una entrada utilizando el comando elfeed-add-feed.
Puedes usar la función elfeed-make-tagger dentro de ese hook. Esta es una función general que etiqueta enlaces según las opciones que configures. Así, combinar las dos funciones para crear etiquetado automático puede verse algo así:
(add-hook 'elfeed-new-entry-hook
(elfeed-make-tagger :feed-url"medium\.com"
:add '(medium)))
Esa función etiquetará automáticamente cualquier enlace que contenga el slug “medium.com.”
También puedes ser más específico con las opciones que configures con elfeed-make-tagger. Por ejemplo, puedes etiquetar un feed según la URL y filtrar entradas que sean más antiguas que tres meses:
(add-hook 'elfeed-new-entry-hook
(elfeed-make-tagger :feed-url"medium\.com"
:before"hace 3 meses"
:add 'medium))Cómo crear colores y fuentes personalizadas para etiquetas
Además del etiquetado automático, también puedes personalizar cómo se ve Elfeed según la etiqueta con la que está tratando. Esto es útil si deseas que los feeds con una etiqueta específica se destaquen.

Para hacer eso, necesitas redefinir la función elfeed-search-face-alist. Este es el comando que Elfeed utiliza para cambiar la apariencia del búfer de resumen. Así, para redefinir esta función, puedes usar las funciones defface y push:
- La función defface crea una nueva “cara” para Emacs. La “cara” es un conjunto de valores que puede contener tanto fuentes de caracteres como colores de fondo.
- La función push, por otro lado, agrega una definición a un comando existente en Emacs.
Con eso en mente, puedes combinar estas funciones para crear una “cara” personalizada para Elfeed. Por ejemplo, esta es una cara personalizada que resalta la etiqueta f1 en rojo.
(defface elfeed-face-tag-f1
'((t :foreground"#f00"))
"Esta es una cara de fuente personalizada para la etiqueta F1 en Elfeed.")
(push '(f1 elfeed-face-tag-f1)
elfeed-search-face-alist)¡Felicidades! Ahora sabes cómo usar Emacs como un lector de RSS con Elfeed. Además, ahora tienes una idea básica de cómo personalizar y automatizar Elfeed para satisfacer las necesidades de tus feeds RSS.
Si toda esta discusión te hizo pensar en lo que puedes hacer más con Emacs, puedes consultar nuestro artículo sobre los mejores paquetes de productividad para Emacs.
También lee: Cómo solucionar el problema de no poder escribir en la terminal en Linux
Preguntas Frecuentes
1. ¿Cómo puedo eliminar un feed en Elfeed?
Puedes eliminar un feed de dos maneras: eliminando la entrada del feed en tu archivo init.el o usando la función de personalización de Emacs para eliminarlo.
Para lo primero, eliminar un feed es solo cuestión de borrar la URL del feed en tu variable elfeed-feeds. Para lo segundo, sin embargo, necesitas presionar Alt + X para abrir el búfer de comandos. Desde aquí, necesitas escribir customize. Esto abrirá la ventana de personalización para Emacs.
Desde allí, escribe elfeed-feeds en el cuadro de búsqueda. Esto traerá todos los feeds a los que estás suscrito actualmente.
Esto te permite eliminar un feed haciendo clic en los botones DEL al lado del enlace del feed. Una vez hecho, puedes hacer clic en los botones Aplicar y Guardar debajo de la barra de búsqueda para actualizar tu feed.
2. ¿Qué puedo hacer si agrego todos mis feeds en Elfeed y no se actualizan?
Elfeed no actualiza automáticamente los enlaces de los feeds por ti. Para obtener las últimas entradas en tus feeds, presiona Shift + G para iniciar una actualización en todos los feeds a los que estás suscrito actualmente.
Además, si deseas actualizar solo un feed RSS específico, ejecuta la función elfeed-update-feed.
3. Mis etiquetas automáticas no parecen funcionar. ¿Cómo puedo solucionarlo?
Esto probablemente se deba a que tienes etiquetas en conflicto para el mismo feed RSS. Eso puede suceder si has incluido la misma URL de feed tanto en tus feeds manuales como automáticos.
Para solucionar esto, debes eliminar ya sea tu entrada manual en tu archivo init.el o la entrada de feed automático en el búfer de personalización de Emacs.