mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-07 00:39:00 +08:00
docs(zh-cn): 统一站内链接显式扩展名
- 更新教程、最佳实践、Core 与 Godot 页面中的站内 Markdown 链接写法 - 补充文档治理 topic 的恢复点、验证结果与分支阈值指标
This commit is contained in:
parent
bf37104c68
commit
64385196d5
@ -12,12 +12,12 @@
|
|||||||
|
|
||||||
## 当前恢复点
|
## 当前恢复点
|
||||||
|
|
||||||
- 恢复点编号:`DOCUMENTATION-FULL-COVERAGE-GOV-RP-027`
|
- 恢复点编号:`DOCUMENTATION-FULL-COVERAGE-GOV-RP-028`
|
||||||
- 当前阶段:`Phase 5 - Governance Maintenance`
|
- 当前阶段:`Phase 5 - Governance Maintenance`
|
||||||
- 当前焦点:
|
- 当前焦点:
|
||||||
- 继续按 `$gframework-batch-boot 75` 的 `origin/main` 分支 diff 阈值做小批量文档治理,本批已收口 `docs/zh-CN/index.md` 与 `tutorials/basic/01-07.md` 的 metadata 缺口
|
- 继续按 `$gframework-batch-boot 75` 的 `origin/main` 分支 diff 阈值做小批量文档治理,本批已收口 `25` 个 `docs/zh-CN` 页面中的站内链接 `.md` / `index.md` 一致性
|
||||||
- 保持 `README.md` 与 `docs/**` 公开页面只承载读者需要的采用信息,不再混入 XML inventory、覆盖基线、恢复点或治理批次说明
|
- 保持 `README.md` 与 `docs/**` 公开页面只承载读者需要的采用信息,不再混入 XML inventory、覆盖基线、恢复点或治理批次说明
|
||||||
- 继续优先处理低风险 metadata 缺口、坏链与 Markdown 结构问题,避免跨模块语义改写
|
- 继续优先处理低风险 metadata 缺口、坏链、README 文档入口对齐与 Markdown 结构问题,避免跨模块语义改写
|
||||||
- 保持 `Game` persistence docs surface 与当前 `README`、源码、`PersistenceTests` 使用同一套 owner / adoption path 叙述
|
- 保持 `Game` persistence docs surface 与当前 `README`、源码、`PersistenceTests` 使用同一套 owner / adoption path 叙述
|
||||||
- 保持 `GFramework.Godot.SourceGenerators/README.md` 与 `docs/zh-CN/tutorials/godot-integration.md` 在生命周期接法上的一致性
|
- 保持 `GFramework.Godot.SourceGenerators/README.md` 与 `docs/zh-CN/tutorials/godot-integration.md` 在生命周期接法上的一致性
|
||||||
- 保持 active tracking / trace 只承载当前恢复入口,把阶段细节留在 `archive/`
|
- 保持 active tracking / trace 只承载当前恢复入口,把阶段细节留在 `archive/`
|
||||||
@ -25,7 +25,7 @@
|
|||||||
## 当前状态摘要
|
## 当前状态摘要
|
||||||
|
|
||||||
- `Core`、`Ecs.Arch`、`Cqrs`、`Game`、`Godot` 五个模块族当前都已有 README / landing / topic / API 参考层级的已验证入口。
|
- `Core`、`Ecs.Arch`、`Cqrs`、`Game`、`Godot` 五个模块族当前都已有 README / landing / topic / API 参考层级的已验证入口。
|
||||||
- `2026-04-24` 以 `origin/main`(`a8447a6`,`2026-04-24T12:53:39+08:00`)为 batch baseline 时,当前分支累计 diff 为 `0` 个文件;本批 write set 聚焦 `8` 个文档页面与 `2` 个 `ai-plan` 入口文件,预计提交后分支 diff 为 `10 / 75` 个 changed files。
|
- `2026-04-24` 以 `origin/main`(`a8447a6`,`2026-04-24T12:53:39+08:00`)为 batch baseline 时,当前分支累计 diff 在 `RP-027` 提交后为 `10` 个文件;本批 write set 额外覆盖 `25` 个 `docs/zh-CN` 页面与 `2` 个 `ai-plan` 入口文件,提交后分支 diff 为 `29 / 75` 个 changed files。
|
||||||
- `2026-04-24` 使用 `$gframework-pr-review` 抓取 PR `#282` 后,确认 latest head commit
|
- `2026-04-24` 使用 `$gframework-pr-review` 抓取 PR `#282` 后,确认 latest head commit
|
||||||
`982249151ecf8acdff3e62e664034bf95dfacd75` 当前仍有 `3` 条 CodeRabbit 与 `1` 条 Greptile open thread;4 条建议均已在本地复核并纳入当前恢复点。
|
`982249151ecf8acdff3e62e664034bf95dfacd75` 当前仍有 `3` 条 CodeRabbit 与 `1` 条 Greptile open thread;4 条建议均已在本地复核并纳入当前恢复点。
|
||||||
- 本轮 PR follow-up 仅收口仍然成立的 review 项:
|
- 本轮 PR follow-up 仅收口仍然成立的 review 项:
|
||||||
@ -33,6 +33,7 @@
|
|||||||
- 将 `docs/zh-CN/core/context.md` 的标题本地化为中文读者友好的写法
|
- 将 `docs/zh-CN/core/context.md` 的标题本地化为中文读者友好的写法
|
||||||
- 统一 `docs/zh-CN/troubleshooting.md` 中 `/zh-CN/core/architecture` 与 `/zh-CN/faq` 的 `.md` 链接写法
|
- 统一 `docs/zh-CN/troubleshooting.md` 中 `/zh-CN/core/architecture` 与 `/zh-CN/faq` 的 `.md` 链接写法
|
||||||
- 本批次补齐了 `docs/zh-CN/index.md` 的 `description`,以及 `docs/zh-CN/tutorials/basic/01-07.md` 的 `title` / `description`,让首页和基础教程章节页拥有完整 frontmatter metadata。
|
- 本批次补齐了 `docs/zh-CN/index.md` 的 `description`,以及 `docs/zh-CN/tutorials/basic/01-07.md` 的 `title` / `description`,让首页和基础教程章节页拥有完整 frontmatter metadata。
|
||||||
|
- 本批次统一将教程、最佳实践、Core、Godot 页面里缺显式扩展名的站内 Markdown 链接补齐为 `.md` 或 `index.md`,避免目录链接、绝对路径旧写法与 VitePress 构建解析分叉。
|
||||||
- `Game` persistence docs surface 当前以 `docs/zh-CN/game/data.md`、`storage.md`、`serialization.md`、`setting.md`
|
- `Game` persistence docs surface 当前以 `docs/zh-CN/game/data.md`、`storage.md`、`serialization.md`、`setting.md`
|
||||||
作为最小巡检集合;若后续 README、runtime public API 或 `PersistenceTests` 变动,应优先复核这一组页面。
|
作为最小巡检集合;若后续 README、runtime public API 或 `PersistenceTests` 变动,应优先复核这一组页面。
|
||||||
- `Godot` runtime 与 generator 入口当前以 `GFramework.Godot/README.md`、
|
- `Godot` runtime 与 generator 入口当前以 `GFramework.Godot/README.md`、
|
||||||
@ -74,11 +75,15 @@
|
|||||||
- 结果:通过;当前带 frontmatter 的 `docs/zh-CN` 页面已无 `title` / `description` 缺口。
|
- 结果:通过;当前带 frontmatter 的 `docs/zh-CN` 页面已无 `title` / `description` 缺口。
|
||||||
- `2026-04-24` `bun run build`(工作目录:`docs/`)
|
- `2026-04-24` `bun run build`(工作目录:`docs/`)
|
||||||
- 结果:通过;首页与基础教程 metadata 补齐后站点仍可正常构建,仅保留既有大 chunk warning。
|
- 结果:通过;首页与基础教程 metadata 补齐后站点仍可正常构建,仅保留既有大 chunk warning。
|
||||||
|
- `2026-04-24` `python3 - <<'PY' ...`(扫描 `docs/zh-CN/**/*.md` 中以 `./`、`../`、`/zh-CN/` 开头且未带扩展名的 Markdown 链接)
|
||||||
|
- 结果:通过;当前 `docs/zh-CN` 站内 Markdown 链接已无缺失扩展名的命中。
|
||||||
|
- `2026-04-24` `bun run build`(工作目录:`docs/`)
|
||||||
|
- 结果:通过;`25` 个页面的站内链接补齐为显式 `.md` / `index.md` 后站点仍可正常构建,仅保留既有大 chunk warning。
|
||||||
|
|
||||||
## 下一步
|
## 下一步
|
||||||
|
|
||||||
1. 推送本批次 commit 后,再次执行 `$gframework-pr-review`,确认 PR `#282` 的 unresolved review threads 是否已在新 head commit 上消失。
|
1. 若继续执行 `$gframework-batch-boot 75`,优先盘点模块 `README.md`、`docs/index.md` 与文档落地页之间仍未对齐的文档入口、BOM 与旧链接写法。
|
||||||
2. 若继续执行 `$gframework-batch-boot 75`,优先盘点 `docs/zh-CN` 中仍缺完整 frontmatter 的页面,并按模块或教程小批次补齐 metadata。
|
2. 推送当前批次 commit 后,再次执行 `$gframework-pr-review`,确认 PR `#282` 的 unresolved review threads 是否已在新 head commit 上消失。
|
||||||
3. 若后续分支继续调整 `Game` persistence runtime、README 或公共 API,优先复核 `docs/zh-CN/game/data.md`、
|
3. 若后续分支继续调整 `Game` persistence runtime、README 或公共 API,优先复核 `docs/zh-CN/game/data.md`、
|
||||||
`storage.md`、`serialization.md`、`setting.md` 与 landing page 是否仍保持同一套职责边界。
|
`storage.md`、`serialization.md`、`setting.md` 与 landing page 是否仍保持同一套职责边界。
|
||||||
4. 若后续分支继续调整 `Godot` generator 接法,优先复核 `GFramework.Godot.SourceGenerators/README.md`、
|
4. 若后续分支继续调整 `Godot` generator 接法,优先复核 `GFramework.Godot.SourceGenerators/README.md`、
|
||||||
|
|||||||
@ -2,28 +2,28 @@
|
|||||||
|
|
||||||
## 2026-04-24
|
## 2026-04-24
|
||||||
|
|
||||||
### 当前恢复点:RP-027
|
### 当前恢复点:RP-028
|
||||||
|
|
||||||
- 以 `origin/main`(`a8447a6`,`2026-04-24T12:53:39+08:00`)为 `$gframework-batch-boot 75` baseline,确认批次开始时当前分支累计 diff 为 `0` 个文件。
|
- 以 `origin/main`(`a8447a6`,`2026-04-24T12:53:39+08:00`)为 `$gframework-batch-boot 75` baseline,确认 `RP-027` 提交后的当前分支累计 diff 为 `10` 个文件。
|
||||||
- 选择“frontmatter metadata 缺口”作为本批次低风险切片,不继续扩大到正文语义改写或跨模块文档重写。
|
- 选择“站内 Markdown 链接显式扩展名统一”作为本批次低风险切片,集中处理教程、最佳实践、Core 与 Godot 页面中的目录链接和缺 `.md` 的旧写法。
|
||||||
- 本批次补齐了 `docs/zh-CN/index.md` 的 `description`,以及 `docs/zh-CN/tutorials/basic/01-07.md` 的 `title` / `description`。
|
- 本批次修改了 `25` 个 `docs/zh-CN` 页面,把 `./`、`../`、`/zh-CN/` 开头的站内 Markdown 链接统一补齐为显式 `.md` 或 `index.md`。
|
||||||
|
|
||||||
### 当前决策(RP-027)
|
### 当前决策(RP-028)
|
||||||
|
|
||||||
- 当 branch diff 明显低于 `75` 文件阈值时,优先消化低风险 metadata / 链接 / Markdown 结构缺口,避免在同一批次混入高语义成本的文案重写。
|
- 当 branch diff 仍显著低于 `75` 文件阈值时,继续优先消化低风险链接规范化和 README / landing page 对齐问题,不在同一批次混入高语义重写。
|
||||||
|
- 构建失败优先视为机械链接转换回归,先修复批量规则副作用再继续,而不是带着失效链接进入后续批次。
|
||||||
- active `ai-plan` 入口继续保持轻量,只记录当前恢复点、batch metric、验证结果与下一批候选项。
|
- active `ai-plan` 入口继续保持轻量,只记录当前恢复点、batch metric、验证结果与下一批候选项。
|
||||||
- 当前 WSL 会话继续使用显式 `--git-dir` / `--work-tree` 绑定执行 Git,避免 `git.exe` 失效带来的路径问题。
|
|
||||||
|
|
||||||
### 当前验证(RP-027)
|
### 当前验证(RP-028)
|
||||||
|
|
||||||
- frontmatter 巡检:
|
- 站内链接巡检:
|
||||||
- `python3 - <<'PY' ...`(扫描 `docs/zh-CN/**/*.md` frontmatter 是否缺 `title` / `description`)
|
- `python3 - <<'PY' ...`(扫描 `docs/zh-CN/**/*.md` 中以 `./`、`../`、`/zh-CN/` 开头且未带扩展名的 Markdown 链接)
|
||||||
- 结果:通过;当前带 frontmatter 的 `docs/zh-CN` 页面已无 `title` / `description` 缺口。
|
- 结果:通过;当前 `docs/zh-CN` 站内 Markdown 链接已无缺失扩展名的命中。
|
||||||
- 站点构建:
|
- 站点构建:
|
||||||
- `bun run build`(工作目录:`docs/`)
|
- `bun run build`(工作目录:`docs/`)
|
||||||
- 结果:通过;首页与基础教程 metadata 补齐后站点仍可正常构建,仅保留既有大 chunk warning。
|
- 结果:通过;统一 `25` 个页面的站内链接后站点仍可正常构建,仅保留既有大 chunk warning。
|
||||||
- 当前 stop-condition metric:
|
- 当前 stop-condition metric:
|
||||||
- 提交前工作树 write set 为 `10` 个文件(`8` 个文档页面 + `2` 个 `ai-plan` 入口);本批次提交后分支 diff 将提升为 `10 / 75` 个 changed files。
|
- 本批次 write set 为 `27` 个文件(`25` 个文档页面 + `2` 个 `ai-plan` 入口);本批次提交后分支 diff 为 `29 / 75` 个 changed files。
|
||||||
|
|
||||||
### 归档指针
|
### 归档指针
|
||||||
|
|
||||||
@ -35,5 +35,5 @@
|
|||||||
|
|
||||||
### 下一步
|
### 下一步
|
||||||
|
|
||||||
1. 推送本批次 commit 后,再次执行 `$gframework-pr-review`,确认 PR `#282` 的 unresolved review threads 是否已在新 head commit 上消失。
|
1. 若继续执行 `$gframework-batch-boot 75`,优先盘点模块 `README.md`、`docs/index.md` 与文档落地页之间仍未对齐的文档入口、BOM 与旧链接写法。
|
||||||
2. 若继续执行 `$gframework-batch-boot 75`,优先盘点 `docs/zh-CN` 中仍缺完整 frontmatter 的页面,并按模块或教程小批次补齐 metadata。
|
2. 推送本批次 commit 后,再次执行 `$gframework-pr-review`,确认 PR `#282` 的 unresolved review threads 是否已在新 head commit 上消失。
|
||||||
|
|||||||
@ -3432,12 +3432,12 @@ public void GetPlayerStatsQuery_ShouldReturnCorrectStats()
|
|||||||
|
|
||||||
### 相关资源
|
### 相关资源
|
||||||
|
|
||||||
- [架构核心文档](/zh-CN/core/architecture)
|
- [架构核心文档](/zh-CN/core/architecture.md)
|
||||||
- [命令模式文档](/zh-CN/core/command)
|
- [命令模式文档](/zh-CN/core/command.md)
|
||||||
- [查询模式文档](/zh-CN/core/query)
|
- [查询模式文档](/zh-CN/core/query.md)
|
||||||
- [事件系统文档](/zh-CN/core/events)
|
- [事件系统文档](/zh-CN/core/events.md)
|
||||||
- [状态机文档](/zh-CN/core/state-machine)
|
- [状态机文档](/zh-CN/core/state-machine.md)
|
||||||
- [IoC 容器文档](/zh-CN/core/ioc)
|
- [IoC 容器文档](/zh-CN/core/ioc.md)
|
||||||
|
|
||||||
记住,好的架构不是一蹴而就的,需要持续的学习、实践和改进。
|
记住,好的架构不是一蹴而就的,需要持续的学习、实践和改进。
|
||||||
|
|
||||||
|
|||||||
@ -970,10 +970,10 @@ public class DeviceProfiler
|
|||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [资源管理系统](/zh-CN/core/resource) - 资源管理详细说明
|
- [资源管理系统](/zh-CN/core/resource.md) - 资源管理详细说明
|
||||||
- [对象池系统](/zh-CN/core/pool) - 对象池优化
|
- [对象池系统](/zh-CN/core/pool.md) - 对象池优化
|
||||||
- [协程系统](/zh-CN/core/coroutine) - 异步操作优化
|
- [协程系统](/zh-CN/core/coroutine.md) - 异步操作优化
|
||||||
- [架构模式最佳实践](/zh-CN/best-practices/architecture-patterns) - 架构设计
|
- [架构模式最佳实践](/zh-CN/best-practices/architecture-patterns.md) - 架构设计
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@ -501,7 +501,7 @@ Parallel.For(0, 10, i =>
|
|||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [对象池系统](/zh-CN/core/pool) - 结合对象池复用资源
|
- [对象池系统](/zh-CN/core/pool.md) - 结合对象池复用资源
|
||||||
- [协程系统](/zh-CN/core/coroutine) - 异步加载资源
|
- [协程系统](/zh-CN/core/coroutine.md) - 异步加载资源
|
||||||
- [Godot 扩展](/zh-CN/godot/extensions) - Godot 引擎的资源管理
|
- [Godot 扩展](/zh-CN/godot/extensions.md) - Godot 引擎的资源管理
|
||||||
- [资源管理最佳实践](/zh-CN/tutorials/resource-management) - 详细教程
|
- [资源管理最佳实践](/zh-CN/tutorials/resource-management.md) - 详细教程
|
||||||
|
|||||||
@ -576,7 +576,7 @@ await stateMachine.GoBackAsync();
|
|||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [生命周期管理](/zh-CN/core/lifecycle) - 状态的初始化和销毁
|
- [生命周期管理](/zh-CN/core/lifecycle.md) - 状态的初始化和销毁
|
||||||
- [事件系统](/zh-CN/core/events) - 状态变更通知
|
- [事件系统](/zh-CN/core/events.md) - 状态变更通知
|
||||||
- [协程系统](/zh-CN/core/coroutine) - 异步状态操作
|
- [协程系统](/zh-CN/core/coroutine.md) - 异步状态操作
|
||||||
- [状态机实现教程](/zh-CN/tutorials/state-machine-tutorial) - 完整示例
|
- [状态机实现教程](/zh-CN/tutorials/state-machine-tutorial.md) - 完整示例
|
||||||
|
|||||||
@ -730,7 +730,7 @@ foreach (var reason in reasons)
|
|||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [Godot 架构集成](/zh-CN/godot/architecture) - Godot 架构基础
|
- [Godot 架构集成](/zh-CN/godot/architecture.md) - Godot 架构基础
|
||||||
- [Godot 场景系统](/zh-CN/godot/scene) - Godot 场景集成
|
- [Godot 场景系统](/zh-CN/godot/scene.md) - Godot 场景集成
|
||||||
- [Godot UI 系统](/zh-CN/godot/ui) - Godot UI 集成
|
- [Godot UI 系统](/zh-CN/godot/ui.md) - Godot UI 集成
|
||||||
- [Godot 扩展](/zh-CN/godot/extensions) - Godot 扩展方法
|
- [Godot 扩展](/zh-CN/godot/extensions.md) - Godot 扩展方法
|
||||||
|
|||||||
@ -678,7 +678,7 @@ GD.Print($"使用池: {stopwatch.ElapsedMilliseconds}ms");
|
|||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [对象池系统](/zh-CN/core/pool) - 核心对象池实现
|
- [对象池系统](/zh-CN/core/pool.md) - 核心对象池实现
|
||||||
- [Godot 架构集成](/zh-CN/godot/architecture) - Godot 架构基础
|
- [Godot 架构集成](/zh-CN/godot/architecture.md) - Godot 架构基础
|
||||||
- [Godot 场景系统](/zh-CN/godot/scene) - Godot 场景管理
|
- [Godot 场景系统](/zh-CN/godot/scene.md) - Godot 场景管理
|
||||||
- [性能优化](/zh-CN/core/pool) - 性能优化最佳实践
|
- [性能优化](/zh-CN/core/pool.md) - 性能优化最佳实践
|
||||||
|
|||||||
@ -631,7 +631,7 @@ public class LazyResourceRepository<TKey, TResource>
|
|||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [数据与存档系统](/zh-CN/game/data) - 数据持久化
|
- [数据与存档系统](/zh-CN/game/data.md) - 数据持久化
|
||||||
- [Godot 架构集成](/zh-CN/godot/architecture) - Godot 架构基础
|
- [Godot 架构集成](/zh-CN/godot/architecture.md) - Godot 架构基础
|
||||||
- [Godot 场景系统](/zh-CN/godot/scene) - 场景资源管理
|
- [Godot 场景系统](/zh-CN/godot/scene.md) - 场景资源管理
|
||||||
- [资源管理系统](/zh-CN/core/resource) - 核心资源管理
|
- [资源管理系统](/zh-CN/core/resource.md) - 核心资源管理
|
||||||
|
|||||||
@ -646,10 +646,10 @@ public override void _Process(double delta)
|
|||||||
### 推荐资源
|
### 推荐资源
|
||||||
|
|
||||||
- **GFramework 文档**:
|
- **GFramework 文档**:
|
||||||
- [Core 核心框架](../../core/)
|
- [Core 核心框架](../../core/index.md)
|
||||||
- [Game 游戏模块](../../game/)
|
- [Game 游戏模块](../../game/index.md)
|
||||||
- [Godot 集成](../../godot/)
|
- [Godot 集成](../../godot/index.md)
|
||||||
- [源码生成器](../../source-generators/)
|
- [源码生成器](../../source-generators/index.md)
|
||||||
|
|
||||||
- **设计模式**:
|
- **设计模式**:
|
||||||
- 命令模式(Command Pattern)
|
- 命令模式(Command Pattern)
|
||||||
|
|||||||
@ -173,10 +173,10 @@ description: 从零开始串联环境准备、项目搭建与核心概念的基
|
|||||||
|
|
||||||
## 🔗 相关资源
|
## 🔗 相关资源
|
||||||
|
|
||||||
- [GFramework 文档首页](../../)
|
- [GFramework 文档首页](../../index.md)
|
||||||
- [Core 核心框架](../../core/)
|
- [Core 核心框架](../../core/index.md)
|
||||||
- [Godot 集成](../../godot/)
|
- [Godot 集成](../../godot/index.md)
|
||||||
- [源码生成器](../../source-generators/)
|
- [源码生成器](../../source-generators/index.md)
|
||||||
|
|
||||||
## ❓ 遇到问题?
|
## ❓ 遇到问题?
|
||||||
|
|
||||||
|
|||||||
@ -188,5 +188,5 @@ BlinkCoroutine()
|
|||||||
|
|
||||||
## 下一步
|
## 下一步
|
||||||
|
|
||||||
- Core 侧更完整的 API 说明见 [Core 协程系统](/zh-CN/core/coroutine)
|
- Core 侧更完整的 API 说明见 [Core 协程系统](/zh-CN/core/coroutine.md)
|
||||||
- Godot 集成细节见 [Godot 协程系统](/zh-CN/godot/coroutine)
|
- Godot 集成细节见 [Godot 协程系统](/zh-CN/godot/coroutine.md)
|
||||||
|
|||||||
@ -20,9 +20,9 @@ description: 学习如何实现数据版本迁移系统,处理不同版本间
|
|||||||
|
|
||||||
- 已安装 GFramework.Game NuGet 包
|
- 已安装 GFramework.Game NuGet 包
|
||||||
- 了解 C# 基础语法和接口实现
|
- 了解 C# 基础语法和接口实现
|
||||||
- 阅读过[快速开始](/zh-CN/getting-started/quick-start)
|
- 阅读过[快速开始](/zh-CN/getting-started/quick-start.md)
|
||||||
- 了解[数据与存档系统](/zh-CN/game/data)
|
- 了解[数据与存档系统](/zh-CN/game/data.md)
|
||||||
- 建议先完成[实现存档系统](/zh-CN/tutorials/save-system)教程
|
- 建议先完成[实现存档系统](/zh-CN/tutorials/save-system.md)教程
|
||||||
|
|
||||||
## 为什么需要数据迁移
|
## 为什么需要数据迁移
|
||||||
|
|
||||||
@ -647,9 +647,9 @@ MyGame/
|
|||||||
|
|
||||||
恭喜!你已经实现了一个完整的数据版本迁移系统。接下来可以学习:
|
恭喜!你已经实现了一个完整的数据版本迁移系统。接下来可以学习:
|
||||||
|
|
||||||
- [实现存档系统](/zh-CN/tutorials/save-system) - 结合存档系统使用迁移
|
- [实现存档系统](/zh-CN/tutorials/save-system.md) - 结合存档系统使用迁移
|
||||||
- [Godot 完整项目搭建](/zh-CN/tutorials/godot-complete-project) - 在实际项目中应用
|
- [Godot 完整项目搭建](/zh-CN/tutorials/godot-complete-project.md) - 在实际项目中应用
|
||||||
- [数据与存档系统](/zh-CN/game/data) - 深入了解数据系统
|
- [数据与存档系统](/zh-CN/game/data.md) - 深入了解数据系统
|
||||||
|
|
||||||
## 最佳实践
|
## 最佳实践
|
||||||
|
|
||||||
@ -780,6 +780,6 @@ public async Task<List<ISettingsSection>> MigrateBatchAsync(
|
|||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [数据与存档系统](/zh-CN/game/data) - 数据系统详细说明
|
- [数据与存档系统](/zh-CN/game/data.md) - 数据系统详细说明
|
||||||
- [实现存档系统](/zh-CN/tutorials/save-system) - 存档系统教程
|
- [实现存档系统](/zh-CN/tutorials/save-system.md) - 存档系统教程
|
||||||
- [架构系统](/zh-CN/core/architecture) - 架构设计原则
|
- [架构系统](/zh-CN/core/architecture.md) - 架构设计原则
|
||||||
|
|||||||
@ -20,7 +20,7 @@ description: 学习如何在实际项目中使用 Option、Result 和管道操
|
|||||||
|
|
||||||
- 已安装 GFramework.Core NuGet 包
|
- 已安装 GFramework.Core NuGet 包
|
||||||
- 了解 C# 基础语法和泛型
|
- 了解 C# 基础语法和泛型
|
||||||
- 阅读过[快速开始](/zh-CN/getting-started/quick-start)
|
- 阅读过[快速开始](/zh-CN/getting-started/quick-start.md)
|
||||||
- 了解 Lambda 表达式和 LINQ
|
- 了解 Lambda 表达式和 LINQ
|
||||||
|
|
||||||
## 步骤 1:使用 Option 处理可空值
|
## 步骤 1:使用 Option 处理可空值
|
||||||
@ -811,12 +811,12 @@ class Program
|
|||||||
|
|
||||||
恭喜!你已经掌握了函数式编程的核心技术。接下来可以学习:
|
恭喜!你已经掌握了函数式编程的核心技术。接下来可以学习:
|
||||||
|
|
||||||
- [使用协程系统](/zh-CN/tutorials/coroutine-tutorial) - 结合函数式编程和协程
|
- [使用协程系统](/zh-CN/tutorials/coroutine-tutorial.md) - 结合函数式编程和协程
|
||||||
- [实现状态机](/zh-CN/tutorials/state-machine-tutorial) - 在状态机中应用函数式模式
|
- [实现状态机](/zh-CN/tutorials/state-machine-tutorial.md) - 在状态机中应用函数式模式
|
||||||
- [资源管理最佳实践](/zh-CN/tutorials/resource-management) - 使用 Result 处理资源加载
|
- [资源管理最佳实践](/zh-CN/tutorials/resource-management.md) - 使用 Result 处理资源加载
|
||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [扩展方法](/zh-CN/core/extensions) - 更多函数式扩展方法
|
- [扩展方法](/zh-CN/core/extensions.md) - 更多函数式扩展方法
|
||||||
- [架构组件](/zh-CN/core/architecture) - 在架构中使用函数式编程
|
- [架构组件](/zh-CN/core/architecture.md) - 在架构中使用函数式编程
|
||||||
- [最佳实践](/zh-CN/best-practices/architecture-patterns) - 函数式编程最佳实践
|
- [最佳实践](/zh-CN/best-practices/architecture-patterns.md) - 函数式编程最佳实践
|
||||||
|
|||||||
@ -22,9 +22,9 @@ description: 从零开始使用 GFramework 构建一个完整的 Godot 游戏项
|
|||||||
- 已安装 .NET SDK 8.0+
|
- 已安装 .NET SDK 8.0+
|
||||||
- 了解 C# 和 Godot 基础
|
- 了解 C# 和 Godot 基础
|
||||||
- 阅读过前面的教程:
|
- 阅读过前面的教程:
|
||||||
- [使用协程系统](/zh-CN/tutorials/coroutine-tutorial)
|
- [使用协程系统](/zh-CN/tutorials/coroutine-tutorial.md)
|
||||||
- [实现状态机](/zh-CN/tutorials/state-machine-tutorial)
|
- [实现状态机](/zh-CN/tutorials/state-machine-tutorial.md)
|
||||||
- [实现存档系统](/zh-CN/tutorials/save-system)
|
- [实现存档系统](/zh-CN/tutorials/save-system.md)
|
||||||
|
|
||||||
## 项目概述
|
## 项目概述
|
||||||
|
|
||||||
@ -805,7 +805,7 @@ public partial class GameScene : Node2D, IController
|
|||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [Godot 架构集成](/zh-CN/godot/architecture) - 架构详细说明
|
- [Godot 架构集成](/zh-CN/godot/architecture.md) - 架构详细说明
|
||||||
- [Godot 场景系统](/zh-CN/godot/scene) - 场景管理
|
- [Godot 场景系统](/zh-CN/godot/scene.md) - 场景管理
|
||||||
- [Godot UI 系统](/zh-CN/godot/ui) - UI 管理
|
- [Godot UI 系统](/zh-CN/godot/ui.md) - UI 管理
|
||||||
- [Godot 扩展](/zh-CN/godot/extensions) - 扩展功能
|
- [Godot 扩展](/zh-CN/godot/extensions.md) - 扩展功能
|
||||||
|
|||||||
@ -9,7 +9,7 @@ description: 汇总 GFramework 的基础与进阶教程入口,帮助按学习
|
|||||||
|
|
||||||
## 📚 可用教程
|
## 📚 可用教程
|
||||||
|
|
||||||
### [基础教程](./basic/)
|
### [基础教程](./basic/index.md)
|
||||||
|
|
||||||
> 从零开始学习 GFramework,通过构建一个完整的计数器应用,逐步掌握框架的核心概念。
|
> 从零开始学习 GFramework,通过构建一个完整的计数器应用,逐步掌握框架的核心概念。
|
||||||
|
|
||||||
@ -169,7 +169,7 @@ description: 汇总 GFramework 的基础与进阶教程入口,帮助按学习
|
|||||||
|
|
||||||
### 善用资源
|
### 善用资源
|
||||||
|
|
||||||
- **查阅文档**:结合 [Core 核心框架](../core/) 和 [Godot 集成](../godot/) 文档
|
- **查阅文档**:结合 [Core 核心框架](../core/index.md) 和 [Godot 集成](../godot/index.md) 文档
|
||||||
- **查看示例**:参考框架附带的示例项目
|
- **查看示例**:参考框架附带的示例项目
|
||||||
- **社区交流**:遇到问题时查看 GitHub Issues 或参与讨论
|
- **社区交流**:遇到问题时查看 GitHub Issues 或参与讨论
|
||||||
|
|
||||||
@ -193,11 +193,11 @@ description: 汇总 GFramework 的基础与进阶教程入口,帮助按学习
|
|||||||
|
|
||||||
## 🔗 相关资源
|
## 🔗 相关资源
|
||||||
|
|
||||||
- [入门指南](../getting-started/) - 快速了解框架和安装配置
|
- [入门指南](../getting-started/index.md) - 快速了解框架和安装配置
|
||||||
- [Core 核心框架](../core/) - 深入学习核心概念
|
- [Core 核心框架](../core/index.md) - 深入学习核心概念
|
||||||
- [Game 模块](../game/) - 游戏特定功能文档
|
- [Game 模块](../game/index.md) - 游戏特定功能文档
|
||||||
- [Godot 集成](../godot/) - Godot 特定功能参考
|
- [Godot 集成](../godot/index.md) - Godot 特定功能参考
|
||||||
- [源码生成器](../source-generators/) - 自动化代码生成工具
|
- [源码生成器](../source-generators/index.md) - 自动化代码生成工具
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -236,7 +236,7 @@ A: 根据学习深度不同:
|
|||||||
|
|
||||||
<div style="text-align: center; margin: 2rem 0;">
|
<div style="text-align: center; margin: 2rem 0;">
|
||||||
|
|
||||||
[开始基础教程 →](./basic/)
|
[开始基础教程 →](./basic/index.md)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -20,8 +20,8 @@ description: 学习如何使用 GFramework 组织和管理大型游戏项目
|
|||||||
|
|
||||||
- 已安装 GFramework.Core 和 GFramework.Game NuGet 包
|
- 已安装 GFramework.Core 和 GFramework.Game NuGet 包
|
||||||
- 了解 C# 基础语法和面向对象编程
|
- 了解 C# 基础语法和面向对象编程
|
||||||
- 阅读过[快速开始](/zh-CN/getting-started/quick-start)
|
- 阅读过[快速开始](/zh-CN/getting-started/quick-start.md)
|
||||||
- 了解[架构组件](/zh-CN/core/architecture)和[模块系统](/zh-CN/core/architecture#模块系统)
|
- 了解[架构组件](/zh-CN/core/architecture.md)和[模块系统](/zh-CN/core/architecture.md#模块系统)
|
||||||
|
|
||||||
## 步骤 1: 项目结构设计
|
## 步骤 1: 项目结构设计
|
||||||
|
|
||||||
@ -1628,14 +1628,14 @@ namespace MyGame
|
|||||||
|
|
||||||
恭喜!你已经掌握了大型项目的组织方法。接下来可以学习:
|
恭喜!你已经掌握了大型项目的组织方法。接下来可以学习:
|
||||||
|
|
||||||
- [Godot 完整项目](/zh-CN/tutorials/godot-complete-project) - 在 Godot 中应用这些原则
|
- [Godot 完整项目](/zh-CN/tutorials/godot-complete-project.md) - 在 Godot 中应用这些原则
|
||||||
- [资源管理最佳实践](/zh-CN/tutorials/resource-management) - 管理大型项目的资源
|
- [资源管理最佳实践](/zh-CN/tutorials/resource-management.md) - 管理大型项目的资源
|
||||||
- [实现存档系统](/zh-CN/tutorials/save-system) - 保存复杂的游戏状态
|
- [实现存档系统](/zh-CN/tutorials/save-system.md) - 保存复杂的游戏状态
|
||||||
- [架构模式最佳实践](/zh-CN/best-practices/architecture-patterns) - 高级架构模式
|
- [架构模式最佳实践](/zh-CN/best-practices/architecture-patterns.md) - 高级架构模式
|
||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [架构组件](/zh-CN/core/architecture) - 架构系统详解
|
- [架构组件](/zh-CN/core/architecture.md) - 架构系统详解
|
||||||
- [模块系统](/zh-CN/core/architecture#模块系统) - 模块化设计
|
- [模块系统](/zh-CN/core/architecture.md#模块系统) - 模块化设计
|
||||||
- [依赖注入](/zh-CN/core/ioc) - IoC 容器使用
|
- [依赖注入](/zh-CN/core/ioc.md) - IoC 容器使用
|
||||||
- [最佳实践](/zh-CN/best-practices/) - 开发最佳实践
|
- [最佳实践](/zh-CN/best-practices/index.md) - 开发最佳实践
|
||||||
|
|||||||
@ -20,8 +20,8 @@ description: 学习如何使用暂停系统实现多层暂停管理和游戏流
|
|||||||
|
|
||||||
- 已安装 GFramework.Core NuGet 包
|
- 已安装 GFramework.Core NuGet 包
|
||||||
- 了解 C# 基础语法和接口实现
|
- 了解 C# 基础语法和接口实现
|
||||||
- 阅读过[快速开始](/zh-CN/getting-started/quick-start)
|
- 阅读过[快速开始](/zh-CN/getting-started/quick-start.md)
|
||||||
- 了解[架构组件](/zh-CN/core/architecture)基础
|
- 了解[架构组件](/zh-CN/core/architecture.md)基础
|
||||||
|
|
||||||
## 步骤 1:注册暂停管理器
|
## 步骤 1:注册暂停管理器
|
||||||
|
|
||||||
@ -1120,14 +1120,14 @@ class Program
|
|||||||
|
|
||||||
恭喜!你已经掌握了暂停系统的使用。接下来可以学习:
|
恭喜!你已经掌握了暂停系统的使用。接下来可以学习:
|
||||||
|
|
||||||
- [使用协程系统](/zh-CN/tutorials/coroutine-tutorial) - 在暂停状态下控制协程
|
- [使用协程系统](/zh-CN/tutorials/coroutine-tutorial.md) - 在暂停状态下控制协程
|
||||||
- [实现状态机](/zh-CN/tutorials/state-machine-tutorial) - 结合状态机管理游戏流程
|
- [实现状态机](/zh-CN/tutorials/state-machine-tutorial.md) - 结合状态机管理游戏流程
|
||||||
- [事件系统](/zh-CN/core/events) - 使用事件响应暂停状态变化
|
- [事件系统](/zh-CN/core/events.md) - 使用事件响应暂停状态变化
|
||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [架构组件](/zh-CN/core/architecture) - 架构基础
|
- [架构组件](/zh-CN/core/architecture.md) - 架构基础
|
||||||
- [Utility 层](/zh-CN/core/utility) - Utility 详细说明
|
- [Utility 层](/zh-CN/core/utility.md) - Utility 详细说明
|
||||||
- [生命周期管理](/zh-CN/core/lifecycle) - 组件生命周期
|
- [生命周期管理](/zh-CN/core/lifecycle.md) - 组件生命周期
|
||||||
- [扩展方法](/zh-CN/core/extensions) - 便捷的扩展方法
|
- [扩展方法](/zh-CN/core/extensions.md) - 便捷的扩展方法
|
||||||
|
|
||||||
|
|||||||
@ -20,8 +20,8 @@ description: 学习如何高效管理游戏资源,避免内存泄漏和性能
|
|||||||
|
|
||||||
- 已安装 GFramework.Core NuGet 包
|
- 已安装 GFramework.Core NuGet 包
|
||||||
- 了解 C# 基础语法和 async/await
|
- 了解 C# 基础语法和 async/await
|
||||||
- 阅读过[快速开始](/zh-CN/getting-started/quick-start)
|
- 阅读过[快速开始](/zh-CN/getting-started/quick-start.md)
|
||||||
- 了解[协程系统](/zh-CN/core/coroutine)
|
- 了解[协程系统](/zh-CN/core/coroutine.md)
|
||||||
|
|
||||||
## 步骤 1:创建资源类型和加载器
|
## 步骤 1:创建资源类型和加载器
|
||||||
|
|
||||||
@ -802,13 +802,13 @@ MyGame/
|
|||||||
|
|
||||||
恭喜!你已经掌握了资源管理的最佳实践。接下来可以学习:
|
恭喜!你已经掌握了资源管理的最佳实践。接下来可以学习:
|
||||||
|
|
||||||
- [使用协程系统](/zh-CN/tutorials/coroutine-tutorial) - 在协程中加载资源
|
- [使用协程系统](/zh-CN/tutorials/coroutine-tutorial.md) - 在协程中加载资源
|
||||||
- [实现状态机](/zh-CN/tutorials/state-machine-tutorial) - 在状态切换时管理资源
|
- [实现状态机](/zh-CN/tutorials/state-machine-tutorial.md) - 在状态切换时管理资源
|
||||||
- [实现存档系统](/zh-CN/tutorials/save-system) - 保存和加载游戏数据
|
- [实现存档系统](/zh-CN/tutorials/save-system.md) - 保存和加载游戏数据
|
||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [资源管理系统](/zh-CN/core/resource) - 资源系统详细说明
|
- [资源管理系统](/zh-CN/core/resource.md) - 资源系统详细说明
|
||||||
- [对象池系统](/zh-CN/core/pool) - 结合对象池复用资源
|
- [对象池系统](/zh-CN/core/pool.md) - 结合对象池复用资源
|
||||||
- [协程系统](/zh-CN/core/coroutine) - 异步加载资源
|
- [协程系统](/zh-CN/core/coroutine.md) - 异步加载资源
|
||||||
- [System 层](/zh-CN/core/system) - System 详细说明
|
- [System 层](/zh-CN/core/system.md) - System 详细说明
|
||||||
|
|||||||
@ -20,8 +20,8 @@ description: 学习如何实现完整的游戏存档系统,支持多槽位和
|
|||||||
|
|
||||||
- 已安装 GFramework.Game NuGet 包
|
- 已安装 GFramework.Game NuGet 包
|
||||||
- 了解 C# 基础语法和 async/await
|
- 了解 C# 基础语法和 async/await
|
||||||
- 阅读过[快速开始](/zh-CN/getting-started/quick-start)
|
- 阅读过[快速开始](/zh-CN/getting-started/quick-start.md)
|
||||||
- 了解[数据与存档系统](/zh-CN/game/data)
|
- 了解[数据与存档系统](/zh-CN/game/data.md)
|
||||||
|
|
||||||
## 步骤 1:定义存档数据结构
|
## 步骤 1:定义存档数据结构
|
||||||
|
|
||||||
@ -954,13 +954,13 @@ MyGame/
|
|||||||
|
|
||||||
恭喜!你已经实现了一个完整的存档系统。接下来可以学习:
|
恭喜!你已经实现了一个完整的存档系统。接下来可以学习:
|
||||||
|
|
||||||
- [Godot 完整项目搭建](/zh-CN/tutorials/godot-complete-project) - 在 Godot 中使用存档系统
|
- [Godot 完整项目搭建](/zh-CN/tutorials/godot-complete-project.md) - 在 Godot 中使用存档系统
|
||||||
- [使用协程系统](/zh-CN/tutorials/coroutine-tutorial) - 异步加载存档
|
- [使用协程系统](/zh-CN/tutorials/coroutine-tutorial.md) - 异步加载存档
|
||||||
- [数据与存档系统](/zh-CN/game/data) - 数据系统详细说明
|
- [数据与存档系统](/zh-CN/game/data.md) - 数据系统详细说明
|
||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [数据与存档系统](/zh-CN/game/data) - 数据系统详细说明
|
- [数据与存档系统](/zh-CN/game/data.md) - 数据系统详细说明
|
||||||
- [对象池系统](/zh-CN/core/pool) - 结合对象池复用资源
|
- [对象池系统](/zh-CN/core/pool.md) - 结合对象池复用资源
|
||||||
- [协程系统](/zh-CN/core/coroutine) - 异步加载资源
|
- [协程系统](/zh-CN/core/coroutine.md) - 异步加载资源
|
||||||
- [System 层](/zh-CN/core/system) - System 详细说明
|
- [System 层](/zh-CN/core/system.md) - System 详细说明
|
||||||
@ -20,8 +20,8 @@ description: 学习如何使用状态机系统管理游戏状态和场景切换
|
|||||||
|
|
||||||
- 已安装 GFramework.Core NuGet 包
|
- 已安装 GFramework.Core NuGet 包
|
||||||
- 了解 C# 基础语法和 async/await
|
- 了解 C# 基础语法和 async/await
|
||||||
- 阅读过[快速开始](/zh-CN/getting-started/quick-start)
|
- 阅读过[快速开始](/zh-CN/getting-started/quick-start.md)
|
||||||
- 了解[生命周期管理](/zh-CN/core/lifecycle)
|
- 了解[生命周期管理](/zh-CN/core/lifecycle.md)
|
||||||
|
|
||||||
## 步骤 1:定义游戏状态
|
## 步骤 1:定义游戏状态
|
||||||
|
|
||||||
@ -734,13 +734,13 @@ MyGame/
|
|||||||
|
|
||||||
恭喜!你已经掌握了状态机系统的使用。接下来可以学习:
|
恭喜!你已经掌握了状态机系统的使用。接下来可以学习:
|
||||||
|
|
||||||
- [使用协程系统](/zh-CN/tutorials/coroutine-tutorial) - 在状态中使用协程
|
- [使用协程系统](/zh-CN/tutorials/coroutine-tutorial.md) - 在状态中使用协程
|
||||||
- [资源管理最佳实践](/zh-CN/tutorials/resource-management) - 在加载状态中管理资源
|
- [资源管理最佳实践](/zh-CN/tutorials/resource-management.md) - 在加载状态中管理资源
|
||||||
- [实现存档系统](/zh-CN/tutorials/save-system) - 保存和恢复游戏状态
|
- [实现存档系统](/zh-CN/tutorials/save-system.md) - 保存和恢复游戏状态
|
||||||
|
|
||||||
## 相关文档
|
## 相关文档
|
||||||
|
|
||||||
- [状态机系统](/zh-CN/core/state-machine) - 状态机详细说明
|
- [状态机系统](/zh-CN/core/state-machine.md) - 状态机详细说明
|
||||||
- [生命周期管理](/zh-CN/core/lifecycle) - 组件生命周期
|
- [生命周期管理](/zh-CN/core/lifecycle.md) - 组件生命周期
|
||||||
- [System 层](/zh-CN/core/system) - System 详细说明
|
- [System 层](/zh-CN/core/system.md) - System 详细说明
|
||||||
- [架构组件](/zh-CN/core/architecture) - 架构基础
|
- [架构组件](/zh-CN/core/architecture.md) - 架构基础
|
||||||
|
|||||||
@ -22,8 +22,8 @@ description: 学习如何为 GFramework 项目编写单元测试
|
|||||||
- 已安装 .NET SDK 8.0 或更高版本
|
- 已安装 .NET SDK 8.0 或更高版本
|
||||||
- 了解 C# 基础语法
|
- 了解 C# 基础语法
|
||||||
- 熟悉 xUnit 或 NUnit 测试框架
|
- 熟悉 xUnit 或 NUnit 测试框架
|
||||||
- 阅读过[快速开始](/zh-CN/getting-started/quick-start)
|
- 阅读过[快速开始](/zh-CN/getting-started/quick-start.md)
|
||||||
- 了解[架构系统](/zh-CN/core/architecture)
|
- 了解[架构系统](/zh-CN/core/architecture.md)
|
||||||
|
|
||||||
## 步骤 1:创建测试项目
|
## 步骤 1:创建测试项目
|
||||||
|
|
||||||
@ -1143,5 +1143,5 @@ public void CalculateBonus_Should_Return_Double(int input, int expected)
|
|||||||
|
|
||||||
- [NUnit 官方文档](https://docs.nunit.org/)
|
- [NUnit 官方文档](https://docs.nunit.org/)
|
||||||
- [Moq 快速入门](https://github.com/moq/moq4/wiki/Quickstart)
|
- [Moq 快速入门](https://github.com/moq/moq4/wiki/Quickstart)
|
||||||
- [架构设计模式](/zh-CN/best-practices/architecture-patterns)
|
- [架构设计模式](/zh-CN/best-practices/architecture-patterns.md)
|
||||||
- [性能优化最佳实践](/zh-CN/best-practices/performance)
|
- [性能优化最佳实践](/zh-CN/best-practices/performance.md)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user