/nroam

Org-roam backlinks within org-mode buffers

Primary LanguageEmacs LispGNU General Public License v3.0GPL-3.0

nroam https://github.com/NicolasPetton/nroam/actions/workflows/test.yml/badge.svg

Update: With the release of org-roam v2 and its new revamped side-buffer, I do not feel the same need for nroam as I did with org-roam v1. The project is now archived, but if someone wants to port nroam to org-roam v2, I’d be willing to hand over maintenance of the project.

nroam is a supplementary package for org-roam that replaces the backlink side buffer of Org-roam. Instead, it displays org-roam backlinks at the end of org-roam buffers. The user can also click a button to see unlinked occurrences of the buffer title (as defined by org-roam-unlinked-references).

Screenshots

Backlinks

screenshots/backlinks.png

Unlinked references

screenshots/unlinked-references.png

Rationale

One of the ideas behind nroam is to remove the friction and effort it takes to consult backlinks. I consider backlinks to be a very central piece of information about a note. Backlinks can even be the most important content of a note, for instance when using page links as tags.

It is easy to miss backlinks when they are not always visible with the main content of a note. The side buffer will not always be open, and even if it is, the information it contains is visually far away from the note you’re looking at.

By making them an integral part of the org buffer, backlinks also become more powerful. You could for instance make a sparse tree—see org-sparse-tree — to filter the contents of a note and its backlinks at the same time.

Installation

nroam is not yet available in MELPA. Until it is, you can install the Elisp files by hand in your .emacs.d or if you use straight.el add the following to you init file.

(use-package nroam
  :straight '(nroam :host github
                         :branch "master"
                         :repo "NicolasPetton/nroam")
  :after org-roam
  :config
  (add-hook 'org-mode-hook #'nroam-setup-maybe))

Setup & usage

To setup nroam for all org-mode buffer, evaluate the following:

(add-hook 'org-mode-hook #'nroam-setup-maybe)

The linked references section will be updated after each buffer save. It can also be manually updated by typing C-c C-c anywhere in the linked references section.

Warning

This package is in its infancy. Be careful when using it as it modifies your org-mode buffers—it should not modify your files though. Backup your data often.