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
+7 -5
View File
@@ -12,14 +12,16 @@ let package = Package(
],
dependencies: [
.package(url: "https://github.com/scinfu/SwiftSoup.git", exact: "2.13.5"),
.package(url: "https://github.com/tid-kijyun/Kanna.git", exact: "6.1.0")
.package(url: "https://github.com/tid-kijyun/Kanna.git", exact: "6.1.0"),
.package(url: "https://github.com/weichsel/ZIPFoundation.git", exact: "0.9.20")
],
targets: [
.target(
name: "LegadoCore",
dependencies: [
.product(name: "SwiftSoup", package: "SwiftSoup"),
.product(name: "Kanna", package: "Kanna")
.product(name: "Kanna", package: "Kanna"),
.product(name: "ZIPFoundation", package: "ZIPFoundation")
],
linkerSettings: [
.linkedFramework("JavaScriptCore"),
@@ -29,7 +31,7 @@ let package = Package(
),
.testTarget(
name: "LegadoCoreTests",
dependencies: ["LegadoCore"],
dependencies: ["LegadoCore", .product(name: "ZIPFoundation", package: "ZIPFoundation")],
resources: [.copy("Fixtures")]
),
.target(
@@ -42,7 +44,7 @@ let package = Package(
"Rules/ReplaceRuleManagementView.swift", "Rules/ReplaceRuleEditorView.swift", "Rules/RuleSubscriptionView.swift", "Rules/TxtTocRuleManagementView.swift", "Rules/Editor",
"Books/BookDetailView.swift", "Books/LocalBookDetailView.swift", "Books/SourceSwitchView.swift",
"Reader/ReaderAppearance.swift", "Reader/ReaderSpeechController.swift", "Reader/ReaderSupport.swift",
"Reader/ReaderTextView.swift", "Reader/ReaderScrollView.swift", "Reader/ReaderView.swift"
"Reader/EPUBIllustrationsView.swift", "Reader/ReaderTextView.swift", "Reader/ReaderScrollView.swift", "Reader/ReaderView.swift"
],
sources: [
"Sources/SourceLibraryModel.swift", "Rules/ReplaceRuleLibraryModel.swift", "Search/SearchViewModel.swift",
@@ -52,7 +54,7 @@ let package = Package(
),
.testTarget(
name: "LegadoAppModelsTests",
dependencies: ["LegadoAppModels", "LegadoCore"]
dependencies: ["LegadoAppModels", "LegadoCore", .product(name: "ZIPFoundation", package: "ZIPFoundation")]
)
]
)