Markdown 语法示例
Markdown 是一种轻量级标记语言,由 John Gruber 于 2004 年创建。它的设计哲学是让文档尽可能地易读易写——源码本身就应该像纯文本一样可以直接阅读,而不需要被大量标签和格式指令淹没。
常用标记符号不超过十个,三十分钟即可上手。本文涵盖基础语法与扩展语法,每个语法均展示源码与效果的对比。
一、标题
Markdown 支持两种标题语法:ATX 风格(# 号)和 Setext 风格(下划线)。
ATX 风格
语法:在行首使用 1~6 个 # 号,# 与标题文本之间需加一个空格。
1 | # 一级标题 |
效果:
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
Setext 风格
用 = 标识一级标题,用 - 标识二级标题,数量不限:
1 | 一级标题 |
最佳实践:
#和标题文本之间始终保留一个空格,以确保兼容性。
二、段落与换行
段落
段落之间用空行分隔。不要用空格或制表符缩进段落。
1 | 这是第一个段落。 |
效果:
这是第一个段落。
这是第二个段落。
换行
在行末添加两个以上空格再回车,即可创建换行(<br>):
1 | 这是第一行。 |
效果:
这是第一行。
这是第二行。
三、强调
斜体
用单个 * 或 _ 包裹文本:
1 | *斜体文本* |
效果:
斜体文本
斜体文本
粗体
用两个 ** 或 __ 包裹文本:
1 | **粗体文本** |
效果:
粗体文本
粗体文本
粗斜体
用三个 *** 或 ___ 包裹文本:
1 | ***粗斜体文本*** |
效果:
粗斜体文本
粗斜体文本
删除线
用两个 ~~ 包裹文本(扩展语法):
1 | ~~这段文本已被删除~~ |
效果:
这段文本已被删除
高亮
部分渲染器支持用 == 包裹文本实现高亮:
1 | ==这是高亮文本== |
效果:
==这是高亮文本==
四、引用
基本引用
在段落前添加 > 符号:
1 | > 这是一段引用文本。 |
效果:
这是一段引用文本。
引用可以包含多行。
嵌套引用
引用可以多层嵌套:
1 | > 外层引用 |
效果:
外层引用
内层嵌套引用
第三层嵌套
引用中的其他元素
引用内可以包含列表、代码等其他 Markdown 元素:
1 | > #### 引用中的标题 |
效果:
引用中的标题
- 列表项一
- 列表项二
斜体 和 粗体 也可以使用。
五、列表
无序列表
使用 *、+ 或 - 作为标记符,三者可互换:
1 | * 第一项 |
效果:
- 第一项
- 第二项
- 第三项
有序列表
使用数字加 . 号。实际数字不影响输出顺序:
1 | 1. 第一项 |
效果:
- 第一项
- 第二项
- 第三项
嵌套列表
缩进即可创建子列表:
1 | 1. 第一项 |
效果:
- 第一项
- 子项一
- 子项二
- 第二项
- 子项一
- 子项二
- 第三项
列表中嵌入引用
1 | * 第一项 |
效果:
- 第一项
这是引用内容
- 第二项
任务列表
使用 - [ ] 和 - [x] 创建待办事项(扩展语法):
1 | - [x] 已完成的任务 |
效果:
- 已完成的任务
- 学习 Markdown 基础语法
- 未完成的任务
- 编写更多文章
六、代码
行内代码
用反引号 ` 包裹:
1 | 使用 `printf()` 函数输出文本。 |
效果:
使用 printf() 函数输出文本。
代码块
用三个反引号 ``` 包裹,可指定语言实现语法高亮:
1 | ```c |
效果:
1 |
|
更多语言示例:
1 | def hello(name: str) -> str: |
1 | const greet = (name) => `Hello, ${name}!`; |
缩进代码块
每行缩进 4 个空格或 1 个制表符也可以创建代码块:
1 | #include <stdio.h> |
建议: 优先使用围栏式代码块(
```),因为它支持语法高亮且不依赖缩进。
七、分隔线
使用三个以上的 *、- 或 _ 创建水平分隔线:
1 | *** |
效果(三者等价):
最佳实践: 在分隔线前后各留一个空行,以确保兼容性。
八、链接
行内链接
1 | [sym1018 的主页](https://sym1018.github.io) |
效果:
引用链接
将 URL 定义在文档其他位置,正文中只使用引用标记,适合同一链接多次出现的情况:
1 | 这是 [Google][1] 的链接。 |
效果:
这是 Google 的链接。
这是 sym1018 的主页 的链接。
自动链接
用尖括号包裹 URL 或邮箱地址,自动生成可点击的链接:
1 | <https://sym1018.github.io> |
效果:
https://sym1018.github.io
[email protected]
九、图片
行内图片
1 |  |
效果:

引用图片
1 | ![纯黑][img1] |
效果:

带链接的图片
将图片嵌套在链接语法中,点击图片即可跳转:
1 | [](https://sym1018.github.io) |
效果:
十、表格
使用 | 和 - 创建表格,: 控制对齐方式(扩展语法):
1 | | 左对齐 | 居中对齐 | 右对齐 | |
效果:
| 左对齐 | 居中对齐 | 右对齐 |
|---|---|---|
| 单元格 | 单元格 | 单元格 |
| 左 | 中 | 右 |
十一、脚注
脚注用于在文末添加注释和参考(扩展语法):
1 | 这是一个脚注的示例[^1],还有一个命名脚注[^note]。 |
效果:
十二、转义字符
使用反斜杠 \ 转义 Markdown 特殊字符,使其按字面显示:
1 | \* 这不是斜体 \* |
效果:
* 这不是斜体 *
# 这不是标题
[这不是链接]
可转义的字符:
| 字符 | 名称 |
|---|---|
\ |
反斜杠 |
` |
反引号 |
* |
星号 |
_ |
下划线 |
{} |
花括号 |
[] |
方括号 |
() |
圆括号 |
# |
井号 |
+ |
加号 |
- |
减号 |
. |
点号 |
! |
感叹号 |
| ` | ` |
十三、内嵌 HTML
Markdown 支持直接嵌入 HTML 标签,适用于 Markdown 语法无法覆盖的场景:
1 | 这是一段包含 <kbd>Ctrl</kbd> + <kbd>C</kbd> 快捷键的文本。 |
效果:
这是一段包含 Ctrl + C 快捷键的文本。
点击展开
这里是折叠的内容,支持 Markdown 语法。
H2O 是水的化学式,E = mc2 是质能方程。
十四、Emoji
有两种方式在 Markdown 中使用 Emoji(扩展语法):
直接粘贴
从 Emojipedia 等网站复制 Emoji 直接粘贴即可:
1 | 这篇文章很有趣 😄🎉👍 |
效果:
这篇文章很有趣 😄🎉👍
短代码
部分渲染器支持 :emoji_name: 格式:
1 | :joy: :tent: :rocket: |
短代码的支持取决于具体的 Markdown 渲染器。
附录:语法速查表
| 元素 | 语法 |
|---|---|
| 标题 | # H1 ## H2 ### H3 |
| 粗体 | **文本** |
| 斜体 | *文本* |
| 删除线 | ~~文本~~ |
| 引用 | > 引用内容 |
| 有序列表 | 1. 项目 |
| 无序列表 | - 项目 |
| 行内代码 | `代码` |
| 代码块 | ```语言 ``` |
| 分隔线 | --- |
| 链接 | [文本](URL) |
| 图片 |  |
| 表格 | | 列1 | 列2 | |
| 脚注 | [^1] |
| 任务列表 | - [x] 已完成 |
| 转义 | \特殊字符 |
参考资料
- Markdown 官方语法 — John Gruber 的原始规范
- Markdown 中文教程 — 中文语法参考
- CommonMark 规范 — Markdown 标准化规范
- GitHub Flavored Markdown — GitHub 扩展规范





