web-dev-qa-db-ja.com

Node.js用のテンプレートエンジンはありますか?

Node.jsを使用してWebアプリケーション全体を構築する実験をしています。少なくとも基本テンプレートを拡張できるDjangoテンプレートエンジンなどに似たテンプレートエンジンはありますか?

271
Seb

Node jsモジュールwikiページをご覧ください。すべての テンプレートエンジン をサポートするnode.jsをリストしています。

165
RameshVel

動作しない場合は、mustache.jsを使用できるはずです。問題を送信し、とにかくnode.jsでそれらを使用しようとしているので、修正します。

http://github.com/janl/mustache.js

たくさんのCouchDBスタンドアロンアプリがSpidermonkeyビューサーバーでDOMを使用しているため、DOMがなくても動作することを知っています。

52
mikeal

Hamlが好きなのに、ノードの http://jade-lang.com をさらに確認したい場合は、haml.jsも書きました:)

40
tjholowaychuk

常に新しいテンプレートエンジンがあります。

underscore.jsは、jsに多くの関数型プログラミングサポートを追加し、テンプレートを備えています。

そして今日ちょうどこれについて聞いた: http://github.com/SamuraiJack/Shotenjin-Joosed

15
Nosredna

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>
13
Fabian Jakobs

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>
7
carambolage

Simon Willisons djangode project のテンプレート言語Djangoのかなり完全なポートでいくつかの作業を行いました(ノードのユーティリティ関数。 Djangoからいくつかの有用な概念を借用するjs)。

ドキュメント here を参照してください。

6
AHM

SymfonyでTwigを使用しており、node.jsを少しばかり使用しているため、 https://github.com/justjohn/twig.js および https://github.com/paularmstrong/swig 、これはおそらくDjangoを使用する場合に好まれます。

6
Tac Tacelosky

警告: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!"

私たちはそれを積極的に開発していますが、すぐに良いドキュメントが来るでしょう。

5
fe_lix_

テンプレートへの最小限のアプローチを探している場合は、 JSON Template を確認してください。

より完全な代替機能は EJS です。 Djangoから得られるものに少し似ています。

走行距離はこれらのそれぞれによって異なる場合があります-それらはNode.jsではなく、ブラウザのJavascript環境用に設計されています。

5
ShZ

{dust}について良いことを聞いたことがあります http://akdubya.github.com/dustjs/#dust

4
triptych

「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);
4
ramr

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>
4
Mark Lindell

Googleのクロージャーテンプレートは、ネイティブJavaScriptのテンプレートシステムであり、NodeJSに自然に適合しているように見えます。 ここにいくつかの手順があります それらを統合します。

3
Adam Crossland

DjangoテンプレートエンジンのJavaScriptへの移植版があります。ただし、長い間更新されていませんが、まだ十分な機能を備えている可能性があります。

http://code.google.com/p/jtl-javascript-template/

2
Orange Box

Yajet も試してください。 ;-)昨日リリースしたばかりの新しいものですが、今しばらく使用しています。安定して高速です(テンプレートはネイティブJS関数にコンパイルされます)。

IMOにはテンプレートエンジンに可能な限り最高の構文があり、コードサイズが小さい(8.5K縮小)にもかかわらず豊富な機能セットがあります。これには、条件の導入、配列/ハッシュの反復、再利用可能なテンプレートコンポーネントの定義などを可能にするディレクティブがあります。

2
mishoo

PURE を試しましたか?
試してみる場合は、 フォーラム で直面する可能性のある問題を投稿してください。

主にブラウザ用に設計されたものですが、JaxerおよびRhinoでうまく機能します。

Node.jsはまだわかりませんが、JSと関数をメモリにキャッシュできる場合、速度はさらに向上するはずです。

2
Mic

正直なところ、Node.jsの最適かつ最もシンプルなテンプレートエンジンは(IMHO)プレート( https://github.com/flatiron/plates )です。 Node.jsのFlatiron MVCフレームワークも確認してください( http://flatiron.org )。

0
trusktr
0

Twitterで hogan.js を見つけ、Tim O'Reillyが彼のサイトで推奨しています。ベストプラクティスはありませんが、TwitterとO'Reillyを信頼しています。試してみてください...

0
KimKha