之前我写博客都是使用上传图片的方式来展示流程图,这种方法比较麻烦,还要自己画,考虑到markdown 语法非常流行,越来越多的人使用 markdown 来写csdn 博客,所以我想能不能用 markdown 快速的绘制流程图呢?答案是肯定的,本篇博客讲述如何使用markdown 语法来进行流程图绘制,语法比较简单,画出的流程图也比较好看。

使用mermaid 绘制流程图

一般语法结果如下所示:
```mermaid
graph 方向
内容 ……
```

方向

方向一共有4个,格式为从哪到哪,每一个方向由两个大写字母表示,大写字母是四个基本方向: 上:Top,下:Bottom,左:Left,右:Right 的首字母。

  • 从上到下:TB (有时候也写作 TD)
  • 从下到上:BT
  • 从左到右:LR
  • 从右到左:RL

内容

流程图主要由以下几种元素组成:

  • 基本节点图形
  • 连接线
  • 连接线上的注释

下面将分别介绍

1.基本节点图像

基本节点图像由两部分组成,一个唯一的id,用于标记节点的身份;节点内的注释内容。基本图像如图所示

矩形
圆角矩形
不对称矩形
菱形
圆形

分别表示如下:

  • 矩形的情况:id1[矩形]
  • 圆角矩形的情况:id2(圆角矩形)
  • 不对称矩形情况:id3>不对称矩形]
  • 菱形情况:id4{菱形}
  • 圆形情况:id5((圆形))

源代码:

```mermaid
graph TBid[矩形]id4(圆角矩形)id3>不对称矩形]id1{菱形}id2((圆形))
```\
2.连接线
  • A --> B:A带箭头指向B
  • A — B: A不带箭头指向B
  • A -.- B: A用虚线指向B
  • A -.-> B: A用带箭头的虚线指向B
  • A ==> B: A用加粗的箭头指向B

示意图如下:

A
B
A
B
A
B
A
B
A
B

源代码如下

```mermaid
graph TDA[A] --> B[B] A1[A] --- B1[B] A4[A] -.- B4[B] A5[A] -.-> B5[B] A7[A] ==> B7[B]
```\
复制的时候去掉反斜杠
3.连接线上的注释

连接线上的注释其实就是在中间的位置加上注释

  • A – 描述 — B :A不带箭头指向B并在中间加上文字描述
  • A – 描述 --> B: A带箭头指向B并在中间加上文字描述
  • A -. 描述 .-> B :A用带箭头的虚线指向B并在中间加上文字描述
  • A == 描述 ==> B :A用加粗的箭头指向B并在中间加上文字描述

示意图如下:

描述
描述
描述
描述
A
B
A
B
A
B
A
B

源代码如下:

```mermaid
graph TBA[A] -- 描述 --- B[B] A2[A] -- 描述 --> B2[B] A3[A] -. 描述 .-> B3[B] A4[A] == 描述 =\=> B4[B]
```\

参考样例

以下参考样例来自 菜鸟教程,原文地址

1.标准流程图

Created with Raphaël 2.2.0 开始框 处理框 判断框(是或否?) 输入输出框 结束框 子流程 yes no

实现代码:

```mermaid
flowchat
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
```\

2. 标准流程图(横向,注意看代码不同点)

Created with Raphaël 2.2.0 开始框 处理框 判断框(是或否?) 输入输出框 结束框 子流程 yes no

实现代码:

```mermaid
flowchat
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st(right)->op(right)->cond
cond(yes)->io(bottom)->e
cond(no)->sub1(right)->op
```\

3. UML时序图

对象A 对象B 对象B你好吗?(请求) 对象B的描述 对象A的描述(提示) 我很好(响应) 你真的好吗? 对象A 对象B 标题:复杂使用

实现代码:

```mermaid
sequenceDiagram
对象A->>对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->>对象A: 我很好(响应)
对象A->>对象B: 你真的好吗?
```\

4.UML 时序图(复杂版)

对象A 对象B 小三 C 对象B你好吗?(请求) 对象B的描述 对象A的描述(提示) 我很好(响应) 你好吗 对象B找我了 你真的好吗? 我们是朋友 没人陪我玩 对象A 对象B 小三 C 标题:复杂使用

实现代码:

```mermaid
sequenceDiagram
Title: 标题:复杂使用
对象A->>对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->>对象A: 我很好(响应)
对象B->>小三: 你好吗
小三-->>对象A: 对象B找我了
对象A->>对象B: 你真的好吗?
Note over 小三,对象B: 我们是朋友
participant C
Note right of C: 没人陪我玩
```\

5.UML 标准时序图

张三 李四 王五 王五你好吗? 与疾病战斗 loop [ 健康检查 ] 合理 食物 看医生... 很好! 你怎么样? 很好! 张三 李四 王五 标题:复杂使用

实现代码:

```mermaid
%% 时序图例子,-> 直线,-->虚线,->>实线箭头sequenceDiagramparticipant 张三participant 李四张三->王五: 王五你好吗?loop 健康检查王五->王五: 与疾病战斗endNote right of 王五: 合理 食物 <br/>看医生...李四-->>张三: 很好!王五->李四: 你怎么样?李四-->王五: 很好!
```\

6.甘特图

Mon 06 Mon 13 Mon 20 需求 原型 UI设计 未来任务 学习准备理解需求 设计框架 开发 未来任务 耍 功能测试 压力测试 测试报告 设计 开发 测试 软件开发甘特图

实现代码:

```mermaidganttdateFormat  YYYY-MM-DDtitle 软件开发甘特图section 设计需求                      :done,    des1, 2014-01-06,2014-01-08原型                      :active,  des2, 2014-01-09, 3dUI设计                     :         des3, after des2, 5d未来任务                     :         des4, after des3, 5dsection 开发学习准备理解需求                      :crit, done, 2014-01-06,24h设计框架                             :crit, done, after des2, 2d开发                                 :crit, active, 3d未来任务                              :crit, 5d耍                                   :2dsection 测试功能测试                              :active, a1, after des3, 3d压力测试                               :after a1  , 20h测试报告                               : 48h
```\

使用 markdown语法绘制流程图相关推荐

  1. 【高效工具】《三》Typora直接使用MarkDown语法绘制流程图、时序图、甘特图

    平常使用Typora撰写内容的时候,偶尔会用到流程图,原来一直使用Word来作图,在插入到文档中,昨天偶然间了解到Typora支持使用mermaid来绘制流程图,才发现自己差点Out了.此处整理一下如 ...

  2. 运算符总结 - markdown语法绘制的思维导图

  3. 使用Typora工具绘制流程图

    使用Typora工具绘制流程图 Typora编辑器简介 使用Mermaid语法绘制流程图 1. 流程图方向 2.节点形状 3.节点间的连线 4.子图表(subgraph) 5.序列图(sequence ...

  4. markdown流程图多分支_提高生产力的好工具MarkDown语法学习

          Python自动化测试开发班3月7号开课,2月15号前报名优惠800 什么是Markdown Markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用 ...

  5. Markdown绘制流程图的方法

    Markdown绘制流程图的方法 日期:2015/08/13 作者:Z.K. 用Markdown绘制流程图十分简单方便,下面以几个例子来介绍其使用方法 Example1闰年判断 在编辑器中输入如下代码 ...

  6. showdoc流程图(markdown绘制流程图)

    文章目录 1.markdown常用的流程图元素 2.示例 3.可以使用left.right和bottom关键字来调整线条的位置使流程图更加清晰 4.状态标记(todo:暂时好像没有起作用,后面抽空看看 ...

  7. Markdown 语法介绍

    Markdown 语法介绍 from:https://coding.net/help/doc/project/markdown.html 文章内容 1 Markdown 语法介绍 1.1 标题 1.2 ...

  8. 入门写博客之markdown语法

    目录 1. 快捷键 2. 基本语法 2.1 字体设置斜体.粗体.删除线 2.2 分级标题 2.3 链接 2.4 分割线 2.5 代码块 2.6 引用 2.7 列表 2.8 表格 3. 常用技巧 3.1 ...

  9. markdown 流程图js_如何在Markdown中画流程图

    如何在Markdown中画流程图呢?当然是用mermaid了,mermaid支持三种图形的绘制, 分别是流程图, 时序图和甘特图, 本篇文章只介绍了mermaid中流程图在markdown的使用(现在 ...

最新文章

  1. github上传本地代码失败
  2. OKR的实施案例:OKR不需要很复杂
  3. PostgreSQL的initdb 源代码分析之五
  4. python怎样实现封装_python 封装底层实现原理
  5. rds基于什么开发_元王RDS--让H公司的10多年的设计经验重获新生!
  6. log4js linux,日志管理 log4js
  7. java ajax json 乱码_java+ajax加载中文json串后出现乱码问题的解决办法
  8. 前端走向后台,node.js基本
  9. linux集群之LVS入门和企业级实战(续一)
  10. 完美解决eclipse编辑器中文字符过小问题
  11. 人人商城小程序消息服务器配置,人人商城小程序订阅消息设置方法绝对好使
  12. python计算棋盘放米的故事_在棋盘上64个格子里放大米粒的故事
  13. 档案+户口+租房,你都清楚了吗?
  14. 模仿京东登录页面(HTML、CSS、JavaScript / jQuery)
  15. Invalid configuration of tez jars, tez.lib.uris is not defined in the configuration
  16. 使用Cmake生成跨平台项目编译解决方案
  17. android4.4 获取符合默认短信应用要求的短信应用包名
  18. Sublime Text 3 写js智能提示插件
  19. 音视频入门-02-RGB拼图
  20. cgb2111-day01

热门文章

  1. ExoPlayer 中的音频时间戳计算
  2. 【仿真】Carla之Traffic Manager [3]
  3. qq更换头像php简单,Typecho将评论头像修改为QQ头像
  4. Android:多分辨率适配
  5. 储能系统下垂控制,输出电流按虚拟电阻比例分配,并补偿有下垂系数带来的母线压降
  6. 【IPD】IPD流程
  7. python 解析cfg文件
  8. AD快捷键笔记(画板前一定要看看)
  9. hpm128无法共享打印_m126及m128打印机共享问题
  10. 读书笔记《复杂世界的明白人》九边著