Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/buggaarde/org-zk

Zettelkasten in org-mode
https://github.com/buggaarde/org-zk

Last synced: 5 days ago
JSON representation

Zettelkasten in org-mode

Awesome Lists containing this project

README

        

* org-zk -- Zettelkasten in org-mode

Provides a zettelkasten workflow similar to the experience of Lühmann.

** The basics

A note is an org-mode file with the following structure
#+begin_src org
,#+title: Your note title here
,#+startup: showall
,** Note

,** References

,** Sources

#+end_src

The actual contents of the note goes into the ~Note~ section;
any reference to other notes are listed in the ~References~ section,
and external sources are listed in the ~Sources~ section.
References and sources are normal org-mode links,
and can be listed inline in the note itself --
but are also automatically listed in their respective sections as well,
when the provided ~org-zk~ functions are used to insert links.

** Features
*** Unique note identifiers and descriptive titles

Create and open notes with ~org-zk-create-empty-note-and-open~ and ~org-zk-open-note~.

The file itself will be named after the datetime at creation,
and will therefore be unique.
To open a note by it's title, instead of ~find-file~ use ~org-zk-open-note~,
which will list all notes by their ~#+title~ attribute.

When you invoke ~org-zk-open-note~, if you select a note title that doesn't already exist,
a new note with the selected title is created before opening it.

*** Linking notes

Link notes with ~org-zk-add-backlink-to-references~ and ~org-zk-insert-backlink~.

Both functions will prompt the user for a note to link to.
They will add the link to the ~References~ section of the note.
Use ~org-zk-insert-backlink~ when you also want to add the link inline in the body of the ~Note~ section.

Links between notes are always bi-directional,
and when you add a link from one note to another, a link from the former will be added automatically to the ~References~ section of the former.

With both ~org-zk-add-backlink-to-references~ and ~org-zk-insert-backlink~,
if you select a note title that doesn't already exist,
a new note with the selected title is created, before linking to it.

*** Automatic update of link descriptions when a note ~#+title~ changes

Since notes are often works in progress, the note ~#+title~ sometimes need to change.

Invoke ~org-zk-update-all-links-to-this-note~ to update all backlinks to the current note,
and update all link descriptions to now show the current ~#+title~.

By default, a save-hook is added to the ~org-zk~ minor-mode that watches for any ~#+title~ changes,
and calls ~org-zk-update-all-links-to-this-note~ before saving.

**** Save twice when saving all notes

Since a save-hook automatically updates any ~#+title~ changes,
calling ~save-some-buffers~ on multiple notes with changed titles,
will leave un-saved changes due to the update.
To save these updates, ~save-some-buffers~ has to be called a second time,
which is slightly inconvenient.

Invoke ~org-zk-save-all-notes~ to automatically call ~save-some-buffers~ twice, only on ~org-zk~ notes.