我正在使用docpad并在索引页面上,在导航窗格中我想获得按类别分组的链接列表。
类别在每个降价文档中的元信息中定义。例如category:"tutorials"
所以我有这个:
<% for docu in @getFilesAtPath("document-repository").toJSON(): %>
<li><h2><%=cat=docu.category%></h2></li>
<%for docu in @getFilesAtPath("document-repository",category:cat}).toJSON():%>
<li><a href="#<%=docu.url%>"><%=docu.title%></a></li>
<%end%>
<% end %>
但当然它很糟糕,因为它循环的次数与我拥有的文件数量相同。我只有一个类别,我希望它只在打印链接列表时循环一次。
使用jekyll,它就像这样(来自https://github.com/devo-ps/carte的_includes nav.html的一部分):
{% for category in site.categories %}
<li><h2>{{ category | first }}</h2>
<ul>
{% for posts in category %}
{% for post in posts %}
<li class='{{ post.type }}'><a href='#{{ post.url }}'>{{ post.title }}</a></li>
{% endfor %}
{% endfor %}
</ul>
</li>
{% endfor %}
他知道有多少类别。我不知道如何将它移植到docpad
答案 0 :(得分:0)
我认为最好的问题是在询问后你找到了答案:) 所以我发现了一个&#34;解决方法&#34;至少我认为这是一种解决方法而不是解决方案。对我来说这是完美的:
我已添加&#34;类别&#34;到docpad.coffee文件
templateData:
site:
categories: ['Tutorials','General']
现在,我将始终使用应在每个降价文档的元信息中使用的类别更新此数组
我的循环现在看起来像这样....并且工作!!!
<% for category in @site.categories : %>
<li><h2><%- category %></h2>
<ul>
<%for docu in @getFilesAtPath("document-repository",[{filename: -1}]).findAll({category:category}).toJSON():%>
<li><a href="#<%=docu.url%>"><%=docu.title%></a></li>
<% end %>
</ul>
</li>
<% end %>