写了个小插件,让中文写 Mermaid 不用记语法

平时在 Obsidian 里画图,最烦的是 Mermaid 的语法。不是记不住,是中文一进去就报错。

比如 Git 图里写 branch 内容线,报 Lexical error。桑基图里写「医生,门诊,60」,报 Expecting COMMA。需求图的 text 不套引号也报错。这些规则查一次两次还行,写多了很打断。

所以写了个插件,叫 Merchart。思路很简单:我只写内容,它负责生成合法的 Mermaid 代码。

在笔记里打开「插入图」,左边选类型,中间按缩进写,右边实时出图。比如画一个门诊流程:

患者就诊
  是否营养不良{}
    是: 启动营养筛查
    否: 常规随访

判断框加一对大括号,连线上的字写成「标签: 名称」。不用记方括号和箭头。

Merchart 界面

中文这块专门做了处理:全角标点先转成半角,中文全部放到标签位,标识符自动生成 n1、n2 这样的 ASCII id。你写你习惯的,插件负责让解析器接受。

现在支持 22 种图,Obsidian 渲染器支持的基本都在。1.15 之后图是 Pele 渲染的,这个插件跟着 Pele 走,不需要额外设置。

另外加了个反向编辑。光标点进笔记里已经有的 mermaid 代码块,开头那行右边会浮出一个铅笔按钮,点一下就能接着改。流程图、时序图、饼图、时间线、思维导图这五种会还原成缩进输入,其它类型就是改源码本身。

界面中英双语,跟着 Obsidian 的语言走,手机也能用。

手机版

安装的话,社区插件市场搜 Merchart,已经提交了,或去 GitHub 看看:

用下来有问题,或者想要某种图的写法,回帖告诉我就行。