mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-29 18:36:26 +00:00
ox-icalendar: Add support for the iCalendar CLASS property
* ox-icalendar.el (org-icalendar-entry): Pick the CLASS property and pass it to `org-icalendar--vevent' and `org-icalendar--vtodo'. (org-icalendar--vevent,org-icalendar--vtodo): Add a new parameter `class' and use it to generate a `CLASS' field in the `VEVENT' entry. TINYCHANGE
This commit is contained in:
parent
0266c36645
commit
3fddb59ddc
|
@ -540,6 +540,10 @@ inlinetask within the section."
|
|||
(org-export-get-node-property
|
||||
:LOCATION entry
|
||||
(org-property-inherit-p "LOCATION"))))
|
||||
(class (org-icalendar-cleanup-string
|
||||
(org-export-get-node-property
|
||||
:CLASS entry
|
||||
(org-property-inherit-p "CLASS"))))
|
||||
;; Build description of the entry from associated section
|
||||
;; (headline) or contents (inlinetask).
|
||||
(desc
|
||||
|
@ -568,14 +572,14 @@ inlinetask within the section."
|
|||
org-icalendar-use-deadline)
|
||||
(org-icalendar--vevent
|
||||
entry deadline (concat "DL-" uid)
|
||||
(concat "DL: " summary) loc desc cat tz)))
|
||||
(concat "DL: " summary) loc desc cat tz class)))
|
||||
(let ((scheduled (org-element-property :scheduled entry)))
|
||||
(and scheduled
|
||||
(memq (if todo-type 'event-if-todo 'event-if-not-todo)
|
||||
org-icalendar-use-scheduled)
|
||||
(org-icalendar--vevent
|
||||
entry scheduled (concat "SC-" uid)
|
||||
(concat "S: " summary) loc desc cat tz)))
|
||||
(concat "S: " summary) loc desc cat tz class)))
|
||||
;; When collecting plain timestamps from a headline and its
|
||||
;; title, skip inlinetasks since collection will happen once
|
||||
;; ENTRY is one of them.
|
||||
|
@ -593,7 +597,7 @@ inlinetask within the section."
|
|||
((t) t)))
|
||||
(let ((uid (format "TS%d-%s" (cl-incf counter) uid)))
|
||||
(org-icalendar--vevent
|
||||
entry ts uid summary loc desc cat tz))))
|
||||
entry ts uid summary loc desc cat tz class))))
|
||||
info nil (and (eq type 'headline) 'inlinetask))
|
||||
""))
|
||||
;; Task: First check if it is appropriate to export it. If
|
||||
|
@ -607,7 +611,7 @@ inlinetask within the section."
|
|||
(not (org-icalendar-blocked-headline-p
|
||||
entry info))))
|
||||
((t) (eq todo-type 'todo))))
|
||||
(org-icalendar--vtodo entry uid summary loc desc cat tz))
|
||||
(org-icalendar--vtodo entry uid summary loc desc cat tz class))
|
||||
;; Diary-sexp: Collect every diary-sexp element within ENTRY
|
||||
;; and its title, and transcode them. If ENTRY is
|
||||
;; a headline, skip inlinetasks: they will be handled
|
||||
|
@ -638,7 +642,7 @@ inlinetask within the section."
|
|||
contents))))
|
||||
|
||||
(defun org-icalendar--vevent
|
||||
(entry timestamp uid summary location description categories timezone)
|
||||
(entry timestamp uid summary location description categories timezone class)
|
||||
"Create a VEVENT component.
|
||||
|
||||
ENTRY is either a headline or an inlinetask element. TIMESTAMP
|
||||
|
@ -648,7 +652,9 @@ summary or subject for the event. LOCATION defines the intended
|
|||
venue for the event. DESCRIPTION provides the complete
|
||||
description of the event. CATEGORIES defines the categories the
|
||||
event belongs to. TIMEZONE specifies a time zone for this event
|
||||
only.
|
||||
only. CLASS contains the visibility attribute. Three of them
|
||||
(\"PUBLIC\", \"CONFIDENTIAL\", and \"PRIVATE\") are predefined, others
|
||||
should be treated as \"PRIVATE\" if they are unknown to the iCalendar server.
|
||||
|
||||
Return VEVENT component as a string."
|
||||
(org-icalendar-fold-string
|
||||
|
@ -669,6 +675,7 @@ Return VEVENT component as a string."
|
|||
(org-element-property :repeater-value timestamp)))
|
||||
"SUMMARY:" summary "\n"
|
||||
(and (org-string-nw-p location) (format "LOCATION:%s\n" location))
|
||||
(and (org-string-nw-p class) (format "CLASS:%s\n" class))
|
||||
(and (org-string-nw-p description)
|
||||
(format "DESCRIPTION:%s\n" description))
|
||||
"CATEGORIES:" categories "\n"
|
||||
|
@ -677,7 +684,7 @@ Return VEVENT component as a string."
|
|||
"END:VEVENT"))))
|
||||
|
||||
(defun org-icalendar--vtodo
|
||||
(entry uid summary location description categories timezone)
|
||||
(entry uid summary location description categories timezone class)
|
||||
"Create a VTODO component.
|
||||
|
||||
ENTRY is either a headline or an inlinetask element. UID is the
|
||||
|
@ -712,6 +719,7 @@ Return VTODO component as a string."
|
|||
"\n"))
|
||||
"SUMMARY:" summary "\n"
|
||||
(and (org-string-nw-p location) (format "LOCATION:%s\n" location))
|
||||
(and (org-string-nw-p class) (format "CLASS:%s\n" class))
|
||||
(and (org-string-nw-p description)
|
||||
(format "DESCRIPTION:%s\n" description))
|
||||
"CATEGORIES:" categories "\n"
|
||||
|
|
Loading…
Reference in a new issue