Hugo

Markdown 写作语法手册

警告
本文最后更新于 2026-01-16,文中内容可能已过时。

Markdown 是一种轻量级标记语言,使用纯文本即可完成基本排版与结构标记,常用于文档编写、博客写作、技术说明与笔记整理等场景;其设计目标易读、易写,并支持转换为 HTML、PDF 等多种格式,在不同平台或工具中可能提供额外扩展,但核心语法保持相对稳定。1

实际使用中,可通过 Typora、Visual Studio Code、Obsidian 等工具编辑与预览,选择合适的工具有助于提升写作效率,尤其是在长文档编写与版本控制场景中。

标题

标题 用 # 表示,# 的数量表示层级(最多六级),标题前后建议空一行。

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

段落与换行

段落 前后用一个或多个空行分隔,即可形成新的段落。

Markdown
1
2
3
这是第一段。

这是第二段。

段落内 换行 在行尾留两个空格,或用反斜杠 \,或用 <br> 标签。

Markdown
1
2
3
4
5
6
7
8
这一行末尾有两个空格。␣␣
这是同一段内的新行。

这一行末尾有反斜杠。\
这是同一段内的新行。

这一行用了 <br> 换行。<br>
这是同一段内的新行。

分隔线

分割线 用三个或以上 -、* 或 _,且必须单独占一行,前后建议空一行。

Markdown
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
第一部分内容

---

第二部分内容

***

第三部分内容

___

文本格式

粗体 用两个星号 ** 或两个下划线 __ 包裹文本。

Markdown
1
2
**这段文字将被加粗**
__这段文字也将被加粗__

斜体 用一个星号 * 或一个下划线 _ 包裹文本。

Markdown
1
2
*这是斜体文本*
_这是斜体文本_

删除线 用两个波浪线 ~~ 包裹文本。

Markdown
1
~~这段文字会被加上删除线~~

下划线 用 <u> 标签包裹文本。

Markdown
1
2
<u>这段文字会显示下划线</u>
<ins>这段文字也会显示下划线</ins>

高亮 用两个等号 == 或 <mark> 标签包裹文本。

Markdown
1
2
==高亮文本==
<mark>高亮文本</mark>

上标 用 ^ 或 <sup> 标签包裹文本,下标 用 ~ 或 <sub> 标签包裹文本。

Markdown
1
2
3
x^2^ → x<sup>2</sup>
H~2~O → H<sub>2</sub>O
SO~4~^2-^ → SO<sub>4</sub><sup>2-</sup>

列表

无序列表 在每个列表项前加 -、* 或 +,并加一个空格。

Markdown
1
2
3
- 第一项
- 第二项
- 第三项

有序列表 在每个列表项前加数字并紧跟一个英文句点,数字不必按顺序排列。

Markdown
1
2
3
1. 第一项
2. 第二项
3. 第三项

嵌套列表 在子项前缩进 2~4 个空格,并保持一致的缩进长度。

Markdown
1
2
3
4
5
6
7
1. 主要任务
   - 子任务A
   - 子任务B
     1. 详细步骤1
     2. 详细步骤2
   - 子任务C
2. 次要任务

任务列表 在普通列表的基础上加 [ ] 或 [x],分别表示未完成和已完成。

Markdown
1
2
3
- [ ] 未完成的任务
- [x] 已完成的任务
- [ ] 另一个未完成的任务

定义列表 术语单独一行,下一行以冒号 : 加空格开头写定义,多行定义要缩进两个空格。

Markdown
1
2
3
4
5
6
7
8
API
: Application Programming Interface,应用程序编程接口
: 也常泛指某个服务对外暴露的调用方式

Python
: 一种解释型的高级编程语言
  由 Guido van Rossum 于 1991 年发布
  以代码简洁可读著称

引用块

区块引用 在行首加 >,再加一个空格。

Markdown
1
> 这是一段引用文字。

多段落引用 在每个空行上也加上 >。

Markdown
1
2
3
> 这是引用的第一段。
>
> 这是引用的第二段。

嵌套引用 增加 > 的数量,>> 表示二级引用,>>> 表示三级引用,以此类推。

Markdown
1
2
3
4
5
> 这是一级引用
>
> > 这是二级引用(嵌套在一级引用中)
>
> 回到一级引用

提示框 是一种扩展语法,先写一个引用符号 >,然后紧跟 [!类型],下一行再用 > 开头写内容。

Markdown
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
> [!NOTE]
> 这是一条备注信息。

> [!TIP]
> 这是一个实用技巧。

> [!WARNING]
> 这是一个警告提示。

> [!IMPORTANT]
> 这是一条重要信息。

> [!CAUTION]
> 这表示危险操作,请谨慎。

代码

行内代码 用反引号 ` 包裹,适合短代码片段。

Markdown
1
使用 `git status` 查看当前状态。

围栏代码块 用三个反引号 ` 包裹,并可指定语言类型以启用语法高亮。

Markdown
1
2
3
4
```python
def hello():
    print("Hello, World!")
```

表格

表格 用 | 分隔列,- 定义表头分隔行(至少三个),: 控制文本对齐方式,<br> 单元格内换行。

Markdown
1
2
3
4
| 左对齐 | 右对齐 | 居中对齐 |
| :----- | -----: | :------: |
| 内容   |   内容 |   内容   |
| A<br>B |   内容 |   内容   |

链接

行内链接 用 [链接文本](链接地址) 插入。

Markdown
1
[AriaNote](https://arianote.top)

带标题的链接 在路径后加引号文字,鼠标悬停时显示。

Markdown
1
[AriaNote](https://arianote.top "这是我的博客")

自动链接 用尖括号 <> 包裹 URL 或邮箱地址,渲染时自动变成可点击链接。

Markdown
1
2
<https://arianote.top>
<example@email.com>

引用式链接 正文用 [链接文本][标签],文档末尾用 [标签]: 链接地址 定义。

Markdown
1
2
3
4
5
6
我经常使用 [Google][1] 搜索,也会查看 [维基百科][wiki] 获取知识。
有时候也会访问 [GitHub][github] 查看代码。

[1]: https://www.google.com "Google 搜索引擎"
[wiki]: https://zh.wikipedia.org "中文维基百科"
[github]: https://github.com "代码托管平台"

图片

图片用 ![替代文本](图片路径) 插入。

Markdown
1
2
3
![网络图片](https://example.com/image.png)
![站点绝对路径图片](/images/example.png)
![相对路径图片](./images/example.png)

带标题的图片 在路径后加引号文字,鼠标悬停时显示。

Markdown
1
2
![网络图片](https://example.com/image.png "图片标题")
![本地图片](/images/example.png "图片标题")

图片作为链接 用链接包裹图片,点击图片跳转到指定地址。

Markdown
1
[![示例图片](/images/example.png)](https://example.com/)

Markdown 原生语法无法调整图片大小和对齐方式,需要用 HTML 标签。

Markdown
1
2
3
4
5
<img src="./images/example.png" alt="示例图片" width="60%">

<div align="center">
  <img src="./images/example.png" alt="示例图片" width="60%">
</div>

锚点

标题自动锚点 由 Hugo 自动生成,英文字母转小写,空格替换为 -。

Markdown
1
2
3
## 快速开始

点击[这里](#快速开始)回到开头。

自定义标题锚点 在标题后加 {#id} 覆盖自动生成的锚点。

Markdown
1
2
3
4
5
## 安装步骤 {#install-steps}

详细安装内容...

[跳到安装步骤](#install-steps)

手动锚点 用 HTML 标签的 id 属性创建,可放在文章任意位置。

Markdown
1
2
3
4
5
<a id="important-note"></a>

> 这是一段特别重要的注意事项,我想让读者能直接跳到这里。

点击[这里](#important-note)跳到上面的注意事项。

脚注

脚注 分为引用标记 [^标签](放在正文中)和脚注定义 [^标签]: 脚注内容(放在文档中任意位置)。

Markdown
1
2
3
这是一段正文,这里需要添加脚注。[^1]

[^1]: 这是脚注的具体内容。

注释

注释 没有原生 Markdown 语法,可用 HTML 注释或引用式链接实现,渲染结果中不显示。

Markdown
1
2
3
4
5
这是一段正常显示的文字。

<!-- 这是一条 HTML 注释,不会在渲染结果中显示 -->

[//]: # (这是一条引用式链接注释,利用链接定义不渲染的特性实现)

符号与转义

转义 是在具有语法含义的特殊字符前加反斜杠 \,让它显示为普通字符。

Markdown
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
\\ → 显示为 \
\` → 显示为 `
\* → 显示为 *
\_ → 显示为 _
\{ → 显示为 {
\} → 显示为 }
\[ → 显示为 [
\] → 显示为 ]
\( → 显示为 (
\) → 显示为 )
\# → 显示为 #
\+ → 显示为 +
\- → 显示为 -
\. → 显示为 .
\! → 显示为 !
\| → 显示为 |
\> → 显示为 >
\~ → 显示为 ~
\$ → 显示为 $

HTML 字符实体 是以 & 开头、; 结尾的特殊编码,用于显示 HTML 特殊字符或键盘打不出的符号。

Markdown
1
2
3
4
5
6
7
8
&lt; → 显示为 <
&gt; → 显示为 >
&amp; → 显示为 &
&quot; → 显示为 "
&apos; → 显示为 '
&nbsp; → 显示为不换行空格
&copy; → 显示为 ©
&reg; → 显示为 ®

Emoji 通过简码 :名称:、Unicode 字符插入,或按 Win+. 打开 Emoji 选择器。

Markdown
1
2
3
:smile: → &#x1F604; → 😄
:rocket: → &#x1F680; → 🚀
:heart: → &#x2764;&#xFE0F; → ❤️

公式

行内公式 用单个美元符号 $ 包裹,渲染后和文字在同一行。

Markdown
1
这是一个行内公式 $E = mc^2$

块级公式 用双美元符号 $$ 包裹,并且单独占一行。

Markdown
1
2
3
$$
\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
$$

图表

mermaid 是一种基于文本的图表语法,支持多种图表类型,如流程图、时序图、甘特图等。

Markdown
1
2
3
4
5
6
7
```mermaid
graph TD
   A[开始] --> B[处理]
   B --> C{条件?}
   C -->|是| D[输出]
   C -->|否| E[结束]
```

内联 HTML

行内标签 可在 Markdown 文本中任意位置使用,不影响周围的 Markdown 解析。

Markdown
1
2
3
4
5
6
7
<strong>加粗</strong>
<em>斜体</em>
<code>行内代码</code>
<mark>高亮</mark>
<kbd>Ctrl</kbd> + <kbd>C</kbd>
<span style="color:red">红色文字</span>
<a href="https://example.com">链接</a>

块级标签 里面的内容按原始 HTML 处理,不会被解析为 Markdown。

Markdown
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<p>段落</p>

一行文字<br>
换行后的文字

<hr>

<pre>
预格式文本
  保留缩进和空格
</pre>
留言交流