feat: 支持 EPUB 阅读并改善规则兼容与阅读稳定性

支持 EPUB 2/3 导入、目录、封面和章节插图,保留本地书管理与阅读进度。
修复 JSON 模板、动态替换与请求参数兼容,以及 RSS 翻页和连续滚动定位。
更新编辑器工具栏和回归测试,发布版本为 0.1.12(build 18)。
This commit is contained in:
Aminark
2026-10-24 00:58:11 +08:00
parent 3322fd71db
commit 67bc212ffd
58 changed files with 2331 additions and 244 deletions
@@ -84,6 +84,13 @@ public struct RSSRuleParser: Sendable {
private func flatten(_ values: [JSONValue]) -> [JSONValue] {
values.flatMap { value in
if case .array(let items) = value { return items }
// Text rules serialize selected JSON arrays. Expand them before
// evaluating article fields, just as for an already parsed array.
if case .string(let text) = value,
text.trimmingCharacters(in: .whitespacesAndNewlines).hasPrefix("["),
let items = try? JSONDecoder().decode([JSONValue].self, from: Data(text.utf8)) {
return items
}
return [value]
}
}