插件开发请阅读官方文档,本次示例为 为 编辑器 拓展 mermaid 流程图。本示例参考官方 公式插件 代码
目录结构
1 | -RemaindFlow |
依赖
1 | "katex": "^0.16.10", |
代码
MyModalMenu.js
1 | export default class MyModalMenu { |
editFlow.js
还没写好测试,跟MyModalMenu.js结构差不多
1 | import { |
renderElem.js
1 | import { h } from 'snabbdom'; |
elemToHtml.js
1 | /** |
parseElemHtml.js
1 | /** |
withAttachment.js
1 | import { DomEditor } from '@wangeditor/editor'; |
index.js
1 | import RemaindFlow from './MyModalMenu'; |
registerCustomElem.js
这个方案失败了,原因是 mermaid.render 方法会使用document查找获取元素,但是影子dom中元素无法通过 document访问。导致 流程图,渲染不上去。像 marked 那种方式渲染的才方便封装
1 | let newText = marked.render(text); |
1 | import mermaid from "mermaid"; |
引入使用
在 main.js 中引用
1 | // 注册 wangEditor 插件 |
编辑器配置
1 | const toolbarConfig = { |
编辑器更新内容时初始化流程图,
1 | import mermaid from 'mermaid'; |
为啥不在插件代码中写这部分逻辑呢,formula 插件
katex 可以直接渲染这个元素为 公式,所以使用的自定义元素在影子dom中渲染,但 mermaid 不能这么搞,他对影子DOM无效。暂时没想到更优雅的姿势
1 | katex.render(value, this.span, { |
- 本文作者: 王不留行
- 本文链接: https://wyf195075595.github.io/2024/04/25/programming/jsplugin/wangEditorPlugin/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!