Files
Obsidian/.trae/documents/obsidian-halo功能增强计划.md
T
Serendipity 9b4530555f feat(sync): 添加同步状态面板和历史功能
- 创建同步状态面板视图,显示已发布文章列表和快速操作按钮
- 添加同步历史弹窗,记录和展示同步操作记录
- 在侧边栏添加同步图标,支持快速打开面板
- 更新国际化文件,添加中英文同步相关文案
- 编写详细的使用指南文档,说明所有功能使用方法
- 更新插件主程序,注册新命令和视图
2026-04-26 18:34:29 +08:00

5.7 KiB
Raw Blame History

obsidian-halo 插件功能增强计划

当前功能分析

当前插件已实现:

  • 发布文档到 Halo
  • 从 Halo 拉取文档
  • 更新已发布文章内容
  • 多站点管理
  • Frontmatter 元数据同步(标题、摘要、分类、标签、封面)
  • 图片上传功能
  • 文章列表增强(分页、筛选)
  • Markdown 文件导入
  • 删除文章功能(支持选择性删除)
  • 标签管理功能
  • 分类管理功能
  • 导出文章为 Markdown
  • 导出文章为 JSON
  • 搜索 Halo 文章
  • 同步状态面板
  • 同步历史记录
  • 使用指南文档

已完成功能(2024年4月实现)

1. 图片/附件上传

优先级:高 | 难度:中

  • 自动检测并上传笔记中的图片到 Halo 媒体库
  • 转换本地图片路径为 Halo URL

2. 批量操作功能

优先级:高 | 难度:中

  • 文章列表查看(支持分页、筛选)
  • 从 Markdown 文件导入文章

3. 标签/分类管理

优先级:高 | 难度:中

  • 标签管理(创建、编辑、删除)
  • 分类管理(创建、编辑、删除)

4. 导出功能

优先级:中 | 难度:中

  • 导出文章为 Markdown
  • 导出文章为 JSON(备份用)

5. 搜索功能

优先级:中 | 难度:中

  • 搜索 Halo 文章(按标题、slug 搜索)
  • 按发布状态筛选

6. 删除功能

优先级:高 | 难度:中

  • 选择性删除(仅 Halo / 仅本地 / 全部)
  • 二次确认机制

7. 同步状态面板 (新增)

优先级:高 | 难度:中

  • 侧边栏面板显示已发布文章列表
  • 快速操作按钮(更新、拉取)
  • 同步历史记录
  • 同步图标侧边栏入口

8. 使用指南 (新增)

优先级:高 | 难度:中

  • 完整的命令列表说明
  • 快速开始教程
  • 常见问题解答

待实现功能

1. 双向同步增强

优先级:高 | 难度:高

  • 差异检测:比较本地和 Halo 版本的修改时间
  • 选择性同步:仅同步本地/仅同步 Halo/完全合并
  • 冲突解决:处理两边同时修改的情况
  • 同步历史:记录每次同步的详情 (已完成基础功能)

2. 高级发布选项

优先级:中 | 难度:中

  • 自定义 Slug 格式(支持模板变量:{{title}}, {{date}}
  • 发布时间调度(定时发布)
  • SEO 元数据设置(meta description、keywords
  • 文章属性控制(评论开关、置顶、优先级、可见性)

3. 内容预览

优先级:中 | 难度:中

  • 发布前预览 Halo 渲染效果
  • 预览不同主题下的样式
  • 实时预览面板

4. 模板支持

优先级:低 | 难度:中

  • 发布模板:预定义 frontmatter 结构
  • 快捷键自定义默认值
  • 模板变量支持

5. 命令面板增强

优先级:低 | 难度:低

  • 键盘快捷键支持
  • 快速切换站点
  • 快捷操作菜单

6. 用户界面优化

优先级:低 | 难度:中

  • 进度条显示
  • 更详细的错误提示
  • 通知中心整合
  • 右键菜单支持

推荐优先级(建议优先实现)

  1. 高级发布选项 - 增加灵活性
  2. 内容预览 - 提升用户体验
  3. 模板支持 - 提升工作效率

技术实现要点

图片上传实现思路

// 1. 解析 Markdown 中的图片引用
// 2. 上传到 Halo 媒体库获取 URL
// 3. 替换本地路径为远程 URL

// Halo 媒体上传 API 端点
POST /apis/api.console.halo.run/v1alpha1/attachments/upload

批量操作实现思路

// 1. 创建批量选择界面
// 2. 批量处理队列
// 3. 进度显示和错误处理

同步检测实现思路

// 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日