mirror of
https://github.com/org-roam/org-roam
synced 2025-09-28 16:50:58 -05:00
(fix): relative links should work from org-roam-buffer with multidir (#228)
This commit is contained in:
79
org-roam.el
79
org-roam.el
@@ -927,44 +927,47 @@ If item at point is not org-roam specific, default to Org behaviour."
|
|||||||
(let ((buffer-title (org-roam--get-title-or-slug file-path)))
|
(let ((buffer-title (org-roam--get-title-or-slug file-path)))
|
||||||
(with-current-buffer org-roam-buffer
|
(with-current-buffer org-roam-buffer
|
||||||
;; When dir-locals.el is used to override org-roam-directory,
|
;; When dir-locals.el is used to override org-roam-directory,
|
||||||
;; org-roam-buffer may have a different local org-roam-directory.
|
;; org-roam-buffer should have a different local org-roam-directory and
|
||||||
(let ((org-roam-directory source-org-roam-directory))
|
;; default-directory, as relative links are relative from the overridden
|
||||||
;; Locally overwrite the file opening function to re-use the
|
;; org-roam-directory.
|
||||||
;; last window org-roam was called from
|
(setq-local org-roam-directory source-org-roam-directory)
|
||||||
(setq-local
|
(setq-local default-directory source-org-roam-directory)
|
||||||
org-link-frame-setup
|
;; Locally overwrite the file opening function to re-use the
|
||||||
(cons '(file . org-roam--find-file) org-link-frame-setup))
|
;; last window org-roam was called from
|
||||||
(let ((inhibit-read-only t))
|
(setq-local
|
||||||
(erase-buffer)
|
org-link-frame-setup
|
||||||
(when (not (eq major-mode 'org-roam-backlinks-mode))
|
(cons '(file . org-roam--find-file) org-link-frame-setup))
|
||||||
(org-roam-backlinks-mode))
|
(let ((inhibit-read-only t))
|
||||||
(make-local-variable 'org-return-follows-link)
|
(erase-buffer)
|
||||||
(setq org-return-follows-link t)
|
(when (not (eq major-mode 'org-roam-backlinks-mode))
|
||||||
(insert
|
(org-roam-backlinks-mode))
|
||||||
(propertize buffer-title 'font-lock-face 'org-document-title))
|
(make-local-variable 'org-return-follows-link)
|
||||||
(if-let* ((backlinks (org-roam--get-backlinks file-path))
|
(setq org-return-follows-link t)
|
||||||
(grouped-backlinks (--group-by (nth 0 it) backlinks)))
|
(insert
|
||||||
(progn
|
(propertize buffer-title 'font-lock-face 'org-document-title))
|
||||||
(insert (format "\n\n* %d Backlinks\n"
|
(if-let* ((backlinks (org-roam--get-backlinks file-path))
|
||||||
(length backlinks)))
|
(grouped-backlinks (--group-by (nth 0 it) backlinks)))
|
||||||
(dolist (group grouped-backlinks)
|
(progn
|
||||||
(let ((file-from (car group))
|
(insert (format "\n\n* %d Backlinks\n"
|
||||||
(bls (cdr group)))
|
(length backlinks)))
|
||||||
(insert (format "** [[file:%s][%s]]\n"
|
(dolist (group grouped-backlinks)
|
||||||
file-from
|
(let ((file-from (car group))
|
||||||
(org-roam--get-title-or-slug file-from)))
|
(bls (cdr group)))
|
||||||
(dolist (backlink bls)
|
(insert (format "** [[file:%s][%s]]\n"
|
||||||
(pcase-let ((`(,file-from ,file-to ,props) backlink))
|
file-from
|
||||||
(insert (propertize
|
(org-roam--get-title-or-slug file-from)))
|
||||||
(s-trim (s-replace "\n" " "
|
(dolist (backlink bls)
|
||||||
(plist-get props :content)))
|
(pcase-let ((`(,file-from ,file-to ,props) backlink))
|
||||||
'font-lock-face 'org-block
|
(insert (propertize
|
||||||
'help-echo "mouse-1: visit backlinked note"
|
(s-trim (s-replace "\n" " "
|
||||||
'file-from file-from
|
(plist-get props :content)))
|
||||||
'file-from-point (plist-get props :point)))
|
'font-lock-face 'org-block
|
||||||
(insert "\n\n"))))))
|
'help-echo "mouse-1: visit backlinked note"
|
||||||
(insert "\n\n* No backlinks!")))
|
'file-from file-from
|
||||||
(read-only-mode 1))))))
|
'file-from-point (plist-get props :point)))
|
||||||
|
(insert "\n\n"))))))
|
||||||
|
(insert "\n\n* No backlinks!")))
|
||||||
|
(read-only-mode 1)))))
|
||||||
|
|
||||||
(cl-defun org-roam--maybe-update-buffer (&key redisplay)
|
(cl-defun org-roam--maybe-update-buffer (&key redisplay)
|
||||||
"Reconstructs `org-roam-buffer'.
|
"Reconstructs `org-roam-buffer'.
|
||||||
|
Reference in New Issue
Block a user