PHP 3.0 से लेकर Python, Perl और Django टेम्पलेट्स तक दशकों का वेब अनुभव रखने वाले एक डेवलपर ने हाल ही में Zig का उपयोग करके वेब डेवलपमेंट में वापसी की है। zio और Dusty के साथ बैकएंड बनाने से उन्हें यकीन हुआ कि arena allocators और Zig का comptime वेब कार्य को व्यावहारिक बनाते हैं, और htmx या Datastar JavaScript या TypeScript छुए बिना SPA बनाने देते हैं।
जिसकी कमी थी वह एक ऐसा टेम्पलेटिंग सिस्टम था जो चार आवश्यकताएँ पूरी करे: कंपाइल-टाइम टाइप सेफ़्टी, बिना आवंटन और सीधे std.Io.Writer में लिखने वाली गति, XSS रोकने के लिए डिफ़ॉल्ट रूप से सभी इनपुट का एस्केपिंग, और ऐसा सिंटैक्स जो अब भी HTML लिखने जैसा लगे। कोई मौजूदा विकल्प इन सभी को पूरा नहीं करता था। Ziex, अपने JSX-प्रेरित दृष्टिकोण के साथ, उपयोगी विचार देता था, लेकिन वह WASM को लक्ष्य करता है, जो लेखक की ज़रूरतों के अनुकूल नहीं था। Go का Templ सबसे स्पष्ट मॉडल प्रदान करता था।
परिणाम zt है, जो Templ का Zig रूपांतरण है। टेम्पलेट्स zig build के दौरान पार्स और Zig में ट्रांसपाइल होते हैं, इसलिए वे ऐप कोड को इंपोर्ट कर सकते हैं और ऐप कोड उन्हें इंपोर्ट कर सकता है। पैरामीटर पूरी तरह टाइप्ड हैं, और रेंडरिंग त्रुटियाँ कंपाइल समय पर सामने आती हैं। जनरेट किया गया कोड केवल std.Io.Writer में लिखता है, चाहे वह सॉकेट हो या बफ़र।
उपयोग सीधा है। टेम्पलेट्स templ कीवर्ड से घोषित होते हैं, @children के माध्यम से कॉम्पोनेंट्स को नेस्ट कर सकते हैं, और वैकल्पिक उपयोगकर्ता रिकॉर्ड जैसे टाइप्ड पैरामीटर स्वीकार करते हैं। रेंडरिंग सीधे या Dusty के render हेल्पर के माध्यम से HTML रिस्पॉन्स के लिए की जा सकती है।
स्रोत: Hacker News · HeadlinesBriefing द्वारा सारांशित