2

Dust.js テンプレート エンジンを使用しています。メイン テンプレートにはパーシャルが含まれており、問題は、dust.js が含まれているテンプレート ファイルのすべての行を削除することです。

たとえば、メインのテンプレートは次のとおりです。

<h1>{header}</h1>
{>dust_cnt /}

Dust_cnt.dust は次のとおりです。

<div>
  This is
  the content
</div>

res.render('dust_template.dust', {header: 'TEST OK'}); で応答をレンダリングします。

This is出力でとの間にスペースがない問題the content。したがって、出力は次のようになります。

TEST OK

This isthe content

{~n} や別のセパレーターを入れてすべての内容を変更することはできません。そうする理由はないと思います。

http://linkedin.github.com/dustjs/で、次の発言を見つけましGH- 166 - Added trimming of white spaces in dust templates configuration in the dust.compile ( default option is still true)。しかし、トリミングを避けるためにオプションを設定する方法が見つかりませんか?

Dust.js を作成して、期待どおりに (スペースを使用して) レンダリングするにはどうすればよいですか?

前もって感謝します!

4

2 に答える 2

3

わかりました、私は解決策を見つけました:)。ソースコードを掘り下げて+ダストのGitHubの問題をチェックした後、テンプレートのノードのフォーマットを防ぐために以下を使用することにしました:

dust.optimizers.format = function(ctx, node) { return node };

( https://github.com/linkedin/dustjs/wiki/Dust-Tutorial#controlling-whitespace-suppressionにもあります)

デフォルトの動作は非常に危険です。GitHub で言及されているように、深刻な問題を引き起こす可能性があります。次に例を示します。

<script>
//this will alert "test"
alert("this is test");
</script>

次のようにレンダリングされます。

<script>//this will alert "test" alert("this is test");</script>
于 2013-04-03T08:43:01.137 に答える
0

これは奇妙で、テンプレート ファイルを編集したくないことは理解しています。ただし、行末にスペースを追加することで、見苦しくない方法でこれを回避できます。

<div>
  This is < add space here
  the content
</div>

念のため、これに対する実際の解決策を見つけることができません。

于 2013-04-02T17:43:57.027 に答える