Files
XCEngine/docs/plan/API文档目录重构计划_2026-04-09.md

4.8 KiB
Raw Blame History

API文档目录重构计划

1. 背景

当前 API 文档树已经出现明显的“双主线错位”:

  • docs/api/XCEngine/Editor/** 主要对应旧 editor/src/** 的 ImGui 编辑器应用层。
  • new_editor/include/XCEditor/**new_editor/src/** 已经形成新的 Editor 基础层主线。
  • 这条主线最初没有进入当前 canonical API 树,审计脚本也一度没有覆盖 new_editor/include/XCEditor/**

这意味着继续只在 docs/api/XCEngine/Editor/** 上增量修补,会越来越偏离真实代码结构。

1.1 2026-04-10 状态更新

截至 2026-04-10 17:07:09,以下阶段已经落地:

  • docs/api/XCEditor/** 已建立并进入 canonical 根树
  • 审计脚本已经覆盖:
    • engine/include/XCEngine/**
    • new_editor/include/XCEditor/**
    • editor/src/**
  • docs/api/main.md 已建立 XCEngine + XCEditor 双根入口
  • XCUIDemoPanel 已退出当前 canonical API 树
  • Resources/ModelResources/GaussianSplat 已补齐 canonical 入口

因此这份计划里“为什么要拆出 XCEditor 根树”的判断仍然有效,但 Phase B / C 不再是未来动作,而是已完成事实。

2. 当前判断

2.1 旧 Editor 文档树继续保留,但必须收紧边界

  • docs/api/XCEngine/Editor/** 继续只文档化旧 editor/src/**
  • 不再把它当成未来 Editor 主线 API 树。
  • 其中 Application / EditorResources / Theme / XCUIBackend / panels / Viewport 等内容,明确视为旧编辑器应用层。

2.2 新主线已拆出独立文档树

当前已新增:

  • docs/api/XCEditor/

首层目录直接镜像 new_editor/include/XCEditor/**

  • Collections
  • Fields
  • Foundation
  • Shell
  • Widgets

这样做的原因很直接:

  • 与真实 include 路径一致,后续自动审计最容易做。
  • 不会把新主线继续混进旧 XCEngine/Editor 树里。
  • 可以允许页面里的命名空间继续写真实值 XCEngine::UI::Editor / XCEngine::UI::Editor::Widgets,而目录只负责和头文件路径对齐。

2.3 新旧两棵树的职责应明确分开

  • docs/api/XCEngine/Editor/**
    • 旧编辑器应用层、宿主层、过渡层、当前产品参考实现。
  • docs/api/XCEditor/**
    • new_editor 的新 Editor 基础层与宿主骨架。

3. 已确认的结构漂移

3.1 文档树覆盖不到 new_editor/include/XCEditor

当前新主线 public headers 已经至少包含:

  • XCEditor/Collections/*
  • XCEditor/Fields/*
  • XCEditor/Foundation/*
  • XCEditor/Shell/*
  • XCEditor/Widgets/*

现在 docs/api 里已经有对应的 XCEditor 根树。

3.2 旧树中仍混有已经过时的过渡页

当前这类问题已经完成清理,最典型的是:

  • docs/api/XCEngine/Editor/panels/XCUIDemoPanel/XCUIDemoPanel.md
    • 仍引用已不存在的 editor/src/panels/XCUIDemoPanel.h

这类页面已经从 active canonical 树移除,不再继续假设旧源码路径仍成立。

3.3 审计工具口径落后

当前这项问题已经收口;审计脚本现在已经把:

  • new_editor/include/XCEditor/**/*.h

纳入 canonical 统计,XCEditor 缺页会直接出现在审计结果里。

4. 分阶段执行

Phase A收紧旧树边界

  • docs/api/XCEngine/Editor/Editor.md 明确“这里只对应旧 editor/src/**”。
  • 修掉旧树里已经失效的 source refs。
  • 继续补齐旧 editor/src/** 当前缺失的 canonical 页,避免现有审计长期失真。

Phase B建立 XCEditor 新根树(已完成)

  • 新建 docs/api/XCEditor/XCEditor.md
  • 新建 5 个首层 overview
    • Collections
    • Fields
    • Foundation
    • Shell
    • Widgets
  • 建立 docs/api/main.md 到新根树的入口链接

Phase C接入新审计口径已完成

  • 扩展审计脚本识别 new_editor/include/XCEditor/**/*.h
  • 统计 docs/api/XCEditor/** 的 canonical 覆盖率
  • 区分:
    • editor/src/** 应用层源码页
    • XCEditor/** public header 页

Phase D按新主线分批补页进行中

推荐顺序:

  1. Foundation
  2. Widgets
  3. Collections
  4. Fields
  5. Shell

原因:

  • FoundationWidgets 是多数页面的前置语义。
  • Collections / Fields 数量多,但结构相对规整,适合并行。
  • Shell 依赖最多,最好放后面统一写。

Phase E旧树去历史包袱进行中

  • 删除或改写已经脱离旧源码的过渡页
  • 把“旧 editor 参考实现”和“new_editor 正式主线”在相关 overview 中互相链接,但不再混放
  • 避免后续继续把 new_editor 内容塞进 docs/api/XCEngine/Editor/**

5. 本轮执行口径

当前后续重点已经转到:

  1. 继续回归高风险 RHI / Rendering / Editor/Viewport 内容页,避免源码继续演进后文档再次漂移。
  2. 继续清理旧树里的历史空目录、重复入口和剩余结构噪音。