Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Last updated: Monday 07 September 2026 @ 20:44:27

mdbook-toc 操作手册

mdbook-toc 用于在章节内部生成页内目录。它扫描 marker 后面的标题,并生成对应锚点列表。

原仓库:https://github.com/badboy/mdbook-toc

本页目录

上面的目录就是本插件根据本页标题生成的。

基础用法

默认 marker:

<!-- toc -->

把它放在希望显示目录的位置即可。

样例

# 向量检索系统设计

<!-- toc -->

## 背景

正文……

## 索引结构

### 上层索引

正文……

### 下层索引

正文……

## 实验

正文……

构建后 marker 会被替换成指向这些标题的页内目录。

marker 的位置

插件只根据 marker 后方的标题生成目录,所以通常应放在 H1 之后、第一个 H2 之前。

# 文章标题

简介。

<!-- toc -->

## 第一部分
...

如果把 marker 放在文章中间,前面的标题不会进入 TOC。

标题层级

目录层次直接来自 Markdown heading:

## 一级目录项
### 二级目录项
#### 三级目录项

不要为了字号效果随意跳标题级别,否则 TOC 结构也会混乱。

最大标题级别

默认包含到 H4。可以修改:

[preprocessor.toc]
max-level = 3

这样目录最多包含到 ###。

如果只想显示主要部分:

max-level = 2

自定义 marker

例如改成 GitLab 风格:

[preprocessor.toc]
marker = "[[_TOC_]]"

正文中就使用:

[[_TOC_]]

多行 marker

支持多行字符串,例如:

[preprocessor.toc]
marker = """* auto-gen TOC;
{:toc}"""

也可以写成:

[preprocessor.toc]
marker = "* auto-gen TOC;\n{:toc}"

当前书库配置

[preprocessor.toc]
command = "mdbook-toc"
renderer = ["html"]

当前仅对 HTML renderer 运行。

什么时候使用

推荐用于长论文笔记、三级以上标题较多的技术文档、系统设计文档和操作手册。短页面通常不需要 TOC。

常见问题

某个标题没有进入目录

检查:

  1. 标题是否位于 marker 之前;
  2. 标题级别是否超过 max-level;
  3. 是否使用了真正的 Markdown heading。

目录层级很乱

通常是正文标题跳级造成的。先修正文档标题结构,而不是单独调整 TOC。