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

96 lines
3.5 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.

# M2 划词核心模块 (v0.1.1-0.1.9)
## 模块概述
- **版本范围**: 0.1.1 ~ 0.1.9
- **任务数**: 9
- **目标**: 实现网页文本选择检测和沙拉图标/面板交互功能
## 关键产出
- 文本选择检测系统selection.js
- 沙拉图标组件Shadow DOM 封装)
- 词典结果面板组件DictPanel.js
- 智能位置计算和视口适配
- Popup 中的划词总开关
## 任务列表
### M2.1 文本选择检测 [目标版本: 0.1.1]
**任务**: 监听网页文本选择事件
**验收标准**:
- [ ] `src/content/selection.js` 存在
- [ ] 监听 `mouseup` 事件
- [ ] 当选中文本长度 > 0 时,打印选中文本到控制台
- [ ] 在任意网页划词Console 能看到选中的文本
### M2.2 获取选中文本坐标 [目标版本: 0.1.2]
**任务**: 计算选中文本的位置信息
**验收标准**:
- [ ] 函数 `getSelectionCoords()` 返回 `{x, y, width, height}`
- [ ] 支持单行文本选择
- [ ] 支持多行文本选择(返回首行或整个选区的矩形)
- [ ] 坐标值正确(相对于视口)
### M2.3 沙拉图标组件(基础) [目标版本: 0.1.3]
**任务**: 创建浮动图标元素
**验收标准**:
- [ ] `src/content/components/SaladIcon.js` 存在
- [ ] 图标为 24x24px 的 div背景色为绿色先不用真实Logo
- [ ] 使用 Shadow DOM 封装,样式不泄露到页面
- [ ] 图标 `position: fixed`,可定位到任意坐标
### M2.4 图标定位显示 [目标版本: 0.1.4]
**任务**: 划词后图标出现在选中文本附近
**验收标准**:
- [ ] 划词后图标显示在选中文本右上角x + width, y
- [ ] 图标不随页面滚动而偏移(使用 fixed 定位)
- [ ] 再次划词时,先隐藏旧图标,再显示新图标
- [ ] 点击页面空白处,图标消失
### M2.5 图标点击事件 [目标版本: 0.1.5]
**任务**: 点击图标触发回调
**验收标准**:
- [ ] 点击图标时,打印 "icon clicked" 到控制台
- [ ] 回调函数可配置(通过参数传入)
- [ ] 点击后图标不消失(后续再处理)
### M2.6 基础面板组件 [目标版本: 0.1.6]
**任务**: 创建词典结果展示面板
**验收标准**:
- [ ] `src/content/components/DictPanel.js` 存在
- [ ] 面板尺寸 400x300px白色背景带阴影
- [ ] 使用 Shadow DOM 封装
- [ ] 面板内显示标题 "词典结果"
- [ ] 提供 `show(x, y)``hide()` 方法
### M2.7 面板位置计算 [目标版本: 0.1.7]
**任务**: 面板智能定位,不超出视口
**验收标准**:
- [ ] 面板默认显示在图标右下方
- [ ] 如果右侧超出视口,显示在左侧
- [ ] 如果下方超出视口,显示在上方
- [ ] 面板边界与视口保留 10px 边距
### M2.8 图标-面板联动 [目标版本: 0.1.8]
**任务**: 点击图标显示面板
**验收标准**:
- [ ] 点击图标,面板显示在图标附近
- [ ] 面板显示时,图标保持可见
- [ ] 点击面板外部区域,面板关闭
- [ ] 按 ESC 键,面板关闭
### M2.9 图标显示开关 [目标版本: 0.1.9]
**任务**: Popup 中添加总开关
**验收标准**:
- [ ] Popup 中有一个 Toggle 开关,标签"启用划词"
- [ ] 开关状态保存到 `chrome.storage.local`
- [ ] 关闭开关后,网页划词不再显示图标
- [ ] 打开开关后,恢复划词显示图标
## 依赖
- **前置模块**: M1 基础架构模块
- **后置模块**: M3 词典系统模块, M5 设置系统模块
## 参考资料
- [AGENTS.md](./AGENTS.md) - 规范文档
- [QUICK_REF.md](./QUICK_REF.md) - 快速参考