typora支持的流程图的语法

发布于:2024-04-19 ⋅ 阅读:(21) ⋅ 点赞:(0)

流程图

typora支持以下代码块画流程图

  • flow:流程图,会自动被 flowchart.js 渲染。
  • sequence:序列图,会自动被 js-sequence 解析和渲染
  • mermaid:mermaid图。

要使 Typora 支持代码绘图,需要对 Typora 软件进行相应设置:从 Typora 的【文件】-【偏好设置…】-【Markdown】-【 Markdown扩展语法】下启用 图表 (序列图、流程图和Marmaid图) 复选项(如下图示),并重启 Typora 生效。

当 Typora 将 Markdown 文档导出为 HTML、PDF、epub、docx 文件格式时,相关渲染图也将包括在内;但是当 Typora 将 Markdown 导出为当前版本的其他文件格式时,相关渲染图将不包括在内。

画流程图、时序图(顺序图)、甘特图

横向流程图源码格式

```mermaid

graph LR

A[方形] -->B(圆角)

    B --> C{条件a}

    C -->|a=1| D[结果1]

    C -->|a=2| E[结果2]

    F[横向流程图]

​```
a=1
a=2
方形
圆角
条件a
结果1
结果2
横向流程图

竖向流程图源码格式:

```mermaid

graph TD

A[方形] --> B(圆角)

    B --> C{条件a}

    C --> |a=1| D[结果1]

    C --> |a=2| E[结果2]

    F[竖向流程图]

​```

标准流程图源码格式

```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

​```

Created with Raphaël 2.3.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

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

UML时序图源码样例

```mermaid
sequenceDiagram

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

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

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: 没人陪我玩

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

UML标准时序图样例

```mermaid

%% 时序图例子,-> 直线,-->虚线,->>实线箭头

  sequenceDiagram
    participant 张三
    participant 李四
    张三->王五: 王五你好吗?
    loop 健康检查
        王五->王五: 与疾病战斗
    end
    Note right of 王五: 合理 食物 <br/>看医生...
    李四-->>张三: 很好!
    王五->李四: 你怎么样?
    李四-->王五: 很好!

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

甘特图样例

```mermaid
%% 语法示例

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

​```
%% 语法示例
        gantt
        dateFormat  YYYY-MM-DD
        title 软件开发甘特图
        section 设计
        需求                      :done,    des1, 2014-01-06,2014-01-08
        原型                      :active,  des2, 2014-01-09, 3d
        UI设计                    :        des3, after des2, 5d
    未来任务                    :        des4, after des3, 5d
        section 开发
        学习准备理解需求                      :crit, done, 2014-01-06,24h
        设计框架                            :crit, done, after des2, 2d
        开发                                :crit, active, 3d
        未来任务                              :crit, 5d
        耍                                  :2d
        section 测试
        功能测试                              :active, a1, after des3, 3d
        压力测试                              :after a1  , 20h
        测试报告                              : 48h

附录

参考

typora官网

mermaid官网

mermaid基础语法

http://flowchart.js.org/

sequence.js官网 , https://bramp.github.io/js-sequence-diagrams/

http://cncounter.github.io/flowchart/

升级mermaid

1、查看版本,确定是否支持。

以下代码会显示当前的版本。

```mermaid
info
​```

2、下载新的版本

参考https://github.com/mermaid-js/mermaid/releases ,查看最新版本,然后下载版本https://unpkg.com/ ,

例如最新版本是:9.4.0,则下载

https://unpkg.com/mermaid@9.4.0/dist/mermaid.min.js

3、安装新版本

1)找到typora的安装路径:D:\Program Files\Typora\resources\app,找到 window.html 文件。

2)引用Mermaidjs文件。

以下脚本放在</body> 前面

		

<script>
const interval = setInterval(
	() => {
	console.log('check mermaid...');
	if (window.editor &&
	window.editor.diagrams &&
	window.mermaidAPI) {
	$.getScript('file:///E:/setups/mermaid.9.4.0.min.js')    
	.then(() => {
				mermaidAPI = mermaid.mermaidAPI;
				editor.diagrams.refreshDiagram(editor);
				clearInterval(interval);
				}
		);
	}
}, 100);
</script>

Mermaid

Mermaid 是一个用于画流程图、状态图、时序图、甘特图的库,使用 JS 进行本地渲染,广泛集成于许多 Markdown 编辑器中。Mermaid 作为一个使用 JS 渲染的库,生成的不是一个“图片”,而是一段 HTML 代码。