为页面和帖子生成集合

时间:2014-09-10 06:04:55

标签: gruntjs assemble

目前我无法使用汇编生成两个不同的页面集合。 一方面,我想生成我的页面,这些页面显示在主导航中 - 另一方面,我想生成我的博客帖子,包含类别和标签 - 我该如何解决这个问题?

提前致谢。

我的grunt配置如下所示

        assemble: {
        options: {
            sitename: '<%= site.variables.sitename %>',
            plugins: ['permalinks'],
            assets: '<%= site.paths.src %>/assets',
            partials: ['<%= site.paths.src %>/partials/*.hbs'],
            helpers: ['<%= site.paths.src %>/helpers/helper-*.js'],
            layout: 'default.hbs',
            layoutdir: '<%= site.paths.src %>/layouts',
            data: ['<%= site.paths.src %>/data/*.{json,yml}'],
            collections: [{
                name: 'post',
                sortby: 'posted',
                sortorder: 'descending'
            }]
        },
        posts: {
            files: [{
                cwd: '<%= site.paths.src %>/content/',
                dest: '<%= site.paths.dist %>',
                expand: true,
                src: ['**/*.{md,hbs}', '!_pages/**/*.{md,hbs}']
            }, {
                cwd: '<%= site.paths.src %>/content/_pages/',
                dest: '<%= site.paths.dist %>',
                expand: true,
                src: '**/*.{md,hbs}'
            }]
        }
    },

1 个答案:

答案 0 :(得分:1)

在v0.4.x中,集合指定了要从通过的页面及其前端生成的集合类型。您必须在posts添加前端内容,例如:

---
posts:
 - true
posted: 10-SEP-2014
---

但是,集合排序不够智能,无法知道如何对日期属性进行排序。您可以将实际日期对象添加为posted,或者只是按照您想要的顺序添加。

然后,要使用posts集合,您可以在把手中执行{{#each this.posts}}。这将为您提供在前端定义posts的所有页面。在模板中可能还需要添加一些其他的东西,但我并没有想到它们。

如果您有回购我可以看看,可能更容易提供帮助。