Microsoft MarkItDown:将任意文件转换为 Markdown 的 Python 利器

微软开源的轻量级 Python 工具,支持将 PDF、Word、Excel、PowerPoint、图片、音频、网页等多种格式转换为 Markdown,专为 LLM 文本分析流程设计,今日 GitHub Trending 第一。

项目简介

microsoft/markitdown 是微软开源的一款轻量级 Python 工具,用于将各种文件格式转换为 Markdown 格式,专为 LLM(大型语言模型)及相关文本分析流程设计。2026 年 4 月 11 日登上 GitHub Trending 今日第一,累计 Star 数突破 100,637,今日新增 2,352 Stars

与 textract 类似,MarkItDown 专注于保留文档重要结构(标题、列表、表格、链接等),而非追求像素级高保真还原。


支持的文件格式

格式类型 具体支持
文档 PDF、PowerPoint(PPTX)、Word(DOCX)、Excel(XLSX/XLS)
图片 EXIF 元数据提取 + OCR 文字识别
音频 EXIF 元数据 + 语音转录
网页/文本 HTML、CSV、JSON、XML
其他 ZIP 文件、YouTube URL、EPub 等

为什么选择 Markdown?

  • Markdown 接近纯文本,标记最少但仍能表示文档结构
  • 主流 LLM(如 GPT-4o)原生"理解" Markdown,训练数据中包含大量 Markdown 格式文本
  • Markdown 约定具有极高的 token 效率,非常适合喂给大模型

安装

1
2
3
4
5
# 安装所有可选依赖(推荐)
pip install 'markitdown[all]'

# 按需安装,如只需 PDF + DOCX + PPTX
pip install 'markitdown[pdf,docx,pptx]'

环境要求:Python 3.10+


快速上手

命令行

1
2
3
4
5
6
7
8
# 转换 PDF 并输出到文件
markitdown path-to-file.pdf -o document.md

# 管道模式
cat path-to-file.pdf | markitdown

# 启用插件(如 OCR)
markitdown --use-plugins path-to-file.pdf

Python API

1
2
3
4
5
from markitdown import MarkItDown

md = MarkItDown(enable_plugins=False)
result = md.convert("report.xlsx")
print(result.text_content)

结合 LLM 进行图片描述

1
2
3
4
5
6
7
from markitdown import MarkItDown
from openai import OpenAI

client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("slides.pptx")
print(result.text_content)

Docker

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

扩展能力

  • MCP 服务器:通过 markitdown-mcp 与 Claude Desktop 等 LLM 应用深度集成
  • 插件系统:支持第三方插件,如 markitdown-ocr 可通过 LLM Vision 实现 PDF/DOCX/PPTX/XLSX 中图片的 OCR
  • Azure 文档智能:可选集成 Microsoft Document Intelligence,进一步提升转换质量

项目信息

属性 内容
开源协议 MIT License
仓库地址 https://github.com/microsoft/markitdown
最新版本 v0.1.5
Stars 100,637+
Forks 6,170+
主要语言 Python (99.7%)

总结

MarkItDown 是一个将"任意文档 → Markdown"问题解决得非常干净的工具,尤其适合需要将大量历史文档喂给 LLM 的场景。配合 MCP 服务器,可以轻松集成到 Claude Desktop 等 AI 工作流中。对于构建 RAG 系统、文档索引管道的开发者来说,值得纳入工具箱。