大家好,我是何三,独立开发者
一份 Word 文档转成 Markdown,要多久?
以前的标准答案是:快的一两百毫秒,慢的等好几秒。今天这个项目,中位数 4.4 毫秒。
对,你没看错。4.4ms 转完一份,比 LibreOffice 快 256 倍,比 pandoc 快 23 倍,14 种格式全覆盖,质量评分还全场最高。
它叫 anydoc,Firecrawl 团队开源,纯 Rust 写的。发布没几天就冲到近 7000 Star(GitHub 现在显示 6.7k Star,约 7000)。
先搞清楚它到底解决了什么问题。
现在大家都要把文档喂给大模型,第一步就是转 Markdown。这步看着简单,做起来全是坑:表格乱、样式丢、脚注没了、图片变乱码。pandoc 能用,但离"干净"差得远。LibreOffice 转出来更是惨不忍睹,质量分只有 39。
anydoc 的思路很朴素:每种格式一个解析器,解析完统一塞进同一个文档模型,最后用同一个 Markdown 渲染器输出。
说白了,就像把各国语言先翻成同一种"世界语",再从世界语翻成你要的语言。中间只要修一次 bug,所有格式一起好。
没懂作者为什么这么设计?我一开始也没懂,直到看到那句"一个 docx 的表格转义修复,自动就是 rtf、odt、所有格式的修复"——修一次,处处生效。这种设计,服。
(跑题一下。这让我想起以前搞 Electron 应用,为了兼容 Windows 和 Mac 的换行符,差点把头发薅光。要是早懂"统一模型"这套思路,也不至于……算了,说回 anydoc。)
速度和质量,官方拿 100 份真实文档做了个基准测试,横跨 14 种格式:

- anydoc:4.4ms,质量分 81,14/14 格式
- LibreOffice:1129.5ms,质量分 39,12/14
- pandoc:102.1ms,质量分 56,5/14
- markitdown:134.8ms,质量分 64,6/14
LibreOffice 转完一份的时间,它已经转完 256 份。这数字真的离谱。
原理大概是这样,细节可能有出入——有懂的大佬欢迎指正。反正核心就一句:不搞玄学,纯 Rust 硬解,没有 ML 模型,没有外部服务。

上手门槛约等于零。
不想装环境?浏览器里直接玩。官方 Demo 页把整个库编译成了 WebAssembly,文件在本地转换,不会上传到任何服务器。
想集成进自己的项目,一条命令:
npx @firecrawl/anydoc report.docx # 直接输出到终端
npx @firecrawl/anydoc slides.pptx -o slides.md # 或者写到文件
Node 和 Python 都有绑定,几行代码搞定:
import anydoc
markdown = anydoc.to_markdown("report.docx")
转出来的效果怎么说呢,就是……就是那种"直接丢给 LLM 就能用"的干净。表格、标题锚点、脚注、代码块、任务列表,整整齐齐。文本型 PDF 也能纯本地转,不用装 OCR 服务。扫描件它搞不定,但 Firecrawl 有托管 API 可以补——那是人家自己的商业服务,用不用随你。
装不装都行,看你自己。但如果你经常处理混合格式的办公文档,这玩意儿是真能省时间。同类工具还有微软的 markitdown、Unstructured,要么格式覆盖不全,要么速度差一个量级。anydoc 是目前唯一 14 种格式全覆盖、还跑得最快的。
GitHub 地址:https://github.com/firecrawl/anydoc
一句话总结:AI 时代喂文档给大模型,以前是将就着用,现在是 4.4ms 搞定。想试的先去官方 Demo 页体验一把,再决定要不要装。
本文使用 MGO 编辑并发布
关注"何三笔记",回复"mgo" 免费下载使用