如何为DocPad设置日期URL插件?

时间:2015-02-20 11:59:26

标签: docpad

我最近从Octopress转换为Docpad,并且感到非常高兴。我喜欢一切,但有一件事困扰着我。目前,我网站上的所有路径都是直接根据文件名构建的,例如: www.site.com/posts/yyyy-mm-dd-title/。我想得到的是www.site.com/posts/yyyy/title。我找到了Date URLs plugin,但无法理解如何设置它。我尝试将相关部分插入docpad.coffee中,如下所示:

docpadConfig =

  plugins:
    dateurls:
      cleanurl: true
      trailingSlashes: true
      collectionName: 'posts'
      dateFormat: '/YYYY'

  templateData:
    site:

但似乎没有任何改变。该集合定义如下:

posts: ->
  @getCollection("html").findAllLive({relativeOutDirPath:'blog'},[date:-1]).on "add", (model) ->
    model.setMetaDefaults({layout:"post"})

-
编辑(回应Lukasz Gornicki)

博客文件夹中的元数据样本:

---
title: "Les Sapeurs"
date: 2014-09-25 07:39
comments: false
language: english
tags: video
keywords: anton zujev, antzoo, zujev, sapeurs, style, congo
description: Les Sapeurs are fashionistas from Congo, whose style is a political and social outcry.
---

演员文件夹中的元数据样本:

---
title: "Utan 7"
date: 2015-02-27 06:52
podfeed: utan
comments: true
---

之前我没有尝试过调试模式。现在我做了,但我没有看到日志中有什么特别之处。这是log file

1 个答案:

答案 0 :(得分:1)

我已在我的博客上安装了该插件以进行检查。我认为文档中存在一个错误,或者只是误导了晚餐。文档没有明确说明url是针对具有date配置的dateFormat元数据和没有日期的文件basename构建的。我复制了您的配置,在我的博客2015-02-16-test-test.html.md上使用元数据date: 2014-09-25 9:49再次使用它。

结果网址:http://localhost:9778/2014/test-test/

所以这个插件有效。你认为docpad没有为插件选择任何配置吗?如果您使用docpad.coffee配置docpad,我建议您验证该文件,如果它是根据coffeescript规则创建的,并且您有正确的缩进。前段时间我遇到的情况是我的配置文件增长了很多,并且由于缩进,部分配置没有被选中。

或者只是提供对项目的访问权限,这样我就能看到并告诉你出了什么问题。

检查项目后回答更多详细信息: 文件名可以有一个日期。该插件使用正则表达式从文件名中删除字符串 - basename。

在本地,我已经将你的钩子注释掉了renderBefore事件,安装了插件,添加了你的配置,如果它涉及网址,所有工作都按预期进行。所以我得到了一个像/2014/movie-quotes/这样的网址 另一方面,它在服务器启动时起作用,但当我查看out目录并尝试生成静态内容时,看起来插件不起作用。这是说你的插件不起作用的意思吗?