2013-08-09 5 views

ответ

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.hbs, указанную в массиве src. Прямо сейчас файлы dest/src требуются, так что Assemble знает, где писать файлы, но я думаю, мы добавим это к параметрам или объекту страницы, чтобы его можно было запустить без объекта files.

+0

Обратите внимание, что это относится к [grunt-assemble] (https://github.com/assemble/grunt-assemble), плагин grunt для [собрать] (https://github.com/assemble/assemble), который теперь имеет совершенно другой API – jonschlinkert