Pandoc:一個超級強大的文檔格式轉換工具
作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學,十多年數(shù)據(jù)庫管理與開發(fā)經(jīng)驗,目前在一家全球性的金融公司從事數(shù)據(jù)庫架構設計。CSDN學院簽約講師以及GitChat專欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net
文章目錄
Pandoc 簡介
下載安裝
Windows
macOS
Linux
初步使用
Pandoc 集成
相關資源
總結
大家好,我是只談技術不剪發(fā)的 Tony 老師。最近發(fā)現(xiàn)了一款免費的文檔格式轉換工具:Pandoc,堪稱該領域的神器,介紹給大家。
Pandoc 簡介
Pandoc 是一個由 John MacFarlane 開發(fā)的通用文檔轉換工具,可以支持大量標記語言之間的格式轉換,例如 Markdown 、Microsoft Word、PowerPoint、 Jupyter Notebook、HTML、PDF、LaTeX、Wiki、EPUB 格式之間的相互轉換。官方稱之為該領域中的“瑞士軍刀”,并且給出了一個格式轉換的示意圖。
可以看出,Pandoc 支持非常多的格式;關鍵它還是一個開源免費的工具,源代碼放在了 GitHub 上,使用 Haskell 編程語言實現(xiàn)。具體來說,Pandoc 支持以下格式之間的轉換(← 表示可以從該格式轉換為其他格式; → 表示可以轉換為該格式;?? 表示支持該格式的雙向轉換):
輕量級標記格式
?? 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)
頁面布局格式
→ InDesign ICML
Wiki 標記語言格式
?? MediaWiki 標記語
?? DokuWiki 標記語
← TikiWiki 標記語
← TWiki 標記語
← Vimwiki 標記語
→ XWiki 標記語
→ ZimWiki 標記語
?? Jira wiki 標記語
幻燈片放映格式
→ LaTeX Beamer
→ Slidy
→ reveal.js
→ Slideous
→ S5
→ DZSlides
自定義格式
→ 支持使用 lua 編寫自定義轉換器
PDF
→ 通過 pdflatex、lualatex、xelatex、latexmk、tectonic、wkhtmltopdf、weasyprint、prince、context、pdfroff 插件或者工具轉為為 PDF
下載安裝
Pandoc 提供了一個 Haskell 代碼庫和命令行程序,支持 Windows、macOS、Linux、Chrome OS、BSD、Docker、GitHub Actions 以及源碼編譯等方式。最簡單的安裝方式就是點擊下載編譯好的安裝文件。
Windows
Pandoc 為 Windows 系統(tǒng)提供了編譯后的 msi 安裝包,可以直接運行安裝;或者直接下載免安裝的 zip 文件解壓即可。還有一種安裝方法就是使用 Chocolatey 進行安裝:
choco install pandoc
macOS
Pandoc 為 macOS系統(tǒng)提供了編譯后的 pkg 安裝包,可以直接運行安裝;或者直接下載免安裝的 zip 文件解壓即可。還有一種安裝方法就是使用 Homebrew 進行安裝:
brew install pandoc
Linux
對于 Debian、Ubuntu、Slackware、Arch、Fedora、NiXOS、openSUSE、gentoo 等主流 Linux 發(fā)行版,Pandoc 可以直接使用系統(tǒng)包管理器進行安裝。同時 Pandoc 為 amd64 架構提供了二進制安裝包。
其他操作系統(tǒng)和安裝方式可以參考官方文檔。
初步使用
下面我們介紹一下 Pandoc 命令行工具的簡單使用。首先進入安裝目錄,運行 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 (C) 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 的版本信息。
接下來我們測試一下文件格式轉換,在當前目錄中創(chuàng)建一個文本文件 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 是要轉換的源文件;-f 設置輸入文件的格式;-t 設置輸出文件的格式;-s 表示創(chuàng)建一個“獨立”文件,將會生成文件
頁眉和頁腳。默認的轉換格式為 markdown 到 HTML,所以上面的命令也可以省略這兩個選項。
執(zhí)行之后在當前目錄中生成了一個 test.html,內(nèi)容如下:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Test</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
<!--[if lt IE 9]>
<script src="http://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<header id="title-block-header">
<h1 class="title">Test</h1>
</header>
<h1 id="test">Test!</h1>
<p>This is a test of <em>pandoc</em>.</p>
<ul>
<li>list one</li>
<li>list two</li>
</ul>
</body>
</html>
如果想要將該文件轉換為 LaTeX 格式,可以輸入以下命令:
pandoc.exe test.md -f markdown -t latex -s -o test.tex
Pandoc 可以根據(jù)文件名擴展猜測出輸入和輸出文件的格式,例如以下命令可以將文件轉換為 Word 文檔格式:
pandoc.exe test.md -s -o test.docx
如果已經(jīng)安裝了 LaTeX,可以使用以下命令轉換為 PDF 文件:
pandoc.exe test.md -f markdown -s -o test.pdf
輸入 pandoc --help 命令可以查看工具的選項幫助,詳細的使用介紹可以查看用戶手冊。
另外,Pandoc 還提供了一個在線格式轉換工具以及各種格式轉換示例。
Pandoc 集成
除了使用命令行方式之外,很多開發(fā)工具和軟件都集成了 Pandoc,從而實現(xiàn)文件格式的轉換。例如 Markdown 編輯器 PanWriter、Typora,文本編輯器 Atom、Sublime Text、Emacs、Vim,R Markdown,PanConvert、Manubot 等等。
更多集成了 Pandoc 的第三方軟件列表可以點此查看。
相關資源
Pandoc 官方網(wǎng)站;
Pandoc GitHub 源碼;
Pandoc WIKI;
Pandoc 用戶手冊;
總結
Pandoc 是一個免費開源的格式轉換工具,可以用于各種標記格式文檔之間的轉換。Pandoc 被廣泛用于書寫工作和電子書籍出版流程。
如果覺得文章對你有用,歡迎關注??、評論??、點贊??!