Posts tagged "elisp,":
Limpiando Elfeed
Continuando mi camino en el aprendizaje de Emacs Lisp, se me ocurrió hacer una función que marcara como leídos todas las entradas de mi feed de Elfeed que provinieran de una fuente específica.
En concreto, el feed de Richard Stallman tiene un volumen muchísimo mayor que el resto de feeds que sigo, así que quería poder marcar como leídas todas las noticias de RMS sin tener que ir una a una, ya que hay centenares.
Una opción sería usar una macro de teclado, pero para mejorar mi Elisp
decidí pensar en una manera de hacerlo con código. Como me sonaba que
la función re-search-forward hacía justo lo que yo quería, la
combiné con la función que marca un feed como leído (gracias a C-h k
m dentro de Elfeed conseguí saber el nombre de la función) y con dos
líneas ya tenía todo listo.
(while (re-search-forward "Richard")
(elfeed-search-untag-all-unread))
Ejecutando el código con M-: solucioné el problema instantáneamente.
Publicación de un paquete en MELPA
El otro día estaba mirando la lista de paquetes de MELPA, y vi que había varios paquetes que añadían al calendario de Emacs los días festivos de varios países. Sin embargo no encontré por ningún lado los festivos de España, y pensé en hacer yo mismo el paquete.
Primer paso: creación del paquete
Como es un paquete muy simple, no me llevó mucho tiempo. Me basé en el paquete de mexican-holidays y copié su estructura. Luego fui a la página del gobierno donde están publicados los festivos de 2023.
Segundo paso: formato del paquete
Una vez creado, le di al paquete el formato requerido por
MELPA. Siguiendo las instrucciones de
https://github.com/melpa/melpa/blob/master/README.md#contributing y
https://github.com/melpa/melpa/blob/master/CONTRIBUTING.org.
Al ser un paquete de un sólo archivo, sin dependencias, lo único que hice fue pasarle el package-lint y checkdoc para comprobar que todo estaba correcto y con buena documentación y estructura.
Tercer paso: creación del recipe y pull request
Para integrar el paquete en MELPA, hay que hacer un git clone del
repositorio de MELPA, añadir un archivo llamado recipe donde se
incluye el nombre del paquete así como el repositorio fuente, y por
último solicitar un pull request en Github.
Cuarto paso: comprobación del merge
Antes de hacer un merge en MELPA, un revisor comprobará que el paquete cumple todos los requerimientos, hará algún comentario por si falta algo y luego finalmente se hará el merge. En mi caso me faltaba añadir el archivo de licencia, tras añadirlo el paquete fue incluido en MELPA.
Conclusión
Todo el proceso se realizó en menos de 24 horas. Todas las instrucciones fueron muy claras, y el revisor muy amable. Incluso sin saber mucho de elisp, he podido crear y contribuir con un paquete al entorno de GNU Emacs.
