MarkDown 语法是当下非常流行的文本标记语言,它语法简便排版优美。目前很多博客都已经支持MarkDown语法编辑博客,比如我的这个博客就是全部用的markdown语法写的教程。著名的分布式系统社群 GitHub 也用MarkDown语法写README文件,当然准确而言,应该是GitHub Flavored Markdown(GFM)语法,该语法虽然是 GitHub在 Markdown语法基础 上扩充而来的,但一般情况下只要按照原本的Markdown语法进行描述就可以。
最近在GitHub上写了一些东西,写README文件需要用到toc,所以就特地来记录一下。因为坑真的好多,README文件我写了一天才搞明白toc的用法细节。
TOC:自动生成目录,其实就是设置锚点。你写的文件很大,你不可能一下子就可以看得完。所以就需要设置一个目录,来进行查询。点击该目录,即可索引到该部分内容上去。这个其实也即是锚点,百度百科上的分类就是一个个锚点。
而markdown语法的锚点设置是非常严格的。
语法:
1
2 * [标题](#锚点)
# 标题
- 与 []之间是有空格的。我发现在GitHub上只需一个空格,而在CSDN和本博客使用的hexo中需要2个空格。锚点中不能出现除-之外的任何字符,不能出现大写字母,可以出现汉字。也就是说锚点中只能出现小写字母、汉字、-这些字符。其余的全部是非法字符。这些很好理解,这种写法也是符合URL规范的。而且链接和锚点中的字母汉字必须保持一致,不能漏写,错写。空格用-代替若是链接中出现()?等特殊字符,直接省略不写即可。但是字母(数字汉字英文)必须写出来。
例:1
* [46 Python和多线程(multi-threading)。这是个好主意吗?列举一些让Python代码以并行方式运行的方法。](#46-python和多线程multi-threading这是个好主意吗列举一些让python代码以并行方式运行的方法)
本例中,可以看到出现了大写字母,汉字和特殊字符,但是均做了处理。
如果你设置分级锚点,需要在分级锚点处空至少2格出来。
例:1
2
3
4
5
6
7* [目录 1](#目录-1)
* [目录 2](#目录-2)
* [目录 3](#目录-3)
...此处省略1000字...
## 目录1
### 目录2
#### 目录3
示例:
演示效果:
本文作者:冰羽
本文地址: https://bingyublog.com/2018/08/06/Markdown的toc语法/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!