SilverBullet from day 1 has resolved [wiki links](<wiki links>) as absolute, case-sensitive paths from the space root. Other tools, notably Obsidian, works differently: Obsidian resolves a bare [Note](<Note>) by case-insensitive name lookup across the whole vault (Obsidian speak for Space), and its default link format writes bare names wherever they are unique. Two problems followed:
This has been discussed in the community various time, e.g. here.
While alternatives like having a “resolution-mode” were considered (e.g. an “obsidian mode”), this would just lead to a lot of complication and weird behavior when switching mode. Instead, we’re updating the current link resolving algorithm to (ideally) support both schemes simultaneously and the only configuration to be set is the preferred link writing format.
The rules:
[api/Auth](</API/auth>) finds docs/api/Auth). This matches Obsidian’s partial paths and making qualified links survive a root change too. Example: 1/ambiguous link (note that the 1/ prefix make it ambiguous, but it’s still not a full path).The scope is wiki links only, including documents () and Transclusions. The [index](<^ meta-page link syntax is not included here (it always will continue to use absolute paths). Markdown links keep their existing folder-relative semantics. The [[ADR/003 Indexed Object Graph>) keeps storing resolved absolute paths, so queries, backlinks and the graph never see write format.
There is now a “Link write format” configuration option in the Configuration Manager that allows you to choose either: shortest, shortest-suffix, or full-path. See Link#Link write format for details.
linkWriteFormat back to full-path re-qualifies nothing already written bare.absolute | shortest). Rejected: two resolution semantics in one codebase, too complicated and a pain to maintain.