2

我一直在测试 docpad 作为 CMS,我想知道如何在我的主页上显示来自博客的最新 5 篇文章。

我一直在寻找例子,但到目前为止还没有运气。

我需要一些插件来实现该功能吗?目前我使用以下模块:

"docpad-plugin-marked": "~2.1.1",
"docpad-plugin-stylus": "~2.3.0",
"docpad-plugin-coffeekup": "~2.1.5",
"docpad-plugin-cleanurls": "~2.4.3",
"docpad-plugin-coffeescript": "~2.2.1",
"docpad": "~6.32.0",
"docpad-plugin-minicms": "~2.1.1"
4

2 回答 2

5

在我的收藏下的 docpad.coffee 文件中

posts: ->   
   @getCollection('documents').findAllLive({relativeOutDirPath:path.join('blog','post')},[date:-1])

我想这里的关键是按日期属性(“日期:-1”)对集合进行排序

然后在您的“eco”文件中,您可以使用:@getCollection('posts') 访问该集合。当然,这将为您提供所有帖子 - 因此,如果您只想要最后 n 个帖子,那么您只需获取集合中的前 n 个文档。

 <% for document in  @getCollection('posts').toJSON().slice(0,5): %>
<li>
  <a href="<%=document.url%>" title="<%=document.title%>"><%=document.title%>
  </a>
</li>
<% end %>
于 2013-05-16T13:01:27.880 回答
1

你不需要插件,你可以使用内置的@getFilesAtPath助手

例如,我将我的博客文章存储在src/documents/blog我正在使用的主页中

<% for post in @getFilesAtPath("blog").findAll().toJSON() %>
  <a href="<%= post.url %>">
    <%= post.title %>
  </a>
<% end %>

我没有正确阅读 docpad 中的集合的文档,所以我使用了一个快速破解Array#slice将我的博客文章限制为3

<% for post in @getFilesAtPath("blog").findAll().toJSON().slice(0, 3) %>
于 2013-05-15T00:58:22.170 回答