In this release we support fuzzy links of the form [[Title]]
, [[*Headline]]
and [[Title*Headline]]
. Completion for these fuzzy links is supported via completion-at-point
.
- #910 Deprecate
company-org-roam
, usingcompletion-at-point
instead. To use this with company, add thecompany-capf
backend instead.
- #1073 Rename file on title change, when
org-roam-rename-file-on-title-change
is non-nil. - #1071 Update link descriptions on title changes, and clean-up rename file advice
- #1061 Speed up the extraction of file properties, headlines, and titles
- #1046 New user option to exclude files from Org-roam
- #1032 File changes are now propagated to the database on idle timer. This prevents large wait times during file saves.
- #974 Protect region targeted by
org-roam-insert
- #994 Simplify org-roam-store-link
- #1062 Variable
org-roam-completions-everywhere
allows for completions everywhere from word at point - #910 Support fuzzy links of the form [[Title]], [[Headline]] and [[TitleHeadline]]
- #1057 Improve performance of database builds by preventing generation of LaTeX and image previews.
This release consisted of a big deal of refactoring and bug fixes. Notably, we fixed several catastrophic failures on db builds with bad setups (#854), and modularized tag and title extractions.
We also added some new features that had been a long time coming:
- We made the backlinks more outline-friendly by also showing the outline hierarchy for a backlink (#863)
- We now support nested captures, which is crucial for
org-roam-protocol
(#966)
- #908 Normalized titles in database. May break external packages that rely on unnormalized titles.
- #814 Implement
org-roam-insert-immediate
- #833 Add customization of file titles with
org-roam-title-to-slug-function
. - #839 Return selected file from
org-roam-insert
- #847 Add GC threshold
org-roam-db-gc-threshold
to temporarily change the threshold on expensive operations. - #847 Use sqlite3 transactions instead of storing the values to be inserted.
- #851 Add
'first-directory'
option fororg-roam-tag-sources
- #863 Display outline hierarchy in backlinks buffer
- #898 Add
org-roam-random-note
to browse a random note. - #900 Support and index all valid org links
- #966 Enable nested captures
- #854 Warn instead of fail when duplicate refs and IDs exist.
- #857 Fix tag extraction for symlinked directories.
- #894 Perform link fixes on all Org-roam files
- #952 Cache
${foo}
template variables so they do not need to be re-entered twice
In this release, we improved the linking process by achieving feature parity between links to files and links to headlines. Before, we used the file:foo::*bar
format to link to the headline bar
in file foo
, but this was prone to breakage upon renaming the file or modifying the headline. This is not the case anymore. Now, we use org-id
to create IDs for those headlines, which are then stored in our database to compute the relationships and jump around. Note that this will work even if you’re not using org-id
in your global configuration for Org-mode.
This is a major step forward. Supporting the in-file structure of Org-mode files means that we can interface with many of its core-features like TODOs, properties, priorities, etc. UX will have to be figured out, but this release ushers in a new age in terms of functionalities.
We also add org-roam-unlinked-references
, which naively finds text that could be references to the current Org-roam file.
- #701 Use
emacsql-sqlite3
instead ofemacsql-sqlite
for better Windows compatibility. This requires the presence of the standardsqlite3
binary on your machine. - #750 Deprecate
org-roam-buffer-no-delete-other-windows
in favour oforg-roam-buffer-window-parameters
.
- #787 Add
org-roam-unlinked-references
- #783 Add support for headlines
- #757 Roam global properties are now case-insensitive
- #680 , #703, #708 Add
org-roam-doctor
checkers forROAM_*
properties - #664 Add support for shelling out to
rg
andfind
inorg-roam--list-files
- #679, #683 Building of the graph now happens in a separate process
- #714 No longer print citelinks in backlinks buffer if there is no
ROAM_KEY
property ororg-ref
is not installed - #759, #760 Tags are only added to the tags table if there are actually tags present
- #700, #733 Allow symlinks within the
org-roam
directory
In this release, we added two new features:
org-roam-doctor
: a linting system that helps you discover possible problems with your Org-roam files. This is in the spirit of keeping notes in top quality.- A tagging system: one can now use sub-directories, and the
#+roam_tags
key add additional meta data to notes. For more information, see here.
As usual, this release comes with a multitude of bug-fixes and refactorings.
- #523 remove
org-roam-completion-fuzzy-match
in favor of using completion mechanism's configuration options directly - #547 Deprecate
org-roam-db--maybe-update
, in favour oforg-roam-db--update-maybe
- #604 Deprecate
org-roam-title-include-subdirs
,org-roam-title-subdir-format
org-roam-title-subdir-separator
, for a more general tagging system built on subdirectories
- #509 fix backup files being tracked in database
- #509 fix external org files being tracked in database
- #537 quote graphviz node and edge configuration options to allow multi-word configurations
- #545 fix
org-roam--extract-links
to ensure that multiple citations (cite:key1,key2
) are split correctly - #547 Fix unlinked citations
- #660 fix rename-file advice not working for renaming to directories
- #660 fix links breaking within file on file movement
- #538 Optionally use text in first headline as title
- #553 Add prefix argument to
org-roam-db-build-cache
for forcing rebuilds - #560 Apply 'error face to distinguish broken links
- #570 Add
org-roam-doctor
to diagnose org-roam files - #625 Add
org-roam-title-sources
to control how titles are retrieved within notes - #604 Add a tagging system.
org-roam-tag-sources
controls how tags are retrieved from notes
- #547 Added
type
column to therefs
table - #606 Added
org-roam-dev.el
for developer coding standards - #622 Online documentation now points to the Org-based documentation
To the average user, this release is mainly a bugfix release with additional options to customize. However, the changes made to the source is significant. Most notably, in this release:
- The codebase has been modularized into separate files, to ease future maintenance and adding of new features (mainly by @progfolio). Because of these changes, we had to rename many functions and variables: the old names are kept for backwards compatibility, but you are encouraged to use the new function names. You'll receive a warning when you're calling the function with its obsolete name.
- @kljohann did some fantastic work on graph generation: allowing building images for connected components within the graph up to a specified distance
- We also started supporting
org-ref
natively: cite links now show up in both the graph and the org-roam buffer.
In the coming months, you can expect work on bigger projects (e.g. revamping the org-roam buffer).
- #385 Deprecate
org-roam-graph-node-shape
in favour oforg-roam-graph-node-extra-config
. - #473 Deprecate
org-roam-date-filename-format
andorg-roam-date-title-format
, in favour oforg-roam-dailies-capture-templates
.
- #350 Add
org-roam-db-location
to customize location of org-roam database. - #359 Add
org-roam-verbose
to allow or silence printing of information. - #374 Add support for
org-ref
cite:
links - #380 Allow
org-roam-buffer-position
to also betop
orbottom
- #385 Add
org-roam-graph-node-extra-config
to configure Graphviz nodes - #398, #418 Add graph building for connected components
- #435 Add
org-roam-graph-edge-extra-config
to configure Graphviz edges - #439 Add support for
org-ref
citations to display as edges in graph. Addorg-roam-graph-edge-cites-extra-config
to configure these edges - #465 Add
org-roam-file-extensions
to allow detection of org files with different file extensions - #488 Allow a function for
org-roam-graph-viewer
- #491 Use TITLE as description when linking before first heading
- #470 Add workaround for undocumented
file-truename
behaviour inorg-roam--org-roam-file-p
.
Org-roam is now on MELPA! We have squashed most of the bugs, and Org-roam has been stable for the most part.
- #269 Add
org-roam-graphviz-extra-options
- #257 Add a company-backend
company-org-roam
- #284, #289 Configurable
org-roam-completion-system
with options'default
,'ido
,'ivy
and'helm
- #289 Add customizable
org-roam-fuzzy-match
to allow fuzzy-matching of candidates - #290 Add
org-roam-date-title-format
andorg-roam-date-filename-format
for customizing Org-roam's date files - #296 Allow multiple exclusion matchers in
org-roam-graph-exclude-matcher
- #293 Fix capture templates not working as expected for
org-roam-find-file
- #275 Fix database rebuild when
org-roam-directory
is set locally
This is a pre-release before the push to MELPA. It contains large
internal changes, with little user-facing changes. Most notably, the
backing storage has been changed to a SQLite database, and a
templating system using org-capture
is introduced.
- #200 Move Org-roam cache into a SQLite database.
- #203 Roam protocol is deprecated, in favour of extending org-roam-protocol.
- #182 Support file name aliases via
#+ROAM_ALIAS
. - #216 Adds templating functionality by extending org-capture.
- #232 Adds a prefix key to
org-roam-show-graph
, to generate graph without opening it. - #233 Adds
org-roam-graph-exclude-matcher
, which allows exclusion of nodes from graph. - #247 Add
org-roam-backlink
face, which allows customizing backlinks appearance - #259 Add optional initial-prompt to
org-roam-find-file
- #207, #221 small bugfixes to Org-roam graph generation
- #230 remove nonspacing marks from filenames, to prevent cross-platform errors
- [@acowley][https://github.com/acowley]
- [@teesloane][https://github.com/teesloane]
- #143
org-roam-mode
is now a global mode. The installation instructions have changed accordingly. - #103 Change
org-roam-file-format
to a function:org-roam-file-name-function
to allow more flexible file name customizaton. Also changesorg-roam-use-timestamp-as-filename
toorg-roam-filename-noconfirm
to better describe what it does.
- #145
org-roam-show-graph
: Fallback to Emacs SVG viewer - #141 add variable
org-roam-new-file-directory
for new Org-roam files - #138 add
org-roam-switch-to-buffer
- #124, #141 Maintain cache consistency on file rename and delete
- #87, #90 Support encrypted Org files
- #110 Add prefix to
org-roam-insert
, for inserting titles down-cased - #99 Add keybinding so that
<return>
ormouse-1
in the backlinks buffer visits the source file of the backlink at point
- #108 Locally overwrite the link following behaviour in the org-roam-buffer to open files in the same window
org-roam
was called from
- #86 Fix
org-roam--parse-content
incorrect:to
computation for nested files - #98 Fix
org-roam--find-file
picking up temporary files - #136 Misc bugfixes
Mostly a documentation/cleanup release.
- #62 Add the options
org-roam-use-timestamps-as-filename
andorg-roam-file-format
, more in documentation.
- #62 The ID (file-name) workflow is no longer first-class, but a fallback when titles don't exist.