emacs-用elfeed查看miniflux内容
miniflux是一个自建的RSS阅读器,网上有很多教程,这里就不赘述搭建过程了。
假设我们已经建好了miniflux,如何在Emacs中读取同步miniflux抓取的内容呢?
1. miniflux配置
在miniflux的 设置 -> 集成 中,点击 Fever ,勾选 「启用Fever API」,并在下面输入你自定义的用户名和密码并更新,这里假设用户名为 user ,密码为 mima ,miniflux的访问地址为 http://miniflux.com 。
2. emacs配置
安装 elfeed 和 elfeed-protocol ,直接启动就行,代码说明见注释
(use-package elfeed :demand t
:custom
;; 在电脑本地路径存储elfeed的数据库
(elfeed-db-directory "~/emacs-local/elfeed")
:config
;; 进入elfeed时更新
(add-hook 'elfeed-search-mode-hook #'elfeed-update)
;; 配置一个快捷切换收藏的按键
(defun my/elfeed-search-toggle-star ()
"在 elfeed-search 模式下为选中的条目切换 'star' 标签。"
(interactive)
(let* ((entries (elfeed-search-selected))
(tag 'star))
(dolist (entry entries)
(if (member tag (elfeed-entry-tags entry))
(elfeed-untag entry tag)
(elfeed-tag entry tag)
(elfeed-untag entry 'unread))
(next-line)
(elfeed-search-update-entry entry))))
:bind
;; 将切换收藏的函数绑定到m键
(:map elfeed-search-mode-map
("m" . my/elfeed-search-toggle-star)))
(use-package elfeed-protocol
:demand t
:after elfeed
:config
;; 下面这些是elfeed-protocol官方推荐的
(setq elfeed-feeds nil)
(setq elfeed-use-curl t)
(setq elfeed-protocol-fever-update-unread-only t)
(setq elfeed-protocol-fever-fetch-category-as-tag t)
(elfeed-set-timeout 36000)
;; 这里配置miniflux fever api的路径、用户名和密码
(setq elfeed-protocol-feeds
`(("fever+https://user@http://miniflux.com"
:api-url "http://miniflux.com/fever/"
:password "mima")))
(elfeed-protocol-enable))
3. 使用说明
由于我的miniflux中订阅源很多,每日消息约3000条,所以我习惯每次粗略扫一扫条目,将想看的标记为收藏,然后再在网页版中查看。
所以我会执行 M-x elfeed ,按 r 将不感兴趣的标为已读,按 m 将有兴趣的标为收藏。清理完未读后再在网页版的miniflux中快捷查看。