对于经常更新帖子的人,有必要根据上次修改日期将帖子从新旧排序,而不是按照发布日期对Jekyll的默认排序。
似乎没有简单的方法来实现这一目标。我已经阅读并测试了所有方法。
这是有效的(部分符合预期):
使用了这个gem https://github.com/gjtorikian/jekyll-last-modified-at,但是现在我必须在每个帖子的前面部分手动输入scripts: {
...
"test": "mocha $(find . -name '*.test.js')"
...
}
,以便Jekyll使用这个循环对帖子进行排序:
last_modified_at
问题是每个帖子中都有{% assign sorted_posts = site.posts | sort: "last_modified_at" | reverse %}
{% for post in sorted_posts %}
<!-- CODE HERE -->
{% endfor %}
,因为每当我点击CTRL + S保存帖子时,它就会停止插件自动设置该值。
有什么方法可以让我自动化吗?
答案 0 :(得分:1)
编辑:它只适用于开发,不确定为什么它也不适用于生产。每当我部署网站时,它都会以相同的日期更新所有帖子。
我非常感谢钩子和这篇文章:https://stackoverflow.com/a/36769049
步骤:
_plugins
hook-add-last-modified-date.rb
文件夹中创建了新文件
将此代码粘贴到其中并保存:
Jekyll::Hooks.register :posts, :pre_render do |post|
# get the current post last modified time
modification_time = File.mtime( post.path )
# inject modification_time in post's datas.
post.data['last-modified-date'] = modification_time
end
当我在帖子上点击CTRL + S时,现在发生了两件事:a)更新上次修改日期,无论我在哪里{{ post.last-modified-date | date_to_xmlschema }}
和b)它碰撞它到了索引页面上的帖子顶部,因为它按该变量排序。
爱你们!