[Github发现] MarkItDown – 微软开源的文档转 Markdown 工具,94.9k Stars

Github发现2026-04-09发布 WarpEdit
6 0 0

MarkItDown 是微软 AutoGen Team 开源的一款轻量级 Python 工具,核心功能是将 PDF、Word、Excel、PowerPoint 等常见办公文档直接转换为 Markdown 格式,专为 LLM 文本分析管道设计。

GitHub 仓库目前保持 94.9k Stars5.8k Fork 的高热度,项目基于 MIT 许可证开源。

MarkItDown 项目截图

相关链接

MarkItDown 是什么

MarkItDown 由微软 AutoGen Team 开发,最初动机是解决”让 LLM 高效读取办公文档”这个痛点。市面上文档转换工具并不少,但大多专注视觉保真度(输出的 Markdown 排版漂亮但结构混乱),而 MarkItDown 的设计目标截然不同——输出专为文本分析优化的 Markdown,保留标题、列表、表格、链接等结构信息,舍弃无意义的装饰性样式。

这个定位也解释了为什么 MarkItDown 选择与 textract 对标但路线不同:textract 输出偏向人类阅读,而 MarkItDown 输出偏向机器理解。项目从 0.0.1 到 0.1.0 经历了一次 Breaking Changes,核心接口改为流式读取(不再创建临时文件)。

支持的文件格式

  • PDF:支持扫描件 OCR(需安装 markitdown-ocr 插件)
  • Word(.docx)
  • Excel(.xlsx / .xls)
  • PowerPoint(.pptx)
  • 图片:EXIF 元数据提取 + OCR 文字识别
  • 音频:EXIF 元数据 + 语音转录
  • HTML
  • 文本格式:CSV、JSON、XML
  • ZIP 文件:自动遍历压缩包内所有支持的文件
  • YouTube 视频:提取字幕转录文本
  • EPub 电子书

为什么选择 Markdown?

主流 LLM(包括 GPT-4o)在训练过程中接触了大量 Markdown 格式文本,对 Markdown 语法理解非常好,甚至会在回复中自发使用 Markdown 标记。这意味着用 Markdown 作为文档交换格式,LLM 能更准确地捕捉原文结构——标题层级、表格行列、列表嵌套关系都能完整保留。另一个实际好处是 Markdown 的 token 效率很高。

快速部署

pip 安装(推荐)

pip install 'markitdown[all]'

如果只需要部分格式支持,可以按需指定依赖组:pip install 'markitdown[pdf,docx,pptx]'。可选依赖组包括:[pptx]、[docx]、[xlsx]、[xls]、[pdf]、[outlook]、[az-doc-intel](Azure 文档智能)、[audio-transcription]、[youtube-transcription]。

Docker 方式

docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < ~/your-file.pdf > output.md

源码安装

git clone [email protected]:microsoft/markitdown.git
cd markitdown
pip install -e 'packages/markitdown[all]'

使用方式

命令行

markitdown path-to-file.pdf -o document.md
cat path-to-file.pdf | markitdown

Python API

from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False)
result = md.convert("document.xlsx")
print(result.text_content)

启用 OCR 插件(处理扫描 PDF)

pip install markitdown-ocr openai
from markitdown import MarkItDown
from openai import OpenAI
md = MarkItDown(enable_plugins=True, llm_client=OpenAI(), llm_model="gpt-4o")
result = md.convert("scanned_document.pdf")
print(result.text_content)

MCP 服务器:与 LLM 应用深度集成

MarkItDown 还提供了 markitdown-mcp 包,这是基于 Model Context Protocol 的服务器实现,允许在 Claude Desktop 等支持 MCP 的 LLM 应用中直接调用文档转换功能。

适用人群

  • RAG 系统开发者:需要将办公文档入库做检索增强
  • AI 应用工程师:文档预处理的轻量选择
  • 知识库建设者:批量将历史文档转为 Markdown
  • 数据分析师:快速提取 Excel/CSV 中的结构化数据

总结

MarkItDown 的核心优势在于专注 LLM 友好的文档转换,而不是追求视觉完美的排版输出。它解决了文档 → 文本分析管道中最麻烦的一环:结构保留。配合 OCR 插件可以处理扫描件,配合 MCP 服务器可以无缝嵌入 AI 工作流,加上背靠微软 AutoGen 团队持续维护,94.9k Stars 的高热度也印证了社区对这类工具的真实需求。

© 版权声明

相关文章

暂无评论

none
暂无评论...