Provides a zettelkasten workflow similar to the experience of Lühmann.
A note is an org-mode file with the following structure
#+title: Your note title here
#+startup: showall
** Note
** References
** Sources
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.
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.
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.
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.
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.