链接:https://www.jianshu.com/p/3cf83d22dd3d

Markdown图表语法

本文介绍如何用Markdown的mermaid等语法插入时序图、流程图、甘特图

内容整合了:

目录

 
目录

几款支持Markdown编辑器的比较

1.有道云笔记不能加mermaid字段,不然会显示不出, 有道云笔记省略了mermaid字段声明

2.在移动端支持上有道云笔记支持的语法和功能也更多一些,能够在手机端编辑和查看流程图。而印象笔记既无法编辑更无法查看流程图

3.只有印象笔记增加了一个chart声明的语法功能,可以画图表,类似Echart效果

4.在Markdown功能支持丰富度比较:GitHub > 有道云笔记 > 印象笔记 > 简书 & Jupyter notebook

插入图表(chart语法)

目前支持饼状图、折线图、柱状图和条形图,只需将 type 改为对应的pie、line、column 和 bar。(默认柱形图))
目前好像只有印象笔记能够实现,其他都不行

 
印象笔记chart语法得到的文件
```chart
,预算,收入,花费,债务 # 前面逗号不能省
June,5000,8000,4000,6000
July,3000,1000,4000,3000
Aug,5000,7000,6000,3000
Sep,7000,2000,3000,1000
Oct,6000,5000,4000,2000
Nov,4000,3000,5000, type: column
title:每月收益
x.title: Amount
y.title: Month
y.prefix: $ # 后缀是:y.suffix: $
```

flowchart语法画流程图

目前笔记APP都不支持这个语法,暂时不用管,出来类似于Visio效果

 
flowchart流程图

原文链接:markdown流程图

插入数学公式

支持绝大多数的 LaTeX 数学公式

```math
e^{i\pi} + 1 = 0
```

$$y = k x + b \tag{1}$$

其中$$ $$代表单独一行的公式,\tag{1}才是公式右边的{1}。印象笔记暂时支持不完善。

插入流程图(mermaid语法)

书写graph XX,用以确定将要绘制的流程图及其类型(XX表示流程图类型)。

方向控制

流程图分为竖向和横向两大类,竖向包括自上而下和自下而上两种顺序,横向包括从右到左和从左到右两种顺序。
其对应语法分别为:graph TB/graph BT/graph RL/graph LR。

TB - top bottom(自上而下)
BT - bottom top(自下而上)
RL - right left(从右到左)
LR - left right(从左到右)
TD: 默认方向,从上到下

连接线与箭头

此语法有道云笔记支持,印象笔记目前不支持
一个箭头 -> 只能表示一条线
要表示箭头,需要两个箭头 ->>
虚线用两个虚线表示 -->>

 
有道云笔记的线条样式
```mermaid
graph TD
A[模块A] -->|A1| B(模块B)
B --> C{判断条件C}
C -->|条件C1| D>模块D]
C -->|条件C2| E((模块E))
C -->|条件C3| F["模块F(引号可转义特殊字符)"]
```
 
印象笔记流程图示例

高级语法(比较少用到)

html字符的转义字符
 
html字符的转义字符
```mermaid
graph LR
A["A double quote:#quot;"]-->B["A dec char:#9829;"]
```
CSS样式
 
CSS样式
```mermaid

graph LR
id1(Start)-->id2(Stop)
style id1 fill:#f9f,stroke:#333,stroke-width:4px;
style id2 fill:#ccf,stroke:#f66,stroke-width:2px,stroke-dasharray:5,5; ```
样式类
 
样式类

原文链接

子图(Subgraphs)
subgraph title
graph definition
end
 
子图

插入时序图

```mermaid
sequenceDiagram
A->>B: 是否已收到消息?
B-->>A: 已收到消息
```
 
时序图

mermaid通过设定参与者(participants)的顺序控制二者的顺序。上面的图可以做如下修改:

mermaid的participant不支持直接声明颜色,只能声明个名字了
线条样式如下

```mermaid
sequenceDiagram
  participant John
  participant Alice
  Alice->>John:Hello John,how are you?
  John-->>Alice:Great!
Alice->John: dont borther me !
John-->Alice:Great!
Alice-xJohn: wait!
John--xAlice: Ok!
```
 
线条样式

高级用法(比较少用)

便签

语法:[right of | left of | over][Actor]:Text

 
便签的用法
```mermaid
sequenceDiagram
participant John
Note left of John:左边的文本 Alice->>John:Hello John, how are you?
Note over Alice,John:跨越两个Actor的便签
```

循环Loops

语法:

loop 循环的文本
... statements...
end
 
loop循环
```mermaid
sequenceDiagram
Alice->>John: Hello!
loop Reply every minute
John->>Alice: Great!
end
```

选择ALT

在时序图中选择性表达

alt Describing text
…statements…
else
…statements…
end

或者使用opt(推荐在没有else的情况下使用)

opt 描述文本
...statements...
end
 
选择ALT与OPT
```mermaid
sequenceDiagram
Alice->>Bob: Hello Bob, How are you?
alt is sick
Bob->>Alice: not so good :(
else is well
Bob->>Alice: Feeling fresh like a daisy :)
end
opt Extra response
Bob->>Alice: Thanks for asking
end
```

举个大栗子 :)

 
综合大例子

识别不了换行</br>

```mermaid
graph TB
sq[Square shape] --> ci((Circle shape)) subgraph A subgraph
di{Diamond with line break} -.-> ro(Rounded)
di==>ro2(Rounded square shape)
end e --> od3>Really long text with linebreak<br>in an Odd shape] cyr[Cyrillic]-->cyr2((Circle shape Начало)); classDef green fill:#9f6,stroke:#333,stroke-width:2px;
classDef orange fill:#f96,stroke:#333,stroke-width:4px;
class sq,e green
class di orange
```

插入甘特图

mermaid字段可以不写,也不会影响图片显示(有点奇怪)
一个section和另一个section之间要空行

```mermaid
gantt
title 甘特图
dateFormat YYYY-MM-DD section 项目A
任务1 :a1, 2018-06-06, 30d
任务2 :after a1 , 20d section 项目B
任务3 :2018-06-12 , 12d
任务4 : 24d
```
 
甘特图示例
语法说明
语法 功能
title 标题
dateFormat 日期格式
section 模块
done 已经完成
active 当前正在进行
crit 关键阶段
日期缺失 默认从上一项完成后

语法:

section 项目名称
分任务名称 : [状态], [当前节点名称], [开始时间], 结束时间/持续时间

举个大栗子 :)

 
甘特图综合大例子
```mermaid
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page : 20h
Add another diagram to demo page : 48h ```

印象笔记Markdown快捷键

功能 快捷键
新建 Markdown 笔记 Ctrl+Alt+D
粗体 Ctrl+B
斜体 Ctrl+I
删除线 Ctrl+T
下划线 Ctrl+U
分隔线 Ctrl + Shift + -
编号列表 Ctrl + Shift + O
项目符号列表 Ctrl + Shift + W
插入待办事项 Ctrl + Shift + C
代码块 Ctrl+Shift+L
插入日期和时间 Alt + Shift + D
撤销 Ctrl+Z
在笔记内搜索 Ctrl+F

Markdown插入图表的更多相关文章

  1. 使用Free Spire.XLS插入图表

    使用Free Spire.XLS插入图表 前言 最近在研究Office中间件,上网搜索了下,比较出名的有两个:Aspose和Spire,两者功能齐全,对Office的支持趋近完善,但售价不菲.仔细搜索 ...

  2. MarkDown插入图片

    MarkDown插入图片的语法 ·编辑器:MacDown 比如博客园的Logo,URL是 http://static.cnblogs.com/images/logo_small.gif 在要插入图片的 ...

  3. 关于Markdown插入图片路径错误的问题

    关于Markdown插入图片路径错误的问题 开发问题 解决方法  妈耶,连续一天写2篇博客,也是醉了,这篇博客主要是介绍关于Markdown插入图片路径错误的问题 在上篇中,我介绍了一下Markdow ...

  4. markdown 插入latex公式练习

    markdown 插入latex公式 $$公式$$表示行间公式,本来Tex中使用\(公式\)表示行内公式,但因为Markdown中\是转义字符,所以在Markdown中输入行内公式使用\\(公式\\) ...

  5. markdown插入表格语法

    markdown插入表格语法 举例 如表格标题为,姓名,班级,成绩 标题内的内容为,yang,a班,100 我们要在markdow文件中插入表格 如 姓名|班级|成绩 -|-|- yang|a班|10 ...

  6. markdown 插入链接

    插入链接 []里面写链接的标题或描述,可以省略不加不写 , () 里面是链接,必须有必须写 例如 [百度](https://www.baidu.com) 百度 参考文章 Markdown 插入链接

  7. 【Tips】有道云笔记中Markdown插入图片

    在有道云笔记中用MarkDown插入图片 新建一个文档专门用来放图片 把所有要用的图片专门放在一个笔记里,用普通模式先同步笔记,然后用分享笔记 会有一个链接,用浏览器打开这个分享的笔记就能找到所有的图 ...

  8. 在线编辑Word——插入图表

    在Word中可插入图表,配合使用表格能够更加全方位的展示数据的可信度并增加数据的可读性.本文将通过使用在线编辑器 Spire.Cloud Word 演示如何来插入图表,并设置相关格式化操作.具体步骤如 ...

  9. 优雅地在markdown插入图片

    markdown 中插入图片,好烦!!!   喜欢用Markdown写文字,但是它的图片引用是一个大问题(当然csdn不会遇到这个问题).借用第三方将图片储存在印象笔记上是一个好办法.但是会出现的一个 ...

随机推荐

  1. php form表单ajax上传图片方法

    form表单ajax上传图片方法 先引用jquery.form.js 前台代码<pre><form id="form1"> <input id=&qu ...

  2. C# 实现Escape UnEscape方法(支持中文-转载)

    //Escape方法 public static string Escape(string s) { StringBuilder sb = new StringBuilder(); byte[] by ...

  3. 注解@Slf4j的使用

    注解@Slf4j的使用 声明:如果不想每次都写private  final Logger logger = LoggerFactory.getLogger(当前类名.class); 可以用注解@Slf ...

  4. GoLang 开山篇

    GoLang 开山篇 1.Golang 的学习方向 Go语言,我们可以简单的写成Golang. 2.GoLang 的应用领域 2.1 区块链的应用开发 2.2 后台的服务应用 2.3 云计算/云服务后 ...

  5. NodeJS安装及部署(Linux系统)

    环境说明:Linux环境,CentOS 7版本. 第一步:下载node地址:https://nodejs.org/en/download/ 下载后,是一个[node-v10.16.0-linux-x6 ...

  6. InheritableThreadLocal详解

    InheritableThreadLocal详解     https://www.jianshu.com/p/94ba4a918ff5 InheritableThreadLocal——父线程传递本地变 ...

  7. html 显示 pdf

    html 显示 pdf文件四种方式: 1. <embed src="pdf/wobu.pdf" type="application/pdf" width= ...

  8. Spring Boot 的自动配置探究、自制一个starter pom

    //TODO @Conditional @Condition

  9. 在.Net Core中使用Swagger制作接口文档

    在实际开发过程中后台开发人员与前端(移动端)接口的交流会很频繁.所以需要一个简单的接口文档让双方可以快速定位到问题所在. Swagger可以当接口调试工具也可以作为简单的接口文档使用. 在传统的asp ...

  10. linuxmint安装Tools找不到Tools的压缩包问题

    安装Linuxmint之后按照惯例安装Tools,打开桌面上的Tools光盘之后找不到压缩包. PS:因为已经装好了,就不上图了,按照下面的步骤做就没有问题了. 1:找到vmware的安装目录下的li ...