Update styling for org-roam buffer
This commit is contained in:
parent
57633929d7
commit
99f30a6583
1 changed files with 33 additions and 15 deletions
48
org-roam.el
48
org-roam.el
|
@ -36,13 +36,12 @@ Valid values are
|
|||
(const right))
|
||||
:group 'org-roam)
|
||||
|
||||
(defcustom org-roam-buffer "*org-roam*"
|
||||
"Org-roam buffer name."
|
||||
:type 'string
|
||||
(defcustom org-roam-buffer-width 0.33 "Width of `org-roam' buffer."
|
||||
:type 'number
|
||||
:group 'org-roam)
|
||||
|
||||
(defcustom org-roam-preview-content-delimiter "------"
|
||||
"Delimiter for preview content."
|
||||
(defcustom org-roam-buffer "*org-roam*"
|
||||
"Org-roam buffer name."
|
||||
:type 'string
|
||||
:group 'org-roam)
|
||||
|
||||
|
@ -341,6 +340,18 @@ This is equivalent to removing the node from the graph."
|
|||
(org-element-property :value kw)))
|
||||
:first-match t)))
|
||||
|
||||
(defun org-roam--extract-file-title (file)
|
||||
"Extract the title from `FILE'."
|
||||
(with-temp-buffer
|
||||
(insert-file-contents file)
|
||||
(org-element-map
|
||||
(org-element-parse-buffer)
|
||||
'keyword
|
||||
(lambda (kw)
|
||||
(when (string= (org-element-property :key kw) "TITLE")
|
||||
(org-element-property :value kw)))
|
||||
:first-match t)))
|
||||
|
||||
(defun org-roam-update (file-path)
|
||||
"Show the backlinks for given org file for file at `FILE-PATH'."
|
||||
(when org-roam-cache
|
||||
|
@ -353,16 +364,23 @@ This is equivalent to removing the node from the graph."
|
|||
(org-mode))
|
||||
(make-local-variable 'org-return-follows-link)
|
||||
(setq org-return-follows-link t)
|
||||
(insert title)
|
||||
(insert "\n\n* Backlinks\n")
|
||||
(when-let (backlinks (gethash file-path (plist-get org-roam-cache :backward)))
|
||||
(maphash (lambda (file-from contents)
|
||||
(insert (format "** [[file:%s][%s]]\n" file-from (org-roam--get-id file-from)))
|
||||
(dolist (content contents)
|
||||
(insert (format "%s\n" org-roam-preview-content-delimiter))
|
||||
(insert (s-replace "\n" " " content))
|
||||
(insert (format "\n%s\n\n" org-roam-preview-content-delimiter))))
|
||||
backlinks)))
|
||||
(insert
|
||||
(propertize title 'font-lock-face 'org-document-title))
|
||||
(if-let ((backlinks (gethash file-path (plist-get org-roam-cache :backward))))
|
||||
(progn
|
||||
(insert (format "\n\n* %d Backlinks\n"
|
||||
(hash-table-count backlinks)))
|
||||
(maphash (lambda (file-from contents)
|
||||
(insert (format "** [[file:%s][%s]]\n"
|
||||
file-from
|
||||
(or (org-roam--extract-file-title file-from)
|
||||
(org-roam--get-id file-from))))
|
||||
(dolist (content contents)
|
||||
(insert (concat (propertize (s-trim (s-replace "\n" " " content))
|
||||
'font-lock-face 'org-block)
|
||||
"\n\n"))))
|
||||
backlinks))
|
||||
(insert "\n\n* No backlinks!")))
|
||||
(read-only-mode 1)))
|
||||
(setq org-roam-current-file file-path)))
|
||||
|
||||
|
|
Loading…
Reference in a new issue