链接: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. 在RedisTemplate中使用scan代替keys指令

    keys * 这个命令千万别在生产环境乱用.特别是数据庞大的情况下.因为Keys会引发Redis锁,并且增加Redis的CPU占用.很多公司的运维都是禁止了这个命令的 当需要扫描key,匹配出自己需要 ...

  2. tornado利用装饰器记录每个http请求

    python利用装饰器记录每个http请求 设置装饰器 from functools import wraps from datetime import datetime ""&q ...

  3. C# 单向链表 逆序(递归)

    static void Main(string[] args) { while (true) { LinkedList L = new LinkedList(); L.Add(new Node(&qu ...

  4. k8s-Annotation(注解)

    k8s-Annotation(注解) Annotation与Label类似,也使用key/value键值对的形式进行定义. Label具有严格的命名规则,它定义的是Kubernetes对象的元数据(M ...

  5. mysql 中的 not like 另一种简化方法。

    第一种 not like 方法 select * from table where `zongbu` not like '%北京%' and `zongbu` not like '%上海%' and ...

  6. 我的第一个netcore2.2 api项目搭建(一)

    早早就想入门netcore,一直没下定决心,这次正好碰上项目服务变更,便想着入坑试试,边学边用. 目标: 一.api使用core版的SqlSugar,集成orm,实现快速开发 二.api使用Swagg ...

  7. Ubuntu 使用scrapy-splash

    配置docker 1.更新apt索引: $ sudo apt-get update 2.安装包允许apt通过HTTPS使用仓库:  sudo dpkg --configure -a  sudo apt ...

  8. 对Apache2进行简单配置

    Apache2 1.安装Apache2 sudo apt-get update sudo apt-get install apache2 2.启动服务 sudo /etc/init.d/apache2 ...

  9. 基于react-app搭建react-router+redux项目

    前言 总括: 本文采用react+redux+react-router+less+es6+webpack,以实现一个简易备忘录(todolist)为例尽可能全面的讲述使用react全家桶实现一个完整应 ...

  10. Ueditor 关于视频上传相关问题

      !!!每次改动后记得,清除一下浏览器缓存再试 !!!   4点: 1.修复编辑时视频不能预览问题: 2.插入视频的时候.在预览的窗口提示 “输入的视频地址有误,请检查后再试!” 3.ueditor ...