Node.jsを使用してWebアプリケーション全体を構築する実験をしています。少なくとも基本テンプレートを拡張できるDjangoテンプレートエンジンなどに似たテンプレートエンジンはありますか?
Node jsモジュールwikiページをご覧ください。すべての テンプレートエンジン をサポートするnode.jsをリストしています。
動作しない場合は、mustache.jsを使用できるはずです。問題を送信し、とにかくnode.jsでそれらを使用しようとしているので、修正します。
http://github.com/janl/mustache.js
たくさんのCouchDBスタンドアロンアプリがSpidermonkeyビューサーバーでDOMを使用しているため、DOMがなくても動作することを知っています。
Hamlが好きなのに、ノードの http://jade-lang.com をさらに確認したい場合は、haml.jsも書きました:)
常に新しいテンプレートエンジンがあります。
underscore.jsは、jsに多くの関数型プログラミングサポートを追加し、テンプレートを備えています。
そして今日ちょうどこれについて聞いた: http://github.com/SamuraiJack/Shotenjin-Joosed
node-asyncEJS を確認する必要があります。これは、node.jsの非同期性を考慮するように明示的に設計されています。テンプレート内の非同期コードブロックも許可します。
ここに例がドキュメントを形成します:
<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>
beardless を試すことができます(溶接/プレートに触発されています):
例えば:
{ 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>
Simon Willisons djangode project のテンプレート言語Djangoのかなり完全なポートでいくつかの作業を行いました(ノードのユーティリティ関数。 Djangoからいくつかの有用な概念を借用するjs)。
ドキュメント here を参照してください。
SymfonyでTwigを使用しており、node.jsを少しばかり使用しているため、 https://github.com/justjohn/twig.js および https://github.com/paularmstrong/swig 、これはおそらくDjangoを使用する場合に好まれます。
警告:JinJsはもう保守されていません。まだ機能していますが、最新バージョンのexpressとは互換性がありません。
jinjs を使用してみてください。これは非常に優れたPythonテンプレートシステムであるJinjaの移植版です。次のようにnpmでインストールできます:
npm install jinjs
template.tpl内:
I say : "{{ sentence }}"
あなたのtemplate.jsで:
jinjs = require('jinjs');
jinjs.registerExtension('.tpl');
tpl = require('./template');
str = tpl.render ({sentence : 'Hello, World!'});
console.log(str);
出力は次のようになります。
I say : "Hello, World!"
私たちはそれを積極的に開発していますが、すぐに良いドキュメントが来るでしょう。
テンプレートへの最小限のアプローチを探している場合は、 JSON Template を確認してください。
より完全な代替機能は EJS です。 Djangoから得られるものに少し似ています。
走行距離はこれらのそれぞれによって異なる場合があります-それらはNode.jsではなく、ブラウザのJavascript環境用に設計されています。
{dust}について良いことを聞いたことがあります http://akdubya.github.com/dustjs/#dust
「vash」を試してください-node.jsの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);
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
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">[email protected]
</div><div id="bio">Experienced software professional...
</div></div></div></body></html>
Googleのクロージャーテンプレートは、ネイティブJavaScriptのテンプレートシステムであり、NodeJSに自然に適合しているように見えます。 ここにいくつかの手順があります それらを統合します。
DjangoテンプレートエンジンのJavaScriptへの移植版があります。ただし、長い間更新されていませんが、まだ十分な機能を備えている可能性があります。
Yajet も試してください。 ;-)昨日リリースしたばかりの新しいものですが、今しばらく使用しています。安定して高速です(テンプレートはネイティブJS関数にコンパイルされます)。
IMOにはテンプレートエンジンに可能な限り最高の構文があり、コードサイズが小さい(8.5K縮小)にもかかわらず豊富な機能セットがあります。これには、条件の導入、配列/ハッシュの反復、再利用可能なテンプレートコンポーネントの定義などを可能にするディレクティブがあります。
正直なところ、Node.jsの最適かつ最もシンプルなテンプレートエンジンは(IMHO)プレート( https://github.com/flatiron/plates )です。 Node.jsのFlatiron MVCフレームワークも確認してください( http://flatiron.org )。
Twitterで hogan.js を見つけ、Tim O'Reillyが彼のサイトで推奨しています。ベストプラクティスはありませんが、TwitterとO'Reillyを信頼しています。試してみてください...