☰
用ReadAny CLI精排EPUB:draft/history/diff/validate全流程,AI改书不碰原文件
2026/10/1 13:38:50 网站建设 项目流程

用ReadAny CLI精排EPUB:draft/history/diff/validate全流程,AI改书不碰原文件

【免费下载链接】ReadAnyAI-powered cross-platform e-book reader with semantic search, RAG chat, local vector store, notes, TTS, and WebDAV sync.项目地址: https://gitcode.com/gh_mirrors/re/ReadAny

ReadAny 是一款 AI 驱动的跨平台电子书阅读器,而它的 ReadAny CLI 提供了一套「EPUB 精排」工作流:通过 draft(草稿)、history(操作日志)、diff(差异对比)、validate(结构校验)四个环节,让 AI 或你自己安全地修改 EPUB 书籍——所有改动只发生在独立草稿副本上,原始文件永远保持原样,随时可撤销、可对比、可导出。

为什么 AI 改书需要"草稿隔离"机制?

直接让 AI 改写你的 EPUB 原文件风险很大:改坏了没有后悔药,也难以确认 AI 到底动了哪里。ReadAny 的思路借鉴了代码仓库的「分支 + 提交记录 + diff」模式:

  • draft(草稿):把原 EPUB 完整复制到一个受控工作区,后续所有修改都只落在副本上
  • history(历史):每一步操作(创建、改章节、改元数据、撤销、丢弃)都追加一条带哈希的日志
  • diff(差异):逐文件对比原书与草稿的哈希和大小,一眼看出改了哪些条目
  • validate(校验):导出前检查元数据、manifest、spine、目录和资源引用是否合法

这套机制的完整设计见 docs/readany-cli/README.md,CLI 命令规格在 docs/readany-cli/05-command-and-tool-spec.md。

第一步:创建精排草稿

拿到书籍 ID 后(可用readany books list查询),一条命令创建草稿:

readany epub draft create <book-id> --profile editor

执行后,CLI 会把原 EPUB 复制到drafts/epub/<draft-id>/source.epub,同时生成manifest.json(记录源文件哈希、状态)和history.jsonl(操作日志),并写入首条epub.draft.create记录。实现逻辑在 packages/core/src/epub/draft.ts 的createEpubDraft中——注意它先对原文件计算 SHA-256 并锁定路径,之后只操作副本。

草稿支持随时放弃:

readany epub draft discard <draft-id> --reason "试了下不想要了"

第二步:读取与修改章节

读章节:默认返回可读文本,也可取完整 XHTML 供 AI 改写:

readany epub chapter read <draft-id> <chapter-id> --format xhtml

改章节:把改写后的 XHTML 写入文件,再打补丁到草稿:

readany epub chapter patch <draft-id> <chapter-id> --xhtml ./chapter-01.xhtml

如果是批量精排(比如让 AI 统一润色 20 个章节),可以用受限 JSON 计划一次提交,最多 50 个章节,每章仍单独记入 history:

readany epub chapters patch <draft-id> --patch ./batch-plan.json

此外还有两个常用编辑命令:

readany epub metadata patch <draft-id> --patch ./meta.json # 改书名、作者、语言等元数据 readany epub toc rebuild <draft-id> # 基于 spine 重建 EPUB3 目录

以上命令同样以 MCP 工具的形式暴露给外部 AI(如epub.chapter.patch、epub.toc.rebuild),AI 助手可以在授权 profile 下自动完成整本书的精排,而无需直接触碰你的文件。

第三步:用 history 和 diff 审查改动

history 审计:查看这个草稿发生过什么:

readany epub history <draft-id>

返回 JSONL 解析后的条目列表,每步 patch 都带beforeHash/afterHash,改动的可追溯性一目了然。

diff 对比:逐条目比较原书和草稿:

readany epub diff <draft-id>

实现见 packages/core/src/epub/diff.ts。结果会给出每个文件的added / removed / modified / unchanged状态、双方大小与 SHA-256,并汇总变更数量——这就是你的"改书前后对照表"。

后悔药:某次补丁不满意?

readany epub undo <draft-id> <operation-id>

undo 会从undo/快照目录读取修改前内容并校验哈希一致后才回滚(防止草稿已被后续改动覆盖),回滚本身也会写入 history。核心逻辑在 packages/core/src/epub/draft.ts 的undoEpubDraftOperation。

第四步:validate 校验 + export 导出

修改满意后,先做结构体检:

readany epub validate <draft-id> --profile publisher

packages/core/src/epub/validate.ts 会检查:

检查项级别
元数据缺少标题/语言⚠️ warning
manifest / spine 为空❌ error
manifest 条目缺少 id 或重复 id❌ error
spine 引用了不存在的 manifest 条目❌ error
目录或正文引用的资源文件缺失❌ error

只有errorCount为 0 时草稿才算valid。校验通过后导出新 EPUB(默认不覆盖已有文件、不改动原书):

readany epub export <draft-id> --output ./book-final.epub --profile publisher

导出前会自动再跑一次校验,不合格则拒绝导出。

全流程一图流

阶段命令作用权限要求
检查结构epub inspect <book-id>只读查看 package/manifest/spine/目录editor
建草稿epub draft create <book-id>复制原书到受控工作区editor
读改内容epub chapter read / patch读章节、替换 XHTMLeditor
元数据/目录epub metadata patch/epub toc rebuild改元数据、重建目录editor
审计对比epub history/epub diff/epub undo追溯、对比、撤销editor
校验导出epub validate/epub export结构体检、导出新书publisher

适合谁用?

  • 个人读者:给扫描版加修正、替换错字章节、重排目录
  • 出版/编辑:批量精排校对,全程留痕可审计
  • AI 玩家:通过 MCP 让 AI 助手完成整书润色,人只在 diff/history 环节把关

从draft到export,ReadAny CLI 把"改书"变成了一条可回滚、可对比、可校验的安全流水线——原文件始终安然无恙。更多细节可参考 docs/readany-cli/00-overview-and-acceptance.md 和 packages/cli/src/commands.ts 中的完整命令定义。

【免费下载链接】ReadAnyAI-powered cross-platform e-book reader with semantic search, RAG chat, local vector store, notes, TTS, and WebDAV sync.项目地址: https://gitcode.com/gh_mirrors/re/ReadAny

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询