local-link/skills/pdf-to-md/SKILL.md
用 MinerU(opendatalab/MinerU,Apache 2.0)把 PDF / 图片 / DOCX / PPTX / XLSX 转成结构清晰的 Markdown。当用户要"PDF 转 Markdown / md"、"提取 PDF 内容"、"整理这份文档/手册"、"把扫描件转成可读文本",或抱怨 PDF 表格列粘连、函数字段被拆散、扫描件难读时触发。自动处理表格→HTML、公式→LaTeX、跨页合并、页眉页脚去除、多语言 OCR,默认用最高精度的 hybrid 后端。遇到任何"把这份 PDF/文档弄成 Markdown"的请求都用它,即使用户没点名 MinerU。
npx skillsauth add lionad-morotar/simple-local-llm-server pdf-to-mdInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
用 MinerU 把版式文档转成结构化 Markdown。MinerU 用版面理解模型自动处理表格、公式、跨页、阅读顺序,不要手写坐标解析——那是对付表格列粘连的旧办法,MinerU 已从模型层面解决。
| 参数 | 默认 | 何时换 |
|---|---|---|
| 后端 -b | hybrid-auto-engine(精度 95+,最高) | 追求速度或低配机器用 pipeline(纯 CPU 可跑,精度 85+) |
| 语言 -l | auto | 中文文档 ch、英文 en 可提 OCR 准确率 |
| 后处理 | 开(标题修复) | 输出已满意可跳过 |
默认 hybrid 的理由:精度最高且字符最准(实测 API 文档 0 字符错误,而 pipeline 有 I/l 类混淆),代价是慢一些、模型 2-3GB。一次性转换优先精度,慢一点无所谓。
command -v mineru || uv pip install -U "mineru[all]" --system -i https://mirrors.aliyun.com/pypi/simple
export MINERU_MODEL_SOURCE=modelscope
export MINERU_MODEL_SOURCE=modelscope
mineru -p <输入文件或目录> -o <输出目录> -b hybrid-auto-engine -l auto
-l ch,英文报告加 -l enMinerU 把 PDF 里所有"大字号"元素映射为标题,可能把数据点(纯数字)、人名、强调句误判为标题。转完跑本技能目录下的修复脚本:
node <skill-dir>/scripts/postprocess-headings.mjs <输出.md>
脚本把假标题降级为加粗段落,打印保留/降级统计供你确认。
输出目录里的 _layout.pdf 是版面可视化(原图叠加检测框),肉眼对照能快速发现表格/区块识别错误。版面复杂的文档务必抽查。
<output>/<backend>/<docname>/
├── <docname>.md # 主产物
├── <docname>_content_list.json # 阅读顺序 JSON,程序消费友好
├── <docname>_middle.json # 每个区块带 bbox 的中间格式
├── <docname>_layout.pdf # 版面可视化(质检用)
└── images/ # 抽取的图片
记住这条以设定正确预期——MinerU 是优秀的元素提取器,但对版面语义理解有限:
转完用 _layout.pdf 抽查,尤其版面复杂的文档。
mineru -p <in> -o <out> -b hybrid-auto-engine \
-l ch \ # 语言 ch/en/auto
-s 0 -e 5 \ # 只转第 0-5 页(从 0 开始)
-f true -t true # 公式/表格解析开关(默认开)
-b pipelineMINERU_MODEL_SOURCE=modelscope 已设_layout.pdf 人工修uv pip install "mineru[all]==3.3.1"(MinerU 迭代快,CLI 可能变)tools
理解用户意图;listen 模式通过 grill-me 深挖任务并归档经验
development
给 VSCode(Insiders/Stable) 内置 ripgrep 加 5s 超时包装,防止搜索卡死吃满 CPU。--on 包装(幂等) / --off 还原 / 不带参数查状态。Use when VSCode 搜索卡死、rg 进程占满 CPU,或 VSCode 更新后超时保护失效需要重包。
development
为指定项目创建完全隔离的 hapi(Claude Code On the Go)实例,包括独立数据目录、LaunchAgent 持久化、zsh wrapper 和 app.hapi.run 直连 URL。与全局 ~/.hapi 互不干扰。
development
关闭承载当前 Claude Code 会话的宿主(VSCode 窗口或其终端面板),连同 claude 一起退出。通过 close-host-window 扩展触发:先 SIGTERM claude(走完 SessionEnd hooks)再关 host,不抢焦点、不丢 hooks。--host vscode 关窗口、--host terminal(默认)只关终端面板。Use when 任务结束要随宿主退出,或需精确关闭某 claude 终端所在窗口/面板。