用途
MarkItDown 用于将多种常见文件格式转换为 Markdown 文本,便于后续阅读、检索、摘要、翻译或进一步处理。它基于微软的 markitdown 工具,通过命令行完成转换。
主要能力
支持的文件类型包括:
- PDF(.pdf):文本提取并尽量保留布局
- Word(.docx):保留标题、表格、列表
- PowerPoint(.pptx):逐页转换并保留标题
- Excel(.xlsx、.xls):逐工作表转换为表格
- HTML(.html、.htm):完整结构转换
- CSV(.csv):转换为 Markdown 表格
- JSON(.json):格式化输出
- XML(.xml):格式化输出
- 图片(.jpg、.png、.gif、.webp):提取 EXIF 元数据
- 音频(.mp3、.wav):转录(需要 ffmpeg)
- 邮件(.msg):提取 Outlook 邮件内容
- 电子书(.epub):全文提取
- 压缩包(.zip):列出内容并转换其中受支持的文件
- URL(http://...):抓取并转换网页
使用方式
前置条件:需要安装 markitdown CLI。若未安装,推荐使用以下命令安装:
uv tool install 'markitdown[all]'
其他安装方式:
pipx install 'markitdown[all]'
pip install --user 'markitdown[all]'
基本用法:
- 单文件转换:
markitdown "$FILE_PATH" - 保存到文件:
markitdown "$FILE_PATH" -o "$OUTPUT_PATH" - 从 URL 转换:
markitdown "$URL" - 批量转换目录:
for f in "$DIR"/*.{pdf,docx,pptx,xlsx,html,csv}; do
[ -f "$f" ] && markitdown "$f" -o "${f%.*}.md"
done
- 从 stdin 并指定扩展名:
cat "$FILE" | markitdown -x .html
示例:
/markitdown report.pdf
/markitdown slides.pptx -o slides.md
/markitdown data.xlsx
/markitdown https://example.com/page.html
/markitdown ./documents/ # batch convert all supported files
/markitdown *.pdf # convert all PDFs in current directory
适用场景
- 将文档、演示文稿、表格统一转为 Markdown,便于在对话或笔记中阅读
- 批量转换目录中的多种文件
- 抓取网页内容并转为 Markdown
- 对转换后的 Markdown 进行摘要、提取表格或标题、清理格式、翻译或拆分
限制
- 音频转录需要安装 ffmpeg(macOS 可用
brew install ffmpeg,Linux 可用apt install ffmpeg) - 若 PDF 为纯图片,文本提取可能为空,建议使用 OCR 工具
- 遇到编码问题可尝试
markitdown -c UTF-8 "$FILE" - 若提示
markitdown: command not found,需先安装 markitdown - 若提示
No such file or directory,需检查文件路径
工作流程
- 解析参数,识别目标(文件路径、通配符、目录或 URL)、输出选项(-o 保存或输出到 stdout)以及是否批量模式。若无参数则询问用户要转换的文件。
- 验证目标:检查文件是否存在,检查 markitdown 是否可用(
markitdown --version),未安装则安装。 - 执行转换。
- 呈现结果:短输出(少于 200 行)直接展示;长输出保存为 .md 文件并报告路径;批量转换给出汇总。
- 可选后处理:按用户要求进行摘要、提取特定信息、清理、翻译或拆分。