我希望博文的路径使用花哨的日期格式,例如/ blog / 2013/09/17所以我旧的octopress博客的链接没有被破坏。
在每个降价页面的YAML前端内容中,我添加了日期。
---
date: 2013-09-13
---
所以在Gruntfile.js中我想做这样的事情:
dest: './blog/<%= date.getFullYear() %>/<%= date.getMonth() %>/<%= date.getDate() %>'
虽然无法找到从YFM获取该日期属性的方法。这是可能的,这是实现我想要的正确方法吗?
答案 0 :(得分:1)
编辑:由于此答案最初发布,因此发布了永久链接插件,这使得这非常简单:https://github.com/assemble/assemble-contrib-permalinks
我认为更好的方法是在http://github.com/assemble/assemble/issues创建一个功能请求,但是,如果您希望在gruntfile中找到一种在lodash模板中使用自定义逻辑的方法,那么我的建议是创建mixins然后可以在您的模板中使用。
要添加mixins,只需在initConfig
对象之外执行此类操作(还有其他方法,但这是最简单的方法):
module.exports = function (grunt) {
grunt.util._.mixin({
year: function(foo) {
return date.getFullYear(foo);
},
month: function(foo) {
return date.getMonth(foo);
},
day: function(foo) {
return date.getDay(foo);
}
});
grunt.initConfig({
foo: {
src: 'path/to/my/files/**`
// Now we can use the mixins like this:
dest: <%= _.year() %>/<%= _.month() %>/<%= _.day() %>'
});
grunt.registerTask(...);
};
使用此方法的挑战是从src
文件的YAML前端获取上下文,然后返回要在dest
路径中使用的日期。或者,这不应该难以实现作为组装中的本机特征,我认为其他人也将从中受益。