nvim-orgmode / orgmode

Orgmode clone written in Lua for Neovim 0.9+.
https://nvim-orgmode.github.io/
MIT License
3.03k stars 134 forks source link

org id link #515

Closed jgollenz closed 8 months ago

jgollenz commented 1 year ago

Discussed in https://github.com/nvim-orgmode/orgmode/discussions/500

Originally posted by **WaytrueDeng** February 4, 2023 id link is a great feature which heavily used in org-roam, and it is easy to navigate to other file heading by id even after we change the file path. may I ask do we have a plan to implement this feature? thanks a lot for devs' hardworking
jgollenz commented 1 year ago

I believe this functionality is implemented in org-id.el for org-mode. In that file, we can see the various configuration variables. For example the variable org-id-locations-file can be set to a specific file, which will contain the id:filepath mappings.

org-roam simply forces all linkable targets (which they call nodes) to be associated with an id, which is then stored in sqlite (instead of a plaintext file) along with its aliases so it can query for backlinks and aliases. However, if you suddenly turned off org-roam, you would still be able to traverse these id links with vanilla org-mode.

Originally posted by @sg1fan in https://github.com/nvim-orgmode/orgmode/discussions/500#discussioncomment-5119630

jgollenz commented 1 year ago

@sg1fan if you could point to any high level documentation for id links, I'd be grateful. I don't know any Lisp

sg1fan commented 1 year ago

Search for "org-id" in this document. All of the methods/config variables should be prefixed with "org-id".

jgollenz commented 1 year ago

Thanks a lot :pray: this site seems more helpful than this (which seems to only list the functions that are actually used in the manual), but it is orgmode 9.0.9., which is a couple of years old now.

I took the function list from the manual as a baseline for our feature completeness, but an exhaustive list would be better

kristijanhusak commented 8 months ago

This feature was added some time ago. Docs are here https://github.com/nvim-orgmode/orgmode/blob/master/DOCS.md#org_id_uuid_program