Мучаю Nunjucks.
Есть задача сверстать страниц 20-30 и на двух языках (ru, eng).
Хочу получать данные из json с такой структурой:
source
---data
--- ---pages
--- --- ---ru
--- --- --- ---index.json
--- --- --- ---catalog.json
--- --- --- ---contact.json (ит.д.)
--- --- ---en
--- --- --- ---index.json
--- --- --- ---catalog.json
--- --- --- ---contact.json (ит.д.)
--- --- global-ru.json
--- --- global-en.json
Пока у меня получается получать данные только из одного файла json
Появилось несколько вопросов:
1. Как сделать так, чтобы нужная страница узнавала о своем json?
2. Пока имею представление как это решить в 2 отдельных gulp-таска. Их как-то можно хитро объединить в одну задачу? И имеет ли это смысл
Вот мой таск:
my gulp task
const gulp = require("gulp");
const data = require("gulp-data");
const nunjucksRender = require("gulp-nunjucks-render");
// HTML (Nunjacks)
const njkHTML = () => {
let versionNumber = Number(new Date().toISOString().replace(/\D+/g, ""));
return gulp.src("source/*.njk")
.pipe(plumber())
.pipe(data(function () {
return [require("./source/data/global-ru.json"),
require("./source/data/pages/ru/index.json")];
}))
/* с таким return вообще не получает данные */
/* работает только когда 1 файл */
.pipe(nunjucksRender({
manageEnv: (env) => {
env.opts.autoescape = false;
env.addGlobal(`template`, `source/layouts/default.njk`);
env.addGlobal(`versionNumber`, versionNumber);
}
}))
.pipe(gulp.dest("build"));
};
exports.njkHTML = njkHTML;
Если нужно что-то еще уточнить, скажите.