链接: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语法得到的文件
  1. ```chart
  2. ,预算,收入,花费,债务 # 前面逗号不能省
  3. June,5000,8000,4000,6000
  4. July,3000,1000,4000,3000
  5. Aug,5000,7000,6000,3000
  6. Sep,7000,2000,3000,1000
  7. Oct,6000,5000,4000,2000
  8. Nov,4000,3000,5000,
  9. type: column
  10. title:每月收益
  11. x.title: Amount
  12. y.title: Month
  13. y.prefix: $ # 后缀是:y.suffix: $
  14. ```

flowchart语法画流程图

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

 
flowchart流程图

原文链接:markdown流程图

插入数学公式

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

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

  1. $$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: 默认方向,从上到下

连接线与箭头

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

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

高级语法(比较少用到)

html字符的转义字符
 
html字符的转义字符
  1. ```mermaid
  2. graph LR
  3. A["A double quote:#quot;"]-->B["A dec char:#9829;"]
  4. ```
CSS样式
 
CSS样式
  1. ```mermaid
  2. graph LR
  3. id1(Start)-->id2(Stop)
  4. style id1 fill:#f9f,stroke:#333,stroke-width:4px;
  5. style id2 fill:#ccf,stroke:#f66,stroke-width:2px,stroke-dasharray:5,5;
  6. ```
样式类
 
样式类

原文链接

子图(Subgraphs)
  1. subgraph title
  2. graph definition
  3. end
 
子图

插入时序图

  1. ```mermaid
  2. sequenceDiagram
  3. A->>B: 是否已收到消息?
  4. B-->>A: 已收到消息
  5. ```
 
时序图

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

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

  1. ```mermaid
  2. sequenceDiagram
  3.   participant John
  4.   participant Alice
  5.   Alice->>John:Hello John,how are you?
  6.   John-->>Alice:Great!
  7. Alice->John: dont borther me !
  8. John-->Alice:Great!
  9. Alice-xJohn: wait!
  10. John--xAlice: Ok!
  11. ```
 
线条样式

高级用法(比较少用)

便签

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

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

循环Loops

语法:

  1. loop 循环的文本
  2. ... statements...
  3. end
 
loop循环
  1. ```mermaid
  2. sequenceDiagram
  3. Alice->>John: Hello!
  4. loop Reply every minute
  5. John->>Alice: Great!
  6. end
  7. ```

选择ALT

在时序图中选择性表达

  1. alt Describing text
  2. statements
  3. else
  4. statements
  5. end

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

  1. opt 描述文本
  2. ...statements...
  3. end
 
选择ALT与OPT
  1. ```mermaid
  2. sequenceDiagram
  3. Alice->>Bob: Hello Bob, How are you?
  4. alt is sick
  5. Bob->>Alice: not so good :(
  6. else is well
  7. Bob->>Alice: Feeling fresh like a daisy :)
  8. end
  9. opt Extra response
  10. Bob->>Alice: Thanks for asking
  11. end
  12. ```

举个大栗子 :)

 
综合大例子

识别不了换行</br>

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

插入甘特图

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

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

语法:

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

举个大栗子 :)

 
甘特图综合大例子
  1. ```mermaid
  2. gantt
  3. dateFormat YYYY-MM-DD
  4. title Adding GANTT diagram functionality to mermaid
  5. section A section
  6. Completed task :done, des1, 2014-01-06,2014-01-08
  7. Active task :active, des2, 2014-01-09, 3d
  8. Future task : des3, after des2, 5d
  9. Future task2 : des4, after des3, 5d
  10. section Critical tasks
  11. Completed task in the critical line :crit, done, 2014-01-06,24h
  12. Implement parser and jison :crit, done, after des1, 2d
  13. Create tests for parser :crit, active, 3d
  14. Future task in critical line :crit, 5d
  15. Create tests for renderer :2d
  16. Add to mermaid :1d
  17. section Documentation
  18. Describe gantt syntax :active, a1, after des1, 3d
  19. Add gantt diagram to demo page :after a1 , 20h
  20. Add another diagram to demo page :doc1, after a1 , 48h
  21. section Last section
  22. Describe gantt syntax :after doc1, 3d
  23. Add gantt diagram to demo page : 20h
  24. Add another diagram to demo page : 48h
  25. ```

印象笔记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. [EXP]CVE-2019-0604 Microsoft SharePoint RCE Exploit

    研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的. 剑桥大学的研究结果,当单词的字母顺序颠倒时,你仍旧可以明白整个单词的意思.其中重要的是:只要单词的第一个字母和 ...

  2. [转帖]美团在Redis上踩过的一些坑-2.bgrewriteaof问题

    美团在Redis上踩过的一些坑-2.bgrewriteaof问题 博客分类: redis 运维 aofaof rewrite  转载请注明出处哈:http://carlosfu.iteye.com/b ...

  3. netty心跳机制解决

    直接看别个的源码:https://blog.csdn.net/xt8469/article/details/84827443>>https://blog.csdn.net/xt8469/a ...

  4. Django model distinct 的使用方法

    原文: 今天突然有人问起在 django 的 model 里面怎么用 distinct, 对于这种东西,我一向的观点是查看django 的在线文档.于是不加思索的根据在线文档给出了答案,但结果很让人沮 ...

  5. drf之接口规范

    web接口 # 请求工具:postman => https://www.getpostman.com/ # 接口:url链接,通过向链接发生不同的类型请求与数据得到相应的响应数据 # http: ...

  6. JavaScript 数据类型(基本数据类型)

    JavaScript 数据类型分为简单数据类型和复杂数据类型. 简单数据类别包括 Number.String.Boolean.Undefined 和 Null 共5种. 复杂数据类型只有一个 Obje ...

  7. JavaScript 运算符(Operator)

    一.算数运算符 1.加法(+) 表示操作数相加:  处理特殊值规则: 如果两个操作数都是字符串,则将第二个操作数与第一个操作数拼接起来: 如果只有一个操作数是字符串,则将另一个操作数转换为字符串,然后 ...

  8. pycharm 里运行 django 工程 You must either define the environment variable DJANGO_SETTINGS_MODULE 错误

    pycharm 里运行 django 工程出现错误(在命令行直接运行ok): django.core.exceptions.ImproperlyConfigured: Requested settin ...

  9. SpringCloud学习第二章-SpringBoot

    SpringCloud 学习前提     SpringCloud是基于SpringBoot构建的,因此他延续了SpringBoot的契约模式以及开发方式.下面将讲到SpringBoot的构建方式. S ...

  10. Linux Mysql创建新用户并允许远程连接

    第一步 登陆mysql: mysql-u 数据库用户名 -h 数据库IP -p 根据提示 输入数据库密码 第二步: GRANT ALL PRIVILEGES ON *.* TO '自定义用户名'@'% ...