Mermaid使用简介

2024-03-01 13:58
文章标签 使用 简介 mermaid

本文主要是介绍Mermaid使用简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • mermaid简介
    • 流程图(flowchart):
    • 时序图(sequence diagram)
    • 甘特图(gantt diagram)
  • 下游项目
  • Mermaid详解
    • 流程图基本语法
      • Graph
      • 节点和形状
        • 默认节点
        • 文本节点
        • 圆角节点
        • 圆形节点
        • 非对称节点
        • 菱形节点
      • 节点间的连线
        • 带有箭头的连线
        • 开放的连线
        • 连线上的文本
        • 带有尖头和文本的连线
        • 虚连线
        • 带有文本的虚连线
        • 粗连线
        • 带有文本的粗连线
      • 破坏语法的特殊字符
        • 用于转义字符的实体编码
      • 子图
      • 交互
      • 样式和类
        • 连线的样式
        • 节点的样式
        • CSS 类
        • 默人类
      • fontawesome的基础支持
      • 顶点和连线之间带有空格并且没有分号的图形声明
      • 配置
    • 时序图基本语法
    • 甘特图基本语法

mermaid简介

在这里插入图片描述

以与markdown类似的方式从文本生成图表和流程图。

在解释代码时,是否想过简化文档并避免使用像Visio这样的重量级工具?

这就是美人鱼诞生的原因,这是一种简单的类似markdown的脚本语言,用于通过javascript从文本生成图表。点击 这里 试用mermaid在线编辑器。

下面先来看几个例子:

流程图(flowchart):

mermaid代码如下:

graph TD;A-->B;A-->C;B-->D;C-->D;

生成的流程图如下:

A
B
C
D

时序图(sequence diagram)

mermaid代码如下:

sequenceDiagramparticipant Aliceparticipant BobAlice->John:Hello John, how are you?loop HealthcheckJohn->John:Fight against hypochondriaendNote right of John:Rational thoughts <br/>prevail...John-->Alice:Great!John->Bob: How about you?Bob-->John: Jolly good!

生成的时序图如下:

Alice Bob John Hello John, how are you? Fight against hypochondria loop [ Healthcheck ] Rational thoughts prevail... Great! How about you? Jolly good! Alice Bob John

甘特图(gantt diagram)

mermaid代码如下:

ganttdateFormat  YYYY-MM-DDtitle Adding GANTT diagram functionality to mermaidsection A sectionCompleted task            :done,    des1, 2014-01-06,2014-01-08Active task               :active,  des2, 2014-01-09, 3dFuture task               :         des3, after des2, 5dFuture task2               :         des4, after des3, 5dsection Critical tasksCompleted task in the critical line :crit, done, 2014-01-06,24hImplement parser and jison          :crit, done, after des1, 2dCreate tests for parser             :crit, active, 3dFuture task in critical line        :crit, 5dCreate tests for renderer           :2dAdd to mermaid                      :1d

生成的甘特图如下:

Mon 06 Mon 13 Mon 20 Completed task Active task Future task Future task2 Completed task in the critical line Implement parser and jison Create tests for parser Future task in critical line Create tests for renderer Add to mermaid A section Critical tasks Adding GANTT diagram functionality to mermaid

下游项目

Mermaid 已经被许多出版系统和编辑器所使用。下面列出了已知的一些插件/编辑器:

  • Markdown Plus - 带有额外功能的Markdown编辑器
  • gitbook-plugin
  • Confluence plugin
  • Using mermaid via docpad
  • Using mermaid in Jekyll
  • Using mermaid via Octopress
  • Using mermaid via Gatsby
  • Mardown editor Haroopad
  • Plugin for atom
  • Atom Package markdown-preview-enhanced
  • Vim Plugin
  • Sphinx extension
  • Pandoc filter
  • hads
  • Mermaid Preview for VS Code
  • Package for Sublime Text 3
  • MediaWiki extension
  • StackEdit
  • HackMd
  • remark.js

Mermaid详解

流程图基本语法

Graph

graph语句用于声明一个新的图形和这个图形布局的方向。

下面代码声明了一个从上到下的图。

graph TDStart --> Stop
Start
Stop

下面代码声明一个从左到右的图:

graph LRStart --> Stop
Start
Stop

可能方向有:

  • TB - 从上到下
  • BT - 从下到上
  • RL - 从右到左
  • LR - 从左到右
  • TD - 与TB相同

节点和形状

默认节点
graph LRid
id

请注意,id 是显示在框中的内容。

文本节点

也可以在与 id 不同的框中设置文本。如果多次这样做,则会使用节点的最后一个文本作为节点的内容。此外,如果稍后定义了节点的边缘,则可以省略文本定义。前面定义的节点的文本的将在呈现框时被使用。

graph LRid1[This is the text in the box]
This is the text in the box
圆角节点
graph LRid1(This is the text in the box)
This is the text in the box
圆形节点
graph LRid1((This is the text in the circle));
This is the text in the circle
非对称节点
graph LRid1>This is the text in the box]
This is the text in the box

请注意,现在只能绘制如上的形状,并不能绘制它的镜像图形,将来可能会支持这个功能。

菱形节点
graph LRid1{This is the text in the box}
This is the text in the box

节点间的连线

节点之间可以使用线或边进行连接。mermaid支持多种不同的线型,也可以在连线上附加文本。

带有箭头的连线
graph LRA-->B
A
B
开放的连线
graph LRA --- B
A
B
连线上的文本
graph LR
A -- This is the label text --- B;
This is the text
A
B

或者

graph LRA---|This is the text|B
This is the text
A
B
带有尖头和文本的连线
graph LRA-->|text|B
text
A
B

或者

graph LRA-- text -->B
text
A
B
虚连线
graph LRA-.->B
A
B
带有文本的虚连线
graph LRA-. text .-> B
text
A
B
粗连线
graph LRA ==> B
A
B
带有文本的粗连线
graph LRA == text ==> B
text
A
B

破坏语法的特殊字符

一般情况下,可以使用引号包裹文本,以包含会破坏语法的字符。如下例所示:

graph LRid1["This is the (text) in the box"]
This is the (text) in the box
用于转义字符的实体编码

可以使用下例所示的语法转义字符:

graph LRA["A double quote:#quot;"] -->B["A dec char:#9829;"]
A double quote:#quot;
A dec char:#9829;

CSDN的markdown编辑器好像不支持此转义语法

子图

subgraph titlegraph definition
end

示例:

graph TBc1-->a2subgraph onea1-->a2endsubgraph twob1-->b2endsubgraph threec1-->c2end
three
two
one
c1
c2
b1
b2
a1
a2

交互

可以将单击事件绑定到节点,单击事件可以触发javascript回调函数或一个将在浏览器的新选项卡中打开的链接。

click nodeId callback
  • nodeId 是节点的id
  • callback 是在显示图形的页面上定义的以 nodeId 作为参数的javascript函数的名称

下面是一个使用回调函数实现提示功能的例子:

<script>var callback = function(){alert('A callback was triggered');}
<script>
graph LR;A-->B;click A callback "Tooltip for a callback"click B "http://www.github.com" "This is a tooltip for a link"

提示的文本包裹在双引号内。提示的格式由 .mermaidTooltip 类设置。

graph LR;A-->B;click A callback "Tooltip"click B "http://www.github.com" "This is a link"
A
B

提示功能和链接到URLs的功能从版本 0.5.2开始启用。

样式和类

连线的样式

可以设置连线的样式。例如,您可能想设计一个在流中向后走的连线。由于连线与节点一样没有id,因此使用在图形中定义连线时的序号来为连线指定特定的样式。在下面的例子中,定义在linkStyle语句中的样式将属于图中的第四个连线:

linkStyle 3 stroke:#ff3,stroke-width:4px;
节点的样式

可以对节点应用特定的样式,如较粗的边框或不同的背景颜色。

graph LRid1(Start)-->id2(Stop)style id1 fill:#f9f,stroke:#333,stroke-width:4pxstyle id2 fill:#ccf,stroke:#f66,stroke-width:2px,stroke-dasharray: 5, 5
Start
Stop

与每次定义样式相比,更方便的方法是定义一个样式类并将该类附加到应该具有不同外观的节点上。

类定义如下例所示:

classDef className fill:#f9f,stroke:#333,stroke-width:4px;

将一个类附加到一个节点的方式如下:

class nodeId1 className;

也可以在一条语句里将一个类附加到一个节点列表:

class nodeId1,nodeId2 className;
CSS 类

也可以在CSS样式中预定义类,这些类可以从图的定义中应用,如下例所示:

样式示例:

<style>.cssClass > rect{fill:#FF0000;stroke:#FFFF00;stroke-width:4px;}
</style>

定义示例:

graph LR;A-->B[AAA<span>BBB</span>];B-->D;class A cssClass;
默人类

如果一个类被命名为 default,那么它将被分配给所有没有特定类定义的类。

classDef default fill:#f9f,stroke:#333,stroke-width:4px;

fontawesome的基础支持

可以从fontawesome加载图标。

可以通过如下语法访问图标:

fa:#icon class name#
graph TDB["fa:fa-twitter for peace"]B-->C[fa:fa-ban forbidden]B-->D(fa:fa-spinner);B-->E(A fa:fa-camera-retro perhaps?);
for peace
forbidden
A perhaps?

顶点和连线之间带有空格并且没有分号的图形声明

  • 在图形声明中,语句现在也可以不用分号结束。在发布 0.2.16 版本之后,用分号结束图形语句是可选的。因此,下面的图声明与旧的图形声明同样有效。
  • 在顶点和连线之间允许有一个单独的空格。然而,在顶点和它的文本之间、连线和它的文本之间不应该有任何空格。图形声明的旧语法也可以工作,因此这个新特性是可选的,引入它是为了提高可读性。

下面是图形的边的新声明,它与图形的边的旧声明同样有效:

graph LRA[Hard edge] -->|Link text| B(Round edge)B --> C{Decision}C -->|One| D[Result one]C -->|Two| E[Result two]
Link text
One
Two
Hard edge
Round edge
Decision
Result one
Result two

配置

调整渲染流程图的宽度。

可以通过定义 mermaid.flowchartConfig 或由CLI使用json文件配置来调整已渲染流的程图的宽度。如何使用CLI在mermaidCLI页面中进行了描述。mermaid.flowchartConfig 可以设置为带有配置参数的JSON字符串或相应的对象:

mermaid.flowchartConfig = {width: 100%
}

时序图基本语法

待补充

甘特图基本语法

待补充

这篇关于Mermaid使用简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/762679

相关文章

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp