طوّر مطور لديه عقود من الخبرة في تطوير الويب، بدءًا من PHP 3.0 مرورًا بـ Python وPerl وقوالب Django، عودته مؤخرًا إلى تطوير الويب باستخدام Zig. وقد أقنعه بناء الخوادم الخلفية باستخدام zio وDusty بأن مخصصات الساحات وComptime في Zig تجعل العمل على الويب عمليًا، وأن htmx أو Datastar تتيح تطبيقات الصفحة الواحدة دون لمس JavaScript أو TypeScript.
ما كان ينقص هو نظام قوالب يستوفي أربعة متطلبات: أمان الأنواع وقت الترجمة، والسرعة دون تخصيصات مع الكتابة المباشرة إلى std.Io.Writer، وهروب جميع المدخلات افتراضيًا لمنع XSS، وصياغة لا تزال تبدو كتابة HTML. لم يستوفِ أي خيار موجود كل هذه الشروط. قدّم Ziex، بنهجه المستوحى من JSX، أفكارًا مفيدة، لكنه يستهدف WASM، وهو ما لم يناسب احتياجات المؤلف. ثم قدّم Templ من Go النموذج الأوضح.
النتيجة هي zt، وهو تكييف لـ Templ بلغة Zig. تُحلَّل القوالب وتُترجم إلى Zig أثناء zig build، لذا يمكنها استيراد كود التطبيق ويمكن لكود التطبيق استيرادها. المعاملات مكتوبة بالكامل، وتظهر أخطاء العرض في وقت الترجمة. يكتب الكود المولّد ببساطة إلى std.Io.Writer، سواء كان مقبسًا أو مخزنًا مؤقتًا.
الاستخدام مباشر. تُعلن القوالب بالكلمة المفتاحية templ، ويمكنها تداخل المكونات عبر @children، وتقبل معاملات مكتوبة مثل سجلات المستخدم الاختيارية. يمكن استدعاء العرض مباشرة أو عبر دالة render في Dusty لاستجابات HTML.
المصدر: Hacker News · لخّصه HeadlinesBriefing