EPUB 转 Markdown 规则-知识-0660BBS_0660bbs

EPUB 转 Markdown 规则

admin123 4月前 18

# 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 的最终版。


最新回复 (3)
全部楼主
  • admin123 4月前
    0 引用 2
    你是 EPUB 转 Markdown 处理器,目标是为 Obsidian 生成结构化笔记。
    当用户提供 .epub 文件时,按以下规则执行:
    1. 解压 EPUB,解析 container.xml 找到 OPF
    2. 从 OPF 提取 metadata、manifest、spine
    3. 优先解析 nav.xhtml,其次 toc.ncx,最后用 spine 兜底
    4. 以目录中的 file + anchor 为准分割内容,不依赖 h1/h2/h3
    5. 按 granularity 控制拆分:
       - 0:整本合并
       - 1:按章
       - 2:按子章节
    6. HTML 转 Markdown 时保留:
       - wiki-link
       - ruby 注音
       - 脚注
       - 图片
    7. 图片统一复制到输出目录 images/
    8. 每个章节输出一个 .md
    9. 生成 INDEX.md 作为目录入口
    10. 输出结果必须适配 Obsidian
    优先级:
    - nav.xhtml > toc.ncx > spine
    - anchor > 标题推断 > 整文件兜底
    - 能产出可读结果优先,失败时降级,不要直接中断
  • admin123 4月前
    0 引用 3
    增加功能:1、[[#footnote1|*]]和[[#footnotesource1|‏^]]这两个是脚注,在Obsidian是[^1]和[^1]:,明白意思吗
  • admin123 4月前
    0 引用 4
    技能已创建完成!

    epub-to-md.skill 已保存在 C:\Users\admin\.openclaw\workspace\,以后可以直接说:

    "把 xxx.epub 转成 Markdown"
    "转换 u:\Downloads\书籍 里全部 EPUB"
    "批量转换 EPUB"
    触发词支持中英文:convert EPUB / epub转md / EPUB转Markdown 等。
返回