مڇ (ويب سانچائي نظام)

**مڇ** (Mustache) هڪ ويب سانچائي سسٽم آهي. ان کي هڪ *منطق کان خالي* نظام چيو ويندو آهي ڇاڪاڻ⁠تہ هن ۾ واضح ڪنٽرول فلو بيان جهڙوڪ `if` ۽ `else` شرط يا فار لوپ شامل نه هوندا آهن؛ پر لوپنگ ۽ شرطي جائزو سيڪشن ٽيگ استعمال ڪندي فهرستن ۽ گمنام فنڪشن (لامبدا) ذريعي حاصل ڪري سگهجن ٿا. هن جو نالو  مڇ يا "مسٽيش" ان ڪري رکيو ويو آهي ڇاڪاڻ⁠تہ هن ۾ ڪرلي بريسز `{ }` جو گهڻو استعمال ٿيندو آهي جيڪي پاسو تي رکيل مڇ (moustache) وانگر ڏسڻ ۾ ايندا آهن. مڇ خاص طور موبائل ۽ ويب ايپليڪيشنن ۾ استعمال ٿيندو آهي.

عمل درآمد ايڪشن اسڪرپٽ، سي پلس پلس، ڪلوژر، ڪافي اسڪرپٽ، ڪولڊ فيوژن، ڪامن لِسپ، ڪرسٽل، ڊي، ڊارٽ، ڊيلفي، ايليڪسر، ايرلانگ، فانٽم، گو، هاسڪل، آئو، جاوا، جاوا اسڪرپٽ، جوليا، لوا، ڊاٽ نيٽ، آبجيڪٽو سي، اوڪيم ايل، پرل، پي ايڇ پي، فارو، پائٿن، آر، ريڪٽ، راڪو، روبي، رسٽ، اسڪالا، سمال ٽاڪ، سويفٽ، ٽي سي ايل، سي ايف انجڻ، ۽ ايڪس ڪيوئري ۾ موجود آهن.

## تاريخ ۽ اصول
*مڇ-1* کي سي-سانچو ۽ et مان نياپو مليو، ۽ 2009 جي آخر ۾ گٽ هب تي هڪ تقسيم طور شروع ٿيو. سانچائي انجڻ جو پهريون نسخو روبي سان لاڳو ڪيو ويو، جيڪو يام ايل سانچو متن هلائيندو هو. اهم اصول هي هئا:
* *منطق کان خالي*: ڪوبه واضح ڪنٽرول فلو بيان نه، سڀ ڪنٽرول ڊيٽا تي ٻڌل پروگرامنگ ذريعي.
* مضبوط *[[ڪم جي الڳ الڳ رکڻ|لاڳاپن جي الڳ الڳ رکڻ]]: منطق ۽ ڏيک کي الڳ رکڻ*.

ان پٽ ڊيٽا هڪ ڪلاس ٿي سگهي ٿي جنهن سان ان پٽ ڊيٽا کي ماڊل–ويئو–ڪنٽرولر (MVC) ويئو طور سمجهي سگهجي ٿو. مسٽيش ٽيمپليٽ صرف (ان پٽ ڊيٽا) ويئو ۾ طريقن جو حوالو ڏئي ٿو. سمورو منطق، فيصلا ۽ ڪوڊ ان ويئو ۾ هوندا آهن، جڏهن⁠تہ سڀ مارڪ اپ (جهڙوڪ آئوٽ پٽ ايڪس ايم ايل) ٽيمپليٽ ۾ هوندو آهي. ماڊل–ويئو–پريزينٽر (MVP) جي تناظر ۾: ان پٽ ڊيٽا MVP-*پريزينٽر* مان هوندي آهي، ۽ مسٽيش ٽيمپليٽ MVP-*ويئو* هوندو آهي.

## مثال

### ڊيٽا
جي سون ڊيٽا مسٽيش ٽيمپليٽن کي ڏني ويندي آهي جنهن مان آئوٽ پٽ حاصل ٿيندو آهي. هي هڪ مثال آهي:

```json
{
    "name": "World",
    "greater than": ">"
}
```


### متغير
هڪ سادي مسٽيش ٽيمپليٽ جيئن هيٺ ڏنل آهي، مٿين ڊيٽا سان گڏ استعمال ٿيڻ تي `Hello World` ڏيکاريندو.


```handlebars
Hello
```


مسٽيش ايڇ ٽي ايم ايل ڊيٽا کي پاڻمرادو محفوظ (escape) ڪري ٿو. مثال طور هي `2 &amp;gt; 1` ڏيکاريندو:

```handlebars
2  1
```


پاڻمرادي حفاظت (اسڪيپ) بند ڪرڻ لاءِ `&` استعمال ڪيو ويندو:

```handlebars
2  1
```


### If بيان ۽ foreach لوپ
هيٺ ڏنل ٽيمپليٽ سيڪشن ٽيگ استعمال ڪري ٿو. جڏهن `x` هڪ بولين ڊيٽا قسم هوندو، سيڪشن ٽيگ شرطي بيان وانگر ڪم ڪندو. جڏهن `x` هڪ اري ڊيٽا قسم هوندو، اهو foreach لوپ وانگر ڪم ڪندو.


```handlebars
Some text
```


خاص متغير `` موجوده شيءَ ڏانهن اشارو ڪري ٿو جڏهن اري ذريعي لوپ ڪيو وڃي.

### ٻيا ٽيمپليٽ شامل ڪرڻ
توهان `>` نشان استعمال ڪري هڪ مسٽيش ٽيمپليٽ اندر ٻيو ٽيمپليٽ شامل ڪري سگهو ٿا.

```handlebars
<form>
    
    
</form>
```


### تبصرا
تبصرا ! نشان سان لکيا ويندا آهن.

```handlebars

```


## فني تفصيل
سنٽيڪس هاءِ لائٽنگ ايٽم، ڪوڊا، ايميڪس، ٽيڪسٽ ميٽ، ويم ۽ وزوئل اسٽوڊيو ڪوڊ ۾ موجود آهي.

مسٽيش ٽيمپليٽ سپورٽ ڪيترن ئي ويب ايپليڪيشن فريم ورڪ ۾ موجود آهي (جهڙوڪ ڪيڪ پي ايڇ پي). جاوا اسڪرپٽ ۾ سپورٽ ڪلائنٽ سائڊ جاوا اسڪرپٽ پروگرامنگ سان گڏ ڪيترين جاوا اسڪرپٽ لائبريري ۽ ايجاڪس فريم ورڪن جهڙوڪ جي ڪوئري، ڊوجو ۽ يو آئي لائبريري ۾ آهي، جڏهن⁠تہ سرور سائڊ جاوا اسڪرپٽ لاءِ نوڊ جي ايس ۽ ڪامن جي ايس استعمال ٿيندا آهن.

## وضاحت ۽ امپليمينٽيشن
مسٽيش انجن جون ڪيترين ئي امپليمينٽيشن موجود آهن، ۽ اهي سڀ هڪ گڏيل رسمي وضاحت تي عمل ڪن ٿيون، جنهن سان استعمال ڪندڙن لاءِ هڪجهڙو سنٽيڪس حاصل ٿئي ٿو.

مارچ 2011 تائين آخري SPEC_VERSION 1.1.2 هو.

سڀ مسٽيش انجن (v1.X ڍانچي ۾) وٽ *render* طريقو، *Mustache_Compiler* ڪلاس ۽ *Parser* ڪلاس هوندو آهي.

## تبديليون ۽ نڪتل نسخا
مسٽيش ڪيترين ئي جاوا اسڪرپٽ ٽيمپليٽ لائبريرين کي متاثر ڪيو جيڪي اصل سادگي مان نڪتيون ۽ اضافي خاصيتون شامل ڪيون.

### هينڊل بارز
Handlebars.js هن ريت بيان ڪيو ويو آهي:

ھنڊل بارز پنهنجي اڳوڻي نسخي کان مختلف آهي ڇاڪاڻ⁠تہ *روڪيل  اظھار* اندر *مدد ڪندڙ* استعمال ڪري ڪسٽم فنڪشن لکڻ جي اجازت ڏئي ٿو.

## پڻ ڏسو
* جاوا اسڪرپٽ فريم ورڪ
* جاوا اسڪرپٽ لائبريري

## حوالا

## خارجي ڳنڍڻا

زمرو:Free computer libraries
زمرو:Template engines
زمرو:JavaScript libraries