問題タブ [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.
json - gulp を使用した異なる JSON データを含む複数の Nunjucks ファイル
gulp と Nunjucks を使用して、さまざまなコンテンツの複数のテンプレート ファイルを一度に生成したいと考えています。これらのテンプレートはすべてまったく同じレイアウトになりますが、テキスト/画像に対して異なる変数を渡します。
1 つのファイルを正常に生成できindex.html
ますが、一度に複数のファイルを作成するように設定する方法がわかりません。ここに私が持っているものの簡略版があります:
gulpfile.js
レイアウト.ヌンジャックス
index.nunjucks
data.json
このワークフローを変更して、それぞれが異なるタイトルを持つ複数のファイルを生成する最善の方法は何ですか?
複数のファイルを作成できることがわかりましたがindex.nunjucks
、それらはすべて同じdata.json
ファイルを使用しているようです。また、それぞれに個別の JSON ファイルを作成したくありません。
ファイルに配列を追加して、data.json
Nunjucks をループさせ、見つかったオブジェクトごとに個別のファイルを作成することはできますか? 次のような:
data.json
index.nunjucks
または、変数を JSON に格納することに依存せずに、ファイル内に変数を設定する方法はありますか?
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 に問題があるのでしょうか?
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
json - nunjuncksでデータを乗算するにはどうすればよいですか?
例えば
価格に数量を掛けたい
Json ファイルからのデータ。