docs: 同步 Doc 文档与当前代码状态
- 更新模块文件数(EPUBCore 31+2, EPUBTextRendering 13, ReaderView 5, EPUBUI 19) - 更新 Swift 版本(5.10)、iOS 版本(15.0)、行数等基本信息 - 补充新增文件文档(TextAnchor, RenderRequest, WebViewDebug, AssetRepository, TextIndexTable, TextPerformanceSampler, ChapterData, PageInteractionController 等) - 更新 RDEPUBLocation 模型(新增 rangeAnchor 字段) - 更新 RDEPUBReaderConfiguration(13 项配置)、Delegate 签名、Persistence(8 方法) - 修正 RDURLReaderController 归属(ReaderView → EPUBUI) - 移除过时的 LegacyRDReaderController 引用 - 标记 SS→RD 命名迁移为已完成
This commit is contained in:
+25
-18
@@ -4,8 +4,8 @@
|
||||
|
||||
RDReaderView 是一个 iOS 阅读器组件库(CocoaPods),提供开箱即用的 EPUB 阅读能力,并保留对纯文本翻页的支持。
|
||||
|
||||
- **最低 iOS 版本**:15.0(podspec 仍标注 9.0,实际 demo Podfile 要求 15.0)
|
||||
- **Swift 版本**:5.0+
|
||||
- **最低 iOS 版本**:15.0
|
||||
- **Swift 版本**:5.10+
|
||||
- **依赖**:ZIPFoundation(EPUB 解压)、DTCoreText(文本 EPUB 渲染)
|
||||
- **Demo 额外依赖**:SnapKit、SSAlertSwift
|
||||
|
||||
@@ -21,10 +21,13 @@ RDReaderView 是一个 iOS 阅读器组件库(CocoaPods),提供开箱即
|
||||
│
|
||||
┌───────────────────────────▼─────────────────────────────┐
|
||||
│ EPUBUI 层(library 级读者 UI) │
|
||||
│ RDEPUBReaderController(开箱即用入口) │
|
||||
│ RDEPUBReaderConfiguration / Theme / Persistence │
|
||||
│ TopToolView / BottomToolView / ChapterList / Settings │
|
||||
│ RDEPUBReaderController(开箱即用入口,~1995 行) │
|
||||
│ RDEPUBReaderConfiguration / Theme / Settings / Persistence│
|
||||
│ TopToolView / BottomToolView / ToolView 基类 │
|
||||
│ ChapterList / Highlights / Bookmarks / Settings 面板 │
|
||||
│ RDEPUBTextContentView / RDEPUBWebContentView │
|
||||
│ RDEPUBPageInteractionController / SelectionOverlayView │
|
||||
│ RDEPUBPageLayoutSnapshot / RDURLReaderController │
|
||||
└───────────────────────────┬─────────────────────────────┘
|
||||
│
|
||||
┌───────────────────────────▼─────────────────────────────┐
|
||||
@@ -40,10 +43,13 @@ RDReaderView 是一个 iOS 阅读器组件库(CocoaPods),提供开箱即
|
||||
│ EPUBCore 层(EPUB 引擎) │
|
||||
│ │
|
||||
│ Publication 层 │
|
||||
│ RDEPUBParser(+Archive / +Package / +TOC / …) │
|
||||
│ RDEPUBParser(+Archive / +Package / +TOC / │
|
||||
│ +ReadingProfile / +Resources) │
|
||||
│ RDEPUBPublication(出版物聚合对象) │
|
||||
│ RDEPUBModels(metadata / manifest / spine 模型) │
|
||||
│ RDEPUBReadingModels(location / viewport / highlight) │
|
||||
│ RDEPUBTextAnchor / RDEPUBTextRangeAnchor(文本锚点) │
|
||||
│ RDEPUBRenderRequest(渲染请求模型) │
|
||||
│ │
|
||||
│ Services 层 │
|
||||
│ RDEPUBResourceResolver(资源 URL 统一入口) │
|
||||
@@ -57,11 +63,12 @@ RDReaderView 是一个 iOS 阅读器组件库(CocoaPods),提供开箱即
|
||||
│ │
|
||||
│ Resource View 层 │
|
||||
│ RDEPUBWebView(+Configuration / +Reflowable / │
|
||||
│ +FixedLayout / +JavaScriptBridge) │
|
||||
│ +FixedLayout / +JavaScriptBridge / │
|
||||
│ +Search) │
|
||||
│ RDEPUBResourceURLSchemeHandler(ss-reader:// 协议) │
|
||||
│ RDEPUBStyleSheetBuilder / RDEPUBJavaScriptBridge │
|
||||
│ RDEPUBFixedLayoutTemplate / RDEPUBAssetRepository │
|
||||
│ RDEPUBRenderRequest │
|
||||
│ RDEPUBWebViewDebug(调试日志工具) │
|
||||
│ │
|
||||
│ Search 层 │
|
||||
│ RDEPUBSearchEngine(协议)/ RDEPUBHTMLSearchEngine │
|
||||
@@ -75,15 +82,10 @@ RDReaderView 是一个 iOS 阅读器组件库(CocoaPods),提供开箱即
|
||||
│ RDEPUBTextRendererSupport / RDEPUBTextPaginationSupport │
|
||||
│ RDEPUBTextBookBuilder / RDPlainTextBookBuilder │
|
||||
│ RDEPUBTextLayouter / RDEPUBTextLayoutFrame │
|
||||
│ RDEPUBTextBookCache / RDEPUBChapterData │
|
||||
│ RDEPUBTextIndexTable / RDEPUBTextPerformanceSampler │
|
||||
│ RDEPUBTextSearchEngine │
|
||||
└──────────────────────────────────────────────────────────┘
|
||||
|
||||
┌──────────────────────────────────────────────────────────┐
|
||||
│ LegacyRDReaderController/(旧版阅读器,保留兼容) │
|
||||
│ RDReaderController(旧版)/ RDReaderManager │
|
||||
│ RDReaderContentView / RDReaderEPUBContentView │
|
||||
│ SSChapterListController / SSEventTrigger │
|
||||
└──────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
@@ -239,6 +241,7 @@ session.clearPendingNavigation() // 取消待执行跳转
|
||||
| `+Reflowable` | 注入分页 CSS、滚动到指定 progression、接收 JS 事件 |
|
||||
| `+FixedLayout` | fixed-layout HTML wrapper 生成和加载 |
|
||||
| `+JavaScriptBridge` | JS ↔ Swift 消息路由、选区、高亮、进度上报 |
|
||||
| `+Search` | 搜索高亮装饰 |
|
||||
|
||||
#### ss-reader:// 协议
|
||||
|
||||
@@ -323,7 +326,10 @@ present(controller, animated: true)
|
||||
| `showsTableOfContents` | `true` | 是否显示目录入口 |
|
||||
| `allowsHighlights` | `true` | 是否显示高亮入口 |
|
||||
| `showsSettingsPanel` | `true` | 是否显示设置入口 |
|
||||
| `reflowableContentInsets` | (40,16,40,16) | 可重排内容内边距 |
|
||||
| `fixedContentInset` | .zero | 固定版式内容内边距 |
|
||||
| `theme` | `.light` | 主题 |
|
||||
| `fixedLayoutFit` | `.page` | 固定版式适配模式 |
|
||||
| `fixedLayoutSpreadMode` | `.automatic` | fixed-layout spread 模式 |
|
||||
| `textRenderingEngine` | `.dtCoreText` | 文本 EPUB 渲染引擎 |
|
||||
|
||||
@@ -377,6 +383,7 @@ struct RDEPUBLocation: Codable, Equatable {
|
||||
var progression: Double // 视口起始位置 [0, 1]
|
||||
var lastProgression: Double? // 视口末尾位置 [0, 1]
|
||||
var fragment: String? // 锚点
|
||||
var rangeAnchor: RDEPUBTextRangeAnchor? // 文本范围锚点(用于文本 EPUB 高亮定位)
|
||||
}
|
||||
```
|
||||
|
||||
@@ -393,8 +400,8 @@ struct RDEPUBLocation: Codable, Equatable {
|
||||
|
||||
| 问题 | 说明 |
|
||||
|------|------|
|
||||
| Demo 层 RDReaderController 过大 | 约 1900+ 行,仍混有 EPUB 加载、UI 管理、数据源逻辑,待进一步拆分 |
|
||||
| RDEPUBParser.swift 仍偏大 | 约 900 行,虽已拆出多个扩展文件,OPF metadata 细节仍集中 |
|
||||
| RDEPUBReaderController 过大 | 约 1995 行,仍混有 EPUB 加载、UI 管理、数据源逻辑,待进一步拆分 |
|
||||
| 部分 UI 文件仍然偏大 | RDEPUBTextContentView ~728 行、RDEPUBTextBookBuilder ~717 行,需继续拆分 |
|
||||
| 横竖屏切换已接入一阶段支持 | `RDEPUBReaderController.viewWillTransition()` 统一接管正文重分页,`RDReaderView` 保留容器级双页布局刷新;仍需补齐固定回归矩阵 |
|
||||
| 固定手势分区比例 | 三等分固定写死,不支持自定义 |
|
||||
| 自动化测试为首批接入状态 | 已有 `ReadViewSDKDemoTests` / `ReadViewSDKDemoUITests` 与 parser / resolver / persistence / smoke 用例,分页、恢复链路和更多 UI 闭环仍需继续补齐 |
|
||||
@@ -416,7 +423,7 @@ pod install
|
||||
|
||||
| 依赖 | 用途 | 使用层 |
|
||||
|------|------|--------|
|
||||
| ZIPFoundation | EPUB ZIP 解压 | RDEPUBParser+Archive |
|
||||
| ZIPFoundation (~> 0.9) | EPUB ZIP 解压 | RDEPUBParser+Archive |
|
||||
| DTCoreText | HTML → NSAttributedString | RDEPUBDTCoreTextRenderer |
|
||||
| SnapKit | Demo 布局 | Demo 层 |
|
||||
| SSAlertSwift | Demo 弹窗 | Demo 层 |
|
||||
|
||||
Reference in New Issue
Block a user