8

私は、Slim と少しの Haml で実装されたすべてのテンプレートを持つかなり堅牢なプロジェクトを持っています。プロジェクトを Node.js ベースの構造に移行することを検討しています (おそらく Tower.js または類似のものの上に構築されます。Meteor の可能性があります)。ただし、別のテンプレートに移行するのではなく、テンプレートに Slim または Haml を引き続き使用したいと考えています。エンジン。

これまでに誰かがこれを行った、またはこれを達成する方法を理解するために時間を費やしましたか? もしそうなら、あなたの発見は何でしたか?

4

1 に答える 1

0

Tower.js は express.js テンプレート エンジン システムをラップするため、設定に以下を追加することで任意の express.js テンプレート エンジンを使用できるはずです。Tower.View.engine = "haml"

Tower.js は、HAML が組み込まれているmintを使用するため、必要なのはディレクトリ内のhaml モジュールだけです。

ただし、スリムは問題があります。最初は直接 mint.js 内にないため、新しいテンプレート エンジンを登録する必要があります。必要な Todo

  1. mint.js が使用できる関数customAdapterを作成するには、mint.js ソースコードを参照してください。以下は、haml アダプター関数の例です。

    function(content, options, callback) {
      var result;
      result = require('hamljs').render(content, options || {});
      if (callback) {
        callback.call(this, null, result);
      }
      return result;
    }
    
  2. 次のようにして、アダプタを mint.js に追加する必要があります。require("mint").engines.slim = customAdapter

しかし、Slim 用の express.js エンジンはありません。また、Slim には Ruby コードのスニペットが含まれているため、存在する可能性はほとんどありません。
本当にやりたい場合は、テンプレート ファイル用に独自の JavaScript パーサーを作成し (おそらくhttp://opalrb.org/のようなものを使用しますが、特定の ruby​​ ライブラリは使用しません)、エクスプレスを作成する必要があります。 jsエンジン(方法がわかりません)。

非常に実りある演習になるとは思えません。
Slim ファイルを haml (または jade、または express.js で使用できる任意のテンプレート エンジン) に変換するか、移動しないことをお勧めします。
また、Slim を Haml やその他のテンプレート エンジンに自動的に変換する方法も見つけられませんでした (おそらく Ruby コードが含まれているため)。そのため、完全に手動で変換する必要があります。

于 2013-04-22T09:59:20.987 に答える