# M8 生词本模块 (v0.7.1-0.7.10)

## 模块概述
- **版本范围**: 0.7.1 ~ 0.7.10
- **任务数**: 10
- **目标**: 构建完整的生词本系统，支持收藏、管理和导出

## 关键产出
- 收藏功能实现（心形图标）
- IndexedDB 数据库封装
- 生词本页面（列表展示、搜索、删除）
- 多格式导出（JSON、CSV、Anki）
- 生词导入功能
- 上下文保存功能

## 任务列表

### M8.1 收藏功能实现 [目标版本: 0.7.1]
**任务**: 点击心形收藏单词  
**验收标准**:
- [ ] 点击面板/Popup中的心形图标，保存单词
- [ ] 实心表示已收藏，空心表示未收藏
- [ ] 再次点击取消收藏

### M8.2 生词本数据库 [目标版本: 0.7.2]
**任务**: 使用 IndexedDB 存储  
**验收标准**:
- [ ] `src/shared/database.js` 封装 IndexedDB
- [ ] 表结构：id, word, phonetic, translation, context, url, timestamp
- [ ] 提供 `add()`, `remove()`, `getAll()`, `search()` 方法

### M8.3 生词本页面 [目标版本: 0.7.3]
**任务**: 查看收藏的单词  
**验收标准**:
- [ ] 设置页新增"生词本"菜单
- [ ] 以列表形式展示所有生词
- [ ] 显示：单词、音标、释义、收藏时间

### M8.4 生词本搜索 [目标版本: 0.7.4]
**任务**: 搜索生词  
**验收标准**:
- [ ] 生词本页顶部有搜索框
- [ ] 输入时实时过滤列表

### M8.5 生词本删除 [目标版本: 0.7.5]
**任务**: 移除生词  
**验收标准**:
- [ ] 每个生词项有删除按钮
- [ ] 支持批量删除（复选框+删除选中）

### M8.6 生词本导出（JSON） [目标版本: 0.7.6]
**任务**: 导出为 JSON 格式  
**验收标准**:
- [ ] "导出"按钮，选择 JSON 格式
- [ ] 下载 .json 文件，包含所有生词数据

### M8.7 生词本导出（CSV） [目标版本: 0.7.7]
**任务**: 导出为 CSV 格式  
**验收标准**:
- [ ] 导出选项包含 CSV 格式
- [ ] CSV 列：单词,音标,释义,例句,来源URL,时间

### M8.8 生词本导出（Anki） [目标版本: 0.7.8]
**任务**: 导出为 Anki 格式  
**验收标准**:
- [ ] 导出选项包含 Anki (.txt)
- [ ] 格式兼容 Anki 导入（制表符分隔）

### M8.9 生词本导入 [目标版本: 0.7.9]
**任务**: 从文件导入  
**验收标准**:
- [ ] "导入"按钮，支持 JSON 格式
- [ ] 导入后生词追加到现有生词本

### M8.10 收藏时添加上下文 [目标版本: 0.7.10]
**任务**: 保存单词出现的句子  
**验收标准**:
- [ ] 收藏时，自动提取单词所在句子（从页面文本中）
- [ ] 保存到生词本的 context 字段
- [ ] 生词本列表中可展开查看上下文

## 依赖
- **前置模块**: M1 基础架构模块, M2 划词核心模块, M5 设置系统模块
- **后置模块**: 无

## 参考资料
- [AGENTS.md](./AGENTS.md) - 规范文档
- [QUICK_REF.md](./QUICK_REF.md) - 快速参考
