# 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. **实现单页管理**（可选）

---

请确认需要实现哪些功能，我将制定详细的技术方案。