const html = (lang) => {
return () => {
return gulp.src("source/*.njk")
.pipe(rename({suffix: lang}))
.pipe(gulp.dest("build"));
};
}
exports.html = html;
Starting '<anonymous>'...
// HTML (Nunjacks)
let getJsonData = function (page) {
const commonData = JSON.parse(fs.readFileSync("./source/data/global-ru.json"));
let filename = path.basename(page.path);
let filenameWithoutExt = filename.slice(0, filename.lastIndexOf(`.`));
let fileJSON = "./source/data/pages/ru/" + filenameWithoutExt + '.json';
let pageData;
//Проверим существует ли такой файл (могут быть страницы без json или страницы только на одном языке)
fs.stat(fileJSON, function (err, stats) {
if (err) {
console.log("Файл не найден: " + fileJSON);
} else {
pageData = JSON.parse(fs.readFileSync(fileJSON));
}
});
return {
...commonData,
...pageData,
}
};
const njkHTML = () => {
let versionNumber = Number(new Date().toISOString().replace(/\D+/g, ""));
return gulp.src("source/*.njk")
.pipe(plumber())
.pipe(data(getJsonData))
//.pipe(swig())
.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;
{% extends template %}
<h1>{{ h1 | safe}}</h1>
<h2 style="background: #eee">0{{ page.testtext | safe}}</h2>
<h2 style="background: #eee">1{{ testtext | safe}}</h2>
{% set page = page | getJsonData %}
Error: filter not found: getJsonData
в source\index.njk (страница)const configSVG = {
mode: {
stack: true // Create a «stack» sprite
}
};
};
gulp.task("sprite", function () {
return gulp.src(["source/img/svg-src/*.svg"])
.pipe(svgSprite(
configSVG
))
.pipe(rename("sprite.svg"))
.pipe(gulp.dest("source/img"));
});
Думаю, что другим новичкам будет удобнее сразу видеть ответы с вариантами, а не рыться в комментариях.