Pandoc:一個(gè)超級(jí)強(qiáng)大的文檔格式轉(zhuǎn)換工具

作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學(xué),十多年數(shù)據(jù)庫(kù)管理與開發(fā)經(jīng)驗(yàn),目前在一家全球性的金融公司從事數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)。CSDN學(xué)院簽約講師以及GitChat專欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net


文章目錄

    Pandoc 簡(jiǎn)介
    下載安裝
        Windows
        macOS
        Linux
    初步使用
    Pandoc 集成
    相關(guān)資源
    總結(jié)

大家好,我是只談技術(shù)不剪發(fā)的 Tony 老師。最近發(fā)現(xiàn)了一款免費(fèi)的文檔格式轉(zhuǎn)換工具:Pandoc,堪稱該領(lǐng)域的神器,介紹給大家。
Pandoc 簡(jiǎn)介

Pandoc 是一個(gè)由 John MacFarlane 開發(fā)的通用文檔轉(zhuǎn)換工具,可以支持大量標(biāo)記語(yǔ)言之間的格式轉(zhuǎn)換,例如 Markdown 、Microsoft Word、PowerPoint、 Jupyter Notebook、HTML、PDF、LaTeX、Wiki、EPUB 格式之間的相互轉(zhuǎn)換。官方稱之為該領(lǐng)域中的“瑞士軍刀”,并且給出了一個(gè)格式轉(zhuǎn)換的示意圖。

在這里插入圖片描述

可以看出,Pandoc 支持非常多的格式;關(guān)鍵它還是一個(gè)開源免費(fèi)的工具,源代碼放在了 GitHub 上,使用 Haskell 編程語(yǔ)言實(shí)現(xiàn)。具體來(lái)說,Pandoc 支持以下格式之間的轉(zhuǎn)換(← 表示可以從該格式轉(zhuǎn)換為其他格式; → 表示可以轉(zhuǎn)換為該格式;?? 表示支持該格式的雙向轉(zhuǎn)換):

輕量級(jí)標(biāo)記格式
    ?? Markdown(包括 CommonMark 和GitHub-flavored Markdown)
    ?? reStructuredText
    → AsciiDoc
    ?? Emacs Org-Mode
    ?? Emacs Muse
    ?? Textile
    ← txt2tags
HTML 格式
    ?? (X)HTML 4
    ?? HTML5
Ebooks
    ?? EPUB 版本 2 或者版本 3
    ?? FictionBook2
文檔格式
    → GNU TexInfo
    ?? Haddock markup
Roff 格式
    ?? roff man
    → roff ms
TeX 格式
    ?? LaTeX
    → ConTeXt
XML 格式
    ?? DocBook 版本 4 或者版本 5
    ?? JATS
    → TEI Simple
大綱格式
    ?? OPML
數(shù)據(jù)格式
    ← CSV 表格
文字處理格式
    ?? Microsoft Word docx
    ?? OpenOffice/LibreOffice ODT
    → OpenDocument XML
    → Microsoft PowerPoint
交互式筆記格式
    ?? Jupyter notebook (ipynb)
頁(yè)面布局格式
    → InDesign ICML
Wiki 標(biāo)記語(yǔ)言格式
    ?? MediaWiki 標(biāo)記語(yǔ)
    ?? DokuWiki 標(biāo)記語(yǔ)
    ← TikiWiki 標(biāo)記語(yǔ)
    ← TWiki 標(biāo)記語(yǔ)
    ← Vimwiki 標(biāo)記語(yǔ)
    → XWiki 標(biāo)記語(yǔ)
    → ZimWiki 標(biāo)記語(yǔ)
    ?? Jira wiki 標(biāo)記語(yǔ)
幻燈片放映格式
    → LaTeX Beamer
    → Slidy
    → reveal.js
    → Slideous
    → S5
    → DZSlides
自定義格式
    → 支持使用 lua 編寫自定義轉(zhuǎn)換器
PDF
    → 通過 pdflatex、lualatex、xelatex、latexmk、tectonic、wkhtmltopdf、weasyprint、prince、context、pdfroff 插件或者工具轉(zhuǎn)為為 PDF

下載安裝

Pandoc 提供了一個(gè) Haskell 代碼庫(kù)和命令行程序,支持 Windows、macOS、Linux、Chrome OS、BSD、Docker、GitHub Actions 以及源碼編譯等方式。最簡(jiǎn)單的安裝方式就是點(diǎn)擊下載編譯好的安裝文件。
Windows

Pandoc 為 Windows 系統(tǒng)提供了編譯后的 msi 安裝包,可以直接運(yùn)行安裝;或者直接下載免安裝的 zip 文件解壓即可。還有一種安裝方法就是使用 Chocolatey 進(jìn)行安裝:

choco install pandoc

macOS

Pandoc 為 macOS系統(tǒng)提供了編譯后的 pkg 安裝包,可以直接運(yùn)行安裝;或者直接下載免安裝的 zip 文件解壓即可。還有一種安裝方法就是使用 Homebrew 進(jìn)行安裝:

brew install pandoc

Linux

對(duì)于 Debian、Ubuntu、Slackware、Arch、Fedora、NiXOS、openSUSE、gentoo 等主流 Linux 發(fā)行版,Pandoc 可以直接使用系統(tǒng)包管理器進(jìn)行安裝。同時(shí) Pandoc 為 amd64 架構(gòu)提供了二進(jìn)制安裝包。

其他操作系統(tǒng)和安裝方式可以參考官方文檔。
初步使用

下面我們介紹一下 Pandoc 命令行工具的簡(jiǎn)單使用。首先進(jìn)入安裝目錄,運(yùn)行 pandoc 或者 pandoc.exe:

d:\Software\pandoc-2.10.1>pandoc.exe --version
pandoc.exe 2.10.1
Compiled with pandoc-types 1.21, texmath 0.12.0.2, skylighting 0.8.5
Default user data directory: C:\Users\dongx\AppData\Roaming\pandoc
Copyright ? 2006-2020 John MacFarlane
Web: https://pandoc.org
This is free software; see the source for copying conditions.
There is no warranty, not even for merchantability or fitness
for a particular purpose.

以上命令返回了 Pandoc 的版本信息。

接下來(lái)我們測(cè)試一下文件格式轉(zhuǎn)換,在當(dāng)前目錄中創(chuàng)建一個(gè)文本文件 test.md,輸入以下內(nèi)容:


title: Test

Test!

This is a test of pandoc.

  • list one

  • list two

然后在命令行輸入以下命令:

pandoc.exe test.md -f markdown -t html -s -o test.html

文件名 test.md 是要轉(zhuǎn)換的源文件;-f 設(shè)置輸入文件的格式;-t 設(shè)置輸出文件的格式;-s 表示創(chuàng)建一個(gè)“獨(dú)立”文件,將會(huì)生成文件
頁(yè)眉和頁(yè)腳。默認(rèn)的轉(zhuǎn)換格式為 markdown 到 HTML,所以上面的命令也可以省略這兩個(gè)選項(xiàng)。

執(zhí)行之后在當(dāng)前目錄中生成了一個(gè) test.html,內(nèi)容如下:

Test

Test!

This is a test of pandoc.

  • list one
  • list two

如果想要將該文件轉(zhuǎn)換為 LaTeX 格式,可以輸入以下命令:

pandoc.exe test.md -f markdown -t latex -s -o test.tex

Pandoc 可以根據(jù)文件名擴(kuò)展猜測(cè)出輸入和輸出文件的格式,例如以下命令可以將文件轉(zhuǎn)換為 Word 文檔格式:

pandoc.exe test.md -s -o test.docx

如果已經(jīng)安裝了 LaTeX,可以使用以下命令轉(zhuǎn)換為 PDF 文件:

pandoc.exe test.md -f markdown -s -o test.pdf

輸入 pandoc --help 命令可以查看工具的選項(xiàng)幫助,詳細(xì)的使用介紹可以查看用戶手冊(cè)。

另外,Pandoc 還提供了一個(gè)在線格式轉(zhuǎn)換工具以及各種格式轉(zhuǎn)換示例。
Pandoc 集成

除了使用命令行方式之外,很多開發(fā)工具和軟件都集成了 Pandoc,從而實(shí)現(xiàn)文件格式的轉(zhuǎn)換。例如 Markdown 編輯器 PanWriter、Typora,文本編輯器 Atom、Sublime Text、Emacs、Vim,R Markdown,PanConvert、Manubot 等等。