9b4530555f
- 创建同步状态面板视图,显示已发布文章列表和快速操作按钮 - 添加同步历史弹窗,记录和展示同步操作记录 - 在侧边栏添加同步图标,支持快速打开面板 - 更新国际化文件,添加中英文同步相关文案 - 编写详细的使用指南文档,说明所有功能使用方法 - 更新插件主程序,注册新命令和视图
214 lines
5.7 KiB
Markdown
214 lines
5.7 KiB
Markdown
# 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日 |