2013-08-22 1 views
1

мои складки структуры являются чем-то вроде этого:Как получить коллекции из подпапки в docpad?

  • документы
    • санитаров
      • документы

Я хочу, чтобы получить коллекцию из документации, мой код это:

techs: -> 
     @getCollection("html").findAllLive({relativeOutDirPath: /techs/docs/},[{date: -1}]).on "add", (model) -> 
      model.setMetaDefaults({layout: "post"}) 

Это просто не сработает ... Может ли кто-нибудь сказать мне, что происходит?

ответ

1

Возможно, вы захотите использовать удобный помощник, предоставленный Docpad: getFilesAtPath.

+0

Спасибо, что ответили на мой вопрос! На самом деле я не совсем понимаю, как использовать этот помощник в этом случае ... И я просто выясню, что если установить 'relativeOutDirPath' в' docs', то он работает отлично. Похоже, он не может обработать 'techs/docs'? – chengmu

0

Может быть, вы должны прочитать файл «docpad.coffee»

Существует раздел «коллекция», вы можете установить коллекцию под названием «HTML», и выбрать все файлы в (БД).

+0

Вы должны улучшить этот ответ, указав цитаты и примеры. – Mrchief

3

/techs/docs/ в {relativeOutDirPath: /techs/docs/} анализируется как регулярное выражение, а не строка. Оберните его в кавычки, чтобы вместо этого вы использовали {relativeOutDirPath: "/techs/docs/"}. Вы можете или не нуждаетесь в начальной косой чертой, я не могу вспомнить.

0

У меня были проблемы в зависимости от того, в какой системе я запускаю node.js и docpad (т.е. Windows) с условными обозначениями путей к файлу. Поэтому я прибегаю к следующему, чтобы убедиться, что я не имея какой-либо из тех рода проблем:

@getCollection("html").findAllLive({relativeOutDirPath:path.join('techs','docs')},[date:-1]) 

Обратите внимание на «path.join» укусил

0

Так же, как, например, все HTML документы путь начинается с "постом"

@getCollection("html").findAllLive({relativeOutDirPath: {$beginsWith: 'post'}})