扩展库 / epub

epub

将简洁的文本章节生成 EPUB 3 电子书。

自动生成目录、阅读顺序与必要元数据;C 和 xlang 均可使用。

API

接口用途
epub.build(path, meta, chapters)原子写入 EPUB,返回字节数
epub.readEntry(path, name)读取本库生成的 stored 文本条目

范例

import epub
var meta = {"title": "xlang 电子书", "language": "zh-CN",
            "identifier": "urn:xlang:example:epub"}
var chapters = [{"title": "第一章", "text": "# 开始\n\n你好,xlang。"}]
epub.build("book.epub", meta, chapters)

适合纯文本手册;不解析完整 Markdown,也不打包图片、CSS 或字体。缺省修改时间需要有效系统时钟;时钟失败时构建报错且不写目标文件。显式修改时间按真实日历校验,非法日期不会覆盖已有文件;C/XLang 回归包含闰日正例和 2 月 30 日负例。生成和读取上限均为 8 MiB;生成单段内容或累积 ZIP 超限、读取超限均报范围错误,生成失败不覆盖已有文件。元数据与章节文本按 XML 1.0 字符范围校验,元数据、章节标题及语言属性中的 Tab/LF/CR 使用字符引用保留原值,章节正文仍按分段规则处理;路径和条目名中的内嵌 NUL 会被拒绝。C 构建结果使用与 XLang int 一致的 int64_t。C 教学范例可直接使用 xl run release/extlibs/epub/examples/basic.c;Linux 门禁核对它与 GCC 分离编译生成的 EPUB 字节一致。Windows/Linux 门禁均检查 C/XLang 边界、双语同字节 EPUB,并用 Python 标准库验证 ZIP CRC、容器、manifest、spine 和 XHTML;Linux 另有时钟故障注入及 C ASan/UBSan。固定范例检查不替代全面 EPUBCheck 认证;完整 AOT 仍待主线缺符号修复。C 接口及验收范围见包内 README。