0
0
Fork 1
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-07-16 14:16:26 +00:00

org-e-icalendar: Create vevents for timestamps within headline's title

* contrib/lisp/org-e-icalendar.el (org-e-icalendar-entry): Create
  vevent for timestamps within headline's title.
This commit is contained in:
Nicolas Goaziou 2012-11-25 01:10:11 +01:00
parent a51b8fa308
commit 0226b01c3c

View file

@ -569,14 +569,16 @@ inlinetask within the section."
(org-e-icalendar--vevent (org-e-icalendar--vevent
entry scheduled (concat "SC-" uid) entry scheduled (concat "SC-" uid)
(concat "S: " summary) loc desc cat))) (concat "S: " summary) loc desc cat)))
;; When collecting plain timestamps from an headline, skip ;; When collecting plain timestamps from an headline and
;; inlinetasks since collection will happen once ENTRY is ;; its title, skip inlinetasks since collection will
;; one of them. ;; happen once ENTRY is one of them.
(let ((counter 0)) (let ((counter 0))
(mapconcat (mapconcat
'identity 'identity
(org-element-map (org-element-map
inside 'timestamp (cons (org-element-property :title entry)
(org-element-contents inside))
'timestamp
(lambda (ts) (lambda (ts)
(let ((uid (format "TS%d-%s" (incf counter) uid))) (let ((uid (format "TS%d-%s" (incf counter) uid)))
(org-e-icalendar--vevent entry ts uid summary loc desc cat))) (org-e-icalendar--vevent entry ts uid summary loc desc cat)))
@ -595,13 +597,16 @@ inlinetask within the section."
('t (eq todo-type 'todo)))) ('t (eq todo-type 'todo))))
(org-e-icalendar--vtodo entry uid summary loc desc cat)) (org-e-icalendar--vtodo entry uid summary loc desc cat))
;; Diary-sexp: Collect every diary-sexp element within ;; Diary-sexp: Collect every diary-sexp element within
;; ENTRY and transcode them. If ENTRY is an headline, ;; ENTRY and its title, and transcode them. If ENTRY is
;; skip inlinetasks: they will be handled separately. ;; an headline, skip inlinetasks: they will be handled
;; separately.
(when org-e-icalendar-include-sexps (when org-e-icalendar-include-sexps
(let ((counter 0)) (let ((counter 0))
(mapconcat 'identity (mapconcat 'identity
(org-element-map (org-element-map
inside 'diary-sexp (cons (org-element-property :title entry)
(org-element-contents inside))
'diary-sexp
(lambda (sexp) (lambda (sexp)
(org-e-icalendar-transcode-diary-sexp (org-e-icalendar-transcode-diary-sexp
(org-element-property :value sexp) (org-element-property :value sexp)