Update styling for org-roam buffer

This commit is contained in:
Jethro Kuan
2020-02-09 20:59:07 +08:00
parent 57633929d7
commit 99f30a6583

View File

@@ -36,13 +36,12 @@ Valid values are
(const right)) (const right))
:group 'org-roam) :group 'org-roam)
(defcustom org-roam-buffer "*org-roam*" (defcustom org-roam-buffer-width 0.33 "Width of `org-roam' buffer."
"Org-roam buffer name." :type 'number
:type 'string
:group 'org-roam) :group 'org-roam)
(defcustom org-roam-preview-content-delimiter "------" (defcustom org-roam-buffer "*org-roam*"
"Delimiter for preview content." "Org-roam buffer name."
:type 'string :type 'string
:group 'org-roam) :group 'org-roam)
@@ -341,6 +340,18 @@ This is equivalent to removing the node from the graph."
(org-element-property :value kw))) (org-element-property :value kw)))
:first-match t))) :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) (defun org-roam-update (file-path)
"Show the backlinks for given org file for file at `FILE-PATH'." "Show the backlinks for given org file for file at `FILE-PATH'."
(when org-roam-cache (when org-roam-cache
@@ -353,16 +364,23 @@ This is equivalent to removing the node from the graph."
(org-mode)) (org-mode))
(make-local-variable 'org-return-follows-link) (make-local-variable 'org-return-follows-link)
(setq org-return-follows-link t) (setq org-return-follows-link t)
(insert title) (insert
(insert "\n\n* Backlinks\n") (propertize title 'font-lock-face 'org-document-title))
(when-let (backlinks (gethash file-path (plist-get org-roam-cache :backward))) (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) (maphash (lambda (file-from contents)
(insert (format "** [[file:%s][%s]]\n" file-from (org-roam--get-id file-from))) (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) (dolist (content contents)
(insert (format "%s\n" org-roam-preview-content-delimiter)) (insert (concat (propertize (s-trim (s-replace "\n" " " content))
(insert (s-replace "\n" " " content)) 'font-lock-face 'org-block)
(insert (format "\n%s\n\n" org-roam-preview-content-delimiter)))) "\n\n"))))
backlinks))) backlinks))
(insert "\n\n* No backlinks!")))
(read-only-mode 1))) (read-only-mode 1)))
(setq org-roam-current-file file-path))) (setq org-roam-current-file file-path)))