टेम्पलेट प्रोसेसर

टेम्प्लेट प्रोसेसर (जिसे टेम्प्लेट इंजन या टेम्प्लेट पार्सर के रूप में भी जाना जाता है) एक ऐसा सॉफ़्टवेयर है, जिसे परिणाम दस्तावेज़ बनाने के लिए डेटा मॉडल के साथ टेम्प्लेट को संयोजित करने के लिए डिज़ाइन किया गया है।  जिस भाषा में टेम्प्लेट लिखे जाते हैं उसे टेम्प्लेट भाषा या टेम्प्लेटिंग भाषा के रूप में जाना जाता है। इस आलेख के प्रयोजनों के लिए एक परिणाम दस्तावेज़ किसी भी प्रकार का प्रारूपित आउटपुट है, जिसमें दस्तावेज़, वेब पेज या स्रोत कोड (स्रोत कोड पीढ़ी में) या समग्र कोड में सम्मिलित है। टेम्प्लेट इंजन को सामान्यतः वेब टेम्प्लेट सिस्टम या एप्लिकेशन फ्रेमवर्क के एक भाग के रूप में सम्मिलित किया जाता है, इसका उपयोग प्रोसेसर या फ़िल्टर के रूप में भी किया जा सकता है।

विशिष्ट विशेषताएं
टेम्प्लेट इंजन में सामान्यतः अधिकांश उच्च-स्तरीय प्रोग्रामिंग भाषाओं में सामान्य सुविधाएं सम्मिलित होती हैं, जिसमें साधारण टेक्स्ट को संसाधित करने की सुविधाओं पर महत्व दिया जाता है।

जिसमें निम्नलिखित विशेषताएं सम्मिलित हैं:
 * चर (प्रोग्रामिंग) और फंक्शन
 * टेक्स्ट प्रतिस्थापन
 * फ़ाइल संचरण
 * सशर्त मूल्यांकन और लूप

अंतः स्थापित टेम्पलेट इंजन
टेम्प्लेट प्रोसेसर सामान्यतः सॉफ्टवेयर का एक अलग भाग होता है, जिसका उपयोग सिस्टम या फ्रेमवर्क के भाग के रूप में किया जाता है। सरल टेम्प्लेट भाषाएं सामान्यतः सामान्य प्रयोजन प्रोग्रामिंग भाषाओं की स्ट्रिंग प्रसंस्करण सुविधाओं में और टेक्स्ट प्रसंस्करण प्रोग्राम में विशेष रूप से टेक्स्ट संपादक या वर्ड प्रोसेसर में सम्मिलित होती हैं। पूर्ण विकसित टेम्प्लेट प्रोसेसर में अधिक परिष्कृत सुविधाओं के विपरीत टेम्प्लेट भाषाएं सामान्यतः सरल प्रतिस्थापित भाषाएं होती हैं लेकिन इसमें कुछ तर्क हो सकते हैं।

सामान्य उदाहरणों में  स्ट्रिंग सम्मिलित हैं, जो कई प्रोग्रामिंग भाषाओं में उपलब्ध हैं और स्निपेट टेक्स्ट जो कई टेक्स्ट संपादकों और स्रोत कोड संपादकों में पाए जाते हैं। वर्ड प्रोसेसर में टेम्प्लेट एक सामान्य विशेषता है जबकि टेम्प्लेट (वर्ड प्रसंस्करण) को स्वचालित रूप से प्रायः मेल-मर्ज के रूप में जाना जाता है।

पार्सिंग टेम्प्लेट की पूरक प्रकृति का एक उदाहरण  प्रोसेसर में   स्थानापन्न कमांड है, जो   संपादन में खोज और स्थापन से उत्पन्न होता है। प्रतिस्थापन अनुक्रम   के रूप में होते हैं, जहां इनपुट को पार्स करने के लिए   एक नियमित अभिव्यक्ति है और प्रतिस्थापन आउटपुट के लिए एक सरल टेम्पलेट है या तो शाब्दिक टेक्स्ट या संपूर्ण मेल-मर्ज के लिए वर्ण युक्त एक प्रारूप स्ट्रिंग या nth उप-अभिव्यक्ति के लिए विशेष एस्केप अनुक्रम   से   तक उदाहरण के लिए   मे सम्मिलित   की प्रतिलिपि के अतिरिक्त   की सभी घटनाओं को   या   से परिवर्तित किया जाता है और   में पहली उप-अभिव्यक्ति प्रारूप स्ट्रिंग को   आउटपुट में प्रतिस्थापित किया जा सकता है।

सिस्टम घटक
सभी टेम्प्लेट प्रसंस्करण सिस्टम में अपेक्षाकृत कम से कम निम्नलिखित प्राथमिक घटक होते हैं:


 * संबद्ध डेटा मॉडल
 * एक या अधिक स्रोत टेम्पलेट
 * एक प्रोसेसर या टेम्पलेट इंजन
 * परिणाम दस्तावेजों के रूप में उत्पन्न आउटपुट

डेटा मॉडल
यह डेटाबेस मॉडल एक स्रोत फ़ाइल जैसे एक्सएमएल, फ्लैट फ़ाइल डेटाबेस का एक वैकल्पिक प्रारूप, स्प्रेडशीट या पूर्व-प्रारूपित डेटा का अन्य विभिन्न स्रोत हो सकता है। कुछ टेम्प्लेट प्रसंस्करण सिस्टम मे उपयोग किए जाने वाले डेटा के प्रकार में सीमित हैं जो अन्य अधिकतम नम्यता के लिए डिज़ाइन किए गए हैं और कई अलग-अलग प्रकार के डेटा की स्वीकृति देते हैं।

स्रोत टेम्पलेट
स्रोत टेम्पलेट पारंपरिक रूप से निर्दिष्ट हैं:
 * पहले से उपस्थित प्रोग्रामिंग भाषा के अनुसार
 * विशेष रूप से परिभाषित टेम्पलेट भाषा के अनुसार
 * किसी होस्टिंग सॉफ़्टवेयर एप्लिकेशन की विशेषताओं के अनुसार
 * उपरोक्त में से कुछ या सभी के मिश्रित संयोजन के अनुसार

टेम्पलेट इंजन
टेम्प्लेट इंजन निम्नलिखित कारण के लिए उत्तरदायी है:
 * डेटा मॉडल से संबद्ध करना
 * स्रोत टेम्प्लेट में निर्दिष्ट कोड को संसाधित करना
 * आउटपुट को एक विशिष्ट पाइपलाइन (कंप्यूटिंग), टेक्स्ट फ़ाइल या स्ट्रीम (कंप्यूटिंग) पर निर्देशित करना

इसके अतिरिक्त कुछ टेम्प्लेट इंजन अतिरिक्त रूपांतरित विकल्पों की स्वीकृति देते हैं।

परिणाम दस्तावेज़
इनमें संपूर्ण दस्तावेज़ या एक दस्तावेज़ खंड सम्मिलित हो सकता है।

उपयोग
टेम्प्लेट प्रसंस्करण का उपयोग विभिन्न संदर्भों में विभिन्न उद्देश्यों के लिए किया जाता है। विशिष्ट उद्देश्य सामान्यतः उपयोग में आने वाले सॉफ़्टवेयर एप्लिकेशन या टेम्पलेट इंजन पर निर्भर होते है। हालाँकि, टेम्प्लेट प्रसंस्करण सिस्टम की नम्यता प्रायः उन उद्देश्यों के लिए अपरंपरागत उपयोग को सक्षम बनाती है जो मूल प्रारूपों द्वारा मूल रूप से इच्छित नहीं है।

टेम्पलेट इंजन
टेम्प्लेट इंजन एक विशिष्ट प्रकार का टेम्प्लेट प्रसंस्करण मॉड्यूल है जो आधुनिक प्रोग्रामिंग भाषा की सभी प्रमुख विशेषताओं को प्रदर्शित करता है। टेम्प्लेट इंजन शब्द प्रोग्रामिंग भाषाओं के एक सामान्यीकृत विवरण के रूप में विकसित हुआ है। जिसका प्राथमिक या विशेष उद्देश्य आउटपुट टेक्स्ट के लिए टेम्प्लेट और डेटा को संसाधित करना है। इस शब्द का उपयोग विशेष रूप से वेब टेम्प्लेट सिस्टम का उपयोग करके वेब विकास पर प्रयुक्त किया जाता है और यह अन्य संदर्भों पर भी प्रयुक्त होता है।

दस्तावेज़ निर्माण
दस्तावेज़ निर्माण संरचना सामान्यतः दस्तावेज़ बनाने के लिए केंद्रीय मॉडल के रूप में टेम्पलेट प्रसंस्करण का उपयोग करती है।

सोर्स कोड संस्करण
स्रोत कोड संस्करण उपकरण विशेष एप्लिकेशन डोमेन, विशेष संगठनों के लिए या कंप्यूटर प्रोग्रामर के लिए उत्पादन प्रक्रिया को सरल बनाने में अमूर्त डेटा मॉडल (उदाहरण के लिए, यूएमएल, डेटाबेस, डोमेन-विशिष्ट एंटरप्राइज़ डेटा भंडारण) से स्रोत कोड परिणाम दस्तावेजों के रूप में पूर्व संस्करण का समर्थन करते हैं।

सॉफ्टवेयर कार्यशीलता
वेब टेम्प्लेट इंजन एक या एक से अधिक आउटपुट वेब पेज बनाने के लिए वेब टेम्प्लेट और स्रोत डेटा (सामान्यतः संबंध डेटाबेस) को संसाधित करता है। इसे सामान्यतः वेब टेम्प्लेट सिस्टम या एप्लिकेशन फ्रेमवर्क के एक भाग के रूप में सम्मिलित किया जाता है। वर्तमान में टेम्प्लेट प्रसंस्करण सॉफ़्टवेयर का उपयोग वेब पेज के विकास के संदर्भ में सबसे अधिक बार किया जाता है।

तुलना
एक्सएसएलटी डब्ल्यू 3-सी द्वारा डिज़ाइन किया गया एक टेम्प्लेट प्रसंस्करण मॉडल है। यह मुख्य रूप से एक्सएमएल डेटा (वेब ​​​​दस्तावेज़ों या अन्य आउटपुट में) पर परिवर्तन के लिए डिज़ाइन किया गया है।

पर्ल, पायथन, पीएचपी, रूबी, सी, गो और जावा जैसी प्रोग्रामिंग भाषाएं मूल रूप से पूरक लाइब्रेरी या मॉड्यूल के माध्यम से टेम्पलेट प्रसंस्करण का समर्थन करती हैं। जावा सर्वर पेज, सक्रिय सर्वर पेज, गेन्शी (पायथन के लिए) और ईरूबी विशेष रूप से वेब एप्लिकेशन विकास के लिए डिज़ाइन किए गए टेम्पलेट इंजन के उदाहरण हैं।

इसके अतिरिक्त टेम्प्लेट प्रसंस्करण को कभी-कभी टेक्स्ट संपादक, आईडीई और संबंध डेटाबेस प्रबंधन प्रणाली जैसे सॉफ्टवेयर पैकेजों की उप-सुविधा के रूप में सम्मिलित किया जाता है।

टेम्प्लेट इंजन के उपयोग करने के लाभ

 * स्रोत कोड को परिचालन-विशिष्ट परतों में व्यवस्थित करने को प्रोत्साहित करता है, उदाहरण के लिए एमवीसी देखें।
 * प्रयास के अनावश्यक पुनरुत्पादन को अपेक्षाकृत कम करके उत्पादकता बढ़ाता है।
 * योग्यता (कलात्मक तकनीक) के आधार पर कार्य को अलग करने की स्वीकृति देकर सामूहिक कार्य क्षमता को बढ़ाता है।

यह भी देखें

 * दस्तावेज़ स्वचालन
 * दस्तावेज़ मॉडलिंग
 * डोमेन-विशिष्ट प्रोग्रामिंग भाषा
 * अंतर्राष्ट्रीयकरण और स्थानीयकरण
 * सामान्य स्थानीय डेटा भंडारण
 * गेट-टेक्स्ट
 * लेआउट इंजन
 * मैक्रो (कंप्यूटर विज्ञान)
 * टेम्पलेट
 * टेम्पलेट सिस्टम
 * वेब टेम्पलेट सिस्टम
 * वेब टेम्प्लेट इंजनों की तुलना
 * वेब टेम्प्लेट इंजनों की तुलना

बाहरी संबंध

 * Enforcing Strict Model-View Separation in Template Engines