I want to be able to link blocks with unique ids. obsidian blocks do not have unique ids
This means that the block cannot be moved between different files, and once it is moved, all links to the block will break
Because whether the link comes with ob or is generated by the Advanced URI, the link of the block is based on the body of the file
As A result, a block cannot be moved from document A to document B during information reconstruction without all related links breaking
Blocks cannot flow smoothly between documents, so it is necessary to ensure that all blocks are established in a document in a library at the beginning
This link structure makes it difficult to reconstruct later notes
Proposed solution
Make links based on unique ids, not based on libraries and files as upper-level paths
For example, obsidian://open? vault= block ID
Instead of obsidian://open? vault= library name &file= folder name %2F File name
Also non-obsidian ://advanced-uri? vault= library name &block= block ID&uid= file ID
This is a must for personal knowledge management. Doubly so for Obsidian, the main selling point of which is enabling linking ideas together. Digital note-taking shines brightest when ideas can flow freely between tools and across time. These aren’t just notes we’re linking - they’re threads of thought that weave through task managers, calendars, and knowledge bases. Strong, permanent links are essential for true networked thought. A robust personal knowledge system needs to stand the test of time and work seamlessly across our whole digital ecosystem.
Seems that Advanced URI are providing a working solution, however, personally I still think this feature should be added as the core feature of Obsidian
Nice sharing! But I still consider such “Note Unique Identifier” should be implemented natively by official client.
Currently since the lack of this feature, several plugins have implemented identifier in their own way and different plugins generate different deep link to note file, which could cause some issue. Having official implementation could help resolve such issue.
UUIDs do sound promising and its definitely better than hardcoded paths that can only be kept coupled with Obsidian APIs and break with regular file operations, but has anyone considered leveraging Git instead?
Many Obsidian users already git-track their vaults. Git infers renames by comparing tree snapshots with content similarity (git diff -M); no UUIDs, no file modification, no OS-specific features, works on every filesystem.
Obsidian already has both snapshots available: its internal metadata cache (last known state) and the filesystem (current state). On vault open or sync, it could diff them to detect renames/moves and update wikilinks automatically; even for external changes made in a file explorer or terminal.
Any future improvements to Git’s binary handling would flow to Obsidian for free.
TLDR UID Coupling to an established ecosystem rather than maintaining custom identity tracking seems better imo