Archived
1
0
Fork 0

add todo capture template that can have scheduled/deadline dates set via y/n/date prompts. see below for example template

** TODO [#%(oc/prmt `"Priority (A-F)`" 'td-priority)] %(oc/prmt `"Title`" 'td-title)
   %(oc/inc_date `"scheduled date`" `"SCHEDULED: `")
   %(oc/inc_date `"deadline date`" `"DEADLINE: `")
   %?
This commit is contained in:
KemoNine 2022-08-25 15:18:07 -04:00
parent 0f9321008e
commit 3289b8a202

View file

@ -1,6 +1,35 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; inspiration for conditional capture template : https://storax.github.io/blog/2016/05/02/org-capture-tricks/
; helper functions
(defvar oc-capture-prmt-history nil
"History of prompt answers for org capture.")
(defun oc/prmt (prompt variable)
"PROMPT for string, save it to VARIABLE and insert it."
(make-local-variable variable)
(set variable (read-string (concat prompt ": ") nil oc-capture-prmt-history)))
(defun oc/inc (what text &rest fmtvars)
"Ask user to include WHAT. If user agrees return TEXT."
(when (y-or-n-p (concat "Include " what "?"))
(apply 'format text fmtvars)))
(defun oc/inc (what text &rest fmtvars)
"Ask user to include WHAT. If user agrees return TEXT."
(when (y-or-n-p (concat "Include " what "?"))
(apply 'format text fmtvars)))
(defun oc/inc_date (what prefix)
"Ask user to include a date. If user agrees prompt for date."
(when (y-or-n-p (concat "Include " what "?"))
(concat prefix (org-time-stamp nil))))
; orgmode capture templates
(setq org-capture-templates '(
("d" "TODO" entry
(file+headline "~/org/_todo.org" "Active")
(file "~/org/template_todo.org")
:prepend t
:immediate-finish "f"
:jump-to-captured "t"
)
("b" "Blog Post" entry
(file+headline "~/org/blog/_blog.org" "Drafts")
(file "~/org/template_blog.org")