Markdown 语法

Markdown 目录怎么生成?
它没有原生语法

Markdown 没有原生的目录语法。没有哪个标记一放就能得到一份目录。你有的是三条路:手写一份链接列表当目录,让 GitHub 这类平台按你的标题自动生成,或者干脆不写目录,用大纲面板在文件里导航。下面逐条讲,以及各自什么时候用。

三条路一览

路子 是什么 在哪能用
手写 你自己敲一份锚点链接列表 哪都能用,包括纯 GitHub、GitLab
让平台生成 GitHub 自动显示;部分编辑器认 [TOC] 标记 只在那个平台,换地方就没了
用大纲面板 应用在笔记旁列出的实时标题清单 用来导航,不是把目录写进文件

手写(最可移植的办法)

Markdown 目录其实就是个项目符号列表,每一项是指向某个标题的锚点链接。写一次,跟着文件走:

## 目录

- [快速上手](#快速上手)
- [配置](#配置)
- [常见问题](#常见问题)

## 快速上手
...

唯一容易栽的地方是锚点本身。链接目标不是标题原文,是它转成的 slug:

  • 全部小写。
  • 空格换成连字符。
  • 去掉标点,所以 ## My Setup! 变成 #my-setup

转错了,点链接就没反应。链接看着没问题却不跳,几乎都是 slug 的锅。这又是一例 Markdown 看着坏了其实只是条小规则

让平台替你生成

有些工具会生成目录,省得你自己写:

  • GitHub 在任何有两个以上标题.md 渲染时,在头部显示一个可交互目录。你什么都不写,它读你的标题。
  • 部分编辑器(StackEdit,以及 Python-Markdown 扩展)会把 [TOC] 标记变成一份生成的列表。

问题在可移植性。[TOC] 不是标准 Markdown,在纯渲染器里就原样显示成一串 [TOC] 文字。GitHub 的头部目录也是在 GitHub 上,不在你文件里。它们好用的地方好用,文件一挪走就没了。

或者不做目录,用大纲

很多时候你并不是真想把目录写进文件,你想的是在一份长文档里走动,这是另一个问题。AI 甩给你一份 读不动的 plan.md 时,正是它咬人。

大纲面板不用做目录就解决它。NoteLoom 在右栏显示一个:列出当前笔记里每个标题,边编辑边实时更新,高亮你滚动到的那一节,点一下就跳过去。于是你按结构导航一份长文件,不用写,也不用维护。

两者之间诚实的界线:大纲是用来读和导航的,它不会把目录写进你的 .md。要一份存在文件里(给 GitHub 或交接用)的目录,还是得用上面手写的锚点链接列表。

常见问题

Markdown 有目录语法吗?
没有。CommonMark 和 GFM 规范里都没有原生 TOC。你要么手写一份锚点链接列表,要么靠某个平台的功能替你生成。
怎么链接到同一个文件里的标题?
用锚点链接:[章节名](#章节名)。锚点是标题文字转成的 slug:全小写、空格换成连字符、去掉标点。英文标题 ## My Setup! 会变成 #my-setup;中文标题的锚点通常就是标题本身去掉空格和标点。
为什么我的 [TOC] 显示成一串字?
因为 [TOC] 不是标准 Markdown。少数编辑器(比如 StackEdit)和 Python-Markdown 扩展会把它变成目录,但多数渲染器原样显示 [TOC]。它是平台功能,不是语法。
GitHub 会自动生成目录吗?
会。渲染一个有两个以上标题的 .md 时,GitHub 在文件头部显示一个可交互目录。你什么都不用写,它读你的标题。但那个目录在 GitHub 上,不在你的文件里。
不做目录,只想在长 Markdown 文件里跳转怎么办?
用带大纲面板的 Markdown 应用。它列出笔记里每个标题,点一下就跳到那一节,不用写也不用维护目录就能在长文件里走动。NoteLoom 的大纲面板在右栏。
手写的目录换个地方还能用吗?
能,只要渲染器支持标题锚点,大多数都支持。锚点链接就是存在文件里的普通 Markdown 文字,跟着文件走。这正是手写法比只在某平台生效的目录强的地方。

按标题在长 .md 里跳转

用 Chrome / Edge / Arc 打开 NoteLoom,挂上文件夹,打开一份长 .md:大纲面板列出每个标题,让你在里面跳来跳去,不用写目录。本地文件进,本地文件出,什么都不上传。

打开 NoteLoom 试试