Help:साँचें

This page is a translated version of the page Help:Templates and the translation is 100% complete.
PD ध्यान दें: जब आप इस पृष्ठ को संपादित करते हैं, आप अपने योगदान को CC0 के अंतर्गत प्रकाशित करते हैं। अधिक जानकारी के लिए सार्वजनिक डोमेन के सहायता पृष्ठ की मदद लें।
PD

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

निर्माण

साँचें मानक विकि पृष्ठ होते हैं जिनके सामग्री को दूसरे पृष्ठों पर ट्रांसक्लूड (एम्बेड) करने के लिए लिखा जाता है। साँचें एक मान का पालन करते हैं जिसके अनुसार उनपर "Template:" उपसर्ग लगाया जाता है और इससे उन्हें उस नामस्थान में जोड़ दिया जाता है; इसके अलावा, आप साधारण विकि पृष्ठों की तरह ही साँचें बना सकते हैं

साँचे का सबसे सरल प्रयोग कुछ इस प्रकार है। अगर आप "Template:Welcome" नामक एक पृष्ठ बनाते हैं जिसकी सामग्री है:

नमस्ते! आपका विकि पर स्वागत है।

आपने अपना पहला साँचा बना लिया है! अगर आप यह कोड कहीं डालते हैं:

{{Welcome}}

जब वह पृष्ठ खोला जाता है, {{Welcome}} की जगह टेक्स्ट "नमस्ते! आपका विकि पर स्वागत है।" दिखेगा। साँचे को दूसरे पृष्ठ पर "ट्रांसक्लूड" कर दिया गया है, यानी उसे उस पृष्ठ पर एकीकृत कर दिया गया है।

उसके बाद आप पृष्ठ पर किसी भी जगह पर {{Welcome}} जोड़कर सदस्य का स्वागत कर सकते हैं। मान लीजिए 100 पृष्ठों पर इसका इस्तेमाल किया जाता है। अगर आप साँचे की सामग्री को इससे बदल दें:

नमस्कार! इस निराले विकि पर आपका स्वागत है।

और उन 100 में से किसी भी पृष्ठ पर जाएँ जहाँ साँचे का प्रयोग किया गया है, आप मूल टेक्स्ट की जगह नया टेक्स्ट देखेंगे। इस तरह से आपने 100 पृष्ठों को संपादित किए बिना उनकी सामग्री को बदल दिया है, क्योंकि साँचे को उन पृष्ठों पर ट्रांसक्लूड किया जा रहा है।

यह बुनियादी क्रियाविधि है। ट्रांसक्लूशन की प्रक्रिया में कई चरण हैं जो इस क्रियाविधि और साथ में साँचों को काफ़ी उपयोगी बनाते हैं।

प्रयोग

साँचों को इन तरीकों से दूसरे पृष्ठों पर जोड़ा जा सकता है:

  • {{Name}} — जैसा ऊपर दर्शाया गया है, इस कड़ी को [[Template:Name]] के तब की वर्तमान सामग्री से बदल दिया जाएगा जब पृष्ठ को लोड किया गया हो। पृष्ठ के स्रोत में कड़ी नहीं बदलेगी।
  • {{subst:Name}} - जब इस साँचे की कड़ी को जोड़ा जाता है, इसे हमेशा के लिए [[Template:Name]] के तब की वर्तमान सामग्री से बदल दिया जाएगा जब कड़ी को सहेजा गया हो। पृष्ठ के स्रोत में कड़ी नहीं बदलेगी: साँचे की कड़ी की जगह [[Template:Name]] की सामग्री को सब्सटिट्यूट कर दिया जाएगा। सामग्री अब उस पृष्ठ का हिस्सा बन जाएगी, और अब इसे मूल पृष्ठ से अलग, सम्पादित किया जा सकेगा। ध्यान दें: स्रोत साँचे पर बाद में बदलाव उस पृष्ठ पर नहीं दिखेंगे जिसपर साँचे की कड़ी जोड़ी गई थी।
  • {{safesubst:Name}} - इससे ट्रांसक्लूशन को तोड़े बिना सब्सटिट्यूशन का इस्तेमाल किया जा सकता है। w:Help:Substitution#The safesubst: modifier देखें।
  • {{msgnw:Name}} साँचे को एक ऐसे रूप में जोड़ देता है जिससे सामग्री वाले पृष्ठ को प्राप्त करने पर वह रॉ विकि सिनटैक्स के रूप में दिखाई पड़ता है (जैसा ‎<nowiki> दिखता है)।

यहाँ तक कि, एक साधारण विकि पृष्ठ का भी साँचे की तरह इस्तेमाल किया जा सकता है। ऐसा करने के लिए बस इसका नामस्थान जोड़ दें, यानी:

  • {{Template:पृष्ठ}} जोड़ेगा [[Template:पृष्ठ]]
  • {{Talk:पृष्ठ}} जोड़ेगा [[Talk:पृष्ठ]]
  • {{:पृष्ठ}} जोड़ेगा [[पृष्ठ]]
    • {{subst::पृष्ठ}} अपने आप को [[पृष्ठ]] की सामग्री से बदल देगा

अगर ऐसा कोई नामस्थान नहीं है, पूरे शीर्षक को ही साँचा मान लिया जाता है:

  • {{Foo:Bar}} जोड़ेगा [[Template:Foo:Bar]]

पैरामीटर्स

ट्रांसक्लूशन की कार्यक्षमता को बढ़ाने के लिए मीडियाविकि पर साँचों को ट्रांसक्लूड करते समय पैरामीटर्स जोड़ने की सुविधा उपलब्ध है। पैरामीटर्स की मदद से साँचों पर अलग-अलग सामग्री या फिर बदलता स्वभाव जोड़ा जा सकता है।

मान लीजिए आप दूसरे सदस्यों के वार्ता पृष्ठों पर धन्यवाद वाला एक संदेश छोड़ना चाहते हैं, जैसे:


आपका शुक्रिया... अपने सभी कार्यों के लिए। सधन्यवाद, मैं


धन्यवाद के इस संदेश पर एक कारण होगा (इस मामले में "अपने सभी कार्यों") और एक हस्ताक्षर होगा ("मैं")। आपका लक्ष्य है कि किसी भी सदस्य के लिए किसी भी सदस्य को, किसी भी कारण से धन्यवाद देना संभव होना चाहिए।

ताकि संदेश हर जगह समान दिखे, आप साँचा:Thankyou नामक एक साँचा बना सकते हैं। हालाँकि संदेश हर जगह समान दिखना चाहिए, इसकी सामग्री (जैसे कारण और हस्ताक्षर) अलग होगी। इसके लिए आपको इन्हें पैरामीटर्स के तौर पर पास करवाना होगा। अगर हम बॉक्स को प्रारूपित करने और चित्र को जोड़ने वाले तत्वों को निकाल दें, बुनियादी साँचा कुछ ऐसा दिखेगा:

'''आपका शुक्रिया...'''
{{{1}}} के लिए।
सधन्यवाद, {{{2}}}

{{{1}}} और {{{2}}} के प्रयोग पर गौर करें। इससे साँचे का इस्तेमाल करते समय इसके अंदर पैरामीटर्स को पहचाना जा सकता है। ध्यान रखें कि साँच के अंदर हर पैरामीटर को तीन धनुकोष्ठकों से घेरा जाता है: {{{ }}}। हर साँचे के साधारण प्रयोग से अलग है।

किसी पृष्ठ पर साँचे का इस्तेमाल करते समय आप पैरामीटर्स में एक "पाइप" अक्षर (|) से अलग करते हुए वैल्यू जोड़ेंगे। मीडियाविकि पर पैरामीटर्स तीन तरीकों से पास करवाए जा सकते हैं: गुमनाम, क्रमित, और नामित।

गुमनाम पैरामीटर्स

गुमनाम पैरामीटर्स में पास करवाने के लिए, उन पैरामीटर्स के वैल्यू क्रमशः पास करवाएँ:

{{Thankyou|अपने सभी कार्यों|मैं}}

इस मामले में {{Thankyou}} साँचा पैरामीटर्स {{{1}}}=अपने सभी कार्यों और {{{2}}}=मैं प्राप्त करता है, और अंजाम होता है:


आपका शुक्रिया... अपने सभी कार्यों के लिए। सधन्यवाद, मैं


जिस क्रम से गुमनाम पैरामीटर्स पास करवाए जाते हैं, वह साँचे के स्वभाव पर बड़ा प्रभाव डालता है। पैरामीटर्स के क्रम को पलट देने पर, यानी:

{{Thankyou|मैं|अपने सभी कार्यों}}

का अंजाम होगा:


आपका शुक्रिया... मैं के लिए। सधन्यवाद, अपने सभी कार्यों


क्रम से पैरामीटर्स पहचानने की सुविधा ({{{1}}}, आदि से) सिर्फ और सिर्फ गुमनाम साँचों के साथ ही काम करती है। नाम से पहचाने जाने वाले किसी भी पैरामीटर, जैसा नीचे दर्शाया गया है, का इस्तेमाल क्रमित संख्याओं की मदद से नहीं किया जा सकता।
अगर साँचे के किसी गुमनाम पैरामीटर पर बराबर चिह्न (=) नज़र आता है, साँचे के उस पैरामीटर को एक नामित पैरामीटर माना जाएगा (जिसे इस दस्तावेज़ के नीचे की तरफ वर्णित किया गया है) जिसमें बराबर चिह्न के पहले का हिस्सा पैरामीटर का नाम होगा और उसके बाद का टेक्स्ट पैरामीटर के तर्क का वैल्यू। यह एक समस्या बन जाती है जब आपको कोई बाहरी कड़ी जोड़नी हो, या फिर एट्रीब्यूट वाला कोई HTML तत्व (टास्क T16235 देखें)। इसका समाधान है नामित पैरामीटर्स का इस्तेमाल करना, या फिर क्रमित पैरामीटर्स का इस्तेमाल करना, जैसा नीचे के अनुभाग में दर्शाया गया है।

क्रमित पैरामीटर्स

संख्या के आधार पर पैरामीटर्स पास करवाने के लिए पास करवाते समय हर पैरामीटर को पहचानें:

{{Thankyou|2=मैं|1=आपकी दोस्ती}}

इस बार साँचा {{Thankyou}} पैरामीटर्स {{{1}}}=आपकी दोस्ती और {{{2}}}=मैं प्राप्त करता है, हालाँकि इन्हें उलटा पास करवाया गया है, और इसका अंजाम होता है:


आपका शुक्रिया... आपकी दोस्ती के लिए। सधन्यवाद, मैं


यह तब भी उपयोगी हो सकता है जब किसी भी क्रमित पैरामीटर में "=" चिह्न हो।
उदाहरण
{{Thankyou|1="=" जोड़ने|2=मैं}}

का अंजाम होगा:


आपका शुक्रिया... "=" जोड़ने के लिए। सधन्यवाद, मैं

  चेतावनी: इस हर पैरामीटर को क्रमांकित करने की ज़रूरत होती है।

नामित पैरामीटर्स

पैरामीटर्स पास करवाने का तीसरा तरीका है संख्याओं की जगह नामों का इस्तेमाल करके। इस मामले में साँचे की सामग्री को इसमें बदल दिया जाएगा:

'''आपका शुक्रिया...'''
{{{reason}}} के लिए।
सधन्यवाद, {{{signature}}}

साँचे के अंदर हम हर पैरामीटर को पहचानने के लिए संख्याओं की जगह {{{reason}}} और {{{signature}}} का इस्तेमाल करेंगे। नामों के साथ ये पैरामीटर्स पास करवाने के लिए, पास करते समय हर पैरामीटर को पहचानें:

{{Thankyou|signature=मैं|reason=अपना व्यक्तित्व बरकरार रखने}}

इस मामले में साँचा {{Thankyou}} पैरामीटर्स {{{reason}}}=अपना व्यक्तित्व बरकरार रखने and {{{signature}}}=मैं प्राप्त करता है, और इसका अंजाम होता है:


आपका शुक्रिया... अपना व्यक्तित्व बरकरार रखने के लिए। सधन्यवाद, मैं


नामित पैरामीटर्स केस-संवेदनशील है, तो:

{{Thankyou|signature=मैं|Reason=अपना व्यक्तित्व बरकरार रखने|reason=केस-संवेदनशील होने}}

का अंजाम होगा:


आपका शुक्रिया... केस-संवेदनशील होने के लिए। सधन्यवाद, मैं


पैरामीटर्स के क्रम से असंवेदनशील होने के साथ-साथ, अपने साँचे में नामित पैरामीटर्स का इस्तेमाल करने का एक फ़ायदा यह है कि कई पैरामीटर्स होने पर साँचे के कोड को समझना काफ़ी आसान हो जाता है।

डिफ़ॉल्ट वैल्यू

अगर आप कोई ऐसा साँचा ट्रांसक्लूड करते हैं जिसे पैरामीटर्स की अपेेक्षी होती है, मगर आप उन्हें तर्क प्रदान नहीं करते, कुछ इस तरह:

{{Thankyou}}

उपरोक्त क्रमित पैरामीटर्स में आपको कुछ ऐसा अंजाम मिलेगा:


आपका शुक्रिया... {{{1}}} के लिए। सधन्यवाद, {{{2}}}


क्योंकि कोई तर्क पास नहीं करवाया गया था, साँचा पैरामीटर्स के वैल्यू के बजाय पैरामीटर्स को ही प्रस्तुत करता है। इन मामलों में पैरामीटर्स के लिए डिफ़ॉल्ट वैल्यू चुनने की सुविधा काम आ सकती है, यानी वैल्यू जो तब पास करवाए जाएँगे जब कोई वैल्यू सदस्य द्वारा पास न करवाया गया हो। उदाहरणस्वरूप, अगर साँचे की सामग्री को इसमें बदल दिया जाए:

'''आपका शुक्रिया...'''
{{{reason|हर चीज़}}} के लिए।
सधन्यवाद, {{{signature|मैं}}}

तब {{{reason|हर चीज़}}} परिभाषित करता है कि अगर पैरामीटर {{{reason}}} के लिए कोई तर्क प्रदान नहीं किया जाता है, वैल्यू हर चीज़ का इस्तेमाल किया जाएगा। उसी तरह, {{{signature|मैं}}} पैरामीटर {{{signature}}} का डिफ़ॉल्ट मैं पर सेट कर देता है। अब बिना कोई तर्क पास करवाए, साँचे को दोबारा ट्रांसक्लूड करने पर अंजाम होगा:


आपका शुक्रिया... हर चीज़ के लिए। सधन्यवाद, मैं


The value of a parameter can be an empty string. For example, in {{foo|bar=}} or {{foo|bar=|baz=qux}}, the foo template considers the bar parameter to be "". This is different from omitting the parameter altogether, which leaves it undefined and triggers the default value mechanism described above.

अक्सर, डिफ़ॉल्ट वैल्यूओं की मदद से पैरामीटर्स के लिए वैकल्पिक नाम परिभाषित किए जाते हैं। उदाहरणस्वरूप, अगर आपने {{{a|{{{b|}}} }}} जोड़ा है, साँचा पहले "a" नामक पैरामीटर की तलाश करेगा। अगर यह सेट नहीं किया जाता है, यह "b" नामक पैरामीटर का इस्तेमाल करेगा। अगर "a" या "b" में से कोई भी पैरामीटर सेट नहीं किया जाता है, आउटपुट में कुछ भी नहीं दिखेगा।


मूल्यांकन

यह एक उन्नत विषय है और अगर आपको इसकी ज़रूरत न हो तो आप इसे छोड़ सकते हैं।

आम तौर पर बात करें तो साँचे के पैरामीटरों को टोकन बनाने के बाद सब्सटिट्यूट किया जाता है, मगर बिलकुल वैसे ही जैसे वे लिखे गए हैं। इनके प्रयोग करने तक इन्हें मूल्यांकित नहीं किया जाता है।

इसके कुछ अंजाम हैं। First of all, if you have a Template:Start containing {{mytemplate, and a Template:End containing |foo=bar}}, and put {{start}}{{end}} on a page, mytemplate isn't transcluded, because tokens like "|" cannot be added by a template and keep their special meaning in templates. आप किसी पैरामीटर या साँचे के नाम को नियंत्रित करने के लिए साँचों का इस्तेमाल कर सकते हैं, मगर आप एक साँचे के कॉल को कई साँचों में नहीं बाँट सकते।

इसका दूसरा अंजाम है मृत-कोड का हटाया जाना। If you make a template call like {{foo|{{DISPLAYTITLE:Bar}} }}, and Template:Foo does not contain {{{1}}}, then the displaytitle is not used, since it is only evaluated when needed, and it there is no parameter to substitute it into, so it is never evaluated. This usually comes into play when using Extension:ParserFunctions, and can be especially noticed when used in combination with the int: magic word that varies by user language.

Template calls starting with the magic word subst: or safesubst: are evaluated in a separate first pass that only happens at save time, along with ~~~~ and links using the pipe trick. If they cannot be evaluated during the first pass, subst: calls are ignored, and safesubst: are treated as if a normal template.

कई पार्सर फ़ंक्शन्स, पार्सर टैग्स और ट्रांसक्लूड किए गए विशेष पृष्ठ साँचों की तरह सीधे जोड़े नहीं जाते, मगर उन्हें एक "स्ट्रिप चिह्न" से बदल दिया जाता है। यानी कि आप padleft: जैसे पार्सर फ़ंक्शन्स की मदद से परिणामों को बदला नहीं जा सकता, क्योंकि वे पार्सर फंक्शन की जगह स्ट्रिप चिह्न पाते हैं।


साँचों में प्रत्यावर्तन

किसी साँचे को अपने ही पृष्ठ पर जोड़ लेने पर मीडियाविकि हमेशा के लिए प्रत्यावर्तन नहीं करता रहेगा। मीडियाविकि साँचे के नाम को बोल्ड में लिखकर प्रत्यावर्तन को रोक देगा। उदाहरणस्वरूप, अगर Template:Aaaa का सामग्री है a {{Aaaa}} z, यह दिखाएगी "a a Template loop detected: Template:Aaaa z z"।

Forbidden idiom

This safeguard precludes a potentially useful template idiom where a template self-normalizes its own calling arguments. In this forbidden example template:d can either be called {{d|20200311}} or {{d|y=2020|m=3|d=11}}. If called in the first manner, it recurses into itself with the second argument structure (obtained using string parser functions), which then follows a unified processing path.

{{#if:{{{1|}}}|{{d|y={{#sub:{{{1}}}|0|4}}|m={{#sub:{{{1}}}|4|2}}|d={{#sub:{{{1}}}|6|2}}}}|<!-- processing path with arguments y,m,d regardless of original call pattern -->}}

If template:d is modified to recurse into template:d/2 and template:d/2 is an identical manual copy of template:d this idiom works fine as the self-recursion safeguard operates dynamically and not statically.

A feasible way for the MediaWiki software to loosen the self-recursion rule would be to require that each recursive call have a distinct argument count from all previous active calls, at most once recursing with the argument count non-decreasing. That would provide a strong guarantee against infinite self-recursion while enabling useful idioms such as the one described here in a flexible manner.

If the processing path is of low complexity, a simple solution using only one template is to handle each calling convention on a separate if/else branch, duplicating the logic of the processing path within each case. If the processing path is more complex, each call-structure case can delegate to an implementation template with a unified call structure which provides the final template behaviour.

Tables in parameters

Since the syntax for wikitables involves pipes in single braces ({ }) and using the pipe trick will not work in transclusion parameters, one will have to create a table as a separate page and transclude it from there.[1]

साँचों के जुड़ाव को नियंत्रित करें

डिफ़ॉल्ट से साँचे की सामग्री को पूरी तरह से ट्रांसक्लूड किया जाता है, चाहे आप उसे साँचे के पृष्ठ पर देखें या फिर किसी और पृष्ठ पर ट्रांसक्लूड करने के बाद। मगर आप ‎<noinclude>, ‎<includeonly> और ‎<onlyinclude> टैग्स की मदद से नियंत्रित कर सकते हैं किस हिस्से को दिखाया जाएगा और किस हिस्से को जोड़ा जाएगा।

‎<noinclude> और ‎</noinclude> के बीच कोई भी सामग्री सिर्फ साँचे के पृष्ठ को सीधे देखने पर ही दिखेगी, मगर किसी दूसरे पृष्ठ पर जोड़ने पर नहीं। यह तब काम आता है जब आपको साँचे पर कोई ऐसा टेक्स्ट जोड़ना हो जिसे आप साँचे को जोड़ने वाले किसी भी पृष्ठ पर जोड़ना नहीं चाहते, जैसे:

  • सिर्फ साँचे को श्रेणीबद्ध करने के लिए श्रेणी कड़ियाँ
  • दूसरी भाषाओं में मेल खाते साँचों के लिए अंतरभाषा कड़ियाँ
  • साँचे के प्रयोग के बारे में वर्णन का टेक्स्ट

उसी तरह, ‎<includeonly> और ‎</includeonly> के बीच कोई भी सामग्री सिर्फ तभी दिखाई जाएगी जब पृष्ठ को जोड़ा जा रहा हो, मगर तब नहीं जब साँचे को सीधे देखा जा रहा हो। यह कुछ मामलों में काम आता है:

  • साँचे को जोड़ने वाले पृष्ठों को श्रेणीबद्ध करना। ध्यान रखें: इस तरीके से साँचे द्वारा जोड़े जाने वाली श्रेणी को बदलने पर इस साँचे को जोड़ने वाले पृष्ठों की श्रेणियों में कुछ समय तक कोई बदलाव न आ सकता है: इसका फैसला कार्य कतार द्वारा किया जाता है। किसी पृष्ठ को ज़बरदस्ती नई श्रेणी में जोड़ने के लिए पृष्ठ को सम्पादन के लिए खोलें और बिना कोई बदलाव किए सहेजें।
  • सुनिश्चित करना कि साँचे को पृष्ठ को देखते समय साँचे का कोड चलाया नहीं जाता है। आम तौर पर ऐसा तब किया जाता है जब साँचे में पैरामीटर्स हों, और बिना पैरामीटर्स के साँचे का इस्तेमाल करने पर, अनपेक्षित परिणाम मिलता हो।

‎<noinclude> और ‎<includeonly> से बाहर सारी सामग्री को साधारण रूप से प्रोसेस किया जाता है और दिखाया जाता है; यानी, जब साँचे को सीधे देखा जाए और जब इसे किसी दूसरे पृष्ठ पर जोड़ा जाए। विषय यह है कि इन दोनों टैग्स के बीच में क्या है।

‎<onlyinclude> टैग्स के बाहर किसी भी चीज़ को ट्रांसक्लूशन के समय नकार दिया जाता है। अगर includeonly में लपेटे अनुभागों को onlyinclude में न लपेटा जाए, तो इन्हें भी ट्रांसक्लूशन में नकार दिया जाता है। विषय यह है कि इस टैग के बाहर क्या है।

इन टैग्स को नेस्ट भी किया जा सकता है।

इन तीन ट्रांसक्लूशन टैग्स की मदद से आप इस बात पर पूरा नियंत्रण पा सकते हैं कि किसे प्रोसेस और रेंडर किया जाता है। टिप्पणियों की भी एक भूमिका है।

साँचों को संगठित करना

साँचों के काम करने के लिए सदस्यों को साँचें ढूँढ़ने होंगे और उनका इस्तेमाल करना सीखना होगा।

उन्हें ढूँढ़ने के लिए सदस्य:

  1. विशेष पृष्ठ > सभी पृष्ठ पर क्लिक कर सकते हैं
  2. नामस्थान: सूची में Template चुनकर जाएँ पर क्लिक कर सकते हैं।

प्रयोग की जानकारी देने के लिए साँचे के पृष्ठ पर इस तरह का एक उदाहरण जोड़ें:

<noinclude>
== प्रयोग ==
सदस्यों का स्वागत करें:
{{Thankyou|reason=आपका कारण|signature=आपका हस्ताक्षर}}
</noinclude>

फिर, सम्पादक साँचे का इस्तेमाल करने के लिए उदाहरण की प्रतिलिपि बनाकर चिपका सकता है।

साँचे की कड़ी जोड़ना

हर विकि पृष्ठ की तरह साँचों की भी कड़ियाँ जोड़ी जा सकती हैं। उदाहरणस्वरूप, विकिकोड [[Template:Navbar]] की मदद से Template:Navbar कड़ी बनाई जा सकती है।

कई विकियों पर Template:Tl को इस तरह से प्रारूपित करके कड़ी के साथ ट्रांसक्लूड किए बिना दिखाया जा सकता है कि उसके दोनों तरफ़ ट्रांसक्लूड करने के लिए आवश्यक "दो धनुकोष्ठक" हों। उदाहरणस्वरूप, कोड {{tl|Navbar}} से {{Navbar}} कड़ी बनाई जा सकती है।

इस रचना का इस्तेमाल आम तौर पर प्रलेख पृष्ठों, सहायता पृष्ठों और वार्ता पृष्ठों पर साँचों को सन्दर्भित करने के लिए किया जाता है। इस तरह का प्रारूपण {{[[Template:Navbar|Navbar]]}} की मदद से भी प्राप्त किया जा सकता है, मगर {{tl}} के इस्तेमाल से लिखने की ज़रूरत कम होती है। मगर हर विकि पर अगर Tl साँचा, अगर वह वहाँ मौजूद हो, यह सुनिश्चित नहीं करता है कि टेक्स्ट को एक "कोड" तत्व या फिर मोनोस्पेस फ़ॉण्ट में ही रेंडर किया जाएगा। अगर ऐसा नहीं होता (जैसा कि इस विकि पर), शायद कोई दूसरा समान साँचा ऐसा कर दे। उदाहरणस्वरूप, हमारे Template:Tl के प्रलेख का "See also" अनुभाग देखें।

एक विकि से दूसरे विकि पर प्रतिलिपि बनाना

साँचों पर अक्सर CSS या दूसरे साँचों की ज़रूरत होती है, तो एक विकि से दूसरे विकि पर किसी साँचे की प्रतिलिपि बनाते समय सदस्यों को अक्सर परेशानी होती है। नीचे के चरण ज़्यादातर साँचों के लिए काम करते हैं।

मीडियाविकि कोड

अगर आपके पास नए विकि पर आयात करने के (खासकर कि importupload) अधिकार हैं:

  1. मूल विकि पर Special:Export पर जाएँ, और सभी आवश्यक साँचों के पूरे इतिहास के साथ एक .xml फ़ाइल डाउनलोड करें, जैसा नीचे दर्शाया गया है:
    • बड़े टेक्स्ट बॉक्स में साँचे का नाम दर्ज करें, जैसे "Template:Welcome"। बड़े अक्षरों और विशेष अक्षरों पर ध्यान दें - अगर साँचे का नाम सही नहीं हुआ, निर्यात तो हो जाएगा मगर शायद .xml फ़ाइल में सही डेटा न हो।
    • "टेम्प्लेटस भी जोडें" बॉक्स चुनें।
    • "पूरा इतिहास नहीं चाहियें, सिर्फ अभी का अवतरण अंतर्भूत करें" बॉक्स चुनें।
    • "निर्यात" पर क्लिक करें।
  2. नए विकि पर Special:Import पर जाएँ और .xml फ़ाइल अपलोड करें।

अगर आपके पास नए विकि पर आयात करने के अधिकार नहीं हैं:

  1. मूल विकि पर उस साँचे पर जाएँ जिसकी प्रतिलिपि आप बनाना चाहते हैं। सम्पादन पृष्ठ पर जाएँ और पूरे विकिटेक्स्ट की प्रतिलिपि बनाएँ।
  2. नए विकि पर उसी नाम के पृष्ठ पर जाएँ जिस नाम के साँचे से आपने मूल विकिटेक्स्ट की प्रतिलिपि बनाई थी। बनाएँ/सम्पादन पर क्लिक करें और प्रतिलिपि बनाए हुए विकिटेक्स्ट को चिपकाएँ। हर साँचे के सारांश में श्रेय देने के लिए मूल पृष्ठ की एक कड़ी जोड़ें।
  3. फिर मूल विकि पर सम्पादन विंडो में सम्पादन बॉक्स के नीचे "इस पृष्ठ पर प्रयुक्त साँचें" वाली सूची को देखें। वहाँ सूचीबद्ध हर साँचे के लिए ऊपर की विधि दुहराएँ। इन साँचों द्वारा भी प्रयुक्त साँचों के लिए ऐसा ही करें।

यह पूरे कोड की प्रतिलिपि बना देगा, और कुछ साँचों के लिए इतना काफ़ी होगा। ध्यान रखें कि सिर्फ पृष्ठ को रेंडर करते समय पार्स किए गए तत्वों को ही निर्यात किया जाता है, तो इस प्रक्रिया में प्रलेख पृष्ठों को निर्यात नहीं किया जाएगा। अगर यह काम नहीं करता, सम्पादन बॉक्स के नीचे "इस पृष्ठ के वर्तमान संस्करण पर ट्रांसक्लूड किए जाने वाले पृष्ठ:" अनुभाग में लाल कड़ियाँ ढूँढ़ें। अगर कोई लाल कड़ी होती है, ऊपर के चरण इन पृष्ठों के लिए भी दुहराएँ और मॉड्यूल्स के टेक्स्ट की भी प्रतिलिपि बनाएँ।

साँचे और इससे जुड़े हुए पृष्ठों को दूसरे विकि से सफलतापूर्वक आयात कर लेने के बाद साँचे को अनुकूलित करके अपने विकि के थीम में बसाएँ। उदाहरणस्वरूप, शायद आपको कोई लोगो बदलना पड़े, गलत कड़ियाँ या लाल कड़ियाँ हटानी पड़ें।

एक्सटेंशन्स

साँचों में अक्सर प्रयुक्त एक एक्सटेंशन है ParserFunctions। सहायता:एक्सटेंशन:ParserFunctions पृष्ठ पर जाकर देखें कि वहाँ पर सूचीबद्ध कोई फ़ंक्शन उस साँचे में प्रयुक्त हैं या फिर नहीं। अगर ऐसा है, आपको ParserFunctions एक्सटेंशन स्थापित करना होगा। इसे स्थापित करने के लिए आपको अपने मीडिया स्थापना के सर्वर पर प्रबंधक वाली पहुँच होनी पड़ेगी।

साँचों में प्रयुक्त एक और निर्भरता, खासकर कि विकिपीडिया को साँचों पर, है लुआ। साँचे के कोड में {{#invoke: }} का होना इसका एक अच्छा चिह्न है। अगर इसका इस्तेमाल किया जाता है, आपको Scribunto एक्सटेंशन स्थापित करना होगा और सिस्टम प्रबंधक समूह की भी ज़रूरत होगी। एक्सटेंशन को स्थापित करने के बारे में अधिक विधि के लिए वह पृष्ठ देखें।

CSS और जावास्क्रिप्ट कोड

मीडियाविकि कोड के अलावा कई साँचें पूरी तरह से काम करने के लिए CSS का इस्तेमाल करते हैं और कुछ साँचें जावास्क्रिप्ट का। अगर प्रतिलिपि बनाए गए साँचें ठीक से काम नहीं कर रहे हैं, यह कारण हो सकता है। आवश्यक CSS और जावास्क्रिप्ट की प्रतिलिपि अपने विकि पर पाने के लिए बेशक आपको प्रबंधक के अनुमतियों की ज़रूरत होगी, क्योंकि आपको "मीडियाविकि:" नामस्थान में संदेशों को संपादित करना होगा।

  1. साँचे के टेक्स्ट CSS क्लास (class="foobar" जैसा टेक्स्ट) ढूँढ़ें। अगर वे क्लास "MediaWiki:Common.css" में नज़र आते हैं, उन क्लासों की प्रतिलिपि नए विकि पर "MediaWiki:Common.css" पर बनाएँ और जाँचें कि साँचा ठीक से काम कर रहा है या नहीं।
  2. अगर प्रतिलिपि साँचा अब भी ठीक से काम नहीं करता, जाँचें कि मूल विकि के "MediaWiki:Common.js" या "MediaWiki:Monobook.js" पर कोई कोड है या नहीं। अगर ऐसा है, नए विकि के "MediaWiki:Common.js" पर इसकी प्रतिलिपि बनाएँ। आम तौर पर सिर्फ विश्वसनीय स्रोतों से ही प्रतिलिपि बनाना चाहिए, और उचित हिस्सों को पहचान लेने का कौशल काम आता है। आपको शायद टिप्पणियाँ मिल जाए, जो हर हिस्से का महत्व बताए।

ये भी देखें

बाहरी कड़ियाँ