MarkDown语言
Markdown简介
Markdown是一种轻量级标记语言,创始人为約翰·格魯伯(英语:John Gruber)。 它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。 这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。
Typora快捷键
标题
类atx形式
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
类Setext形式
一级标题:先输入标题名,再换行,输入3个“=”然后回车。
双行分割线|一级标题
===
二级标题:先输入标题名,再换行,输入3 个“-”然后回车。
单行分割线|二级标题
---
强调
基础样式
辅助线是文字格式的一种,常见形式如下划线和中划线,下划线可用于圈出文字中需要注意的部分,删除线可用于表示文字中已经失效的内容。
Markdown 语法里的辅助线包含「中划线(删除线)」一种形式,其他形式的辅助线要通过 HTML 标签进行扩展。中划线使用 「波浪线 ~
」来描述。
HTML 标签中 ~~
~~ 标签意义为 「删除」,`` 标签意义为 「插入」。删除用一条中划线代表已删除的内容,插入用一条下划线代表新插入的文本。通常删除线和插入线代表文章的修订过程,我们输出的文章要尽量避免使用太多辅助线效果。
在 Markdown 文件中,被「波浪线 “~”」包括的内容会增加中划线效果。
删除线会被渲染成 html 的 del
标签:<del>删除线</del>
粗体和斜体
# 斜体,快捷键:Ctrl + I
*斜体*
_斜体_
# 粗体,快捷键:Ctrl + B
**粗体**
__粗体__
斜体
斜体
粗体
粗体
高亮(未生效)
==高亮==
高亮
删除线
# 删除线,快捷键:Alt + Shift + 5
~~这是一条删除线~~
当删除线内部紧跟 "空格" 时,删除线效果会失效。
~~有效的删除线~~
~~失效的删除线 ~~
~~ 失效的删除线 ~~
~~ 失效的删除线~~
这是一条删除线
当删除线内部紧跟 "空格" 时,删除线效果会失效。
有效的删除线
~~失效的删除线 ~~
~~ 失效的删除线 ~~
~~ 失效的删除线~~
下划线
# 下划线,快捷键:Ctrl + U
<u>下划线</u>
<ins>这是一个下划线</ins>
下划线
这是一个下划线
键盘文本
<kbd>键盘文本</kbd>
键盘文本
例如,按Ctrl+U键
行内代码
请参见行内代码。
嵌套样式
***粗斜体***
**粗体内嵌*斜体***
粗斜体
粗体内嵌斜体
分段和换行
一个Markdown段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行。
- 在两个段落之间要有一个空行,这是分段。
- 而没有分段,在同一个段落另起一行,是换行。
分段
这是第一段。
这是第二段。
换行(快捷键:Shift+Enter)
这是第一行,
这是第二行。
分割线
# *星号
***
# *减号
---
# *下划线
___
引用
引用/块引用
(1)引用:用于引用单一段落。在文本前面加上大于号“>”,再空格。
> 这是引用的文本。
这是引用的文本。
(2)块引用:用于引用多个段落。在每一行文本前面加上大于号“>”,再空格。
> 这是块引用的第一行。
> 这是块引用的第二行。
这是块引用的第一行。
这是块引用的第二行。
块引用可以引用多个段落,也可以嵌套引用块。
嵌套引用
你可以嵌套引用和块引用,更好地组织和引用信息。示例:
> 这是一个普通引用。
> > 这是一个嵌套引用。
> >
> > > 这是一个更深层次的嵌套引用。
这是一个普通引用。
这是一个嵌套引用。
这是一个更深层次的嵌套引用。
任务列表
To-do 任务列表是一种很常见的时间管理工具,它适用于工作计划、个人生活以及家庭学习。使用 Markdown 语法我们也可以实现一个基本的 To-do 任务列表。
Markdown 的 To-Do List 的内容是由无序列表,复选框,图标几种功能的组合。
在 Markdown 文件中,在 " 无序列表 -,+,*
" 后面使用 「中括号 []」
声明复选框。在中括号中写入 x
,便可实现选中效果。
无序列表
源码:
- 苹果
- 香蕉
- 梨子
- 苹果
- 香蕉
- 梨子
有序列表
源码:
1. 苹果
2. 香蕉
3. 梨子
- 苹果
- 香蕉
- 梨子
复选框(checkbox)
带选中的复选框(-)
源码:
- [ ] 苹果
- [ ] 香蕉
- [x] 梨子
带选中的复选框(+)
源码:
+ [ ] 苹果
+ [ ] 香蕉
+ [x] 梨子
带选中的复选框(*)
源码:
* [ ] 苹果
* [ ] 香蕉
* [x] 梨子
注释
Markdown 的 注释 和 HMTL 一样,注释的内容在渲染界面不可见。
<!--注释不会被渲染-->
<!--
注释不会被
渲染
-->
超链接
行内式
[链接标签](http://example.com)
怎么在链接后加上title?
网址后面,1个空格 + 双引号里 title 文字。
[链接标签](http://example.com/ "Title")
怎么制作带强调的链接?
[**链接标签**](http://example.com/ "Title")
[*链接标签*](http://example.com/ "Title")
[`链接标签`](#标题)
参考式
[google][1]
[1]: https://www.google.com/ "Google"
* google = 链接标签
* 1 = 链接变量
* 网址 = URL
自动链接
用“<>”括住URL就会自动转为链接,不需要加链接标签。
<http://www.google.com>
它可以显示完整URL:http://www.google.com
锚点
也称页内超链接,也能用于文件与文件之间转跳。
-
页内转跳:设置锚点后,可以进行页内转跳,Ctrl+单击锚点,可以转跳到任意标题。
基本语法为:
[链接标签](#标题名) #一级标题 [链接标签](##标题名) #二级标题 …… [链接标签](######标题名) #六级标题
*锚点里的标题名必须与实际标题一致。
-
文件转跳:设置锚点后,Ctrl+单击锚点,立刻跳转到另一个md文件的开始位置。
基本语法为:
示例:
[转跳示例:《同路径下的文件》](同路径下文件名.md) [转跳示例:《该路径子文件夹里的文件》](子文件夹名/文件名.md) * 使用了相对路径。
*转跳路径为本地路径,从同级文件夹开始即可。
字体、字号
字体是丰富排版效果的主要方式。一篇文章中会通过不同的字体字号来区分文字的作用,例如使用「黑体」,「一号字」作为标题,使用「宋体」、「四号字」作为正文等。
Markdown 使普通文本具有格式,但它的原生语法并不支持修改字体、字号。为了实现丰富文字样式的需求,我们需要通过增加 HTML 标签实现此类效果。
改变字体
修改局部字体
在 Markdown 文件中,建议使用 font
标签的 face
属性修改文字字体。
这里是默认字体
<font face="HEI">这里是黑体</font>
<font face="KAI">这里是楷体</font>
<font face="GB18030 Bitmap">这里是扩展字体</font>
<style>
p {font-size: 2rem;}
</style>
常用字体
字体在不同环境中支持程度不同,表现结果可能也不同。在设计上,尽量选择较为通用的字体。以下是一些 Web 常用中文字体:
字体中文名称 | 字体写法 |
---|---|
黑体 | <font face='SimHei'> |
宋体 | <font face='SimSun'> |
新宋体 | <font face='NSimSun'> |
仿宋 | <font face='FangSong'> |
楷体 | <font face='KaiTi'> |
仿宋_GB2312 | <font face='FangSong_GB2312'> |
楷体_GB2312 | <font face='KaiTi_GB2312'> |
微软雅黑 | <font face='Microsoft YaHei'> |
改变字号
Markdown 文档中的字号定义有三种主要方式,第一种是使用 <font>
标签;第二种通过 <big>
或者 <small>
标签;第三种是通过修改 style
样式实现。
使用 <font>
标签 size
属性修改局部字号
这里是默认正文字号
<font size="1">1号字 最小</font>
<font size="2">2号字</font>
<font size="3">3号字 默认</font>
<font size="4">4号字</font>
<font size="5">5号字</font>
<font size="6">6号字</font>
<font size="7">7号字 最大</font>
使用 <big>
和 <small>
标签修改局部字号
这段文字里既包含<big>放大了的文字</big>,也包含<small>缩小了的文字</small>
全局字体、字号的设置
使用 style
样式修改全局字体和字号。
#### 使用 `style` 修改字体字号
# WORD中常用的一号宋体标题
## WORD中常用的二号宋体标题
### WORD中常用的三号宋体标题
Word 中常用的四号正文楷体
<style>
h1 { font: 26pt song !important; }
h2 { font: 22pt song !important; }
h3 { font: 16pt song !important; }
p { font: 14pt kai !important; }
</style>
注释/隐藏
-
方法一:
<!-- xxx -->
-
方法二:
<p hidden>这个段落应该被隐藏</p>
前背景、背景色
颜色可以使普通文字表达出更深刻的含义,比如红色用于醒目与警示、绿色用于表达良好与正常等。
Markdown 使普通文本具有格式,但它的原生语法并不支持修改前景色和背景色。为了实现丰富文本颜色的需求,我们需要通过增加 HTML 标签实现此类效果。
前背景
在 Markdown 文件中,建议使用 <font>
标签的 color
属性修改文字颜色。
举例1:
<font color="red">红色</font>
<font color="green">绿色</font>
<font color="blue">蓝色</font>
<font color="rgb(200, 100, 100)">使用 rgb 颜色值</font>
<font color="#FF00BB">使用十六进制颜色值</font>
红色
绿色
蓝色
使用 rgb 颜色值
使用十六进制颜色值
除了修改 color
属性外,还可以使用 style
样式属性修改文字颜色。
举例2:
<font style="color: red">红色</font>
<font style="color: green">绿色</font>
<font style="color: blue">蓝色</font>
<font style="color: rgb(200,100,100)">使用 rgb 颜色值</font>
<font style="color: #FF00BB">使用十六进制颜色值</font>
红色
绿色
蓝色
使用 rgb 颜色值
使用十六进制颜色值
背景色
Markdown 文档中定义文字背景色需要通过修改 style
样式实现。
<font style="background: red">红色</font>
<font style="background: green">绿色</font>
<font style="background: blue">蓝色</font>
<font style="background: rgb(200,100,100)">使用 rgb 颜色值</font>
<font style="background: #FF00BB">使用十六进制颜色值</font>
红色
绿色
蓝色
使用 rgb 颜色值
使用十六进制颜色值
图片背景色
利用 style
的丰富样式,我们可以定义出丰富的文字形式。
<font style="background: url('http://www.wenliku.com/d/file/patterns/2019-06-26/d8fac26c38c9b2a7e2393fc9af766e8f.jpg') ">I wish you a Merry Christmas</font>
使用图片作背景
<font style="background: linear-gradient( to right, #ff1616, #ff7716, #ffdc16, #36c945, #10a5ce, #0f0096, #a51eff, #ff1616);">太阳太阳,给我们带来,七色光彩</font>
渐变背景色
I wish you a Merry Christmas
使用图片作背景
太阳太阳,给我们带来,七色光彩
渐变背景色
Markdown添加图片及图床配置
Markdown添加图片
在typora里插入的方法:
1、例如<img src=''>
,在src里输入这段编码;
2、通过常见的![][src]
,src里是编码,可以看到这里是中括号[],而不是括号。
Markdown图床设置
Markdown设置图片缩放
使用Typora工具,右击,选择缩放,选择缩放的比例即可。
特殊符号
Markdown 中提供了对以下特殊字符的转义支持。
特殊符号 | 中文名称 | 默认语法 |
---|---|---|
\ | 反斜杠 | 转义符号,需要与其他特殊符号连用 |
` | 反引号 | 用于定义行内代码、代码块 |
* | 星号 | 用于定义无序列表、强调、分割线 |
_ | 下划线 | 用于定义强调、分割线 |
{} | 大括号 | 用于定义公式 |
[] | 中括号 | 用于定义超链接、图片 |
() | 小括号 | 用于定义超链接、图片 |
# | 井号 | 用于定义标题、粗体字 |
+ | 加号 | 用于定义无序列表、分割线 |
- | 减号 | 用于定义无序列表、分割线 |
. | 点号 | 用于定义有序列表 |
! | 叹号 | 用于定义超链接、图片 |
Emoji 表情
代码高亮
注释
在任何一款现代程序语言中,注释都是至关重要的,它是源代码文件提升可读性的重要补充,也是多人协作时的重要工具。
Markdown 的注释可以通过三种方法实现:
第一是通过 html 的 <!-- --> 标记;
举例:<!-- 这是一段被注释掉的文字 -->
第二可以通过样式隐藏段落内容,即 <div style="display:none">;
举例:<div style="display:none"> 这是一段被注释掉的文字 </div>
第三是通过 Markdown 自身的解析原理实现。
举例:[//]: (这是一段被注释掉的文字)
表格
表格通常作为一种布局形式,用于结构化的数据展示。
Markdown 表格包含三个部分:表头、分割线、数据。
- 表头 用来对列名对象进行描述,也就是通常所说的列名;
- 数据 用来展示每行的具体内容,数据是表格的核心;
- 分割线 用来区分表头和数据,也是 Markdown 中表格定义的最基本语法要求。
定义表格
Markdown 表格由 「竖线 |
」、「减号 -
」、「冒号 :
」三种符号组成。
- 竖线 用来定义列,每两个竖线之间为一个单元格元素;
- 减号 用来定义分割线,也就是分割表头和数据体;
- 冒号 配合减号使用,用于定义列数据的对齐属性。
基本表格
源码:
|学号|姓名|
|----|----|
|1|张三|
|2|李四|
学号 | 姓名 |
---|---|
1 | 张三 |
2 | 李四 |
设定表格对齐方式
举例1:
源码:
|左对齐|居中对齐|右对齐|
|:--|:--:|--:|
|1|张三|17岁|
|2|李四|18岁|
左对齐 | 居中对齐 | 右对齐 |
---|---|---|
1 | 张三 | 17岁 |
2 | 李四 | 18岁 |
举例2:
源码:
| |周一|周二|周三|周四|周五|
|--:|---|---|---|---|---|
|**1**|数学|英语|数学|语文|品德|
|**2**|美术|数学|品德|数学|语文|
|**3**|品德|品德|语文|体育|数学|
|**4**|语文|音乐|体育|品德|美术|
|||||||
|**5**|数学|英语|语文|数学|语文|
|**6**|品德|数学|美术|劳动|活动|
周一 | 周二 | 周三 | 周四 | 周五 | |
---|---|---|---|---|---|
1 | 数学 | 英语 | 数学 | 语文 | 品德 |
2 | 美术 | 数学 | 品德 | 数学 | 语文 |
3 | 品德 | 品德 | 语文 | 体育 | 数学 |
4 | 语文 | 音乐 | 体育 | 品德 | 美术 |
5 | 数学 | 英语 | 语文 | 数学 | 语文 |
6 | 品德 | 数学 | 美术 | 劳动 | 活动 |
流程图、时序图、类图、状态图、甘特图、饼图
流程图
在 Markdown 中添加 Mermaid 图形,需要声明 Mermaid 类型的代码块,代码如下:
```mermaid
<!-- 此处的内容会被渲染成 mermaid 图形 -->
```
流程图支持的方向
标志 | 方向 |
---|---|
TB | top bottom - 从上到下 |
BT | bottom top - 从下到上 |
RL | right left - 从右到左 |
LR | left right - 从左到右 |
TD | 等同于 TB |
节点的形状
在 Mermaid 中可以使用一些基本符号定义节点的形状,例如:圆角形、跑道形、气缸形、非对称形状、菱形、六角形、平行四边形、梯形。
-
圆角形节点的语法
%% 源码 ```mermaid graph TD 节点ID(节点显示文本) ```
graph TD 节点ID(节点显示文本) -
圆形节点的语法
%% 源码 ```mermaid graph TD 节点ID(节点显示文本) ```
graph TD 节点ID((节点显示文本)) -
非对称形节点的语法
%% 源码 ```mermaid graph TD 节点ID>节点显示文本] ```
graph TD 节点ID>节点显示文本] -
菱形节点的语法
%% 源码 ```mermaid graph TD 节点ID{节点显示文本} ```
graph TD 节点ID{节点显示文本} -
六角形节点的语法
%% 源码 ```mermaid graph TD 节点ID{{节点显示文本}} ```
graph TD 节点ID{{节点显示文本}} -
平行四边形节点的语法
%% 源码 ```mermaid graph TD 左倾平行四边形[/平行四边形--左倾/] 右倾平行四边形[\平行四边形--右倾\] ```
graph TD 左倾平行四边形[/平行四边形--左倾/] 右倾平行四边形[\平行四边形--右倾\] -
梯形节点的语法
%% 源码 ```mermaid graph TD 梯形[/梯形--正向\] 反向梯形[\梯形--反向/] ```
graph TD 梯形[/梯形--正向\] 反向梯形[\梯形--反向/]
连接线
-
无向线段连接线
%% 源码 ```mermaid graph LR A --- B; C -- 带文字连接线 --- D ```
graph LR A --- B; C -- 带文字连接线 --- D -
点状连接线
%% 源码 ```mermaid graph LR A -.- B C -. 带文字连接线 .- D ```
graph LR A -.- B C -. 带文字连接线 .- D -
粗实线连接线
%% 源码 ```mermaid graph LR A ==> B C == 带文字连接线 ==> D ```
```mermaid
graph LR
A ==> B
C == 带文字连接线 ==> D
视图分组
%% 源码
```mermaid
graph TB
c1-->a2
subgraph 第一组
a1-->a2
end
subgraph 第二组
b1-->b2
end
subgraph 第三组
c1-->c2
end
```
举例
横向流程图
%% 源码
```mermaid
graph LR
A[方形]-->B(圆角);
B--> C{条件A};
C-->|a=1| D[结果1];
C-->|a=2| D[结果2];
```
竖向流程图
%% 源码
```mermaid
graph TD
A[方形]-->B(圆角);
B-->C{条件A};
C-->|a=1| D[结果1];
C-->|a=2| D[结果2];
```
标准流程图(竖向)
%% 源码
```flow
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
```
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
标准流程图(横向)
%% 源码
```flow
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
```
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
时序图(mermaid)
时序图连接类型
类型 | 描述 |
---|---|
-> | 没有箭头的实线 |
–> | 没有箭头的虚线 |
->> | 有箭头的实线 |
–>> | 有箭头的虚线 |
-x | 有交叉箭头的实线 |
–x | 有交叉箭头的虚线 |
基本时序图
%% 源码
```mermaid
sequenceDiagram
对象A->对象B: Hi LiLei, How do you do?
对象B-->>对象A: How do you do!
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
Note over 对象A,对象B: Lesson 1
```
基本时序图:别名形式
%% 源码
```mermaid
sequenceDiagram
participant A as 对象A
participant B as 对象B
A->>B: Hi LiLei, How do you do?
B-->>A: How do you do!
Note right of B: 对象B的描述
Note left of A: 对象A的描述(提示)
Note over A,B: Lesson 1
```
基本时序图:激活框方式一
activate 对象X
和deactivate 对象X
结合使用
%% 源码
```mermaid
sequenceDiagram
对象A->对象B: Hi LiLei, How do you do?
activate 对象B
对象B-->>对象A: How do you do!
deactivate 对象B
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
Note over 对象A,对象B: Lesson 1
```
基本时序图:激活框方式二
从消息接收方的时间线上标记一小段时间,表示对消息进行处理的时间间隔。
画法如下,注意体会箭头符号后的 +
和 -
的(相结合)使用方法和效果,它们相当于激活框的开关。
举例1:
%% 源码
```mermaid
sequenceDiagram
老板B ->> + 员工B : “你们要669!”
员工B -->> - 老板B : 鼓掌
老板B ->> + 员工B : “悔创本司!”
员工B -->> - 老板B : 鼓掌
```
时序图的逻辑:循环
在条件满足时,重复发出消息序列。相当于编程语言中的 while 语句。
举例1:
%% 源码
```mermaid
sequenceDiagram
对象A->对象B: Hi LiLei, How do you do?
对象B-->>对象A: How do you do!
Loop 不听地说
对象A-->>对象B: Great!
end
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
Note over 对象A,对象B: Lesson 1
```
举例2:
%% 源码
```mermaid
sequenceDiagram
网友 ->> + X宝 : 网购钟意的商品
X宝 -->> - 网友 : 下单成功
loop 一天七次
网友 ->> + X宝 : 查看配送进度
X宝 -->> - 网友 : 配送中
end
```
时序图的逻辑:选择
在多个条件中作出判断,每个条件将对应不同的消息序列。相当于 if 及 else if 语句。
%% 源码
```mermaid
sequenceDiagram
土豪 ->> 取款机 : 查询余额
取款机 -->> 土豪 : 余额
alt 余额 > 5000
土豪 ->> 取款机 : 取上限值 5000 块
else 5000 < 余额 < 100
土豪 ->> 取款机 : 有多少取多少
else 余额 < 100
土豪 ->> 取款机 : 退卡
end
取款机 -->> 土豪 : 退卡
```
时序图的逻辑:可选
在某条件满足时执行消息序列,否则不执行。相当于单个分支的 if 语句。
%% 源码
```mermaid
sequenceDiagram
老板C ->> 员工C : 开始实行996
opt 永不可能
员工C -->> 老板C : 拒绝
end
```
时序图的逻辑:并行
在某条件满足时执行消息序列,否则不执行。相当于单个分支的 if 语句。
%% 源码
```mermaid
sequenceDiagram
老板C ->> 员工C : 开始实行996
par 并行
员工C ->> 员工C : 刷微博
and
员工C ->> 员工C : 工作
and
员工C ->> 员工C : 刷朋友圈
end
员工C -->> 老板C : 9点下班
```
使用场景及应用实例1
学生使用教务系统时序图展示。
%% 源码
```mermaid
sequenceDiagram
participant a as 学生
participant b as 教务系统
participant c as 课程
participant d as 成绩
opt 认证
a->>b: 用户名/密码
end
a->>+b: 请求课程列表
b->>+c: 获取课程列表
c-->>-b: 返回课程列表
b->>+d: 获取成绩信息
d-->>-b: 返回成绩信息
b-->>-a: 显示成绩
```
使用场景及应用实例2
%% 源码
```mermaid
%% 时序图示例
%% ->: 直线
%% -->: 虚线
%% ->> 实线箭头
%% ->> 实线箭头
%% loop xxx end: 循环检查
sequenceDiagram
participant 张三
participant 李四
张三 -> 王五: 王五,你好吗?
loop 健康检查
王五 -> 王五: 与疾病战斗
end
Note right of 王五: 合理 食物 <br/>看医...
李四 ->> 张三: 我很好
王五 -> 李四: 你怎么样?
李四 -> 王五: 很好!
```
时序图(sequence)
基本时序图
%% 源码
```sequence
%% ->: 实线带箭头
%% -->: 虚线带箭头
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象A->对象B: 你真的好吗?
```
%% ->: 实线带箭头
%% -->: 虚线带箭头
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象A->对象B: 你真的好吗?
基本时序图(扩展)
%% 源码
```sequence
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: 没人陪我玩
```
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: 没人陪我玩
类图
类图中的类
类是类图中的核心组成,类的成员包括属性和方法,以及一些扩展信息。在类图中,一个类实例由三层组成:
- 类名称,在类图的最顶端;
- 类属性,在类图的中间层;
- 类方法,在类图的最下层。
类的定义
类的定义有两种方式,第一种是形如 class Animal
这样的直接描述,另一种是通过关系来定义类,如 Vehicle <|-- Car
。
举例1:
%% 源码
```mermaid
classDiagram
class Animal
Animal: String Name, String age
Animal: eat()
```
举例2:
%% 源码
```mermaid
classDiagram
class Animal
Animal: String Name, String age
Animal: eat()
交通工具 <|-- 小汽车
```
类成员的定义
类成员包含属性、方法;区分属性和方法的语法依赖于是否以「小括号 ()」
结尾,没有括号的成员会被解释为属性,有括号的成员会被解释为方法。
成员的作用域作为可选项,定义是在成员的开头,有以下四种:
+
Public-
Private#
Protected~
Package/Internal
除此之外,通过在 ()
后面增加 「星号 *
」和「美元符号 $
」,可以用来描述方法成员的抽象或静态属性。
类成员有两种定义方法。
使用「冒号」声明类成员
%% 源码
```mermaid
classDiagram
class 银行账户
银行账户: +String 户主
银行账户: +BigDecimal 余额
银行账户: +存(数量)
银行账户: +取(数量)
```
使用 「大括号」确定类对象的成员描述
%% 源码
```mermaid
classDiagram
class 银行账户 {
+String 户主
+BigDecimal 余额
+存(数量) bool
+取(数量)
}
```
「小括号」结尾处增加数据类型描述
%% 源码
```mermaid
classDiagram
class 银行账户 {
+String 户主
+BigDecimal 余额
+存(数量) bool
+取(数量) int
}
```
类图中的「关系」
类图中「类」之间的逻辑关系由连接线表示,定义的形式如:[类A][箭头][类B]: 标签文字
。
不同的逻辑关系定义如下:
Type | Description |
---|---|
`< | --` |
*-- |
组成关系 |
o-- |
集合关系 |
--> |
关联关系 |
-- |
实现连接 |
..> |
依赖关系 |
`.. | >` |
.. |
虚线连接 |
各种连线类型展示
%% 源码
```mermaid
classDiagram
classA <|-- classB
classC *-- classD
classE o-- classF
classG <-- classH
classI -- classJ
classK <.. classL
classM <|.. classN
classO .. classP
```
在类图连接线上增加标签
%% 源码
```mermaid
classDiagram
classA --|> classB: 继承
classC --* classD: 组成
classE --o classF: 集合
classG --> classH: 关联
classI -- classJ: 实线连接
classK ..> classL: 依赖
classM ..|> classN: 实现
classO .. classP: 虚线连接
```
不同基数关系的定义
%% 源码
```mermaid
classDiagram
顾客 "1" --> "*" 票据
学生 "1" --> "1..*" 课程
银河 --> "many" 星星: 包含
```
类修饰符
我们可以通过标签文本描述类的元数据,例如:抽象类、接口、服务、枚举等。
元数据的通过「双尖括号」定义,有两种写法。
在类名称下面另起一行
%% 源码
```mermaid
classDiagram
class 形状
<<interface>> 形状
```
在嵌套结构内的首行定义
%% 源码
```mermaid
classDiagram
class 形状 {
<<interface>>
定点数
绘制()
}
```
使用场景及实例
一个关于动物的类图。
%% 源码
```mermaid
classDiagram
鸟 --|> 动物: 继承
翅膀 "2" --> "1" 鸟: 组合
动物 ..> 氧气: 依赖
动物 ..> 水: 依赖
class 动物 {
<<interface>>
+有生命
+新陈代谢(氧气, 水)
+繁殖()
}
class 鸟 {
+羽毛
+有角质喙没有牙齿
+下蛋()
}
```
状态图
状态图 (Statechart) 是描述一个实体基于事件反应的动态行为,是使对象达到某种状态的事件、条件或操作的图形化描述。
一个完整的状态图由状态、转换组成。
状态图中的「状态」
状态代表某一对象在某一特定的条件、时间下所保持的静态值。
使用 Mermaid 扩展绘制状态图时,有多种方式声明一个状态节点。
举例:设置状态 ID 声明状态
%% 源码
```mermaid
stateDiagram
状态1
```
举例:「state」关键字来描述共同声明状态节点
%% 源码
```mermaid
stateDiagram
state "状态描述性文字" as 状态2
```
举例:「状态 ID + 冒号」的方式简化状态节点的声明
%% 源码
```mermaid
stateDiagram
状态3 : 状态3的文字描述
```
状态图中的「转换」
「转换」在状态图中表现为连接两个状态节点的单向箭头,在 Mermaid 扩展语法中的写法为「字符箭头 -->
」。
举例:单向箭头表示转换
%% 源码
```mermaid
stateDiagram
状态1 --> 状态2
```
举例:为转换添加描述文本
通过 (行内容): label
的形式,为转换添加描述文本。
%% 源码
```mermaid
stateDiagram
状态1 --> 状态2: 咻~
```
举例:增加开始和结束节点
状态图中有两个特殊的状态节点:开始节点和结束节点。如果需要在状态图中显示开始或结束节点,可以通过 [*]
方式声明。
%% 源码
```mermaid
stateDiagram
[*] --> 状态节点
状态节点 --> [*]
```
状态图中的「嵌套」
在负责的状态描述中,有的状态节点会包含一系列的子状态,我们可以用组合「嵌套」的方式来描绘它们。在 Mermaid 扩展中,描述嵌套的方式,是使用「花括号 {}
」描述子状态。
「嵌套」的层数没有限制。
举例:状态图中的单层嵌套
%% 源码
```mermaid
stateDiagram
[*] --> 父状态节点
state 父状态节点 {
[*] --> 子状态节点
子状态节点 --> [*]
}
```
举例:状态图中的多层嵌套
%% 源码
```mermaid
stateDiagram
[*] --> 第一层状态节点
state 第一层状态节点 {
[*] --> 第二层
state 第二层 {
[*] --> 第二层
第二层 --> 第三层
state 第三层 {
[*] --> 第三层
第三层 --> [*]
}
}
}
```
举例:群组之间的嵌套
%% 源码
```mermaid
stateDiagram
[*] --> 第一层
第一层 --> 第二层
第一层 --> 第三层
state 第一层 {
[*] --> 第一层子节点
第一层子节点 --> [*]
}
state 第二层 {
[*] --> 第二层子节点
第二层子节点 --> [*]
}
state 第三层 {
[*] --> 第三层子节点
第三层子节点 --> [*]
}
```
状态图中的「分支」
对于非单一结果的状态转换,我们可以使用 <<fork>>
和 <<join>>
标签实现。
%% 源码
```mermaid
stateDiagram
state 分支 <<fork>>
[*] --> 分支
分支 --> 分支2
分支 --> 分支3
state 合并 <<join>>
分支2 --> 合并
分支3 --> 合并
合并 --> 状态4
状态4 --> [*]
```
状态图中的「并行」
对于一些同步完成的状态转换,我们可以用 --
符号声明并行效果。
%% 源码
```mermaid
stateDiagram
[*] --> 激活状态
state 激活状态 {
[*] --> NumLock关
NumLock关 --> NumLock开 : 按下 NumLock 键
NumLock开 --> NumLock关 : 按下 NumLock 键
--
[*] --> CapsLock关
CapsLock关 --> CapsLock开 : 按下 CapsLock 键
CapsLock开 --> CapsLock关 : 按下 CapsLock 键
--
[*] --> ScrollLock关
ScrollLock关 --> ScrollLock开 : 按下 ScrollLock 键
ScrollLock开 --> ScrollLock关 : 按下 ScrollLock 键
}
```
为状态图增加「备注」
有时候图表元素不能完全表达我们的设计思路,这时候需要在图中加入文字描述。在 Mermaid 语法中,使用 note <right|left> of <state ID> 备注内容 end notes
的方式,将备注添加到状态节点的右侧(左侧)。
%% 源码
```mermaid
stateDiagram
状态1: 描述将出现在右侧
note right of 状态1
这里添加描述内容
end note
状态1 --> 状态2
note left of 状态2: 在节点左侧添加描述
```
使用场景及实例
%% 源码
```mermaid
stateDiagram
[*] --> 下单成功
下单成功 --> 备货
state 出货中 <<fork>>
备货 --> 出货中
出货中 --> 出货失败
出货失败 --> [*]
出货中 --> 出货确认
出货确认 --> 出货完毕
出货完毕 --> 订单完成
订单完成 --> [*]
```
甘特图
一个基本的甘特图
基本的甘特图由「标题」、「日期格式约定」、「分组及任务」三部分组成。
规定日期格式
通过设置 dateFormat
属性,可以指定甘特图定义日期时的解析方式。
日期的格式支持以下情形:
表达式 | 取值示例 | 描述 |
---|---|---|
YYYY | 2014 | 4 位数年 |
YY | 14 | 2 位数年 |
Q | 1…4 | 季度数 |
M MM | 1…12 | 月份数 |
MMM MMMM | January…Dec | 月份名称 |
D DD | 1…31 | 月中天数 |
Do | 1st…31st | 月中第几天 |
DDD DDDD | 1…365 | 年中天数 |
X | 1410715640.579 | Unix 时间戳(秒) |
x | 1410715640579 | Unix 时间戳(毫秒) |
H HH | 0…23 | 24 小时制小时数 |
h hh | 1…12 | 12 小时制小时数 |
a A | am pm | 上午、下午 |
m mm | 0…59 | 分钟数 |
s ss | 0…59 | 秒钟数 |
S | 0…9 | 十分之一秒 |
SS | 0…99 | 百分之一秒 |
SSS | 0…999 | 千分之一秒 |
Z ZZ | +12:00 | 时区 |
定义对象的生命周期
甘特图上的对象都是以时间为基础而存在的,对于时间,我们可能有非常多的定义需求,比如精度上的「年」、「月」、「日」、「时」等,又比如「24H」或者 「12H」这样写法上的不同等。Mermaid 为时间提供了丰富的语法支持。
完整的定义语法如下:
%a - 周维度名称(简写形式)。
%A - 周维度名称(完整形式)。
%b - 月维度名称(简写形式)。
%B - 月维度名称(完整形式).
%c - 日期时间,相当于"%a %b %e %H:%M:%S %Y"。
%d - 月中日期固定宽度写法,取值范围 [01,31].
%e - 月中日期变动宽度写法,取值范围 [ 1,31];等同于 %_d.
%H - 小时数(24小时制)取值范围 [00,23]。
%I - 小时数(12小时制)取值范围 [01,12]。
%j - 年中日期固定宽度写法,取值范围 [001,366]。
%m - 年中月份固定宽度写法,取值范围 [01,12]。
%M - 分钟数固定宽度写法,取值范围 [00,59]。
%L - 毫秒数固定宽度写法,取值范围 [000, 999]。
%p - 上午 \ 下午。
%S - 秒数固定宽度写法,取值范围 [00,61]。
%U - 年中周数的固定宽度写法,以周日为每周第一天,取值范围 [00,53]。
%w - 周中日期写法,取值范围 [0(周日),6]。
%W - 年中周数的固定宽度写法,以周一为每周第一天,取值范围 [00,53]。
%x - 日期,等同于 "%m/%d/%Y"。
%X - 时间,等同于 "%H:%M:%S"。
%y - 年,仅后两位,取值范围 [00,99]。
%Y - 年,完整四位。
%Z - 时区,例如:"-0700"。
%% - 用于输出百分号 "%" 。
任务的定义
Mermaid 甘特图中,每个任务隶属于一个分组,一个分组内可以定义多个任务,一张甘特图表中可以包含多个分组。
甘特图中的任务定义格式形如:
<任务名>: [crit], [active], [任务ID], [前置任务], <周期>
其中「任务名」和「周期」两项是必要项。
任务状态:
- done:已完成
- active:正在进行
- crit:关键任务
- crit, active:关键任务,正在进行
- crit, done:关键任务,已完成
- 默认任务都为待完成状态
任务时长:
- 时间范围:如:
2014-01-06, 2014-01-08
- 指定天数:如:
5d
- 指定开始日期+天数:如:
2014-01-06,5d
基本甘特图
%% 源码
```mermaid
gantt
title 简单的甘特图
dateFormat YYYY-MM-DD
section 分区1
任务1-1: a1, 2021-01-01, 30d
任务1-2: after a1, 20d
section 分区2
任务2-1: 2021-01-15, 12d
任务2-2: 24d
```
基本甘特图:定义任务
%% 源码
```mermaid
gantt
title 简单的甘特图
dateFormat YYYY-MM-DD
苹果: a, 2021-01-01, 30d
香蕉: crit, b, 2021-01-05, 1d
梨子: crit, done, c, after b, 3d
樱桃: active, d, after c, 5d
```
使用场景及实例1
%% 源码
```mermaid
gantt
title 软件开发甘特图
dateFormat YYYY-MM-DD
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
```
使用场景及实例2
%% 源码
```mermaid
gantt
title 甘特图实例
dateFormat YYYY-MM-DD
section 基本任务
已完成任务: done, des1, 2014-01-06, 2014-01-08
进行中任务: active, des2, 2014-01-09, 3d
未开始任务1: des3, after des2, 5d
未开始任务2: des4, after des3, 5d
section 紧急任务
已完成的紧急任务: crit, done, 2014-01-06, 24h
已完成紧急任务1: crit, done, after des1, 2d
进行中紧急任务2: crit, active, 3d
未开始紧急任务3: crit, 5d
未开始一般任务4: 2d
未开始一般任务5: 1d
section 文档编写
进行中文档任务1: active, a1, after des1, 3d
未开始文档任务2: after a1, 20h
未开始文档任务3: doc1, after a1, 48h
section 其他部分
其他任务1: after doc1, 3d
其他任务2: 20h
其他任务3: 48h
```
饼图
饼图(Pie chart)是将一个圆形,分成面积相同或不同的若干区域,用来表示不同内容占比的图形。
饼图的定义包含「标题」、「内容名称」和「内容权重」三项,其中「内容权重」会在渲染时,自动转换为百分比并显示在饼图上。
基本饼图
%% 源码
```mermaid
pie title 宠物的选择
"狗": 386
"猫": 85
"兔子": 15
```
使用场景及实例
%% 源码
```mermaid
pie title 城市生存训练能力占比
"独立自理": 15
"情商": 20
"人际交往": 15
"地理常识": 10
"财商": 10
"安全防护": 20
"感恩之心": 10
```
上标、下标
上标、下标是一种文字的特殊写法,常用于化学式、数学公式、引用文字的脚注等。
在 Markdown 中,我们可以通过 和
标签来实现上标和下标。
上标表示数学公式
-
源码:
a<sup>2</sup> + b<sup>2</sup> = c<sup>2</sup>
-
效果:a2 + b2 = c2
上标表示特殊语义
- 源码:
Window 10 <sup>TM</sup>
- 效果:Window 10 TM
下标书写化学公式
- 源码:
2KClO<sub>3</sub> ==== 2KCl + 3O<sub>2</sub>↑
- 效果:2KClO3 ==== 2KCl + 3O2↑
上标下标嵌套使用
- 源码:
a<sup>b<sub>c<sup>d</sup></sub></sup>
- 效果:abcd
特殊符号作为上标
- 源码:
IMOOC<sup>©</sup>
- 效果:IMOOC©
化学方程式
- 源码:
你的美(镁)偷走了我的<font color="red">❤</font>(锌)!!!
Mg + ZnSO<sub>4</sub> == MgSO<sub>4</sub> + Zn
- 效果:
你的美(镁)偷走了我的❤(锌) !!!
Mg + ZnSO4 == MgSO4 + Zn
数学公式
在专业的学术论文中,数学公式往往是不可或缺的。在 Word 中,想表达出一个复杂的公式非常繁琐,幸运的是 Markdown 其语法中,支持使用 LaTeX 语法实现在文档中插入数学公式。
公式的声明
Markdown 中的数学公式也分为「行中公式」和「独立公式」两种。
行中公式
行中公式使用两个单独的「美元符 $
」表示。
$ 1 + 1 = 2 $
$ 1 + 1 = 2 $
独立公式
独立公式的写法是将公式两边用两个连续的「美元符 $$
」包裹,换行通过在行尾添加 \\
实现。
$$
x + y = 10 \\
x - y = 6 \\
2x = 16 \\
x = 8 \\
y = 2
$$
$$
x + y = 10 \
x - y = 6 \
2x = 16 \
x = 8 \
y = 2
$$
运算符
四则运算符
四则运算符是理工运算中的基础,主要包含加减乘除和绝对值运算。
加法符号:$x+y=z$
减法符号:$x-y=z$
加减符号:$x \pm y=z$
减加符号:$x \mp y=z$
叉乘符号:$x \times y=z$
点乘符号:$x \cdot y=z$
星乘符号:$x \ast y=z$
除法符号:$x \div y=z$
斜除符号:$x/y=z$
分式1:$\frac{x+y}{y+z}$
分式2:${x+y} \over {y+z}$
绝对值:$|x+y|$
加法符号:$x+y=z$
减法符号:$x-y=z$
加减符号:$x \pm y=z$
减加符号:$x \mp y=z$
叉乘符号:$x \times y=z$
点乘符号:$x \cdot y=z$
星乘符号:$x \ast y=z$
除法符号:$x \div y=z$
斜除符号:$x/y=z$
分式1:$\frac{x+y}{y+z}$
分式2:${x+y} \over {y+z}$
绝对值:$|x+y|$
逻辑运算符
等于符号:$x+y=z$
大于符号:$x+y>z$
小于符号:$x+y<z$
大于等于符号:$x+y \geq z$
小于等于符号:$x+y \leq z$
不等于符号:$x+y \neq z$
不大于等于符号:$x+y \ngeq z$
不大于等于符号:$x+y \not\geq z$
不小于等于符号:$x+y \nleq z$
不小于等于符号:$x+y \not\leq z$
约等于符号:$x+y \approx z$
恒定等于符号:$x+y \equiv z$
等于符号:$x+y=z$
大于符号:$x+y>z$
小于符号:$x+y<z$
大于等于符号:$x+y \geq z$
小于等于符号:$x+y \leq z$
不等于符号:$x+y \neq z$
不大于等于符号:$x+y \ngeq z$
不大于等于符号:$x+y \not\geq z$
不小于等于符号:$x+y \nleq z$
不小于等于符号:$x+y \not\leq z$
约等于符号:$x+y \approx z$
恒定等于符号:$x+y \equiv z$
高等运算符
平均数符号:$\overline{xyz}$
开二次方符号:$\sqrt x$
开方符号:$\sqrt[3]{x+y}$
对数符号:$\log(x)$
极限符号:$\lim^{x \to \infty}_{y \to 0}{\frac{x}{y}}$
极限符号:$\displaystyle \lim^{x \to \infty}_{y \to 0}{\frac{x}{y}}$
求和符号:$\sum^{x \to \infty}_{y \to 0}{\frac{x}{y}}$
求和符号:$\displaystyle \sum^{x \to \infty}_{y \to 0}{\frac{x}{y}}$
积分符号:$\int^{\infty}_{0}{xdx}$
积分符号:$\displaystyle \int^{\infty}_{0}{xdx}$
微分符号:`\partial`,如:$\frac{\partial x}{\partial y}$
矩阵符号:$\left[ \begin{matrix} &1 &2 &\cdots &4 &5 &6 &\cdots &8\\ &\vdots &\ddots &\cdots &13 &14 &15 &\cdots &16\end{matrix} \right]$
平均数符号:$\overline{xyz}$
开二次方符号:$\sqrt x$
开方符号:$\sqrt[3]{x+y}$
对数符号:$\log(x)$
极限符号:$\lim^{x \to \infty}{y \to 0}{\frac{x}{y}}$
极限符号:$\displaystyle \lim^{x \to \infty}{y}}$
求和符号:$\sum^{x \to \infty}{y \to 0}{\frac{x}{y}}$
求和符号:$\displaystyle \sum^{x \to \infty}{y}}$
积分符号:$\int^{\infty}{0}{xdx}$
积分符号:$\displaystyle \int^{\infty}$
微分符号:\partial
,如:$\frac{\partial x}{\partial y}$
矩阵符号:$\left[ \begin{matrix} &1 &2 &\cdots &4 &5 &6 &\cdots &8\ &\vdots &\ddots &\cdots &13 &14 &15 &\cdots &16\end{matrix} \right]$
希腊字母
阿尔法:$\Alpha$,$\alpha$
贝塔:$\Beta$,$\beta$
伽玛:$\Gamma$,$\gamma$
德尔塔:$\Delta$,$\delta$
艾普西龙:$\Epsilon$,$\epsilon$
捷塔:$\Zeta$,$\zeta$
依塔:$\Eta$,$\eta$
西塔:$\Theta$,$\theta$
艾欧塔:$\Iota$,$\iota$
喀帕:$\Kappa$,$\kappa$
拉姆达:$\Lambda$,$\lambda$
缪:$\Mu$,$\mu$
拗:$\Nu$,$\nu$
克西:$\Xi$,$\xi$
欧麦克轮:$\Omicron$,$\omicron$
派:$\Pi$,$\pi$
柔:$\Rho$,$\rho$
西格玛:$\Sigma$,$\sigma$
套:$\Tau$,$\tau$
宇普西龙:$\Upsilon$,$\upsilon$
发艾:$\Phi$,$\phi$
器:$\Chi$,$\chi$
普赛:$\Psi$,$\psi$
欧米伽:$\Omega$,$\omega$
阿尔法:$\Alpha$,$\alpha$
贝塔:$\Beta$,$\beta$
伽玛:$\Gamma$,$\gamma$
德尔塔:$\Delta$,$\delta$
艾普西龙:$\Epsilon$,$\epsilon$
捷塔:$\Zeta$,$\zeta$
依塔:$\Eta$,$\eta$
西塔:$\Theta$,$\theta$
艾欧塔:$\Iota$,$\iota$
喀帕:$\Kappa$,$\kappa$
拉姆达:$\Lambda$,$\lambda$
缪:$\Mu$,$\mu$
拗:$\Nu$,$\nu$
克西:$\Xi$,$\xi$
欧麦克轮:$\Omicron$,$\omicron$
派:$\Pi$,$\pi$
柔:$\Rho$,$\rho$
西格玛:$\Sigma$,$\sigma$
套:$\Tau$,$\tau$
宇普西龙:$\Upsilon$,$\upsilon$
发艾:$\Phi$,$\phi$
器:$\Chi$,$\chi$
普赛:$\Psi$,$\psi$
欧米伽:$\Omega$,$\omega$
注意:希腊字母区分大小写,其大小写的定义跟随公式中,声明该希腊字母的语法的首字母大小写。
举例:等比数列的通项公式
$$
a_n = a_1q^{n-1}= \frac {a_1}{q} \cdot q^n(n \in N^*) \\
其中前 n 项的和公式为:\\
S_n = \left\{
\begin{aligned}
\frac {a_1 \cdot (1-q^n)}{1-q} &,q \neq 1 \\
na_1 &,q=1
\end{aligned}
\right.
$$
$$
a_n = a_1q^{n-1}= \frac {a_1}{q} \cdot q^n(n \in N^*) \
其中前 n 项的和公式为:\
S_n = \left{
\begin{aligned}
\frac {a_1 \cdot (1-q^n)}{1-q} &,q \neq 1 \
na_1 &,q=1
\end{aligned}
\right.
$$
脚注尾注
脚注和尾注都是对文章的补充说明。
脚注通常与被注释内容出现在同一页,并位于该页面的最下方,一般用来解释专有名词、数据来源等。
尾注通常出现在文章的最后一页,写在文章全部正文之后,一般用来列明引用的文章列表等。
要增加脚注(尾注),首先需要在文章的适当位置增加引用的描述,形如:[^引用ID]: 说明文字
。
举例1:
这里有一个脚注[^脚注ID1]。
这里有一个脚注[^脚注ID2]。
[^脚注ID1]: 此处是 **脚注** 的 *文本内容*。
[^脚注ID2]: 此处是 **脚注** 的 *文本内容*。
举例2:
**《出师表》(节选)** 先帝[^注释1]创业[^注释2]未半而中道[^注释3]崩殂[^注释4],今[^注释5]天下三分[^注释6],益州疲弊[^注释7],此[^注释8]诚危急存亡之秋也。然[^注释9]侍卫之臣不懈于内,忠志之士忘身[^注释10]于外者,盖追先帝之殊遇[^注释11],欲报之于陛下也。诚[^注释12]宜开张圣听[^注释13],以光[^注释14]先帝遗德,恢弘[^注释15]志士之气,不宜妄自菲薄[^注释16],引喻失义[^注释17],以塞忠谏之路也[^注释18]。
《出师表》(节选) 先帝[1]创业[2]未半而中道[3]崩殂[4],今[5]天下三分[6],益州疲弊[7],此[8]诚危急存亡之秋也。然[9]侍卫之臣不懈于内,忠志之士忘身[10]于外者,盖追先帝之殊遇[11],欲报之于陛下也。诚[12]宜开张圣听[13],以光[14]先帝遗德,恢弘[15]志士之气,不宜妄自菲薄[16],引喻失义[17],以塞忠谏之路也[18]。
参考
工具参考
- 参考:https://typora.io/
- 参考:Haroopad(能够有Markdown语法提示,且支持VIM模式)
- 参考:MarkdownPad
- 参考:Atom(支持多种插件 )
- 参考:https://caret.io/
- 参考:有道云在线Markdown编辑器
语言参考
- 参考:https://markdown.com.cn/basic-syntax/
- 参考:Markdown 教程
- 参考:typora 画流程图、时序图(顺序图)、甘特图 - RUNOOB.COM
- 参考:Markdown 流程图 - IMOOC *
- 参考:Markdown绘制流程图的方法 - JackPeng博客
日志
- 2021年11月02日15:47:26 增加Typora快捷键
- 2023年07月22日16:36:36 调整文章整体格式
- 2023年10月05日14:48:35 整体重新调整格式,补充部分新内容,例如快捷键、示例等
先帝:指汉昭烈帝刘备。先,尊称死去的人。 ↩︎
创:开创,创立;业:统一天下的大业。 ↩︎
中道:中途。 ↩︎
崩殂(cú):死。崩,古时指皇帝死亡。殂,死亡。 ↩︎
今:现在。 ↩︎
三分:天下分为孙权,曹操,刘备三大势力。 ↩︎
益州疲弊:弱,处境艰难;益州:汉代行政区域十三刺史部之一,包括今四川省和陕西省一带,这里指蜀汉。疲弊(pí bì):人力缺乏,物力缺无,民生凋敝。 ↩︎
此:这;诚:的确,实在;之:的;秋:时,时候,这里指关键时期,一般多指不好的。 ↩︎
然:然而;侍:侍奉;卫:护卫;懈:松懈,懈怠;于:在;内:皇宫中。 ↩︎
忘身:舍身忘死,奋不顾身。 ↩︎
盖:原来;追:追念;殊遇:优待,厚遇。 ↩︎
诚:的确,确实;宜:应该。 ↩︎
开张圣听:扩大圣明的听闻,意思是要后主广泛地听取别人的意见;开张,扩大。 ↩︎
光:发扬光大,用作动词;遗德:留下的美德。 ↩︎
恢弘:发扬扩大,用作动词。恢,大。弘,大,宽,这里是动词,也做“恢宏”;气:志气。 ↩︎
妄自菲薄:过于看轻自己;妄:过分;菲薄:小看,轻视。 ↩︎
引喻失义:讲话不恰当。引喻:称引、譬喻;喻:比如;义:适宜、恰当。 ↩︎
以:以致(与以伤先帝之明的以用法相同:以致);塞:阻塞;谏:劝谏。 ↩︎
posted on 2021-02-04 17:19 zyjhandsome 阅读(777) 评论(1) 编辑 收藏 举报