# 图片上传功能任务清单

## 任务列表

- [x] 任务 1：创建图片处理工具模块 `src/utils/image.ts`
  - [ ] 子任务 1.1：实现 `extractImageReferences()` 函数，检测 Markdown 中的图片引用
  - [ ] 子任务 1.2：实现 `getAbsolutePath()` 函数，将相对路径转为绝对路径
  - [ ] 子任务 1.3：实现 `replaceImagePaths()` 函数，替换图片路径

- [x] 任务 2：创建图片上传服务 `src/service/image-uploader.ts`
  - [ ] 子任务 2.1：实现 `uploadImage()` 方法，调用 Halo 媒体 API 上传单个图片
  - [ ] 子任务 2.2：实现 `uploadImages()` 方法，批量上传图片并返回映射表
  - [ ] 子任务 2.3：实现缓存机制，记录已上传图片的 URL

- [x] 任务 3：更新设置界面 `src/settings.ts`
  - [x] 子任务 3.1：在设置界面添加图片上传开关
  - [x] 子任务 3.2：添加上传路径配置项
  - [x] 子任务 3.3：更新设置数据结构

- [x] 任务 5：添加国际化文案 `src/i18n/locales/*.json`
  - [x] 子任务 5.1：添加英文文案
  - [x] 子任务 5.2：添加简体中文文案
  - [x] 子任务 5.3：添加繁体中文文案

- [x] 任务 4：集成图片上传到发布流程 `src/service/index.ts`
  - [x] 子任务 4.1：在 `publishPost()` 方法中调用图片上传
  - [x] 子任务 4.2：处理上传后的路径替换
  - [x] 子任务 4.3：添加错误处理和用户提示

- [ ] 任务 5：添加国际化文案 `src/i18n/locales/*.json`
  - [ ] 子任务 5.1：添加英文文案
  - [ ] 子任务 5.2：添加简体中文文案
  - [ ] 子任务 5.3：添加繁体中文文案

- [x] 任务 6：编译和测试
  - [x] 子任务 6.1：运行 `pnpm build` 确保编译通过
  - [x] 子任务 6.2：复制编译产物到插件目录
  - [x] 子任务 6.3：手动测试图片上传功能

---

## 任务依赖关系

- [任务 1] 和 [任务 2] 可并行开发
- [任务 3] 可在 [任务 2] 完成后开始
- [任务 4] 依赖 [任务 1] 和 [任务 2] 完成
- [任务 5] 可与其他任务并行进行
- [任务 6] 需要所有其他任务完成后执行

---

## 实现顺序建议

1. 先完成 [任务 1] 和 [任务 2]（核心功能）
2. 再完成 [任务 3]（配置界面）
3. 然后完成 [任务 4]（集成）
4. [任务 5] 和 [任务 3] 可同时进行
5. 最后 [任务 6]（测试）