在前端开发中,我们常常需要编写复杂的文档或者使用 Markdown 格式来写博客等。在撰写这些文档的过程中,为了方便读者阅读,我们通常需要添加目录。如果手动添加目录,就会显得十分繁琐且容易出错。幸好,有一个名为 template-toc
的 npm 包可以很好地解决这个问题。
什么是 template-toc
template-toc
是一个能够为你的 Markdown 文档自动生成目录并插入到指定位置的 npm 包。它支持多种标记语言和不同风格(可定制)的目录生成。此外,它还可以按层级缩进、支持锚点链接等特性,从而使得生成的目录更加美观和易于阅读。
安装
使用 npm
命令进行安装:
npm install -g template-toc
使用说明
命令行接口
假设你有一个名为 example.md
的 Markdown 文件。如果你想在文件头部生成默认风格的目录,只需执行以下命令:
template-toc example.md -o
上述命令中,-o
选项表示覆盖原始文件,即将生成的目录更新到原始文件中。
如果你想使用其他的风格,可以通过设置 -s
选项来指定。
template-toc example.md -o -s github
上述命令中,-s
选项指定了生成目录所使用的风格为 github
。可选风格包括 default
, bullets
, compact
, github
, gitlab
, none
等。
如果你想将目录插入到文件的其他位置,可以先在文档中插入一个类似于 <!-- toc -->
的占位符,然后执行以下命令:
template-toc example.md -o --insert "<!-- toc -->"
上述命令中,--insert
选项指定了要插入目录的占位符。这个占位符可以是任何文本字符串。
JavaScript API
在 JavaScript 文件中使用 template-toc
也非常方便。你只需要下载并安装该 npm 包,然后在代码中引入它即可。
const fs = require('fs'); const templateToc = require('template-toc'); const markdown = fs.readFileSync('./example.md', 'utf-8'); const toc = templateToc(markdown, { style: 'github' }); fs.writeFileSync('./example.md', `${toc}\n${markdown}`);
上述代码中,我们首先使用 fs.readFileSync
方法读取 Markdown 文件内容,并传递给 template-toc
函数进行转换。转换结果会返回一个目录字符串,我们可以用 fs.writeFileSync
方法将其和原始 Markdown 文件内容写入文件中。
示例代码
生成默认风格目录
template-toc example.md -o
生成的目录如下:
-- -------------------- ---- ------- ---- --- --- - --------------------------------------------- - --------------------------------------------- - ----------------------------------------------- - --------------------------------------------- - -------------------- - ----------------------------------------------------------- -------- ----------------------------------------------------------------------------------