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

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

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

ऐसी सुविधाओं में सम्मिलित हैं:
 * चर (प्रोग्रामिंग) और कार्य (कंप्यूटर विज्ञान)
 * पाठ प्रतिस्थापन
 * फ़ाइल समावेशन (या ट्रांसक्लुजन)
 * सशर्त मूल्यांकन और नियंत्रण प्रवाह#लूप्स

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

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

पार्सिंग और टेम्प्लेटिंग की पूरक प्रकृति का एक उदाहरण sed टेक्स्ट प्रोसेसर में s (स्थानापन्न) कमांड है, जो ed टेक्स्ट एडिटर में सर्च-एंड-रिप्लेस से उत्पन्न होता है। प्रतिस्थापन आदेश  के रूप में होते हैं, जहां इनपुट को पार्स करने के लिए   एक नियमित अभिव्यक्ति है, और प्रतिस्थापन आउटपुट के लिए एक सरल टेम्पलेट है, या तो शाब्दिक पाठ, या "संपूर्ण मिलान" के लिए वर्ण युक्त एक प्रारूप स्ट्रिंग या nवें उप-अभिव्यक्ति के लिए विशेष एस्केप अनुक्रम \1 से \9 तक। उदाहरण के लिए   मौजूदा "s" की नकल किए बिना, "बिल्ली" या "कुत्ते" की सभी घटनाओं को "बिल्लियों" या "कुत्तों" से बदल देता है:   रेगएक्सपी में पहली (और केवल) उप-अभिव्यक्ति है, और प्रारूप स्ट्रिंग में \1 इसे आउटपुट में प्रतिस्थापित करता है।

सिस्टम तत्व
सभी टेम्प्लेट प्रोसेसिंग सिस्टम में कम से कम ये प्राथमिक तत्व होते हैं:


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

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

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

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

इसके अतिरिक्त कुछ टेम्प्लेट इंजन अतिरिक्त कॉन्फ़िगरेशन विकल्पों की स्वीकृति देते हैं।

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

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

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

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

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

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

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

पर्ल, पायथन, पीएचपी, रूबी, सी#, जावा और गो जैसी प्रोग्रामिंग भाषाएं या तो मूल रूप से या ऐड-ऑन लाइब्रेरी और मॉड्यूल के माध्यम से टेम्पलेट प्रोसेसिंग का समर्थन करती हैं। JavaServer पेज, [5] सक्रिय सर्वर पेज, [6] Genshi (पायथन के लिए), और eRuby विशेष रूप से वेब एप्लिकेशन विकास के लिए डिज़ाइन किए गए टेम्पलेट इंजन के उदाहरण हैं।

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

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

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

यह भी देखें

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

बाहरी संबंध

 * Enforcing Strict Model-View Separation in Template Engines