Codebase for my homepage.
git clone git://vcs.sapka.me/michal-sapka-me
Log | Files | Refs

commit 5a9a6932fbaf3c4ac856fde711ac0e4e053282c8
parent 6167b416c60015af98dc22d6e4e326724b2b7038
Author: MichaƂ M. Sapka <michal@sapka.me>
Date:   Fri,  2 Jun 2023 22:37:48 +0200

feat: article for 2023-06-02

Acontent/2023/elfeed-literal-config.md | 64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+), 0 deletions(-)

diff --git a/content/2023/elfeed-literal-config.md b/content/2023/elfeed-literal-config.md @@ -0,0 +1,64 @@ +--- +title: "Literate configuration of Elfeed" +category: emacs +abstract: Setting up config inside an org file +date: 2023-06-02T22:26:24+02:00 +year: 2023 +draft: false +tags: +- elfeed +- org-mode +- literate-programming +--- +Recently I've been toying with a literate configuration[^literate] of Emacs. My init.el took a straightforward form: +[^literate]: https://en.wikipedia.org/wiki/Literate_programming + +{{<highlight lisp "linenos=table">}} +(org-babel-load-file "~/.emacs.d/config.org") +{{</highlight>}} + +And all of my configuration lives in an org-file. This alone gives me very little benefit for now, but in the future, it will make it easier to have it as a dedicated page on this site. + +However, one thing completely surprised me: the elfeed configuration. Until now, I used the standard way of configuring feeds with Elisp. It works, but what it is not is readable. A list of: + +{{<highlight lisp "linenos=true,linenostart=199">}} +("https://gideonwolfe.com/index.xml" blog imporant) +("https://fabiensanglard.net/rss.xml" blog important) +("https://protesilaos.com/master.xml" emacs) +{{</highlight>}} + +is far from being manageable and requires constant manual labor. + +### Elfeed-org + +One of the packages expanding capabilities of elfeed is elfeed-org[^elf-org]. It allows configuring the list of feeds with a standard org tree. Since my config is now also an org file, nothing stops me from adding the list as an org-tree inside my config org-file! I set it up via: +[^elf-org]: https://github.com/remyhonig/elfeed-org + +{{<highlight lisp "linenos=table,linenostart=199,hl_lines=7">}} +*** elfeed-org + +#+BEGIN_SRC emacs-lisp + (use-package elfeed-org + :ensure t + :config + (setq rmh-elfeed-org-files (list "~/.emacs.d/config.org")) + (elfeed-org)) +#+END_SRC +{{</highlight>}} + +Therefore, I am now pointing at the same file to become the data source for elfeed-org as the rest of my config. Just a few lines down, I start to define my list of subscriptions: + +{{<highlight org "linenos=table,linenostart=207">}} +*** Feeds :elfeed: + +**** Blogs + +***** https://gideonwolfe.com/index.xml :important: +***** https://fabiensanglard.net/rss.xml. :important: + +**** Emacs + +***** https://protesilaos.com/master.xml :important: +{{</highlight>}} + +Much more readable! Elfeed-org will ignore the entire outer tree and extract the feeds from leaves under the `:elfeed:` tag.