# 变更日志 所有重要变更记录于此。格式参考 Keep a Changelog,版本号遵循语义化版本(本插件用 `主.次.修订`,功能修复算修订号递增)。 ## [v2.0.6] - 2026-10-27 ### 修复(Functional fixes) - **子节点字段等价(P0)**:`nav` / `tabs` / `list` / `timeline` 之前只认 `items`,写 `components` 会被校验放行却渲染成空壳(v2.0.5 只修了 7 个容器、漏了这 4 个,且当时测试只覆盖被改过的 case,所以一直绿)。现抽成唯一的 `kids()` 入口,所有读子节点的代码只能走这一处;并补「子节点字段等价」回归测试,对全部接受子项的类型断言 `items` 与 `components` 产出等价 DOM。 - **围栏识别误伤(P0)**:`findBlocks` 原逻辑是「有 lang 标注命中才 true,否则掉下去嗅探内容」,于是 `lang="json"` 的配置示例、模型讲解围栏用法时贴的样例 JSON 都会被误渲染成卡片。改为「有 lang 标注必须严格等于 `dsh-fuse`;完全无标注的裸 `
` 才允许内容嗅探」(标注向上取所属代码块容器,避免内部 `
` 漏判)。
- **「刷新」按钮无效(P0)**:`loadThemes()` 命中缓存后直接 resolve,实测 fetch 次数恒为 1,改了 `theme.json` 点刷新无反应。现加 `force` 参数,刷新真正重拉令牌(测试断言 fetch 次数增加)。
- **`theme` 三方口径打架(P0)**:README 说可选、提示词说必填、校验器说必填且未知名报错。统一为「呈现层字段:省略或写了不认识的名字都回落 `default`,不整页拒绝」,并消除「是否报错取决于令牌加载时序」的不确定性。
- **导出 HTML 不保真(P1)**:`value` / `checked` 是 DOM property 不进 `innerHTML`,导出的表单永远是空白。现 `freezeFormState` 固化状态;导出页 `
` 加 `onsubmit="return false"`(无运行时 JS,否则回车刷新丢数据);清理内部随机 `key`;文件名清洗保留空格。 ### 无障碍(Accessibility) - `tabs` 由 `` + click 改为 `