仓库约定
以下规则是 geometry3d 在 Luna-Flow 文档标准之外补充的约定。
范围
- 文档描述当前分支上的版本,以各包的
pkg.generated.mbti为准。仅限 JavaScript 的包(backend/canvas、backend/gsap、demo_canvas、demo_gsap)没有提交接口文件;它们的公开接口以moon info --target js报告的为准。 - 不记录尚未实现的 engine 功能,例如 scene graph、material、texture、 physics、BVH 或 asset loader。
包边界
- geometry core 文档不得混入 terminal、ANSI、TUI 等细节。
- terminal y-scale、背景 pattern、字符光栅化只放在
backend/tui或demo。 - 把浏览器 DOM、Canvas、扫描线和 JS 目标相关的细节放在
backend/canvas、backend/gsap、demo_canvas或demo_gsap之下。 - 行为变化跨越包边界时,同步更新所有受影响包的 API、设计和教程页面。
可执行程序
演示包不导出任何 MoonBit 项。它们的 API 页面改为记录命令行(demo)或 HTML 页面约定(demo_canvas、demo_gsap)。
示例
每个未标记 nocheck 的 moonbit 代码块都必须能针对当前代码编译,inspect 快照和 text 代码块中显示的输出必须是真实输出。检查方法:把这些代码块复制到一个依赖本仓库的临时模块中,运行 moon test(浏览器相关页面加上 --target js)。