1

我已使用以下代码成功地将我的 Gmail Atom 提要提取到 org 文件中

(setq org-feed-alist
          '(("Mail Entries"
              "http://mail.google.com/mail/feed/atom"
              "~/org/feeds.org" "Mail Entries"
              :parse-entry org-feed-parse-atom-entry
              :parse-feed org-feed-parse-atom-feed
              :item-full-text
              :template "* TODO %title\n %summary\n"
)))

典型的 Gmail Atom 提要如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#">
<title>Gmail - Inbox for mail@gmail.com</title>
<tagline>New messages in your Gmail Inbox</tagline>
<fullcount>1</fullcount>
<link rel="alternate" href="http://mail.google.com/mail" type="text/html" />
<modified>2011-02-22T06:38:03Z</modified>
<entry>
<title>RE: URGENT URGENT</title>
<summary>Do this now or the world will end</summary>
<link rel="alternate" href="http://mail.google.com/mail?account_id=mail@gmail.com&amp;message_id=654646578943541&amp;view=conv&amp;extsrc=atom" type="text/html" />
<modified>2011-02-21T21:30:18Z</modified>
<issued>2011-02-21T21:30:18Z</issued>
<id>tag:gmail.google.com,2003:104521846321321</id>
<author>
<name>me</name>
<email>mail@gmail.com</email>
</author>
</entry>

当我点击 Cc Cx g 并输入我的凭据时,我会在我的 .org 文件中得到它

** TODO RE: URGENT URGENT
  %summary

不是来自 Atom 提要的实际摘要,应为“立即执行此操作,否则世界将终结”

我已经阅读了 org-feed.el 中的文档,这一行让我相信我可以在模板中包含摘要 XML 项%summary

提要项目中的任何字段都可以插入到模板中 %name,例如%title,%description%pubDate

我弄错了吗?有没有办法将摘要插入到我的模板中(最好不修改 org-feed.el)

任何帮助者都将沐浴在感谢和彩虹中

4

1 回答 1

5

问题在于 org-feed-parse-atom-entry。它不提供对所有 xml 元素的访问。

通过以下建议,我成功地启用了摘要:

(defadvice org-feed-parse-atom-entry (after org-feed-parse-atom-entry-summary activate)
  ;; Add <summary/> as :summary.
  (let* ((entry (ad-get-arg 0))
         (xml (car (read-from-string (plist-get entry :item-full-text)))))
    (setq entry (plist-put entry :summary
                           (xml-substitute-special
                            (car (xml-node-children
                                  (car (xml-get-children xml 'summary)))))))
    entry))

此外,:item-full-text 不是 org-feed-alist 的合适关键字。它是条目 p-list 中使用的键,它被传递给各种函数。

于 2011-02-22T23:13:49.147 回答