Node.jsを使用してWebアプリケーション全体を構築する実験を行っています。(たとえば)Djangoテンプレートエンジンなどに似た、少なくとも基本テンプレートを拡張できるテンプレートエンジンはありますか?
Node.jsを使用してWebアプリケーション全体を構築する実験を行っています。(たとえば)Djangoテンプレートエンジンなどに似た、少なくとも基本テンプレートを拡張できるテンプレートエンジンはありますか?
回答:
Node jsモジュールのwikiページを調べてください。彼らは、node.jsをサポートするすべてのテンプレートエンジンをリストしました。
moustache.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.jsの非同期の性質を考慮に入れるように明示的に設計されているnode-asyncEJSを確認する必要があります。テンプレート内の非同期コードブロックも可能です。
ここにドキュメントからの例:
<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>
Simon Willisons djangodeプロジェクト(Djangoからいくつかの有用な概念を借用したnode.jsのユーティリティ関数)のDjangoテンプレート言語のかなり完全な移植について作業を行いました。
こちらのドキュメントをご覧ください。
私はSymfonyでTwigを使用していて、現在はnode.jsに手を出しています。そのため、https://github.com/justjohn/twig.jsとhttps://github.com/paularmstrong/swigを見ていきます。 djangoを使用している場合は、おそらくそうです。
テンプレートに対する最小限のアプローチを探している場合は、JSONテンプレートをチェックしてください。
より完全な機能を備えた代替手段はEJSです。これは、Djangoから取得するものに少し似ています。
あなたのマイレージはこれらのそれぞれで異なる可能性があります-それらはNode.jsではなくブラウザのJavascript環境用に設計されています。
警告: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!"
私たちは積極的にそれを開発しており、良いドキュメントがすぐに来るでしょう。
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">tim@creationix.com
</div><div id="bio">Experienced software professional...
</div></div></div></body></html>
{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);
DjangoテンプレートエンジンのJavaScriptへの移植があります。ただし、長い間更新されていませんが、まだ十分な機能がある可能性があります。
Yajetも試してください。;-)昨日リリースしたばかりの新しいものですが、しばらく使用していますが、安定していて高速です(テンプレートはネイティブJS関数にコンパイルされています)。
テンプレートエンジンに可能な最高の構文であるIMOと、コードサイズが小さい(8.5Kに縮小)にもかかわらず豊富な機能セットを備えています。これには、条件の導入、配列/ハッシュの反復、再利用可能なテンプレートコンポーネントの定義などを可能にするディレクティブがあります。
正直なところ、Node.jsの最良かつ最も単純なテンプレートエンジンは(IMHO)プレート(https://github.com/flatiron/plates)です。Node.jsのFlatiron MVCフレームワーク(http://flatiron.org)も確認してください。