markdown 基本语法

Markdown 是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。

标题

在想要设置为标题的文字前面加 #来表示 一个 #是一级标题,二个 #是二级标题,以此类推。支持六级标题。

1
2
3
4
5
6
# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题

字体

  • 加粗

    左右分别用两个 * 号包起来

    1
    **加粗文字**
  • 斜体

    左右分别用一个 * 号包起来

    1
    *斜体文字*
  • 斜体加粗

    左右分别用三个 * 号包起来

    1
    ***斜体加粗***
  • 删除线

    左右分别用两个~包起来

    1
    ~~删除线~~

    Typora 快捷键:

    粗体: Ctrl+B

    斜体: Ctrl+I

    下划线: Ctrl+U

    删除线: Alt+Shift+5

引用

在引用的文字前加 > 即可。引用也可以嵌套,如加两个 >> 三个 >>>

1
2
3
>一级引用
>>二级引用
>>>>多级引用

效果:

引用

Typora 快捷键: Ctrl+Shift+Q

分割线

三个或者三个以上的 - 或者 * 都可以。

1
2
3
4
---
----
***
****

图片

语法:

1
![图片下方显示文字](图片地址 "图片title")

示例:

1
![baidu百度](https://www.baidu.com/img/bd_logo1.png "百度图标")

效果:

baidu百度
baidu 百度

Typora 快捷键: Ctrl+Shift+I

超链接

语法:

1
2
3
[超链接名](超链接地址 "超链接title")

title可有可无

Typora 快捷键: Ctrl+K

列表

  • 无序列表

    语法:

    无序列表用 - + * 任何一种都可以

    1
    2
    3
    - 无序列表
    + 无序列表
    * 无序列表
  • 有序列表

    语法:

    数字加点

    1
    2
    3
    1. 有序列表
    2. 有序列表
    3. 序号跟内容间要有空格
  • 复选框

    1
    2
    3
    4
    5
    6
    - [x] 需求分析
    - [x] 系统设计
    - [x] 详细设计
    - [ ] 编码
    - [ ] 测试
    - [ ] 交付
    • [x] 需求分析
    • [x] 系统设计
    • [x] 详细设计
    • [ ] 编码
    • [ ] 测试
    • [ ] 交付
  • 列表嵌套

    语法:

    上一级与下一级之间打三个空格

    1
    2
    3
    4
    5
    6
    + 一级无序
    1. 二级有序
    2. 二级有序
    + 一级无序
    + 二级无序
    + 二级无序

表格

语法:

1
2
3
4
5
6
7
8
9
10
表头|表头|表头
---|:--:|--:
内容|居中|居右|

第二行分割表头和内容,-有一个就行,可多加对齐
文字默认居左
文字居中:-两边加:
文字居右:-右边加:

注:原生的语法两边都要用 | 包起来。

Typora 快捷键: Ctrl+T

代码

单行代码:

1
`代码内容`

代码块:

代码之间分别用三个反引号包起来,且两边的反引号单独占一行

1
2
3
```cpp
# include <iostream>
```

三点后输入语言名称获得高亮功能。

里面若有代码内容,即 ```,需要输入四个点防止匹配错误:````

Typora 快捷键:

行内代码: Ctrl+Shift+`

多行代码: Ctrl+Shift+K

diff 显示:

语言名称填写 diff

1
2
3
4
+ 人闲桂花落,
- 夜静春山空。
! 月出惊山鸟,
# 时鸣春涧中。

流程图

示例:

1
2
3
4
5
6
7
8
9
```flow
st=>start: 开始
op=>operation: My Operation
cond=>condition: Yes or No?
e=>end
st->op->cond
cond(yes)->e
cond(no)->op
```

效果:

1
2
3
4
5
6
7
st=>start: start
op=>operation: My Operation
cond=>condition: Yes or No?
e=>end
st->op->cond
cond(yes)->e
cond(no)->op

其他图:

1、横向流程图源码格式:

1
2
3
4
5
6
7
8
```mermaid
graph LR
A[方形] -->B(圆角)
B --> C{条件a}
C -->|a=1| D[结果1]
C -->|a=2| E[结果2]
F[横向流程图]
```

2、竖向流程图源码格式:

1
2
3
4
5
6
7
8
```mermaid
graph TD
A[方形] --> B(圆角)
B --> C{条件a}
C --> |a=1| D[结果1]
C --> |a=2| E[结果2]
F[竖向流程图]
```

3、标准流程图源码格式:

1
2
3
4
5
6
7
8
9
10
11
```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
```

4、标准流程图源码格式(横向):

1
2
3
4
5
6
7
8
9
10
11
```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
```

5、UML 时序图源码样例:

1
2
3
4
5
6
7
```sequence
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象A->对象B: 你真的好吗?
```

6、UML 时序图源码复杂样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
```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: 没人陪我玩
```

7、UML 标准时序图样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
```mermaid
%% 时序图例子,-> 直线,-->虚线,->>实线箭头
sequenceDiagram
participant 张三
participant 李四
张三->王五: 王五你好吗?
loop 健康检查
王五->王五: 与疾病战斗
end
Note right of 王五: 合理 食物 <br/>看医生...
李四-->>张三: 很好!
王五->李四: 你怎么样?
李四-->王五: 很好!
```

8、甘特图样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
```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
```

公式

1
2
3
$$
x+y=z
$$

\[ x+y=z \]

Typora 快捷键: Ctrl+Shift+M

锚点

示例:

1
2
<a id="anchor"> example </a>
[goto example](#anchor)

example

goto example

表情

Github 的 Markdown 语法支持添加 emoji 表情,输入不同的符号码(两个冒号包围的字符)可以显示出不同的表情。

比如:blush:,可以显示😊。

具体每一个表情的符号码,可以查询 GitHub 的官方网页 http://www.emoji-cheat-sheet.com

参考

https://github.com/guodongxiaren/README

https://www.runoob.com/markdown/md-advance.html