我正在使用 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