dalibo/pandocker🐳 一个集成了过滤器、模板、字体和额外工具的pandoc Docker镜像
pandocker是一个简化pandoc使用的Docker镜像,内置了多种过滤器、模板、字体及辅助工具,无需在本地系统安装复杂依赖即可实现高质量文档转换。该镜像旨在提供开箱即用的pandoc环境,支持Markdown、LaTeX等格式转换为PDF、EPUB、HTML等多种输出格式。
提供精选LaTeX和HTML模板,无需额外配置即可生成美观文档:
pdflatex和xelatex集成多种pandoc过滤器,扩展文档处理能力:
pandoc-citeproc(处理参考文献和引用)pandoc-include(插入外部Markdown文件)、pandoc-codeblock-include(代码块插入外部文件)pandoc-latex-admonition(添加提示框)、pandoc-latex-barcode(生成条形码/QR码)、pandoc-latex-color(文本着色)pandoc-crossref(支持章节、图表等交叉引用)pandoc-mustache、pandoc-jinja(文档内变量渲染)包含多种开源字体,确保文档排版美观:
集成文档处理辅助工具:
dia:流程图绘制工具poppler-utils:PDF内容提取工具集rsync:文件同步工具通过以下命令拉取稳定版镜像:
consoledocker pull dalibo/pandocker:stable
当有新版本发布时,重新执行上述命令更新镜像:
consoledocker pull dalibo/pandocker:stable
使用常规pandoc参数运行容器,将本地文件挂载到容器内/pandoc目录:
consoledocker run --rm -u $(id -u):$(id -g) -v $(pwd):/pandoc dalibo/pandocker README.md -o README.pdf
| 参数 | 作用说明 |
|---|---|
-v $(pwd):/pandoc | 将当前目录挂载到容器内/pandoc目录,实现文件共享 |
--rm | 文档生成后自动删除容器,避免残留 |
-u $(id -u):$(id -g) | 指定运行用户ID和组ID,确保输出文件归属当前用户 |
--privileged | (SELinux系统适用)强制获取挂载点访问权限,解决权限限制问题 |
通过shell别名将pandocker作为pandoc使用,添加到~/.bashrc或~/.zshrc:
consolealias pandoc="docker run --rm -u $(id -u):$(id -g) -v $(pwd):/pandoc dalibo/pandocker:stable"
使用示例:
consolepandoc README.md -o README.epub # 直接使用别名调用
通过管道传递内容(注意:不含图片或外部引用时适用):
consolecat foo.md | docker run --rm -i dalibo/pandocker -t pdf > foo.pdf
pdflatex和xelatex通过--template=模板名参数指定模板:
consoledocker run --rm -u $(id -u):$(id -g) -v $(pwd):/pandoc dalibo/pandocker --pdf-engine=xelatex --template=eisvogel foo.md -o foo.pdf
模板特定变量需参考原项目文档:eisvogel、easy templates
| 过滤器名称 | 功能描述 |
|---|---|
panda | 多用途Lua过滤器 |
pandoc-citeproc | 参考文献和引用管理 |
pandoc-codeblock-include | 代码块中插入外部文件内容 |
pandoc-cover | 基于SVG模板添加PDF封面 |
pandoc-include | 插入外部Markdown文件到主文档 |
pandoc-latex-admonition | 添加提示框(警告、注意等) |
pandoc-latex-barcode | 生成条形码和QR码 |
pandoc-latex-color | 文本着色功能 |
pandoc-crossref | 章节、图表、公式交叉引用 |
通过--filter=过滤器名参数启用过滤器:
consoledocker run --rm -v $(pwd):/pandoc dalibo/pandocker --filter=pandoc-crossref --filter=pandoc-citeproc thesis.md -o thesis.pdf
使用pandoc-include、pandoc-codeblock-include等涉及文件引用的过滤器时:
/pandoc(即挂载的当前目录)--workdir=路径参数指定自定义工作目录镜像标签格式:branch[-parent[-variant]]
| 标签组合 | 说明 |
|---|---|
latest | 默认标签,等同于latest-ubuntu-extra |
latest-ubuntu-full | 基于Ubuntu,包含完整字体和工具(810MB) |
stable | 稳定版,等同于stable-ubuntu-extra |
stable-ubuntu-full | 稳定版Ubuntu基础,完整字体和工具 |
注意:其他未列出的标签未经过官方支持,使用时需谨慎。
容器内置以下辅助工具,可通过修改--entrypoint参数调用:
将.dia文件转换为SVG:
consoledocker run --rm -v $(pwd):/pandoc --entrypoint dia dalibo/pandocker diagram.dia -e diagram.svg
提取PDF文本内容:
consoledocker run --rm -v $(pwd):/pandoc --entrypoint pdftotext dalibo/pandocker document.pdf -
如需自定义构建镜像,可使用以下方法:
consoledocker build . # 直接构建 # 或使用Makefile make
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务