V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
flingyp
V2EX  ›  分享创造

写了一个 vitepress 插件,集成了 Markmap 和 Mermaid 图表预览功能,为 Markdown 文档提供增强的图表支持。

  •  
  •   flingyp · 47 天前 · 920 次点击
    这是一个创建于 47 天前的主题,其中的信息可能已经有所发展或是发生改变。

    VitePress Plugin Legend

    npm

    Github

    一个综合性的 VitePress 插件,集成了 Markmap 和 Mermaid 图表预览功能,为 Markdown 文档提供增强的图表支持。

    ✨ 特性

    • 🗺️ Markmap 集成: Markdown 思维导图交互式预览
    • 🏞️ Mermaid 集成: 交互式图表(流程图、时序图等)
    • 🎨 可定制: 两个插件都支持灵活的配置选项
    • 🔧 简单设置: 单个插件安装,统一配置
    • 📁 组件支持: 提供 Markmap 和 Mermaid 的 Vue 组件
    • 🚀 TypeScript: 完整的 TypeScript 支持和类型定义

    📦 安装

    npm install vitepress-plugin-legend
    # 或
    pnpm add vitepress-plugin-legend
    # 或
    yarn add vitepress-plugin-legend
    

    🚀 快速开始

    步骤 1:配置 VitePress

    在 VitePress 配置中添加插件:

    // .vitepress/config.ts
    import { defineConfig } from 'vitepress';
    import { vitepressPluginLegend } from 'vitepress-plugin-legend';
    
    export default defineConfig({
      markdown: {
        config(md) {
          vitepressPluginLegend(md);
        },
      },
    });
    

    步骤 2:注册组件

    在主题中注册 Vue 组件:

    // .vitepress/theme/index.ts
    import type { Theme } from 'vitepress';
    import DefaultTheme from 'vitepress/theme';
    import { initComponent } from 'vitepress-plugin-legend/component';
    import 'vitepress-plugin-legend/dist/index.css';
    
    export default {
      extends: DefaultTheme,
      enhanceApp({ app }) {
        initComponent(app);
      },
    } satisfies Theme;
    

    高级配置

    // .vitepress/config.ts
    import { defineConfig } from 'vitepress';
    import { vitepressPluginLegend } from 'vitepress-plugin-legend';
    
    export default defineConfig({
      markdown: {
        config(md) {
          vitepressPluginLegend(md, {
            markmap: {
              showToolbar: true,
              // 其他 markmap 选项
            },
            mermaid: true, // 或 false 禁用
          });
        },
      },
    });
    

    单独使用插件

    如果你更喜欢单独使用插件:

    // .vitepress/config.ts
    import { defineConfig } from 'vitepress';
    import {
      vitepressMarkmapPreview,
      vitepressMermaidPreview,
    } from 'vitepress-plugin-legend';
    
    export default defineConfig({
      markdown: {
        config(md) {
          vitepressMarkmapPreview(md, { showToolbar: true });
          vitepressMermaidPreview(md);
        },
      },
    });
    
    // .vitepress/theme/index.ts
    import type { Theme } from 'vitepress';
    import DefaultTheme from 'vitepress/theme';
    import {
      initMarkmapComponent,
      initMermaidComponent,
    } from 'vitepress-plugin-legend/component';
    
    export default {
      extends: DefaultTheme,
      enhanceApp({ app }) {
        initMarkmapComponent(app);
        initMermaidComponent(app);
      },
    } satisfies Theme;
    

    📖 在 Markdown 中使用

    Markmap

    从 Markdown 列表创建思维导图:

    ```markmap
    # 根节点
    ## 分支 1
    - 项目 1
    - 项目 2
    ## 分支 2
    - 项目 A
    - 项目 B
    ```
    
    <PreviewMarkmapPath path="./other.md" showToolbar />
    <PreviewMarkmapPath />
    

    Mermaid

    创建各种图表:

    ```mermaid
    graph TD
        A[开始] --> B{决策}
        B -->|是| C[动作 1]
        B -->|否| D[动作 2]
    ```
    
    <PreviewMermaidPath path="./other.mmd" />
    

    ⚙️ 配置选项

    Markmap 选项

    interface VitepressMarkmapPreviewOptions {
      showToolbar?: boolean;
      // 其他 markmap 配置选项
    }
    

    插件选项

    interface VitepressPluginLegendOptions {
      markmap?: VitepressMarkmapPreviewOptions | false;
      mermaid?: boolean;
    }
    

    📦 子包

    此插件集成了以下包:

    包名 说明 版本
    vitepress-markmap-preview Markdown 思维导图预览插件 npm
    vitepress-mermaid-preview Markdown Mermaid 图表预览插件 npm

    🤝 贡献

    欢迎贡献!请随时提交 Pull Request 。

    📄 许可证

    MIT License


    flingyp 用 ❤️ 制作

    1 条回复    2025-07-22 11:32:27 +08:00
    mydebug
        1
    mydebug  
       47 天前
    歪瑞古德
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2568 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 04:50 · PVG 12:50 · LAX 21:50 · JFK 00:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.