이것은 나를 위해 일했지만 내 경우에는 내가 필요한 모든 것을하지 못했습니다. 다음과 같은 내 gulpfile으로 :
//Compile Nunjucks Templates
gulp.task('nunjucks', function() {
nunjucksRender.nunjucks.configure(['templates/'])
return gulp.src('src/pages/*.html')
.pipe(nunjucksRender(nunjucksOptions))
.pipe(gulp.dest(output.html))
.pipe(reload({stream:true}));
});
내 JSON 만 페이지에 데이터를 제공하지 파셜 내가 포함하고있어 매크로에 삽입하려면 여기를 꿀꺽 데이터를 사용하여.
{
"loggedin":false
}
및
{% if data.loggedin %}
<a href="#" class="nav__item nav__item--login">
<div class="nav__item--login_img">
<img src="http://pipsum.com/200x200.jpg" alt="" />
</div>
<p class="nav__item--login_user">JohnDoe345</p>
</a>
{% else %}
<a href="#login" data-lity class="nav__item nav__item--login">
<div class="nav__item--login_cta">Sign In</div>
</a>
{% endif %}
를 만들려면 : 내 경우에는, 내가 예를 들어, 에뮬레이트 할 수있는 중앙 JSON 설정 파일을 사용하고, 내 프론트 엔드는 사용자가 로그인 할 때처럼 무엇을 보일 것 모든 템플릿/페이지/부분/매크로/등에서 액세스 할 수있는 파일 나는 다음의 manageEnv
설정을 꿀꺽 - nunjucks가 렌더링 사용하고 있습니다 :
nunjucksOptions = {
path: ['src/pages/', 'src/templates/'],
watch:true,
manageEnv:function(env){
var data = JSON.parse(fs.readFileSync('states.json'));
env.addGlobal('data',data);
}
}
감사 알렉스 구청에 tip 동안 캐시되는 내 JSON을 유지하기위한 FS를 사용하여.