Markdown语法教学

本文档系统整理Markdown内核语法,按“基础语法→ 高级美化语法→ 特殊扩展语法”分类,每个语法点均附语法说明实操示例注意事项,适合零基础入门学习,可直接复制示例到Markdown编辑器(如Typora、Obsidian、VS Code)中实操验证。

内核优势:纯文本编写,语法简洁易记,可导出为HTML、PDF、Word等格式,广泛用于博客写作、学习笔记、技术文档、简历撰写等场景。

一、基础语法

这部分是Markdown的内核基础,掌握后可满足80%的日常写作需求,重点记忆“符号+规则”即可。

1.1 标题

语法说明

用“#”符号开头,后面加空格,再写标题内容;“#”数量对应标题层级(1-6级),级数越多,标题越小。

实操示例

1
2
3
4
5
6
# 一级标题(最大,常用文档主标题)
## 二级标题(常用章节标题)
### 三级标题(常用小节标题)
#### 四级标题
##### 五级标题
###### 六级标题(最小)

注意事项

  • 和标题文本之间必须加1个空格,否则会被识别为普通文本;

  • 建议最多用到三级标题,层级过多会导致文档结构混乱;

  • 部分编辑器(如Typora)支持选中文本后按“Ctrl+1~6”快速生成对应层级标题。

1.2 文本样式(加粗、斜体、删除线等)

语法说明

通过特定符号包裹文本,实现加粗、斜体、删除线、下划线等样式,支持组合使用。

实操示例

1
2
3
4
5
6
**这是加粗文本**(两个星号包裹)
*这是斜体文本*(一个星号包裹)
***这是加粗+斜体文本***(三个星号包裹)
~~这是删除线文本~~(两个波浪线包裹)
<u>这是下划线文本</u>(Markdown原生不支持,用HTML标签实现)
==这是高亮文本==(部分编辑器支持,如Typora,需开启高亮功能)

注意事项

  • 包裹符号必须成对出现,且前后不能有多余空格;

  • 下划线用HTML的标签实现,兼容性比其他样式稍差;

  • 高亮功能并非所有编辑器都支持,若不生效,可改用加粗替代。

1.3 列表(有序、无序、任务)

用于整理多条并列内容,分为有串行表(带序号)、无串行表(带符号)和任务列表(带复选框)。

1. 无串行表

1
2
3
4
5
- 无串行表项1(用减号开头,加空格)
+ 无串行表项2(用加号开头,加空格)
* 无串行表项3(用星号开头,加空格)
- 子列表项(前面加2个空格,再用符号)
- 子列表项

2. 有串行表

1
2
3
4
5
1. 有串行表项1(数字+点+空格)
2. 有串行表项2
3. 有串行表项3
1. 子列表项(前面加2个空格)
2. 子列表项

3. 任务列表

1
2
3
- [ ] 未完成任务(中括号内留空)
- [x] 已完成任务(中括号内加x,不区分大小写)
- [ ] 待学习:Markdown高级语法

注意事项

  • 所有列表符号后面必须加1个空格,否则无法识别;

  • 无串行表的“-、+、*”效果完全一致,推荐统一用“-”,更易记;

  • 子列表需在父列表项前加2个或4个空格(不同编辑器兼容不同,推荐2个);

  • 任务列表的中括号“[ ]”内部必须紧凑,不能有空格(如“[ ]”正确,“[ ]”错误)。

1.4 段落与换行

语法说明

Markdown中,段落之间需空1行;同一段落内换行,需在换行处加2个及以上空格,或用
标签。

实操示例

1
2
3
4
5
6
7
这是第一个段落。
(这里空1行)
这是第二个段落。

这是同一段落的第一行(后面加2个空格)
这是同一段落的第二行(换行成功)
这是同一段落的第三行<br/>直接用br标签换行(兼容性更强)

注意事项

  • 不要用“Enter键直接换行”代替段落间隔,否则会被识别为同一段落;

  • 加空格换行的方式在部分在线编辑器中可能失效,推荐用
    标签实现强制换行。

1.5 引用(块引用)

语法说明

用“>”符号开头,加空格,后面写引用内容,支持多级引用和嵌套其他语法。

实操示例

1
2
3
4
5
6
7
8
> 一级引用:这是引用的内容(比如引用别人的话、文献内容)
>
> > 二级引用:嵌套引用(在一级引用基础上再加一个>)
>
> 引用中可嵌套其他语法:
> - 嵌套无串行表
> 1. 嵌套有串行表
> **嵌套加粗文本**

注意事项

  • “>”后面加空格更规范,部分编辑器不加空格也能识别,但不推荐;

  • 多级引用最多嵌套2-3级,过多会影响阅读体验;

  • 引用块内换行时,需在换行处也加“>”,否则会跳出引用块。

1.6 链接(外部链接、内部链接)

用于添加可点击的链接,分为“外部链接(跳转到网页)”和“内部链接(跳转到文档内锚点)”。

1. 外部链接(最常用)

1
2
3
4
5
// 语法1:[链接显示文本](链接地址 "可选的提示文本")
[百度一下](https://www.baidu.com "点击跳转到百度")

// 语法2:直接写链接地址(自动识别)
https://www.baidu.com

2. 内部链接(文档内跳转)

1
2
3
4
5
// 第一步:给目标位置设置锚点(通常用标题)
### 1.6 链接(外部链接、内部链接)<span id="link-anchor"></span>

// 第二步:创建跳转链接
[跳转到“链接”章节](#link-anchor)

注意事项

  • 外部链接的括号内,链接地址必须完整(含http/https);

  • 提示文本用双引号包裹,鼠标悬停在链接上时显示,可选填;

  • 内部链接的锚点ID需唯一,否则可能跳转失败;部分编辑器支持直接用标题文本作为锚点(如跳转到链接章节),但兼容性较差,推荐用span标签手动设置锚点。

1.7 图片

语法说明

语法与外部链接类似,只是在前面多一个“!”;格式:![图片加载失败时的提示文本](图片地址 "可选的图片标题")

实操示例

1
2
3
4
5
6
7
8
// 1. 网络图片(用图片URL)
![风景图](https://example.com/fengjing.jpg "美丽的风景")

// 2. 本地图片(用相对路径或绝对路径)
// 相对路径(推荐,图片放在文档同级目录的images文档夹中)
![本地图片](./images/photo.jpg)
// 绝对路径(不推荐,换设备/目录后会失效)
![本地图片](D:/notes/images/photo.jpg)

注意事项

  • 网络图片URL需能直接访问,否则图片无法显示;

  • 本地图片推荐用相对路径,方便文档迁移和分享;

  • 部分编辑器支持拖拽图片自动生成图片语法,高效便捷。

1.8 代码块与行内代码

用于展示代码,分为“行内代码(嵌入文本中)”和“代码块(独立区块)”。

1. 行内代码

1
用反引号`包裹代码,比如:在终端输入`docker run -d nginx`命令启动Nginx容器。

2. 代码块(推荐)

// 语法:用3个反引号包裹代码,开头的反引号后可加编程语言名称(实现语法高亮)

1
2
3
4
# 这是Python代码示例
def hello():
print("Hello, Markdown!")
hello()
1
2
# 这是Shell脚本示例
echo "Hello World"

注意事项

  • 反引号是键盘上“ESC键下方、1键左侧”的符号(`),不是单引号(');

  • 代码块指定编程语言后,编辑器会自动实现语法高亮,推荐必加;

  • 部分旧编辑器不支持语法高亮,仅显示为普通文本,不影响代码可读性。

二、高级美化语法

掌握基础语法后,通过这些语法可让文档更美观、更具可读性,适合用于正式的技术文档、博客文章等场景。

2.1 表格(规范排版数据)

语法说明

用“|”分隔列,用“-”分隔表头和表体;可通过“:”控制列对齐方式。

实操示例

1
2
3
4
5
// 基础表格(无对齐)
| 姓名 | 年龄 | 职业 |
| --- | --- | --- |
| 张三 | 25 | 进程员 |
| 李四 | 30 | 产品经理 |

效果展示

姓名 年龄 职业
张三 25 进程员
李四 30 产品经理
1
2
3
4
5
// 带对齐的表格(推荐)
| 左对齐 | 居中对齐 | 右对齐 |
| :--- | :---: | ---: | // :在左边=左对齐,两边都有=居中,右边=右对齐
| 内容1 | 内容2 | 内容3 |
| 内容4 | 内容5 | 内容6 |

效果展示

左对齐 居中对齐 右对齐
内容1 内容2 内容3
内容4 内容5 内容6

注意事项

  • 表头和表体之间的“-”至少需要1个,推荐用3个及以上,更美观;

  • 对齐符号“:”需紧贴“-”,否则对齐失效;

  • 表格内容中若包含“|”,需用“\”转义(如“|”),否则会被识别为列分隔符;

  • 复杂表格(如合并单元格)Markdown原生不支持,需用HTML的

    标签实现(见2.6节)。

    2.2 分割线(分隔内容区块)

    语法说明

    用3个及以上的“-、*、_”符号,单独占一行,实现分割线效果。

    实操示例

    1
    2
    3
    4
    5
    6
    7

    这是分割线上面的内容
    --- // 减号分割线(推荐,最常用)
    这是分割线中间的内容
    *** // 星号分割线
    这是分割线下面的内容
    ___ // 下划线分割线

    效果展示

    三种分割线:

    这是分割线上面的内容

    这是分割线中间的内容


    这是分割线下面的内容


    注意事项

    • 分割线符号必须单独占一行,前后最好各空1行,否则可能与前后文本粘连;

    • 推荐统一用“—”,简洁易记,兼容性最好。

    2.3 高亮块(突出重点内容)

    用于突出显示重要提示、警告、注意事项等内容,不同编辑器支持的语法略有差异,推荐两种常用方式。

    实操示例

    1
    2
    3
    // 方式1:用引用块+特殊符号(兼容性最好,所有编辑器都支持)
    > 💡 提示:这是重点提示内容,用引用块+emoji实现高亮效果。
    > ⚠️ 警告:这是警告内容,注意规避风险。

    效果展示

    💡 提示:这是重点提示内容,用引用块+emoji实现高亮效果。
    ⚠️ 警告:这是警告内容,注意规避风险。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // 方式2:用:::包裹(部分编辑器支持,如VuePress、VitePress)
    ::: tip 提示
    这是提示类型的高亮块,可自定义标题。
    :::

    ::: warning 警告
    这是警告类型的高亮块。
    :::

    ::: danger 危险
    这是危险类型的高亮块。
    :::

    注意事项

    • 方式1兼容性最好,推荐优先使用;emoji可通过“Win+.”快捷键调出选择面板(Windows);

    • 方式2的语法为扩展语法,部分编辑器(如Typora)需开启对应功能才能识别。

    2.4 分栏(多列布局)

    实现多列并行显示,适合展示对比内容,Markdown原生不支持,需用HTML标签或扩展语法。

    实操示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22

    // 方式1:用HTML的div标签(兼容性最好)
    <div style="display: flex; gap: 20px;">
    <div style="flex: 1;">
    <h4>左栏内容</h4>
    <p>这是分栏的左栏,可放文本、列表等内容。</p>
    </div>
    <div style="flex: 1;">
    <h4>右栏内容</h4>
    <p>这是分栏的右栏,两栏宽度相等。</p>
    </div>
    </div>

    // 方式2:用扩展语法(部分编辑器支持,如Typora)
    ::: columns
    ::: column
    左栏内容:这是分栏示例
    :::
    ::: column
    右栏内容:适合对比展示
    :::
    :::

    注意事项

    • 方式1的flex布局可通过调整style属性自定义分栏宽度、间距等;

    • 分栏内容中若包含Markdown语法,部分编辑器可能无法识别,需用HTML标签(如

      )替代。

    2.5 脚注(补充说明)

    语法说明

    用于添加文档末尾的补充说明,不影响正文阅读;格式:正文内容[^脚注标识],文档末尾添加[^脚注标识]:脚注内容

    实操示例

    1
    2
    3
    4
    5
    // 文档正文的脚注标识
    这是需要补充说明的正文内容[^1],脚注会显示在文档末尾。

    // 文档末尾的脚注内容
    [^1]:这是脚注的具体说明,可用于补充引用来源、术语解释等。

    效果展示

    正文内容:这是需要补充说明的正文内容[^1],脚注会显示在文档末尾。
    脚注内容:正文内容[^1]:这是脚注的具体说明,可用于补充引用来源、术语解释等。

    注意事项

    • 脚注标识可以是数字、字母等,只要前后一致即可;

    • 脚注默认显示在文档末尾,点击正文的脚注标识可快速跳转;

    • 部分编辑器不支持脚注,会直接显示原始语法,需提前测试。

    2.6 HTML标签扩展(复杂美化)

    Markdown支持嵌入HTML标签,用于实现原生语法无法实现的复杂效果(如合并单元格、自定义样式等)。

    实操示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    // 1. 合并单元格表格(Markdown原生不支持,用HTML实现)
    <table border="1" cellpadding="5">
    <tr>
    <th colspan="2">合并两列的表头</th> // colspan:横向合并
    </tr>
    <tr>
    <td rowspan="2">合并两行的单元格</td> // rowspan:纵向合并
    <td>普通单元格1</td>
    </tr>
    <tr>
    <td>普通单元格2</td>
    </tr>
    </table>

    // 2. 自定义文本样式(颜色、大小)
    <span style="color: red; font-size: 16px;">红色、16号字体的文本</span>
    <div style="background-color: #f0f0f0; padding: 10px;">带灰色背景的文本块</div>

    效果展示

    // colspan:横向合并 // rowspan:纵向合并
    合并两列的表头
    合并两行的单元格普通单元格1
    普通单元格2
    红色、16号字体的文本
    带灰色背景的文本块

    注意事项

    • HTML标签需正确闭合,否则可能导致格式错乱;

    • 尽量少用HTML标签,避免破坏Markdown的简洁性;仅在原生语法无法实现时使用;

    • 不同编辑器对HTML标签的支持程度不同,需提前测试效果。