Добавление навигации к партиалу в Docpad

Можно ли добавить навигацию по сайту в частичный файл?

Мне нравится поддерживать чистоту в моих документах, и я действительно предпочитаю отделять навигацию, но у меня возникают проблемы в Docpad, когда я добавляю навигацию в файл Partial.

Я использую Jade вместо eco. Когда я помещаю навигацию в свой файл default.html.md.jade, она работает отлично.

Когда я помещаю код в partials/nav.html.jade, я получаю эту ошибку: предупреждение: что-то пошло не так при рендеринге: html5-boilerplate.docpad/src/partials/nav.html.jade

И это отображается в скомпилированном HTML:

<header>TypeError: Object #<Object> has no method 'getCollection'</header>

Это мой навигационный код:

nav
    ul
        each doc in getCollection('pages').toJSON()
            - clazz = (document.url === doc.url) ? 'active' : null
            li(class=clazz)
                a(href=doc.url, title=doc.title)= doc.title

И вот как я настраиваю свои коллекции внутри docpad.coffee

    collections:
            pages: (database) ->
                database.findAllLive({pageOrder: $exists: true}, [pageOrder:1,title:1])

            posts: (database) ->
                database.findAllLive({relativeOutDirPath:'posts'},[date:-1])

person Daimz    schedule 18.05.2013    source источник
comment
Где ваша getCollection функция?   -  person Ven    schedule 18.05.2013
comment
Насколько я знаю, это коллекции: страницы, как указано выше. Я смотрел на ссылку и на то, как они это сделали, и на основе этого . Но я действительно запутался... Я действительно хочу использовать Jade с docpad, но документации по ним так мало, что мне очень трудно понять   -  person Daimz    schedule 19.05.2013
comment
Где определяется getCollection? У вас есть collections, доступ к нему через collections.Abc   -  person Ven    schedule 19.05.2013


Ответы (1)


Обновление: плагин Partials версии 2.8.0+ теперь включает данные шаблона по умолчанию, так что теперь все должно работать без необходимости указывать вручную, чтобы включить данные шаблона. Дополнительную информацию см. на странице плагина Partial.

По умолчанию партиалы не имеют данных шаблона (из соображений скорости). Чтобы получить доступ к данным шаблона, вы можете передать его частичному вызову следующим образом (в эко, не знаком с jade): <%- @partial('the-partial-location', @) %>. Вы также можете сделать это более точно и эффективно, передавая только то, что вам нужно, вот так: <%- @partial('the-partial-location', {something:@something, somethingElse: @somethingElse) %>

Подробнее здесь

person balupton    schedule 19.05.2013