Expand description
docparser-epub:EPUB2/EPUB3 后端。
结构(对齐 Python book.read_epub):
META-INF/container.xml → rootfile(OPF 路径)→ metadata / manifest / spine,
章节标题优先取 EPUB3 nav,其次 EPUB2 toc.ncx,取不到回落到文档内首个标题;
封面取 properties="cover-image",其次 <meta name="cover">。
正文:每个 spine 文档用 docparser_core::plugins::html 解析成结构化块
(标题/段落/列表/引用/代码/表格),再按文档内标题切节(层级自适应 h2→h3→h4,
单节超过 BIG_SECTION_CHARS 才往深一层切)——与 Python 的分章口径一致,
区别是这里保留块结构而不是压平成一段文本。
不做的事:DRM(META-INF/encryption.xml)不解密,加密书会在读取正文时报 corrupt;
图片/字体等资源不解包(只记录封面路径)。
Structs§
- Epub
Book - 整本书的解析结果。
- Epub
Chapter - 一章(= 一个 spine 文档,或文档内按标题切出的一节)。
- Epub
Meta - 书籍元数据(取不到的字段为空串 / None)。
- Epub
Plugin - EPUB 插件:XHTML → 结构化块 → 按标题分章。
- Epub
RawBackend - 原始读取:把 spine 顺序的 XHTML 原文放进
RawPage.items[0],书籍元数据进RawDoc.meta。
Constants§
- BIG_
SECTION_ CHARS - 单节超过该字符数就尝试按更深层标题再切(与 Python
BIG_SECTION_CHARS一致)。
Functions§
- epub_
cover_ href - 只取封面路径与书名(不解析正文),供书库/缩略图场景使用。
- read_
epub - 一次读完:元数据 + 分章(含结构化块)。
- register_
defaults - 注册 EPUB 后端与插件。