实用帖 | 如何为 Markdown 文件自动生成目录?

Foreword

Markdown:写技术文档、个人博客和读书笔记都很好用的轻量级标记语言这篇文章中,给大家介绍了 Markdown 及其创始人的故事、Markdown 基本语法、常见的 Markdown 编辑器(Mac/Windows 平台和在线编辑器)。

新接触 Markdown 的小伙伴建议先戳那篇文章去补充点能量,已熟悉 Markdown 的小伙伴可以速往下看。

在使用 Markdown 写文档时,有时需要给单个文档生成目录,比如包含多个问题的 FAQ (Frequently Asked Questions) 文档。

那么,如何为 Markdown 文件(即 .md 格式的文件)自动生成目录呢?下面给大家介绍两种方法:

  • Visual Studio Code + Markdown TOC 扩展
  • Pandoc 命令

1. Visual Studio Code + TOC 扩展

Visual Studio Code (VS Code) 是一个由微软开发的,同时支持 Windows、Linux 和 macOS 操作系统的开源文本编辑器。它支持调试,内置了 Git 版本控制功能,同时也具有开发环境功能,例如代码补全、代码片段、代码重构等。

如果你对 VS Code 的图标感兴趣,可以参考这篇文章:The Icon Journey

VS Code 编辑器支持用户自定义配置,例如改变主题颜色、键盘快捷方式、编辑器属性和其他参数。另外,还支持扩展程序,并在编辑器中内置了扩展程序管理的功能。

VS Code 支持的扩展

到底如何使用 VS Code + TOC 扩展为 Markdown 文件自动生成目录呢?具体操作步骤如下:

1. 下载和安装 Visual Studio Code。

下载地址:https://code.visualstudio.com/download

安装成功后,双击图标打开,显示如下:

2. 单击 VS Code 的扩展图标,在搜索框搜索 Markdown TOC 并安装。

VS Code-extension-icon

此扩展长这样:

安装成功后,点击左侧扩展图标,可查看已安装的扩展。如下图所示:

3. 点击菜单栏的文件 -> 打开,打开需要生成目录的 .md 格式的文件。

以如下 FAQ.md 文件为例:

在 MacDown 中的显示

FAQ.md 在 VS Code 中打开后显示如下:

4. 将光标移至需要插入目录的位置,右键单击 Markdown TOC: Insert/Update [^M T],目录即自动插入。

显示效果如下:

5. 单击右上角的预览图标,可查看目录的显示效果。

预览图标

显示效果如下:

:为保持文档整洁,删除目录首尾的如下字符:

<!-- TOC -->
<!-- /TOC -->

6. 保存,关闭文件。

2. Pandoc 命令

Pandoc 是由 John MacFarlane 开发的标记语言转换工具,可实现不同标记语言间的格式转换,堪称该领域中的“瑞士军刀”。Pandoc 使用 Haskell 语言编写,以命令行形式实现与用户的交互,可支持多种操作系统。

如何使用 pandoc 命令为 Markdown 文件自动生成目录呢?仍以 FAQ.md 文件为例,具体操作步骤如下:

1. 下载和安装 pandoc。

下载地址:https://github.com/jgm/pandoc/releases

关于安装,可参考:https://pandoc.org/installing.html

2. 打开终端,输入 pandoc --version 确认 pandoc 已成功安装。

此命令返回结果如下图所示:

3. 依次使用以下命令,转到 FAQ.md 文件所在的目录。

  • pwd:查看查看当前目录路径,“printing working directory” 的缩写。
  • ls:查看目录列表,“list segment” 的缩写。
  • cd:转到某目录下,是 “change directory” 的缩写。

具体使用举例:

或者,如果你清楚地知道文档所在目录,可以使用如下简化的操作:

详细的使用说明可参阅:https://pandoc.org/getting-started.html#step-3-changing-directories

4. 输入以下命令,即可自动生成目录。

pandoc -s --toc --toc-depth=4 FAQ.md -o FAQ.md

:pandoc 默认生成三级目录。以上述命令为例,如果使用如下命令则只会生成三级目录:

pandoc -s --toc FAQ.md -o FAQ.md

而我想让 FAQ.md 这篇文档生成四级目录,所以加了个参数 --toc-depth,并将其值设置为 4。大家可根据具体需求进行设置。

5. 打开 .md 文档,查看目录。

命令已成功为 FAQ.md 文件生成了目录,显示如下:

如果你想了解 pandoc 的更多功能和参数使用,可参考 pandoc 官网的文档:https://pandoc.org/MANUAL.html

Afterword

以上两种方法,我更常用的是 Visual Studio Code 中的 Markdown TOC 扩展,因为操作起来既方便又直观。有需求的小伙伴赶快试一试吧!

你可能想读
书单 | 有哪些技术传播从业者必知必看的书籍?
有哪些适合技术传播从业者关注的优质博客?
Markdown:写技术文档、个人博客和读书笔记都很好用的轻量级标记语言
技术写作实例解析 | 简洁即是美
两分钟趣味解读 Technical Writer
若脱离理解,直译得再正确又有何意?
优质译文不应止于正确,还要 Well-Organized
写在入职技术型创业公司 PingCAP 一个月之后

-END-

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容