chipsenkbeil / org-roam.nvim

Port of org-roam to neovim using orgmode
MIT License
125 stars 11 forks source link

[feature] Track origin of roam node #17

Closed chipsenkbeil closed 7 months ago

chipsenkbeil commented 7 months ago

In Zettelkasten, not only are links between index cards a core feature, there is also the concept of partial ordering of ideas incorporated into the ids of nodes. Known as Folgezettel, it's debated quite a lot.

Org roam leverages orgmode's id generation, which supports:

An id that doesn't exist is Luhmann-ID, which was the original and incorporated sequencing into notes.

Rather than have ids conform to include ordering, my thought is to have an additional property that contains the id of the predecessor of the note (if any).

:PROPERTIES:
:ID: 5678
:ROAM_ORIGIN: 1234
:END:

Some note that I created while I was within node 1234.
When capturing or inserting, this would be injected automatically if we are within a node at the time.

Alongside ROAM_ORIGIN, we'd want something like org-roam-insert-origin and org-roam-remove-origin to add/update an origin (open the select dialog) or remove the origin.

From there, we would add a field to org-roam.core.file.Node that represents the origin and index on it so we can quickly find origins tied to a node.

Lastly, we'd want to update the roam buffer to show the origin if the current node has one.