Об этом проекте

Yoga — это встраиваемый движок разметки, реализующий семантику flexbox в соответствии с веб-стандартами. Его основная реализация написана на C++20 и собирается с помощью CMake, а также поставляется с привязками для нескольких языков программирования, что позволяет использовать его на различных платформах и в разных средах выполнения. Проект предоставляет скрипт-обертку для сборки основной библиотеки и запуска юнит-тестов: ```sh ./unit_tests <Debug|Release> ``` Если установлен ninja, скрипт использует его для более быстрой сборки. Yoga также доступен в виде порта vcpkg, поддерживаемого Microsoft и участниками сообщества; пользователи могут запрашивать обновления через репозиторий vcpkg. Тестирование в значительной степени автоматизировано. Тесты генерируются из HTML-фикстур, описывающих структуру узлов, которые рендерятся в Chrome для получения ожидаемых результатов разметки. Новые фикстуры помещаются в `gentest/fixtures`, например: ```html <div id="my_test" style="width: 100px; height: 100px; align-items: center;"> <div style="width: 50px; height: 50px;"></div> </div> ``` Чтобы сгенерировать тесты из новых фикстур, установите yarn classic, выполните `yarn install` для загрузки зависимостей генератора тестов, а затем запустите `yarn gentest` в директории yoga. Для отладки Yoga включает конфигурацию запуска VSCode, которая поддерживает отладку юнит-тестов с точками останова с помощью «Debug C++ Unit tests (lldb)» или, в Windows, «Debug C++ Unit tests (vsdbg)».