如何为 DocPad 设置日期 URL 插件?
How do I setup the Date URLs Plugin for 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.
我已经在我的博客上安装了这个插件来查看。我认为文档中存在错误,或者它只是误导性的。文档没有明确说明 url 是针对 date
元数据构建的,具有 dateFormat
配置和没有日期的文件基名。我用 post 2015-02-16-test-test.html.md
复制了你的配置,在我的博客中再次使用它,元数据:date: 2014-09-25 9:49
.
结果url:http://localhost:9778/2014/test-test/
所以插件有效。你认为 docpad 没有为插件获取任何配置吗?如果您使用 docpad.coffee
配置 docpad,我建议您验证该文件,如果它是根据 coffeescript 规则创建的并且您有正确的缩进。前段时间我遇到一个情况,我的配置文件变大了,有些配置因为缩进没有被拾取。
或者只是授予对项目的访问权限,这样我就可以看到并告诉你哪里出了问题。
检查项目后答案的更多细节:
文件名可以有日期。该插件使用正则表达式从文件名中取出字符串 - basename.
我在本地注释掉了你对 renderBefore 事件的挂钩,安装了插件,添加了你的配置,如果涉及到 urls,一切都按预期工作。所以我得到一个 URL 像 /2014/movie-quotes/
另一方面,它在服务器启动时工作,但当我查看输出目录并尝试生成静态内容时,插件似乎不起作用。这就是你所说的插件不起作用的意思吗?
我最近从 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.
我已经在我的博客上安装了这个插件来查看。我认为文档中存在错误,或者它只是误导性的。文档没有明确说明 url 是针对 date
元数据构建的,具有 dateFormat
配置和没有日期的文件基名。我用 post 2015-02-16-test-test.html.md
复制了你的配置,在我的博客中再次使用它,元数据:date: 2014-09-25 9:49
.
结果url:http://localhost:9778/2014/test-test/
所以插件有效。你认为 docpad 没有为插件获取任何配置吗?如果您使用 docpad.coffee
配置 docpad,我建议您验证该文件,如果它是根据 coffeescript 规则创建的并且您有正确的缩进。前段时间我遇到一个情况,我的配置文件变大了,有些配置因为缩进没有被拾取。
或者只是授予对项目的访问权限,这样我就可以看到并告诉你哪里出了问题。
检查项目后答案的更多细节: 文件名可以有日期。该插件使用正则表达式从文件名中取出字符串 - basename.
我在本地注释掉了你对 renderBefore 事件的挂钩,安装了插件,添加了你的配置,如果涉及到 urls,一切都按预期工作。所以我得到一个 URL 像 /2014/movie-quotes/
另一方面,它在服务器启动时工作,但当我查看输出目录并尝试生成静态内容时,插件似乎不起作用。这就是你所说的插件不起作用的意思吗?