fix(docs): 修正文档中的泛型内联代码渲染

- 修复 Core 与函数式教程页面中的泛型 inline code 写法,避免 VitePress 将 HTML entity 按字面量展示
- 更新 documentation-full-coverage-governance 的 tracking 与 trace,记录本轮批处理基线、验证和恢复点
This commit is contained in:
gewuyou 2026-04-23 18:06:52 +08:00
parent aa879d2c9a
commit 59fe63bba6
4 changed files with 43 additions and 45 deletions

View File

@ -12,9 +12,10 @@
## 当前恢复点
- 恢复点编号:`DOCUMENTATION-FULL-COVERAGE-GOV-RP-019`
- 恢复点编号:`DOCUMENTATION-FULL-COVERAGE-GOV-RP-020`
- 当前阶段:`Phase 5 - Governance Maintenance`
- 当前焦点:
- 保持 `Core` functional docs surface 的 inline code / 泛型示例在 VitePress 下按真实 C# 语法渲染
- 保持 `Game` persistence docs surface 与当前 `README`、源码、`PersistenceTests` 使用同一套 owner / adoption path 叙述
- 保持 `GFramework.Godot.SourceGenerators/README.md``docs/zh-CN/tutorials/godot-integration.md` 在生命周期接法上的一致性
- 保持 active tracking / trace 只承载当前恢复入口,把阶段细节留在 `archive/`
@ -36,6 +37,11 @@
`SettingsModel<ISettingsDataRepository>`
- 结合当前 PR 已改动的 `docs/zh-CN/godot/storage.md` 做同类巡检后,确认 `SaveRepository<TSaveData>`
也会在 VitePress code span 中按字面量渲染;两处现已在本地统一改为真实泛型写法。
- `2026-04-23``origin/main``aa879d2``2026-04-23T17:51:41+08:00`)为批处理基线,对
`README.md``GFramework.*``docs/zh-CN/**` 执行同类模式巡检,确认剩余热点仅位于
`docs/zh-CN/core/functional.md``docs/zh-CN/tutorials/functional-programming.md` 共 8 处。
- 上述 8 处 inline code 中的 `Option<T>``Result<T>``Nullable<T>` 已统一改为真实
泛型写法,避免在 VitePress 中显示字面量 HTML entity。
- 当前剩余的托管侧信号是 GitHub `Title check` 对 PR 标题过泛的 inconclusive 提示;这属于 PR 元数据,不是本地
文件缺陷。
@ -62,15 +68,16 @@
`docs/zh-CN/godot/setting.md:75` 的 inline code HTML entity 渲染问题。
- `2026-04-23` `rg -n '`[^`]*<[^`]*`|`[^`]*>[^`]*`' GFramework.Godot.SourceGenerators/README.md GFramework.Godot/README.md README.md docs/zh-CN/api-reference/index.md docs/zh-CN/game/data.md docs/zh-CN/game/serialization.md docs/zh-CN/game/setting.md docs/zh-CN/game/storage.md docs/zh-CN/godot/setting.md docs/zh-CN/godot/storage.md docs/zh-CN/source-generators/index.md`
- 结果:命中 `docs/zh-CN/godot/setting.md:75``docs/zh-CN/godot/storage.md:102` 两处同类写法,均已修正。
- `2026-04-23` `rg -n '`[^`]*<[^`]*`|`[^`]*>[^`]*`' README.md GFramework.* docs/zh-CN -g '*.md'`
- 结果:命中 `docs/zh-CN/core/functional.md``docs/zh-CN/tutorials/functional-programming.md` 共 8 处,已全部修正。
- `2026-04-23` `bun run build`(工作目录:`docs/`
- 结果:通过;仅保留既有 VitePress 大 chunk warning无构建失败。
## 下一步
1. 提交并推送本地对 `docs/zh-CN/godot/setting.md``docs/zh-CN/godot/storage.md` 的 Markdown 泛型写法修正,
然后重新抓取 PR `#272` 确认 Greptile open thread 是否已在新 head commit 上消失。
2. 如果 PR `#272``Title check` 仍需要消除,到 GitHub 上把标题改成更具体的文档治理描述。
3. 若后续分支继续调整 `Game` persistence runtime、README 或公共 API优先复核 `docs/zh-CN/game/data.md`
1. 对 `README.md``GFramework.*``docs/zh-CN/**` 继续做下一类低风险 Markdown 渲染巡检,优先排查 code span 内
的 HTML entity、站点内链接和标题锚点是否仍与当前页面结构一致。
2. 若后续分支继续调整 `Game` persistence runtime、README 或公共 API优先复核 `docs/zh-CN/game/data.md`
`storage.md``serialization.md``setting.md` 与 landing page 是否仍保持同一套职责边界。
4. 若后续分支继续调整 `Godot` generator 接法,优先复核 `GFramework.Godot.SourceGenerators/README.md`
3. 若后续分支继续调整 `Godot` generator 接法,优先复核 `GFramework.Godot.SourceGenerators/README.md`
`docs/zh-CN/tutorials/godot-integration.md` 与相关专题页是否仍保持一致。

View File

@ -2,49 +2,40 @@
## 2026-04-23
### 当前恢复点RP-019
### 当前恢复点RP-020
- 使用 `$gframework-pr-review` 重新复核当前分支 PR `#272`
- GitHub latest-head review 当前暴露 1 条新的 Greptile open thread
`docs/zh-CN/godot/setting.md:75` 在 inline code 中写成
`SettingsModel<ISettingsDataRepository>`
- 本地核对当前文档渲染语义后,确认 CommonMark / VitePress 不会在 code span 内解码 HTML entity
该评论成立。
- 对当前 PR 已变更的 Godot 文档做同类扫描后,又在 `docs/zh-CN/godot/storage.md:102` 发现
`SaveRepository<TSaveData>` 的同型问题。
- 按 `$gframework-batch-boot` 继续执行 `documentation-full-coverage-governance`
- 将这轮批处理目标定义为“清理 README / `docs/zh-CN` / 模块 README 中仍会在 inline code 里被字面渲染的 HTML 泛型实体”。
- 基线选择为 `origin/main` `aa879d2``2026-04-23T17:51:41+08:00`);当前分支 `docs/sdk-update-documentation`
与该基线零差异,适合继续做小批次文档治理。
- 以 `rg -n '`[^`]*<[^`]*`|`[^`]*>[^`]*`' README.md GFramework.* docs/zh-CN -g '*.md'` 扫描后,确认剩余热点只在
`docs/zh-CN/core/functional.md``docs/zh-CN/tutorials/functional-programming.md`,共 8 处。
- 本轮执行的修复:
- 将 `docs/zh-CN/godot/setting.md``SettingsModel<ISettingsDataRepository>` 改为
`SettingsModel<ISettingsDataRepository>`
- 将 `docs/zh-CN/godot/storage.md``SaveRepository&lt;TSaveData&gt;` 改为
`SaveRepository<TSaveData>`
- 同步更新 active tracking / trace记录该 PR review follow-up 与新的恢复点
- 将 `docs/zh-CN/core/functional.md` 中的 `Option&lt;T&gt;``Result&lt;T&gt;``Nullable&lt;T&gt;` 改为真实泛型写法
- 将 `docs/zh-CN/tutorials/functional-programming.md` 中的 `Option&lt;T&gt;``Result&lt;T&gt;` 改为真实泛型写法
- 同步更新 active tracking / trace记录 batch objective、基线和新的恢复点
### 当前决策RP-019
### 当前决策RP-020
- PR review 结果以 GitHub latest-head open threads 为准;即便 active tracking 曾记录“无 open thread”也必须按新抓取结果回写。
- 对 Markdown inline code 中的 C# 泛型示例,必须直接写真实的 `<T>` 语法,不能在反引号内部再写
`&lt;` / `&gt;`,否则 VitePress 会把 entity 当作字面量展示。
- 当 latest-head review 命中某个文档表述问题时,应顺手扫描同一批 PR 已改动文档中的同类模式,避免只消掉单条 thread 却把相同渲染缺陷留在相邻页面
- 当前本地修复完成后,下一次 GitHub 侧复核需要基于新提交/新 head commit而不是旧的 PR review 快照
- 当一个渲染热点模式可以用本地正则直接衡量时,优先把该模式收敛为一个小批次并一次性清空命中列表,而不是只修单页
- 对文档治理批处理,主 stop condition 采用“热点列表耗尽”,次级 stop condition 采用“相对基线的分支 diff 不接近大批次阈值”
### 当前验证RP-019
### 当前验证RP-020
- PR review 抓取:
- `python3 .agents/skills/gframework-pr-review/scripts/fetch_current_pr_review.py --format json --json-output /tmp/current-pr-review.json`
- 结果通过PR `#272` 处于 `OPEN`latest head commit 存在 1 条 Greptile open thread定位到
`docs/zh-CN/godot/setting.md:75` 的 inline code HTML entity 渲染问题。
- 同类模式巡检:
- `rg -n '`[^`]*&lt;[^`]*`|`[^`]*&gt;[^`]*`' GFramework.Godot.SourceGenerators/README.md GFramework.Godot/README.md README.md docs/zh-CN/api-reference/index.md docs/zh-CN/game/data.md docs/zh-CN/game/serialization.md docs/zh-CN/game/setting.md docs/zh-CN/game/storage.md docs/zh-CN/godot/setting.md docs/zh-CN/godot/storage.md docs/zh-CN/source-generators/index.md`
- 结果:命中 `docs/zh-CN/godot/setting.md:75` 与 `docs/zh-CN/godot/storage.md:102` 两处同类写法,均已修正。
- `rg -n '`[^`]*&lt;[^`]*`|`[^`]*&gt;[^`]*`' README.md GFramework.* docs/zh-CN -g '*.md'`
- 结果:命中 `docs/zh-CN/core/functional.md``docs/zh-CN/tutorials/functional-programming.md` 共 8 处,已全部修正。
- 构建校验:
- `bun run build`(工作目录:`docs/`
- 结果:通过;仅保留既有 VitePress 大 chunk warning无构建失败。
### 归档摘要RP-018
### 归档摘要RP-019
- 使用 `$gframework-pr-review` 重新复核当前分支 PR `#272`
- latest-head review 命中 `GFramework.Godot.SourceGenerators/README.md:135` 的错误命名空间引用,并已在本地修正。
- README 校验与 `docs/` 站点构建通过,待新提交推送后回 GitHub 侧确认 open thread 消失
- 使用 `$gframework-pr-review` 重新抓取 PR `#272` 后,定位到 `docs/zh-CN/godot/setting.md` 的 inline code HTML entity 渲染问题
- 顺手扫描当前 PR 已改动的相邻 Godot 文档,又在 `docs/zh-CN/godot/storage.md` 发现同型问题,并已一起修正。
- `docs/` 站点构建通过。
### 归档指针
@ -55,4 +46,4 @@
### 下一步
1. 提交并推送本地修正后,再次抓取 PR `#272`,确认 Greptile open thread 是否已在新 head commit 上消失。
2. 如果 PR `#272``Title check` 仍需要处理,到 GitHub 上把标题改成更具体的文档治理描述
2. 若继续执行文档治理批处理,优先排查下一类低风险渲染 / 链接热点,而不是扩成跨模块大波次

View File

@ -17,7 +17,7 @@ GFramework.Core 提供了一套完整的函数式编程工具,帮助开发者
### Option 类型
`Option&lt;T&gt;` 表示可能存在或不存在的值,用于替代 null 引用。它有两种状态:
`Option<T>` 表示可能存在或不存在的值,用于替代 null 引用。它有两种状态:
- **Some**:包含一个值
- **None**:不包含值
@ -26,7 +26,7 @@ GFramework.Core 提供了一套完整的函数式编程工具,帮助开发者
### Result 类型
`Result&lt;T&gt;` 表示操作的结果,可能是成功值或失败异常。它有三种状态:
`Result<T>` 表示操作的结果,可能是成功值或失败异常。它有三种状态:
- **Success**:操作成功,包含返回值
- **Faulted**:操作失败,包含异常信息
@ -586,14 +586,14 @@ public async Task<Result<Response>> ProcessRequestAsync(Request request)
### Option vs Nullable
**Q: Option 和 Nullable&lt;T&gt; 有什么区别?**
**Q: Option 和 `Nullable<T>` 有什么区别?**
A:
- `Nullable&lt;T&gt;` 只能用于值类型,`Option&lt;T&gt;` 可用于任何类型
- `Option&lt;T&gt;` 提供丰富的函数式操作Map、Bind、Filter 等)
- `Option&lt;T&gt;` 强制显式处理"无值"情况,更安全
- `Option&lt;T&gt;` 可以与 Result 等其他函数式类型组合
- `Nullable<T>` 只能用于值类型,`Option<T>` 可用于任何类型
- `Option<T>` 提供丰富的函数式操作Map、Bind、Filter 等)
- `Option<T>` 强制显式处理"无值"情况,更安全
- `Option<T>` 可以与 Result 等其他函数式类型组合
### Result vs Exception

View File

@ -121,7 +121,7 @@ namespace MyGame.Services
**代码说明**
- `Option&lt;T&gt;` 明确表示值可能不存在,避免 NullReferenceException
- `Option<T>` 明确表示值可能不存在,避免 NullReferenceException
- `Match` 强制处理两种情况,不会遗漏 null 检查
- `Map``Bind` 实现链式转换,代码更简洁
- `Filter` 可以安全地过滤值
@ -250,7 +250,7 @@ namespace MyGame.Services
**代码说明**
- `Result&lt;T&gt;` 将错误作为值返回,而不是抛出异常
- `Result<T>` 将错误作为值返回,而不是抛出异常
- `Result.Try` 自动捕获异常并转换为 Result
- `Bind` 可以链接多个可能失败的操作
- `Match` 强制处理成功和失败两种情况