This patch will allow to customize `org-icalendar-deadline-summary-prefix',
`org-icalendar-scheduled-summary-prefix' directly in the `ext-plist' arg of
org-export-as function
From d666147f919c91b48988f7c90d66ea85e9f1faaa Mon Sep 17 00:00:00 2001
From: Ilya Chernyshov <[email protected]>
Date: Mon, 7 Nov 2022 20:12:08 +0600
Subject: [PATCH] ox-icalendar: Create export backend options for
deadline/scheduled-summary-prefix defcustoms
ox-icalendar.el (org-export-define-derived-backend):
Add export backend options:
:deadline-summary-prefix
:scheduled-summary-prefix
ox-icalendar.el (org-icalendar-entry):
Use :deadline-summary-prefix export backend option instead of
`org-icalendar-deadline-summary-prefix'. If the option is not
explicitly set, use the value of the custom variable.
Use :scheduled-summary-prefix export backend option instead of
`org-icalendar-scheduled-summary-prefix'. If the option is not
explicitly set, use the value of the custom variable.
Convert `deadline/scheduled-summary-prefix' string to iCal-compatible
format via `(org-icalendar-cleanup-string)'
---
lisp/ox-icalendar.el | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/lisp/ox-icalendar.el b/lisp/ox-icalendar.el
index 6e4a9f21f..f4c904da4 100644
--- a/lisp/ox-icalendar.el
+++ b/lisp/ox-icalendar.el
@@ -332,7 +332,9 @@ re-read the iCalendar file.")
(:icalendar-store-UID nil nil org-icalendar-store-UID)
(:icalendar-timezone nil nil org-icalendar-timezone)
(:icalendar-use-deadline nil nil org-icalendar-use-deadline)
- (:icalendar-use-scheduled nil nil org-icalendar-use-scheduled))
+ (:icalendar-use-scheduled nil nil org-icalendar-use-scheduled)
+ (:icalendar-scheduled-summary-prefix nil nil org-icalendar-scheduled-summary-prefix)
+ (:icalendar-deadline-summary-prefix nil nil org-icalendar-deadline-summary-prefix))
:filters-alist
'((:filter-headline . org-icalendar-clear-blank-lines))
:menu-entry
@@ -630,7 +632,9 @@ inlinetask within the section."
;; "VEVENT" component from scheduled, deadline, or any
;; timestamp in the entry.
(let ((deadline (org-element-property :deadline entry))
- (use-deadline (plist-get info :icalendar-use-deadline)))
+ (use-deadline (plist-get info :icalendar-use-deadline))
+ (deadline-summary-prefix (org-icalendar-cleanup-string
+ (plist-get info :icalendar-deadline-summary-prefix))))
(and deadline
(pcase todo-type
(`todo (or (memq 'event-if-todo-not-done use-deadline)
@@ -639,10 +643,12 @@ inlinetask within the section."
(_ (memq 'event-if-not-todo use-deadline)))
(org-icalendar--vevent
entry deadline (concat "DL-" uid)
- (concat org-icalendar-deadline-summary-prefix summary)
+ (concat deadline-summary-prefix summary)
loc desc cat tz class)))
(let ((scheduled (org-element-property :scheduled entry))
- (use-scheduled (plist-get info :icalendar-use-scheduled)))
+ (use-scheduled (plist-get info :icalendar-use-scheduled))
+ (scheduled-summary-prefix (org-icalendar-cleanup-string
+ (plist-get info :icalendar-scheduled-summary-prefix))))
(and scheduled
(pcase todo-type
(`todo (or (memq 'event-if-todo-not-done use-scheduled)
@@ -651,7 +657,7 @@ inlinetask within the section."
(_ (memq 'event-if-not-todo use-scheduled)))
(org-icalendar--vevent
entry scheduled (concat "SC-" uid)
- (concat org-icalendar-scheduled-summary-prefix summary)
+ (concat scheduled-summary-prefix summary)
loc desc cat tz class)))
;; When collecting plain timestamps from a headline and its
;; title, skip inlinetasks since collection will happen once
--
2.38.1