Introduce ReadModeOverlay with device width and font theme persistence, sidebar and volume menu entry, plus E2E-READ-01 through 03. Co-authored-by: Cursor <cursoragent@cursor.com>
4.1 KiB
笔临 Wave 3 导出阅读 Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: 交付 v1.4.0:导出矩阵(txt/md/docx/pdf)、连续阅读模式、驾驶舱补全、专注环境音。
Architecture: ExportMatrixService 扩展 ExportService 模式;docx 用 docx 库;pdf 用 Electron printToPDF + HTML 模板;ReadModeOverlay 虚拟 3 章 + scroll-snap;阅读偏好写入 GlobalSettings。
Tech Stack: Electron 36、docx、TypeScript、Vitest、Playwright
Spec: docs/superpowers/specs/2026-07-08-bilin-master-completion-design.md §7
Master Program: Wave 3/5 → v1.4.0
File Map
| 文件 | 职责 |
|---|---|
src/shared/export-matrix.ts |
ExportFormat/Scope/Options 类型 |
src/main/services/export-matrix.service.ts |
txt/md/docx/pdf 导出 |
src/main/export-matrix-bootstrap.ts |
延迟加载 docx,注册 IPC |
src/main/ipc/handlers/export-matrix.handler.ts |
EXPORT_MATRIX_* |
src/renderer/components/read/ReadModeOverlay.tsx |
连续阅读全屏 |
src/renderer/stores/useReadModeStore.ts |
阅读模式状态 |
src/renderer/components/export/ExportModal.tsx |
导出矩阵 UI |
src/renderer/components/cockpit/CockpitModal.tsx |
今日大纲任务 |
src/renderer/components/focus/FocusModeOverlay.tsx |
环境音效 |
e2e/read-mode.spec.ts |
E2E-READ-01~03 |
e2e/export-matrix.spec.ts |
E2E-PDF-01 等 |
Task 1: 类型 + 阅读偏好
Files:
-
Create:
src/shared/export-matrix.ts -
Modify:
src/shared/types.ts—readModeFontTheme、readModeDeviceWidth、enableFocusAmbientSound -
Step 1: export-matrix 类型定义
-
Step 2: GlobalSettings 阅读/专注字段
-
Step 3: settings store 默认值
Task 2: 连续阅读模式
Files:
-
Create:
src/renderer/stores/useReadModeStore.ts -
Create:
src/renderer/components/read/ReadModeOverlay.tsx -
Modify:
EditorLayout.tsx、VolumeContextMenu.tsx、App.tsx、layout.css -
Step 1: ReadModeOverlay 全屏 + 虚拟 3 章 + scroll-snap
-
Step 2: 设备宽度 / 字体主题切换与持久化
-
Step 3: 章节侧栏 + 分卷右键入口
-
Step 4: i18n
readMode.*
Task 3: ExportMatrixService txt/md
Files:
-
Create:
src/main/services/export-matrix.service.ts -
Create:
src/main/ipc/handlers/export-matrix.handler.ts -
Step 1: 章/卷/全书范围解析
-
Step 2: txt/md 导出 + 选项(批注/AI 标注)
-
Step 3: UT 章级 txt 导出
Task 4: docx 导出
Files:
-
Modify:
package.json—docx -
Modify:
export-matrix.service.ts -
Step 1: docx 目录与章节结构
-
Step 2: IT-DOCX-01 含目录
Task 5: pdf 导出
Files:
-
Modify:
export-matrix.service.ts -
Step 1: HTML 模板 + printToPDF
-
Step 2: A4 页眉页脚
-
Step 3: E2E mock 路径 BILIN_E2E_PDF_SAVE
Task 6: ExportModal 矩阵 UI
Files:
-
Modify:
ExportModal.tsx、preload、ipc-channels -
Step 1: 格式/范围/选项选择
-
Step 2: 保存对话框与 toast
Task 7: 驾驶舱 + 专注环境音
Files:
-
Modify:
CockpitModal.tsx -
Modify:
FocusModeOverlay.tsx、SettingsPage.tsx -
Step 1: 今日大纲任务 Top 5(pending + expectedWordCount)
-
Step 2: 专注模式环境音开关与播放
Task 8: E2E + v1.4.0
Files:
-
Create:
e2e/read-mode.spec.ts、e2e/export-matrix.spec.ts -
Modify:
package.json、README.md、SettingsPage.tsx -
Step 1: E2E-READ-01~03
-
Step 2: E2E-PDF-01
-
Step 3: 全量 test + 相关 E2E
-
Step 4: 版本 v1.4.0
-
Step 5: 勾选本 plan 全部 checkbox
Plan 自检
| Spec §7 要求 | Task |
|---|---|
| ExportMatrix 四格式 | Task 3–6 |
| ReadModeOverlay | Task 2 |
| 驾驶舱大纲任务 | Task 7 |
| E2E-READ / E2E-PDF | Task 8 |