3

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

目前正在 GitHub 中进行跟踪:http ://webb.li/QjTX

4

1 回答 1

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。它还将为index.hbsfiles src 数组中指定的页面构建一个页面。现在,文件 dest/src 是必需的,因此 Assemble 知道在哪里写入文件,但我认为我们会将其添加到选项或页面对象中,这样它就可以在没有文件对象的情况下运行。

于 2013-08-09T18:41:29.970 回答