All Projects → remyhonig → Elfeed Org

remyhonig / Elfeed Org

Configure the Elfeed RSS reader with an Orgmode file

Labels

Projects that are alternatives of or similar to Elfeed Org

Org Books
Reading list management with org mode
Stars: ✭ 186 (-8.37%)
Mutual labels:  emacs
Build Emacs For Macos
Somewhat hacky script to automate building of Emac.app on macOS.
Stars: ✭ 192 (-5.42%)
Mutual labels:  emacs
Evil Multiedit
Multiple cursors for evil-mode, based on iedit
Stars: ✭ 200 (-1.48%)
Mutual labels:  emacs
Emacs History
Historical Emacs Software Preservation
Stars: ✭ 184 (-9.36%)
Mutual labels:  emacs
Know Your Http Well
HTTP headers, media-types, methods, relations and status codes, all summarized and linking to their specification.
Stars: ✭ 2,205 (+986.21%)
Mutual labels:  emacs
Emacs Direnv
direnv integration for emacs
Stars: ✭ 194 (-4.43%)
Mutual labels:  emacs
El Patch
✨ Future-proof your Emacs Lisp customizations!
Stars: ✭ 184 (-9.36%)
Mutual labels:  emacs
Toc Org
toc-org is an Emacs utility to have an up-to-date table of contents in the org files without exporting (useful primarily for readme files on GitHub)
Stars: ✭ 202 (-0.49%)
Mutual labels:  emacs
Emacs
🧛🏻‍♂️ Dark theme for Emacs
Stars: ✭ 190 (-6.4%)
Mutual labels:  emacs
Lsp Treemacs
lsp-mode ❤️ treemacs
Stars: ✭ 200 (-1.48%)
Mutual labels:  emacs
Smudge
Control the Spotify app from within Emacs.
Stars: ✭ 186 (-8.37%)
Mutual labels:  emacs
El Compilador
An SSA-based compiler for Emacs Lisp
Stars: ✭ 187 (-7.88%)
Mutual labels:  emacs
Evil Snipe
2-char searching ala vim-sneak & vim-seek, for evil-mode
Stars: ✭ 196 (-3.45%)
Mutual labels:  emacs
Elispcheatsheet
Quick reference to the core language of Emacs ---Editor MACroS.
Stars: ✭ 186 (-8.37%)
Mutual labels:  emacs
Literate Calc Mode.el
🧮 Literate programming for M-x calc
Stars: ✭ 201 (-0.99%)
Mutual labels:  emacs
Super Save
Save Emacs buffers when they lose focus
Stars: ✭ 184 (-9.36%)
Mutual labels:  emacs
Dimmer.el
Interactively highlight which buffer is active by dimming the others.
Stars: ✭ 194 (-4.43%)
Mutual labels:  emacs
Emacs Module Rs
Rust binding and tools for emacs-module (Emacs's dynamic module support)
Stars: ✭ 203 (+0%)
Mutual labels:  emacs
Company Sourcekit
Completion for Swift projects via SourceKit with the help of SourceKitten
Stars: ✭ 203 (+0%)
Mutual labels:  emacs
Hackernews.el
Hacker News client for Emacs
Stars: ✭ 200 (-1.48%)
Mutual labels:  emacs

elfeed-org

Configure the Elfeed RSS reader with an Orgmode file

Problem

Maintaining tags for all my rss feeds is cumbersome using the regular flat list where there is no hierarchy and tag names are duplicated a lot. For example this is how elfeed users typically configure their subscriptions.

(defvar elfeed-feeds-alist
  '(("http://threesixty360.wordpress.com/feed/" blog math)
    ("http://www.50ply.com/atom.xml" blog dev)
    ("http://blog.cryptographyengineering.com/feeds/posts/default" blog)
    ("http://abstrusegoose.com/feed.xml" comic)
    ("http://accidental-art.tumblr.com/rss" image math)
    ("http://english.bouletcorp.com/feed/" comic)
    ("http://curiousprogrammer.wordpress.com/feed/" blog dev)
    ("http://feeds.feedburner.com/amazingsuperpowers" comic)
    ("http://amitp.blogspot.com/feeds/posts/default" blog dev)
    ("http://pages.cs.wisc.edu/~psilord/blog/rssfeed.rss" blog)
    ("http://www.anticscomic.com/?feed=rss2" comic)
    ("http://feeds.feedburner.com/blogspot/TPQSS" blog dev)))

If you want to add a custom title to a feed, that is even more cumbersome...

Solution

Org-mode makes the book keeping of tags and feeds much easier. Tags get inherited from parent headlines so there is no need to specify tags for each and every feed.

* 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\)
**** http://planet.emacsen.org/atom.xml
*** Web Development                                                     :web:
**** http://planet.phpunit.de/atom.xml
**** 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
     A description of a feed can be written under any headline.
     The text will be ignored by elfeed.
**** http://feeds.feedburner.com/eclipselive                         :ignore:
**** http://www.fosslc.org/drupal/rss.xml                             :video:

Some highlights:

  • [[http://orgmode.org][Org Mode Links supported as well]] If you choose to use org-mode links, the link description will be used as the feed's title in Elfeed. This is useful for feeds with long titles.
  • entry-title: \(emacs\|org-mode\) Tags any blog post with "emacs" or "org-mode" in the title according to it's given and inherited tags (in the example above "emacs", "mustread" and "dev").
  • http://feeds.feedburner.com/eclipselive :ignore: The "ignore" excludes the feed completely from your checked subscriptions. You can use another name for "ignore" by customizing rmh-elfeed-org-ignore-tag. These "ignore" tags are set by elfeed-org automatically on feed errors (wrong urls or renamed feeds for example) if rmh-elfeed-org-auto-ignore-invalid-feeds is set to t.

Import/Export OPML

Use elfeed-org-export-opml to export the tree structure of feeds to OPML format to a temporary buffer. This will allow you to make edits before saving it. You will probabably want to do this because most readers don't allow more than 2 levels while elfeed-org has no limit.

Use elfeed-org-import-opml to import an OPML file to an elfeed-org structured tree.

The Configuration Tree

You can use multiple trees. Those trees can be in same file or spread across multiple files specified in the list rmh-elfeed-org-files. Why would I want to use multiple trees? You can have a tree in a file that you may want to share with your emacs.d on GitHub and keep your personal feeds in a separate private repository.

In the initial version of this package the tree is identified by setting the ID property to to the value of rmh-elfeed-org-tree-id ("elfeed" by default) but that property turns out to be special (see the org mode manual) and I should not have used it. To not break any existing users' configurations this is still allowed but I recommend to tag the tree now with the value of rmh-elfeed-org-tree-id.

So instead of

* Blogs
 :PROPERTIES:
 :ID: elfeed
 :END:

I recommend to use

* Blogs                                                              :elfeed:

Tips

A few tips for the org-mode feed configuration:

  • The tree should have a tag matching the string specified in the variable rmh-elfeed-org-tree-id.
  • Feeds must start with http, or be in org-mode link format (the URL should still start with http).
  • Tag rules must start with entry-title: and end with a regular expression.
  • A tag rule tags all the posts that match the regular expression in the title using a "tag hook" with elfeed-make-tagger. For more info see https://github.com/skeeto/elfeed
  • You may add text below the headline with the url to describe the feed or to add notes. They will be ignored.
  • Headlines not starting with http or entry-title: will be ignored.

Installation

Requirements

Travis

This package is automatically tested for the following combinations of versions, so you can assume elfeed-org will work for them.

org-mode emacs
8.2.7 25.1
9.0.5 25.1
8.2.7 24.3
9.0.5 24.3

This package needs org-mode 8.2.7 to run properly if you use the emacs-24 distribution. The reason that that org-mode version is needed is because org-mode 8.2.6 - at least in combination with GNU Emacs 24.4.50.1 - causes the error (error "recenter'ing a window that does not display current-buffer.").

The minimum version of org-mode that is minimally needed to even run is org-mode 8.1 as that is the first release that defined the function org-element-map which is critical for this package.

Spacemacs

Built with Spacemacs

This package is part of the excellent (Spacemacs)[http://spacemacs.org/]. See Elfeed Layer Documentation for installation instructions.

Through MELPA

MELPA

;; Install through package manager
M-x package-install <ENTER>
elfeed-org <ENTER>

Manual

Download elfeed-org

cd ~/.emacs.d/lisp
wget https://github.com/remyhonig/elfeed-org/blob/master/elfeed-org.el

Install the package in Emacs

C-x C-f ~/.emacs.d/lisp/elfeed-org.el <ENTER>
M-x package-install-from-buffer <ENTER>

Initialization

In your initialization script add the following:

;; Load elfeed-org
(require 'elfeed-org)

;; Initialize elfeed-org
;; This hooks up elfeed-org to read the configuration when elfeed
;; is started with =M-x elfeed=
(elfeed-org)

;; Optionally specify a number of files containing elfeed
;; configuration. If not set then the location below is used.
;; Note: The customize interface is also supported.
(setq rmh-elfeed-org-files (list "~/.emacs.d/elfeed.org"))
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].