4

私は口ひげスタイルのテンプレート言語の最小性が好きです - 私は現在口ひげとicanhasmustacheを使用していますが、ハンドルバーホーガンもチェックアウトしました.

ただし、子が特定の親テンプレートを参照できるようにするために、「拡張」タイプの機能が必要です。上記のいずれかで extends がどのように実装されているかに関するドキュメントは見つかりませんが、他の人がそれを行っているように見えることを (ランダムな github の要点から) 見ました。

:インクルード(パーシャルと呼ばれることもあります)の存在は認識していますが、これらは親が特定の子を参照するためのもののようです。これは私が探しているものとは逆です。この場合の子テンプレートは実際の「ベース」ドキュメントであり、親は単なる付随的なものなので、子に関係を制御してもらいたいのです。

4

3 に答える 3

8

2016年の回答

Express を使用している場合、レイアウト ミドルウェアはlayout便利なオプションを使用します。

res.render('page', { layout: 'mylayout.jade' })

元の回答: 「拡張」タイプの機能を実装している JS ライブラリはほとんどありません。

  • Nunは非常に口ひげが似ていますが、サーバーのみ (そしてメンテナンスされていません)
  • Swigには拡張機能がありますが、口ひげのようなものではありません。
  • Jadeはブラウザーで拡張して動作しますが、口ひげのようなものではありません

私はDust.JSに落ち着きました。これは、口ひげのようなセクションを使用し、クライアントとサーバーで動作し、子から親へのブロックのオーバーライドをサポートし、効果的な拡張サポートを提供します。

ダスト ドキュメントの「ブロックとインライン パーシャル」セクションを参照してください。

{>base_template/}
{<title}
  Child Title
{/title}
{<main}
  Child Content
{/main}

親テンプレートの「タイトル」セクションと「メイン」セクションをオーバーライドし、周囲のコンテンツを保持します。

于 2012-03-13T22:02:41.120 に答える
5

いくつかの問題を修正し、継承をサポートすることを約束する Nunjucks を調べています。

編集:

私は確かに Nunjucks を採用しました。これまでのところ、かなり堅実です。私が遭遇した制限の 1 つは、プリコンパイル用に複数のフォルダーを指定できないことですが、それを許可するスクリプトを作成しました。

于 2013-04-24T02:38:55.993 に答える
2

Twitter の Mustache の実装である Hogan は現在、継承をサポートしているようです。

この最近のコミットを参照してください: Hogan 3. Add template inheritance...

于 2012-04-18T19:43:49.527 に答える