इस प्रोजेक्ट के बारे में

Yoga एक एम्बेडेबल लेआउट इंजन है जो वेब मानकों के अनुरूप फ्लेक्सबॉक्स सेमेन्टिक्स लागू करता है। इसका मुख्य कार्यान्वयन C++20 में लिखा गया है और CMake के साथ बनाया गया है, तथा यह कई प्रोग्रामिंग भाषाओं के लिए बाइंडिंग के साथ आता है, जिससे यह विभिन्न प्लेटफार्मों और रनटाइम्स पर उपयोगी है। परियोजना मुख्य लाइब्रेरी बनाने और यूनिट परीक्षण चलाने के लिए एक रैपर स्क्रिप्ट प्रदान करती है: ./unit_tests (Debug|Release) यदि ninja स्थापित है, तो स्क्रिप्ट तेज़ बिल्ड के लिए उसका उपयोग करती है। Yoga vcpkg पोर्ट के रूप में भी उपलब्ध है, जिसे Microsoft और सामुदायिक योगदानकर्ताओं द्वारा अनुरक्षित किया जाता है; उपयोगकर्ता vcpkg रिपॉजिटरी के माध्यम से अद्यतन का अनुरोध कर सकते हैं। परीक्षण अधिकांशतः स्वचालित है। परीक्षण HTML फिक्स्चर से उत्पन्न होते हैं जो नोड संरचना का वर्णन करते हैं, और अपेक्षित लेआउट परिणाम उत्पन्न करने के लिए उन्हें Chrome में रेंडर किया जाता है। नए फिक्स्चर `gentest/fixtures` में जाते हैं, उदाहरण के लिए: एक मुख्य div जिसकी id "my_test" और style "width: 100px; height: 100px; align-items: center;" है, जिसके अंदर एक और div है जिसकी style "width: 50px; height: 50px;" है। नए फिक्स्चर से परीक्षण उत्पन्न करने के लिए, yarn classic स्थापित करें, परीक्षण जनरेटर निर्भरताएँ प्राप्त करने के लिए `yarn install` चलाएँ, फिर yoga निर्देशिका में `yarn gentest` चलाएँ। डिबगिंग के लिए, Yoga में एक VSCode लॉन्च कॉन्फ़िगरेशन शामिल है जो "Debug C++ Unit tests (lldb)" या Windows पर "Debug C++ Unit tests (vsdbg)" के माध्यम से ब्रेकपॉइंट्स के साथ यूनिट परीक्षणों को डिबग करने का समर्थन करता है।