summaryrefslogtreecommitdiffstatshomepage
path: root/nroam-backlinks.el
diff options
context:
space:
mode:
Diffstat (limited to 'nroam-backlinks.el')
-rw-r--r--nroam-backlinks.el29
1 files changed, 18 insertions, 11 deletions
diff --git a/nroam-backlinks.el b/nroam-backlinks.el
index f4ee29e..ba5f140 100644
--- a/nroam-backlinks.el
+++ b/nroam-backlinks.el
@@ -47,13 +47,18 @@
(defun nroam-backlinks--get-backlinks ()
"Return a list of backlinks for the current buffer."
- (if-let* ((file-path (buffer-file-name (current-buffer)))
- (titles (org-roam--extract-titles)))
- (org-roam--get-backlinks (cons file-path titles))))
+ (save-excursion
+ (goto-char (point-min))
+ (let ((node (org-roam-node-at-point)))
+ (seq-remove (lambda (b)
+ (string= (org-roam-node-file (org-roam-backlink-source-node b))
+ (org-roam-node-file node)))
+ (org-roam-backlinks-get node)))))
(defun nroam-backlinks--group (backlinks)
"Return BACKLINKS grouped by source file."
- (seq-group-by #'car backlinks))
+ (seq-group-by (lambda (l) (org-roam-node-file (org-roam-backlink-source-node l)))
+ backlinks))
(defun nroam-backlinks--insert-heading (count)
"Insert the heading for the backlinks section with a COUNT."
@@ -66,19 +71,21 @@
"Insert all backlinks in GROUP."
(let* ((file (car group))
(backlinks (cdr group))
- (title (org-roam-format-link file
- (org-roam-db--get-title file)
- "file")))
+ (title (org-link-make-string (concat "file:" file)
+ (caar (org-roam-db-query
+ [:select title :from nodes :where (= file $s1)]
+ file)))))
(nroam--insert-heading 3 title)
(nroam--do-separated-by-newlines #'nroam-backlinks--insert-backlink backlinks)))
(defun nroam-backlinks--insert-backlink (backlink)
"Insert the source element where BACKLINK is defined."
- (seq-let (file _ props) backlink
- (when-let* ((point (plist-get props :point))
- (elt (nroam-backlinks--crawl-source file point))
+ (let* ((backlink-node (org-roam-backlink-source-node backlink))
+ (file (org-roam-node-file backlink-node))
+ (point (org-roam-backlink-point backlink)))
+ (when-let* ((elt (nroam-backlinks--crawl-source file point))
(type (plist-get elt :type))
- (content (nroam--fix-links (string-trim (plist-get elt :string)) file))
+ (content (org-roam-preview-get-contents file point) file)
(beg (point)))
(let ((outline (plist-get elt :outline))
(full-outline (plist-get elt :full-outline)))