1

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

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

gulpfile.js

var nunjucks = require('gulp-nunjucks-render');
var data     = require('gulp-data');

gulp.task('nunjucks', function () {
    return gulp
        .src('./src/layouts/**/*.+(html|nunjucks)')
        .pipe(data(function () { return require('./src/data.json'); }))
        .pipe(nunjucks({ path: ['./src/templates'] }))
        .pipe(gulp.dest('./dist'));
});

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

<head>
    {% block title %} {% endblock %}
</head>

index.nunjucks

{% extends "layout.nunjucks" %}

{% block title %}
    <title>{{ title }}</title>
{% endblock %}

data.json

{
    "title": "DEFAULT"
}

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

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

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

data.json

{
    "files": [{
        "title": "DEFAULT",
    }, {
        "title": "DEFAULT #2"
    }]
}

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

4

1 に答える 1