Enhancement : CRUD + AI Integrations
Proposal: Extend MarkMap VS Code Plugin with Interactive Editing + AI, or Consider Hybrid Integration with WiseMapping UI
Hello @gera2ld , Firstly—thank you deeply for the incredible tool you've built! MarkMap is an elegant visualization tool that brings Markdown to life.
I’m exploring extending its capabilities toward an interactive and AI-powered mind mapping experience, and would love your feedback before moving forward.
Core Use Cases
Our goal is to support multiple interactive UX modes atop Markdown-native syntax:
- Story Mode for Book writers (book → chapters → sections → scenes)
- Research Mode for researchers (knowledge graphs with citations)
- Auto-mindmap Generation on a Research Topic with the use of User-Knowledge base + Web-Scraping + AI integrations.
- Decision Mode for executives & Researchers (options, pros/cons, interactive evaluation)
Each mode requires:
- Editable, visual mindmaps
- Semantic node types and metadata
- GPT-powered content suggestions and expansions
- Persistent versioning , Mind-map Snapshots and undo/redo
MarkMap Architecture
- Markdown parsing is handled via
markmap-lib(Transformer class) which converts.mdinto a hierarchical node tree (AST-like structure with features) - Rendering occurs using
markmap-view+ D3/SVG to visualize that tree - The VS Code plugin simply sends the Markdown to the transformer, renders the SVG in a WebView, and lacks interactivity or two-way editing
Option 1: Extend Existing VS Code Plugin
Suggested enhancements:
Enable node CRUD (create/edit/delete) via clicks and draggable SVG overlays- Sync those interactions back to Markdown in real-time by mapping SVG edits to tree updates and Markdown regenerations- Inject GPT-based UI prompts for expand, summarize, rewrite, etc.- Support node metadata (tags, node types) and undo/redo- Allow mode-specific templates (Story, Research, Decision) Challenges:
Current SVG-only rendering lacks event hooks and editable overlays
Manipulating Markdown programmatically is non-trivial (would require custom AST diffing or use of libraries like
remark,mdast-util-to-markdown)Merging two-way sync without corrupting Markdown requires careful workaround
Option 2: Hybrid Approach: MarkMap Parser + WiseMapping-Like UI
Design:
- Use
markmap-lib/Transformerto generate a JSON node-tree from Markdown - Hand off that tree to a full-fledged React-based mind-map UI (inspired by WiseMapping or React Flow)
- Perform all CRUD, layout, and AI interactions on this tree in the UI
- Serialize node tree back into Markdown when needed
Advantages:
- High-UX editor with drag-drop, context menus, inline editing
- Easier to integrate AI plugins at node layer
- Supports structured modes and metadata without hacking SVG
- Cleaner separation of parsing vs rendering logic
Request for Feedback
Before I start implementing a prototype, I’d appreciate your guidance:
- Are you open to expanding the current plugin to gradually support interactivity?
- Or would you recommend the hybrid architecture as the preferred long-term solution?
- Any architectural limitations or preferences I should be aware of?
Whether you prefer this to remain experimental or be merged incrementally, I’m open to collaborating closely. Thanks for considering this—a potential great way to evolve MarkMap into a more interactive, AI-enhanced platform!
Warm regards, @ram-lankada
Source: markmap/markmap