Why shouldn't my Mood Log just write in to my Journal daily files? A macro would be nice.
defvar defdaily-dailies nil
("A list of daily templates to generate.")
defvar cce/journal-refresh-timer nil)
(
'org-capture
(with-eval-after-load 'org-capture-templates
(add-to-list "r" "Review Entries"))
'('org-capture-templates
(add-to-list "j" "Journal Templates")))
'(
defun cce/update-defdailies ()
(;; set up recurring timer to run this function at 11:55pm
unless (and cce/journal-refresh-timer
(
(time-less-p (current-time) (timer--time cce/journal-refresh-timer)))setq cce/journal-refresh-timer
("1day" nil #'cce/update-defdailies)))
(run-at-time dolist (daily defdaily-dailies)
(
(cce/defdaily daily)))
defun cce/defdaily (daily)
(let ((plist (cddr daily)))
(let ((extra (list :tree-type 'week :unnarrowed 't))
(car daily))
(key (cadr daily))
(name (eval (plist-get plist :template)))
(template (eval (plist-get plist :path-fn))))
(file-name ("Updating %s path to %s" name file-name)
(message
;; remove
setq org-capture-templates
(remove-if (lambda (elt) (equal (car elt) key))
(
org-capture-templates))
;; template
unless (file-exists-p file-name)
(
(with-current-buffer (find-file-noselect file-name)eval (plist-get plist :header)))
(insert (
(save-buffer)))
;; set up template
'org-capture-templates
(add-to-list append `(,key ,name entry
(
(file+datetree ,file-name)
(file ,template))or (append (plist-get plist :extra) extra)
(
extra))))))
;; make sure this runs after all the defdailies have been defined
'after-cce-hook 'cce/update-defdailies)
(add-hook provide 'cce/defdaily) (