عن المشروع

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)".