साइकिल, या Django की तरह जावास्क्रिप्ट टेम्पलेट्स

हमारे शोपियमहोर प्रोजेक्ट के घटकों में से एक प्रशासनिक इंटरफ़ेस है, जिसे क्लाइंट रिच इंटरनेट एप्लिकेशन पर पूरी तरह से निष्पादित किया जाता है।

HTML में सर्वर से आने वाले डेटा को आकर्षित करने के लिए, हमें अक्सर एक जावास्क्रिप्ट टेम्पलेट इंजन की आवश्यकता होती है।

जावास्क्रिप्ट के लिए बहुत सारे अलग-अलग टेम्पलेट इंजन हैं। यहां तक ​​कि एक्सटीजेएस पुस्तकालय में जो हम अपनी परियोजना के लिए उपयोग करते हैं, उनमें से दो हैं, लेकिन उनकी वाक्य रचना और क्षमताएं आदर्श से बहुत दूर हैं।

आप जल्दी से अच्छे के लिए अभ्यस्त हो जाते हैं, और हम जल्दी से जिनजा 2 टेम्पलेट सिंटैक्स का उपयोग करते हैं, जिसका उपयोग हम सर्वर-साइड HTML उत्पन्न करने के लिए करते हैं। और वे वही चाहते थे, लेकिन मोती बटन के साथ लेकिन जावास्क्रिप्ट के लिए।

और उसके लिए ऐसी आवश्यकताओं का गठन किया:
  1. Django / Jinja की तरह सिंटैक्स
  2. जेएस कोड में एक टेम्पलेट संकलित करना (जैसे क्लोजर टेम्प्लेट्स में)
  3. HTML ऑटो से बचना
  4. सादगी (विकास, उपयोग, कार्यान्वयन)

इंटरनेट पर खोज करने और उसके बाद कुछ भी नहीं ढूंढने के बाद, हमने कहा, "हां, हम डेवलपर हैं या नहीं, अंत में!", और खुद लिखा।

टेम्पलेट इंजन में एक निष्पादन योग्य फ़ाइल होती है। ऑपरेशन एल्गोरिथ्म बहुत सरल है:
  1. Pyparsing का उपयोग करके, हम टेम्पलेट के स्रोत कोड को पार्स करते हैं, और एक सिंटैक्स ट्री का निर्माण करते हैं।
  2. हम पुनरावर्ती रूप से पेड़ के माध्यम से चलाते हैं और इसे जावास्क्रिप्ट में अनुवाद करते हैं।

आउटपुट टेम्पलेट कोड के साथ एक .js फ़ाइल है।

परिणामी फ़ाइल तब आपकी परियोजना से जुड़ी हो सकती है।

एमआईटी लाइसेंस के तहत परियोजना के लिए स्रोत कोड मेरे बिटबकेट रिपॉजिटरी में उपलब्ध हैटेम्पलेट इंजन के उपयोग का एक संक्षिप्त उदाहरण भी है।

फिलहाल, सभी कोड बहुत प्रयोगात्मक है, और केवल एक दिन में लिखा गया था। हमारी योजना इसे एक स्थिर स्थिति में लाने और हर जगह इसका उपयोग करने की है।

Source: https://habr.com/ru/post/In103409/


All Articles