2013-09-21 43 views
1

如何在使用JavaScript时配置DocPad集合?如何使用JavaScript配置DocPad集合? “警告:自定义集合XYZ不是有效的集合实例”

网站启动过程中显示以下消息:“警告:自定义集合MyCollection的是不是一个有效的集合实例”

配置:

var docpadConfig = { 
    collections: { 
    // The collection causing problems. 
    myCollection: function() { 
     return []; 
    } 
    }, 

    templateData: { 
    site: { 
     url: "http://site-url.com", 
     oldUrls: [], 
     title: "Site title", 
     description: "Site description", 
     keywords: "DocPad", 
     styles: ["/vendor/normalize.css", "/vendor/h5bp.css", "/styles/style.css"], 
     scripts: ["/vendor/log.js", "/vendor/modernizr.js", "/scripts/script.js"] 
    }, 

    getPreparedTitle: function() { 
     if (this.document.title) { 
     return this.document.title + " | " + this.site.title; 
     } else { 
     return this.site.title; 
     } 
    }, 

    getPreparedDescription: function() { 
     return this.document.description || this.site.description; 
    }, 

    getPreparedKeywords: function() { 
     return this.site.keywords.concat(this.document.keywords || []).join(", "); 
    } 
    } 
}; 

module.exports = docpadConfig; 

从看本杰明普顿我的一些YouTube视频收集DocPad使用Backbone.js - 我应该以某种方式导入Backbone并在配置中使用Backbone.Collection实例吗?如果是的话,我该怎么做?我发现了很多Coffee脚本示例,但我似乎无法弄清楚如何将它们应用于纯JavaScript。

任何冗长的JavaScript配置的例子将不胜感激,因为我敢肯定,我会想捏捏配置一些早晚:)

回答

3

得到它的工作使用下列内容:

var docpadConfig = { 
    collections: { 
    journalEntries: function() { 
     var documents = this.getCollection("documents"); 
     var sortByDescendingDate = [{ date: -1 }]; 
     // I've added "type" to the meta section of some documents. 
     var typeEqualsJournal = { type: { $eq: "journal" } }; 
     var journals = documents.findAllLive(typeEqualsJournal, sortByDescendingDate); 
     journals.on("add", function (model) { 
     model.setMetaDefaults({ layout: "journal" }); 
     }); 
     return journals; 
    } 
    }, 

... 
相关问题