汇编:如何从json / yaml生成页面?

时间:2013-08-09 18:20:23

标签: javascript gruntjs assemble

如果提供布局,有没有办法从json / yaml生成页面?我认为这是可能的,但在文档中找不到。

目前正在GitHub中跟踪此内容:http://webb.li/QjTX

1 个答案:

答案 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知道在哪里写文件,但我想我们会将它添加到选项或页面对象中,以便它可以在没有文件对象的情况下运行。