最近翻 GitHub Trending,发现微软开源了一个叫 MarkItDown 的工具,已经 12.5 万星了。试用了一下,确实好用,推荐给需要处理各种文档转 Markdown 的朋友。
MarkItDown 是什么
简单说,就是一个把各种文件转成 Markdown 的 Python 工具。由微软开源维护。
你可能会问:不就转个格式吗,有什么特别的?
关键是它支持的格式范围很广——PDF、Word、PPT、Excel、图片(EXIF + OCR)、音频(转文字)、HTML、CSV、JSON、XML,连 ZIP 压缩包都能递归处理。而且输出保留标题、列表、表格、链接等结构,不是简单扔出一堆纯文本。
为什么需要它
做 RAG(检索增强生成)或者 LLM 微调的人会懂:数据清洗是最耗时间的环节之一。各种格式的文件——扫描件 PDF、客户发的 Word、老板给的 PPT、表格密密麻麻的 Excel——要统一喂给大模型,必须先转成它认识的结构化文本。
MarkItDown 就是干这个的。它把预处理标准化了,一行命令搞定。
pip install 'markitdown[all]' markitdown 报告.pdf > report.md
或者 Python 里用:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("report.docx")
print(result.text_content)
核心能力一览
| 格式 | 支持情况 |
|---|---|
| ✅ 提取文本 + 结构 | |
| Word (docx) | ✅ 标题/列表/表格全保留 |
| PowerPoint (pptx) | ✅ 每页幻灯片内容提取 |
| Excel (xlsx) | ✅ 工作表 + 表格数据 |
| 图片 (jpg/png) | ✅ EXIF 元数据 + OCR 文字 |
| 音频 (mp3/wav) | ✅ 语音转文字 |
| HTML / CSV / JSON / XML | ✅ 原生支持 |
| ZIP | ✅ 递归解压后处理 |
我看中的几个点
1. 为 LLM 场景而生
与 textract 等传统工具不同,MarkItDown 从设计上就瞄准了 LLM/RAG 场景。它输出的 Markdown 保留了文档结构——标题层级、列表缩进、表格格式、链接——这些语义信息对大模型理解文档非常重要。一段有结构的 Markdown 比纯文本好理解得多。
2. 多模态能力
图片 OCR 和音频转文字意味着它能处理更丰富的输入。比如一份包含扫描图表和录音会议的调研材料,用 MarkItDown 一次就能统一转成结构化文本,不需要多个工具拼接。
3. 简单,不折腾
pip install 就完事了。不需要配置、不需要 GPU、不需要注册 API。CLI 和 Python API 都提供了,适合嵌入到自动化管道中。
几个使用场景
- RAG 数据预处理: 给知识库喂文档前,先过一遍 MarkItDown 转 Markdown,再切 chunk 做 embedding
- 办公自动化: 把收到的各种附件统一转 Markdown,方便全文搜索或归档
- 日志分析: 批量处理 ZIP 压缩的日志文件,递归提取
- 内容迁移: 把旧的 Word/PDF 文档批量迁移到 Obsidian 等 Markdown 笔记系统
小结
MarkItDown 不是那种炫技的项目——它解决的是一个朴实但高频的问题:文档格式转换。微软把它开源出来,对 RAG 和 LLM 生态是个实实在在的补充。12.5 万星不是白给的。
如果你也在折腾知识库、RAG 或者文档自动化,值得一试。
GitHub: microsoft/markitdown
安装: pip install 'markitdown[all]'
夜雨聆风