Mermaid 是一个基于 JavaScript 的图表绘制工具,通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。Mermaid 诞生的主要目的是让文档的更新能够及时跟上开发进度。
flowchart LR
A [Hard] -- >|Text | B (Round)
B -- > C {Decision }
C -- >|One | D [Result 1]
C -- >|Two | E [Result 2]
sequenceDiagram
Alice-> >John: Hello John, how are you?
loop HealthCheck
John-> >John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John--> >Alice: Great!
John-> >Bob: How about you?
Bob--> >John: Jolly good!
Bob John Alice Bob John Alice loop [HealthCheck] Rational thoughts! Hello John, how are you? Fight against hypochondria Great! How about you? Jolly good!
gantt
section Section
Completed :done, des1, 2014-01-06 ,2014-01-08
Active :active, des2, 2014-01-07 , 3d
Parallel 1 : des3, after des1, 1d
Parallel 2 : des4, after des1, 1d
Parallel 3 : des5, after des3, 1d
Parallel 4 : des6, after des4, 1d
2014-01-06 2014-01-07 2014-01-07 2014-01-08 2014-01-08 2014-01-09 2014-01-09 2014-01-10 Completed Parallel 1 Parallel 2 Active Parallel 3 Parallel 4 Section
classDiagram
Class01 <|-- AveryLongClass : Cool
<<Interface>> Class01
Class09 --> C2 : Where am I?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
class Class10 {
<<service>>
int id
size()
}
stateDiagram-v2
[*]
Still
Still
Moving
Moving
Crash
pie
"Dogs" : 386
"Cats" : 85
"Rats" : 15
79% 17% 3% Dogs Cats Rats
journey
title My working day
section Go to work
Make tea: 5 : Me
Go upstairs: 3 : Me
Do work: 1 : Me , Cat
section Go home
Go downstairs: 5 : Me
Sit down: 3 : Me
Cat Me Go to work Me Make tea Me Go upstairs Me Cat Do work Go home Me Go downstairs Me Sit down My working day
发布
对于有权限的同学来说,你可以通过以下步骤来完成发布操作:
更新 package.json
中的版本号,然后执行如下命令:
npm publish
以上的命令会将文件打包到 dist
目录并发布至 https://www.npmjs.com .
相关项目
贡献者
Mermaid 是一个不断发展中的社区,并且还在接收新的贡献者。有很多不同的方式可以参与进来,而且我们还在寻找额外的帮助。如果你想知道如何开始贡献,请查看 这个 issue 。
关于如何贡献的详细信息可以在 贡献指南 中找到。
安全
对于公开网站来说,从互联网上的用户处检索文本、存储供后续在浏览器中展示的内容可能是不安全的,理由是用户的内容可能嵌入一些数据加载完成之后就会运行的恶意脚本,这些对于 Mermaid 来说毫无疑问是一个风险,尤其是 mermaid 图表还包含了许多在 html 中使用的字符,这意味着我们难以使用常规的手段来过滤不安全代码,因为这些常规手段会造成图表损坏。我们仍然在努力对获取到的代码进行安全过滤并不断完善我们的程序,但很难保证没有漏洞。
作为拥有外部用户的网站的额外安全级别,我们很高兴推出一个新的安全级别,其中的图表在沙盒 iframe 中渲染,防止代码中的 javascript 被执行,这是在安全性方面迈出的一大步。
很不幸的是,鱼与熊掌不可兼得,在这个场景下它意味着在可能的恶意代码被阻止时,也会损失部分交互能力 。
报告漏洞
如果想要报告漏洞,请发送邮件到 security@mermaid.live, 并附上问题的描述、复现问题的步骤、受影响的版本,以及解决问题的方案(如果有的话)。
鸣谢
来自 Knut Sveidqvist:
特别感谢 d3 和 dagre-d3 这两个优秀的项目,它们提供了图形布局和绘图工具库! > 同样感谢 js-sequence-diagram 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。 > 感谢 Tyler Long 从 2017 年四月开始成为了项目的合作者。
感谢越来越多的 贡献者们 ,没有你们,就没有这个项目的今天!
Mermaid 是由 Knut Sveidqvist 创建,它为了更简单的文档编写而生。
Mermaid 是一个基于 JavaScript 的图表绘制工具,通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。Mermaid 诞生的主要目的是让文档的更新能够及时跟上开发进度。