hamacs/ha-feed-reader.org
Howard Abrams 6d92980311 Migration from ~/other to ~/src
Why was it any other way?
2024-10-19 13:34:01 -07:00

200 lines
9.6 KiB
Org Mode
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#+title: My RSS Feeds
#+author: Howard Abrams
#+date: 2018-08-08 August
#+tags: emacs
A literate programming file for configuring =elfeed= in Emacs.
#+begin_src emacs-lisp :exports none
;;; ha-config --- ElFeed configuration. -*- lexical-binding: t; -*-
;;
;; © 2020-2023 Howard X. Abrams
;; Licensed under a Creative Commons Attribution 4.0 International License.
;; See http://creativecommons.org/licenses/by/4.0/
;;
;; Author: Howard X. Abrams <http://gitlab.com/howardabrams>
;; Maintainer: Howard X. Abrams
;; Created: September 10, 2020
;;
;; This file is not part of GNU Emacs.
;;
;; *NB:* Do not edit this file. Instead, edit the original literate file at:
;; ~/src/hamacs/ha-feed-reader.org
;; Using `find-file-at-point', and tangle the file to recreate this one .
;;
;;; Code:
#+end_src
* Configuring Elfeed
Let's get our feeds from a collection of org mode files. By default, Doom configures =rmh-elfeed-org-files= to [[file:~/Dropbox/org/elfeed.org][elfeed.org]] in =org-directory=, so that will be fine.
#+begin_src emacs-lisp
(use-package elfeed
:config
;; While I would like to share the /status/ of my reads, so ...
(setq elfeed-db-directory "~/dropbox/.elfeed/")
;; Let's limit what is initially displayed, and then expand it:
(setq elfeed-search-filter "@6-months-ago +unread -science -funny")
;; While not an elfeed-specific variable, this make reading articles
;; with images easier:
(setq pixel-scroll-precision-mode t)
(defvar ha-elfeeds-title
(concat (all-the-icons-faicon "rss") " Feed Reader"))
(major-mode-hydra-define elfeed-search-mode
(:title ha-elfeeds-title)
("Feeds"
(("U" (elfeed-search-fetch 4) "Refresh Feeds")
("u" elfeed-update "Update Screen")
("f" elfeed-search-live-filter "Filter")
("F" elfeed-search-clear-filter "Clear Filter")
("X" elfeed-unjam "Unjam"))
"Entry"
(("r" elfeed-search-untag-all-unread "Mark read" :color pink)
("R" ha-elfeed-tag-unread "Mark read/refresh")
("y" elfeed-search-yank "Copy URL"))))
(major-mode-hydra-define elfeed-show-mode
(:title ha-elfeeds-title)
("Entry"
(("n" elfeed-show-next "Next Entry" :color pink)
("p" elfeed-show-prev "Previous Entry" :color pink))
"Read"
(("b" elfeed-show-visit "Show in EWW")
("B" elfeed-show-visit-gui "Show in Browser")
("y" elfeed-show-yank "Copy URL"))
"Navigation"
(("o" link-hint-open-link "Open Link")
("q" bury-buffer "Close")
("Q" delete-window "Close Window")))))
(defun ha-elfeed-tag-unread ()
(interactive)
(elfeed-search-untag-all 'unread)
(elfeed-search-update))
#+end_src
According to Ben Maughan and [[http://pragmaticemacs.com/emacs/to-eww-or-not-to-eww/][this Pragmatic Emacs essay]], we could easily browse an article in the GUI browser instead of EWW with capital B:
#+begin_src emacs-lisp
(defun elfeed-show-visit-gui ()
"Wrapper for elfeed-show-visit to use gui browser instead of eww"
(interactive)
(let ((browse-url-generic-program "/usr/bin/open"))
(elfeed-show-visit t)))
#+end_src
And some global keys to display them in the =apps= menu:
#+begin_src emacs-lisp
(ha-leader "a f" `("feed reader" . ,(ha-app-perspective "elfeed" #'elfeed)))
#+end_src
* The Feeds :elfeed:
The [[https://github.com/remyhonig/elfeed-org][elfeed-org]] project configures =elfeed= to read the RSS feeds from an Org file … like this one!
#+begin_src emacs-lisp
(use-package elfeed-org
:after elfeed
:config
(setq rmh-elfeed-org-files (list (f-join hamacs-source-dir "ha-feed-reader.org")))
(elfeed-org))
#+end_src
The feeds that I would to read on Emacs involves longer essays, so Im decided to trim the list down to avoid duplications with the RSS reader on my phone.
** Software Development :dev:
*** Emacs :emacs:
**** [[https://planet.emacslife.com/atom.xml][Planet Emacslife]]
Currently the best [[https://planet.emacslife.com/][Emacs weblog]] as an aggregator of all things Emacscy. Lots of duplication with what I already follow, so I may have trim things down.
**** [[http://planet.emacsen.org/atom.xml][Planet Emacsen]]
Was the best overall [[http://planet.emacsen.org/][Emacs weblog]] (in the traditional sense), but has since been replaced. I'll leave it here for a bit.
**** [[http://sachachua.com/blog/category/emacs-news/feed][Sacha Chua]]
Her curated summary of the world of Emacs is quite helpful (to make sure I don't miss something).
**** [[http://www.masteringemacs.org/feed/][Mickey Petersen]]
Wrote the wonderful book, [[https://www.masteringemacs.org/][Mastering Emacs]].
**** [[https://www.with-emacs.com/rss.xml][With-Emacs]]
Has had some good essays with a bent toward modern updates.
**** [[http://emacshorrors.com/feed.atom][Emacs Horrors Blog]]
Lovely peelings of the onion's layers.
**** [[https://xenodium.com/rss.xml][Álvaro Ramírez]]
**** [[http://pragmaticemacs.com/feed/][Ben Maughan]]
The /Pragmatic Emacs/ blog.
**** [[http://endlessparentheses.com/atom.xml][Endless Parentheses]]
Artur Malabarba's blog mostly about Emacs.
**** [[http://emacs-fu.blogspot.com/feeds/posts/default][Emacs Fu]]
As [[http://emacs-fu.blogspot.com/2008/12/welcome-to-emacs-fu.html][stated here]], a blog mostly dedicated to Emacs tips and tricks.
**** [[http://emacsredux.com/atom.xml][Emacs Redux]]
Bozhidar Batsov's [[http://emacsredux.com][Emacs-focused blog]]. While it hasn't been updated in about a year (end of 2017), we'll leave it here, as well as his newer, personally-focused blog.
**** [[http://nullprogram.com/feed/][Christopher Wellons]]
The /null program/ blog, has discussed technical aspects of Emacs, including the use of =elfeed=, which is my current favorite way to read my RSS feeds.
**** [[http://www.lunaryorn.com/feed.atom][Sebastian Wiesner]]
A personal blog of a Scala engineer that uses Emacs on MacOS.
**** [[http://kitchingroup.cheme.cmu.edu/blog/feed/atom][John Kitchin Group]]
**** [[http://orgmode.org][Org Mode Announcements]]
**** [[http://yqrashawn.com/feeds/lazyblorg-all.atom_1.0.links-and-teaser.xml][infin]]
While just starting out, this blogger from China is off to a good start.
**** [[http://mbork.pl/?action=rss][Marcin Borkowski]]
The Emacs Polish professor and author of =mbork.pl=, and new book on intermediate Lisp programming.
**** [[https://irreal.org/blog/?feed=rss2][Irreal]]
Jon Sander's blog mostly on Emacs.
**** [[https://oremacs.com/atom.xml][(or emacs]]
**** [[https://tsdh.org/rss.xml][Tassilo Horn]]
A self-proclaimed Emacs addict and Free Software enthusiast from Koblenz, Germany. While the blog is currently short, I have high hopes.
**** [[https://emacstil.com/feed.xml][Emacs TIL]]
An Emacs-learning blog by Junji Zhi.
**** [[https://lepisma.xyz/atom.xml][(car nil)]]
Abhinav Tushar's blog is heavily Emacs and org-focused.
**** [[https://olddeuteronomy.github.io/index.xml][Emacs Cat]]
A new blog about Emacs.
**** [[https://tdodge.consulting/blog/rss.xml][Tyler Dodge]]
Intrigued with Emacs =org-assistant= project, but a good Emacs blog.
*** Programming :programming:
**** [[http://swannodette.github.com/atom.xml][David Nolen]] :clojure:clojurescript:
While he hasn't updated the blog in a while, keep an eye on his [[http://swannodette.github.com][Github projects]].
**** [[http://gigasquidsoftware.com/atom.xml][Carin Meyer]] :clojure:
Thoughtful and inspirational, her creative projects are always fun to explore.
**** [[http://blog.fogus.me/feed/][Mike Fogus]] :clojure:clojurescript:
/Send More Paramedics/ blog. Wrote /Functional JavaScript/ and, of course, /The Joy of Clojure/.
**** [[http://batsov.com/atom.xml][Bozhidar Batsov]] :ruby:cider:emacs:
Most prolific engineer, who ran [[http://emacsredux.com][Emacs Redux]], is the principal mind behind the wonderful Cider project.
**** [[https://medium.com/feed/@hlship/][Howard Lewis Ship]] :clojure:
Personal friend who often has fun interesting projects to keep tabs.
**** [[https://cestlaz.github.io/rss.xml][C'est la Z]]
Mike Zamansky's posts on Emacs and computer education.
** Role Playing Games :rpg:dnd:
Started playing D&D when I was twelve, and while it has a special place in my heart, I actually am
*** [[https://www.rascal.news/rss/][Rascal News]]
The alternative, independent news about Indie and other RPGs.
*** [[https://slyflourish.com/index.xml][Sly Flourish]]
The Lazy DM is D&D-focused.
*** [[https://dmdavid.com/feed/][DM David]]
Generally good DMing advice.
*** [[https://soloist.substack.com/feed][The Soloist]]
A nice blog about Solo RPGs.
*** [[https://solotabletop.blogspot.com/feeds/posts/default?alt=rss][Solo Tabletop Blog]]
From the maker of the [[https://www.drivethrurpg.com/en/product/424108/GEMulator?affiliate_id=377194][GEmulator]].
** Misc :misc:
*** [[https://medium.com/feed/the-long-now-foundation][The Long Now]]
Always been fascinated with the ideas associated with making a 10,000 year clock.
*** [[https://waitbutwhy.com/feed][Wait, But Why?]]
Has some good, thought-provoking essays.
* Technical Artifacts :noexport:
Let's /provide/ a name so we can =require= the file:
#+begin_src emacs-lisp :exports none
(provide 'ha-feed-reader)
;;; ha-feed-reader.el ends here
#+end_src
#+description: A literate programming file for configuring elfeed.
#+property: header-args:sh :tangle no
#+property: header-args:emacs-lisp :tangle yes
#+property: header-args :results none :eval no-export :comments no
#+options: num:nil toc:t todo:nil tasks:nil tags:nil date:nil
#+options: skip:nil author:nil email:nil creator:nil timestamp:nil
#+infojs_opt: view:nil toc:t ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js