是否可以将网站导航添加到部分文件中?
我喜欢在文档中保持清洁,并且非常喜欢分离导航,但是当我将导航添加到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])
答案 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