当前位置: 首页 > article >正文

Mermaid 是什么,为什么适合AI模型和markdown

什么是 Mermaid?

Mermaid 是一个基于 JavaScript 的开源绘图和图表工具,允许用户通过简单的文本语法创建图表。它支持生成流程图、时序图、类图、甘特图等多种类型的可视化内容,并直接从类似 Markdown 的代码中渲染。Mermaid 因其与 Markdown 环境的无缝集成而广泛应用于技术文档。

Mermaid 的主要特性

  • 文本语法:使用简单易读的语法定义图表,例如 graph TD; A–>B; 表示一个流程图。
  • 动态渲染:在支持的平台(如浏览器、Markdown 查看器)中实时渲染图表。
  • 支持多种图表:包括流程图、时序图、实体关系图、状态图等。
  • 集成性:与 GitHub、GitLab、VS Code 等工具原生集成,通过插件支持其他平台。
  • 导出选项:可导出为 PNG、SVG 或嵌入 HTML。

示例 Mermaid 代码(简单流程图):

mermaid

开始
处理
结束

渲染后,这段代码会生成一个包含三个节点和箭头的流程图。


为什么 Mermaid 适合 AI 模型?

Mermaid 特别适合像我(Grok)这样的 AI 模型,原因如下:

  1. 文本交互
    • AI 模型擅长处理和生成文本。Mermaid 的纯文本语法使 AI 能够轻松创建、修改或解析图表代码,无需处理图形界面。
    • 我可以在回答中生成 Mermaid 代码,用户可直接复制粘贴到支持的渲染工具中,高效传递复杂结构。
  2. 结构化输出
    • Mermaid 的语法结构清晰且可预测,与 AI 生成规则化输出的能力高度契合。例如,我可以将您的赛事报名系统组件映射到 Mermaid 的 graph 语法。
    • 语法减少了歧义,确保 AI 输出准确且实用。
  3. 迭代优化
    • AI 可以根据用户反馈快速修改 Mermaid 代码(例如添加节点、调整连接),因为它只是文本编辑,比手动调整图形图表更快。
    • 例如,如果您要求在架构中添加新服务,我可以在几秒内更新代码。
  4. 错误处理
    • Mermaid 语法较为宽容,AI 可以在分享前验证或调试代码。如果出现错误(例如缺少分号),我可以程序化地修复。
  5. 可扩展性
    • Mermaid 支持复杂图表(例如微服务架构、数据流),这与 AI 常处理的技术查询相匹配。我可以生成大型图表,而无需担心渲染限制,因为渲染由 Mermaid 引擎处理。

为什么 Mermaid 适合 Markdown?

Mermaid 与 Markdown 环境高度兼容,适合文本文档工作流,原因如下:

  1. 与 Markdown 平台的原生集成
    • GitHub/GitLab:Mermaid 自 2022 年起在 GitHub 风格的 Markdown 中受支持,GitLab 同样支持。用户可在 README、wiki 或 issue 中直接嵌入图表,使用 mermaid 代码块。
    • 静态网站生成器:MkDocs、Hugo、Docusaurus 等工具通过插件支持 Mermaid,适用于文档网站。
    • 笔记应用:Obsidian、Notion 等通过插件支持 Mermaid,适合技术笔记。
  2. 版本控制友好
    • Mermaid 图表以文本形式存储,可与 Markdown 文件一起纳入 Git 仓库,支持版本跟踪、差异对比和协作编辑,不像 PNG 等二进制图像文件。
    • 例如,您的赛事报名系统架构变更可以作为代码变更在 .md 文件中跟踪。
  3. 轻量且便携
    • Mermaid 无需附加外部图像文件,图表以代码形式嵌入,减少文件体积,确保便携性。
    • 用户无需安装重量级工具(例如 Visio),只需支持 Mermaid 的 Markdown 查看器即可。
  4. 动态更新
    • 当 Markdown 文件中的 Mermaid 代码更新时,图表会自动重新渲染。这对动态文档(例如系统架构随时间演变)非常有用。
    • 例如,如果您在赛事报名系统中添加新微服务,编辑 Mermaid 代码即可立即更新图表。
  5. 易于编辑
    • Markdown 用户(开发者、技术文档编写者)习惯文本工作流。Mermaid 的语法对熟悉 Markdown 的人来说直观,无需图形设计技能。
    • 示例:添加流程图新节点只需追加一行,如 D[新服务] --> G。
  6. 跨平台兼容
    • 只要环境支持 JavaScript 渲染,Mermaid 图表在浏览器、移动应用、桌面编辑器中表现一致。这确保您的赛事报名系统图表在 GitHub、VS Code 或静态网站中外观一致。

Mermaid 如何适配您的赛事报名系统?

对于您的赛事报名系统架构,Mermaid 是理想选择,原因如下:

  • 复杂架构:系统包含多层(用户层、API 接入层、业务逻辑层、数据存储层、第三方服务层),Mermaid 能通过 graph 指令清晰表示。
  • Markdown 集成:您可以将我提供的 Mermaid 代码嵌入技术文档(例如 README.md 或 wiki),确保图表融入文本工作流。
  • AI 兼容性:我轻松生成了您系统的 Mermaid 代码,将组件(如“API网关: Kong”“用户服务: Spring Boot”)映射为节点和边。如果需要调整(例如添加新服务),我可以快速更新。
  • 协作编辑:团队可在 Git 仓库中编辑 Mermaid 代码,跟踪变更,并在支持的平台上实时查看更新图表。

示例代码(基于您提供的描述):

mermaid

HTTPS
HTTPS
HTTPS
HTTPS
HTTPS
REST API
REST API
REST API
REST API
REST API
REST API
Kafka
PC端: React
API网关: Kong
移动端: Flutter
小程序: 微信
第三方系统
管理界面: Vue.js
用户服务: Spring Boot
报名服务: Spring Boot
赛事服务: Spring Boot
支付服务: Spring Boot
通知服务: FastAPI
分析服务: Spring Boot
MySQL: 支付记录
Redis: 报名状态缓存
Elasticsearch: 日志数据
OSS: 文件存储
Prometheus: 监控
支付宝
阿里云短信
高德地图

这段代码可嵌入 Markdown 文件,在 GitHub、VS Code(安装 Mermaid 插件)等平台渲染为图表。


Mermaid 的替代方案

虽然 Mermaid 适合 Markdown 和 AI,但其他文本绘图工具(如 PlantUML、Graphviz)也有各自优势:

  • PlantUML:功能更丰富,适合 UML 图表(例如类图、时序图),但需 Java 或服务器渲染,与 Markdown 集成不如 Mermaid 无缝。
  • Graphviz:适合复杂图形,功能强大但语法复杂,Markdown 支持较弱。

Mermaid 因其简单性、Markdown 集成和浏览器渲染能力,成为 AI 生成文档图表的首选。


如何在您的项目中使用 Mermaid?

  1. 嵌入 Markdown
    • 将 Mermaid 代码放入 .md 文件的 mermaid 代码块中。
    • 在 GitHub、GitLab 或支持 Mermaid 的静态网站上托管文件。
  2. 在线测试
    • 使用 Mermaid Live Editor 粘贴代码,预览图表。
    • 调整样式(例如颜色、主题),导出为 PNG/SVG。
  3. 本地开发
    • 在 VS Code 安装 Mermaid 插件(例如“Mermaid Markdown Syntax Highlighting”)。
    • 使用 MkDocs(搭配 mermaid2 插件)等工具生成文档网站。
  4. 团队协作
    • 通过 Git 分享 Mermaid 代码,团队成员可编辑文本,实时查看更新图表。

总结

Mermaid 因其文本语法、Markdown 集成和动态渲染能力,非常适合 AI 模型和 Markdown 环境。

相关文章:

Mermaid 是什么,为什么适合AI模型和markdown

什么是 Mermaid? Mermaid 是一个基于 JavaScript 的开源绘图和图表工具,允许用户通过简单的文本语法创建图表。它支持生成流程图、时序图、类图、甘特图等多种类型的可视化内容,并直接从类似 Markdown 的代码中渲染。Mermaid 因其与 Markdow…...

Java漏洞原理与实战

一、基本概念 1、序列化与反序列化 (1)序列化:将对象写入IO流中,ObjectOutputStream类的writeobject()方法可以实现序列化 (2)反序列化:从IO流中恢复对象,ObjectinputStream类的readObject()方法用于反序列化 (3)意义:序列化机制允许将实现序列化的J…...

第十届团体程序设计天梯赛-上理赛点随笔

2025.4.19来到军工路580号上海理工大学赛点参加cccc 校内环境挺好的,校内氛围也不错;临走前还用晚餐券顺走一袋橘子 再来说说比赛 首先是举办方服务器爆了,导致前10分钟刷不出题,一个多小时还上交不了代码 然后就是我用py总有几…...

考公:数字推理

文章目录 1.真题12 312 530 756 ()-3 3 1 12 17 ()356 342 333 324 ()30 28 27 25 () 2215105 1494 1383 1272 ()2 3 8 21 46 ()4/25 1/4 4/9 1 ()39 416 630 848 ()5 8 11 17 () 10714 21 40 77 () 229 2.数字推理方法2.1 差值法2.2 比值法(乘法关系)2.…...

树莓派超全系列教程文档--(32)config.txt常用音频配置

config.txt常用音频配置 板载模拟音频(3.5mm耳机插孔)audio_pwm_modedisable_audio_ditherenable_audio_ditherpwm_sample_bits HDMI音频 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 板载模拟音频(3.5mm耳机…...

面试专栏-02-MySQL知识点(第二部分)

6、锁 1、分类: 全局锁:锁住数据库中的所有表表级锁:每次操作锁住整张表行级锁:每次操作锁住对应行的数据 2、全局锁 加锁后,整个实例只能进行读取操作,从而保证数据的完成性和一致性。 特点&#xff…...

55、⾸屏加载⽩屏怎么进⾏优化

答: (1)使⽤CDN 减⼩代码体积,加快请求速度; (2)SSR通过服务端把所有数据全部渲染完成再返回给客⼾端; (3) 路由懒加载,当⽤⼾访问的时候,再加载相应模块; (4) 使⽤外…...

python函数之间嵌套使用yield

假设一种场景,函数 A 可以在获得函数 B 的返回值(即一个生成器对象)后,再次对其进行 yield 操作。这是因为 Python 的生成器是可迭代的,你可以在一个生成器中迭代另一个生成器,并将其结果逐个 yield 出去。…...

【MySQL数据库入门到精通】

文章目录 一、SQL分类二、DDL-数据库操作1.查询2.创建数据库3.删除数据库4.使用数据库 三、DDL-表操作1.查询 一、SQL分类 根据功能主要分为DDL DML DQL DCL DDL:Date Definition Language数据定义语言:定义数据库,表和字段 DML:Date Manipulatin Lan…...

[Swift]pod install成功后运行项目报错问题error: Sandbox: bash(84760) deny(1)

操作: platform :ios, 14.0target ZKMKAPP do# Comment the next line if you dont want to use dynamic frameworksuse_frameworks!# Pods for ZKMKAPPpod Moyaend pod install成功后运行报错 报错: error: Sandbox: bash(84760) deny(1) file-writ…...

游戏引擎学习第233天

原地归并排序地方很蒙圈 game_render_group.cpp:注意当前的SortEntries函数是O(n^2),并引入一个提前退出的条件 其实我们不太讨论这些话题,因为我并没有深入研究过计算机科学,所以我也没有太多内容可以分享。但希望在过去几天里…...

卷积神经网络基础(二)

停更好久的卷积神经网络基础知识终于开始更新了哈哈,今天主要介绍的是误差反向传播法。 目录 一、计算图 1.1 用计算图求解 1.2 局部计算 1.3 为什么采用计算图 二、链式法则 2.1 计算图的反向传播 2.2 链式法则 2.3 链式法则和计算图 三、反向传播 3.1 …...

探索大语言模型(LLM):定义、发展、构建与应用

文章目录 引言大规模语言模型的基本概念大规模语言模型的发展历程1. 基础模型阶段(2018年至2021年)2. 能力探索阶段(2019年至2022年)3. 突破发展阶段(以2022年11月ChatGPT的发布为起点) 大规模语言模型的构…...

树莓派超全系列教程文档--(33)树莓派启动选项

树莓派启动选项 启动选项start_file ,fixup_filecmdlinekernelarm_64bitramfsfileramfsaddrinitramfsauto_initramfsdisable_poe_fandisable_splashenable_uartforce_eeprom_reados_prefixotg_mode (仅限Raspberry Pi 4)overlay_prefix配置属…...

PTA:模拟EXCEL排序

Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数 n (≤105) 和 c,其中 n 是纪录的条数,c 是指定排序的列号。之后有 n 行,每行包含一条学生纪录。每条学生纪录由学号(6…...

Python 爬虫解决 GBK乱码问题

文章目录 前言爬取初尝试与乱码问题编码知识科普UTF - 8GBKUnicode Python中的编码转换其他编码补充知识GBKGB18030GB2312UTF(UCS Transfer Format)Unicode 总结 前言 在Python爬虫的过程中,我尝试爬取一本小说,遇到GBK乱码问题&a…...

Scala与人工智能:融合多范式编程的AI开发利器

在人工智能(AI)技术飞速发展的今天,编程语言的选择直接影响着算法实现效率与系统可扩展性。Scala,作为一门融合面向对象(OOP)与函数式编程(FP)的多范式语言,凭借其独特的…...

解决echarts饼图label显示不全的问题

解决办法 添加如下配置: labelLayout: {hideOverlap: false},...

JCST 2025年 区块链论文 录用汇总

Conference:Journal of Computer Science and Technology (JCST) CCF level:CCF B Categories:交叉/综合/新兴 Year:2025(截止4.19) JCST 2024年 区块链论文 录用汇总 1 Title: An Understandable Cro…...

不带无线网卡的Linux开发板上网方法

I.MX6ULL通过网线上网 设置WLAN共享修改开发板的IP 在使用I.MX6ULL-MINI开发板学习Linux的时候,有时需要更新或者下载一些资源包,但是开发板本身是不带无线网卡或者WIFI芯片的,尝试使用网口连接笔记本,笔记本通过无线网卡连接WIFI…...

选择排序(简单选择排序、堆排序)

简单选择排序(Selection Sort) 1. 算法思想 它通过多次遍历数组,每次从未排序部分中选择最小(或最大)的元素,将其放到已排序部分的末尾(或开头),直到整个数组有序。 2.…...

velocity模板引擎

文章目录 学习链接一. velocity简介1. velocity简介2. 应用场景3. velocity 组成结构 二. 快速入门1. 需求分析2. 步骤分析3. 代码实现3.1 创建工程3.2 引入坐标3.3 编写模板3.4 输出结果示例1编写模板测试 示例2 4. 运行原理 三. 基础语法3.1 VTL介绍3.2 VTL注释3.2.1 语法3.2…...

word选中所有的表格——宏

Sub 选中所有表格()Dim aTable As TableApplication.ScreenUpdating FalseActiveDocument.DeleteAllEditableRanges wdEditorEveryoneFor Each aTable In ActiveDocument.TablesaTable.Range.Editors.Add wdEditorEveryoneNextActiveDocument.SelectAllEditableRanges wdEdito…...

13.第二阶段x64游戏实战-分析人物等级和升级经验

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:12.第二阶段x64游戏实战-远程调试 效果图: 如下图红框,…...

容器化-Docker-基础

一、Docker 核心概念 1、容器化技术的本质 Docker 是基于 Linux 内核的轻量级容器化技术,通过 Namespace 和 Cgroups 实现资源隔离与限制,将应用及其依赖封装成可移植的容器。与传统虚拟机(需模拟完整硬件层)不同,Docker 容器共享宿主机内核,启动时间以秒级计算,资源占…...

六边形棋盘格(Hexagonal Grids)的坐标

1. 二位坐标转六边形棋盘的方式 1-1这是“波动式”的 这种就是把【方格子坐标】“左右各错开半个格子”做到的 具体来说有如下几种情况 具体到庙算平台上,是很巧妙的用一个4位整数,前两位为x、后两位为y来进行表示 附上计算距离的代码 def get_hex_di…...

SICAR 标准 安全门锁操作箱 按钮和指示灯说明

1、安全门锁操作箱 2、按钮和指示灯说明 一、指示灯说明 红灯: 常亮:表示安全门已解锁;闪烁:表示安全门未复位;熄灭:表示安全门已复位。 黄灯: 常亮:表示处于维修模式。 绿灯&…...

Day10【基于encoder- decoder架构实现新闻文本摘要的提取】

实现新闻文本摘要的提取 1. 概述与背景2.参数配置3.数据准备4.数据加载5.主程序6.预测评估7.生成效果8.总结 1. 概述与背景 新闻摘要生成是自然语言处理(NLP)中的一个重要任务,其目标是自动从长篇的新闻文章中提取出简洁、准确的摘要。近年来…...

【blender小技巧】使用blender的Cats Blender Plugin插件将3D人物模型快速绑定或者修复为标准的人形骨骼

文章目录 前言绑定或者修复人形骨骼1、下载模型2、导入模型到blender中3、删除无用的相机和灯光3、导出模型并在unity中使用 专栏推荐完结 前言 有时候我们下载的3D人物模型,可能不带骨骼信息,或者带一些错乱的骨骼信息。这时候我们就可以使用blender将…...

Linux——firewalld防火墙(笔记)

目录 一:Firewalld防火墙的概述 (1)firewalld简介 (2)firewalld&iptables的关系 (3)firewalld与iptables service的区别 1. ‌规则管理方式‌ 2. ‌默认策略与设计逻辑‌ 3. ‌配置文…...