Node.js kullanarak tüm bir web uygulaması oluşturma deniyorum. En azından temel şablonları genişletmenize izin veren (örneğin) Django şablon motoruna veya benzerine benzer bir şablon motoru var mı?
Node.js kullanarak tüm bir web uygulaması oluşturma deniyorum. En azından temel şablonları genişletmenize izin veren (örneğin) Django şablon motoruna veya benzerine benzer bir şablon motoru var mı?
Yanıtlar:
Düğüm js modülleri wiki sayfasına göz atın. Düğümleri destekleyen tüm şablon motorları listelediler. Js.
Mustache.js'yi kullanabilmelisiniz, eğer işe yaramazsa sorunları bana gönderin ve düzelteceğim çünkü zaten onları node.js'de kullanmak üzereyim.
http://github.com/janl/mustache.js
Bir CouchDB bağımsız uygulaması bir grup Spidermonkey görünüm sunucusunda kullandığından DOM olmadan çalıştığını biliyorum.
Eğer haml gibi, ama daha iyi bir şey istiyorsanız düğüm için http://jade-lang.com kontrol , ben de haml.js yazdım :)
Her zaman yeni şablon motorları vardır.
underscore.js js için çok sayıda işlevsel programlama desteği ekler ve şablon içerir.
Ve bugün bunu duydum: http://github.com/SamuraiJack/Shotenjin-Joosed
Düğümün asenkron doğasını hesaba katmak için açıkça tasarlanmış olan node-asyncEJS'ye bir göz atmalısınız. Şablonun içinde zaman uyumsuz kod bloklarına bile izin verir.
Burada dokümantasyondan bir örnek:
<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>
Sakalsız deneyebilirsiniz (kaynak / plakalardan esinlenmiştir):
Örneğin:
{ 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..."} ]
}
}
Şablonunuz:
<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>
Çıktı:
<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>
Simon Willisons djangode projesi için Django şablon dilinin oldukça eksiksiz bir limanında bazı çalışmalar yaptım (Django bazı yararlı kavramlar ödünç node.js için Utilities işlevleri) için .
Buradaki belgelere bakın .
Ben Symfony'de ile Twig kullanmak ve şimdi node.js dabbling ediyorum, bu yüzden bakıyorum https://github.com/justjohn/twig.js ve https://github.com/paularmstrong/swig hangi olacak, muhtemelen django kullanıyorsanız gibi.
Şablonlara minimalist bir yaklaşım arıyorsanız JSON Şablonu'na göz atabilirsiniz .
Daha tam özellikli bir alternatif EJS . Django'dan alacağınız bir şeye biraz daha benziyor.
Kilometre süreniz bunların her biri için değişiklik gösterebilir - bunlar bir tarayıcı Javascript ortamı için tasarlanmıştır, Node.js için değil.
UYARI: JinJ'ler artık korunmamaktadır. Hala çalışıyor ancak ekspresin en son sürümüyle uyumlu değil.
Jinjs kullanmayı deneyebilirsiniz . Çok iyi bir Python şablonlama sistemi olan Jinja'nın bir limanıdır. Aşağıdaki şekilde npm ile yükleyebilirsiniz:
npm install jinjs
template.tpl içinde:
I say : "{{ sentence }}"
template.js dosyasında:
jinjs = require('jinjs');
jinjs.registerExtension('.tpl');
tpl = require('./template');
str = tpl.render ({sentence : 'Hello, World!'});
console.log(str);
Çıktı şöyle olacaktır:
I say : "Hello, World!"
Aktif olarak geliştiriyoruz, yakında iyi bir dokümantasyon gelmelidir.
haml, node.js için iyi bir seçimdir
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
html
<?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>
{Dust} hakkında iyi şeyler duydum http://akdubya.github.com/dustjs/#dust
Deneyin "vash" - asp.net mvc node.js için ustura sözdizimi gibi
https://github.com/kirbysayshi/Vash
ayrıca ödeme: 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'ın Kapatma Şablonları, doğal olarak JavaScript şablonlu bir sistemdir ve NodeJS'ye doğal bir uyum sağlar. Bunları entegre etmek için bazı talimatlar .
Denediniz mi PURE ?
Eğer denerseniz, karşılaşabileceğiniz herhangi bir sorunu yayınlamaktan çekinmeyin forumda
Öncelikle tarayıcı için tasarlanmış olsa da, Jaxer ve Rhino ile iyi çalışır.
Henüz node.js bilmiyorum ama bellekte bazı JS ve işlevleri önbelleğe alabiliyorsanız, hız daha da etkileyici olmalıdır.
Django şablon motorunun JavaScript'e bir portu var. Ancak, uzun bir süre güncellenmedi, ancak yine de yeterli özelliklere sahip olabilir.
Yajet'i de deneyin . ;-) Dün yayınladığım yeni bir tane, ama bir süredir kullanıyorum ve istikrarlı ve hızlı (şablonlar yerel bir JS işlevine derlendi).
IMO, bir şablon motoru için mümkün olan en iyi sözdizimine ve küçük kod boyutuna rağmen (8.5K küçültülmüş) zengin bir özellik kümesine sahiptir. Koşulları tanıtmanıza, dizileri / karmaları tekrarlamanıza, yeniden kullanılabilir şablon bileşenlerini tanımlamanıza izin veren direktiflere sahiptir.
İşte birkaç motorun iyi bir değerlendirmesi http://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-daha fazla
Dürüst olmak gerekirse, Node.js için en iyi ve en basit şablon motoru (IMHO) Tabaklar ( https://github.com/flatiron/plates ). Ayrıca Node.js için Flatiron MVC çerçevesine de göz atmak isteyebilirsiniz ( http://flatiron.org ).