A lightweight, high-performance plugin for markdown-it that adds support for bi-directional linking using double-bracket and tag-style syntax—just like in Obsidian and Logseq.
- ⚙️ Pure TypeScript: Zero dependencies, works in any JavaScript environment (Node.js, Browser, ReactNative, etc.)
- 🚀 High Performance: Designed for real-time rendering with minimal overhead
- 🔄 Multi-style Support: Compatible with Obsidian-style embeds and Logseq-style tags
This plugin extends markdown-it to recognize and render bi-directional link syntax, enabling knowledge graph-style linking in your markdown documents.
Syntax | Description | Status |
---|---|---|
[[content]] |
Popular wiki-style link | ✅ Done |
#content, #[[content]] |
Logseq-style tagged link | ✅ Done |
[[content|alias]], #[[content|alias]], ![[content|alias]] |
Display alias text | ✅ Done |
![[content]] |
Obsidian-style embedded content | 🚧 Doing |
![[content]]
is currently recognized but lacks a dedicated rendering module. Its default behavior is the same as[[content]]
. You can specify a custom module via parameters.
pnpm install markdown-it-bi-directional-links
-
✅ The plugin is ready to use out of the box after installation.
-
🔍 By default, all links (e.g., [[content]]) are displayed as local links, such as
/notes/content
. -
🛠️ Recommended: You should override the default renderer to generate internal links, route paths, or custom HTML/Component depending on your application.
Pull requests and issues are welcome! Please follow the coding style and include tests where applicable.
MIT License © 2025 mjrt