从subdir获取所有页面,实际上是dir

时间:2014-06-12 11:58:31

标签: docpad

我的docpad有问题。我想从子目录中获取所有页面。

我找到了这篇文章:

How to get collections from sub-folder in docpad?

docpad subdirectory rendered into general directory

但它对我不起作用。

我的树状结构:

  • 文档
    • 地方
      • PLACE1
        • 第1页
      • place2
        • 第2页
      • 等...

我的代码 - 获取所有页面(来自place1和place2)

<ul class="list-group"> 
<% for add in @getFilesAtPath("places").findAll().toJSON(): %>
    <li class="list-group-item">
        <a href="<%= add.url %>">
            <%= add.title %>
        </a>
    </li>
<% end %>
</ul>

我的代码 - 不从places / place1获取页面 - 为空

<ul class="list-group"> 
<% for add in @getFilesAtPath("places/place1").findAll().toJSON(): %>
    <li class="list-group-item">
        <a href="<%= add.url %>">
            <%= add.title %>
        </a>
    </li>
<% end %>
</ul>

我的目标是,当我在place1 / home时,我想显示实际dir(place1)的所有页面。当我在place2 / home - 显示来自place2的所有页面。

怎么做?

1 个答案:

答案 0 :(得分:0)

正如你引用的一个问题How to get collections from sub-folder in docpad中的一个答案所指出的,路径是系统“依赖的”。

我在Windows上运行Docpad并测试以下内容并且有效。

<ul class="list-group"> 
  <% for add in @getFilesAtPath("places\\place1").findAll().toJSON(): %>
    <li class="list-group-item">
      <a href="<%= add.url %>">
        <%= add.title %>
      </a>
    </li>
  <% end %>
</ul>

为了使解决方案系统不可知,你可以......

添加一个规范化路径分隔符的帮助程序。

normalizePathSeparator: (unixPath) -> unixPath.replace('/', path.sep)

使用:

<ul class="list-group"> 
  <% for add in @getFilesAtPath(@normalizePathSeparator("places/place1")).findAll().toJSON(): %>
    <li class="list-group-item">
      <a href="<%= add.url %>">
        <%= add.title %>
      </a>
    </li>
  <% end %>
</ul>

PS:您需要在path文件中要求docpad.coffee模块。