mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2025-02-08 21:38:10 +00:00
Date tree capture with prompt for date
* doc/org.texi (Template elements): Document the new entry type. * lisp/org-capture.el (org-capture-templates): Add new option to customize type and docstring. (org-capture-set-target-location): Interpret the file+datetree+prompt entry.
This commit is contained in:
parent
9cc19e3919
commit
341e9ce1d7
@ -6285,7 +6285,10 @@ For non-unique headings, the full path is safer.
|
||||
Use a regular expression to position the cursor.
|
||||
|
||||
@item (file+datetree "path/to/file")
|
||||
Will create a heading in a date tree.
|
||||
Will create a heading in a date tree for today's date.
|
||||
|
||||
@item (file+datetree+prompt "path/to/file")
|
||||
Will create a heading in a date tree, but will prompt for the date.
|
||||
|
||||
@item (file+function "path/to/file" function-finding-location)
|
||||
A function to find the right location in the file.
|
||||
|
@ -133,7 +133,10 @@ target Specification of where the captured item should be placed.
|
||||
File to the entry matching regexp
|
||||
|
||||
(file+datetree \"path/to/file\")
|
||||
Will create a heading in a date tree
|
||||
Will create a heading in a date tree for today's date
|
||||
|
||||
(file+datetree+prompt \"path/to/file\")
|
||||
Will create a heading in a date tree, promts for date
|
||||
|
||||
(file+function \"path/to/file\" function-finding-location)
|
||||
A function to find the right location in the file
|
||||
@ -280,6 +283,9 @@ calendar | %:type %:date"
|
||||
(list :tag "File & Date tree"
|
||||
(const :format "" file+datetree)
|
||||
(file :tag " File"))
|
||||
(list :tag "File & Date tree, prompt for date"
|
||||
(const :format "" file+datetree+prompt)
|
||||
(file :tag " File"))
|
||||
(list :tag "File & function"
|
||||
(const :format "" file+function)
|
||||
(file :tag " File ")
|
||||
@ -640,19 +646,33 @@ already gone."
|
||||
(setq target-entry-p (and (org-mode-p) (org-at-heading-p))))
|
||||
(error "No match for target regexp in file %s" (nth 1 target))))
|
||||
|
||||
((eq (car target) 'file+datetree)
|
||||
((memq (car target) '(file+datetree file+datetree+prompt))
|
||||
(require 'org-datetree)
|
||||
(set-buffer (org-capture-target-buffer (nth 1 target)))
|
||||
;; Make a date tree entry, with the current date (or yesterday,
|
||||
;; if we are extending dates for a couple of hours)
|
||||
(org-datetree-find-date-create
|
||||
(calendar-gregorian-from-absolute
|
||||
(if org-overriding-default-time
|
||||
(time-to-days org-overriding-default-time)
|
||||
(cond
|
||||
|
||||
(org-overriding-default-time
|
||||
;; use the overriding default time
|
||||
(time-to-days org-overriding-default-time))
|
||||
|
||||
((eq (car target) 'file+datetree+prompt)
|
||||
;; prompt for date
|
||||
(time-to-days (org-read-date
|
||||
nil t nil "Date for tree entry:"
|
||||
(time-subtract (current-time)
|
||||
(list 0 (* 3600
|
||||
org-extend-today-until)
|
||||
0)))))
|
||||
(t
|
||||
;; current date, possible corrected for late night workers
|
||||
(time-to-days
|
||||
(time-subtract (current-time)
|
||||
(list 0 (* 3600 org-extend-today-until) 0)))))))
|
||||
|
||||
(list 0 (* 3600 org-extend-today-until) 0))))))))
|
||||
|
||||
((eq (car target) 'file+function)
|
||||
(set-buffer (org-capture-target-buffer (nth 1 target)))
|
||||
(funcall (nth 2 target))
|
||||
@ -1358,5 +1378,3 @@ The template may still contain \"%?\" for cursor positioning."
|
||||
;; arch-tag: 986bf41b-8ada-4e28-bf20-e8388a7205a0
|
||||
|
||||
;;; org-capture.el ends here
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user