【问题标题】:How to insert the last updated time-stamp in Jekyll page at build time?如何在构建时在 Jekyll 页面中插入最后更新的时间戳?
【发布时间】:2016-04-21 01:37:03
【问题描述】:

我想在 Jekyll 构建时为每个帖子自动插入最后更新的时间戳(不是页面的 date 变量),如何实现?我想我必须声明一个变量,但我不确定如何将值分配给该变量。

比如我更新了一篇旧帖子,除了显示发帖日期,我还想显示最后更新日期。

我尝试过{{Time.now}},但似乎不起作用。

【问题讨论】:

  • 您可以使用 {{ site.time }}。
  • 谢谢! @DavidJacquel 但我真正想要的是帖子上次更新时间现在是整个网站更新时间。
  • 我就是这么想的。既然我确定了,我会给你一个答案。

标签: jekyll


【解决方案1】:

具有modified_time 的唯一集合是site.static_files。在我们的例子中不是很有用。

在 Jekyll 网站上获取帖子的 last-modified-date 的一种方法是使用挂钩 (documentation)。

_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

现在可以在您的帖子中使用:{{ page.last-modified-date }}。 您可以使用{{ page.last-modified-date | date: '%B %d, %Y' }} 之类的日期过滤器来格式化此日期。请参阅Alan W. Smith excellent article on date Jekill Liquid date formating topic

重要通知:钩子在 Github 页面上不起作用。

【讨论】:

  • 我会尝试插件并感谢提醒(我会在推送到gh-pages之前构建页面)。
  • 一种不需要钩子的方法是将所有修改日期保存到 ./_data/mtimes.json,然后从 Jekyll 中读取该文件。
  • 上述方法是否也适用于页面而不是帖子?
  • @O0123 是的,只需在第一行将:posts 更改为:pages。然后,您将在任何页面上显示 page.last-modified-date
猜你喜欢
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 1970-01-01
  • 1970-01-01
  • 2011-07-22
  • 2018-05-20
相关资源
最近更新 更多