在Docpad中向导航部分添加导航

时间:2013-05-18 16:54:04

标签: pug partial docpad

是否可以将网站导航添加到部分文件中?

我喜欢在文档中保持清洁,并且非常喜欢分离导航,但是当我将导航添加到Partial文件时,我在Docpad中遇到了问题。

我使用的是玉而不是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])

1 个答案:

答案 0 :(得分:3)

更新:Partials Plugin v2.8.0 +现在默认包含模板数据,所以现在应该可以正常工作而无需手动指定包含模板数据。 See the Partial Plugin page for more info.

默认情况下,partials没有任何模板数据(出于速度原因)。要访问模板数据,您可以将其传递给部分调用(在eco中,不熟悉jade):<%- @partial('the-partial-location', @) %>。你也可以通过只传递你需要的东西来更精确和更高效地完成它:<%- @partial('the-partial-location', {something:@something, somethingElse: @somethingElse) %>

更多信息here