Skip to content

MarkMap 文档

一个支持 Markdown 源码查看 + 思维导图预览切换 的可视化组件,具备缩放、重置视图、下载、全屏等实用功能,适合用于知识整理、项目规划等场景。

✨ 特性

  • 🖥️ 双视图模式
    • 支持「预览」与「代码」两种模式自由切换。
  • 📄 Markdown 转思维导图
    • 内置解析器,能将 Markdown 内容解析为树形结构并渲染成思维导图。
  • 🔍 交互体验
    • 支持缩放、重置视图和拖拽操作。
    • 节点具有悬停效果,增强交互性。
  • 💾 导出功能
    • 一键下载思维导图的 SVG 文件或 Markdown 源码文件。
  • 🧩 嵌入式全屏
    • 纯 CSS 实现,不依赖浏览器全屏 API。

📦 引入&使用

单个引入

在你要使用的页面中引入组件

md
<script setup>
    import { defineClientComponent } from 'vitepress'
    import { MarkMap } from '@leelaa/vitepress-plugin-extended'
    const MarkMapView = defineClientComponent(() => MarkMap)
</script>

全局引入

在你的.vitepress/theme/index.ts中引入组件

js
import { defineAsyncComponent, h } from "vue";
import DefaultTheme from "vitepress/theme";
import { MarkMap } from "@leelaa/vitepress-plugin-extended";
export default {
  enhanceApp({ app }) {
    app.component("MarkMap", MarkMap);
  },
};

扩展 md 插件

在你的.vitepress\config.ts中引入插件

js
import { defineConfig } from "vitepress";
import { MarkMapPlugin } from "@leelaa/vitepress-plugin-extended";
export default defineConfig({
  markdown: {
    breaks: true,
    math: true,
    lineNumbers: true,
    lazyLoading: true,
    config: (md) => {
      MarkMapPlugin(md);
    },
  },
});

📁 示例

在vue中使用

vue
<MarkMap content="# 思维导图标题
 - 子节点 1
 - 子节点 2"/>

在md中使用

md
```markmap
# 思维导图标题
 - 子节点 1
 - 子节点 2
```

🎈 组件参数说明

参数名类型默认值描述
contentstring""输入的 MarkMap 内容
theme"light" | "dark""light"主题风格(未来可扩展样式)
heightstring"600px"组件高度

📁 预览与下载

预览模式工具栏

按钮功能
🔍 放大点击后通过 D3.js 的 zoom 行为放大思维导图视图
🔎 缩小点击后通过 D3.js 的 zoom 行为缩小思维导图视图
🔄 重置视图点击后将视图重置为初始状态,借助 D3.js 重置变换
💾 下载 SVG点击后下载思维导图的 SVG 文件
🖥️ 切换全屏模式点击后切换全屏显示思维导图

代码模式工具栏

按钮功能
📋 复制代码点击后复制 Markdown 源码到剪贴板
💾 下载 Markdown点击后下载 Markdown 源码文件
🖥️ 切换全屏模式点击后切换全屏显示 Markdown 源码

基于 MIT 许可发布