doomemacs/modules/app/rss/README.org
Henrik Lissner 6f40ad55f5
docs: discourage after! and use-package! use
There's little reason for users to use these macros in their private
configs over plain ol' `with-eval-after-load` and `use-package`, unless
they're writing their own modules.

It's my fault for signal boosting them in documentation and whenever I'm
asked for help, because beginners now believe they are somehow
required for Doom to work correctly (there are guides out there
telling beginners that migrating to Doom involves replacing all
instances of `with-eval-after-load` and `use-package` in their
pre-existing configs with `after!` and `use-package!` -- which was never
true).

What's more, I plan to replace `use-package`, internally, so the
`use-package!` macro won't exist for much longer.
2026-02-09 04:29:47 -05:00

136 lines
4.5 KiB
Org Mode

#+title: :app rss
#+subtitle: An RSS reader that Google can't shut down
#+created: May 12, 2020
#+since: 2.0.9
* Description :unfold:
Read RSS feeds in the comfort of Emacs.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +org ::
Enable [[doom-package:elfeed-org]], so you can configure your feeds with an org file
(={org-directory}/elfeed.org=) rather than Elisp.
- +youtube ::
Enable [[doom-package:elfeed-tube]], for tighter integration between elfeed and
your Youtube subscriptions.
** Packages
- [[doom-package:elfeed]]
- [[doom-package:elfeed-goodies]]
- [[doom-package:elfeed-org]] if [[doom-module:+org]]
- [[doom-package:elfeed-tube]] if [[doom-module:+youtube]]
** Hacks
- By default ~elfeed-search-filter~ is set to ~@2-weeks-ago~ and makes the last
2 weeks of entries visible. This needs to be set after elfeed has loaded:
#+begin_src emacs-lisp
;;; in $DOOMDIR/config.el
(with-eval-after-load 'elfeed
(setq elfeed-search-filter "@1-month-ago +unread"))
#+end_src
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
/This module has no external requirements./
* TODO Usage
#+begin_quote
󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
- As there isn't currently binding for ~elfeed-update~ you can run it with ~M-x
elfeed-update~
* TODO Configuration
#+begin_quote
󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** Without +org
When you don't want to use org mode to manage your elfeed feeds you can put your
subscriptions in =$DOOMDIR/config.el=:
#+begin_src emacs-lisp
(setq elfeed-feeds
'("https://this-week-in-rust.org/rss.xml"
"http://feeds.bbci.co.uk/news/rss.xml"))
#+end_src
** With +org
When using ~+org~ flag then configuration is easier. You can use ~org-mode~ to
configure feeds to follow:
#+begin_src org
,* root :elfeed:
,** Programming :programming:
,*** [[https://this-week-in-rust.org/rss.xml][This Week in Rust]] :rust:
,** News :news:
,*** Top news :tops:
,**** http://feeds.bbci.co.uk/news/rss.xml
#+end_src
- Root of ~elfeed-org~ needs to have ~:elfeed:~ tag. This is where ~elfeed-org~
starts to read.
- You can have subheaders as in example ~:programming:~, and ~elfeed-org~
applies that tag to all subheader feeds, in example it adds it to ~This Week
in Rust~.
- You can "name" feeds as you please with ~org-mode~ ~org-insert-link~ ([[kbd:][C-c C-l]])
and put name as you want into ~description~.
- If you don't want to use ~org-directory/elfeed.org~ file you can specify it
with ~(setq rmh-elfeed-org-files '("path/to/your/elfeed/file.org"))~
** Keybindings
+ General
| Key | Mode | Description |
|-------+--------------------+------------------------|
| [[kbd:][S-RET]] | elfeed-search-mode | Open link into browser |
| [[kbd:][RET]] | elfeed-search-mode | Open item |
| [[kbd:][s]] | elfeed-search-mode | Filter |
| [[kbd:][C-j]] | elfeed-show-mode | Move to next item |
| [[kbd:][C-k]] | elfeed-show-mode | Move to previous item |
+ If ~:editor evil +everywhere~
| Key | Description |
|-----+-----------------------------|
| [[kbd:][q]] | elfeed-kill-buffer |
| [[kbd:][r]] | elfeed-search-update--force |
| [[kbd:][g c]] | Copy link of current entry |
** News filtering
+ Time filtering
+ ~@2-days-ago~ Past two days
+ ~@2-weeks-ago~ Past two weeks
+ ~@2-years-ago~ Past two years
+ ~@2020-06-19~ To show specific day
+ ~@2020-06-19--2020-03-10~ Span of time
+ Tag filtering
+ Include ~+news~
+ Exclude ~-rust~
+ Both ~+news -rust~
+ String filtering, this is case insensitive
+ Include
+ ~DOOM~
+ ~Linu[sx]~ Search for both ~Linus~ and ~Linux~
+ Exclude ~!something~
** Automatically updating feed when opening elfeed
Hook ~elfeed-update~ to ~elfeed-search-mode-hook~:
#+begin_src emacs-lisp
(add-hook 'elfeed-search-mode-hook #'elfeed-update)
#+end_src
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote