This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+readers/elfeed/README.org

147 lines
5.8 KiB
Org Mode
Raw Normal View History

#+TITLE: Elfeed layer
2015-11-01 10:17:42 +00:00
2019-05-02 21:49:30 +00:00
#+TAGS: layer|reader
2015-11-01 10:17:42 +00:00
[[file:img/elfeed.png]]
2019-05-07 20:05:06 +00:00
* Table of Contents :TOC_5_gh:noexport:
2017-05-22 14:16:12 +00:00
- [[#description][Description]]
- [[#features][Features:]]
2017-05-22 14:16:12 +00:00
- [[#install][Install]]
- [[#layer][Layer]]
- [[#setup-feeds][Setup feeds]]
- [[#with-org][With Org]]
- [[#manually][Manually]]
- [[#server][Server]]
- [[#elfeed-goodies][Elfeed goodies]]
- [[#key-bindings][Key bindings]]
2017-05-22 14:16:12 +00:00
- [[#troubleshooting][Troubleshooting]]
- [[#database-empty-at-first-start][Database empty at first start]]
- [[#queue-timeout-exceeded][Queue timeout exceeded]]
2015-11-01 10:17:42 +00:00
* Description
This layer integrates a web feed reader into spacemacs.
** Features:
- Support for reading RSS and Atom feeds directly within emacs via [[https://github.com/skeeto/elfeed][Elfeed]].
- Support for managing feeds via org files supplied by [[https://github.com/remyhonig/elfeed-org][elfeed-org]].
- Support for displaying feed database content in the browser via [[https://github.com/skeeto/elfeed#web-interface][web interface]].
2015-11-01 10:17:42 +00:00
* Install
** Layer
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
add =elfeed= to the existing =dotspacemacs-configuration-layers= list in this
file.
2015-11-01 10:17:42 +00:00
By default, =elfeed= stores its database under =~/.elfeed=.
** Setup feeds
*** With Org
It is recommended to manage your feeds list and tags via org files, this is
possible thanks to [[https://github.com/remyhonig/elfeed-org][elfeed-org]] package. To define a list of org files:
#+BEGIN_SRC emacs-lisp
2018-09-19 03:54:47 +00:00
(elfeed :variables rmh-elfeed-org-files (list "~/.emacs.d/private/elfeed1.org"
"~/.emacs.d/private/elfeed2.org"))
#+END_SRC
Checkout [[https://github.com/remyhonig/elfeed-org][elfeed-org]] documentation to see the format of that file.
Here is an example of such a file (note the usage of org tags to tag your feeds)
#+BEGIN_SRC org
2018-09-19 03:54:47 +00:00
* Blogs :elfeed:
** entry-title: \(linux\|linus\|ubuntu\|kde\|gnome\) :linux:
** http://git-annex.branchable.com/design/assistant/blog/index.rss :mustread:
** http://feeds.feedburner.com/InformationIsBeautiful
** [[http://orgmode.org][Org Mode Links supported as well]]
** Software Development :dev:
*** Emacs :emacs:mustread:
**** http://www.terminally-incoherent.com/blog/feed/
**** http://nullprogram.com/feed/
**** entry-title: \(emacs\|org-mode\)
2019-05-18 10:21:28 +00:00
**** https://planet.emacslife.com/atom.xml
2018-09-19 03:54:47 +00:00
*** Web Development :web:
**** http://feeds.feedburner.com/symfony/blog
**** http://feeds.feedburner.com/qooxdoo/blog/content
*** Eclipse :eclipse:
**** http://blog.eclipse-tips.com/feeds/posts/default?alt=rss
**** http://ed-merks.blogspot.com/feeds/posts/default
**** http://feeds.feedburner.com/eclipselive
#+END_SRC
*** Manually
2015-11-01 10:17:42 +00:00
To explicitly setup the list of feeds, set the value of =elfeed-feeds= variable
in your =.spacemacs= file.
#+BEGIN_SRC emacs-lisp
2018-09-19 03:54:47 +00:00
(elfeed :variables
elfeed-feeds '(("http://nullprogram.com/feed/" blog emacs)
"http://www.50ply.com/atom.xml" ; no autotagging
("http://nedroid.com/feed/" webcomic)))
2015-11-01 10:17:42 +00:00
#+END_SRC
Check documentation for =elfeed-feeds= for more information about this variable
(~SPC h d v elfeed-feeds RET~).
** Server
Elfeed comes with a simple [[https://github.com/skeeto/elfeed#web-interface][web interface]] to browse its database. You can manually
start it by calling =elfeed-web-start= or by setting =elfeed-enable-web-interface=
to =t= which will start the web automatically when Emacs starts.
2015-11-01 10:17:42 +00:00
By default web interface is available on [[http://localhost:8080/elfeed/][localhost:8080/elfeed]]. You can change
the default port by changing the value of =httpd-port=.
2015-11-01 10:17:42 +00:00
#+BEGIN_SRC emacs-lisp
2018-09-19 03:54:47 +00:00
(elfeed :variables elfeed-enable-web-interface t)
2015-11-01 10:17:42 +00:00
#+END_SRC
** Elfeed goodies
Elfeed layer loads a set of useful helper functions and bindings to improve your elfeed experience.
Normally these should help you however there are some workflows where these may rather hinder you.
In this case you can disable these by setting =elfeed-enable-goodies= to =nil=.
#+BEGIN_SRC emacs-lisp
(elfeed :variables elfeed-enable-goodies nil)
#+END_SRC
2015-11-01 10:17:42 +00:00
* Key bindings
| Key binding | Description |
2015-11-01 10:17:42 +00:00
|-------------+--------------|
| ~SPC a r e~ | start elfeed |
2015-11-01 10:17:42 +00:00
Use =SPC ?= to discover major-mode key bindings.
| Key binding | Description |
|-------------+---------------------------------------------------|
| ~c~ | compact feed db |
| ~gr~ | update all the feeds |
| ~gR~ | force refresh view of the feed listing |
| ~gu~ | unjam elfeed if it is slow due to slow connection |
| ~o~ | load OPML |
| ~q~ | quit main window, or item view buffer. |
| ~w~ | start web server |
| ~W~ | stop web server |
2015-11-01 10:17:42 +00:00
In =elfeed-show= mode, you can use the following bindings:
| Key binding | Description |
|-------------+------------------|
| ~q~ | quit show window |
| ~C-j~ | Next entry |
| ~C-k~ | Previous entry |
2015-11-01 10:17:42 +00:00
* Troubleshooting
** Database empty at first start
Be sure that you added some feeds first then load your feeds with ~gr~
in evilified buffer. Or ~M-x elfeed-update~.
2015-11-01 10:17:42 +00:00
** Queue timeout exceeded
If you are getting "Queue timeout exceeded" errors, try increasing
the value of =url-queue-timeout=.
2015-11-01 10:17:42 +00:00
#+BEGIN_SRC emacs-lisp
2018-09-19 03:54:47 +00:00
(elfeed :variables url-queue-timeout 30)
2015-11-01 10:17:42 +00:00
#+END_SRC