Organization of Gnosis (Knowledge) for GNU Emacs
Org Gnosis a a minimal org-mode parsing tool that organizes the data of your notes as atomic nodes in an sqlite database.
- Git repositories:
- User manual:
- Official Manual (latest)
- GNU ELPA (stable release)
About
org-gnosis
can be used as a drop-in replacement fororg-roam
org-gnosis node & org-gnosis-ui
Each heading with an ID is treated as an atomic note (node), storing it’s metadata in an relation database to facilitate efficient linking & searching.
Special functionality for journaling with journal entries in a separated directory & customizable templates is also available.
Installation
org-gnosis
is available in GNU ELPA
Recommended use-package
example:
(use-package org-gnosis
:ensure t
:init
;; Example for separated journaling & notes keymap
(define-prefix-command 'my/notes-map)
(define-prefix-command 'my/journal-map)
:config
;; Common settings you might want to tweak to your liking
(setf org-gnosis-dir "~/Notes"
;; Whe non-nil, create notes as gpg encrypted files
org-gnosis-create-as-gpg nil
;; TODO files, commonly used for templates.
org-gnosis-todo-files org-agenda-files
;; Used in #'org-gnosis-todos for template generation
org-gnosis-bullet-point-char "+"
;; Default completing-read function
org-gnosis-completing-read-func #'org-completing-read
;; Recommended if you use a vertical completion system (e.g vertico)
org-gnosis-show-tags t)
(defun example/org-gnosis-book-template ()
(let ((date (format-time-string "%Y-%m-%d"))
(book-title (completing-read
"Example book: "
'("Free Software, Free Society" "How to Take Smart Notes"))))
(format "#+DATE: %s \n#+BOOK_TITLE: %s\n\n* Main Idea\n* Key Points\n* Own Thoughts"
date book-title)))
(add-to-list 'org-gnosis-node-templates
'("Book Example" example/org-gnosis-book-template))
:bind (("C-c n" . thanos/notes-map)
("C-c n j" . thanos/journal-map)
:map thanos/notes-map
("f" . org-gnosis-find)
("i" . org-gnosis-insert)
("t" . org-gnosis-find-by-tag)
:map thanos/journal-map
("j" . org-gnosis-journal)
("f" . org-gnosis-journal-find)
("i" . org-gnosis-journal-insert)
:map org-mode-map
("C-c C-." . org-gnosis-insert-tag)
("C-c i" . org-id-get-create)))
If you already have a note collection, run
M-x org-gnosis-db-sync
to sync your notes with org-gnosis.