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 指定,默认自动检测。
| 格式 | 标识 | 说明 |
|---|---|---|
| Markdown | markdown | Pandoc 扩展 Markdown(默认) |
| GitHub Flavored | gfm | GitHub 风格 Markdown |
| CommonMark | commonmark | 严格 CommonMark 规范 |
| reStructuredText | rst | reStructuredText |
| HTML | html | HTML 文档 |
| LaTeX | latex | LaTeX 文档 |
| Word | docx | Word 文档 |
| EPUB | epub | EPUB 电子书 |
| ODT | odt | OpenDocument 文本 |
| Org Mode | org | Emacs Org Mode |
| Textile | textile | Textile 标记语言 |
| AsciiDoc | asciidoc | AsciiDoc 文档 |
| DocBook | docbook | DocBook XML |
| MediaWiki | mediawiki | MediaWiki 标记 |
| Jira | jira | Jira Wiki 标记 |
| DokuWiki | dokuwiki | DokuWiki 标记 |
| Jupyter | ipynb | Jupyter Notebook |
| CSV | csv | 逗号分隔值 |
| TSV | tsv | 制表符分隔值 |
| JSON | json | Pandoc JSON AST |
| BibTeX | bibtex | 参考文献数据库 |
| OPML | opml | 大纲处理标记语言 |
| Typst | typst | Typst 文档 |
附加扩展语法
使用 + 添加扩展,- 移除扩展:
使用 GFM 并启用数学公式
pandoc -f gfm+texmathdollars input.md -o output.html
严格 Markdown(移除所有扩展)
pandoc -f markdown_strict input.md -o output.html
输出格式
使用 -t 或 --to 指定。
文档类
| 格式 | 标识 | 说明 |
|---|---|---|
| HTML | html / html5 | HTML5 文档 |
| HTML4 | html4 | HTML4 兼容 |
| Word | docx | Word (.docx) |
pdf | PDF(需 LaTeX 引擎) | |
| LaTeX | latex | LaTeX 源码 |
| EPUB | epub / epub3 | EPUB 电子书 |
| EPUB2 | epub2 | EPUB 2.0 |
| ODT | odt | OpenDocument |
| RTF | rtf | 富文本格式 |
| Plain | plain | 纯文本 |
| Man | man | Unix man 手册页 |
| Typst | typst | Typst 文档 |
| ConTeXt | context | ConTeXt 文档 |
标记语言类
| 格式 | 标识 | 说明 |
|---|---|---|
| Markdown | markdown / gfm / commonmark | 各种 Markdown 风格 |
| reStructuredText | rst | reStructuredText |
| AsciiDoc | asciidoc | AsciiDoc |
| MediaWiki | mediawiki | MediaWiki |
| Jira | jira | Jira Wiki |
| DokuWiki | dokuwiki | DokuWiki |
| Textile | textile | Textile |
| Org Mode | org | Org Mode |
| JATS | jats | Journal Article Tag Suite |
| TEI | tei | Text Encoding Initiative |
| DocBook | docbook / docbook5 | DocBook XML |
| XWiki | xwiki | XWiki 标记 |
| ZimWiki | zimwiki | Zim Wiki |
演示文稿类
| 格式 | 标识 | 说明 |
|---|---|---|
| reveal.js | revealjs | reveal.js 幻灯片 |
| Beamer | beamer | LaTeX Beamer 幻灯片 |
| Slidy | slidy | Slidy HTML 幻灯片 |
| S5 | s5 | S5 幻灯片 |
| DZSlides | dzslides | DZSlides 幻灯片 |
| Slideous | slideous | Slideous 幻灯片 |
数据类
| 格式 | 标识 | 说明 |
|---|---|---|
| JSON | json | Pandoc JSON AST |
| CSV | csv | 逗号分隔值(表格) |
| TSV | tsv | 制表符分隔值 |
| PPTX | pptx | PowerPoint |
| XLSX | xlsx | Excel 电子书 |
查看所有格式
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 > --metadataDefaults 文件示例 (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='
|