标题

标题是文档的骨架:它决定内容如何被分块、自动目录如何生成、读者能否在长文里快速定位。Markdown 的标题语法只有两种写法,却有几个容易被忽略的细节——比如井号后面必须跟一个空格,比如标题下面紧跟一行 --- 会被理解成另一种标题写法。这一页把标题的写法、层级规则和常见事故讲清楚。

语法

# 一级标题
## 二级标题
### 三级标题

这一行行井号就是所谓的 ATX 风格。井号的数量决定级别,从 # 到 ###### 一共六级,再多就只是普通文字了。解析之后的结果是:

<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>

标题里可以放行内格式,比如代码和强调:

## 这是一个 `代码` 标题
<h2>这是一个 <code>代码</code> 标题</h2>

但标题只能包含行内内容。一旦遇到列表、代码块这类块级语法,标题就到此为止,后面的内容会另起一块:

## 配置说明

- 数据库地址
- 超时时间
<h2>配置说明</h2>
<ul>
<li>数据库地址</li>
<li>超时时间</li>
</ul>

另一种写法:Setext

Setext 风格把文字放在上面一行,下一行用等号或横线表示级别:=== 是一级标题,--- 是二级标题。

安装指南
========

前置条件
--------
<h1>安装指南</h1>
<h2>前置条件</h2>

Setext 更接近手写文档的习惯,但 --- 本身有歧义(它同时也是分割线的写法),所以日常写作更推荐 ATX 风格。

建议

  • 从一级开始,按层级递进,不要直接跳到四/五级。
  • 同层级语义一致,便于生成目录与搜索。

这两条不是格式洁癖,而是有实际代价的。自动目录直接来自标题层级,跳级会让读者在侧边栏里看到一棵歪掉的树;把含义完全不同的内容塞进同一层标题,会让搜索结果和锚点链接一起失去区分度。一个页面通常只应有一个一级标题,它回答「这篇文档在讲什么」,其余标题都是它的下属。

常见坑

写法实际渲染原因
#标题(井号后没有空格)普通段落ATX 要求井号后有空格
####### 七个井号普通段落只支持一级到六级
标题文字下面紧跟 ---二级标题Setext 下划线写法优先
标题后面直接跟列表列表成为独立的一块标题只包含行内内容

练习

给一篇「部署指南」安排标题层级:文档名是「部署指南」,下面有「前置条件」「安装依赖」「启动服务」三个小节。

ATX 标题

解题思路: 标题层级要体现文档的从属关系,而不是按顺序编号。文档本身是顶级,用一级标题;三个小节是文档的下级,用二级标题;小节内部再分的内容才用三级标题。同一层级的标题之间不要越级使用。

详细步骤:

  1. 文档名「部署指南」是整篇文档的标题,用 #。
  2. 「前置条件」「安装依赖」「启动服务」三节是文档下的并列小节,用 ##。
  3. 若某个小节下还有更细的步骤(如具体的安装命令),才在这一层用 ###。
  4. 检验:从 # 到 ## 是逐级下降,读者看目录时能一眼看出从属关系。

最终答案:

# 部署指南

## 前置条件

## 安装依赖

## 启动服务

小结

读完这一页,你应当能写出规范的一到六级标题,能判断什么时候该用 ATX、什么时候可以用 Setext,也能在看到「标题没有渲染出来」时立刻想到井号后少了一个空格这类原因。接下来给长文搭骨架时,你可以先列出标题再填内容,让结构在动手写之前就稳定下来。

发现内容有问题?

告诉我们哪里需要改进。