我一直在测试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"
答案 0 :(得分:5)
在我收藏的馆藏下的docpad.coffee文件中
posts: ->
@getCollection('documents').findAllLive({relativeOutDirPath:path.join('blog','post')},[date:-1])
我想这里的关键是按日期属性排序集合(“date:-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 %>
答案 1 :(得分:1)
您不需要插件,可以使用内置的@getFilesAtPath
帮助程序
例如,我将我的博客文章存储在src/documents/blog
和我的主页上,我正在使用
<% for post in @getFilesAtPath("blog").findAll().toJSON() %>
<a href="<%= post.url %>">
<%= post.title %>
</a>
<% end %>
我没有正确阅读docpad中的文档,因此我使用Array#slice
快速 hack 将我的博文限制为 3
<% for post in @getFilesAtPath("blog").findAll().toJSON().slice(0, 3) %>