Pandoc生态:ConvertX、Zettlr、Quarto、R Markdown、PanWriter、MCP-Pandoc、Pandoc-xnos
之前写Pandoc,才意识到自己是多么无知,如此牛逼的开源项目,之前居然从来没听说过;因此本文汇总整理围绕Pandoc的生态项目。
ConvertX
开源(GitHub,18.5K Star,1K Fork)自托管文件格式转换工具,前端基于TS+Bun+Elysia,本质上集成若干文件处理的第三方库,文档处理使用Pandoc,视频处理使用FFmpeg,ImageMagick做图片,支持1000+格式。
类似项目:Morphos、TynzX/ConvertX
| 类别 | 支持格式数 | 背后引擎 |
|---|---|---|
| 图像 | 245+ | Vips/ImageMagick/GraphicsMagick/Inkscape |
| 文档 | 41种(LibreOffice)+43进/65出(Pandoc) | LibreOffice/Pandoc |
| 音视频 | 472进/199出 | FFmpeg |
| 3D模型 | 77种 | Assimp |
| 电子书 | 26种 | Calibre |
实战
基于Docker Compose部署:
# docker-compose.yml
services:
convertx:
image: ghcr.io/c4illin/convertx:latest
container_name: convertx
restart: unless-stopped
ports:
- "3000:3000"
environment:
- JWT_SECRET=随机密钥 # 建议32位以上
- ACCOUNT_REGISTRATION=false # 禁用公开注册(首个账户仍可创建)
- ALLOW_UNAUTHENTICATED=false # 必须登录才能用(生产环境推荐)
- AUTO_DELETE_EVERY_N_HOURS=24 # 24小时后自动清理旧文件
- MAX_CONVERT_PROCESS=0 # 0=无并发限制,按需调低
volumes:
- ./data:/app/data
变量解读
| 变量 | 默认值 | 建议 |
|---|---|---|
JWT_SECRET | 随机UUID | 务必手动设置 |
HTTP_ALLOWED | false | 仅本地测试时设true,否则需HTTPS |
ACCOUNT_REGISTRATION | false | 多人使用设true |
ALLOW_UNAUTHENTICATED | false | 内网trust环境可设true |
FFMPEG_ARGS | 空 | 视频转码加-hwaccelvaapi启用硬加速 |
AUTO_DELETE_EVERY_N_HOURS | 24 | 磁盘紧张可调小,0禁用自动清理 |
Zettlr
官网,中文官网,开源(GitHub,13.4K Star,827 Fork)一款专为学术写作、研究人员和知识工作者打造的开源Markdown编辑器,支持Zettelkasten卡片盒笔记法、Zotero引文管理、Pandoc多格式导出,让研究与写作流程更加高效流畅。
功能特性:
- 配合Zotero、JabRef等文献管理工具,处理引用与参考文献
- 导出功能基于Pandoc,并支持LaTeX、Word模板和Textbundle
- 支持Zettelkasten卡片笔记方法
- 其他:全文搜索、代码高亮、片段模板、自定义 CSS 和多语言界面
适用于:论文、书稿、调研报告或带有大量引用的文章编辑等场景。
实战
Quarto
官网,使用JavaScript和TypeScript开发、下一代学术出版和科学文档开源(GitHub,5.9K Star,453 Fork)系统,R Markdown的继承者,底层核心依赖Pandoc,支持Lua脚本。
实战
以Windows系统为例,从GitHub Release页面下载quarto-1.11.1-win.msi,或免安装版本quarto-1.11.1-win.zip,解压缩,双击安装。
R Markdown
官网,使用R+JavaScript+CSS开发、开源(GitHub,3.1K Star,992 Fork)。
PanWriter
官网,开源(GitHub,1.3K Star,63 Fork)跨平台基于Pandoc的Markdown编辑器,通过GUI的方式实现Pandoc部分文档转换功能。
MCP-Pandoc
纯Python实现、开源(GitHub,575 Star,63 Fork)项目,基于MCP的Pandoc服务器,使AI工具(如Claude桌面端)可以直接调用Pandoc做文档格式转换。
实战
基于pip安装:pip install mcp-pandoc
Pandoc-xnos
开源(GitHub,114 Star,26 Fork)项目,一个用于在Pandoc处理的Markdown文档中进行交叉引用的过滤器套件。它提供了对图形、方程式、表格和章节的编号和引用功能。
该套件包含以下独立维护的过滤器:
pandoc-fignos:对图形和图形引用进行编号pandoc-eqnos:对方程式和方程式引用进行编号pandoc-tablenos:对表格和表格引用进行编号pandoc-secnos:对章节引用进行编号(章节由 Pandoc 自身编号)
这些过滤器支持LaTeX、PDF、HTML和EPUB输出,对DOCX输出的原生支持正在开发中。
最后一次提交日期还停留在20年11月11日。
自动编号过滤器的集合——pandoc-fignos(图表编号)、pandoc-tablenos(表格编号)、pandoc-eqnos(公式编号)、pandoc-secnos(章节编号)。这些过滤器解决了 Markdown 学术写作中最头疼的问题——在转换后自动生成"图 1、表 2、公式 3"的引用。
PandocGUI
给Pandoc套一层好用的GUI,应该是最容易想到、实现、刚需的一点。在GitHub里不止一个开源项目在做这件事。
Ombrelin
纯C#实现、开源(GitHub,196 Star,13 Fork)轻量级、跨平台GUI包装器。
实战
最快速的安装方式就是从GitHub Release页面下载二进制安装包,如Windows系统下的pandoc-gui-setup.exe,双击安装即可。界面和下面的基于源码部署没有差别。
基于命令行安装:
# Windows
choco install pandoc miktex -y
winget install MiKTex
winget install Pandoc
# Linux
sudo apt-get install pandoc texlive-latex-extra texlive-latex-recommended
# macOS
brew install pandoc
curl http://mirror.ctan.org/systems/mac/mactex/BasicTeX.pkg -o
sudo installer -pkg BasicTeX.pkg -target /
基于源码和.NET环境部署体验:
git clone https://github.com/Ombrelin/pandoc-gui
cd pandoc-gui/src/PandocGui
dotnet run
官方文档提示:需确保.NET Core SDK版本为6。由于6版本太过于老旧,GPT提示安装8:

使用8版本执行dotnet run,运行报错。下载安装6版本,运行命令依旧给出(相同的)报错:

靠,搞错了,报错意思是需安装10版本:winget install Microsoft.DotNet.SDK.10。
参考本地下载成功的.NET Core SDK版本:dotnet --list-sdks
切换当前项目使用的版本:dotnet new globaljson --sdk-version 10.0.400
再次执行dotnet run:

选中源文件,设置目标文件(路径+后缀名),点击导出。
理论上是这样的,很简单。
实际使用时,各种问题,PDF文档转PNG图片,提示95?看终端打印日志

程序卡顿

ZhengMingpei
又一个纯C#实现、GitHub,16 Star,2 Fork,真正轻量级面向Windows系统的GUI包装器。注:GitHub仅用于存放.zip压缩包,并没有源码(不过,可通过反编译破解)。另外,代码库最后一次更新是21年1月4号,而且并不是替换zip压缩包,而是更新README。没啥参考价值。
从GitHub下载pandocGUI_1_0.zip,解压缩,双击setup.exe一闪而过,浪费时间。
更多推荐
所有评论(0)