cover_image

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

Lilian Lee 技术传播那些事儿
2017年10月28日 12:00

图片

图片

图片

😋 温馨提醒:点击正文配图可放大查看清晰大图。


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 的图标感兴趣,可以参考这篇文章:

https://code.visualstudio.com/blogs/2017/10/24/theicon


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


图片

VS Code 支持的扩展


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


1. 下载和安装 Visual Studio Code。


下载地址:

https://code.visualstudio.com/download


图片


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


图片


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


图片


此扩展长这样:


图片


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


图片


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 的更多功能和参数使用,可参考官网的文档:https://pandoc.org/MANUAL.html


Afterword


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



图片


你可能想读

技术写作实例解析 | 简洁即是美

两分钟趣味解读 Technical Writer

若脱离理解,直译得再正确又有何意

技术写作实例解析 | 清晰为上,朦胧非美

超适合写作的轻量级标记语言 Markdown

写在入职创业公司 PingCAP 一个月之后

有哪些适合技术传播从业者关注的优质博客

书单 | 有哪些技术传播从业者必知必看的书籍


技术传播那些事儿

知乎专栏:https://zhuanlan.zhihu.com/tc-fun

简书专题:http://www.jianshu.com/c/c61708ae5bd1


点击左下角的“阅读原文

可直达我的简书博客阅读更多哦



- END -


图片



图片

Lilian Lee

技术传播 | 技术写作

快来我们一起玩耍呀

Enjoy the Fun of TC

图片

技术传播那些事儿



图片

效率与工具 · 目录
上一篇Markdown:写技术文档、个人博客和读书笔记都很好用的轻量级标记语言下一篇如何使用正则表达式批量添加和删除字符?
继续滑动看下一个
技术传播那些事儿
向上滑动看下一个