Pandoc CLI 参考手册

版本:3.9.0.2 | 安装路径:/opt/homebrew/bin/pandoc

官方地址:https://pandoc.org/ | 安装命令:brew install pandoc

特性:Lua 脚本引擎 + Pandoc Server | 运行环境:macOS ARM64

Pandoc 是通用文档格式转换工具,被称为"文档界的瑞士军刀"。支持 Markdown、HTML、Word、PDF、EPUB、LaTeX、reveal.js 等 60+ 种格式互转,内置引用管理、代码高亮、数学公式渲染、Lua 过滤器等高级功能。

安装信息

版本信息

pandoc 3.9.0.2

Features: +server +lua

Scripting engine: Lua 5.4

User data directory: ~/.local/share/pandoc

安装方式

brew install pandoc

更新

brew upgrade pandoc


基础语法

pandoc [OPTIONS] [FILES]

最简用法

从标准输入读取

echo '# Hello' | pandoc

转换文件

pandoc input.md -o output.html

多文件合并

pandoc ch1.md ch2.md ch3.md -o book.html

常用选项速查

短选项长选项说明
-f--from输入格式
-t--to输出格式
-o--output输出文件
-s--standalone生成完整文档(含头部)
-M--metadata设置元数据
-V--variable设置模板变量
-N--number-sections章节编号
-C--citeproc启用引用处理
-h--help显示帮助
-v--version显示版本


输入格式

使用 -f--from 指定,默认自动检测。

格式标识说明
MarkdownmarkdownPandoc 扩展 Markdown(默认)
GitHub FlavoredgfmGitHub 风格 Markdown
CommonMarkcommonmark严格 CommonMark 规范
reStructuredTextrstreStructuredText
HTMLhtmlHTML 文档
LaTeXlatexLaTeX 文档
WorddocxWord 文档
EPUBepubEPUB 电子书
ODTodtOpenDocument 文本
Org ModeorgEmacs Org Mode
TextiletextileTextile 标记语言
AsciiDocasciidocAsciiDoc 文档
DocBookdocbookDocBook XML
MediaWikimediawikiMediaWiki 标记
JirajiraJira Wiki 标记
DokuWikidokuwikiDokuWiki 标记
JupyteripynbJupyter Notebook
CSVcsv逗号分隔值
TSVtsv制表符分隔值
JSONjsonPandoc JSON AST
BibTeXbibtex参考文献数据库
OPMLopml大纲处理标记语言
TypsttypstTypst 文档

附加扩展语法

使用 + 添加扩展,- 移除扩展:

使用 GFM 并启用数学公式

pandoc -f gfm+texmathdollars input.md -o output.html

严格 Markdown(移除所有扩展)

pandoc -f markdown_strict input.md -o output.html


输出格式

使用 -t--to 指定。

文档类

格式标识说明
HTMLhtml / html5HTML5 文档
HTML4html4HTML4 兼容
WorddocxWord (.docx)
PDFpdfPDF(需 LaTeX 引擎)
LaTeXlatexLaTeX 源码
EPUBepub / epub3EPUB 电子书
EPUB2epub2EPUB 2.0
ODTodtOpenDocument
RTFrtf富文本格式
Plainplain纯文本
ManmanUnix man 手册页
TypsttypstTypst 文档
ConTeXtcontextConTeXt 文档

标记语言类

格式标识说明
Markdownmarkdown / gfm / commonmark各种 Markdown 风格
reStructuredTextrstreStructuredText
AsciiDocasciidocAsciiDoc
MediaWikimediawikiMediaWiki
JirajiraJira Wiki
DokuWikidokuwikiDokuWiki
TextiletextileTextile
Org ModeorgOrg Mode
JATSjatsJournal Article Tag Suite
TEIteiText Encoding Initiative
DocBookdocbook / docbook5DocBook XML
XWikixwikiXWiki 标记
ZimWikizimwikiZim Wiki

演示文稿类

格式标识说明
reveal.jsrevealjsreveal.js 幻灯片
BeamerbeamerLaTeX Beamer 幻灯片
SlidyslidySlidy HTML 幻灯片
S5s5S5 幻灯片
DZSlidesdzslidesDZSlides 幻灯片
SlideousslideousSlideous 幻灯片

数据类

格式标识说明
JSONjsonPandoc JSON AST
CSVcsv逗号分隔值(表格)
TSVtsv制表符分隔值
PPTXpptxPowerPoint
XLSXxlsxExcel 电子书

查看所有格式

pandoc --list-input-formats

pandoc --list-output-formats


输入输出选项

基本选项

-f FORMAT, --from=FORMAT          # 输入格式

-t FORMAT, --to=FORMAT # 输出格式

-o FILE, --output=FILE # 输出文件(不指定则输出到 stdout)

--data-dir=DIRECTORY # 自定义数据目录(模板等)

--file-scope # 每个文件单独解析(不合并)

--sandbox # 沙箱模式(安全限制)

元数据

-M KEY[:VALUE], --metadata=KEY[:VALUE]     # 设置元数据

--metadata-file=FILE # 从文件读取元数据

-d FILE, --defaults=FILE # 从 YAML 文件读取默认选项

元数据优先级

--metadata-file > YAML front matter > --metadata

Defaults 文件示例 (defaults.yaml)

from: markdown

to: html5

standalone: true

toc: true

toc-depth: 3

metadata:

title: "文档标题"

author: "作者名"

date: "2025-01-01"

variables:

css: style.css

使用:

pandoc -d defaults.yaml input.md -o output.html


通用转换选项

独立文档

-s, --standalone              # 生成完整文档(含 DOCTYPE、head 等)

--template=FILE # 指定自定义模板

--embed-resources # 嵌入所有资源(图片、CSS 等为 base64)

--self-contained # 同 --embed-resources(旧名)

文本处理

--wrap=auto|none|preserve     # 自动换行 / 不换行 / 保持原文换行

--ascii # 只使用 ASCII 字符

--columns=NUMBER # 文本列宽(默认 72)

--tab-stop=NUMBER # Tab 宽度(默认 4)

-p, --preserve-tabs # 保留 Tab 字符

--eol=crlf|lf|native # 行尾符格式

文件嵌入

-H FILE, --include-in-header=FILE       # 在文档 head 中包含文件

-B FILE, --include-before-body=FILE # 在 body 开始处包含文件

-A FILE, --include-after-body=FILE # 在 body 结尾处包含文件


模板与变量

变量设置

-V KEY[:VALUE], --variable=KEY[:VALUE]       # 设置模板变量

--variable-json=KEY:JSON # 设置 JSON 格式变量

常用变量

变量说明示例
title文档标题-V title="My Doc"
author作者-V author="达尔文"
date日期-V date="2025-01-01"
lang语言-V lang=zh-CN
mainfont主字体 (LaTeX)-V mainfont="Noto Sans"
monofont等宽字体 (LaTeX)-V monofont="Noto Sans Mono"
fontsize字号 (LaTeX)-V fontsize=12pt
geometry页面边距 (LaTeX)-V geometry:margin=1in
documentclass文档类 (LaTeX)-V documentclass=article
colorlinks彩色链接 (LaTeX)-V colorlinks=true
toc-title目录标题-V toc-title="目录"
header-includes额外头部内容-V header-includes='