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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

प्रोग्रामिंग लैंग्वेज जैसे पर्ल, पायथन (प्रोग्रामिंग लैंग्वेज), PHP, रूबी ([[प्रोग्रामिंग भाषा) ]], C शार्प (प्रोग्रामिंग लैंग्वेज)|C#, Java (प्रोग्रामिंग लैंग्वेज), और Go_(प्रोग्रामिंग_लैंग्वेज) सपोर्ट टेम्प्लेट प्रोसेसिंग या तो मूल रूप से, या ऐड के माध्यम से। पुस्तकालयों और मॉड्यूल पर। जावा सर्वर पेजेस, गेंशी (टेम्प्लेटिंग लैंग्वेज) (पायथन के लिए), और eRuby विशेष रूप से वेब अनुप्रयोग विकास के लिए डिज़ाइन किए गए टेम्पलेट इंजन के उदाहरण हैं।

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

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

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

यह भी देखें

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

बाहरी संबंध

 * Enforcing Strict Model-View Separation in Template Engines