Michael Naumov20k downloadsAdds support for angle bracket links and manages relative links properly
[[Wikilinks]] are not part of the Markdown spec, so a vault that uses them stops making sense outside Obsidian. Switch to Markdown links and you hit the next problem: Obsidian writes [Title](path%20with%20space/note%20with%20space.md), which is unreadable, and it writes relative paths without a leading ./, which other editors resolve differently than Obsidian does — the same link, two meanings.
This plugin makes Obsidian generate the readable, unambiguous form instead: angle brackets around paths with spaces, an explicit ./ on relative links, and tidy file:// URLs. It can also convert the links you already have, in one note, one folder, or the whole vault.
The documentation is a demo vault. Every feature has a note that explains what it does and why you would want it, with awkward paths already in place to try it against.
Start reading here — it is plain markdown, so it works on GitHub with nothing installed.
A copy of the vault ships with every release. You can access it via any of the following:
better-markdown-links-demo-vault.zip from the Releases. It unzips into a single better-markdown-links-demo-vault-<version> folder.demo-vault/ in this repository.[Title](<path with space/note with space.md>) instead of %20 noise. The Markdown spec allows it and Obsidian understands it; Obsidian just never generates it. 01 Angle bracket links./, so a relative path cannot be mistaken for an absolute one by anything that reads your vault. 02 Relative linksfile:// normalization — [note](file:///C:%5Cnotes%5Cplan.md) becomes [note](file:///C:/notes/plan.md). Other links are left alone. 03 Convert links[alias](<path.md>) even in a vault whose own Use [[Wikilinks]] setting says otherwise, either permanently via the Link style setting or for one run via the Convert links to Markdown commands. Replaces Replace all wikilinks with markdown links and its siblings from Consistent Attachments and Links. 03 Convert links! off every embed in a note, a folder, or the vault, optionally leaving the target's file name behind as a sub-bullet. 04 Demote embedsUp to version 4 this plugin updated the links pointing at a note when you renamed or moved it. Since 5.0.0 it does not, and rename and delete handling belongs to Advanced Rename and Delete Handler instead — one plugin owning it for the whole vault, rather than a copy inside each plugin that happened to need it.
This plugin offers to install it, once, and carries your old rename-handling value — along with the include and exclude paths that scoped it — over for you to approve. Declining costs you nothing else: every feature above keeps working, with Obsidian's own link update in charge of renames.
This plugin adds an additional overload to app.fileManager.generateMarkdownLink(). To use the extended signature from your own plugin, copy generate-markdown-link-extended.d.ts into your code.
Rename and delete handling is not this plugin's any more — see Renames above. Install Advanced Rename and Delete Handler to keep it.
For better performance on a large vault, consider also installing Backlink Cache.
The plugin is available in the official Community Plugins repository.
To install the latest beta release of this plugin (regardless if it is available in the official Community Plugins repository or not), follow these steps:
Add plugin button once and wait a few seconds for the plugin to install.By default, debug messages for this plugin are hidden.
To show them, run the following command:
window.DEBUG.enable('better-markdown-links');
For more details, refer to the documentation.
All notable changes to this project will be documented in the CHANGELOG.
Contributions are welcome — see CONTRIBUTING to get set up.
See my other Obsidian resources.