# obsidian-halo 插件功能增强计划 ## 当前功能分析 当前插件已实现: - ✅ 发布文档到 Halo - ✅ 从 Halo 拉取文档 - ✅ 更新已发布文章内容 - ✅ 多站点管理 - ✅ Frontmatter 元数据同步(标题、摘要、分类、标签、封面) - ✅ 图片上传功能 - ✅ 文章列表增强(分页、筛选) - ✅ Markdown 文件导入 - ✅ 删除文章功能(支持选择性删除) - ✅ 标签管理功能 - ✅ 分类管理功能 - ✅ 导出文章为 Markdown - ✅ 导出文章为 JSON - ✅ 搜索 Halo 文章 - ✅ 同步状态面板 - ✅ 同步历史记录 - ✅ 使用指南文档 --- ## 已完成功能(2024年4月实现) ### 1. 图片/附件上传 ✅ **优先级:高 | 难度:中** - [x] 自动检测并上传笔记中的图片到 Halo 媒体库 - [x] 转换本地图片路径为 Halo URL ### 2. 批量操作功能 ✅ **优先级:高 | 难度:中** - [x] 文章列表查看(支持分页、筛选) - [x] 从 Markdown 文件导入文章 ### 3. 标签/分类管理 ✅ **优先级:高 | 难度:中** - [x] 标签管理(创建、编辑、删除) - [x] 分类管理(创建、编辑、删除) ### 4. 导出功能 ✅ **优先级:中 | 难度:中** - [x] 导出文章为 Markdown - [x] 导出文章为 JSON(备份用) ### 5. 搜索功能 ✅ **优先级:中 | 难度:中** - [x] 搜索 Halo 文章(按标题、slug 搜索) - [x] 按发布状态筛选 ### 6. 删除功能 ✅ **优先级:高 | 难度:中** - [x] 选择性删除(仅 Halo / 仅本地 / 全部) - [x] 二次确认机制 ### 7. 同步状态面板 ✅ (新增) **优先级:高 | 难度:中** - [x] 侧边栏面板显示已发布文章列表 - [x] 快速操作按钮(更新、拉取) - [x] 同步历史记录 - [x] 同步图标侧边栏入口 ### 8. 使用指南 ✅ (新增) **优先级:高 | 难度:中** - [x] 完整的命令列表说明 - [x] 快速开始教程 - [x] 常见问题解答 --- ## 待实现功能 ### 1. 双向同步增强 **优先级:高 | 难度:高** - [ ] 差异检测:比较本地和 Halo 版本的修改时间 - [ ] 选择性同步:仅同步本地/仅同步 Halo/完全合并 - [ ] 冲突解决:处理两边同时修改的情况 - [ ] 同步历史:记录每次同步的详情 ✅(已完成基础功能) ### 2. 高级发布选项 **优先级:中 | 难度:中** - [ ] 自定义 Slug 格式(支持模板变量:`{{title}}`, `{{date}}`) - [ ] 发布时间调度(定时发布) - [ ] SEO 元数据设置(meta description、keywords) - [ ] 文章属性控制(评论开关、置顶、优先级、可见性) ### 3. 内容预览 **优先级:中 | 难度:中** - [ ] 发布前预览 Halo 渲染效果 - [ ] 预览不同主题下的样式 - [ ] 实时预览面板 ### 4. 模板支持 **优先级:低 | 难度:中** - [ ] 发布模板:预定义 frontmatter 结构 - [ ] 快捷键自定义默认值 - [ ] 模板变量支持 ### 5. 命令面板增强 **优先级:低 | 难度:低** - [ ] 键盘快捷键支持 - [ ] 快速切换站点 - [ ] 快捷操作菜单 ### 6. 用户界面优化 **优先级:低 | 难度:中** - [ ] 进度条显示 - [ ] 更详细的错误提示 - [ ] 通知中心整合 - [ ] 右键菜单支持 --- ## 推荐优先级(建议优先实现) 1. **高级发布选项** - 增加灵活性 2. **内容预览** - 提升用户体验 3. **模板支持** - 提升工作效率 --- ## 技术实现要点 ### 图片上传实现思路 ```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. **测试**:添加单元测试和集成测试 --- ## 文件结构 ``` src/ ├── commands/ # 命令相关 │ ├── import-markdown.ts # ✅ 导入 Markdown 文件 │ ├── delete-post.ts # ✅ 删除文章 │ ├── manage-taxonomy.ts # ✅ 管理标签/分类 │ ├── export-post.ts # ✅ 导出文章 │ └── search-posts.ts # ✅ 搜索文章 ├── modals/ # 弹窗相关 │ ├── file-preview-modal.ts # ✅ 文件预览 │ ├── delete-confirm-modal.ts # ✅ 删除确认 │ ├── tag-manager-modal.ts # ✅ 标签管理 │ ├── category-manager-modal.ts # ✅ 分类管理 │ ├── search-modal.ts # ✅ 搜索弹窗 │ └── sync-history-modal.ts # ✅ 同步历史 ├── views/ # 视图相关 │ └── sync-status-view.ts # ✅ 同步状态面板 ├── service/ # 服务层 │ ├── index.ts # Halo API 服务 │ └── image-uploader.ts # ✅ 图片上传 ├── utils/ # 工具层 │ ├── image.ts # ✅ 图片处理 │ └── ... ├── i18n/ # 国际化 │ └── locales/ │ ├── zh-cn.json # 中文 │ ├── en.json # 英文 │ └── zh-tw.json # 繁体中文 └── main.ts # 主入口 docs/ └── usage-guide.md # ✅ 使用指南 ``` --- 最后更新:2024年4月26日