### Tpyora 语法总结
[TOC]
> 说明:
>
> 这里只是列举了一些 Typora 的常用语法操作,一些高级用法 如 HTML标签、配置CSS 样式等这里没有过多涉及。想了解这一部分内容可以访问官网进行了解。
>
> 官网地址为:<https://www.typora.io/>
### 1. 基础语法
##### 1.1 标题
ctrl+数字(1-5) 可以设置一级标题到五级标题。
这种功能 多个# 也可以实现,一级标题一个#,五级标题五个#,以此类推。需要注意的是 # 与标题内容之间需要有 **空格**。
##### 1.2 文字格式
斜体:如果一段文本的开头和结尾分别被 * 包含,则这一段文本会被展示为 *斜体*。这个功能可以直接使用 ctrl+I 快捷键
> 这种斜体效果与 _斜体_ 等效,即下面两种的效果一样
>
> *斜体文本* (*斜体文本*)
>
> _斜体文本_ (_斜体文本_)
粗体:如果一段文本的开头和结尾分别被 ** 包含,则这一段文本会被展示为 **粗体**。这个功能可以直接使用 ctrl+B 快捷键
> 这种粗体效果 与 _粗体_ 等效,即下面两种的效果一样
>
> **粗体文本** (**粗体文本**)
>
> __粗体文本__ (__粗体文本__)
##### 1.3 引用
> 之后的内容可以被当作引用内容,其效果如下所示:
> 这是引用内容
>
> > 这是嵌套第一层
> >
> > > 这是嵌套第二层
> > >
> > > [点击跳转...](https://www.baidu.com)
>语法说明如下。
>
>1. 多行引用也可以在每一行的开头都插入 >。
>
>2. 在引用中可以嵌套引用。
>
>3. 在引用中可以使用其他的Markdown语法。
>
>4. 段落与换行的格式在引用中也是适用的。
##### 1.4 插入代码
###### 1. 插入代码块
``` 之后紧接着追加语言,可以针对不同的语言进行高亮展示
例:
```c++
/**
c++ 风格
*/
#include <iostream>
using namespace std;
```
```java
/**
Java 风格
*/
package java.lang;
import java.util.ArrayList;
```
```php
/**
php 风格
*/
include_once "./config.php";
foreach($arr as v)
{
}
```
```python
'''
python 风格
'''
def func():
print("hello world")
```
```go
/**
go 风格
*/
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World!")
}
```
```js
/**
js 风格
*/
export var firstName = 'Michael';
import { lastName as surname } from './profile';
```
```dockerfile
#### dockerfile 风格
# 指定基础镜像
FROM centos
# MAINTAINER
MAINTAINER 12345@qq.com
# 安装基础工具包
RUN yum -y install wget gcc gcc-c++ glibc make autoconf openssl openssl-devel libxml2 libxml2-dev libxslt-devel gd-devel GeoIP GeoIP-devel GeoIP-data
# 下载nginx
ADD http://nginx.org/download/nginx-1.12.2.tar.gz /opt/nginx/
# 解压nginx 并创建用户
RUN tar -xvzf /opt/nginx/nginx-1.12.2.tar.gz -C /usr/local/src/
&& useradd -M -s /sbin/nologin nginx
# 更改工作目录
WORKDIR /usr/local/src/nginx-1.12.2
# 编译安装nginx
RUN ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module && make && make install
# 删除多余安装包
RUN rm -rf /opt/nginx/nginx-1.12.2.tar.gz
# 设置环境变量
ENV PATH=/usr/local/nginx/sbin:$PATH
# 设置端口
EXPOSE 80
```
> 插入代码块操作,` 和 ~ 一样,使用连续三个 ` 或者 ~ 包裹代码块。
>
> 注:==插入代码块二者没有区别,但是 ~ 不支持插入行内代码操作==
###### 2. 插入行内代码
在Markdown中,行内代码引用使用 ` 包裹,语法如下
```rub
`代码展示`
```
行内代码效果如下所示:
使用 `cd ..` 切换到上一级目录
使用 `docker stop $(docker ps -q)` 可以 ==停止当前所有正在运行的容器==
##### 1.5 分割线
*** 、+++、---、___ 这四种连续多个符号都可以生成分割线,如下所示:
---
** 中间如果包含其他文本,则会将其加粗,否则就转为分割线。这里的符号需要连续出现超过 ==3== 次才会生成分割线
##### 1.6 转义
所有可以生成特殊效果的符号,都可以使用 \ 来进行转义,这样可以 展示 指定的字符,而不会试用其生成特殊效果
##### 1.7 着重号
- 、+ 和 * 后加空格 可以生成着重号,如下所示:
- 这是一个着重号 (- 这是一个着重号)
* 这也是一个着重号 (* 这也是一个着重号)
+ 这还是一个着重号 (+ 这还是一个着重号)
> 其实这里是 ==无序列表==。无序列表 可以使用 TAB 键进行嵌套。
>
> 建议使用 - 来标记无序列表,因为 * 容易跟粗体和斜体混淆,而 + 不流行
##### 1.8 删除线
~~ 要删除的文本~~
使用 ~~ 波浪线包含的文本可以转换为删除线格式,如下所示:
>~~要删除的文本~~
##### 1.9 插入表格
```ruby
|字段|值|备注|
|:----|:----:|----:|
|左对齐|居中对齐|右对齐|
|*id*|[id](http://id.com)|<http://主键>|
|==name==|[name](http://name.com)|<http://姓名>|
|**age**|[age](http://age.com)|<http://年龄>|
|~~isdel~~|[isdel](http://isdel.com)|<http://是否删除>|
```
使用 | 将文本包含可以生成表格,如下所示:
| 字段 | 值 | 备注 |
| :-------- | :-----------------------: | ----------------: |
| 左对齐 | 居中对齐 | 右对齐 |
| *id* | [id](http://id.com) | <http://主键> |
| ==name== | [name](http://name.com) | <http://姓名> |
| **age** | [age](http://age.com) | <http://年龄> |
| ~~isdel~~ | [isdel](http://isdel.com) | <http://是否删除> |
> + 语法说明如下:
>
> 1. 单元格使用 | 来分隔,为了阅读更清晰,建议最前和最后都使用 |。
>
> 2. 单元格和 | 之间的空格会被移除。
>
> 3. 表头与其他行使用 - 来分隔。
>
> 4. 表格对齐格式如下
>
> * **左对齐(默认)**
> * **右对齐**
> * **居中对齐**
>
> 5. 块级元素(代码区块、引用区块)不能插入表格中
>
> 6. 部分字体格式和链接可以插入到表格中
>
>
>
> + 关于创建表格的建议如下。
>
> 1. 在表格的前、后各空1行。
>
> 2. 在每一行最前和最后都使用|,每一行中的|要尽量都对齐。
>
> 3. 不要使用庞大复杂的表格,那样会难以维护和阅读。
>
>
>
> - 可以针对性的对表格做一些调整:如新增列、删除行、调整个数、删除表格等
> - 在表格内 可以右键选择 在表格上方或者下方插入段落
##### 1.10 插入复选框
```ruby
-[x] 这是选中的复选框
-[] 这是未选中的复选框
```
上面操作可以插入复选框,如下所示:
- [x] 这是选中的复选框
- [ ] 这是未选中的复选框
> 这里有几点要注意
>
> 1. - 和 [x] 两个要分开,中间包含一个空格,否则不起作用。而分开的话,- 容易被当成 着重号,所以这里应该先将 - 和 [x] 合在一起,==**再添加一些说明文本**==,之后再 将二者用空格分隔,这样才可以 插入复选框。这里的说明文本部分必须要有,就算是一个空白字符也要按一个空白键。
> 2. 未选中的复选框为 -[ ],方括号之间要包含一个空格,其后要有内容 (至少是一个空格),最后在 - 和 方括号之间加一个空格,即可创建 未选中的复选框
> 3. 在复选框所在行按 回车,可以再插入新的带复选框的行。复选框可以设置选择和非选中状态
##### 1.11 插入换行符
this is a new line : <br> hello world!
<br> 可以被当成换行符处理,其效果如下所示:
this is a new line : <br> hello world!
##### 1.12 文本着色
==***这是一段有颜色的文字**==
被 == 包含的文本可以添加颜色,其效果如下所示:
==**这是一段有 *颜色* 的文字**==
> 这里的文本可以与粗体、斜体等一起使用
##### 1.13 有序列表
数字 + 英文句号 + 列表内容 可以生成有序列表,其数字在第一个回车换行后递增。如果使用 ==TAB== 键会生成嵌套列表。如下所示:
> 1. 这是第一点
> 2. 这是第二点
> 1. 这是第二点的第一小节
> 2. 这是第二点的第二小节
> 3. 这是第三点
> 1. 这是第三点的第一小节
##### 1.14 插入图片
插入图片的语法如下 :
```ruby
![图片替代文字](图片地址)
```
> 语法说明如下:
>
> 1. 图片替代文字在图片无法正常显示时会比较有用,正常情况下可以为空
> 2. 图片地址可以是本地图片的路径也可以是网络图片的地址
> 3. 本地图片支持相对路径和绝对路径两种方式
```ruby
==这是一张图片==:![这是typora官网下载的图片](https://www.typora.io/img/terminal.png)
```
插入图片效果如下所示
==这是一张图片==:![这是typora官网下载的图片](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/terminal.png)
> 在Typora中,支持使用<img>标签插入图片,也支持其对图片大小进行设置(理论上也支持其他属性的设置,但Typora在预览和编辑时可能会忽略图片大小之外的属性,这可能会影响导出效果)。
##### 1.15 插入链接
###### 1. 文字链接
文字链接就是把链接地址直接写在文本中。语法是用方括号包裹链接文字,后面紧跟着括号包裹的链接地址,语法如下
```ruby
[链接文字] (链接地址)
```
插入链接效果如下所示:
==这是一个指向百度的链接==:[看看这个跳转到哪里](http://www.baidu.com)
###### 2. 引用链接
引用链接是把链接地址作为“**变量** ”先在Markdown文件的页尾定义好,然后在正文中进行引用。其语法如下:
```ruby
在正文中引用链接标记,可以理解为引用定义好的变量:
[链接文字][链接标记]
在底部定义链接标记,可以理解为定义一个地址变量:
[链接标记]: 链接地址
```
>语法说明如下:
>
>1. 链接标记可以有字母、数字、空格和标点符号
>
>2. 链接标记不区分大小写
>
>3. 定义的链接内容可以放在当前文件的任意位置,建议放在页尾
>
>4. 当链接地址为网络地址时要以 http/https开头,否则会被识别为本地地址
插入引用链接效果如下所示:
这里有多个链接,分别指向:[baidu][b_link]、[google][g_link]、[github][git_link]
[b_link]: https://www.baidu.com/
[g_link]: https://google.com
[git_link]:https://github.com/
###### 3. 网址链接
将网络地址或邮箱地址使用 <> 包裹起来会被自动转换为超链接。其语法如下
```ruby
<网址或URL地址>
```
插入网址链接其效果如下所示:
请访问官网或者我的邮箱:<http://www.qq.com> <123456@qq.com>。
> 这里需要注意的一点是,即使不加 <>,链接或者邮箱地址也可以正常展示,这里使用 <> 是为了提高可读性,同时也确定了链接地址的起始与结束,如果在后面追加其他文本则可以正常展示而不会将其作为链接的一部分。如上所示,最后的句号不会被当成邮箱地址的一部分,而如果不加<>则会导致邮箱地址错误。
##### 1.16 插入表情
使用 : 包裹表情代码,语法如下
```js
:laughing:
:+1:
:-1:
:clap:
```
更多emoji表情链接:<http://www.oicqzone.com/tool/emoji/>
插入表情其效果如下所示:
>:smile: :laughing: :+1: :-1: :clap: :chicken: :horse: :turtle:
##### 1.17 添加锚点
锚点,也称为书签,用来标记文档的特定位置,使用锚点可以跳转到当前文档或其他文档中指定的标记位置。
Markdown会被渲染成HTML页面,在HTML页面中可以通过锚点实现跳转;GitHub、GitBook项目文档中的目录也是通过锚点实现跳转的。
锚点的语法如下:
~~~ruby
[锚点描述](#锚点名)
~~~
> 语法说明如下:
>
> 1. 锚点名建议使用字母和数字,当然中文也是被支持的,但不排除有些网站支持得不够好。
> 2. 锚点名是区分英文大小写的。
> 3. 在锚点名中不能含有空格,也不能含有特殊字符
锚点的效果如下所示:
[回到顶部](#Tpyora 语法总结)
> 这里有几点需要注意:
>
> 1. 标题必须与锚点名完全吻合,包括前面的序号(如 1.6 转义 前面的1.6和后面的空格)都要完全一致,否则可能会出现定位不到的情况
> 2. 这里 标题使用 # 和 ctrl+数字 都可以实现锚点
> 3. ==锚点链接需要使用 ctrl+鼠标左键 才可以点击跳转==
##### 1.18 插入数学公式
###### 1. 插入单个数学公式
> 如果想使用内联数学公式,需要先激活:【偏好设置】→【Markdown扩展语法】→勾选【内联公式】→重启Typora,内联数学公式的语法是使用$把数学公式包裹起来
>
> $数学公式$
>
> 注:数学公式在引用中是可以被解析的,所以这里需要转义才能展示其表示方法。
``` ruby
分数:$ f(x,y) = frac{x^2}{y^3} $
开根号:$ f(x,y) = sqrt[n]{{x^2}{y^3}} $
省略号:$ f(x_1, x_2, ldots, x_n) = x_1 + x_2 + cdots + x_n $
```
插入数学公式的效果如下所示:
分数:$ f(x,y) = frac{x^2}{y^3} $
开根号:$ f(x,y) = sqrt[n]{{x^2}{y^3}} $
省略号:$ f(x_1, x_2, ldots, x_n) = x_1 + x_2 + cdots + x_n $
###### 2. 插入数学公式块
> 使用两个$包裹数学公式,如下所示
>
> $$
>
> 数学公式
>
> $$
>
> 这里一样,引用块中可以解析 数学公式块,所以 $ 需要转义
>
> 公式块的快捷键 为 Ctrl+Shift+M 。
```rust
$$
mathbf{V}_1 times mathbf{V}_2 = begin{vmatrix}
mathbf{i} & mathbf{j} & mathbf{k} \
frac{partial X} {partial u} & frac{pratial Y}{partial u} & 0 \
frac{partial X}{partial v} & frac{partial Y}{partial v} & 0 \
end{vmatrix}
$$
```
数学公式块展示效果如下所示:
$$
mathbf{V}_1 times mathbf{V}_2 = begin{vmatrix}
mathbf{i} & mathbf{j} & mathbf{k} \
frac{partial X} {partial u} & frac{partial Y}{partial u} & 0 \
frac{partial X} {partial v} & frac{partial Y}{partial v} & 0 \
end{vmatrix}
$$
##### 1.19 插入其他样式
###### 1. 插入下划线
```html
<u>==**这是一个*下* 划线**==</u>
```
下划线可以与其他样式混用。其样式如下所示:
<u>==**这是一个*下* 划线**==</u>
###### 2. 插入一个上标
> 上标可以用于 数学计算,如:
>
> y = a^2^ + b^2^ + 2ab = (a+b)^2^
```html
即将出现一个上标:==**^我是上标^**==
```
上标可以与其他样式混用,但上标标记需要放在最**==里层==**。其样式如下所示:
即将出现一个上标:==**^我是上标^**==
###### 3. 插入一个下标
> 下标可以用于 化学式,如:
>
> H~2~O、Fe~3~O~4~ 等
```ruby
即将出现一个下标:**==~我是下标~==**
```
下标可以与其他样式混用,但下标标记需要放在最**==里层==**。其样式如下所示:
即将出现一个下标:**==~我是下标~==**
###### 4. 插入注释
> 在编辑和预览时,注释的内容会被显示;在导出PDF或Word时,则会被隐藏。
设置注释的语法如下
```html
<!--这是一个注释-->
```
注释的效果如下所示:
<!--这是一个注释-->
###### 5. 清除样式
> 如果想快速清除样式,可以执行:菜单栏→【格式】→【清除样式】。
>
> Ctrl + 可以快速也清除样式,一次将一整行的样式全部清除
>
> 可以使用 如下 文本样式进行验证:
>
> **这是一个需要*被清除*的样式**
清除样式的效果如下:
这是一个需要被清除的样式
###### 6. 插入目录
> 在Typora中,可以自动获取文章的标题来生成目录,当标题修改时,目录会随之自动更新,使用起来非常方便,其语法如下
>
> [TOC]
>
> 语法说明如下:
>
> 1. TOC是Table of Contents的缩写。
>
> 2. 在想插入目录的位置输入[TOC],按回车键后就可以自动生成文章的目录了
>
>
>
> 文档顶部的目录就是使用这种方式生成的。
###### 7. 插入脚注
> 当鼠标放在引用的脚注之上时,会显示脚注的描述信息;若脚注没有定义,则会提示我们定义脚注的语法。
>
> 添加脚注的语法如下:
>
> [^脚注]
>
> [^脚注]:脚注定义的内容
>
> 注:
>
> 1. 脚注所在行必须有非脚注的文本,否则脚注标记不起作用
> 2. 脚注的定义内容,[^脚注] 和 内容之间的 冒号是 ==英文半角==,不能是全角
> 3. 导出到 PDF 中时, 脚注定义的内容 在文档结束区域放置
```ruby
这里有一个标记,让我们看看是啥:[^tip]
[^tip]:请不要鼠标放上来看!!!!!
```
脚注的效果如下:
这里有一个标记,让我们看看是啥:[^tip]
[^tip]: 请不要鼠标放上来看!!!!!
### 2. 使用技巧与快捷键
##### 2.1 文本排版
> 建议中文和英文之间加空格,中文/英文和数字之间也要加空格,不过有些编辑器和输入法(如百度输入法)会自动添加空隙,就没必要手动添加了
##### 2.2 Typora 偏好设置
ctrl + 逗号 可以打开 Typora 偏好设置
##### 2.3 部分快捷键
###### 1. 样式快捷键
![部分样式快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603264649860.png)
###### 2. 标题快捷键
![设置标题快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603265051756.png)
> **小提示:**当标题的级别过多时,除了查看源码,肉眼很难区分它们,有没有什么办法可以更好地区分标题的级别呢?有,把光标放在标题行的任意位置,在标题行的左上角会显示标题的级别(h3/h4/h5),一级和二级标题不显示。这种小字提示,可以在 **Night** 主题下能看到。
###### 3. 表格快捷键
- 列表快捷键
![列表快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603265499628.png)
- 引用快捷键
![引用快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603265507412.png)
- 表格快捷键
![创建表格快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603265513340.png)
![表格操作快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603265531724.png)
###### 4. 下划线快捷键
![下划线快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603265789309.png)
###### 5. 打开文件快捷键
![打开文件快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603271856713-1603271885857.png)
==这里的 Ctrl+Shift+T 可能会跟部分输入法的 繁体/简体 切换 冲突,需要注意一下==
###### 6. 选择文本快捷键
![选择文本快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603272874330-1603272902098.png)
###### 7. 删除单个词快捷键
![删除单个词快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603272935522.png)
###### 8. 查找和替换快捷键
> 通过快捷键Command+F(Windows:Ctrl+F)调出查找面板,在查找面板上可以设置是否“区分大小写”和是否“查找整个单词”,默认都是否。
>
> 可以在查找面板上切换上一个和下一个查找结果,也可以按回车键切换下一个,或者通过快捷键切换,其快捷键如下:
![切换上一个/下一个快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603273148570.png)
> 单击查找面板上【查找】右边的向下三角,或者通过快捷键Option+Command+F(Windows:Ctrl+H)可以显示查找和替换面板
>
> 如果把光标放在替换内容输入框中,按回车键会替换下一个,也可以通过快捷键(macOS系统:Command+Option+E)来替换下一个。
>
> ==这里如果将其他内容替换为 * 似乎会有问题,可能与模式匹配有关。==
###### 9. 跳转位置
> 在Typora中,除通过侧边栏的大纲列表进行跳转外,还可以通过快捷键快速跳转到页首、页尾和选中的文本区域,相关快捷键如下。
![跳转快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603273759667.png)
###### 10. 沉浸式写作体验
> 如果想拥有沉浸式写作体验,可以执行:菜单栏→【视图】,并依次勾选下面的选项。
>
> 1. 打字机模式:光标始终位于屏幕的中间。
>
> 2. 专注模式:只高亮显示光标所在行,其余内容全部变灰。
>
> 3. 全屏:最大化文件窗口,排除其他软件的干扰。
>
> 相关快捷键如下。
![视图切换快捷键](typora%E8%AF%AD%E6%B3%95%E6%80%BB%E7%BB%93.assets/NeatReader-1603274123244.png)
##### 2.4 HTML 标签
> Typora支持很多常用的HTML标签,使用这些标签可以让样式更加丰富,但这也导致纯粹的写作变得更加复杂。按 Shift+F12 可以直接打开 开发者工具,也就是其本质上还是一款浏览器。
>
> 注:
>
> 1. 支持嵌入 iframe网页
> 2. 支持嵌入video 视频。内嵌的视频在导出文件时是无法显示的
##### 2.5 自动保存
> Ctrl+逗号 打开 【偏好设置】→ 【通用】→【保存&恢复】,勾选 自动保存 之后,文档可以进行自动保存,不需要手动保存。
##### 2.6 导入/导出文件
> 如果想把其他格式的文件转成Markdown文件,可以使用Typora的导入功能,如果想把Markdown格式的文件转换成其他格式的文件,则可以使用导出功能。具体步骤是,首先安装Pandoc,然后执行:菜单栏→【文件】→【导入】/【导出】
>
> **小提示:**
>
> 1. 导入后缀为 .docx、.latex、.opml、.epub等格式的文件,导入后的文件格式会自动转换为Markdown格式的文件。
>
> 2. Markdown格式的文件可以直接导出为HTML、PDF、Word、OpenOffice、ePub、LATEX、reStructuredText、PNG等格式的文件。
### 3. 图表操作
##### 3.1 序列图
> 序列图(Sequence Diagram)也被称为循序图,是一种UML(Unified Modeling Language,统一建模语言)行为图,它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
>
> Typora提供的序列图语法标记功能是基于开源项目(js-sequence-diagrams)开发的。
```sequence
note left of client: 客户端正常启动
note right of client: 客户端根据参数向服务端发起请求
client -> server: 发起请求
server --> client: 服务端返回确认,但不提供数据
note right of server: 服务端虚应答,只返回确认,不返回数据
```
> 这里 -> 是实心箭头, --> 是虚线箭头。
##### 3.2 流程图
> 流程图以图像的方式表示过程、算法和流程。Typora提供的流程图语法标记是基于开源项目(flowchart.js)开发的。
```flow
st=>start: 开始
op=>operation: 从redis队列中取数据
cond=>condition: 数据是否合法?
e=>end: 返回
st->op->cond
cond(yes)->e
cond(no)->op
```
##### 3.3 Mermaid
> Typora集成了Mermaid,Mermaid支持使用文本的方式生成图表,包括序列图、流程图和甘特图。
###### 1. Mermaid 序列图
> 语法细节可参考 <https://knsv.github.io/mermaid/#loops32> 。
```mermaid
%% 序列图举例。这里是注释
sequenceDiagram
client ->> server: 发起请求
server -->> client: 返回响应
note right of server: 这里依然是虚响应,只返回确认,不返回数据
```
###### 2. Mermaid 流程图
> 语法细节可参考 <https://knsv.github.io/mermaid/#graph18> 。
```mermaid
graph TD
A[开始] --> B(从数据库中读取一条数据)
B --> C{数据是否正常?}
C --> |Yes| D[返回]
C --> |No| B
```
###### 3. Mermaid 甘特图
> 甘特图(Gantt chart)是将活动与时间联系起来的一种图表形式,能够显示每个活动的历时长短。甘特图很清晰地标识出每一项任务的起始与结束时间,通常在项目管理中使用,方便人们从时间上整体把握项目进度。
>
> 语法细节可参考 <http://knsv.github.io/mermaid/index.html#mermaid-cli> 。
```mermaid
%% 甘特图示例
gantt
dateFormat YYYY-MM-DD
title 项目开发周期
section 需求评审
需求评审 : 2020-10-24, 2020-10-25
section 功能开发
开发编码 : 2020-10-26, 2020-11-11
开发自测 : 2020-11-12, 2020-11-16
section 项目测试
第一轮测试 : 2020-11-17, 2020-11-20
第二轮测试 : 2020-11-21, 2020-11-25
第三轮测试 : 2020-11-25, 2020-11-29
section 功能发布
正式发布 : 2020-11-30
```
发表评论