尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
mermaid 工作原理:跟着一行 “A-->B“ 走完文本变图表的全程
mermaid 工作原理跟着一行 A--B 走完文本变图表的全程【免费下载链接】mermaidGeneration of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown项目地址: https://gitcode.com/GitHub_Trending/me/mermaid在 HTML 里敲下flowchart LR和A--B刷新页面一秒后箭头图就出现了——这一秒里发生了什么Mermaid 是一款文本绘图工具你写几行字它画出一张图。读完这篇 mermaid 使用教程你能亲手追出文本进页面到 SVG 上屏的每一步。项目速览Mermaid 用 TypeScript 写成核心就一个承诺文本进图形出。你不需要懂 SVG它替你把节点、连线、坐标、样式全算好。先看这张阅读地图四个文件就覆盖了整条链路文件一句话职责packages/mermaid/src/mermaid.ts入口扫页面、启动渲染packages/mermaid/src/diagram-api/detectType.ts判断文本属于哪种图表packages/mermaid/src/mermaidAPI.ts编排解析、布局、绘制、序列化packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts认出 flowchart 文本想本地跑一遍的话git clone https://gitcode.com/GitHub_Trending/me/mermaid一次操作的全景先把地图画出来你写的那行文本要穿过下面这条链路才能变成图。步骤谁在干活干了什么扫页面mermaid.run找出所有.mermaid元素读文本runThrowsErrors取 innerHTML 并整理缩进认类型detectType按顺序试每个探测器算坐标解析器与布局引擎文本变模型模型定位置落屏render返回 SVG 字符串替换文本下面按进 → 算 → 出三段拆开讲。分段拆解一行输入的全程① 进文本怎么被找到并读进来这一段干的事是找到文本洗干净。页面 load 事件触发后如果startOnLoad开着mermaid.ts 里的run()会遍历 DOM把所有带.mermaid类的元素捞出来。两个细节值得注意带data-processed属性的元素直接跳过防止重复渲染找到元素后读element.innerHTML再经过dedent和实体解码两道处理去掉 HTML 里碍事的缩进。txt dedent(utils.entityDecode(txt)) .trim() .replace(/br\s*\/?/gi, br/);接着文本交给 detectType.ts先剥掉 frontmatter、init 指令和注释再按注册顺序逐个试探测器谁先返回 true 谁赢。flowchart 命中 flowDetector-v2.ts 里的flowchart前缀正则同时触发懒加载——只有被命中的图表模块才会真正 import没用的类型一行代码都不加载。断点提示类名写错文本会原样躺在页面上没有任何探测器命中你会看到 No diagram type detected 报错。② 算文本怎么变成模型和坐标这一段干两件事把文本变成数据把数据变成位置。mermaidAPI.ts 的render先处理文本里的指令与标题然后调用Diagram.fromText基于 langium 语法的解析器把A--B这样的行变成节点、边和标签存进内部 db。diag await Diagram.fromText(text, { title: processed.title }); await diag.renderer.draw(text, id, injected.version, diag);布局引擎接着给每个节点和每条边分配 x、y 坐标——这是排版发生的地方默认走 dagre也可以在配置里切到 elk。最后渲染器用 d3 把每个节点、连线、箭头逐个画成 SVG 元素放进一个临时容器里。断点提示解析失败时错误图会标出问题行号布局环节出问题典型症状是所有节点挤在左上角。③ 出SVG 怎么落上屏这一段决定你最终看到什么。画完之后mermaid 先把主题样式元素插进 SVG再把整段 SVG 序列化成字符串。非 loose 模式下这个字符串还要过一遍 DOMPurify 消毒过滤掉不安全的标签。合格后交回入口只有一行代码完成最后一击const { svg, bindFunctions } await render(id, txt, element); element.innerHTML svg;element.innerHTML svg让文本消失、图形出现。返回值里还有一个bindFunctions如果你想让图表响应点击它负责把事件绑到元素上。断点提示render抛错且没开suppressErrors时div 里留的还是原文本图出来了但颜色不对多半是主题没配对。进阶旋钮 2 个theme主题→ 在文本开头写%%{init: {theme: dark}}%%指令或调用mermaid.initialize设置 → 全站图表换色换风格不用碰 CSS一处生效。securityLevel安全级别→ 设为sandbox或loose→sandbox把渲染挪进沙箱 iframe隔离标签里的 HTML 风险loose则跳过消毒允许更丰富的内容但信任度更高。排障速查卡在哪一步对照链路从后往前查基本三分钟定位。症状卡在哪一步怎么救文本原样显示不出图进没找到元素给 div 加上 mermaid 类名No diagram type detected进类型没命中首行改成 flowchart 等合法开头报错带行号算解析失败修掉指向行的语法错误图上了屏但样式不对出主题缺失initialize 里设置 theme刷新后完全没动静进run 没被调用手动调 mermaid.run() 或开启 startOnLoad扫页面 → 读文本 → 认类型 → 解析布局 → 画 SVG → 消毒 → 写进 DOM。下次图不出来按这条链一格一格查就能亲手把断点找出来。【免费下载链接】mermaidGeneration of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown项目地址: https://gitcode.com/GitHub_Trending/me/mermaid创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

C++学习笔记(一)

C++学习笔记(一)

6. C 的第一个程序C 兼容 C 语言绝大多数语法,因此 C 语言风格的hello world程序在 C 中仍可运行,但 C 也有专属的输入输出实现,核心差异体现在头文件与输入输出对象的使用上。6.1 两种实现方式对比实现风格代码示例关键说明C 语言兼容版cpp#…

📅 2026/11/10 18:54:21
【51单片机】 1.1 初识单片机(初学必看)

【51单片机】 1.1 初识单片机(初学必看)

目录 一、基本结构与最小电路 二、软件基础&#xff08;结合硬件&#xff09; 三、基础元器件 四、晶振和复位 一、基本结构与最小电路 二、软件基础&#xff08;结合硬件&#xff09; 1.头文件#include<reg52.h> 解释&#xff1a;2.LED小灯点亮&#xff1a;P0^0、P0^1对…

📅 2026/10/10 19:38:53
Bun 私有源配置:bunfig.toml 的注册表写法与踩坑实录

Bun 私有源配置:bunfig.toml 的注册表写法与踩坑实录

Bun 私有源配置&#xff1a;bunfig.toml 的注册表写法与踩坑实录 【免费下载链接】bun Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one 项目地址: https://gitcode.com/GitHub_Trending/bu/bun $ bun add company/utils…

📅 2026/10/11 11:57:13
MORE NEWS

更多资讯

📰

西安电工证查询安检网官方回应:别被中介坑,这些避坑技巧必须知道

西安电工证查询安检网官方回应:别被中介坑,这些避坑技巧必须知道 你是不是也遇到过这种情况,不知道去哪里报名特种作业证,担心被中间人套路,花了不少冤枉钱,结果证还没拿到? 西安电工证查询安检网…

📰

东阳特种工考试电话保姆级教程:证书过期了不知道怎么复审延期

东阳特种工考试电话保姆级教程:证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期,是不是你最近正在经历的焦虑?别急,这篇文章就是你的 保姆级教程…

📰

诸暨考电工证哪里报名怎么报名 电工证不考没法上岗

诸暨考电工证哪里报名怎么报名 电工证不考没法上岗 工地太忙根本没时间复习考试,这几乎是所有一线电工的真实写照。你可能在钢筋水泥间穿梭了一整天,连吃饭的时间都得抓紧,哪还有精力去系统学习电工证考试内容?但现实是,…

📰

平定电工证复审要多少钱?别再被中介坑了

平定电工证复审要多少钱?别再被中介坑了 你是不是也遇到过这样的情况:手里拿着电工证,但不知道什么时候该复审、该去哪里办、要多少钱?特别是现在各种中介满天飞,一不小心就被骗钱又耽误事。今天我就用一个真实案例,带你搞清楚【平定电工证复审】到底要…

📰

温岭报考电工证多少钱?真实经历告诉你别怕学历不高也能报

温岭报考电工证多少钱?真实经历告诉你别怕学历不高也能报 你是不是也担心学历不高怕报不上名?别急,我来给你说说我的真实经历。我当年刚毕业,学历只有大专,想考电工证,也怕被拒,结果发现只要材料齐全、流程走对,其实一点都不难。…

📰

安监局电工证 成都怎么考?实操考试心里没底怕挂科?郑州报考避坑指南来了!

安监局电工证 成都怎么考?实操考试心里没底怕挂科?郑州报考避坑指南来了! 实操考试心里没底怕挂科?你是成都的电工从业者,正准备考取安监局电工证,但对考试内容、流程、材料准备都不太清楚?别急,本文就帮你把郑州报考避坑指南讲透彻,手把手带你走完…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬