2011-09-11 12 views
10

जेड वास्तव में बहुत साफ है, लेकिन मैं व्यक्तिगत रूप से वाक्यविन्यास को नापसंद करता हूं और इसे देखता हूं। हाँ, बस लिखने के लिए सक्षम किया जा रहा:नोड के लिए टेम्पलेटिंग इंजन जो जेड

body 
    h1 Hello 
    p This is 
    b bold 

यही शांत और सभी, लेकिन मैं अभी भी देखो और एचटीएमएल/एक्सएमएल के लग रहा है पसंद करते हैं। यह मानव और मशीन पठनीय और समग्र रूप से बनाया गया था, मुझे लगता है कि यह देखना और समझना आसान है।

<body> 
    <h1>{title}</h1> 
    <p>{content}</p> 
</body> 

की अवधारणा की तरह एक ही जेड का उपयोग करना::

कोई templating इंजन है कि और अधिक की तरह काम कर रहे हैं

res.render('index', { 
    title:pageTitle, 
    content:pageContent 
}); 

उत्तर

3

ऐसा कुछ जो विशेष रूप से ऐसा लगता है वह शायद Mustache Node.js. के लिए होगा। demo देखें। आप पहले से ही underscore.js

var compiled = _.template("hello: <%= name %>"); 
compiled({name : 'moe'}); 
=> "hello: moe" 
+0

भी, [Handlebars] (http://www.handlebarsjs.com/)। मूंछ के लिए समान वाक्यविन्यास, लेकिन थोड़ा अधिक शक्तिशाली। – MartinodF

+0

मुझे यह अब तक पसंद है। नीचे दिए गए किसी ने कहा कि आप जेड का उपयोग एचटीएमएल के साथ कर सकते हैं। तो इसे भी जांचना। –

+0

मैं दूसरा हैंडलबार। यह मूंछ पर बनाता है, लेकिन मददगारों के अलावा मेरी राय में अपरिवर्तनीय है। – Mike

1

पर विचार करें jQuery templates। आप JSON में अपना डेटा प्रदान कर सकते हैं और इसे टेम्पलेट पर लागू कर सकते हैं।

4

EJS पर एक नज़र डालें। आपको नियमित HTML का उपयोग करने और जावास्क्रिप्ट कोड एम्बेड करने की अनुमति देता है।

उदाहरण के लिए:

<div> 
<% if (foo) { %> 
foo 
<% }else { %> 
bar 
<% } %> 
</div> 

इसके अलावा, क्या आप देख रहे हैं एक "एक्सप्रेस-संगत" templating इंजन है, और EJS एक्सप्रेस-संगत है। यह एक्सप्रेस के पीछे मुख्य लोगों में से एक द्वारा बनाया गया है।

4

आप जेड में सीधे HTML का उपयोग कर सकते हैं, इस आजमाइए। मुझे जेड पसंद नहीं है और एचटीएमएल का पक्ष लेना एक बेहतर विकल्प है। अधिकतर बार, वेब डिज़ाइन लेआउट को उन टेम्पलेट्स में आसानी से परिवर्तित नहीं किया जा सकता है।

नमूना प्रदान की मूंछें:

<h1>{{header}}</h1> 
{{#bug}} 
{{/bug}} 

{{#items}} 
    {{#first}} 
    <li><strong>{{name}}</strong></li> 
    {{/first}} 
    {{#link}} 
    <li><a href="{{url}}">{{name}}</a></li> 
    {{/link}} 
{{/items}} 

{{#empty}} 
    <p>The list is empty.</p> 
{{/empty}} 

यह Angular.js वाक्य रचना के साथ मिलाया जा सकता है ... यह उपयोग करने वाले लोगों के लिए एक समस्या हो सकती है।

+0

ओह, अच्छा! मुझे यह कोशिश करनी होगी। –

0

टेम्पलेट्स उपयोग कर रहे हैं स्वाद का केवल एक बात हो सकता है

<body> 
    <h1>#{title}</h1> 
    <p>#{content}</p> 
</body> 
0

मैं एक नया टेम्पलेट इंजन की सिफारिश: Saker, यह तरल पदार्थ कोडिंग कार्यप्रवाह सक्षम बनाता है, सबसे टेम्पलेट वाक्यविन्यास के विपरीत, आप अपने कोडिंग बाधित करने के लिए स्पष्ट रूप से अपने HTML के भीतर सर्वर ब्लॉक निरूपित करने के लिए जरूरत नहीं है।
Github: https://github.com/eshengsky/saker

कोड लगता है:

<body> 
    <h1>@title</h1> 
    <p>@content</p> 
</body> 
संबंधित मुद्दे