news 2026/8/28 11:09:24

MarkItDown 使用指南:一条命令将 10 余种办公文档转为 Markdown

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MarkItDown 使用指南:一条命令将 10 余种办公文档转为 Markdown

MarkItDown 使用指南:一条命令将 10 余种办公文档转为 Markdown

【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown

把一沓 PDF 论文、Word 报告和 Excel 报表喂给大模型之前,通常要先手动导出文本,标题、表格、列表这些结构基本都会丢。MarkItDown 是微软 AutoGen 团队开发的 Python 工具,把这些文件直接转成保留结构的 Markdown,命令行或 Python API 均可调用。项目要求 Python 3.10 以上,输出面向文本分析和 LLM 消费,而非高保真的人类阅读排版。

MarkItDown 支持哪些文档格式

内置转换器覆盖办公文档与网页类格式,多格式依赖通过 extras 按需安装:

输入类型转换行为
PDF提取正文,保留标题与表格结构
Word / PPT / Excel(docx、pptx、xlsx、xls)解析文档对象,输出对应 Markdown 结构
图片读取 EXIF 元数据,可接 LLM 生成图片描述
音频(wav、mp3 等)元数据 + 语音转文字(需 audio-transcription 依赖)
HTML / CSV / JSON / XML转为表格、列表等 Markdown 表示
ZIP / EPub遍历包内文件逐个转换
YouTube 链接抓取视频字幕文本

MarkItDown 安装命令

建议先建虚拟环境,再用 pip 安装完整功能:

pip install 'markitdown[all]'

也可以从源码安装:

git clone https://gitcode.com/GitHub_Trending/ma/markitdown cd markitdown pip install -e 'packages/markitdown[all]'

一行命令把文件转成 Markdown

命令行是最短路径:

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

也可以用管道,方便接进脚本:

cat path-to-file.pdf | markitdown

输出的 Markdown 用轻量标记表达标题、表格和链接,token 开销较低,适合直接拼进 LLM 上下文。环境只需要少数格式时,按 extras 精简安装能少装很多依赖:

pip install 'markitdown[pdf, docx, pptx]'

容器场景可用仓库根目录的 Dockerfile 构建镜像:

docker run --rm -i markitdown:latest < report.pdf > out.md

在 Python 代码中集成 MarkItDown

from markitdown import MarkItDown md = MarkItDown() result = md.convert("test.xlsx") print(result.text_content)

核心实现在 packages/markitdown/ 下,每种格式对应converters/目录里的一个模块。官方还提醒:在不可信环境中应校验输入,并优先调用convert_local()convert_stream()这类最窄的转换接口,而不是泛用的convert()

进阶:LLM 图片描述与云增强转换

传入llm_client后,图片与 PPT 内嵌图片会由 LLM 自动生成文字描述,上图是仓库测试用例中用来验证这一能力的样例图:

md = MarkItDown(llm_client=client, llm_model="gpt-4o") result = md.convert("photo.jpg")

markitdown-ocr 插件把同一套 LLM 视觉能力扩展到 PDF、DOCX、PPTX、XLSX 的嵌入图片,不引入新的 ML 二进制依赖,源码见 packages/markitdown-ocr/。

需要更高提取质量时可接入 Azure:Document Intelligence 在命令行加-d -e <endpoint>启用;Content Understanding 额外支持音频和视频,还能把发票金额、日期等字段以 YAML front matter 形式输出在 Markdown 头部,适合做结构化字段抽取。

插件生态与社区贡献

插件默认关闭,用markitdown --list-plugins查看已安装项,--use-plugins启用转换;仓库还内置了 MCP 服务包 packages/markitdown-mcp,插件开发可参考 packages/markitdown-sample-plugin/ 示例,社区插件可在 GitHub 搜索 #markitdown-plugin 标签查找。贡献走 issue 和 PR,标注 open for contribution 的条目适合新手入手,本地开发在 packages/markitdown 下用hatch test跑测试即可。

回到开头那沓 PDF:跑一遍 MarkItDown,得到的就是保留标题和表格结构的 Markdown 文件,可以直接进检索库或 LLM 上下文。工具本身很薄,复杂版式的提取质量仍取决于具体文档,扫描件建议配合 OCR 插件或云增强转换使用。

【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 11:08:59

Claude Code 会话秒结束?从 Session 原理到实战排查

昨天还能正常跑的长任务&#xff0c;今天一启动就“秒结束”&#xff1b;恢复历史会话时&#xff0c;刚打印几行就被截断&#xff1b;甚至还没开始干活&#xff0c;进程就直接退出。HN 上也有人专门发帖问&#xff1a;Anyones Claude Code session finishing quickly from yest…

作者头像 李华
网站建设 2026/8/28 11:06:05

深度强化学习在移动边缘计算任务卸载与资源分配中的应用实践

简介&#xff1a;任务卸载与资源分配是分布式计算和网络优化中的核心基础问题&#xff0c;旨在解决有限计算资源在多用户、多任务场景下的高效调度挑战。其原理是通过智能决策算法&#xff0c;动态决定计算任务的执行位置&#xff08;本地或远程&#xff09;以及分配相应的CPU、…

作者头像 李华
网站建设 2026/8/28 11:03:07

Claude Code+Ollama+调度层:打造局域网NUC推理集群

在实际的私有化开发环境里&#xff0c;最理想的状态是既保留 Claude Code 这种 Agent 编码工具的体验&#xff0c;又不必把所有请求都发到远程 API。标题里的 Yeschef 项目就是这种思路的一种落地&#xff1a;Claude Code 作为任务入口&#xff0c;局域网里跑 3 台 NUC&#xf…

作者头像 李华