服务端相关 / 30 Markdown 生成目录

Markdown 生成目录

1. 前言

目录是文章内容的整体索引,是文章结构的最直观表现形式。

Markdown 为生成目录提供了快捷方式,大大降低了文章目录的编排复杂度。

环境说明
考虑到 Markdown 工具之间的不兼容,有的内容直接从页面复制粘贴到本地不会正常显示,大家学习时自己动手写是肯定没问题的。本节所有实例代码及演示效果均使用 Typora 工具完成。
「TOC」是 Markdown 扩展语法,Typora 默认已支持该扩展。

2. 语法详解

2.1 目录的自动生成

在 Markdown 中,自动生成目录非常简单,只需要在恰当的位置添加 [TOC] 符号,凡是以 # 定义的标题都会被编排到目录中。

实例 1

使用 [TOC] 生成文档目录导航。

[TOC]

# 一级标题

一些内容。。。。

## 二级标题

一些内容。。。。

### 三级标题

一些内容。。。。

渲染效果如下:

图片描述

其 Html 内容如下:

<div class="md-toc" mdtype="toc">
	<p class="md-toc-content" role="list">
    <span role="listitem" class="md-toc-item md-toc-h1" data-ref="n2">
      <a class="md-toc-inner" href="#一级标题">一级标题</a>
    </span>
    <span role="listitem" class="md-toc-item md-toc-h2" data-ref="n3">
      <a class="md-toc-inner" href="#二级标题">二级标题</a>
    </span>
    <span role="listitem" class="md-toc-item md-toc-h3" data-ref="n4">
      <a class="md-toc-inner" href="#三级标题">三级标题</a>
    </span>
  </p>
</div>

2.2 手动书写目录

尽管自动生成目录非常方便,我们也难免有自定义目录的需求,如只显示一二级大标题等。

手动添加目录的方法就是将「列表」和「页内超链接」相结合。

实例 2

用列表和链接做出目录效果。

- [一级标题](#一级标题)
  - [标题 1-1](#二级标题 1-1)
  - [标题 1-2](#二级标题 1-2)
- [二级标题](#二级标题)
  - [标题 2-1](#二级标题 2-1)
  - [标题 2-2](#二级标题 2-2)
- [一级标题](#一级标题)
  - [标题 1-1](#二级标题 1-1)
  - [标题 1-2](#二级标题 1-2)
- [二级标题](#二级标题)
  - [标题 2-1](#二级标题 2-1)
  - [标题 2-2](#二级标题 2-2)

# 一级标题
一些内容……
## 二级标题 1-1
一些内容……
## 二级标题 1-2
一些内容……
# 二级标题
一些内容……
## 二级标题 2-1
一些内容……
## 二级标题 2-2
一些内容……

其渲染效果如下:

图片描述

3. 使用场景

目录适用于有章节标题的文章,通常用于跳转,所以适合在网页或 PDF 文件中使用。

4. 小结

  • Markdown 支持自动使用 [toc] 标记生成目录;
  • 当自动生成的目录无法满足需求时,我们仍可通过「页内超链接」的形式定义目录;
  • 由于 Markdown 没有分页的概念,所以目录中无法自动页码。