使用带增量和元数据使用的eco执行循环

时间:2014-03-31 15:50:12

标签: coffeescript docpad eco

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

1 个答案:

答案 0 :(得分:0)

我认为最好的问题是在询问后你找到了答案:) 所以我发现了一个&#34;解决方法&#34;至少我认为这是一种解决方法而不是解决方案。对我来说这是完美的:

  1. 我已添加&#34;类别&#34;到docpad.coffee文件

        templateData:
                site:
                categories: ['Tutorials','General']
    

    现在,我将始终使用应在每个降价文档的元信息中使用的类别更新此数组

  2. 我的循环现在看起来像这样....并且工作!!!

     <% 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 %>