# Obsidian Halo 插件功能增强计划 ## 一、功能对比分析 ### Halo CLI 已有功能 | 分类 | 功能 | CLI 支持 | |------|------|---------| | **文章管理** | 发布文章 | ✅ 完整 | | | 更新文章 | ✅ 完整 | | | 删除文章 | ✅ 完整 | | | 列出文章列表 | ✅ 完整 | | | 查看文章详情 | ✅ 完整 | | | 批量操作 | ✅ PowerShell 脚本 | | **导出/导入** | 导出为 JSON | ✅ 完整 | | | 导出为 Markdown | ✅ 完整 | | | 从 JSON 导入 | ✅ 完整 | | | 从 Markdown 导入 | ✅ 完整 | | **标签管理** | 列出标签 | ✅ 完整 | | | 创建标签 | ✅ 完整 | | | 更新标签 | ✅ 完整 | | | 删除标签 | ✅ 完整 | | | 为文章设置标签 | ✅ 完整 | | **分类管理** | 列出分类 | ✅ 完整 | | | 创建分类 | ✅ 完整 | | | 更新分类 | ✅ 完整 | | | 删除分类 | ✅ 完整 | | | 设置优先级 | ✅ 完整 | | **其他内容** | 单页管理 | ✅ 完整 | | | 搜索内容 | ✅ 完整 | | **系统管理** | 附件管理 | ✅ 完整 | | | 备份管理 | ✅ 完整 | | | 动态管理 | ✅ 完整 | | | 评论管理 | ✅ 完整 | | | 插件管理 | ✅ 完整 | | | 主题管理 | ✅ 完整 | --- ## 二、Obsidian 插件当前功能 | 分类 | 功能 | 状态 | |------|------|------| | **文章管理** | 发布文章 | ✅ 已实现 | | | 更新文章(同步 Halo 到本地) | ✅ 已实现 | | | 列出文章列表 | ❌ 缺失 | | | 查看文章详情 | ❌ 缺失 | | | 删除文章 | ❌ 缺失 | | | 批量发布 | ❌ 缺失 | | **图片上传** | 自动上传图片 | ✅ 已实现(新增) | | **标签/分类** | 为文章设置标签 | ✅ 已实现 | | | 为文章设置分类 | ✅ 已实现 | | | 创建标签 | ❌ 缺失 | | | 创建分类 | ❌ 缺失 | | | 管理标签/分类 | ❌ 缺失 | | **导出/导入** | 从 Markdown 导入 | ❌ 缺失 | | | 导出为 Markdown | ❌ 缺失 | | | 导出为 JSON | ❌ 缺失 | | **其他** | 单页管理 | ❌ 缺失 | | | 搜索 | ❌ 缺失 | --- ## 三、功能优先级建议 ### 高优先级(核心功能) 1. **文章列表查看** - 在命令面板中显示 Halo 文章列表 - 支持分页、筛选(草稿/已发布) - 快速预览文章信息 2. **导入功能增强** - 支持从本地 Markdown 文件导入创建文章 - 智能解析文件路径和文件名 3. **文章删除功能** - 添加删除命令(需二次确认) - 支持删除本地文件或仅删除 Halo 文章 ### 中优先级(常用功能) 4. **批量操作** - 批量发布多篇文章 - 批量同步已发布文章 - 批量管理(删除、更新标签等) 5. **标签/分类管理** - 创建新标签/分类 - 查看现有标签/分类列表 - 更新/删除标签/分类 6. **导出功能** - 导出文章为 Markdown - 导出文章为 JSON(备份用) ### 低优先级(增强功能) 7. **搜索功能** - 搜索 Halo 文章 - 快速定位文章 8. **单页管理** - 发布/管理独立页面 - 与文章类似的工作流 --- ## 四、实施步骤 ### 第一阶段:核心补充(1-2 周) #### 任务 1:文章列表功能 - [ ] 创建文章列表 Modal - [ ] 实现分页、筛选功能 - [ ] 添加快速操作按钮(查看、编辑、删除) - [ ] 集成到命令面板 #### 任务 2:导入功能 - [ ] 实现从文件导入创建文章 - [ ] 智能解析 Markdown 文件 - [ ] 支持选择文件对话框 #### 任务 3:删除功能 - [ ] 添加删除命令 - [ ] 二次确认机制 - [ ] 删除选项(仅 Halo / 仅本地 / 全部) ### 第二阶段:常用功能(2-4 周) #### 任务 4:批量操作 - [ ] 批量选择界面 - [ ] 批量发布队列 - [ ] 进度显示和错误处理 #### 任务 5:标签/分类管理 - [ ] 标签管理 Modal - [ ] 分类管理 Modal - [ ] 创建/编辑/删除功能 #### 任务 6:导出功能 - [ ] 导出为 Markdown - [ ] 导出为 JSON(备份) - [ ] 选择保存路径 ### 第三阶段:增强功能(4+ 周) #### 任务 7:搜索功能 - [ ] 文章搜索 Modal - [ ] 快速筛选和定位 #### 任务 8:单页管理 - [ ] 单页发布命令 - [ ] 单页列表查看 - [ ] 单页导入/导出 --- ## 五、技术实现建议 ### API 端点 | 功能 | API 端点 | |------|----------| | 列出文章 | `GET /apis/uc.api.content.halo.run/v1alpha1/posts` | | 获取文章 | `GET /apis/uc.api.content.halo.run/v1alpha1/posts/{name}` | | 删除文章 | `DELETE /apis/uc.api.content.halo.run/v1alpha1/posts/{name}` | | 列出标签 | `GET /apis/content.halo.run/v1alpha1/tags` | | 创建标签 | `POST /apis/content.halo.run/v1alpha1/tags` | | 列出分类 | `GET /apis/content.halo.run/v1alpha1/categories` | | 创建分类 | `POST /apis/content.halo.run/v1alpha1/categories` | ### 文件结构建议 ``` src/ ├── commands/ # 命令相关 │ ├── publish.ts │ ├── delete.ts │ ├── list.ts │ ├── import.ts │ └── export.ts ├── modals/ # 弹窗相关 │ ├── post-list-modal.ts │ ├── tag-manager-modal.ts │ ├── category-manager-modal.ts │ └── search-modal.ts ├── service/ # 服务层 │ ├── index.ts # 现有 │ └── image-uploader.ts # 现有 └── utils/ # 工具层 ├── image.ts # 现有 └── ... ``` --- ## 六、建议实施顺序 1. **先实现文章列表**(最常用) 2. **再实现导入功能**(补全工作流) 3. **实现删除功能**(完整性) 4. **实现批量操作**(效率提升) 5. **实现标签/分类管理**(内容组织) 6. **实现导出功能**(备份需求) 7. **实现搜索功能**(快速定位) 8. **实现单页管理**(可选) --- 请确认需要实现哪些功能,我将制定详细的技术方案。