Skip to main content

Crate docparser_epub

Crate docparser_epub 

Source
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§

EpubBook
整本书的解析结果。
EpubChapter
一章(= 一个 spine 文档,或文档内按标题切出的一节)。
EpubMeta
书籍元数据(取不到的字段为空串 / None)。
EpubPlugin
EPUB 插件:XHTML → 结构化块 → 按标题分章。
EpubRawBackend
原始读取:把 spine 顺序的 XHTML 原文放进 RawPage.items[0],书籍元数据进 RawDoc.meta。

Constants§

BIG_SECTION_CHARS
单节超过该字符数就尝试按更深层标题再切(与 Python BIG_SECTION_CHARS 一致)。

Functions§

epub_cover_href
只取封面路径与书名(不解析正文),供书库/缩略图场景使用。
read_epub
一次读完:元数据 + 分章(含结构化块)。
register_defaults
注册 EPUB 后端与插件。