跳转到内容

小说与漫画 ​

从 v0.12.0 开始,媒体库正式支持小说和漫画,可以直接读取本地正文、封面和元数据,在浏览器里看书看漫并跨设备同步阅读进度。创建方式和影视库一样,选好对应类型并填上服务端能访问到的根目录就行。

支持格式与目录 ​

类型正文格式目录要求
小说TXT、EPUB根目录下一部小说一个文件夹,每个文件夹只放一个正文文件
漫画图片目录、CBZ、ZIP根目录下一部漫画一个文件夹,可直接放正文,或按话再分一层

漫画图片支持 JPG、JPEG、PNG、WebP 和 GIF。要注意的是,同一个阅读单元要么放一组散图,要么放一个压缩包;别把多个正文压缩包,或者把散图和压缩包混塞在同一个目录里。

小说示例 ​

text
Novels/
├── 示例小说 A/
│   ├── 正文.txt
│   └── 正文.opf
└── 示例小说 B/
    └── 正文.epub

TXT 会按文本内容自动识别章节,EPUB 会解析目录和正文。为了保持阅读体验一致,EPUB 阅读器采用统一的阅读排版,不保证原样还原原文件中的全部样式和交互。

漫画示例 ​

text
Comics/
├── 示例单行本/
│   ├── ComicInfo.xml
│   ├── 001.jpg
│   └── 002.jpg
└── 示例连载/
    ├── ComicInfo.xml
    ├── 第 01 话/
    │   ├── 001.jpg
    │   └── 002.jpg
    └── 第 02 话/
        └── 第 02 话.cbz

按话分目录的连载漫画会作为合集展示,在详情页或阅读器里都能随时切话。目录层级直接决定了合集与阅读单元的归属关系,不支持更深的多层无限嵌套。

扫描与索引 ​

媒体库建好后会先扫一遍已有内容,平时也会持续监控正文、目录和元数据的变化。由于扫描和建立正文索引都在后台异步处理,刚放进去的文件如果还没写入稳定,或者索引还在跑,点开阅读时可能会暂时提示「内容未就绪」,稍等一会儿即可。

遇到漏扫或读取异常时,管理员可以在媒体库管理或侧栏执行手动扫描,补齐缺失文件并按需更新索引。没变动过的有效索引会直接复用,缺失的阅读缓存也会尝试恢复;和影视库一样,扫描结束不代表后台所有的刮削和整理工作都已经完成。

关掉「启动时全量扫描」不影响运行期间的实时监控,只是停机期间手动改过文件后记得补扫一次。当源文件发生变化时,系统会尽量把你的阅读进度恢复到可用位置;实在对不上原位置时,阅读器会给出提示,并从当前可用章节的开头继续。

元数据与封面 ​

小说读取 OPF,漫画读取 ComicInfo XML,和影视库用的 NFO 不同:

类型本地来源
小说正文同目录的同名 .opf,或 content.opf、metadata.opf;EPUB 也可读取包内 OPF 和封面
漫画正文目录中的 ComicInfo.xml;CBZ/ZIP 也可读取包内 ComicInfo 和封面信息

外置元数据优先,缺的字段再从包内信息补齐。连载漫画的各个单话还可以继承合集中的作者、绘者、出版社和分类。标题、简介、作者、系列、卷号、话号、ISBN、出版日期等信息都能在详情页展示,具体取决于文件里提供了哪些字段。

如果不想手动维护这些 XML,可以给媒体库绑定一个「资源入库」工作流(使用对应的「小说」或「漫画」结束节点),在首次入库且缺少本地元数据时自动刮削。管理员也可以在条目菜单里点击「刮削元数据」,搜索并确认候选结果;结果会保存为外置 OPF 或 ComicInfo,不会改动原有的 EPUB/CBZ/ZIP 压缩包。

在线阅读与进度 ​

  • 小说支持切换章节,也能随手调整背景、字体、字号、行间距、段间距和左右边距
  • 漫画支持上下滚动和翻页阅读两种模式,还能调整图片缩放和点击翻页的方向
  • 详情页提供「阅读」或「继续阅读」入口,连载漫画也能直接挑选章节
  • 阅读进度按账号保存;开启首页「最近阅读」后,可从首页直接回到上次阅读位置

你可以在个人设置里分别开关首页「最近观看」「最近阅读」的展示,并设置播放和阅读记录的保留时间。排版设置和阅读进度互不干扰,重新扫描媒体库也不会清空你账号里的历史记录。

自动整理 ​

小说与漫画也支持自动重命名模板,但模板必须严格保持「作品目录/阅读单元名」两段结构。整理时会同步处理外置元数据、封面和缓存引用,并保留原有的条目标识和阅读进度;缺少必要字段或目标路径冲突时会先跳过。

基于 GPLv3 开源协议发布