SuperAPI AI 工具集

markitdown

办公与效率

查看项目

更新于 10-16 02:25

技能介绍

用途

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,需检查文件路径

工作流程

  1. 解析参数,识别目标(文件路径、通配符、目录或 URL)、输出选项(-o 保存或输出到 stdout)以及是否批量模式。若无参数则询问用户要转换的文件。
  2. 验证目标:检查文件是否存在,检查 markitdown 是否可用(markitdown --version),未安装则安装。
  3. 执行转换。
  4. 呈现结果:短输出(少于 200 行)直接展示;长输出保存为 .md 文件并报告路径;批量转换给出汇总。
  5. 可选后处理:按用户要求进行摘要、提取特定信息、清理、翻译或拆分。