Skip to content

landakram/org-z

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

org-z

Lightweight, Org-mode flavored zettelkasten links.

org-z is an Emacs global minor mode that enables a lightweight, Org mode style zettelkasten. Unlike a traditional zettelkasten, org-z focuses on headings rather than pages, allowing you to make hyperlinks within a single Org mode document.

By treating headings, rather than pages, as first-class, we can use standard functions that ship with org like org-store-link to maximum effect.

org-z has the following features:

  • Insert links to org headings with interactive search (C-c-. by default). Helm and Selectrum are supported.
  • Links are managed automatically using org-store-link and org-ids
  • Links to new / missing targets auto-create targets in a configurable file location (new.org by default). Creation of the new heading is customizable using a capture template.
  • Backlinks

./images/org-z-existing-heading.gif

./images/org-z-new-heading.gif

Installation

Install with straight.el:

(use-package org-z
  :straight (org-z :type git :host github :repo "landakram/org-z")
  :config
  (org-z-mode 1))

org-z requires a completion backend. Helm and Selectrum are currently supported. You’ll need to load one of the completion backend packages, in addition to org-z itself:

(use-package org-z-selectrum
  :straight (org-z-selectrum :type git :host github :repo "landakram/org-z"))

Loading the package sets the completion backend by appending to org-z-completion-backends and setting org-z-completion-backend.

A lightweight zettelkasten

I combine org-z with a daily journal, implemented as a file+datetree capture template, and org-z’s support for backlinks.

(setq org-capture-templates
      '(;; ...
        ("j" "Journal entry" entry (file+datetree "~/org/journal.org")
         "* %?\n" :unnarrowed t)))

(use-package org
  :straight org-plus-contrib
  :config
  (require 'org-eldoc))

(use-package org-z
  :straight (org-z :type git :host github :repo "landakram/org-z")
  :general
  (leader-def :infix "o"
    "b" 'org-z-backlinks-at-point)
  :config
  (org-z-mode 1))

As I go about my day, I make journal entries that link to various headings in my collection of org files. I make these links by invoking org-z-insert-link as I write my journal entry. I periodically inspect backlinks using org-z-backlinks-at-point to investigate connections. By enabling org-eldoc, I get to see the # of backlinks for a given heading when I hover over it.

Every once in a while, I review my journal entries and org-refile headings or simply re-organize journal entry knowledge into “longer-term storage” (reference.org or projects.org).

Motivation

I was inspired by org-roam, but wanted something that fit my existing org workflow, which is a handful of files with deep headings rather than a file per topic.

About

Lightweight, Org-mode flavored zettelkasten links.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published