org module之org-feed

本文介绍了一个有趣的Emacs模块,能够将RSS订阅的内容自动保存到指定的Org文件标题下。通过设置org-feed-alist,用户可以定制RSS源的更新、存储位置及标题,并利用额外的参数对feed条目进行个性化处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址:https://raw.githubusercontent.com/lujun9972/lujun9972.github.com/source/Emacs之怒/org module之org-feed.org

该module能让你将RSS feed中的内容保存到Org文件指定的标题下,还是蛮好玩的。

  1. 设置 org-feed-alist

    从名字上就能看出,这是一个alist,每个entry的格式为 (feed名称 URL 存储的Org文件路径 存储的标题),比如

    (push '("科学松鼠会" "https://songshuhui.net/feed" "~/我的GTD/Note.org" "Feeds/科学松鼠会") org-feed-alist)
    
  2. 执行 M-x org-feed-update-all

此外, org-feed-alist 还支持在每个entry后面加上多个 keyword-value 对 的参数,用来对feed中的每篇文章进行自定义的处理,详情可以参见它的doc-string说明:

:drawer drawer-name
存储feed信息的drawer名称,默认为FEEDSTATUS
:filter filter-function
过滤item的函数,若通过则返回该entry,否则返回nil
:template template-string
组建Org entry的模板
:formatter formatter-function
格式化feed item成Org entry的函数
:new-handler function
处理新增feed item的函数
:changed-handler function
处理更新 feed item 的函数
:parse-feed function
解析feed的函数
:parse-entry function
解析feed item的函数

默认情况下,每个feed item都会被解析为一个plist,其中feed item中的域名都对应一个property,此外为了方便处理,还有两个特殊的property:

:item-full-text
<item> 标签内的全文本
guid-permalink
当guid 属性为 permalink 是设置为 t

理论上跟org-eww连用,我们完全可以把feed中的内容摘录到Org文件中保存起来,像这样:

(defun org-eww-save-by-url (url &optional timeout)
  (let ((url (replace-regexp-in-string "\\[\\|\\]" "" url))
        (timeout (or timeout 5)))
        (message "URL is %s" url)
        (save-excursion 
          (eww url)
          (sit-for timeout)
          (eww-readable)
          (org-eww-copy-for-org-mode)
          (pop kill-ring))))


(setq org-feed-alist '(("科学松鼠会" "https://songshuhui.net/feed" "~/我的GTD/Note.org" "科学松鼠会"
                        :template "* %h
%t
from %a
%(org-eww-save-by-url \"%a\")")))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值