我目前对 gulp-handlebars 使用以下格式:
{{#> layouts/main title="my title" pagename="my_page_name"}}
我看到其他人使用以下格式:
---
layouts: main
title: my title
pagename: app-is-fixed
---
当我尝试第二种格式时,我的页面无法编译,或者它将标题作为文本添加到页面顶部而不是变量。
有人可以指导我如何为我的模板页面使用第二种格式吗?
我目前对 gulp-handlebars 使用以下格式:
{{#> layouts/main title="my title" pagename="my_page_name"}}
我看到其他人使用以下格式:
---
layouts: main
title: my title
pagename: app-is-fixed
---
当我尝试第二种格式时,我的页面无法编译,或者它将标题作为文本添加到页面顶部而不是变量。
有人可以指导我如何为我的模板页面使用第二种格式吗?
设法通过使用 gulp-assemble 解决它,他们对如何开始https://www.npmjs.com/package/gulp-assemble有很好的描述
如果有人感兴趣,这是使用的格式:
var gulp = require('gulp');
var rename = require('gulp-rename');
var assemble = require('assemble');
var helpers = require('handlebars-helpers');
var app = assemble();
var prettify = require('gulp-prettify');
var config = require('../config');
gulp.task('init', function(cb) {
app.helper('compare', helpers.comparison());
app.helper('markdown', require('helper-markdown'));
app.partials(config.paths.path_src + 'templates/includes/**/*.hbs');
app.layouts(config.paths.path_src + 'templates/layouts/**/*.hbs');
app.pages(config.paths.path_src + 'templates/content/**/*.hbs');
cb();
});
gulp.task('assemble', ['init'], function() {
return app.toStream('pages')
.pipe(app.renderFile())
.pipe(prettify({
indent_inner_html: false,
preserve_newlines: true,
end_with_newline: true,
extra_liners: ['head', 'body']
}))
.pipe(rename({
extname: '.html'
}))
.pipe(rename({dirname: ''}))
.pipe(app.dest('site'));
});
gulp.task('test', ['assemble']);
您的 hbs 页面将如下所示:
---
layout: default
title: Blank
heading: Blank
pagedescription: blank desc
---
{{#*inline "head-block"}}test-head{{/inline}}
{{#*inline "scripts-block"}}test-foot{{/inline}}
test file