markitdown一条命令把文档转成 Markdown【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdownRAG 管道明天要料桌上堆着 60 份 PDF、DOCX 和 EPUB。markitdown 把文档一条命令转成 Markdown标题、表格、列表全部保留结构产物直接喂给大模型。 它解决什么问题定位与边界能做把 18 类内置格式PDF、Word、PPT、Excel、EPUB、HTML、CSV、图片、音频、ZIP 等批量转 Markdown即常见的 PDF 转 Markdown、Word 转 Markdown 场景。转换器注册表在 _markitdown.py 的enable_builtins()与 converters/init.py 的导出清单一一对应。能做数据不出本地。默认路径全程在本进程内完成转换不经过任何第三方服务器——这是它与在线转换工具的本质区别合同、财务报表、论文稿不会上传到别人的机器上。不做像素级排版还原。官方 README 明确写输出 meant to be consumed by text analysis tools不适合二次出版。前提条件Python 3.10–3.14pyproject.toml 中requires-python为3.10,3.15不同格式依赖不同的 extras。前提条件PDF 需带文字层才能转出内容纯扫描页没有文字可提取需 OCR 插件或云端端点。这是仓库测试目录里的一张论文页图片正是文档进大模型场景的典型素材若传入llm_client转换器还会顺带生成一句图片描述。 5 分钟跑通最小转换闭环环境要求一行说清Python 3.10 及以上建议装进虚拟环境避免依赖冲突。下面这条命令安装 markitdown 及全部格式依赖[all]是 pyproject.toml 里所有 extras 的并集pip install markitdown[all]装完后终端里敲markitdown --version能看到版本号说明 CLI 入口[project.scripts]注册的markitdown命令就位。想改源码就从仓库装可编辑模式git clone https://gitcode.com/GitHub_Trending/ma/markitdown pip install -e packages/markitdown[all]extras 也可以按需只装子集例如pip install markitdown[pdf,docx]只覆盖 PDF 和 Word依赖面明显更小。第一条转换命令用-o指定输出文件markitdown example.pdf -o example.md不加-o时结果直接打印到终端适合快速预览。打开example.md检查三件事一级标题是否变成#、表格是否变成|语法、链接是否保留。如果这 5 分钟没跑通先别往下读去项目 Issues 里找同类报错。 输入格式 → 输出结构对照表下表以 converters/init.py 的转换器注册表为准覆盖官方内置的全部格式输入格式输出特征需额外依赖备注PDF带文字层标题、段落、表格转 Markdown 结构[pdf]纯扫描页会转出空内容Word / PPT / ExcelWord 保留标题层级文档内公式转 LaTeXPPT 按幻灯片切分Excel 每个 sheet 一张独立表格[docx, pptx, xlsx, xls]XLS 为旧版格式CSV / JSON / XML / 纯文本CSV 变 Markdown 表格竖线自动转义JSON、XML、纯文本基本原样输出无纯文本是最低优先级的兜底转换器HTML / RSS / Wikipedia正文转 Markdown标题、列表、链接保留无Wikipedia 等是特定页面转换器EPUB标题、作者、出版社等元数据以加粗字段置于开头正文按 spine 顺序无元数据解析自content.opf图片 / 音频图片EXIF 元数据字段音频语音转写文本[audio-transcription]EXIF 需系统装exiftoolLLM 图片描述可选ZIP / Outlook MSG / Jupyter / YouTubeZIP 递归转内部文件MSG 提取邮件正文notebook 按单元格[outlook]/[youtube-transcription]YouTube 需联网抓字幕结构保留具体指标题层级、列表、表格、链接变成对应的 Markdown 语法大模型和检索管道可以直接利用。不会被保留的是页眉页脚、脚注位置、多栏与浮动框这类复杂排版——官方 README 明确输出面向文本分析而非高保真文档转换。 三个典型转换工作流PDF 直接管道进 RAG 备料触发条件单个 PDF 要进知识库不想产生中间文件。下面这条命令是官方 README 给出的管道用法从 stdin 读取并转换cat example.pdf | markitdown产物打印在终端标题是#、作者行、正文段落全部结构化可继续tee到文件或直接进下一环节。EPUB 转文本并带出元数据触发条件要索引一本书或电子书且书名、作者信息也得进数据库。EPUB 转换器读取content.opf把元数据放在正文前面见 _epub_converter.pymarkitdown book.epub -o book.md打开产物开头是**Title:**、**Authors:**、**Publisher:**等加粗字段其后才是保留标题层级的正文。给图片配 LLM 描述触发条件图片不仅要 EXIF 元数据还要一句语义描述。传入llm_client后转换器会追加 caption仓库里专门测这个能力的样本就是下面这张红圆蓝方块图from markitdown import MarkItDown from openai import OpenAI md MarkItDown(llm_clientOpenAI(), llm_modelgpt-4o) print(md.convert(test_llm.jpg).markdown)产物是 EXIF 字段装了exiftool时加一句 LLM 写出的描述图中提示的文字串与颜色都会被提到。 插件机制、编程 API 与管道串联插件机制插件默认关闭发现机制是 entry point 组markitdown.plugin见 _markitdown.py 的_load_plugins()。用markitdown --list-plugins查看已装插件转换时加-p参数启用。开发模板看 packages/markitdown-sample-plugin/官方 OCR 插件 packages/markitdown-ocr/ 给 PDF、Word、PPT、Excel 转换器加上经 LLM Vision 读取嵌入图片文字的能力未传llm_client时会静默回落到内置转换器。编程 API核心调用只有三行。注意安全差异convert()是故意放宽的入口接受本地路径、URL 和字节流服务端只处理本地文件时应该调convert_local()这是官方 README 安全建议里的最窄入口from markitdown import MarkItDown md MarkItDown(enable_pluginsFalse) print(md.convert_local(data.xlsx).markdown)返回值是DocumentConverterResult取.markdown得到 Markdown 文本。与 CI-CD 或 LLM 管道串联没有专门的目录模式套一层循环就是批量文档转换流水线mkdir -p out for f in *.pdf; do markitdown $f -o out/${f%.pdf}.md; done在 PDF 所在目录执行后out/下会出现与源文件同名的.md文件一一对应、可直接作为管道下游输入。 选型速查三种方案横向对比维度markitdown在线转换工具手动复制粘贴处理位置完全本地文件上传第三方服务器本地输出目标结构化 Markdown供 LLM 与流水线人可读页面零散文本结构保留标题、表格、列表、链接基础格式容易断裂元数据EPUB 等自动带出大多丢失无前提Python 3.10浏览器 网络无如果你只是要从一份 PDF 里摘一段话回邮件手动复制粘贴就够了不必装依赖链如果只是想看一份文件的可读页面、不关心结构在线工具更快。⚠️ 已知限制与替代路径扫描版 PDF 与纯图片页内置只读文字层纯图片页转出空内容 → 加markitdown-ocr插件配 LLM 客户端或用--use-cu接 Azure Content Understanding 端点。像素级排版还原官方定位是文本分析而非出版 → 需要排版级产物时换专业排版工具。视频文件内置无视频转换器README 明确视频只能走 Azure Content Understanding →--use-cu接付费云端点。不受信任的输入I/O 按当前进程权限执行convert()可触达进程能访问的任何资源 → 服务端场景先校验输入再调convert_local()这类最窄入口。base64 内嵌图片输出中的长 data URI 默认被截断 → 确需保留时加--keep-data-uris参数。本地、离线、结构化 Markdown 喂大模型——需求是这个装markitdown[all]即可要版式还原换专业排版工具要扫描件走 OCR 插件。【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考