Sobre el proyecto

Yoga es un motor de diseño integrable que implementa la semántica de flexbox alineada con los estándares web. Su implementación principal está escrita en C++20 y se compila con CMake, e incluye enlaces para múltiples lenguajes de programación, lo que lo hace utilizable en diversas plataformas y entornos de ejecución. El proyecto proporciona un script envoltorio para compilar la biblioteca principal y ejecutar pruebas unitarias. El script se invoca como ./unit_tests Debug o ./unit_tests Release. Si ninja está instalado, el script lo usa para compilaciones más rápidas. Yoga también está disponible como un puerto de vcpkg mantenido por Microsoft y colaboradores de la comunidad; los usuarios pueden solicitar actualizaciones a través del repositorio de vcpkg. Las pruebas están en gran medida automatizadas. Las pruebas se generan a partir de fixtures HTML que describen la estructura de nodos, que se renderizan en Chrome para producir los resultados de diseño esperados. Los nuevos fixtures van en gentest/fixtures, por ejemplo: un elemento div con id my_test y estilo width 100px, height 100px, align-items center, que contiene un div hijo con width 50px y height 50px. Para generar pruebas a partir de nuevos fixtures, instala yarn classic, ejecuta yarn install para obtener las dependencias del generador de pruebas y luego ejecuta yarn gentest en el directorio de yoga. Para depurar, Yoga incluye una configuración de lanzamiento de VSCode que admite la depuración de pruebas unitarias con puntos de interrupción mediante 'Debug C++ Unit tests (lldb)' o, en Windows, 'Debug C++ Unit tests (vsdbg)'.