Я использую 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 это было сделано так (часть _includes nav.html из https://github.com/devo-ps/carte):
{% 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