Comment utiliser Emacs pour RSS avec Elfeed

Image mise en avant Emacs Rss 00

Emacs est un logiciel très extensible. Il peut être votre éditeur de texte, votre client de messagerie et même votre lecteur USENET. Avec Elfeed, vous pouvez également utiliser Emacs comme votre lecteur de flux RSS.

Table des matières

  • Qu’est-ce qu’Elfeed ?
  • Pourquoi utiliser un lecteur de flux dans Emacs ?
  • Installer Elfeed sur Emacs
  • Configurer votre premier flux RSS dans Emacs
  • Comment taguer et filtrer automatiquement les flux dans Emacs
  • Comment taguer automatiquement les flux en fonction de l’URL
  • Comment créer des couleurs et des polices personnalisées pour les tags
  • Questions fréquentes

Lisez aussi : 5 des meilleures applications de lecteur RSS pour macOS

Qu’est-ce qu’Elfeed ?

Elfeed est un lecteur de flux RSS léger mais puissant écrit pour Emacs. Il utilise un système simple basé sur des tags pour trier vos flux RSS. Non seulement cela, mais il est également livré avec un puissant système de tagging “basé sur des hooks” qui vous permet de taguer automatiquement les flux en fonction de leur contenu.

Résumé Elfeed Emacs Rss 02

Cela rend Elfeed utile pour les personnes qui suivent de nombreux flux RSS et cherchent un moyen de trier automatiquement leurs flux.

Lisez aussi : Comment utiliser Emacs pour écouter de la musique avec EMMS

Pourquoi utiliser un lecteur de flux dans Emacs ?

Emacs fonctionne sur la notion d’interopérabilité, car Emacs prend des données et permet de les interpréter de différentes manières.

Interopérabilité Emacs Rss 03

Bien que vous puissiez utiliser Emacs uniquement pour éditer du texte, pouvoir accéder à votre email tout en éditant du texte, par exemple, peut vous permettre d’utiliser sans effort le texte que vous écrivez dans l’email que vous composez.

Email RSS Emacs Rss 04

C’est pourquoi intégrer votre lecteur de flux RSS dans Emacs peut être séduisant. Cela vous permettrait d’utiliser les puissantes capacités d’édition d’Emacs pour manipuler vos flux et d’autres fonctions dans Emacs.

Installer Elfeed sur Emacs

Installer Elfeed est vraiment simple. Il est disponible dans le dépôt GNU ELPA, donc vous pouvez y accéder sans aucune modification dans votre fichier init.el.

Elfeed installé Emacs Rss 05

Pour installer Elfeed, appuyez sur Alt + X pour faire apparaître le tampon de commande, puis tapez package-install. Vous devez fournir elfeed comme nom de package et appuyer sur Entrée. Emacs téléchargera le code source d’Elfeed et le compilera immédiatement après.

Configurer votre premier flux RSS dans Emacs

Une fois installé, accédez à Elfeed en appuyant sur Alt + X et en tapant elfeed dans le tampon de commande. Cela chargera un tampon Elfeed vide.

Elfeed propre Emacs Rss 06

Il existe deux façons d’ajouter un flux RSS à Elfeed :

  • Modifier manuellement votre fichier init.el

  • Sans Emacs

Ajouter un flux RSS manuellement dans Elfeed

Vous pouvez facilement peupler Elfeed en ajoutant manuellement les URL des flux dans votre fichier init.el, car Elfeed a une variable “elfeed-feeds” qu’il suit. Cela indique à Elfeed quels flux récupérer et afficher dans son écran d’aperçu.

Par exemple, voici un extrait de mon fichier 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 est une fonction Emacs qui définit la valeur d’une variable particulière. Dans ce cas, elle définit la variable elfeed-feeds avec trois liens de flux comme valeurs.

À partir de là, Elfeed ajoutera automatiquement ces liens dans sa base de données interne, puis les chargera la prochaine fois que vous exécuterez le programme.

Elfeed avec des flux Emacs Rss 07

Ajouter un flux RSS dans Emacs

Une autre façon de peupler Elfeed est de lui donner des liens de flux pendant qu’il fonctionne. Cela vous permet de mettre à jour activement votre liste de flux avec des liens RSS sans recharger Emacs.

Pour ce faire, appuyez sur Alt + X pour ouvrir le tampon de commande. Tapez elfeed-add-feed et appuyez sur Entrée. Elfeed vous demandera de fournir l’URL du flux que vous souhaitez charger.

Zoom URL Emacs Rss 08

Dans mon cas, je fournis notre URL de flux à Elfeed pour recevoir des mises à jour quotidiennes sur les derniers articles technologiques.

Je copie l’URL du flux et j’appuie sur Ctrl + Y dans l’invite d’URL pour coller le lien dans Emacs. Une fois collé, il me suffit d’appuyer sur Entrée pour valider l’URL du flux dans Elfeed.

Flux Maketecheasier Emacs Rss 09

Lisez aussi : Comment renommer facilement des fichiers sous Linux

Comment taguer et filtrer automatiquement les flux dans Emacs

En plus de lister et de visualiser les flux RSS, Elfeed peut également effectuer un certain nombre de fonctions qui vous permettront d’affiner votre liste de flux.

L’une de ces fonctions intéressantes est le tagging automatique. Cette fonctionnalité vous permet de taguer immédiatement les entrées RSS provenant d’un flux spécifique.

Par exemple, si vous avez plusieurs flux sur un certain sujet, vous pouvez définir pour qu’ils aient tous le même tag, ce qui facilite et rend intuitif le tri de plusieurs flux dans l’écran de résumé.

Pour ce faire, modifiez les flux RSS dans votre fichier init.el. Jetez un œil à cet exemple bref.

(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)))

Pour taguer automatiquement un flux RSS, vous devez faire deux choses à votre format par défaut elfeed-feeds :

  • Enveloppez le lien du flux entre parenthèses. Cela indique à elfeed-feeds que cette entrée spécifique dans la variable a plusieurs parties.
  • Fournissez un mot qui agira comme votre tag pour ce lien particulier. Vous pouvez inclure plusieurs tags tant que vous les séparez par un espace.

Flux automatiquement tagués Emacs Rss 10

Filtrer votre flux RSS dans Elfeed

Ces tags fonctionnent en conjonction avec le puissant système de filtrage d’Elfeed. Cela vous permet de regrouper vos flux RSS en fonction des tags uniquement.

Par exemple, si vous avez des flux RSS tagués comme “news”, “news tech” et “news gaming”, Elfeed vous permet de les regrouper tous sous le tag “news”.

Pour filtrer votre liste de flux, appuyez sur S pendant que vous êtes dans Elfeed pour faire apparaître l’invite de filtre d’Elfeed. Par défaut, l’invite contient ce qui suit :

@6-months-ago +unread
  • Le symbole @ indique une plage de dates. Cela peut être une date absolue comme “2022-02-22” ou une date relative comme “3-days-ago”.
  • Le symbole “ + “ est un opérateur de tag qui indique à Elfeed d’inclure explicitement tous les flux ayant ce tag.

Filtre par défaut Emacs Rss 11

Avec cela à l’esprit, considérez le flux RSS suivant.

[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)))

Pour filtrer le tag “tech”, tapez “+tech” dans l’invite de filtre d’Elfeed pour afficher les trois premiers liens dans le tampon de résumé d’Elfeed. Cependant, si vous ajoutez “+news”, Elfeed affichera le premier et le cinquième tag à la place.

Sachant cela, vous pouvez être plus spécifique avec votre logique de filtrage. Par exemple, si vous souhaitez inclure tous les liens tech mais sans “f1”, vous pouvez taper ce qui suit :

+tech -f1

Comment taguer automatiquement les flux en fonction de l’URL

Une autre façon de taguer automatiquement les entrées RSS dans Elfeed est de les trier en fonction de l’URL. Cela est utile si vous utilisez Elfeed pour vous abonner à des flux RSS ayant une structure d’URL similaire.

Page Web Medium Emacs Rss 12

Pour ce faire, utilisez le elfeed-new-entry-hook d’Elfeed. C’est une fonction de hook qui exécute une commande personnalisée en fonction de conditions spécifiques. Cette fonction s’exécutera chaque fois qu’une entrée est ajoutée en utilisant la commande elfeed-add-feed.

Vous pouvez utiliser la fonction elfeed-make-tagger dans ce hook. C’est une fonction générale qui tague les liens en fonction des options que vous définissez. Ainsi, combiner les deux fonctions pour créer un tagging automatique peut ressembler à ceci :

(add-hook 'elfeed-new-entry-hook  
(elfeed-make-tagger :feed-url"medium\.com"  
:add '(medium)))

Flux Medium Emacs Rss 13

Cette fonction taguera automatiquement tout lien contenant le slug “medium.com”.

Vous pouvez également être plus spécifique avec les options que vous définissez avec elfeed-make-tagger. Par exemple, vous pouvez taguer un flux en fonction de l’URL et filtrer les entrées plus anciennes que trois mois :

(add-hook 'elfeed-new-entry-hook  
(elfeed-make-tagger :feed-url"medium\.com"  
:before"3 months ago"  
:add 'medium))

Comment créer des couleurs et des polices personnalisées pour les tags

En plus du tagging automatique, vous pouvez également personnaliser l’apparence d’Elfeed en fonction du tag qu’il traite. Cela est utile si vous souhaitez que les flux avec un tag spécifique se démarquent.

Visages personnalisés Emacs Rss 14

Pour ce faire, vous devez redéfinir la fonction elfeed-search-face-alist. C’est la commande qu’Elfeed utilise pour changer l’apparence du tampon de résumé. Ainsi, pour redéfinir cette fonction, vous pouvez utiliser les fonctions defface et push :

  • La fonction defface crée un nouveau “visage” pour Emacs. Le “visage” est un ensemble de valeurs qui peut contenir à la fois des polices de caractères et des couleurs de fond.
  • La fonction push, quant à elle, ajoute une définition à une commande existante dans Emacs.

Avec cela à l’esprit, vous pouvez combiner ces fonctions pour créer un “visage” personnalisé pour Elfeed. Par exemple, voici un visage personnalisé qui met en surbrillance le tag f1 en rouge.

(defface elfeed-face-tag-f1  
  '((t :foreground"#f00"))  
"Ceci est une police de caractère personnalisée pour le tag F1 dans Elfeed.")  
  
(push '(f1 elfeed-face-tag-f1)  
      elfeed-search-face-alist)

Félicitations ! Vous savez maintenant comment utiliser Emacs comme lecteur RSS avec Elfeed. De plus, vous avez également une idée de base sur la façon de personnaliser et d’automatiser Elfeed pour répondre aux besoins de vos flux RSS.

Si toute cette discussion vous a fait penser à ce que vous pouvez faire de plus avec Emacs, vous pouvez consulter notre article sur les meilleurs packages de productivité pour Emacs.

Lisez aussi : Comment résoudre le problème de ne pas pouvoir taper dans le terminal sous Linux

Questions fréquentes

1. Comment puis-je supprimer un flux dans Elfeed ?

Vous pouvez supprimer un flux de deux manières : supprimer l’entrée du flux dans votre fichier init.el ou utiliser la fonction de personnalisation d’Emacs pour le supprimer.

Pour la première, supprimer un flux consiste simplement à supprimer l’URL du flux dans votre variable elfeed-feeds. Pour la seconde, vous devez appuyer sur Alt + X pour ouvrir le tampon de commande. À partir de là, vous devez taper customize. Cela ouvrira la fenêtre de personnalisation pour Emacs.

À partir de là, tapez elfeed-feeds dans la boîte de recherche. Cela affichera tous les flux auxquels vous êtes actuellement abonné.

Cela vous permet de supprimer un flux en cliquant sur les boutons DEL à côté du lien du flux. Une fois terminé, vous pouvez cliquer sur les boutons Appliquer et Enregistrer en dessous de la barre de recherche pour mettre à jour votre flux.

2. Que puis-je faire si j’ajoute tous mes flux dans Elfeed et qu’ils ne se rafraîchissent pas ?

Elfeed ne rafraîchit pas automatiquement les liens de flux pour vous. Pour récupérer les dernières entrées de vos flux, appuyez sur Shift + G pour initier une mise à jour de tous les flux actuellement abonnés.

De plus, si vous souhaitez uniquement mettre à jour un flux RSS spécifique, exécutez la fonction elfeed-update-feed.

3. Mes tags automatiques ne semblent pas fonctionner. Comment puis-je résoudre cela ?

C’est probablement parce que vous avez des tags conflictuels pour le même flux RSS. Cela peut se produire si vous avez inclus la même URL de flux à la fois dans vos flux manuels et automatiques.

Pour résoudre cela, vous devez supprimer soit votre entrée manuelle dans votre fichier init.el, soit l’entrée de flux automatique dans le tampon de personnalisation d’Emacs.