實用帖 | 如何為 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。

下載地址:code.visualstudio.com/d

安裝成功後,雙擊圖標打開,顯示如下:

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 -->n<!-- /TOC --> n

6. 保存,關閉文件。


2. Pandoc 命令

Pandoc 是由 John MacFarlane 開發的標記語言轉換工具,可實現不同標記語言間的格式轉換,堪稱該領域中的「瑞士軍刀」。Pandoc 使用 Haskell 語言編寫,以命令行形式實現與用戶的交互,可支持多種操作系統。

如何使用 pandoc 命令為 Markdown 文件自動生成目錄呢?仍以 FAQ.md 文件為例,具體操作步驟如下:

1. 下載和安裝 pandoc。

下載地址:github.com/jgm/pandoc/r

關於安裝,可參考:pandoc.org/installing.h

2. 打開終端,輸入 pandoc --version 確認 pandoc 已成功安裝。

此命令返回結果如下圖所示:

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

  • pwd:查看查看當前目錄路徑,「printing working directory」 的縮寫。
  • ls:查看目錄列表,「list segment」 的縮寫。
  • cd:轉到某目錄下,是 「change directory」 的縮寫。

具體使用舉例:

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

詳細的使用說明可參閱:pandoc.org/getting-star

4. 輸入以下命令,即可自動生成目錄。

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

:pandoc 默認生成三級目錄。以上述命令為例,如果使用如下命令則只會生成三級目錄:

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

而我想讓 FAQ.md 這篇文檔生成四級目錄,所以加了個參數 --toc-depth,並將其值設置為 4。大家可根據具體需求進行設置。

5. 打開 .md 文檔,查看目錄。

命令已成功為 FAQ.md 文件生成了目錄,顯示如下:

如果你想了解 pandoc 的更多功能和參數使用,可參考 pandoc 官網的文檔:pandoc.org/MANUAL.html

Afterword

以上兩種方法,我更常用的是 Visual Studio Code 中的 Markdown TOC 擴展,因為操作起來既方便又直觀。有需求的小夥伴趕快試一試吧!

你可能想讀

書單 | 有哪些技術傳播從業者必知必看的書籍?

有哪些適合技術傳播從業者關注的優質博客?

Markdown:寫技術文檔、個人博客和讀書筆記都很好用的輕量級標記語言

技術寫作實例解析 | 簡潔即是美

兩分鐘趣味解讀 Technical Writer

若脫離理解,直譯得再正確又有何意?

優質譯文不應止於正確,還要 Well-Organized

寫在入職技術型創業公司 PingCAP 一個月之後

-END-

推薦閱讀:

如何寫好CBA比賽現場報道?
「小悅悅事件」再現,6年前人們渴望的奇蹟並沒有出現

TAG:写作 | 科技写作 |