# EPUB 转 Markdown 规则
当用户提供 .epub 文件时,按以下流程处理:
1. 解压 EPUB
2. 解析 OPF,提取 title / author / publisher / language
3. 优先解析 nav.xhtml,其次 toc.ncx
4. 以目录中的 anchor 为准分割章节,不依赖 h1/h2
5. HTML 转 Markdown,保留:
- wiki-link
- ruby 注音
- 脚注
- 图片路径
6. 每章输出一个 md 文件
7. 生成 INDEX.md 作为目录入口
8. 输出结构适配 Obsidian
优先级:
- 先用 nav.xhtml
- 没有则用 toc.ncx
- 再没有就按 spine 顺序兜底
只要检测到 EPUB 文件,就使用这套规则执行。
最稳的方式是把这套规则写成 OpenClaw 会自动注入的技能文件,再在提示里告诉它“遇到 EPUB 就用这套规则”。OpenClaw 每次运行都会生成一份自定义系统提示词,技能文件是以 Markdown 形式注入进去的;而真正执行转换这类动作,则是通过工具来做。
如果你是想让 OpenClaw 自动调用你的脚本,那就把 epub_to_md.py 做成一个可执行工具,再在 OpenClaw 里给它加一个技能说明;OpenClaw 的工具是分类型的函数,skills 是注入提示词的 Markdown 文件,工具权限还能用 allow/deny 控制。
在你现在这个场景里,最直接的一句话就是:
遇到 EPUB 文件时,优先调用 epub_to_md 工具,按 nav.xhtml / toc.ncx / anchor 精确切分,输出为 Obsidian 可用的 Markdown 和 INDEX。
如果你要,我可以直接帮你把这段整理成一份可放进 SKILL.md 的最终版。