news 2026/9/13 7:15:43

Mermaid Live Editor实战:用代码画流程图、ER图与文档协作指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mermaid Live Editor实战:用代码画流程图、ER图与文档协作指南

画图这件事,在文档工作里一直是个麻烦。我见过太多人为了画一张流程图打开 Visio,然后花半小时调整箭头对齐;也见过有人在团队协作时,把 draw.io 的 XML 文件发来发去,最后版本对不上,图直接打不开。直到我把所有图表需求迁移到 Mermaid Live Editor,这些问题才算真正画上句号。

Mermaid 是一门用纯文本描述图表的标记语言,而 Mermaid Live Editor 是它的官方在线编辑器,打开浏览器就能用,一边写 mermaid 代码一边看实时渲染结果。你可以把它理解成代码版的画图板:不需要安装任何桌面软件,不需要注册账号,只需要会打字,就能产出流程图、时序图、类图、ER 图、甘特图、饼图、状态图等各种图表。

下面我会从界面操作讲到语法细节,再走一遍完整的"学校教学管理 ER 图"实战案例,最后聊一聊 Typora、GitHub、Notion 这些生态工具里的常见问题。无论你是刚接触 mermaid 语法的新手,还是已经在用 Typora 写文档但被图表折腾过的人,这篇的内容应该都能帮上忙。

1. 为什么说它是"终极方案":先解决"画图难"这个老问题

写这篇文章之前,我在几个技术社区翻了一圈"画图工具推荐"的老帖子,发现大家的吐槽高度集中:桌面软件贵、安装包大、跨平台麻烦、协作不方便、导出格式混乱。这些痛点都是真实存在的,不是大家不会用工具,而是传统图形化编辑的思路本身就有天花板。Mermaid Live Editor 恰好在这些痛点上逐一给出了答案,这也是我敢把它称作"终极解决方案"的原因。

1.1 从"拖拽画图"到"写代码出图":一次思维转变

传统画图工具的核心操作是拖拽:从左侧面板拉一个矩形出来,双击输入文字,再拖一条线连到另一个形状。这套交互看起来直观,但当图的规模上来以后,调整布局的时间会指数级上升。三五个节点的图没问题,三五十个节点之后,光是对齐、布线、改字体就能耗掉一下午。

Mermaid 换了一个思路:图是"描述"出来的,不是"画"出来的。你只需要用约定的语法告诉它"有哪些节点、节点之间的连线是什么、方向朝哪",剩下的渲染、布局、布线全部交给引擎。这种思路带来的直接好处有三个。

第一,图的本质变成了文本,放进 Git 里可以逐行 diff,团队协作时谁改了什么一目了然,彻底告别"把图导出成图片,改完还不好对比"的尴尬。第二,文本可以复用,同一个流程图改两个变量就能用于另一个场景,不用重新拖拽。第三,可搜索,文档里的图表内容可以被全文检索命中,这一点在做知识库的时候尤其好用。

1.2 免费、免安装、免注册:Live Editor 的成本账

Mermaid 本身是 MIT 协议的开源项目,Live Editor 作为官方配套工具,直接部署在官方域名上,打开即用。对比一下主流方案的持有成本:Visio 是付费订阅,draw.io 虽然免费但要下载客户端或者忍受 Web 版的加载速度,ProcessOn 这类在线工具免费额度用完就要付费。

Live Editor 的成本账很简单:零安装、零注册、零费用。我自己的团队里,新同事入职第一天,我把 mermaid.live 的链接发过去,五分钟之后他就能产出第一张流程图。没有许可证申请流程,没有安装包依赖问题,连浏览器都是默认就有的。对个人用户来说,这意味着想画图随时能画,不用先经历一套长达半小时的环境准备。

当然,"免费"只是其中一个维度。真正让我长期留下的原因是它是官方工具,语法更新和 Live Editor 的功能迭代是同步的。Mermaid 社区每发布一个新版本的语法特性,Live Editor 几乎当天就能用上,这一点后面讲版本兼容问题时还会重点展开。

1.3 诚实地说:什么场景不适合用它

我不想把 Mermaid 吹成万能的,有些场景它确实不适合。比如需要精细控制版式的高保真架构图、需要手工调整每个形状位置的 UI 线框图、带复杂矢量图形的海报类图表,这些仍然建议用专业绘图软件。Mermaid 擅长的是"逻辑型图表":表达流程、关系、时序、结构,它不擅长的是"视觉型设计"。

认清这个边界很重要,否则你会在 Mermaid 上花大量时间试图微调布局,最后发现不如拖拽工具来得直接。我个人的经验判断标准是:如果这张图的核心价值在于"关系表达清楚",就用 Mermaid;如果核心价值在于"视觉效果好看",就老实去用专业工具。两者不是替代关系,而是各管一段,理解这个边界才能把工具用在刀刃上。

2. 打开编辑器第一件事:界面布局与三种出图姿势

第一次打开 mermaid.live 的人,通常会被那个干净到近乎空旷的界面弄懵:左边一大块代码区,右边一块预览区,顶部几个按钮。其实这个工具的设计逻辑很直白,搞懂布局之后就能顺畅上手,剩下的就是语法问题。

2.1 界面分区:左边写代码,右边看渲染

Live Editor 的核心就是左右两栏。左侧是代码编辑器,支持自动补全和语法高亮,你在这里写入 mermaid 代码;右侧是实时预览区,只要代码语法正确,几乎在你敲下字符的同时图表就会重新渲染。这种"写一句看一句"的反馈节奏,是学习 mermaid 语法最快的方式——你可以随机改一个参数,立刻看到它对布局的影响,很多语法概念根本不用背,试两次就记住了。

顶部工具栏有几个值得记一下的按钮。撤销和重做按钮配合浏览器缓存机制,能保证误操作可以轻松恢复,即使不小心关掉页面,再次打开时上一次的编辑内容通常还会保留在本地。第二个是"复制链接",点击后会把当前图表以压缩后的 URL 形式复制到剪贴板,发给同事对方打开就是同一张图,这个功能在远程协作时非常实用,比截图发来发去高效得多。第三个是"下载 SVG"和"下载 PNG"两个导出按钮,满足不同场景的图片需求。

还有一个比较容易忽略的面板是左下角的配置区,点开之后可以设置主题,包括默认主题、暗色主题、森林主题等,也可以直接编辑初始化配置 JSON,控制配色、字体、节点间隔等细节。这个配置区对追求图表风格统一的人来说是刚需,后面我会给出一份可以直接抄的配置示例。

2.2 三种出图姿势:手写、样例、导入

第一次接触的人可能不知道从哪里下手,其实 Live Editor 提供了三条进路。

第一条是手写。在左侧代码区直接输入,适合已经熟悉语法或想练习语法的用户。第二条是使用示例库。编辑器顶部有"模板/示例"入口,内置了从简单流程图到复杂 UML 图的几十个示例,点击任何一个就会加载到编辑区,你可以在此基础上改改成自己的图。对新手来说,从示例改起比自己从空白页开始轻松得多,很多语法细节看一遍示例就懂了。

第三条是导入。Mermaid 的图表文件通常以 .mmd 结尾,你可以把别人发来的 .mmd 文件直接拖进 Live Editor 窗口,也可以粘贴任意来源的 mermaid 代码块,编辑器会自动识别并渲染。这条路径在 Mac 用户之间特别常用,因为 .mmd 文件在多种系统之间流转频繁,而 Live Editor 天然跨平台,接收方不需要装任何东西就能打开,大大降低了协作门槛。

2.3 导出与分享:SVG、PNG、Markdown 怎么选

导出环节是很多人第一次卡住的地方。SVG 和 PNG 的区别不只是格式:SVG 是矢量图,放大不糊,适合印刷、PPT、以及后续二次编辑;PNG 是位图,文件体积小,适合网页直接引用。如果你要把图插进 Markdown 文档,最简单的方式其实是直接把 mermaid 代码块粘贴进去——后面会讲到支持 Mermaid 的平台会自动渲染,完全不需要导出图片。

我个人的导出习惯是:要改配色和文字时导出 SVG,发给外部协作者时导出 PNG,自己存档永远保留一份 .mmd 源码。记住一个原则:图片是"交付物",源码是"资产"。只留图片不留源码,下次要改就得重新画;保住源码,这张图就能持续演进,随时可以调整和复用。

3. Mermaid 语法核心:流程图、时序图、类图、ER 图一次讲透

Mermaid 的语法体系说大不大,但每个图类型都有自己的关键字和结构。我把日常使用频率最高的六类图整理出来,每一类给一个最小可用示例,再解释几个关键概念。这些代码你都可以直接复制到 Live Editor 里跑一遍,边看边感受比死记硬背有效得多。

3.1 流程图:graph 的三件套——节点、连线、方向

流程图是 Mermaid 里最常用的图表类型,一句话总结它的语法:定义方向,定义节点,定义连线。

方向声明写在第一行,graph 后面跟方向缩写:graph TD 表示从上到下,graph LR 表示从左到右,另外还有 BT(从下到上)、RL(从右到左)两种方向。方向的选择直接决定整张图的阅读逻辑,我一般处理三层以内的流程用 TD,处理横向对比类流程用 LR。

节点的写法是"节点ID + 形状 + 标签"。最常见的几种形状包括:方括号表示普通矩形节点,圆括号表示圆角矩形,花括号表示菱形判断节点,双圆括号表示圆形节点。连线的写法是"节点A + 连接符 + 节点B",其中 --> 表示带箭头的实线,--- 表示无箭头连线,-- 文本 --> 可以在线上标记文字。

下面是一个最小可用的判断流程示例:

graph TD A[收到请求] --> B{参数校验是否通过} B -- 通过 --> C[处理业务] B -- 不通过 --> D[返回错误] C --> E[记录日志] D --> E

这段代码里出现了三种节点形状和两种连线形式,逻辑清晰,渲染出来就是一张规整的流程图。我经常用它给新人做第一个完整的语法示例,因为足够简单,又覆盖了节点、判断分支、汇合三条核心概念。

3.2 时序图:sequenceDiagram 的参与者与消息

时序图描述的是多个对象之间按时间顺序的消息传递,在接口设计、业务链路梳理场景里非常能打。Mermaid 的时序图语法同样清晰,核心概念是"参与者"和"消息"。

参与者用 participant 关键字声明,可以设置别名来让显示名更友好。消息用箭头表示,实线箭头 --> 表示同步消息,虚线箭头 -->> 表示返回或异步消息。另外可以在参与者下方加上生命周期描述,或者用 activate/deactivate 标记对象的激活期。

下面是一个登录流程的最小示例:

sequenceDiagram participant U as 用户 participant A as 前端 participant S as 后端 U->>A: 输入账号密码 A->>S: POST /login S-->>A: 返回 token A-->>U: 登录成功

这段代码渲染出来的时序图,横向是三个参与者的泳道,纵向自上而下是消息发生的时间顺序。时序图相比流程图的优势在于它天然带"时间轴",最怕的就是把消息顺序写乱,所以我写时序图时习惯先在心里过一遍真实调用链路,再有条理地落地成代码。

3.3 类图与 ER 图:建模场景的同一套思维

类图和 ER 图放在一起讲,是因为它们的共同点是"描述对象及其关系"。类图用于面向对象设计,描述类、属性和方法以及类之间的继承、组合、关联关系;ER 图用于数据库设计,描述实体、属性和实体之间的联系。两者的语法结构高度相似,学会一个,另一个几乎可以零成本迁移。

类图用 classDiagram 开始,classDiagram 下列出类名,类名下的属性与方法直接写在缩进块里。关系符号是理解类图的关键:<|-- 表示继承,*-- 表示组合,o-- 表示聚合,--> 表示关联。

ER 图用 erDiagram 开始,每个实体是一个独立代码块,块内的属性用"类型 + 属性名 + 键标识"的格式描述,PK 表示主键,FK 表示外键。实体之间的关系用"实体名 + 基数符号 + 关系名 + 实体名"表示,基数符号中 ||--o{ 是最常用的,表示"一方对应零个或多个"。这两个图的语法细节会在下一节的完整实战案例里展开,这里先建立一个整体印象:Mermaid 把建模图的语法设计得足够直观,几乎可以用自然语言读出来。

3.4 甘特图、饼图、状态图:常用小图速查

除了前面三类主力图,Mermaid 还内置了几种轻量图表,适合日常文档里的快速可视化。

甘特图用 gantt 关键字声明,核心结构是 section 分组和任务条目,任务可以指定起止日期或持续时间。对一个项目排期只有几行代码,比在表格工具里拖拽方便得多。饼图用 pie 关键字声明,每行一个数据项,格式是"标签 : 数值",适合展示占比统计。状态图用 stateDiagram-v2 声明,节点表示状态,箭头上的文字表示触发事件。

gantt title 一周开发计划 section 功能开发 需求评审 :a1, 2025-01-06, 1d 编码实现 :a2, after a1, 3d 联调测试 :a3, after a2, 2d
pie title 访问来源占比 "直接访问" : 40 "搜索引擎" : 35 "外部链接" : 25

这三类图共同的特点是语法极简、渲染快。我通常不会在正式项目文档里用它们做复杂展示,而是用于周报、方案草稿、个人笔记这种轻量场景,目的是让读者一眼看到结构,而不是陷入细节。Mermaid 这种"按需取用"的定位,正好匹配文档写作里"图表只要表达清楚就有价值"的原则,没必要每个图都追求高保真。

4. 实战:用 Mermaid 写出"学校教学管理 ER 图"并落地交付

很多人在博客、网课里都见过"学校教学管理 ER 图"这个经典题目,它之所以被反复使用,是因为实体关系足够典型:有主实体、有关系实体、有基数明确的联系,几乎覆盖了数据库建模入门的所有要点。我们用 Mermaid 把它完整实现一遍,从需求拆解到最终代码,再到导出交付,全程给出可直接复制的代码。

4.1 需求拆解:教学管理到底要管哪些实体

先做需求分析。一个常规的学校教学管理系统,核心业务是排课和成绩管理,围绕这两条业务线,至少需要以下实体。

院系(DEPARTMENT)是顶层组织单位,管理着教师和学生。教师(TEACHER)隶属于某一院系,负责讲授课程。学生(STUDENT)隶属于某一院系,选修课程并取得成绩。课程(COURSE)是教学的核心对象,一门课程由某位教师讲授,通常安排在某间教室。教室(CLASSROOM)是承载课程的物理资源。选课记录(ENROLLMENT)是学生和课程之间的关联实体,额外承载着成绩字段。

这个清单里,院系、教师、学生、课程、教室是基础实体,选课记录是典型的关系实体,因为它除了关联两个主实体外,自身还带有成绩这个关键属性。你在设计 ER 图时,判断一个表到底该当实体还是当关系的通用标准,就是看它是否有额外属性:只有两个外键、没有自己属性的关联,通常可以直接映射为多对多关系表;带成绩这种附加信息的关联,建议建模为独立实体。

4.2 从实体关系到 ER 图代码:一步一步写出来

有了实体清单,下一步确定基数。一个院系下有多名教师,一个院系管理多名学生,一名教师讲授多门课程,一门课程安排在一间教室,一个学生选修多门课程,每门课程被多名学生选修——学生与课程之间是多对多关系,通过选课记录表拆分成两个一对多。

用 Mermaid 的 erDiagram 表达这些关系,代码结构是"关系声明 + 实体属性定义"两部分。关系声明的通用格式是:左实体 + 基数符号 + 右实体,基数符号用竖线和圆圈的组合表示。|| 表示恰好一个,|o 表示零或一个,o{ 表示零或多个,|{ 表示一或多个。学生到选课记录的 ||--o{ 读作"一个学生对应零或多条选课记录"。

下面是完整的可复制代码,直接粘贴到 Live Editor 的左侧代码区即可渲染:

erDiagram DEPARTMENT ||--o{ STUDENT : "管理" DEPARTMENT ||--o{ TEACHER : "聘用" TEACHER ||--o{ COURSE : "讲授" STUDENT ||--o{ ENROLLMENT : "选修" COURSE ||--o{ ENROLLMENT : "包含" COURSE }o--|| CLASSROOM : "安排" DEPARTMENT { string dept_id PK string dept_name } STUDENT { string student_id PK string name string gender date birth_date string dept_id FK } TEACHER { string teacher_id PK string name string title string dept_id FK } COURSE { string course_id PK string course_name int credit string teacher_id FK string classroom_id FK } CLASSROOM { string classroom_id PK string location int capacity } ENROLLMENT { string student_id "学号" string course_id "课程号" int score }

这段代码直接把可以交付的教学管理 ER 图呈现在预览区。你可以根据实际教学场景继续扩展,比如增加管理员实体、成绩单视图、选课时间约束等。ER 图建模是迭代过程,第一版先保证实体与关系正确,再逐步细化字段,不要指望一次画到完美。

4.3 导出交付:插入文档、演示、印刷三种场景的应对

图画完之后,交付方式要分场景。如果是插入 Markdown 文档,比如写课程设计报告或技术方案,直接把 mermaid 代码块嵌入文档,在支持 Mermaid 的平台(Typora、GitHub、Hugo 等)上会自动渲染成图。这样既保留了源码可维护性,又保证了阅读端的可视化。

如果是放到 Word 或 PPT 里,我会从 Live Editor 导出 SVG,然后在文档工具中做插入。SVG 是矢量格式,拉大放小都不糊,还能继续调整渐变、箭头等细节。如果是发给外部人员、对方可能需要离线查看,就导出 PNG,注意导出时选择合适的缩放倍数,避免文字发虚。

最后一条贴士:导出前先在 Live Editor 里把主题和字体调好,因为 SVG 文件一旦插入别的软件,后续改字体很可能要重导。把这个"档前准备"做在前面,能省掉很多返工时间。

5. 生态联动:Typora、GitHub、Notion 里的 Mermaid 兼容问题

Mermaid 的价值一半在语法本身,一半在生态集成。现在主流 Markdown 工具和代码托管平台都支持 Mermaid 渲染,但"支持"和"支持得好"是两回事。这一节集中回答几个高频搜索词背后的问题:Typora 里 mermaid 怎么升级、Mac 上怎么打开 mermaid 文件、为什么同一个代码在不同地方渲染不一样。

5.1 Typora 里的 Mermaid 不显示、版本旧怎么办

Typora 是很多人写 Markdown 的首选工具,它对 Mermaid 的支持相当成熟,代码块语言标识写成 mermaid 就能渲染。但"typora mermaid 怎么升级"这个问题被反复搜索,说明用户遇到的典型困境是:在 Live Editor 里能渲染的代码,粘到 Typora 里却不显示或报错。

原因在于 Typora 内置的 Mermaid 版本是固定的,它不会跟随 Live Editor 的每日更新而同步升级。当你用到某个新语法特性(比如较新版本才支持的象限图、需求图,或者某类新形状),Typora 的老渲染引擎无法识别,自然显示不出来。

解决办法按优先级排列:第一步,把 Typora 升级到最新版本,新版本会同步较新的 Mermaid 内核,官方更新日志里通常会注明 Mermaid 的版本号;第二步,如果升级后仍然不行,就用兼容写法,在 Live Editor 里确认语法属于哪个版本,针对旧版本做降级调整;第三步,实在需要新特性时,在 Live Editor 里导出图片再插入 Typora,虽然放弃了"源码即图"的便利,但保证了展示效果。

5.2 Mac 上打开和编辑 .mmd 文件的几种方式

Mac 用户经常遇到一个具体问题:同事发来一个 .mmd 文件,双击不知道用什么程序打开。macOS 默认不会给 .mmd 绑定任何应用,但这不代表它难处理,关键在于理解 .mmd 的本质——它就是纯文本。

所以最简单的打开方式是把 .mmd 拖进浏览器,扔到 mermaid.live 窗口里,编辑器会直接加载并渲染,这个过程不需要任何额外软件。第二个选择是用 VS Code 打开,安装 Markdown Preview Mermaid Support 插件后,在编辑器里就能预览。第三个选择是命令行工具 mermaid-cli(mmdc),可以批量把 .mmd 转换成 PNG 或 SVG 文件,适合处理大量离线文档的场景。

我个人在 Mac 上的工作流是:日常编辑用 Live Editor,因为自动保存和版本历史都在云端缓存里;正式项目文件用 VS Code 管理,配合 Git 做版本控制;到发布阶段就上 mermaid-cli 批量导出。这套组合几乎没有短板,你也可以根据自己的使用习惯在这三条路径之间做选择。

5.3 为什么同一个 mermaid 代码在不同平台渲染结果不一样

这个问题背后的核心是渲染引擎的版本差。Mermaid 作为一个快速迭代的开源项目,语法规范在不断演进,各平台打包的版本有先有后。Live Editor 永远跑最新版本,GitHub 的渲染服务跟随得也很快,Typora、Notion 这类桌面软件或商业产品则因为发布周期长,内置版本相对滞后。

后果就是你写代码时用的是新版本语法,在 Live Editor 里渲染完美,放到 Notion 里可能整段不显示,放到老版本 Typora 里可能报语法错误。应对策略有三个:一是项目文档约定统一用稳定特性,各平台兼容性最好;二是涉及他人协作时标注"最低渲染版本";三是关键时刻在 Live Editor 导出图片作为兜底方案。兼容性问题不会完全消失,但按这个思路处理,能把影响降到最低。

6. 常见报错与渲染异常:踩坑过程与排查思路

最后一部分聊实战中高频踩坑的细节。这些坑在官方文档里大多查不到,但碰上一次就够你折腾半天。我把它们整理成三类:中文与字体、语法细节、性能与可读性,每一类都用实际排查的思路来讲,而不是直接甩结论。

6.1 中文乱码、字体显示不全的问题

Mermaid 对中文的支持整体是好的,但有两个场景容易出问题。第一个是导出 PNG 时文字发虚或变成方框,这通常和渲染环境的字体有关,Live Editor 的字体配置一般是健全的,如果你从命令行用 mermaid-cli 导出,就需要确保系统里有对应中文字体。第二个是标签里的中文内容影响了布局,比如节点文字过长导致节点变形,这是排版问题,不是编码问题。

我在本地用 mermaid-cli 批量导出时踩过最狠的一次,是整套文档里的图片中文全部变成方块。当时第一反应是代码问题,逐行检查 mermaid 语法花了一个小时,最后才发现是服务器上没装中文字体,把字体补上之后问题立刻消失。这次经历给我的教训是:导出环境的字体、浏览器内核这些"外部因素",往往比语法本身更容易引发中文异常,排查方向不要搞反。

6.2 语法写对了却不渲染:括号、引号、换行这些细节

这类问题最让人头疼,视觉上看代码好像没错,但就是不渲染。我自己排查过无数案例后总结出几个高发点。

第一,中英文符号混用。Mermaid 的分隔符、花括号、冒号全部要求英文半角,很多人在中文输入法状态下打字,引号、括号悄悄变成了全角,解析器立刻报错。第二,节点标签里有特殊字符,比如括号、引号、连字符,需要用双引号把标签包起来,否则语法会被错误解析。第三,箭头符号的格式错误,-- > 和 --> 不能有空格,空格一多就从箭头变成了多种符号的组合。第四,编辑器里出现不可见字符,从网页复制代码时可能带入零宽空格,看起来空白一行实际已经破坏了语法。

排查顺序建议:先把代码整体缩减到一个最小可复现片段,确认编辑器本身没问题;再逐行检查符号是否半角;最后用编辑器右上角的"格式化"按钮统一整理。我在本地处理 mermaid 报错时,习惯的做法是先把代码缩减到最小可复现片段,再逐步加回内容,定位出问题的那一行,这个方法对语法类问题几乎百试百灵。

6.3 复杂图表的性能与可读性权衡

最后一个坑来自图本身的规模。Mermaid 引擎在渲染上百个节点的大图时,布局计算会明显变慢,预览变得卡顿,偶尔还会出现节点重叠。这时候不要一味加硬件,先反思这张图是不是设计上出了问题。

我见过很多失败的 Mermaid 大图,共性问题是把所有信息塞进一张图,节点密到连关系线都看不清。正确的做法是拆图:按照业务模块或分层结构,把大图拆成多张子图,再通过子图(subgraph)机制在合适的地方做聚合。每张图的核心目标应该是让人在三秒内看懂结构,超过这个目标就该考虑拆分。

性能之外还有一个可读性细节:善用 subgraph 给节点分组,善用颜色区分模块,必要时通过配置调整节点间距。Mermaid 的布局引擎虽然不是万能的,但大多数可读性问题可以通过调整分组和方向解决,而不是靠运气。

踩过这些坑之后,我现在的习惯是把常用图表代码维护在一个私人代码库里,包括标准流程图模板、时序图模板、ER 图模板,每次新项目直接复制改改,既稳定又高效。Mermaid Live Editor 对我来说已经不是一个"工具",而是整套"用文本表达结构化信息"的工作方式,这个思路值得长期投入。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 7:15:37

Bun vs Node.js:JavaScript运行时性能重构与工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 7:12:56

世界观的裂缝与勇者的起步:序章设计方法论

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 7:12:07

CSS底层原理实战:选择器匹配、权重计算与渲染优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 7:11:17

PDF补丁丁:一个免费开源工具箱搞定 PDF 合并、书签生成与去限制

PDF补丁丁&#xff1a;一个免费开源工具箱搞定 PDF 合并、书签生成与去限制 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱&#xff0c;可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档&#xff0c;探查文档结构&#xff0c;提取图片、转成图片等等 项目地址: h…

作者头像 李华
网站建设 2026/9/13 7:10:01

Haskell 入门安装实战:从 GHCup 到第一个程序

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 7:08:42

MCP协议实战:从零构建AI Agent工具链

先聊个最近都绕不开的场景。你手上有一个大模型应用&#xff0c;希望它能像真正的助手一样去查资料、读文件、调接口&#xff0c;而不再只是“对话框里聊天”。这时候你就需要做 AI Agent 开发&#xff0c;而 Agent 一旦要干活&#xff0c;第一个要解决的就是工具链怎么接。过去…

作者头像 李华