9b4530555f
- 创建同步状态面板视图,显示已发布文章列表和快速操作按钮 - 添加同步历史弹窗,记录和展示同步操作记录 - 在侧边栏添加同步图标,支持快速打开面板 - 更新国际化文件,添加中英文同步相关文案 - 编写详细的使用指南文档,说明所有功能使用方法 - 更新插件主程序,注册新命令和视图
2.3 KiB
2.3 KiB
同步状态面板功能规格说明
Why
当前插件的功能分散在多个命令中,用户难以直观地了解:
- 哪些文章已发布到 Halo
- 文章的同步状态如何
- 最近的操作历史和结果
需要一个集中的状态管理面板,让用户一眼就能看到所有同步状态。
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 版本一致)
- ⏳ 待同步(本地有更新)
- ⚠️ 有冲突(两边都有更新)
实现优先级
- 同步状态面板(核心 UI)
- 同步历史记录(辅助功能)
- 使用指南文档(用户教育)