技术

给你的编辑器加上思维导图、流程图、白板:一套开源组件,多种文档通用

做 QuireKit 的时候,我顺手把文档里最常用的 5 种图:思维导图、流程图、白板、文本绘图、多维表格,做成了一套独立的开源组件,MIT 许可。
QuireKit 自己的三种文档:分页文档、块文档、Markdown ,用的就是这一套。它们也可以单独拿出来用:Tiptap 、ProseMirror 、CodeMirror 、自己写的编辑器,甚至一个 textarea ,都能接。
双击文档里的导图,打开的就是这个编辑器。
它和你见过的导图、流程图插件,有四点不一样:

  • 像图片一样用。 在任何文档里,它们都渲染成一张普通图片:单击可以像图片一样调大小、改对齐,背后存的却是能继续编辑的数据。三种文档里体验完全一致。
  • 一份数据,哪种文档都能放。 在富文本里是一个块,在 Markdown 里是一段代码,在 Word 式的分页文档里是一个图片对象。
  • AI 辅助写作时能直接画。 用 AI 辅助写文章,它会在合适的地方插入流程图、导图,插进来的是能双击编辑的真图,不是截图。
  • 导出了也不会“死”。 导出成 Word ,在 Word 里是图;导回来,还能双击接着改。
五个编辑器,各有什么亮点

思维导图( Quire Mind )

  • 20 个模板,分基础风格、工作规划、学习生活、分析决策四类:每周计划、项目推进、会议记录、SWOT 分析、读书摘记……打开就能用
  • 脑图、逻辑图、组织结构图、时间轴,一键切换结构
  • 主题上能加链接、备注、图片和标记
  • 直接导入导出 XMind ,也能从文字大纲生成
  • 没保存就关掉,修改留在本机草稿里,下次打开还能恢复
思维导图的模板库。
文档: https://docs.quirekit.com/plugins/reference/mind-map/
流程图

  • 三种画风:标准、轻手绘、铅笔排线。手绘风格放进技术文档、方案汇报里,一下子就不一样了
  • 31 个模板,分 ER 图、UML 类图、时序图、泳道图、组织结构、鱼骨分析、架构关系、业务流程、数据处理等十多类
  • 自动布局、对齐分布、旋转翻转,连线自动绕行,支持分页打印
  • 演示模式:按步骤播放节点和连线的流动动画,可以暂停、单步、调速
  • 能画 ER 图(字段、类型、主外键、关系基数)和 UML 类图(关联、依赖、泛化、实现、聚合、组合)
  • 整张图能存成模板,选中的部分能存成组件,下次直接复用
流程图的手绘风格:自然笔触,铅笔排线填充。
流程图的模板库。
文档: https://docs.quirekit.com/plugins/reference/flowchart/
白板

  • 自由书写、图形、文字和笔迹
  • 直接导入导出 Excalidraw 文件,也能导出 PNG
文档: https://docs.quirekit.com/plugins/reference/whiteboard/
文本绘图

  • 写 Mermaid 、PlantUML 、Graphviz 的源码,旁边实时出图
  • 可以切换语言,也能从模板开始
在线体验: https://text-diagram.quirekit.com
多维表格

  • 文本、数字、单选、多选、勾选、日期、日期时间等字段
  • 表格和看板两种视图随时切换,拖动卡片就改状态
  • 筛选、排序、分组、数值汇总,记录详情里编辑长文本
多维表格的看板视图。
文档: https://docs.quirekit.com/plugins/reference/data-view/
为什么要做

现在的文档,只有文字已经不够:要图文并茂,图要好看,还要能被 AI 读写。导图、流程图、白板、多维表格,成了文档的标配。
用 AI 辅助写文章已经很常见了,可写出来的大多是一整屏文字。要让 AI 辅助写出图文并茂的文章,图就不能是截图:截图在 AI 眼里是一团像素,它既画不出来,也改不了。图的数据得以结构化的形式留在文档里,AI 才能画、才能改。
我做 QuireKit 时,难点还要再多一层:分页文档、块文档、Markdown 三种文档,要共用同一张导图。
市面上常见的做法有三类,各有适用的场景,但都满足不了这个需求:

  • 嵌入成品。 比如 draw.io 的嵌入模式:用 iframe 加载完整的编辑器,通过消息传递 XML 。功能很全,但界面和数据格式都是它自己的,导出 Word 、写进 Markdown 时怎么显示,得自己处理。
  • 直接用画布库。 X6 、simple-mind-map 、Excalidraw 的画布和交互都很成熟,可它们只负责“画”。数据存在哪、怎么保存和取消、导出时显示什么,每个接入方都要自己再写一遍。
  • 编辑器自带的扩展。 开箱即用,但和那一个编辑器绑死了:数据存在那个编辑器的格式里,换个编辑器就得重做。
所以我的思路是:画布用现成的库,“放进文档”这一层自己做,而且做成通用的。 任何文档,接一次就能用。
怎么设计的

核心只有一句话:编辑器只管编辑,存在哪由文档决定。
编辑器不知道自己在哪种文档里。它拿到一份数据,让用户编辑,再把结果交回去。每种文档只需要写一个很薄的接入层,负责取出数据、写回结果。两层之间,只靠两个约定连接。
约定一:一个通用的嵌入对象

一张导图,不管放在哪种文档里,都是同一个 JSON 对象:
{  "type": "quirekit-mind-map-embed",  "version": 1,  "id": "mind-1",  "title": "项目推进",  "document": { "...": "导图本身的数据" },  "preview": { "dataUrl": "data:image/png;base64,...", "width": 732, "height": 380 }}它由三部分组成:导图的数据、一个稳定的 ID 、一张预览图。
数据在 document 里,AI 读的、改的就是它。预览图留给不认识这种对象的地方:在 GitHub 上看 Markdown ,或者导出 Word 、PDF 时,不用把编辑器跑起来,直接显示这张图。预览图丢了,也能从数据重新生成。
约定二:一个编辑请求

接入层要打开编辑器,只需要提供三项:
interface MindMapEditRequest {  document: MindMapEmbed                                                         // 当前数据  commit(document: MindMapEmbed): 'saved' | 'conflict' | 'readonly' | 'missing'  // 写回  release(): void                                                                // 结束,归还焦点}commit 有四种返回值。你在编辑导图的这段时间里,文档可能已经被别人改了、变成了只读,或者这张图已经被删掉了;编辑器会按返回值提示你,不会悄悄覆盖别人的内容。没保存就关掉也没关系,修改会留在本机的草稿里,下次打开还能恢复。
内核可以随时换

画布内核用的是成熟的开源库:流程图基于 AntV X6 ,思维导图基于 simple-mind-map ,白板基于 Excalidraw ,文本绘图直接用 Mermaid 、PlantUML 、Graphviz 的官方库。感谢这些项目。
内核通过独立的适配包接入。哪天上游停止维护,或者出现了更合适的选择,换掉内核即可,文档里的数据不受影响。多维表格是自己写的。所有编辑器共用同一套组件库,界面风格一致。
AI 辅助写出图文并茂的文章

结构化数据带来的最大好处,是 AI 可以直接“画图”。
每个图形组件都会把自己的命令描述出来,交给 AI 调用:插入流程图、插入思维导图、插入文本绘图,以及更新它们。在 MD Editor 里用 AI 辅助写一篇文章,它会先想清楚哪里需要图、该用哪种图:步骤和分支用流程图,层级和提纲用思维导图,时序交互用时序图,占比和趋势用饼图或折线图,对比用表格。
AI 插进来的是真正的流程图和导图,跟你手动画的一样,双击就能接着改。画错了也不怕:比如 Mermaid 语法写错,这一步会被拒绝并返回错误,AI 按错误修好源码再提交。每次插入或修改都是一步撤销;修改已有的图时会核对版本,不会覆盖别人刚改过的内容。
(图形组件和命令描述都是 MIT ; MD Editor 里的 AI 助手是商业组件,开发和评估免费。)
不同场景怎么接

富文本编辑器( ProseMirror 、Tiptap 一类)

嵌入对象存成一个块节点的属性,双击这个块就打开编辑器。QuireKit 的块编辑器就是这样接的:
块编辑器里的流程图和思维导图,可以拖动、复制。
Markdown

把嵌入对象的 JSON 写进一段代码围栏。编辑器里显示成图,源码里就是一段代码:

切到源码视图,导图就是一段 quirekit-mind-map 代码围栏。
放进 Git ,每次修改都看得见;用 GitHub 、VS Code 打开也不会坏。QuireKit 的 Markdown 编辑器(基于 CodeMirror )就是这样接的。
Word 式的分页文档

导图以图片对象的形式排在页面上,随正文一起分页、一起打印,背后存着导图的数据:

导出 Word 时,预览图和原始数据一起写进文件。导回来以后,导图和流程图还能接着编辑。这部分涉及 Word 格式,属于 QuireKit 的商业组件,开发和评估免费。
没有编辑器,或者想自己管存储

直接调用:读出数据,打开编辑器,保存时写回。
npm install @quirekit/mind-map@alpha @quirekit/mind-editor@alphaimport { createMindMapEmbed, parseMindMapEmbed, serializeMindMapEmbed } from '@quirekit/mind-map'import { openMindMapDialog } from '@quirekit/mind-editor'import '@quirekit/mind-editor/styles.css'const saved = loadFromYourDoc()                      // 你自己的读取逻辑,返回字符串或 nullconst document = saved ? parseMindMapEmbed(saved) : createMindMapEmbed('mind-1')openMindMapDialog({  ownerDocument: window.document,  request: {    document,    commit(next) {      saveToYourDoc(serializeMindMapEmbed(next))     // 你自己的写入逻辑      return 'saved'    },    release() {},  },})想嵌在页面里而不是弹窗,用 Vue 组件 QuireMindEditor(从 @quirekit/mind-editor/vue 导入)。流程图、白板的接法相同,换成对应的包即可。
预览图太大

预览图默认以 base64 写进文档,不需要任何服务就能用。代价是体积:一张导图几十到几百 KB ,Markdown 源码里会出现一大段编码。
有图床的话,提供一个上传函数:
openMindMapDialog({  // ...  uploadPreview: async (png) => uploadToYourCdn(png),   // 返回图片地址})预览图会像普通图片一样传上去,文档里只保存地址。
开源范围


  • MIT:5 个编辑器、块编辑器、Markdown 编辑器,以及它们的接入层,闭源商用也可以。
  • 商业组件(开发和评估免费):分页文档中涉及 Word 格式的接入,以及可往返的 Word 导出。
最后说说 QuireKit

这些图形组件,只是 QuireKit 的一小部分。QuireKit 是一套开源的文档编辑器生态,用来在你自己的产品里搭在线文档、知识库和 Markdown 写作工具。它底下是两套 Tiptap 风格的编辑器框架,一套基于 ProseMirror ,一套基于 CodeMirror ,上面是三个现成的编辑器:

  • Classic 分页文档编辑器:QuireKit 主打的产品。在浏览器里真正分页,断行、分页、光标、选区全部自己算,画在 Canvas 或 SVG 上,像 Word 、WPS 一样一页一页地编辑。可以导入导出 DOCX ,也能导出 PDF 和 OFD (这几项是商业组件)。
  • MSFE ,为 Markdown 定制的编辑器框架:Markdown 原文就是文档,文档视图、实时预览、源码视图改的都是同一份 Markdown ,没碰过的行一个字节都不变。上面那个 Markdown 编辑器 MD Editor ,就是用它搭出来的。
  • 块编辑器:Notion 式的块文档,适合笔记和知识库。
三个编辑器和这些图形组件,用的都是同一套 UI 组件库。
目前还是 alpha ,接口还会调整,欢迎试用和反馈:

  • 官网(首屏就是 Classic ,可以直接编辑): https://quirekit.com
  • MSFE: https://msfe.quirekit.com
  • 块编辑器: https://quirekit.com/demo/block-editor/
  • GitHub: https://github.com/quirekit/quirekit
觉得有用,欢迎点个 Star 。也想听听:你的编辑器最想接入哪种图?


⚠️内容来自互联网,如有侵权请点击反馈!侵权投诉
本帖共 1 条回复,登录后即可查看

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

hot.热文换一批
  1. 宇宙到底是大还是小?一张纸对折103次的厚度,宇宙已装不下
  2. 别眨眼!人类首次"看见"光子!你家灯泡里全是它!
  3. 人类至今无法彻底解释的15个顶级现象,看完敬畏万物
  4. 二十出头就显成熟?揭秘上一代人的"大人模样"背后原因
  5. 明明含有氢和氧,氢可燃氧助燃,为什么水偏偏不能燃烧?
  6. 🎉庆祝应用中心上架15个插件了,抽波优惠券![开奖时间:2026-04-26 20:00]
  7. 人类已发现外星生命?科学家:就在12亿公里外,可能以甲烷为食
  8. 又一个新游戏上线了,欢迎体验!
  9. 自来水微塑料3000万/升,煮沸后降到480万,比桶装水高还是低?
  10. 女装退货率飙至80%,商家为何挂密码锁发货?
  11. 现在这金价是不是还有余地
  12. 古人为何50岁就百病缠身?揭秘1972年7月30日“马王堆女尸”出土之谜
  13. 世界上最凶猛的10种鸟,金雕到底有多厉害?猎杀野狼轻而易举?
  14. 中国真挖到“宝”了!海水里藏45亿吨铀,美国70年难题被突破
  15. 太阳和银河系之间,还有一个神秘结构?
  16. 科学家:在人类出生前,有两种神秘的力量帮助构建了人脑
  17. 下潜到1万多米的海底,人类发现了不该出现的东西?需要引起警惕
  18. 古人到底能有多苦?这么说吧,现代人在古人面前不值一提
  19. 🌱牛马论坛-每日早报-2026年10月08日
  20. 终于装上了LightSNS,然后模块一通买,还是花了上千
  21. 吃一块能顶一天?军用压缩饼干为啥抗饿?
  22. 小时候父母不让玩手机的秘密,网友亲测:经历过才懂!
  23. 牛马论坛[NIUMABBS]-行为规范准则
  24. 测试
牛马论坛(niumabbs.com),一个专注于分享日常新鲜事、职场工作点滴、摸鱼乐趣与各类生活感悟的交流平台。

    关注我们

  • 加入Q群
  • 微信客服
  • QQ客服
Copyright © 2026 NIUMABBS 版权所有 All Rights Reserved. |网站地图 劰载中...
关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表