2026-02-09 15:52:45 +08:00

108 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# M3 词典系统模块 (v0.2.1-0.2.11)
## 模块概述
- **版本范围**: 0.2.1 ~ 0.2.11
- **任务数**: 11
- **目标**: 构建词典接口体系,支持多词典源查询和结果展示
## 关键产出
- 词典接口基类设计DictionaryBase
- 词典管理器(支持多词典注册和查询)
- 必应词典和有道词典实现
- 后台查询接口Background Service Worker
- 结果展示组件(支持折叠/展开)
## 任务列表
### M3.1 词典接口基类设计 [目标版本: 0.2.1]
**任务**: 定义词典抽象接口
**验收标准**:
- [ ] `src/shared/dictionary/base.js` 存在
- [ ] 定义 `DictionaryBase`
- [ ] 要求子类实现 `search(word)` 方法
- [ ] 定义统一的返回格式:`{word, phonetic, meanings[], examples[]}`
### M3.2 词典管理器 [目标版本: 0.2.2]
**任务**: 管理多个词典实例
**验收标准**:
- [ ] `src/shared/dictionary/manager.js` 存在
- [ ] 提供 `register(name, dictionaryInstance)` 注册词典
- [ ] 提供 `search(word, dictNames[])` 查询指定词典
- [ ] 提供 `getAll()` 获取所有已注册词典
### M3.3 必应词典实现Mock版 [目标版本: 0.2.3]
**任务**: 先实现假数据版本
**验收标准**:
- [ ] `src/shared/dictionary/bing.js` 存在
- [ ] 继承 `DictionaryBase`
- [ ] `search(word)` 返回模拟数据不调用真实API
- [ ] 模拟数据包含:单词、音标、词性、中文释义、例句
### M3.4 后台查询接口 [目标版本: 0.2.4]
**任务**: background 处理词典查询请求
**验收标准**:
- [ ] background 监听 `DICT_SEARCH` 消息
- [ ] 调用词典管理器执行查询
- [ ] 返回查询结果给 content script
- [ ] Console 可看到查询结果
### M3.5 结果展示组件(静态) [目标版本: 0.2.5]
**任务**: 面板中显示词典结果
**验收标准**:
- [ ] 面板内显示单词标题(大字)
- [ ] 显示音标(如果有)
- [ ] 显示词性和中文释义列表
- [ ] 显示1-2个例句英文+中文翻译)
### M3.6 点击图标查词Mock数据 [目标版本: 0.2.6]
**任务**: 打通完整流程
**验收标准**:
- [ ] 网页划词,点击图标
- [ ] 面板显示该单词的 Mock 查询结果
- [ ] 结果显示格式正确,可读
### M3.7 必应词典真实API [目标版本: 0.2.7]
**任务**: 调用必应词典接口
**验收标准**:
- [ ] 使用 fetch 请求必应词典网页
- [ ] 解析 HTML 提取释义数据
- [ ] 错误时返回友好提示(如"查询失败,请检查网络"
- [ ] 替换 Mock 数据,显示真实结果
### M3.8 加载状态显示 [目标版本: 0.2.8]
**任务**: 查询时显示 loading
**验收标准**:
- [ ] 点击图标后,面板先显示 loading 动画
- [ ] 查询完成后loading 消失,显示结果
- [ ] 查询超时5秒显示"查询超时"
### M3.9 有道词典实现 [目标版本: 0.2.9]
**任务**: 添加第二个词典源
**验收标准**:
- [ ] `src/shared/dictionary/youdao.js` 存在
- [ ] 实现 `search(word)` 调用有道API或网页
- [ ] 注册到词典管理器
- [ ] 面板中可同时显示必应和有道结果
### M3.10 结果折叠/展开 [目标版本: 0.2.10]
**任务**: 词典结果可折叠
**验收标准**:
- [ ] 每个词典结果区域有标题栏(词典名+展开/折叠按钮)
- [ ] 点击标题栏可折叠/展开该词典结果
- [ ] 折叠状态用图标表示(▼/▶)
### M3.11 词典图标标识 [目标版本: 0.2.11]
**任务**: 每个词典显示对应Logo
**验收标准**:
- [ ] 必应结果前有必应图标(或颜色标识)
- [ ] 有道结果前有道图标
- [ ] 图标使用小尺寸16x16px
## 依赖
- **前置模块**: M1 基础架构模块, M2 划词核心模块
- **后置模块**: M4 Popup查词模块, M6 触发方式模块, M9 API账号模块
## 参考资料
- [AGENTS.md](./AGENTS.md) - 规范文档
- [QUICK_REF.md](./QUICK_REF.md) - 快速参考