Simon Willison 在 2026 年 7 月给自己那个「Mermaid 转 ASCII 字符画」的网页小工具换了引擎。新版本不再用 AI 工具 Grok Build 生成的 Rust 代码,而是把开源社区里更早、更成熟的 Go 库 AlexanderGrooff/mermaid-ascii 编译成 WebAssembly,整个转换过程都在浏览器本地完成。工具入口在 tools.simonwillison.net/mermaid-ascii,打开网页就能用,不需要装任何东西。

这类工具解决的是一个很具体的场景问题:SSH 终端、代码评审界面、纯文本文档里塞不进 Mermaid 渲染出来的 SVG 图。字符画能直接复制粘贴进代码块,用得上的场合不算多,但在这些场合确实比一段渲染失败的 Mermaid 代码管用。

发生了什么:引擎从 Rust 换成 Go

之前那版工具用的是 Grok Build 生成的 Rust 代码,功能比较基础。Willison 后来发现,GitHub 上早就有一个功能更全的 Go 实现——AlexanderGrooff/mermaid-ascii,这个库不是他写的,也不是任何 AI 写的,是原作者几年前就完成的项目。他这次找 Claude Fable 5 把这个现成的 Go 库编译成 WebAssembly,方便自己拿两版工具做对比。

也就是说,AI 在这里做的是移植和编译工作,图形转换的算法逻辑是原库作者早就写好的。真正让工具变强的,是这个更成熟的开源库,不是新的 AI 生成代码。

维度旧版·Rust(Grok Build 生成)新版·Go(AlexanderGrooff 库)
颜色支持不支持支持,可读 classDef 颜色定义
时序图控制流支持有限支持 alt / loop / parallel 片段
时序图注释不支持支持
运行方式浏览器内 WebAssembly浏览器内 WebAssembly
代码来源AI 当场生成现有开源项目,更早、更成熟
转换流程:三步在浏览器内完成 输入 Mermaid 语法 流程图 / 时序图 处理 浏览器内 WASM Go 库转换 输出 ASCII / Unicode 可选颜色

谁会用,边界在哪里

目标用户很明确:写 README、维护技术文档、要在代码评审里贴架构图的开发者。这些人不需要为了用它去改现有文档,遇到终端或纯文本场合,按需转一次就够了,没必要把整套 Mermaid 图表迁移过去。

边界也同样明确。字符画覆盖的是 Mermaid 语法的一个子集,复杂布局、嵌套很深的子图、官方渲染器里的曲线连线和字体样式,字符画天然还原不了。原文没有给出完整的语法兼容性测试结果,遇到复杂图表,多留一份原始 Mermaid 源码更稳妥。

颜色这块也要说清楚:新版本加的是终端文本层面的颜色显示,靠的是 classDef 定义读取,跟 Mermaid 完整的图形样式系统不是一回事。终端能不能正确显示颜色,还要看具体终端软件是否支持相应的文本颜色渲染,这点原文没细说,实际效果因环境而异。

接下来观察什么

目前没有第三方给出这两版工具的兼容性测试或复杂图表的实际渲染效果,也没有人验证过中文字符、长标签在字符画里的对齐表现——这些都是"目前还看不清"的部分,用之前最好自己拿真实文档试一遍。

值得盯的变量有两个:一是这种"把现成开源库编译成 WebAssembly 塞进浏览器"的做法,会不会被用到其他类似的小工具上;二是这个页面会不会补上语法兼容范围的说明,或者扩展支持 Mermaid 的其他图表类型,比如 ER 图和甘特图。