Emacs est un logiciel très extensible. Il peut s’agir de votre éditeur de texte, de votre client de messagerie et même de votre lecteur USENET. Avec Elfeed, vous pouvez également utiliser Emacs comme lecteur de flux RSS.
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 balises pour trier vos flux RSS. Non seulement cela, il est également livré avec un puissant système de marquage « basé sur les crochets » qui vous permet de marquer automatiquement les flux en fonction de leur contenu.
Cela rend Elfeed utile pour les personnes qui suivent de nombreux flux RSS et recherchent un moyen de trier automatiquement leurs flux.
Pourquoi utiliser un lecteur de flux dans Emacs ?
Emacs fonctionne dans la notion d’interopérabilité, car Emacs prend des données et leur permet d’être interprétées de différentes manières.
Bien que vous puissiez utiliser Emacs pour éditer exclusivement du texte, le fait de pouvoir accéder à votre e-mail tout en éditant du texte, par exemple, peut vous permettre d’utiliser de manière transparente le texte que vous écrivez dans l’e-mail que vous composez.
C’est pourquoi l’intégration de votre lecteur de flux RSS dans Emacs peut être séduisante. 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
L’installation d’Elfeed est très simple. Il est disponible auprès du GNU-ELPA référentiel, afin que vous puissiez y accéder sans aucune modification dans votre fichier init.el.
Pour installer Elfeed, appuyez sur Autre + X pour afficher le tampon de commandes, puis tapez package-install
. Vous devez fournir elfeed
comme nom de package et appuyez sur Entrer. 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 Autre + X et dactylographie elfeed
dans le tampon de commandes. Cela chargera un tampon Elfeed vide.
Il existe deux façons d’ajouter un flux RSS à Elfeed :
- Modifiez manuellement votre fichier init.el
Ajouter manuellement un flux RSS dans Elfeed
Vous pouvez facilement remplir Elfeed en ajoutant manuellement les URL de 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, ceci est 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, il 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.
Ajouter un flux RSS dans Emacs
Une autre façon de remplir Elfeed est de lui donner des liens de flux pendant son exécution. Cela vous permet de mettre à jour activement votre liste de flux avec des liens RSS sans recharger Emacs.
Pour ce faire, appuyez sur Autre + X pour ouvrir le tampon de commandes. Taper elfeed-add-feed
et appuyez sur Entrer. Elfeed vous demandera de fournir l’URL du flux que vous souhaitez charger.
Dans mon cas, je fournis notre URL du flux à Elfeed pour recevoir des mises à jour quotidiennes sur les derniers articles technologiques.
Je copie l’URL du flux et j’appuie sur Ctrl + Oui dans l’invite d’URL pour coller le lien vers Emacs. Une fois collé, il me suffit d’appuyer Entrer pour valider l’URL du flux dans Elfeed.
Comment baliser et filtrer automatiquement les flux dans Emacs
Outre la liste et l’affichage des 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 marquage automatique. Cette fonctionnalité vous permet de baliser 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 qu’ils aient tous la même balise, ce qui facilite et 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 oeil à ce bref exemple.
(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 baliser automatiquement un flux RSS, vous devez effectuer deux opérations sur votre format de flux elfeed par défaut :
- Mettez le lien du flux entre parenthèses. Cela raconte
elfeed-feeds
que cette entrée spécifique dans la variable comporte plusieurs parties. - Fournissez un mot qui servira de balise pour ce lien particulier. Vous pouvez inclure plusieurs balises tant que vous séparez chacune d’elles par un espace.
Filtrage de votre flux RSS dans Elfeed
Ces balises fonctionnent en conjonction avec le puissant système de filtrage d’Elfeed. Cela vous permet de regrouper vos flux RSS uniquement en fonction des balises.
Par exemple, si vous avez des flux RSS étiquetés comme « actualités », « actualités tech » et « actualités jeux », Elfeed vous permet de tous les regrouper sous l’étiquette « actualités ».
Pour filtrer votre liste de flux, appuyez sur S dans Elfeed pour afficher l’invite de filtrage d’Elfeed. Par défaut, l’invite contient les éléments suivants :
- Le symbole @ indique une plage de dates. Il peut s’agir d’une date absolue telle que « 2022-02-22 » ou d’une date relative telle que « il y a 3 jours ».
- Le symbole « + » est un opérateur de balise qui indique à Elfeed d’inclure explicitement tous les flux qui ont cette balise.
Dans cet 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 la balise « tech », tapez « +tech » dans l’invite de filtre d’Elfeed pour afficher les trois premiers liens dans le tampon récapitulatif d’Elfeed. Cependant, si vous ajoutez « + news », Elfeed affichera la première et la cinquième balise à la place.
Sachant cela, vous pouvez être plus précis avec votre logique de filtrage. Par exemple, si vous souhaitez inclure tous les liens techniques mais sans « f1 », vous pouvez saisir ce qui suit :
Comment baliser automatiquement les flux en fonction de l’URL
Une autre façon de baliser automatiquement les entrées RSS dans Elfeed consiste à les trier en fonction de l’URL. Ceci est utile si vous utilisez Elfeed pour vous abonner à des flux RSS qui ont une structure d’URL similaire.
Pour ce faire, utilisez Elfeed elfeed-new-entry-hook
. Il s’agit d’une fonction hook qui exécute une commande personnalisée en fonction de conditions spécifiques. Cette fonction exécutera une commande personnalisée chaque fois qu’une entrée est ajoutée à l’aide de la elfeed-add-feed
commander.
Vous pouvez utiliser le elfeed-make-tagger
fonction dans ce crochet. Il s’agit d’une fonction générale qui balise les liens en fonction des options que vous définissez. Ainsi, combiner les deux fonctions pour créer un marquage automatique peut ressembler à ceci :
(add-hook 'elfeed-new-entry-hook (elfeed-make-tagger :feed-url "medium\\.com" :add '(medium)))
Cette fonction balisera automatiquement tout lien contenant le slug « medium.com ».
Vous pouvez également être plus précis avec les options que vous définissez avec elfeed-make-tagger
. Par exemple, vous pouvez à la fois baliser un flux en fonction de l’URL et filtrer les entrées datant de plus de 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 balises
Outre le marquage automatique, vous pouvez également personnaliser l’apparence d’Elfeed en fonction de la balise avec laquelle il traite. Ceci est utile si vous souhaitez que les flux avec une balise spécifique se démarquent.
Pour ce faire, vous devez redéfinir le elfeed-search-face-alist
une fonction. C’est la commande qu’Elfeed utilise pour changer l’apparence du tampon récapitulatif. Ainsi, pour redéfinir cette fonction, vous pouvez utiliser le defface
et push
les fonctions:
- le deffacer La fonction crée un nouveau « visage » pour Emacs. Le « visage » est un ensemble de valeurs pouvant contenir à la fois des polices de caractères et des couleurs d’arrière-plan.
- le pousser La fonction, d’autre part, ajoute une définition à une commande existante dans Emacs.
Dans cet esprit, vous pouvez combiner ces fonctions pour créer un « visage » personnalisé pour Elfeed. Par exemple, il s’agit d’un visage personnalisé qui met en surbrillance la balise f1 en rouge.
(defface elfeed-face-tag-f1 '((t :foreground "#f00")) "This is a custom font face for the F1 tag in Elfeed.") (push '(f1 elfeed-face-tag-f1) elfeed-search-face-alist)
Toutes nos félicitations! Vous savez maintenant comment utiliser Emacs comme lecteur RSS avec Elfeed. De plus, vous avez maintenant 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.
Questions fréquemment posées
1. Comment puis-je supprimer un flux dans Elfeed ?
Vous pouvez supprimer un flux de deux manières : supprimez l’entrée du flux dans votre fichier init.el ou utilisez la fonction de personnalisation d’Emacs pour le supprimer.
Pour le premier, la suppression d’un flux consiste simplement à supprimer l’URL du flux dans votre variable elfeed-feeds. Pour ce dernier, cependant, vous devez appuyer sur Autre + X pour ouvrir le tampon de commandes. De là, vous devez taper customize
. Cela ouvrira la fenêtre de personnalisation pour Emacs.
De là, tapez elfeed-feeds
dans le champ de recherche. Cela apportera tous les flux auxquels vous êtes actuellement abonné.
Cela vous permet de supprimer un flux en cliquant sur le DEL boutons à côté du lien de flux. Une fois terminé, vous pouvez cliquer sur le Appliquer et sauvegarder sous 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 s’actualisent pas ?
Elfeed n’actualise pas automatiquement les liens de flux pour vous. Pour récupérer les dernières entrées de vos flux, appuyez sur Changement + g pour lancer une mise à jour sur tous les flux actuellement abonnés.
De plus, si vous souhaitez uniquement mettre à jour un flux RSS spécifique, exécutez le elfeed-update-feed
une fonction.
3. Mes balises automatiques ne semblent pas fonctionner. Comment puis-je résoudre ça?
C’est probablement parce que vous avez des balises en conflit pour le même flux RSS. Cela peut se produire si vous avez inclus la même URL de flux dans vos flux manuels et automatiques.
Pour résoudre ce problème, 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.