2013-05-12 14 views

答えて

166

私はジェイドを以前使用しました。 Jadeの素晴らしい点は、構文を短くしてより速く入力できることです。 Jadeのblockは非常に強力なので、複雑なHTMLコードを扱うときに私を助けてくれます。

一方、単純なif条件に基づいてDIVにクラスを追加するのと同じように、Jadeでは簡単なことをするのは難しいです。私は

a(href='/user/' + user.id)= user.name 

ジェイドもないデザイナーである(少なくとも私にとっては)タグやコードは非常に混乱させるの変数を区別しません。また、この

- if (isAdmin) 
    div.admin.user 
- else 
    div.user 

翡翠のようなものを置く必要があります - フレンドリー。私のデザイナーの友人たちは、HTMLとCSSを提供しています(彼らは最近LESSに切り替えましたが、まだHTMLを使いたいと思っています)。そのため、Jadeを使うとHTMLをJadeに変換する必要があります。また、Jadeではインデントを使用する必要があります。そのため、HTML構造が複雑になると、コードがひどく見えます(特にテーブル)。時々、私は何レベルにいるのか分かりません

table 
    thead 
    tr 
     td 
     a 
      img 
    tr 
     td 
    tbody 
    tr 
     td 

最近、私はEJSに切り替えました。私はこれまでこれまでに満足しています。これは純粋なHTMLに非常に近く、私が使用しているフロントエンドテンプレートエンジン(アンダースコアテンプレート)と同じ構文を使用します。 EJSではすべてが簡単だと言わなければならない。デザイナーの友人からHTMLテンプレートを受け取ったときに、すべての変換を行う必要はありません。私がしなければならないことは、動的部分をExpressJSから渡された変数に置き換えることだけです。ジェイドを使用しているとき、私はクレイジー作るものはEJS

<div class="<%= isAdmin? 'admin': '' %> user"></div> 

で解決されていると私はあなたが(私のような)ジェイドの短い構文を逃した場合は、組み合わせることができますEJS

<a href="/user/<%= user.id %>"><%= user.name %></a> 

と何が何であるかを知ることができますZen-CodingとEJSは、一般的な進歩をスピードアップするのに役立ちます。パフォーマンスについては、私はどんな違いが

しかし、EJSはジェイドほど強力ではありません、それはデフォルトでブロックを持っていません表示されていない(この男はEJS https://github.com/RandomEtc/ejs-localsためのブロック機能を実装)

だから、それあなたを快適にするものを選ぶことは、あなたに完全に依存しています。しかし、私のようにフロントエンドに別のテンプレートエンジンを使用する場合は、両側で同じものを使用する方が良いでしょう。

更新日2013年12月16日: 最近、EJSからSwig Pythonの世界ではJinja2のコンセプト)。主な理由は、ejs-localsの助けを借りてEJSのブロックがないことです。 Swigは、テンプレートにはプレーンなHTMLを使用しています。テンプレートエンジンにはEJSにはないフィルタやタグなどのテンプレートエンジンがたくさんあります。

+1

あなたがどのレベルにいるのかわからないのは、jadeが1行に複数のタグを新たにサポートしているということです。 Jadeのドキュメントから、「スペースを節約するために、jadeはネストされたタグのインライン構文を提供しています.'a:img」は ''と等価です。 –

+1

私は1年か2年前に「翡翠」を試しました。多分今は良くなっています。しかし、私の最初のポイントを撤回し、それを回避することは簡単ではない –

+1

[html2jade](http://html2jade.com/)見たことがありますか? – tjameson

37

私はそれが他のものより優れているとは言いません。彼らは異なっていますが、それは確かですが、「より良い」とはかなり相対的な用語です。

私はHTMLがあまりにも悪くないと思うので、私はEJSを好むだけでなく、僕はJadeを学ばなくても他の人と仕事をすることができます。

しかし、翡翠はかなりきれいで、あなたの意見にはきちんとしたコードがあります。

あなたがもっと気持ちが良いものを選んでください。

関連する問題