Фид в режиме Emacs Org не отображает тело письма из фида атомов gmail. - PullRequest
1 голос
/ 22 февраля 2011

Я успешно извлек свой фид 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>

Когда я нажимаю CcCx g и введите мои учетные данные, я получаю это в моем файле .org

** TODO RE: URGENT URGENT
  %summary

Не фактическое резюме из ленты Atom, которое должно гласить: «Сделай это сейчас, или мир закончится»

Я прочитал документацию в org-feed.el, и эта строка заставляет меня поверить, что я могу просто включить сводный элемент XML в свой шаблон с помощью %summary.

Любые поля из каналаэлемент может быть вставлен в шаблон с помощью %name, например %title, %description, %pubDate и т. д.

Я ошибаюсь?Есть ли способ вставить резюме в мой шаблон (желательно без изменения org-feed.el)

Любые помощники будут осыпаны благодарностями и радугами

1 Ответ

5 голосов
/ 23 февраля 2011

Проблема с 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-списке записей, который передается различным функциям.

...