chengmu
chengmu

Reputation: 21

How to get collections from sub-folder in docpad?

my folds structure are something like this:

I want to get a collection from docs, my code is :

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

It just won't works... Could somebody tell me what's going on?

Upvotes: 1

Views: 1335

Answers (5)

qnub
qnub

Reputation: 171

Just as example, all html documents from path starts with "post"

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

Upvotes: 0

Steve Mc
Steve Mc

Reputation: 3441

I've had problems depending on what system I'm running node.js and docpad on (ie Windows) with file path conventions. So I resort to the following to make sure I'm not having any of those sort of problems:

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

Note the 'path.join' bit

Upvotes: 0

balupton
balupton

Reputation: 48680

The /techs/docs/ in {relativeOutDirPath: /techs/docs/} is parsed as a regular expression, rather than a string. Wrap it in quotes so you have {relativeOutDirPath: "/techs/docs/"} instead. You may or may not need the initial slash, I can't remember.

Upvotes: 3

drink
drink

Reputation: 1

Maybe you should read the file "docpad.coffee"

There is a section "collection", you can set collection named "html", and select all files in (database).

Upvotes: 0

Delapouite
Delapouite

Reputation: 10167

You may want to use the convenient helper provided by Docpad : getFilesAtPath.

Upvotes: 1

Related Questions