Files
Obsidian/.trae/specs/image-upload/tasks.md
T
Serendipity 8ccc32be0b feat(halo): 添加图片上传功能并完善发布流程
- 实现图片上传服务,支持检测并上传本地图片到 Halo
- 优化发布流程,添加详细日志和错误处理
- 更新任务清单和检查列表以反映完成状态
- 添加 Halo 博客写作技能文档
2026-04-26 16:47:41 +08:00

2.3 KiB

图片上传功能任务清单

任务列表

  • 任务 1:创建图片处理工具模块 src/utils/image.ts

    • 子任务 1.1:实现 extractImageReferences() 函数,检测 Markdown 中的图片引用
    • 子任务 1.2:实现 getAbsolutePath() 函数,将相对路径转为绝对路径
    • 子任务 1.3:实现 replaceImagePaths() 函数,替换图片路径
  • 任务 2:创建图片上传服务 src/service/image-uploader.ts

    • 子任务 2.1:实现 uploadImage() 方法,调用 Halo 媒体 API 上传单个图片
    • 子任务 2.2:实现 uploadImages() 方法,批量上传图片并返回映射表
    • 子任务 2.3:实现缓存机制,记录已上传图片的 URL
  • 任务 3:更新设置界面 src/settings.ts

    • 子任务 3.1:在设置界面添加图片上传开关
    • 子任务 3.2:添加上传路径配置项
    • 子任务 3.3:更新设置数据结构
  • 任务 5:添加国际化文案 src/i18n/locales/*.json

    • 子任务 5.1:添加英文文案
    • 子任务 5.2:添加简体中文文案
    • 子任务 5.3:添加繁体中文文案
  • 任务 4:集成图片上传到发布流程 src/service/index.ts

    • 子任务 4.1:在 publishPost() 方法中调用图片上传
    • 子任务 4.2:处理上传后的路径替换
    • 子任务 4.3:添加错误处理和用户提示
  • 任务 5:添加国际化文案 src/i18n/locales/*.json

    • 子任务 5.1:添加英文文案
    • 子任务 5.2:添加简体中文文案
    • 子任务 5.3:添加繁体中文文案
  • 任务 6:编译和测试

    • 子任务 6.1:运行 pnpm build 确保编译通过
    • 子任务 6.2:复制编译产物到插件目录
    • 子任务 6.3:手动测试图片上传功能

任务依赖关系

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

实现顺序建议

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