Skip to content

功能建议 给ByteMD集成Mermaid插件 #44

@rj-wangbin6

Description

@rj-wangbin6

给ByteMD集成Mermaid插件的过程并不复杂,核心是正确安装插件并在编辑器和查看器中配置。下面是一个汇总了所有必要依赖和步骤的指南,能帮助你快速完成集成。

📚 所需依赖包一览

开始之前,你的项目需要安装以下依赖:

依赖类型包名说明
核心依赖bytemdByteMD的核心库

。框架适配@bytemd/react用于React项目的组件https://blog.csdn.net/gitblog_00041/article/details/138146704

。(根据你的框架选择)@bytemd/vue用于Vue 2项目的组件https://developer.aliyun.com/article/900370

@bytemd/vue-next用于Vue 3项目的组件https://developer.aliyun.com/article/900370

关键插件@bytemd/plugin-mermaid实现Mermaid图表功能的核心插件https://juejin.cn/post/7230339089617125434

。辅助插件@bytemd/plugin-gfm支持GitHub风格的Markdown语法(如表格、删除线)https://blog.csdn.net/gitblog_00041/article/details/138146704

。样式文件bytemd/dist/index.cssByteMD的基础样式https://blog.csdn.net/gitblog_00041/article/details/138146704

🛠️ 集成步骤(以React为例)

下面的步骤以React项目为例,其他框架思路类似。

  1. 安装依赖
    在项目根目录下,通过npm或yarn安装所有必需的包。
# 使用 npm
npm install bytemd @bytemd/react @bytemd/plugin-mermaid @bytemd/plugin-gfm

# 或使用 yarn
yarn add bytemd @bytemd/react @bytemd/plugin-mermaid @bytemd/plugin-gfm

导入组件和插件
在你的React组件文件中,导入所需的模块。

javascript

import React, { useState } from 'react';
// 导入Editor组件
import { Editor } from '@bytemd/react';
// 导入Mermaid和GFM插件
import mermaid from '@bytemd/plugin-mermaid';
import gfm from '@bytemd/plugin-gfm';
// 导入基础样式
import 'bytemd/dist/index.css';

配置插件
初始化插件并放入一个数组中。

javascript

// 配置插件
const plugins = [
  gfm(),   // 启用GFM扩展语法
  mermaid(), // 启用Mermaid图表支持
  // 你可以继续添加其他插件...
];

使用组件
在组件中使用Editor,并将插件数组和内容状态绑定上去。

javascript

const App = () => {
  // 使用state来保存Markdown内容
  const [value, setValue] = useState('');

  return (
    <Editor
      value={value}
      plugins={plugins}
      onChange={(v) => setValue(v)}
    />
  );
};

export default App;

完成以上步骤后,你的ByteMD编辑器就已经支持Mermaid图表了。你可以尝试在编辑器中输入以下Mermaid代码进行测试:

markdown

```mermaid graph TD A[开始] --> B{判断} B -->|是| C[执行方案一] B -->|否| D[执行方案二] C --> E[结束] D --> E ```

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions