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

2.3 KiB
Raw Blame History

同步状态面板功能规格说明

Why

当前插件的功能分散在多个命令中,用户难以直观地了解:

  1. 哪些文章已发布到 Halo
  2. 文章的同步状态如何
  3. 最近的操作历史和结果

需要一个集中的状态管理面板,让用户一眼就能看到所有同步状态。

What Changes

  • 新增同步状态面板:在 Obsidian 侧边栏显示已发布文章列表及状态
  • 显示文章同步时间戳、发布状态、本地/Halo 版本差异
  • 支持快速操作:更新、拉取、删除
  • 新增使用指南文档

Impact

  • Affected specs:
    • 状态管理和日志
    • 命令面板增强
  • Affected code:
    • 新增 src/commands/sync-status-panel.ts:侧边栏面板
    • 新增 src/modals/sync-history-modal.ts:同步历史弹窗
    • 修改 src/main.ts:注册面板命令
    • 新增 docs/usage-guide.md:使用指南

ADDED Requirements

Requirement: 同步状态面板

系统 SHALL 提供一个侧边栏面板,显示已发布到 Halo 的文章列表及其状态。

Scenario: 打开面板

  • WHEN 用户执行"打开同步状态面板"命令
  • THEN 在侧边栏显示面板,包含已发布文章列表

Scenario: 显示文章状态

  • WHEN 面板加载时
  • THEN 显示所有已发布文章的:标题、slug、发布状态、同步时间

Scenario: 快速操作

  • WHEN 用户点击文章的操作按钮
  • THEN 可以快速执行:更新、拉取、删除操作

Scenario: 同步历史

  • WHEN 用户点击"同步历史"按钮
  • THEN 显示最近的操作记录

Requirement: 使用指南

系统 SHALL 提供一份详细的使用指南,说明所有功能的位置和使用方法。

MODIFIED Requirements

REMOVED Requirements


技术实现细节

Obsidian 面板 API

// 创建侧边栏面板
this.addRibbonIcon("sync-icon", "同步状态", (evt) => {
  this.openSyncStatusPanel();
});

扫描已发布文章

通过扫描 Vault 中的所有文件,查找 frontmatter 中包含 halo.name 的文件。

状态图标

  • 已同步(本地和 Halo 版本一致)
  • 待同步(本地有更新)
  • ⚠️ 有冲突(两边都有更新)

实现优先级

  1. 同步状态面板(核心 UI
  2. 同步历史记录(辅助功能)
  3. 使用指南文档(用户教育)