Files
Obsidian/.trae/documents/obsidian-halo功能增强计划.md
T
Serendipity 7d332d3b8c feat(halo): 添加图片自动上传功能
- 新增图片处理工具模块 `src/utils/image.ts`,包含图片引用提取、绝对路径解析和路径替换功能
- 新增图片上传服务 `src/service/image-uploader.ts`,支持调用 Halo 媒体 API 上传图片并实现缓存机制
- 在设置界面添加图片上传开关和上传路径配置项
- 更新发布流程,在提交到 Halo 前自动检测并上传本地图片,替换为远程 URL
- 添加英文、简体中文和繁体中文的国际化文案
- 更新插件版本至 1.1.1 并完善相关配置文件
2026-04-26 16:11:11 +08:00

141 lines
3.7 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.
# obsidian-halo 插件功能增强计划
## 当前功能分析
当前插件已实现:
- ✅ 发布文档到 Halo
- ✅ 从 Halo 拉取文档
- ✅ 更新已发布文章内容
- ✅ 多站点管理
- ✅ Frontmatter 元数据同步(标题、摘要、分类、标签、封面)
---
## 功能增强方向
### 1. 图片/附件上传(TODO 清单已标注)
**优先级:高 | 难度:中**
- [ ] 自动检测并上传笔记中的图片到 Halo 媒体库
- [ ] 支持粘贴截图自动上传
- [ ] 转换本地图片路径为 Halo URL
- [ ] 附件管理(支持其他文件类型)
### 2. 批量操作功能
**优先级:高 | 难度:中**
- [ ] 批量发布:选择多个笔记一次性发布
- [ ] 批量同步:检测所有已发布笔记的更新状态
- [ ] 批量管理:统一管理 Halo 上的文章列表
### 3. 双向同步增强
**优先级:高 | 难度:高**
- [ ] 差异检测:比较本地和 Halo 版本的修改时间
- [ ] 选择性同步:仅同步本地/仅同步 Halo/完全合并
- [ ] 冲突解决:处理两边同时修改的情况
- [ ] 同步历史:记录每次同步的详情
### 4. 高级发布选项
**优先级:中 | 难度:中**
- [ ] 自定义 Slug 格式(支持模板变量:`{{title}}`, `{{date}}`
- [ ] 发布时间调度(定时发布)
- [ ] SEO 元数据设置(meta description、keywords
- [ ] 文章属性控制(评论开关、置顶、优先级、可见性)
### 5. 内容预览
**优先级:中 | 难度:中**
- [ ] 发布前预览 Halo 渲染效果
- [ ] 预览不同主题下的样式
- [ ] 实时预览面板
### 6. 状态管理和日志
**优先级:中 | 难度:中**
- [ ] 插件面板:显示所有同步状态
- [ ] 同步历史记录
- [ ] 错误日志和告警
- [ ] 同步状态图标(同步中、已同步、有冲突)
### 7. 搜索和过滤
**优先级:低 | 难度:中**
- [ ] 按分类/标签筛选 Halo 文章列表
- [ ] 搜索已发布文章
- [ ] 高级筛选条件(日期范围、发布状态)
### 8. 模板支持
**优先级:低 | 难度:中**
- [ ] 发布模板:预定义 frontmatter 结构
- [ ] 快捷键自定义默认值
- [ ] 模板变量支持
### 9. 命令面板增强
**优先级:低 | 难度:低**
- [ ] 键盘快捷键支持
- [ ] 快速切换站点
- [ ] 快捷操作菜单
### 10. 用户界面优化
**优先级:低 | 难度:中**
- [ ] 进度条显示
- [ ] 更详细的错误提示
- [ ] 通知中心整合
- [ ] 右键菜单支持
---
## 推荐优先级(建议优先实现)
1. **图片/附件上传** - 核心功能缺失,影响使用体验
2. **批量操作** - 提升工作效率
3. **高级发布选项** - 增加灵活性
4. **状态管理和日志** - 问题排查和监控
5. **双向同步增强** - 高级用户需求
---
## 技术实现要点
### 图片上传实现思路
```typescript
// 1. 解析 Markdown 中的图片引用
// 2. 上传到 Halo 媒体库获取 URL
// 3. 替换本地路径为远程 URL
// Halo 媒体上传 API 端点
POST /apis/api.console.halo.run/v1alpha1/attachments/upload
```
### 批量操作实现思路
```typescript
// 1. 创建批量选择界面
// 2. 批量处理队列
// 3. 进度显示和错误处理
```
### 同步检测实现思路
```typescript
// 1. 保存本地最后同步时间戳
// 2. 对比 Halo 文章的更新时间
// 3. 标记需要更新的文章
```
---
## 开发建议
1. **模块化开发**:新增功能独立成模块
2. **配置化**:新功能支持在设置中开关
3. **国际化**:所有文案支持 i18n
4. **错误处理**:完善异常捕获和用户提示
5. **测试**:添加单元测试和集成测试
---
请确认需要实现哪些功能,我将制定详细的技术方案。