Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Better Markdown Links

Michael NaumovMichael Naumov26k downloads

Adds support for angle bracket links and manages relative links properly

Add to Obsidian
Better Markdown Links screenshot
Better Markdown Links screenshot
Better Markdown Links screenshot
Better Markdown Links screenshot
Better Markdown Links screenshot
Better Markdown Links screenshot
  • Overview
  • Scorecard
  • Updates169

[[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 — and decide for itself which style and which path form to write, rather than following Obsidian's own settings.

What you get by default: percent-escapes and bare paths

More screenshots
Readable paths, angle brackets, an explicit ./ Convert one note, one folder, or the whole vault What you get by default: percent-escapes and bare paths Readable paths, angle brackets, an explicit ./ Convert one note, one folder, or the whole vault

Demo 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:

  1. Running the Better Markdown Links: Open demo vault command.
  2. Downloading better-markdown-links-demo-vault.zip from the Releases. It unzips into a single better-markdown-links-demo-vault-<version> folder.
  3. Browsing its source in demo-vault/ in this repository.

What it does

  • Angle bracket links — [Title](<path with space/note.md>) instead of %20 noise: 01 Angle bracket links.
  • Explicit relative links — a leading ./, so a relative path cannot be mistaken for an absolute one: 02 Relative links.
  • The [[ autocomplete too — a link picked from it is written in the configured form as it is inserted, not rewritten afterwards: 01 Angle bracket links.
  • Convert what you already have — a selection, a note, a folder or the whole vault, on command or automatically as you save: 03 Convert links.
  • file:// normalization — escaped backslashes in a file:// link become plain forward slashes: 03 Convert links.
  • Force Markdown links — whatever Obsidian's Use [[Wikilinks]] setting says, permanently or for one run: 03 Convert links.
  • Force a link path style — relative, shortest or vault-absolute, whatever Obsidian's New link format setting says: 03 Convert links.
  • Demote embeds to links — strip the ! off every embed in a selection, a note, a folder or the vault: 04 Demote embeds.
  • Links that do not resolve — point an alias-only wikilink at the note carrying the alias, or create the note: 03 Convert links.
  • Undo a folder or vault run with git — in a vault kept in git, each in-folder or entire-vault run becomes one commit that the Undo a bulk operation... command reverts: 05 Settings.
  • Strict link resolution — resolve a link only relative to its note or as a vault path, never to a same-named note in another folder: 02 Relative links.
  • GitHub heading anchors — follow [x](note.md#my-heading) the way GitHub does, and optionally write heading links that way too: 06 GitHub heading anchors.
  • Leave chosen links alone — keep links to matching targets, such as ![[file.base]] embeds, exactly as written while converting the rest: 03 Convert links.

Integration with other plugins

  • Since 5.0.0, renames and deletes are handled by Advanced Rename and Delete Handler, which this plugin offers to install: 05 Settings.
  • Backlink Cache speeds this plugin up on a large vault.
  • Advanced Metadata Cache, with its Names module on, speeds up resolving links via aliases: 03 Convert links.

See also

My other Obsidian resources

Plugin Features How Better Markdown Links differs
Alias Linker Resolves bare alias links without edits; nearest-note tie-breaking Alternative alias handling: explicit rewrite to a unique target
Better Relative Wikilinks Relative wikilinks only for ambiguous names Alternative path policy: one style for all links, including Markdown
Embed Link Converter Image-embed syntax conversion; preview and backups; paths unchanged Overlaps on conversion; all link paths/styles; demotes embeds to links rather than changing embed syntax
Link Converter Converts wikilink/Markdown syntax and relative, absolute or shortest paths Broader conversion: selections/folders, angle brackets, leading ./ and automatic save-time conversion
Logseq Style Alias Resolves bare alias links without edits; empty-note cleanup Alternative alias handling: explicit rewrites; optional note creation
Markdown Link Space Encoder Encodes selected spaces as %20 Alternative space handling: angle-bracketed paths; spaces preserved
Update Relative Links Repairs relative Markdown paths on moves; converts paths to relative Overlaps on paths; other path styles and angle brackets; delegates move handling
Wikilinks to MDLinks Toggles the link under the cursor between wikilink and Markdown Broader conversion scope: a selection, note, folder or vault to one style

Last searched for similar plugins on 2026-10-26.

For plugin developers

This plugin publishes an API, generateMarkdownLinkExtended(), through the @mnaoumov/obsidian-lib plugin registry under the id better-markdown-links, for a plugin that wants to write the same links without re-implementing them. Copy api.d.ts and api-contract.ts into your plugin.

Usage, the contract, versioning, and moving over from the pre-6.0.0 generateMarkdownLink.extended(): Plugin API.

Installation

The plugin is available in the official Community Plugins repository.

Beta versions

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:

  1. Ensure you have the BRAT plugin installed and enabled.
  2. Click Install via BRAT.
  3. An Obsidian pop-up window should appear. In the window, click the Add plugin button once and wait a few seconds for the plugin to install.

Debugging

By default, debug messages for this plugin (id: better-markdown-links) are hidden.

If you need to enable them refer to the documentation.

Changelog

All notable changes to this project will be documented in the CHANGELOG.

Contributing

Contributions are welcome — see CONTRIBUTING to get set up.

Support

Filing an issue (for AI agents and humans)

Open issues through the issue forms, not as blank issues.

To report a bug from inside Obsidian, run the Better Markdown Links: Report a bug command. It opens the bug form with the plugin version, the Obsidian version and your operating system already filled in.

Filing from the CLI or the API (gh issue create --body, or an AI agent filing for you) skips the form, and gh issue create --template cannot load an issue form. In that case, open the matching form in .github/ISSUE_TEMPLATE/, copy every field as a ### <label> heading in the form's order, and fill in each one. Always state the plugin version, the Obsidian version and your operating system.

License

© Michael Naumov

HealthExcellent
ReviewSatisfactory
About
Generate Markdown angle-bracket links for readable paths with spaces and ensure compatibility with other Markdown editors. Prepend ./ to relative links, convert links in a note or the entire vault, auto-convert new links, and update links automatically on file rename or move.
LinksFilesAutomation
Details
Current version
6.6.0
Last updated
2 days ago
Created
2 years ago
Updates
169 releases
Downloads
26k
Compatible with
Obsidian 1.14.5+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
Buy Me a Coffee
Author
Michael NaumovMichael Naumovmnaoumov
mnaoumov.dev
GitHubmnaoumov
Xmnaoumov
  1. Community
  2. Plugins
  3. Links
  4. Better Markdown Links

Related plugins

Advanced URI

Control everything with URI.

Find orphaned files and broken links

Find files that are not linked anywhere and would otherwise be lost in your vault. In other words: files with no backlinks.

Custom Attachment Location

Customize attachment location with variables($filename, $data, etc) like Typora.

QuickAdd

Quickly add new notes or content to your vault.

Vault Changelog

Maintain a changelog of recently edited notes.

ZettelFlow

Build guided Canvas workflows, read PDFs and EPUBs, and turn highlights into cited notes connected to your local Zettelkasten and knowledge graph.

Waypoint

Easily generate dynamic MOCs in your folder notes using waypoints. Enables folders to show up in the graph view and removes the need for messy tags!

Auto Link Title

Automatically fetches the titles of links from the web.

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Excalidraw

Visual PKM powerhouse. Create and edit Excalidraw drawings.