【问题标题】:Assemble: How can I generate pages from json/yaml?组装:如何从 json/yaml 生成页面?
【发布时间】:2013-08-09 18:20:22
【问题描述】:

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

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

【问题讨论】:

    标签: javascript gruntjs assemble


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    相关资源
    最近更新 更多