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

93 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 同步状态面板功能规格说明
## 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
```typescript
// 创建侧边栏面板
this.addRibbonIcon("sync-icon", "同步状态", (evt) => {
this.openSyncStatusPanel();
});
```
### 扫描已发布文章
通过扫描 Vault 中的所有文件,查找 frontmatter 中包含 `halo.name` 的文件。
### 状态图标
- ✅ 已同步(本地和 Halo 版本一致)
- ⏳ 待同步(本地有更新)
- ⚠️ 有冲突(两边都有更新)
---
## 实现优先级
1. 同步状态面板(核心 UI
2. 同步历史记录(辅助功能)
3. 使用指南文档(用户教育)