Markdown 入门教程
前言:Markdown 是一种轻量级标记语言,语法简洁、易读易写,兼容所有笔记软件、博客、文档平台(GitHub、掘金、知乎、语雀、Typora、VS Code 等)。无需复杂排版,纯文本即可生成美观的格式化文档,是程序员、学生、办公人员必备技能。
目前主流有两套体系:CommonMark(标准基础规范)、GFM (GitHub Flavored Markdown,最广泛的扩展,表格、删除线、任务列表)。部分高级功能(脚注、数学公式、图表)属于扩展语法,不同编辑器 / 平台支持程度不一样。

Markdown
标题
两种写法:ATX 风格(最常用)、Setext 下划线风格。
ATX 风格(#,1‑6 级)
#后面必须跟一个空格,#数量代表标题级别,最多 6 级。
# 一级大标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
Setext 下划线标题(一级、二级)
在文字下方使用等号、减号做下划线。
这是一级标题
=============
这是二级标题
-------------
提示:标题前后建议保留空行,避免和其他块元素解析错乱CommonMark。
2. 段落、换行、空行
新段落:两段文字中间插入一整行空白行,仅回车不会生成新段落。
第一段文字,属于第一个段落。
这是全新的第二个段落。
同一段落强制软换行:行末尾输入两个空格再回车;部分平台支持
<br>标签换行。
第一行内容。
第二行,同一自然段,没有分段。
❗注意:单纯敲一次回车,大部分解析器不会换行,会合并为同一行文本。
3. 文本行内样式
**粗体文字**
__粗体文字__
*斜体文字*
_斜体文字_
***粗斜体同时生效***
___粗斜体同时生效___
~~删除线文字~~
渲染效果:
粗体文字
粗体文字
斜体文字
斜体文字
粗斜体同时生效
粗斜体同时生效
删除线文字
删除线
~~属于 GFM 扩展语法,基础 CommonMark 不支持。
4. 列表
无序列表
标记符号:-、*、+,符号后面必须加空格。
- 项目A
- 项目B
- 项目C
* 项目1
* 项目2
+ 条目一
+ 条目二
有序列表
数字 + 英文句号 .;也可以使用数字 + 右括号 )。
输出的序号会自动重新计算,原始写的数字不决定最终展示序号。
1. 第一步
2. 第二步
3. 第三步
1) 第一项
2) 第二项
嵌套列表
子列表需要缩进 2‑4 个空格,推荐 2 空格。
- 大类一
- 子项1
- 子项2
- 更深一层子项
- 大类二
紧凑列表 / 松散列表
紧凑列表(tight):列表项之间没有空行,渲染后内部没有段落间距。
- 苹果
- 香蕉
- 橘子
松散列表(loose):列表项之间有空行,每一项会被包裹段落,上下间距会变大。
- 苹果
- 香蕉
- 橘子
只要任意两个列表项中间有空行,整个列表就变成松散列表,排版间距会改变。
5. 块引用
使用 > 符号,符号后建议跟空格。支持多层嵌套引用。
> 这是一级引用文本
> 可以写多行
>> 嵌套第二层引用
>>> 嵌套第三层引用
这是一级引用文本
可以写多行
嵌套第二层引用
嵌套第三层引用
引用内部可以继续写标题、列表、粗斜体等全部 Markdown 语法。
6. 分割线
单独占一整行,输入三个及以上 - / * / _。前后最好保留空行。
---
***
___
7. 链接
基础内联链接
格式:[链接显示文字](链接地址 "可选鼠标悬浮提示标题")
[百度](https://www.baidu.com)
[百度](https://www.baidu.com "访问百度首页")
相对路径链接(本地文档)
[阅读上一章](./chapter01.md)
[返回首页](../index.md)
自动链接
尖括号包裹网址、邮箱,无需写显示文本,自动转为超链接。
<https://www.baidu.com>
<example@mail.com>
参考式链接(适合文档多处重复引用同一个地址)
正文写简写标记,文档任意位置定义真实链接地址,便于统一维护。
访问[百度][baidu],访问[谷歌][google]。
[baidu]: https://www.baidu.com "百度"
[google]: https://www.google.com
8. 图片
格式:
替代文字(alt):图片加载失败时展示,用于无障碍阅读。
图片地址可以是网络 URL,也可以是本地相对路径
./assets/cat.jpg。部分平台支持指定图片尺寸,属于扩展语法,不是标准。
9. 表格(GFM 扩展)
标准 CommonMark 没有表格,GitHub、大部分博客、笔记软件支持此扩展。
| 姓名 | 年龄 | 城市 |
|------|------|------|
| 张三 | 22 | 北京 |
| 李四 | 25 | 上海 |
控制对齐方式,在分隔行使用冒号:
| 左对齐 | 居中对齐 | 右对齐 |
|:-------|:--------:|--------:|
| 内容1 | 内容2 | 内容3 |
| A | B | C |
:在左边:左对齐:左右两边都有:居中:在右边:右对齐
最外侧竖线可以省略,但是建议写上,原始文本可读性更好。单元格内部可以写粗体、行内代码。
10. 代码:行内代码、代码块
行内代码
单个反引号 ` 包裹,适合短代码、命令、变量。
使用 `print("hello")` 输出内容。
变量 `name` 用于存储用户名。
围栏代码块(Fenced code block)
三个反引号 ``` 包裹,可以在开头标记语言名称,用于语法高亮。
```plaintext
纯文本,不做语法高亮
第一行
第二行
```
```javascript
function sayHello(){
console.log("Hello World");
}
sayHello();
```
```python
def hello():
print("Hello")
hello()
```
⚠️注意:部分高亮解析器不识别
plain,纯文本统一写plaintext,避免解析报错。常用语言标识:
javascript、python、html、css、json、yaml、bash、sql、plaintext。
缩进代码块(旧写法)
4 个空格或者 1 个制表符缩进,整段会被识别为代码块,不支持指定语言,不推荐优先使用。
第一行代码
第二行代码
11. GFM 扩展语法
GFM = GitHub Flavored Markdown,绝大多数现代博客、笔记、代码平台都支持。
任务列表(勾选框)
- [x] 已经完成的任务
- [ ] 待完成任务
- [x] 完成文档撰写
- [ ] 校对全文
已经完成的任务
待完成任务
完成文档撰写
校对全文
12. 扩展高级语法
不属于标准 CommonMark/GFM,需要编辑器、插件支持,部分平台会直接忽略不渲染。
脚注
Markdown 的创建者是 John Gruber[^author]。
[^author]: John Gruber,2004年发布 Markdown。
脚注标记可以是数字、单词,不能带空格;脚注定义写在文档任意位置,通常放在文末。
定义列表(Pandoc/MultiMarkdown 扩展)
CPU
: 中央处理器,计算机运算核心
GPU
: 图形处理器,负责图像并行计算
数学公式(需要 KaTeX / MathJax 插件)
行内公式(嵌入行文字中间)
markdown
质能方程 $E=mc^2$。
块级独立公式,单独成行
$$
\sum_{i=1}^{n} x_i
$$
Mermaid 流程图(图表渲染插件)
```mermaid
graph TD
A[开始] --> B{判断}
B -->|是| C[执行]
B -->|否| D[结束]
```
文本高亮(部分扩展)
==被高亮的文字==
13. HTML 原生混用
Markdown 支持直接嵌入部分 HTML 标签,可以实现 Markdown 做不到的效果。
<div align="right">这段文字右对齐</div>
<br>
<details>
<summary>点击展开查看详情</summary>
这里是折叠内部的内容
</details>
注意:部分安全严格的平台会过滤掉 HTML 标签,此时 HTML 代码直接原样显示。
14. 转义字符
如果想要原样输出 * # [ ` 这些 Markdown 标记符号,在符号前面加反斜杠 \。
\* 这一段不会变成斜体
\# 不会解析为标题
\[普通方括号文本\]
\`普通反引号\`
\! 普通感叹号
需要转义的符号清单:
\ ` * _ { } [ ] ( ) # + - . !
15. Front‑Matter 元信息
文档最开头使用
---包裹 YAML,多用于博客、文档系统记录标题、标签、日期,普通 Markdown 预览器会直接忽略。
markdown
---
title: Markdown完整教程
author: 作者名
date: 2026‑08‑27
tags: [Markdown,文档]
---
正文从这里开始……
16. 常见踩坑与兼容性说明
空格坑:
#、-、>标记符号后面必须有空格,少空格会解析失败。空行坑:块元素(标题、列表、引用、代码块)之间建议保留空行,避免粘连解析错乱。
扩展语法差异:表格、任务列表属于 GFM;脚注、公式、Mermaid 属于第三方扩展。复制文档到不同平台,高级语法有可能失效。
代码块语言名:纯文本优先写
plaintext,不要写plain,防止高亮插件抛出解析错误。列表缩进:嵌套子列表至少 2 空格;空行会改变列表为松散模式,排版间距变化。
HTML 过滤:很多博客、评论系统会直接过滤全部 HTML 标签,折叠、对齐等 HTML 写法会失效。

