Improve display of custom templates in the minibuffer
This commit is contained in:
parent
13f0c4785e
commit
c6e4ffb929
2 changed files with 26 additions and 13 deletions
|
@ -2,10 +2,10 @@
|
|||
;;;###if (featurep! +roam2)
|
||||
|
||||
;;; Custom node accessors
|
||||
|
||||
;;;###autoload (autoload 'org-roam-node-doom-filetitle "lang/org/autoload/contrib-roam2" nil t)
|
||||
(cl-defmethod org-roam-node-doom-filetitle ((node org-roam-node))
|
||||
"Return NODE's file level \"#+title:\"."
|
||||
"Return the value of \"#+title:\" (if any) from file that NODE resides in.
|
||||
If there's no file-level title in the file, return empty string."
|
||||
(or (if (= (org-roam-node-level node) 0)
|
||||
(org-roam-node-title node)
|
||||
(org-roam-get-keyword "TITLE" (org-roam-node-file node)))
|
||||
|
@ -13,25 +13,28 @@
|
|||
|
||||
;;;###autoload (autoload 'org-roam-node-doom-hierarchy "lang/org/autoload/contrib-roam2" nil t)
|
||||
(cl-defmethod org-roam-node-doom-hierarchy ((node org-roam-node))
|
||||
"Return NODE's hierarchy, constructed of its file-title, OLP and title.
|
||||
This will automatically strip out any missing elements or
|
||||
duplicates from the hierarchy."
|
||||
"Return hierarchy for NODE, constructed of its file title, OLP and direct title.
|
||||
If some elements are missing, they will be stripped out."
|
||||
(let ((title (org-roam-node-title node))
|
||||
(olp (org-roam-node-olp node))
|
||||
(level (org-roam-node-level node))
|
||||
(filetitle (org-roam-node-doom-filetitle node)))
|
||||
;; TODO Add 'face based text properties for each type?
|
||||
(filetitle (org-roam-node-doom-filetitle node))
|
||||
(separator (propertize " > " 'face 'shadow)))
|
||||
(cl-case level
|
||||
;; node is a top-level file
|
||||
(0 filetitle)
|
||||
;; node is a level 1 heading
|
||||
(1 (concat filetitle " > " title))
|
||||
(1 (concat (propertize filetitle 'face '(shadow italic))
|
||||
separator title))
|
||||
;; node is a heading with an arbitrary outline path
|
||||
(t (concat filetitle " > " (string-join olp " > ") " > " title)))))
|
||||
(t (concat (propertize filetitle 'face '(shadow italic))
|
||||
separator (propertize (string-join olp " > ") 'face '(shadow italic))
|
||||
separator title)))))
|
||||
|
||||
;;;###autoload (autoload 'org-roam-node-doom-subdirs "lang/org/autoload/contrib-roam2" nil t)
|
||||
(cl-defmethod org-roam-node-doom-subdirs ((node org-roam-node))
|
||||
"Return NODE's subdirectories, relative to `org-roam-directory'."
|
||||
"Return subdirectories of `org-roam-directory' in which NODE resides in.
|
||||
If there's none, return an empty string."
|
||||
(if-let ((dirs (thread-first node
|
||||
(org-roam-node-file)
|
||||
(file-relative-name org-roam-directory)
|
||||
|
@ -41,5 +44,15 @@ duplicates from the hierarchy."
|
|||
|
||||
;;;###autoload (autoload 'org-roam-node-doom-tags "lang/org/autoload/contrib-roam2" nil t)
|
||||
(cl-defmethod org-roam-node-doom-tags ((node org-roam-node))
|
||||
"Return tags formatted in the same way how they appear in org files."
|
||||
(mapconcat (lambda (s) (concat ":" s)) (org-roam-node-tags node) nil))
|
||||
"Return tags formatted in the same way how they appear in org files.
|
||||
Treat subdirectories as tags too. If there's no elements to build
|
||||
the tags of, return an empty string."
|
||||
(let ((tags (org-roam-node-tags node))
|
||||
(subdirs (org-roam-node-doom-subdirs node)))
|
||||
(when tags
|
||||
(setq tags (propertize (concat (mapconcat (lambda (s) (concat ":" s)) tags nil) ":")
|
||||
'face 'shadow)))
|
||||
(unless (string-empty-p subdirs)
|
||||
(setq subdirs (propertize (concat ":" (replace-regexp-in-string "/\\|\\\\" ":" subdirs))
|
||||
'face '(shadow italic))))
|
||||
(replace-regexp-in-string ":+" (propertize ":" 'face 'shadow) (concat subdirs tags))))
|
||||
|
|
|
@ -75,7 +75,7 @@ In case of failure, fail gracefully."
|
|||
(or org-roam-db-location
|
||||
(concat doom-etc-dir "org-roam.db"))
|
||||
org-roam-node-display-template
|
||||
"${doom-hierarchy:*} ${doom-tags:35} ${doom-subdirs}"
|
||||
"${doom-hierarchy:*} ${doom-tags:45}"
|
||||
org-roam-completion-everywhere t
|
||||
org-roam-mode-section-functions
|
||||
#'(org-roam-backlinks-section
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue