这个项目能做什么

Yoga是一个可嵌入的布局引擎,实现了与Web标准一致的flexbox语义。其核心实现使用C++20编写,并通过CMake构建,同时提供多种编程语言的绑定,使其可跨平台和运行时使用。 项目提供了用于构建主库和运行单元测试的包装脚本:运行 ./unit_tests 并传入 Debug 或 Release 参数。如果安装了ninja,脚本会使用它来加速构建。Yoga也可作为vcpkg port使用,由Microsoft和社区贡献者维护;用户可通过vcpkg仓库请求更新。 测试大部分是自动化的。测试由描述节点结构的HTML fixtures生成,并在Chrome中渲染以产生预期布局结果。新的fixtures放在gentest/fixtures目录下,例如一个id为“my_test”的元素,样式为width:100px; height:100px; align-items:center;,其内部包含一个50px乘50px的子元素。 要从新的fixtures生成测试,请安装yarn classic,运行yarn install获取测试生成器依赖,然后在yoga目录下运行yarn gentest。 对于调试,Yoga包含一个VSCode启动配置,支持通过“Debug C++ Unit tests (lldb)”(Windows上为“Debug C++ Unit tests (vsdbg)”)设置断点来调试单元测试。