(feat): sort backlinks by occurrence (#1086)

Sort display of backlinks in backlinks buffer by occurrence. The default
link extraction behaviour causes it to be inserted roughly in the
reverse order.
This commit is contained in:
Jethro Kuan
2020-09-04 21:05:49 +08:00
committed by GitHub
parent d3a920a5b7
commit e3ff54616e

View File

@ -163,24 +163,29 @@ For example: (setq org-roam-buffer-window-parameters '((no-other-window . t)))"
l (org-roam-buffer--pluralize "Backlink" l)))) l (org-roam-buffer--pluralize "Backlink" l))))
(dolist (group grouped-backlinks) (dolist (group grouped-backlinks)
(let ((file-from (car group)) (let ((file-from (car group))
(bls (cdr group))) (bls (mapcar (lambda (row)
(nth 2 row)) (cdr group))))
(insert (format "** [[file:%s][%s]]\n" (insert (format "** [[file:%s][%s]]\n"
file-from file-from
(org-roam--get-title-or-slug file-from))) (org-roam--get-title-or-slug file-from)))
(dolist (backlink bls) ;; Sort backlinks according to time of occurrence in buffer
(pcase-let ((`(,file-from _ ,props) backlink)) (setq bls (seq-sort-by (lambda (bl)
(insert "*** " (plist-get bl :point))
(if-let ((outline (plist-get props :outline))) #'<
(string-join outline " > ") bls))
"Top") (dolist (props bls)
"\n" (insert "*** "
(propertize (if-let ((outline (plist-get props :outline)))
(s-trim (s-replace "\n" " " (string-join outline " > ")
(plist-get props :content))) "Top")
'help-echo "mouse-1: visit backlinked note" "\n"
'file-from file-from (propertize
'file-from-point (plist-get props :point)) (s-trim (s-replace "\n" " "
"\n\n")))))) (plist-get props :content)))
'help-echo "mouse-1: visit backlinked note"
'file-from file-from
'file-from-point (plist-get props :point))
"\n\n")))))
(insert "\n\n* No backlinks!"))) (insert "\n\n* No backlinks!")))
(defun org-roam-buffer-update () (defun org-roam-buffer-update ()