使用 markdown语法绘制流程图
之前我写博客都是使用上传图片的方式来展示流程图,这种方法比较麻烦,还要自己画,考虑到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
示意图如下:
源代码如下
```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并在中间加上文字描述
示意图如下:
源代码如下:
```mermaid
graph TBA[A] -- 描述 --- B[B] A2[A] -- 描述 --> B2[B] A3[A] -. 描述 .-> B3[B] A4[A] == 描述 =\=> B4[B]
```\
参考样例
以下参考样例来自 菜鸟教程,原文地址
1.标准流程图
实现代码:
```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. 标准流程图(横向,注意看代码不同点)
实现代码:
```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时序图
实现代码:
```mermaid
sequenceDiagram
对象A->>对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->>对象A: 我很好(响应)
对象A->>对象B: 你真的好吗?
```\
4.UML 时序图(复杂版)
实现代码:
```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 标准时序图
实现代码:
```mermaid
%% 时序图例子,-> 直线,-->虚线,->>实线箭头sequenceDiagramparticipant 张三participant 李四张三->王五: 王五你好吗?loop 健康检查王五->王五: 与疾病战斗endNote right of 王五: 合理 食物 <br/>看医生...李四-->>张三: 很好!王五->李四: 你怎么样?李四-->王五: 很好!
```\
6.甘特图
实现代码:
```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语法绘制流程图相关推荐
- 【高效工具】《三》Typora直接使用MarkDown语法绘制流程图、时序图、甘特图
平常使用Typora撰写内容的时候,偶尔会用到流程图,原来一直使用Word来作图,在插入到文档中,昨天偶然间了解到Typora支持使用mermaid来绘制流程图,才发现自己差点Out了.此处整理一下如 ...
- 运算符总结 - markdown语法绘制的思维导图
- 使用Typora工具绘制流程图
使用Typora工具绘制流程图 Typora编辑器简介 使用Mermaid语法绘制流程图 1. 流程图方向 2.节点形状 3.节点间的连线 4.子图表(subgraph) 5.序列图(sequence ...
- markdown流程图多分支_提高生产力的好工具MarkDown语法学习
Python自动化测试开发班3月7号开课,2月15号前报名优惠800 什么是Markdown Markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用 ...
- Markdown绘制流程图的方法
Markdown绘制流程图的方法 日期:2015/08/13 作者:Z.K. 用Markdown绘制流程图十分简单方便,下面以几个例子来介绍其使用方法 Example1闰年判断 在编辑器中输入如下代码 ...
- showdoc流程图(markdown绘制流程图)
文章目录 1.markdown常用的流程图元素 2.示例 3.可以使用left.right和bottom关键字来调整线条的位置使流程图更加清晰 4.状态标记(todo:暂时好像没有起作用,后面抽空看看 ...
- Markdown 语法介绍
Markdown 语法介绍 from:https://coding.net/help/doc/project/markdown.html 文章内容 1 Markdown 语法介绍 1.1 标题 1.2 ...
- 入门写博客之markdown语法
目录 1. 快捷键 2. 基本语法 2.1 字体设置斜体.粗体.删除线 2.2 分级标题 2.3 链接 2.4 分割线 2.5 代码块 2.6 引用 2.7 列表 2.8 表格 3. 常用技巧 3.1 ...
- markdown 流程图js_如何在Markdown中画流程图
如何在Markdown中画流程图呢?当然是用mermaid了,mermaid支持三种图形的绘制, 分别是流程图, 时序图和甘特图, 本篇文章只介绍了mermaid中流程图在markdown的使用(现在 ...
最新文章
- github上传本地代码失败
- OKR的实施案例:OKR不需要很复杂
- PostgreSQL的initdb 源代码分析之五
- python怎样实现封装_python 封装底层实现原理
- rds基于什么开发_元王RDS--让H公司的10多年的设计经验重获新生!
- log4js linux,日志管理 log4js
- java ajax json 乱码_java+ajax加载中文json串后出现乱码问题的解决办法
- 前端走向后台,node.js基本
- linux集群之LVS入门和企业级实战(续一)
- 完美解决eclipse编辑器中文字符过小问题
- 人人商城小程序消息服务器配置,人人商城小程序订阅消息设置方法绝对好使
- python计算棋盘放米的故事_在棋盘上64个格子里放大米粒的故事
- 档案+户口+租房,你都清楚了吗?
- 模仿京东登录页面(HTML、CSS、JavaScript / jQuery)
- Invalid configuration of tez jars, tez.lib.uris is not defined in the configuration
- 使用Cmake生成跨平台项目编译解决方案
- android4.4 获取符合默认短信应用要求的短信应用包名
- Sublime Text 3 写js智能提示插件
- 音视频入门-02-RGB拼图
- cgb2111-day01