No description
Find a file
targit 1d9968bf69
Make the db caching more efficient for gpg encrypted files (#963)
Before this patch all hash-sums were computed over the files or
buffers content.  For encrypted files this means that we first have
decrypt the file before we can compute the hash-sum.  So when the
cache get's updated all gpg files need to be decrypted which is a very
expensive operation and nearly defeats the purpose of having a cache
in the first place (for gpg files).

This changes the computation of hash-sums for gpg encrypted files.
Instead of the content the raw files on disk will be read.

This shouldn't interfere with the current use of hashes.

There is one ugly (but otherwise inconsequential) ward, though.
For open buffers of to be gpg encrypted files we need to compute the
hash sum over the contents as well.  This is because there is
no (easy) way to get the encrypted version.  The consequence is that
that buffers file will be rehashed again (then using the bytes on
disk).  But all other non changed gpg files will only be hashed once,
as desired.

Co-authored-by: Jethro Kuan <jethrokuan95@gmail.com>
2020-07-23 22:36:57 +08:00
.github (internal): Exclude org-roam-compat.el from linting (#713) 2020-05-28 01:22:51 -04:00
doc (docs): add docs on notes versioning (#949) 2020-07-19 12:37:53 +08:00
tests (tests): increase perf test threshold (#887) 2020-07-05 17:36:44 +08:00
.dir-locals.el (feat): Switch to a minor-mode for the dev-suite (#805) 2020-06-12 22:01:52 +02:00
.gitignore (docs): track landing page (#620) 2020-05-13 19:26:37 +08:00
.readthedocs.yml add readthedocs.yml 2020-02-12 19:40:13 +08:00
BACKERS.md (docs): Add forkrul to BACKERS (#896) 2020-07-07 12:36:27 +08:00
CHANGELOG.md (feat): cache entered template variables (#952) 2020-07-20 22:14:21 +08:00
default.mk (internal): use Make and Org to build manual (#546) 2020-05-03 18:06:27 +08:00
LICENSE Add GPL License 2020-02-12 21:47:57 +08:00
Makefile (ci): make multi-page manual (#618) 2020-05-13 18:56:42 +08:00
makem.sh (internal): make lint errors fail CI, and disable spellcheck during linting (#561) 2020-05-04 15:17:39 +08:00
org-roam-buffer.el (fix): fix display of preview content (#950) 2020-07-19 13:33:01 +08:00
org-roam-capture.el (feat): cache entered template variables (#952) 2020-07-20 22:14:21 +08:00
org-roam-compat.el (internal): org-roam-db--clear -> org-roam-db-clear (#902) 2020-07-08 15:55:23 +08:00
org-roam-completion.el (release): Org-roam v1.2.0 (#802) 2020-06-12 23:29:52 +08:00
org-roam-dailies.el (release): Org-roam v1.2.0 (#802) 2020-06-12 23:29:52 +08:00
org-roam-db.el Make the db caching more efficient for gpg encrypted files (#963) 2020-07-23 22:36:57 +08:00
org-roam-dev.el (feat): Switch to a minor-mode for the dev-suite (#805) 2020-06-12 22:01:52 +02:00
org-roam-doctor.el (release): Org-roam v1.2.0 (#802) 2020-06-12 23:29:52 +08:00
org-roam-graph.el (fix): fix org-roam graph building with new db schema (#914) 2020-07-10 19:23:38 +08:00
org-roam-macs.el (fix): enable org-mode in temp buffers (#957) 2020-07-22 20:59:35 +08:00
org-roam-protocol.el (feat): add customizable org-roam-title-to-slug-function (#833) 2020-06-17 14:58:11 +08:00
org-roam.el (fix): Check sqlite3’s executability using boundp (#954) 2020-07-21 15:51:43 +08:00
README.md (doc): Create ‘Getting Help’ (#961) 2020-07-22 19:06:54 +02:00

License GPL 3 GitHub Release MELPA

Synopsis

Org-roam is a Roam replica built on top of the all-powerful Org-mode.

Org-roam is a solution for effortless non-hierarchical note-taking with Org-mode. With Org-roam, notes flow naturally, making note-taking fun and easy. Org-roam should also work as a plug-and-play solution for anyone already using Org-mode for their personal wiki.

Org-roam aims to implement the core features of Roam, leveraging the mature ecosystem around Org-mode where possible. Eventually, we hope to further introduce features enabled by the Emacs ecosystem.

@technovangelist has produced a video describing Org-roam and the concepts behind it:

Making Connections in your Notes

Important links:

A Preview

Here's a screencast of Org-roam. The org-roam-buffer (window on the right) shows backlinks for the active Org-roam buffer (window on the left), as well as the surrounding content in the backlink file. The database is built once, and updated incrementally. The graph is generated from the link structure, and can be used to navigate to the respective files.

img

Installation

You can install org-roam using package.el:

M-x package-install RET org-roam RET

Here's a sample configuration with using use-package:

(use-package org-roam
      :ensure t
      :hook
      (after-init . org-roam-mode)
      :custom
      (org-roam-directory "/path/to/org-files/")
      :bind (:map org-roam-mode-map
              (("C-c n l" . org-roam)
               ("C-c n f" . org-roam-find-file)
               ("C-c n g" . org-roam-graph-show))
              :map org-mode-map
              (("C-c n i" . org-roam-insert))
              (("C-c n I" . org-roam-insert-immediate))))

org-roam-graph by default expects to find the dot executable from the graphviz package in the exec-path. Ensure graphviz is installed and found if you want to use this feature or customize your configuration for org-roam-graph to use a different tool.

For more detailed installation and configuration instructions (including for Doom and Spacemacs users), please see the documentation.

Frequently-asked Questions

Q: How do I create a note whose title already matches one of the candidates (e.g. creating bar when barricade already exists)?

A: With ivy, you need to press C-M-j to use the current input instead of the nearest candidate. (Source: ivys FAQ)

Getting Help

Before creating a new topic/issue, please be mindful of our time and ensure that it has not already been addressed on GitHub or on Discourse.

  • If you are new to Emacs and have problem setting up Org-roam, please ask your question on Slack, channel #how-do-i.
  • For quick questions, please ask them on Slack, channel #troubleshooting.
  • If something is not working as it should, or if you would like to suggest a new feature, please create a new issue.
  • If you have questions about your workflow with the slip-box method, please find a relevant topic on Discourse, or create a new one.

Knowledge Bases using Org-roam

Changelog

A changelog is being maintained here

Contributing

To report bugs and suggest new feature use the issue tracker. If you have some code which you would like to be merged, then open a pull request. Please also see CONTRIBUTING.md.

License

Copyright © Jethro Kuan and contributors. Distributed under the GNU General Public License, Version 3