mirror of
https://github.com/panatgithub/AnkiHeadingSync.git
synced 2026-07-22 17:10:28 +00:00
中文: 新增 deck 模式选择、文件级 deck 解析、文件夹映射、模板插入与 warning 汇总 English: Add deck mode selection, file-level deck parsing, folder mapping, template insertion, and warning aggregation
2 KiB
2 KiB
Deck Resolution Gap Report
审查范围
本报告仅审查 manual-sync 主链路中的 deck 相关实现:
CardIndexingServiceRenderConfigServiceDiffPlannerServiceManualSyncServiceAnkiBatchExecutor
不把旧的 legacy 同步链路作为本轮主实现入口。
当前实现结论
已有能力
- 设置中已有
defaultDeck - manual-sync 链路里已有
deckHint -> RenderConfigService -> plannedCard.deck - add 路径已会在批量执行前调用
ensureDecks(...)
与计划不一致的核心缺口
CardIndexingService只支持正文单行TARGET DECK: ...- 当前不支持 YAML
targetDeck - 当前不支持正文双行
TARGET DECK声明 - 当前不处理 YAML / 正文冲突与 multiple body declarations
- 当前没有 folder -> deck 映射
- 当前没有独立的 deck 规范化与合法性校验
- 当前
RenderConfigService只做deckHint || defaultDeck - 当前
renderConfigHash包含deck,会让 deck 变化进入 update 判定 - 当前
AnkiBatchExecutor在 update 后会调用changeDecks(...) - 当前 manual-sync 结果对象没有结构化 deck warnings
- 当前测试没有覆盖计划要求的大部分 deck 规则
架构问题
- deck 解析逻辑被分散成“正文提取 + 默认兜底”,没有独立服务封装优先级与校验
- warning 没有通过 manual-sync 结果对象向上汇总
- update 路径把“字段更新”和“迁移 deck”耦合在一起,违背计划中的同步语义
本轮修复边界
本轮只补以下能力:
- 显式 deck 提取(YAML + 正文两种语法)
- folder deck 映射
- default deck fallback
- deck normalization / validation
- YAML / 正文冲突 warning
- warning 沿 manual-sync 结果链路透传
- add 使用 resolved deck,update 禁止自动 changeDeck
- 对应单元测试与 manual-sync 回归测试
本轮不扩展到:
- 旧链路回归改造
- 标题级 deck override
- deck 迁移命令
- 自定义优先级与模板 DSL