feat(w3): add continuous read mode and Wave 3 plan
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>
This commit is contained in:
@@ -0,0 +1,137 @@
|
||||
# 笔临 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`
|
||||
|
||||
- [x] **Step 1:** export-matrix 类型定义
|
||||
- [x] **Step 2:** GlobalSettings 阅读/专注字段
|
||||
- [x] **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`
|
||||
|
||||
- [x] **Step 1:** ReadModeOverlay 全屏 + 虚拟 3 章 + scroll-snap
|
||||
- [x] **Step 2:** 设备宽度 / 字体主题切换与持久化
|
||||
- [x] **Step 3:** 章节侧栏 + 分卷右键入口
|
||||
- [x] **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`
|
||||
|
||||
- [x] **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 |
|
||||
Reference in New Issue
Block a user