問題タブ [gulp-nunjucks-render]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1777 参照

json - gulp を使用した異なる JSON データを含む複数の Nunjucks ファイル

gulp と Nunjucks を使用して、さまざまなコンテンツの複数のテンプレート ファイルを一度に生成したいと考えています。これらのテンプレートはすべてまったく同じレイアウトになりますが、テキスト/画像に対して異なる変数を渡します。

1 つのファイルを正常に生成できindex.htmlますが、一度に複数のファイルを作成するように設定する方法がわかりません。ここに私が持っているものの簡略版があります:

gulpfile.js

レイアウト.ヌンジャックス

index.nunjucks

data.json

このワークフローを変更して、それぞれが異なるタイトルを持つ複数のファイルを生成する最善の方法は何ですか?

複数のファイルを作成できることがわかりましたがindex.nunjucks、それらはすべて同じdata.jsonファイルを使用しているようです。また、それぞれに個別の JSON ファイルを作成したくありません。

ファイルに配列を追加して、data.jsonNunjucks をループさせ、見つかったオブジェクトごとに個別のファイルを作成することはできますか? 次のような:

data.json

index.nunjucksまたは、変数を JSON に格納することに依存せずに、ファイル内に変数を設定する方法はありますか?

0 投票する
1 に答える
860 参照

gulp - json をループし、gulp-nunjucks-render ですべてのファイルを同じ内容でレンダリングする

gulp-nunjucks-render で 30 以上の html ページをレンダリングしようとしています。1 つの nunjucks テンプレートと 2 つの json ファイル (ヘッダーとフッターの一般的なテンプレート パーツ、および投稿データの配列) を作成しました。「投稿」関数ループ内のロジックは単純です。すべての投稿が使用する一般的な情報を取得し、適切な投稿情報を追加して、データを関数に送信し、それを html ファイルにレンダリングします。

「html」関数内で gulp-util を使用して、レンダリングに使用されるデータをログアウトしていますが、データが正しいことがわかります (投稿ごとに異なります)。また、ファイル名は毎回異なります。問題は、レンダリングされた html ファイルのコンテンツが同じであることです (最新のレンダリングされたデータのコンテンツ)。

私のgulpファイルの関連部分:

次のような sth の news.en.json ファイルを使用します。

そして、同じコンテンツを持つ 2 つのファイルを取得します (この場合、"some title2","../img/7.jpg","some content2"... 両方で)。

各htmlで異なるコンテンツを取得したい場合、何が間違っていますか? gulp や nunjucks に問題があるのでしょうか?

0 投票する
0 に答える
541 参照

javascript - Gulp を使用して複数のソース ファイル間の変更を検出する

私が抱えていた最初の問題は、タスクが内部に存在するファイルの数に対して x 回実行されていたことでしsrc.pagesた。ソース ファイルの最終更新日を比較するために、「changed-in-place」プラグインを追加することでこれを修正しました。つまり、変更日が変更されていない場合は実行されず、変更されている場合は実行されますが、必要な回数だけ実行されます。

プラグインは、ストリームに渡されたディレクトリに対してのみファイルをチェックするため、src.templates本質的に私の .html 部分ファイル フォルダーである 内のファイルに対してチェックしないことを意味します。私が実行していた回避策は、部分的なファイルの変更を監視する別のタスクを用意することでしたが、比較機能は実行しませんでした。これは、タスクが複数回実行されるという元の問題がまだ残っていることを意味していました。

更新:これは、私の質問に関連するすべてを含む私のgulpfileの削除されたバージョンです:

明確にするために編集:ページとテンプレートのディレクトリの変更を監視するタスクがあります。変更が行われると、nunjucksPages関数が実行されます。HTML が nunjucks によってコンパイルされた後、ブラウザー同期はこれを検出し、HTML を挿入します (私のコードの 2 番目の監視タスク)。

私が実施している現在の回避策は、両方の nunjucks 関数を複製し、それらを個別に実行することです。ページはキャッシュ付き (単一のリロード、問題が修正されました!) で機能し、テンプレートはキャッシュなしで機能します (X 量のページごとにリロード)。 .

関連する問題とコメント: https://github.com/carlosl/gulp-nunjucks-render/issues/47#issuecomment-240962074

0 投票する
3 に答える
369 参照

json - 異なる値でnunjucks groupbyを使用するには?

この種の値がある場合、Json からデータを gropBy する方法がわかりません

私のテンプレート

そして出力で私は持っています

持ちたい

おそらく、最初は Json からすべてのデータを取得し、それをグループ化してから dateFilter を使用しましたが、どうすれば別の方法でデータを取得できますか?

私の gulpfile.js gulpfile

更新 19.12.18

出力例

0 投票する
3 に答える
371 参照

json - nunjuncksでデータを乗算するにはどうすればよいですか?

例えば

価格に数量を掛けたい

Json ファイルからのデータ。