如果提供布局,有没有办法从json / yaml生成页面?我认为这是可能的,但在文档中找不到。
目前正在GitHub中跟踪此内容:http://webb.li/QjTX
答案 0 :(得分:2)
由于已实施options.pages
功能,您可以添加如下页面:
options: {
pages: {
"about": {
"data": {
"title": "About"
},
"content": "Content for {{title}}"
},
...
}
}
我们不支持自动加载json / yml文件,但您可以在Gruntfile中执行此操作并将对象添加到options.pages
那样......
module.exports = function(grunt) {
grunt.initConfig({
// package.json
pkg: grunt.file.readJSON('package.json'),
assemble: {
options: {
flatten: true,
layoutdir: 'src/layouts',
assets: 'dest/assets'
},
blog: {
options: {
engine: 'handlebars',
layout: 'post.hbs',
site: {
title: 'This is my Blog'
},
pages: grunt.file.readJSON('pages.json')
},
files: { 'dest/': ['src/index.hbs'] }
}
}
});
// Load npm plugins to provide necessary tasks.
grunt.loadNpmTasks('assemble');
// Default task.
grunt.registerTask('default', ['assemble']);
};
此示例使用post.hbs
文件作为pages.json
文件中定义的任何页面的布局。它还将为文件src数组中指定的index.hbs
构建一个页面。现在,文件dest / src是必需的,因此Assemble知道在哪里写文件,但我想我们会将它添加到选项或页面对象中,以便它可以在没有文件对象的情况下运行。