Add command to list nodes by slipbox

This commit is contained in:
Chris Barrett
2022-09-24 19:01:36 +12:00
parent 73fcc7987c
commit d8db5ccf84

View File

@@ -64,6 +64,7 @@
(require 'f)
(require 'magit)
(require 'org-roam)
(require 'org-roam-review)
(require 'org-roam-rewrite)
(defgroup org-roam-slipbox nil
@@ -134,15 +135,17 @@ See also: `org-roam-slipbox-default'."
(magit-call-git "add" (magit-convert-filename-for-git from))
(magit-file-rename from to))
(defun org-roam-slipbox--read (&optional current-slipbox)
(let ((slipboxes (seq-difference (seq-map #'f-base (f-directories org-roam-directory))
(list current-slipbox))))
(completing-read "Slipbox: " slipboxes nil t)))
;;;###autoload
(defun org-roam-slipbox-refile (node slipbox)
"Move NODE into SLIPBOX."
(interactive (let* ((node (org-roam-node-at-point t))
(current-slipbox (org-roam-node-slipbox node))
(slipboxes (seq-difference (seq-map #'f-base (f-directories org-roam-directory))
(list current-slipbox))))
(list node
(completing-read "Slipbox: " slipboxes nil t))))
(current-slipbox (org-roam-node-slipbox node)))
(list node (org-roam-slipbox--read current-slipbox))))
(let ((current-slipbox (org-roam-node-slipbox node))
dest)
@@ -233,6 +236,26 @@ This means titles can be restored if
(t
(setq-local mode-line-buffer-identification org-roam-slipbox--original-buffer-identification))))
;;;###autoload
(defun org-roam-slipbox-list-notes (slipbox)
"List nodes belonging to SLIPBOX."
(interactive (list (org-roam-slipbox--read)))
(org-roam-review-display-buffer-and-select
(org-roam-review-create-buffer
:title (concat "Notes for slipbox: " (propertize slipbox 'face 'org-roam-slipbox-name))
:instructions "The nodes below are sorted by slipbox"
:group-on (lambda (it)
(or (org-roam-review--maturity-header it)
(cons "Others" 4)))
:nodes
(lambda ()
(seq-filter (lambda (node)
(seq-contains-p (org-roam-node-tags node) slipbox))
(org-roam-node-list)))
:sort #'org-roam-review-sort-by-title-case-insensitive)))
(provide 'org-roam-slipbox)
;;; org-roam-slipbox.el ends here