From 13db79415ce2e9f7215f47bade0ee64361c8a154 Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Fri, 12 Feb 2021 09:27:43 -0800 Subject: org: custom functions Add a few custom functions for org-mode. --- emacs/lisp/fcuny-org-custom.el | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 emacs/lisp/fcuny-org-custom.el (limited to 'emacs/lisp') diff --git a/emacs/lisp/fcuny-org-custom.el b/emacs/lisp/fcuny-org-custom.el new file mode 100644 index 0000000..d1b30cd --- /dev/null +++ b/emacs/lisp/fcuny-org-custom.el @@ -0,0 +1,33 @@ +(defun fcuny/org-new-datetree-at-point () + (interactive) + (org-up-heading-safe) + (org-datetree-find-date-create + (calendar-gregorian-from-absolute (org-today)) + 'subtree-at-point)) + +(defun org-refile-to-datetree (&optional file) + "Refile a subtree to a datetree corresponding to it's timestamp. +The current time is used if the entry has no timestamp. If FILE +is nil, refile in the current file. A datetree within a subheading +is possible if the heading has a property of DATE_TREE." + (interactive "f") + (let* ((datetree-date (or (org-entry-get nil "TIMESTAMP" t) + (org-read-date t nil "now"))) + (date (org-date-to-gregorian datetree-date)) + ) + (save-excursion + (with-current-buffer (current-buffer) + (org-cut-subtree) + (if file (find-file file)) + (widen) + (org-datetree-find-date-create date) + (org-narrow-to-subtree) + (show-subtree) + (org-end-of-subtree t) + (newline) + (goto-char (point-max)) + (org-paste-subtree (+ org-datetree-base-level 3)) + (widen) + )))) + +(provide 'fcuny-org-custom) -- cgit 1.4.1