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 等等。