From 6b5fd99e2e3cc40e564e76ed568807d87221e745 Mon Sep 17 00:00:00 2001 From: Damien Pollet Date: Sun, 14 Mar 2021 17:48:20 +0100 Subject: Organize backlinks under single heading --- nroam-backlinks.el | 18 +++++++++--------- nroam-unlinked.el | 2 +- nroam-utils.el | 10 ++++++++++ nroam.el | 1 + 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/nroam-backlinks.el b/nroam-backlinks.el index ff948fe..3d1cb3f 100644 --- a/nroam-backlinks.el +++ b/nroam-backlinks.el @@ -56,19 +56,19 @@ (defun nroam-backlinks--insert-heading (count) "Insert the heading for the backlinks section with a COUNT." - (insert (format "* %s %s :noexport:\n" - (if (= count 0) "No" count) - (nroam--pluralize count "linked reference")))) + (let ((title (format "%s %s" + (if (= count 0) "No" count) + (nroam--pluralize count "linked reference")))) + (nroam--insert-heading 2 title))) (defun nroam-backlinks--insert-group (group) "Insert all backlinks in GROUP." (let ((file (car group)) - (backlinks (cdr group))) - (insert (format "** %s\n" - (org-roam-format-link - file - (org-roam-db--get-title file) - "file"))) + (backlinks (cdr group)) + (title (org-roam-format-link file + (org-roam-db--get-title file) + "file"))) + (nroam--insert-heading 3 title) (nroam--do-separated-by-newlines #'nroam-backlinks--insert-backlink backlinks))) (defun nroam-backlinks--insert-backlink (backlink) diff --git a/nroam-unlinked.el b/nroam-unlinked.el index b989de3..5f511a4 100644 --- a/nroam-unlinked.el +++ b/nroam-unlinked.el @@ -44,7 +44,7 @@ (defun nroam-unlinked--insert-heading () "Insert the heading for unlinked references." - (insert "* Unlinked references :noexport:\n")) + (nroam--insert-heading 2 "Unlinked references")) (defun nroam-unlinked--insert-references () "Insert unlinked references for the current buffer." diff --git a/nroam-utils.el b/nroam-utils.el index e94bdff..a4e58fc 100644 --- a/nroam-utils.el +++ b/nroam-utils.el @@ -34,6 +34,16 @@ (let ((inhibit-read-only t)) (unless (eq ?\n (char-before (1- (point)))) (insert "\n")))) +(defun nroam--insert-heading (level title &optional tags) + "Insert a section heading" + (let ((pos (point)) + (stars (make-string level ?*))) + (insert stars " " title "\n") + (when tags + (save-excursion + (goto-char pos) + (org-set-tags tags))))) + (defun nroam--do-separated-by-newlines (function sequence) "Apply FUNCTION to each element of SEQUENCE. Insert a single newline between each call to FUNCTION." diff --git a/nroam.el b/nroam.el index b5bb4ab..26ab3be 100644 --- a/nroam.el +++ b/nroam.el @@ -186,6 +186,7 @@ Make the region inserted by BODY read-only, and marked with (unless (bobp) (nroam--ensure-empty-line)) (with-nroam-markers + (nroam--insert-heading 1 "Backlinks" "noexport") (nroam--do-separated-by-newlines #'funcall nroam-sections)) (nroam--set-sections-visibility)))) -- cgit v1.2.3-54-g00ecf From f2deda6cd7b0a38966262486e06afeb0a47ef336 Mon Sep 17 00:00:00 2001 From: Damien Pollet Date: Sun, 14 Mar 2021 20:54:01 +0100 Subject: Improve comment of nroam--insert-heading --- nroam-utils.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nroam-utils.el b/nroam-utils.el index a4e58fc..8dea64f 100644 --- a/nroam-utils.el +++ b/nroam-utils.el @@ -35,7 +35,8 @@ (unless (eq ?\n (char-before (1- (point)))) (insert "\n")))) (defun nroam--insert-heading (level title &optional tags) - "Insert a section heading" + "Insert TITLE as a section heading with LEVEL stars. +Add the string or list of strings as TAGS to the heading." (let ((pos (point)) (stars (make-string level ?*))) (insert stars " " title "\n") -- cgit v1.2.3-54-g00ecf