将 org-mode 文件导出为 ical 格式,标签似乎保留在事件和待办事项标题中。在议程模式下,我可以使用 org-agenda-remove-tags 删除它们,但我找不到这样的 ical 导出选项。这个功能实现了吗?
谢谢您的建议...
你可以使用
#+OPTIONS: tags:nil
抑制导出文件中的标签。
但是,您使用的是 Org-Mode 的最新版本吗?
我只是尝试做我理解你的问题的事情,但标签似乎不包含在内。
如果我在没有默认设置的情况下导出以下标题:
* TODO Movie :Movie:blah:
Go see a movie
<2011-09-17 Sat 13:00-14:00>
我的 .ics 文件具有以下内容:
BEGIN:VCALENDAR
VERSION:2.0
X-WR-CALNAME:test
PRODID:-////Emacs with Org-mode//EN
X-WR-TIMEZONE:-0400
X-WR-CALDESC:nil
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID: TS-61193c39-f2e6-444c-9105-9499a2552bf5
DTSTART:20110917T130000
DTEND:20110917T140000
SUMMARY:TODO Movie
DESCRIPTION: Go see a movie\n<2011-09-17 Sat 13:00-14:00>
CATEGORIES:Movie,blah,test
END:VEVENT
END:VCALENDAR
我可以看到列为“类别”的标签,但在其他地方看不到。
如果我添加,导出只会更改 UID
#+OPTIONS: tags:nil
到文件。尽管添加该选项后,ASCII 或 HTML 导出都会抑制标签。
全球:
(setq org-icalendar-categories nil)
仅适用于特定执行:
(let ((org-icalendar-categories nil)) (org-icalendar-export-to-ics nil t))
我通过
org-icalendar-export-to-ics
函数到达源代码,从那里,我找到了这个变量(如您所见,默认为 '(local-tags category)
值):
(defcustom org-icalendar-categories '(local-tags category)
"Items that should be entered into the \"categories\" field.
This is a list of symbols, the following are valid:
`category' The Org mode category of the current file or tree
`todo-state' The todo state, if any
`local-tags' The tags, defined in the current line
`all-tags' All tags, including inherited ones."
:group 'org-export-icalendar
:type '(repeat
(choice
(const :tag "The file or tree category" category)
(const :tag "The TODO state" todo-state)
(const :tag "Tags defined in current line" local-tags)
(const :tag "All tags, including inherited ones" all-tags))))
(org-icalendar-export-to-ics nil t)
如何运作?从声明的子树中读取属性(从这个意义上说,其工作方式与使用 org-export 内容导出子树非常相似),因此,在父级中您还可以设置属性 :EXPORT_FILE_NAME:
,这样您就可以指向另一个文件路径比如/tmp/invite.ics
:)