如何使用JavaScript配置DocPad集合&引用;警告:自定义集合XYZ不是有效的集合实例;

如何使用JavaScript配置DocPad集合&引用;警告:自定义集合XYZ不是有效的集合实例;,javascript,configuration,docpad,Javascript,Configuration,Docpad,使用JavaScript时如何配置DocPad集合 在站点启动期间显示以下消息:“警告:自定义集合myCollection不是有效的集合实例” 配置: var docpadConfig = { collections: { // The collection causing problems. myCollection: function () { return []; } }, templateData: { site: {

使用JavaScript时如何配置DocPad集合

在站点启动期间显示以下消息:“警告:自定义集合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;
通过观看Benjamin Lupton的一些YouTube剪辑,我推断DocPad使用Backbone.js——我是否应该在配置中导入Backbone并使用Backbone.Collection实例?如果是,我该怎么做?我找到了很多咖啡脚本示例,但我似乎不知道如何将它们应用于普通JavaScript


任何冗长的JavaScript配置示例都将不胜感激,因为我相信我迟早会想对配置进行一些调整:)

使用以下方法使其正常工作:

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;
    }
  },

...