मैं Node.js. का उपयोग करके संपूर्ण वेब एप्लिकेशन बनाने के साथ प्रयोग कर रहा हूं क्या Django टेम्प्लेट इंजन (जैसे) के लिए एक टेम्पलेट इंजन समान है या कम से कम आप बेस टेम्प्लेट का विस्तार करने की अनुमति देते हैं?
मैं Node.js. का उपयोग करके संपूर्ण वेब एप्लिकेशन बनाने के साथ प्रयोग कर रहा हूं क्या Django टेम्प्लेट इंजन (जैसे) के लिए एक टेम्पलेट इंजन समान है या कम से कम आप बेस टेम्प्लेट का विस्तार करने की अनुमति देते हैं?
जवाबों:
नोड जेएस मॉड्यूल विकी पेज देखें। उन्होंने नोडल का समर्थन करने वाले सभी अस्थायी इंजन सूचीबद्ध किए हैं।
आपको मूंछों का उपयोग करने में सक्षम होना चाहिए। अगर यह काम नहीं करता है तो मुझे मुद्दों को भेजें और मैं इसे ठीक करवाऊंगा, क्योंकि मैं वैसे भी नोड में इनका उपयोग करने वाला हूं।
http://github.com/janl/mustache.js
मुझे पता है कि यह DOM के बिना काम करता है क्योंकि CouchDB स्टैंडअलोन ऐप्स का एक गुच्छा एक स्पाइडरमोंकी व्यू सर्वर में इसका उपयोग कर रहा है।
यदि आप haml को पसंद करते हैं, लेकिन नोड के लिए http://jade-lang.com पर कुछ बेहतर देखना चाहते हैं , तो मैंने haml.js को :) लिखा है
हर समय नए अस्थायी इंजन हैं।
underscore.js js में बहुत से कार्यात्मक प्रोग्रामिंग समर्थन जोड़ता है, और इसमें अस्थायी है।
और आज ही मैंने इस बारे में सुना: http://github.com/SamuraiJack/Shotenjin-Joosed
आपको नोड-एसिंक्जैस पर एक नज़र डालनी चाहिए , जो स्पष्ट रूप से नोड की असिंक्रोनस प्रकृति को ध्यान में रखकर बनाया गया है। यह भी टेम्पलेट के अंदर async कोड ब्लॉक की अनुमति देता है।
यहाँ एक उदाहरण प्रलेखन के रूप में:
<html>
<head>
<% ctx.hello = "World"; %>
<title><%= "Hello " + ctx.hello %></title>
</head>
<body>
<h1><%? setTimeout(function () { res.print("Async Header"); res.finish(); }, 2000) %></h1>
<p><%? setTimeout(function () { res.print("Body"); res.finish(); }, 1000) %></p>
</body>
</html>
आप दाढ़ी रहित कोशिश कर सकते हैं (यह वेल्ड / प्लेट्स से प्रेरित है):
उदाहरण के लिए:
{ post:
{ title: "Next generation templating: Start shaving!"
, text: "TL;DR You should really check out beardless!"
, comments:
[ {text: "Hey cool!"}
, {text: "Really gotta check that out..."} ]
}
}
आपका टेम्प्लेट:
<h1 data-template="post.title"></h1>
<p data-template="post.text"></p>
<div>
<div data-template="post.comments" class="comment">
<p data-template="post.comments.text"></p>
</div>
</div>
आउटपुट:
<h1>Next generation templating: Start shaving!</h1>
<p>TL;DR You should really check out beardless!</p>
<div>
<div class="comment">
<p>Hey cool!</p>
</div>
<div class="comment">
<p>Really gotta check that out...</p>
</div>
</div>
मैंने साइमन विलिसन डेंजोड प्रोजेक्ट के लिए Django टेम्प्लेट लैंग्वेज के एक बहुत ही पूर्ण पोर्ट पर कुछ काम किया है (यूटिलिटीज फ़ंक्शंस नोड के लिए। जो कि Django से कुछ उपयोगी अवधारणाओं को उधार लेता है)।
दस्तावेज़ यहाँ देखें ।
मैं Twig का उपयोग सिम्फनी के साथ करता हूं और अब नोड.जेएस में डब्बल कर रहा हूं, इसलिए मैं https://github.com/justjohn/twig.js और https://github.com/paularmstrong/swig देख रहा हूं , जो आप शायद अगर आप django का उपयोग करते हैं।
यदि आप टेम्पलेट्स के लिए एक न्यूनतम दृष्टिकोण की तलाश कर रहे हैं, तो आप JSON टेम्पलेट की जांच कर सकते हैं ।
एक अधिक पूर्ण विशेषताओं वाला विकल्प ईजेएस है । यह Django से आपको मिलने वाली चीज़ के समान है।
आपका माइलेज इनमें से प्रत्येक के लिए भिन्न हो सकता है - वे एक ब्राउज़र जावास्क्रिप्ट पर्यावरण के लिए डिज़ाइन किए गए हैं, न कि Node.js.
चेतावनी: जिन्स का रखरखाव अभी नहीं किया गया है। यह अभी भी काम कर रहा है लेकिन एक्सप्रेस के नवीनतम संस्करण के साथ संगत नहीं है।
आप jinjs का उपयोग करके देख सकते हैं । यह जिंजा का एक बंदरगाह है, एक बहुत अच्छा पायथन टेम्पोलेटिंग सिस्टम है। आप इसे इस तरह से npm के साथ स्थापित कर सकते हैं:
npm install jinjs
template.tpl में:
I say : "{{ sentence }}"
अपने टेम्पलेट में।
jinjs = require('jinjs');
jinjs.registerExtension('.tpl');
tpl = require('./template');
str = tpl.render ({sentence : 'Hello, World!'});
console.log(str);
उत्पादन होगा:
I say : "Hello, World!"
हम इसे सक्रिय रूप से विकसित कर रहे हैं, एक अच्छा प्रलेखन बहुत जल्द आना चाहिए।
haml node.js के लिए एक अच्छा विकल्प है
http://github.com/creationix/haml-js
haml-js
!!! XML
!!! strict
%html{ xmlns: "http://www.w3.org/1999/xhtml" }
%head
%title Sample haml template
%body
.profile
.left.column
#date= print_date()
#address= current_user.address
.right.column
#email= current_user.email
#bio= current_user.bio
एचटीएमएल
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sample haml template
</title></head><body><div class="profile"><div class="left column"><div id="date">January 1, 2009
</div><div id="address">Richardson, TX
</div></div><div class="right column"><div id="email">tim@creationix.com
</div><div id="bio">Experienced software professional...
</div></div></div></body></html>
मैंने {धूल} http://akdubya.github.com/dustjs/#dust के बारे में अच्छी बातें सुनी हैं
"Vash" का प्रयास करें - नोड के लिए razor सिंटैक्स की तरह asp.net mvc
https://github.com/kirbysayshi/Vash
चेकआउट भी करें: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx
// sample
var tmpl = vash.compile('<hr/>@model.a,@model.b<hr/>');
var html = tmpl({"a": "hello", "b": "world"});
res.write(html);
Google का क्लोजर टेम्प्लेट एक मूल-जावास्क्रिप्ट टेम्प्लेटिंग सिस्टम है और NodeJS के साथ एक स्वाभाविक रूप से स्वाभाविक रूप से फिट है। उन्हें एकीकृत करने के लिए यहां कुछ निर्देश दिए गए हैं।
क्या आपने PURE की कोशिश की ?
यदि आप इसे आजमाते हैं, तो बेझिझक किसी भी मुसीबत को मंच पर महसूस कर सकते हैं
जबकि यह मुख्य रूप से ब्राउज़र के लिए डिज़ाइन किया गया था, यह जैक्सर और राइनो के साथ अच्छी तरह से काम करता है।
मुझे अभी तक नोड.जेएस का पता नहीं है लेकिन अगर आप कुछ जेएस और कार्यों को मेमोरी में कैश कर सकते हैं, तो गति और भी प्रभावशाली होनी चाहिए।
जावास्क्रिप्ट में Django टेम्प्लेटिंग इंजन का एक बंदरगाह है। हालाँकि, इसके अपडेट को लंबे समय तक अपडेट नहीं किया गया है लेकिन इसमें अभी भी काफी फीचर हो सकते हैं।
प्रयास करें Yajet भी। ;-) यह एक नया है जिसे मैंने कल जारी किया है, लेकिन मैं इसे अभी थोड़ी देर के लिए उपयोग कर रहा हूं और यह स्थिर और तेज है (टेम्पलेट एक देशी जेएस फ़ंक्शन के लिए संकलित हैं)।
यह एक टेम्पलेट इंजन के लिए IMO सबसे अच्छा वाक्यविन्यास है, और इसके छोटे कोड आकार (8.5K minified) के बावजूद एक समृद्ध विशेषता सेट है। इसमें ऐसे निर्देश हैं जो आपको सशर्त, इटरेस्ट एरे / हैश का परिचय देने, पुन: प्रयोज्य टेम्पलेट घटकों आदि को परिभाषित करने की अनुमति देते हैं।
यहाँ कई इंजनों का एक अच्छा मूल्यांकन है http://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-more
ईमानदारी से, Node.js के लिए सबसे अच्छा और सबसे सरल टेम्पलेट इंजन (IMHO) प्लेट्स ( https://github.com/flatiron/plates ) है। तुम भी Node.js ( http://flatiron.org ) के लिए Flatiron MVC ढांचे की जाँच करना चाहते हो सकता है ।