mirror of
https://github.com/org-roam/org-roam
synced 2025-09-16 15:56:48 -05:00
(feat) conditionally pluralize heading in org-roam-buffer (#521)
This commit is contained in:
@@ -100,6 +100,16 @@ When non-nil, the window will not be closed when deleting other windows."
|
|||||||
'font-lock-face
|
'font-lock-face
|
||||||
'org-document-title)))
|
'org-document-title)))
|
||||||
|
|
||||||
|
(defun org-roam--pluralize (string number)
|
||||||
|
"Conditionally pluralize STRING if NUMBER is above 1."
|
||||||
|
(let ((l (pcase number
|
||||||
|
((pred (listp)) (length number))
|
||||||
|
((pred (integerp)) number)
|
||||||
|
(wrong-type (signal 'wrong-type-argument
|
||||||
|
`((listp integerp)
|
||||||
|
,wrong-type))))))
|
||||||
|
(format "%s%s" string (if (> l 1) "s" ""))))
|
||||||
|
|
||||||
(defun org-roam-buffer--insert-citelinks ()
|
(defun org-roam-buffer--insert-citelinks ()
|
||||||
"Insert citation backlinks for the current buffer."
|
"Insert citation backlinks for the current buffer."
|
||||||
(if-let* ((roam-key (with-temp-buffer
|
(if-let* ((roam-key (with-temp-buffer
|
||||||
@@ -108,8 +118,9 @@ When non-nil, the window will not be closed when deleting other windows."
|
|||||||
(key-backlinks (org-roam--get-backlinks (s-chop-prefix "cite:" roam-key)))
|
(key-backlinks (org-roam--get-backlinks (s-chop-prefix "cite:" roam-key)))
|
||||||
(grouped-backlinks (--group-by (nth 0 it) key-backlinks)))
|
(grouped-backlinks (--group-by (nth 0 it) key-backlinks)))
|
||||||
(progn
|
(progn
|
||||||
(insert (format "\n\n* %d Cite backlinks\n"
|
(insert (let ((l (length key-backlinks)))
|
||||||
(length key-backlinks)))
|
(format "\n\n* %d %s\n"
|
||||||
|
l (org-roam--pluralize "Cite backlink" l))))
|
||||||
(dolist (group grouped-backlinks)
|
(dolist (group grouped-backlinks)
|
||||||
(let ((file-from (car group))
|
(let ((file-from (car group))
|
||||||
(bls (cdr group)))
|
(bls (cdr group)))
|
||||||
@@ -133,8 +144,9 @@ When non-nil, the window will not be closed when deleting other windows."
|
|||||||
(backlinks (org-roam--get-backlinks file-path))
|
(backlinks (org-roam--get-backlinks file-path))
|
||||||
(grouped-backlinks (--group-by (nth 0 it) backlinks)))
|
(grouped-backlinks (--group-by (nth 0 it) backlinks)))
|
||||||
(progn
|
(progn
|
||||||
(insert (format "\n\n* %d Backlinks\n"
|
(insert (let ((l (length backlinks)))
|
||||||
(length backlinks)))
|
(format "\n\n* %d %s\n"
|
||||||
|
l (org-roam--pluralize "Backlink" l))))
|
||||||
(dolist (group grouped-backlinks)
|
(dolist (group grouped-backlinks)
|
||||||
(let ((file-from (car group))
|
(let ((file-from (car group))
|
||||||
(bls (cdr group)))
|
(bls (cdr group)))
|
||||||
|
Reference in New Issue
Block a user