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.