由 Microsoft AutoGen 团队构建

任意文件
转为 Markdown

MarkItDown 是一个轻量级 Python 工具,将各种文件格式转换为 Markdown, 专为 LLM 和文本分析管道设计。保留标题、列表、表格、链接等关键文档结构。

终端
$ pip install 'markitdown[all]'

$ markitdown report.pdf -o output.md
 转换完成 → output.md

$ python
>>> from markitdown import MarkItDown
>>> md = MarkItDown()
>>> result = md.convert("slides.pptx")
>>> print(result.text_content)

为什么选择 MARKDOWN?

LLM 的原生语言

Markdown 接近纯文本,标记极少,却能表达重要的文档结构。 GPT-4o 等主流 LLM 原生"说" Markdown,在响应中自发使用它。 这意味着它们在大量 Markdown 文本上训练过,且 token 效率极高。

轻量高效

最小标记开销,极高的 token 效率,对 LLM 管道友好。

结构保留

完整保留标题、列表、表格、链接等文档结构信息。

插件扩展

支持第三方插件系统,包括 OCR、Azure Document Intelligence 等。

支持格式

覆盖主流文件类型

📄

PDF

📊

PowerPoint

📝

Word

📈

Excel

🖼️

图片 (OCR)

🎵

音频转录

🌐

HTML

📋

CSV / JSON / XML

📦

ZIP 文件

▶️

YouTube URL

📚

EPub

更多格式…

快速开始

安装

需要 Python 3.10+。建议使用虚拟环境。

使用 pip install 'markitdown[all]' 安装所有依赖, 或按需选择特定格式支持。

pip 安装
# 安装所有功能
pip install 'markitdown[all]'

# 或仅安装特定格式支持
pip install 'markitdown[pdf, docx, pptx]'
从源码安装
git clone git@github.com:microsoft/markitdown.git
cd markitdown
pip install -e 'packages/markitdown[all]'
Docker
docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < ~/your-file.pdf > output.md

可选依赖

按需安装

只安装你需要的格式支持,保持环境精简。

[pptx]

PowerPoint 文件支持

[docx]

Word 文件支持

[xlsx]

Excel 文件支持

[xls]

旧版 Excel 文件支持

[pdf]

PDF 文件支持

[outlook]

Outlook 消息支持

[az-doc-intel]

Azure Document Intelligence

[audio-transcription]

WAV / MP3 音频转录

[youtube-transcription]

YouTube 视频转录

使用方法

命令行 & Python API

命令行

基本转换
$ markitdown path-to-file.pdf > document.md

# 使用 -o 指定输出文件
$ markitdown path-to-file.pdf -o document.md

# 管道传输
$ cat path-to-file.pdf | markitdown
Azure Document Intelligence
$ markitdown file.pdf -o doc.md \
    -d -e "<endpoint>"

Python API

基本用法
from markitdown import MarkItDown

md = MarkItDown(enable_plugins=False)
result = md.convert("test.xlsx")
print(result.text_content)
LLM 图像描述
from markitdown import MarkItDown
from openai import OpenAI

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

生态系统

插件系统

MarkItDown 支持第三方插件扩展。默认禁用,按需启用。 在 GitHub 搜索标签 #markitdown-plugin 发现更多插件。

插件命令
# 列出已安装插件
markitdown --list-plugins

# 启用插件转换
markitdown --use-plugins file.pdf

markitdown-ocr

为 PDF、DOCX、PPTX 和 XLSX 转换器添加 OCR 支持,使用 LLM Vision 从嵌入的图像中提取文本。 不需要新的 ML 库或二进制依赖项。

OCR 插件用法
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("document.pdf")
print(result.text_content)

MCP 服务器

提供 MCP(模型上下文协议)服务器,用于与 Claude Desktop 等 LLM 应用程序集成。 详见 markitdown-mcp

重要变更

0.0.1 → 0.1.0 升级指南

01

可选依赖项分组

依赖项现在组织为可选功能组。使用 pip install 'markitdown[all]' 可获得向后兼容行为。

02

convert_stream() 变更

现在需要二进制文件类对象(如以二进制模式打开的文件或 io.BytesIO),不再接受文本文件类对象。

03

DocumentConverter 接口变更

已更改为从文件类流读取而非文件路径,不再创建临时文件。插件维护者需更新代码。

开源社区

参与贡献

本项目欢迎贡献和建议。您可以查看问题、审查 PR,或创建第三方插件。 项目已采用 Microsoft 开源行为准则。

运行测试和检查
cd packages/markitdown
pip install hatch
hatch shell
hatch test

# 提交前运行 pre-commit 检查
pre-commit run --all-files