mcpField
M
markitdown

markitdown

github.com/jimmc414文档处理60546 次安装4 周前更新
代码仓库

关于 markitdown

markitdown 是一款 Python 工具,可将文档、媒体、网页内容和结构化数据转换为 Markdown,供大模型分析及文本处理流程使用。它保留文档结构,并支持批量转换。

主要功能

  1. 01转换 Office 文件和 PDF
  2. 02识别图像文字并转录音频
  3. 03提取网页和视频字幕
  4. 04转换 CSV、JSON 和 XML
  5. 05批量转换文件与 ZIP 压缩包

适用场景

  1. 01为大模型分析准备文档
  2. 02从 PDF 和 Office 文件提取文本
  3. 03转录音频或 YouTube 视频

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jimmc414/kosmos --skill markitdown

安装后在 Claude Code 中输入/markitdown确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
advanced_integrations.md
document_conversion.md
media_processing.md
structured_data.md
web_content.md
scripts/
batch_convert.py

详细介绍

MarkItDown

概述

MarkItDown 是一个 Python 工具,可将各种文件格式转换为 Markdown 格式,专为大模型和文本分析工作流优化。它在生成简洁、节省 token 的 Markdown 输出的同时,会保留文档结构(标题、列表、表格、超链接)。

适用场景

在用户请求以下操作时使用此工具:

  • 将文档转换为 Markdown 格式
  • 从 PDF、Word、PowerPoint 或 Excel 文件中提取文本
  • 对图像执行 OCR 以提取文本
  • 将音频文件转录为文本
  • 提取 YouTube 视频字幕
  • 将 HTML、EPUB 或网页内容转换为 Markdown
  • 将结构化数据(CSV、JSON、XML)转换为易读的 Markdown
  • 批量转换多个文件或 ZIP 压缩包
  • 为大模型分析或 RAG 系统准备文档

核心功能

1. 文档转换

将 Office 文档和 PDF 转换为 Markdown,同时保留文档结构。

支持的格式:

  • PDF 文件(可选集成 Azure Document Intelligence)
  • Word 文档(DOCX)
  • PowerPoint 演示文稿(PPTX)
  • Excel 电子表格(XLSX、XLS)

基本用法:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("document.pdf")
print(result.text_content)

命令行:

markitdown document.pdf -o output.md

有关文档专属功能的详细说明,请参阅 references/document_conversion.md。

2. 媒体处理

使用 OCR 从图像中提取文本,并将音频文件转录为文本。

支持的格式:

  • 图像(JPEG、PNG、GIF 等),支持提取 EXIF 元数据
  • 音频文件,支持语音转录(需要 speech_recognition)

图像 OCR:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("image.jpg")
print(result.text_content)  # Includes EXIF metadata and OCR text

音频转录:

result = md.convert("audio.wav")
print(result.text_content)  # Transcribed speech

有关高级媒体处理选项,请参阅 references/media_processing.md。

3. 网页内容提取

将网页内容和电子书转换为 Markdown。

支持的格式:

  • HTML 文件和网页
  • YouTube 视频字幕(通过 URL)
  • EPUB 书籍
  • RSS 订阅源

YouTube 字幕:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("https://youtube.com/watch?v=VIDEO_ID")
print(result.text_content)

有关网页内容提取的详情,请参阅 references/web_content.md。

4. 结构化数据处理

将结构化数据格式转换为易读的 Markdown 表格。

支持的格式:

  • CSV 文件
  • JSON 文件
  • XML 文件

将 CSV 转换为 Markdown 表格:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("data.csv")
print(result.text_content)  # Formatted as Markdown table

有关特定格式的选项,请参阅 references/structured_data.md。

5. 高级集成

利用 AI 功能提升转换质量。

Azure Document Intelligence: 通过更出色的表格提取和版面分析,增强 PDF 处理效果:

from markitdown import MarkItDown

md = MarkItDown(docintel_endpoint="<endpoint>", docintel_key="<key>")
result = md.convert("complex.pdf")

由大模型驱动的图像描述: 使用 GPT-4o 生成详细的图像描述:

from markitdown import MarkItDown
from openai import OpenAI

client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("presentation.pptx")  # Images described with LLM

有关集成详情,请参阅 references/advanced_integrations.md。

6. 批量处理

一次处理多个文件或整个 ZIP 压缩包。

ZIP 文件处理:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("archive.zip")
print(result.text_content)  # All files converted and concatenated

批处理脚本: 使用提供的批处理脚本转换目录:

python scripts/batch_convert.py /path/to/documents /path/to/output

有关实现详情,请参阅 scripts/batch_convert.py。

安装

完整安装(所有功能):

uv pip install 'markitdown[all]'

模块化安装(指定功能):

uv pip install 'markitdown[pdf]'           # PDF support
uv pip install 'markitdown[docx]'          # Word support
uv pip install 'markitdown[pptx]'          # PowerPoint support
uv pip install 'markitdown[xlsx]'          # Excel support
uv pip install 'markitdown[audio]'         # Audio transcription
uv pip install 'markitdown[youtube]'       # YouTube transcripts

要求:

  • Python 3.10 或更高版本

输出格式

MarkItDown 会生成简洁、节省 token、适合大模型使用的 Markdown:

  • 保留标题、列表和表格
  • 保留超链接和格式
  • 在适用时包含元数据(EXIF、文档属性)
  • 不会创建临时文件(采用流式处理)

常见工作流

为 RAG 准备文档:

from markitdown import MarkItDown

md = MarkItDown()

# Convert knowledge base documents
docs = ["manual.pdf", "guide.docx", "faq.html"]
markdown_content = []

for doc in docs:
    result = md.convert(doc)
    markdown_content.append(result.text_content)

# Now ready for embedding and indexing

文档分析工作流:

# Convert all PDFs in directory
for file in documents/*.pdf; do
    markitdown "$file" -o "markdown/$(basename "$file" .pdf).md"
done

插件系统

MarkItDown 支持可扩展插件,可用于自定义转换逻辑。出于安全考虑,插件默认处于禁用状态:

from markitdown import MarkItDown

# Enable plugins if needed
md = MarkItDown(enable_plugins=True)

资源

此技能包含各项功能的全面参考文档:

  • references/document_conversion.md - PDF、DOCX、PPTX、XLSX 转换选项详解
  • references/media_processing.md - 图片 OCR 和音频转录详情
  • references/web_content.md - HTML、YouTube 和 EPUB 提取
  • references/structured_data.md - CSV、JSON、XML 转换格式
  • references/advanced_integrations.md - Azure Document Intelligence 和大模型集成
  • scripts/batch_convert.py - 用于目录的批量处理工具

评论

支持 Markdown