按修改日期而不是发布日期对 Jekyll 帖子进行排序?

2024-01-22

对于经常更新帖子的人来说,有必要根据帖子从新到旧进行排序最后修改日期而不是 Jekyll 默认按发布日期排序。

似乎没有简单的方法可以实现这一点。我已经阅读并测试了几乎所有的方法。

这是有效的(部分符合预期):

用过这个宝石https://github.com/gjtorikian/jekyll-last-modified-at https://github.com/gjtorikian/jekyll-last-modified-at但现在我必须手动输入last_modified_at在每个帖子的 front-matter 中,以便 Jekyll 使用此循环对帖子进行排序:

{% assign sorted_posts = site.posts | sort: "last_modified_at" | reverse %}
{% for post in sorted_posts %}
<!-- CODE HERE -->
{% endfor %}

问题是有last_modified_at在每个帖子中,因为每次我按 CTRL+S 保存帖子时,它都会阻止插件自动设置该值。

有什么办法可以自动化这个吗?


编辑:它只适用于开发,不知道为什么它不适用于生产。每当我部署网站时,它都会以相同的日期更新所有帖子。

我非常感谢 hooks 和 ofc 的这篇文章:https://stackoverflow.com/a/36769049 https://stackoverflow.com/a/36769049

Steps:

  • 在中创建了新文件_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 时,会发生 2 件事:a) 更新我所在位置的最后修改日期{{ post.last-modified-date | date_to_xmlschema }}b) 它bumps它位于索引页上我的帖子的顶部,因为它是按该变量排序的。

爱你们!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按修改日期而不是发布日期对 Jekyll 帖子进行排序? 的相关文章

随机推荐

  • 如何让 Metro(React Native 打包器)忽略某些目录

    Problem 我的项目有一个 providesModule naming collision当试图跑步时react native run ios从命令行 它与自动生成的目录冲突dist 它是由另一个 npm 包 esdoc 创建的 我希望
  • XPath 如何处理 XML 命名空间?

    XPath 如何处理 XML 命名空间 If I use IntuitResponse QueryResponse Bill Id 为了解析下面的 XML 文档 我返回了 0 个节点
  • glsl lowp 随机数生成(用于图形)的好算法是什么?

    我需要一个随机数生成器来创建一些图形静态 我不是在寻找噪声算法 我只是想要白噪声 我所需要的只是 glsl 中的随机数生成器 具体来说 随着时间的推移 我将使用它为每个片段创建随机亮度偏移 要求 生成 0 0 到 1 0 之间的数字 不关心
  • 使用 for 循环替换 pandas 列每行中的单元格值

    请帮助我理解我的错误 我正在尝试更改我的一列 csv文件 我有 csv文件如下 sku name code k1 aaa 886 k2 bbb 898 k3 ccc 342 k4 ddd 503 k5 eee 401 我想将 sku 列中的
  • TFS 无法识别添加的项目 VS2013 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在使用 VS2013 和 TFS Online 当我添加一个新项目时 源代码管理不会将其识别为添加的项目 但 csproj 会使用新文件
  • 检查定时器是否正在运行

    我一直在尝试用计时器重新填充游戏生活 但每当我离开视图并返回时 计时器就会重复并变得更快 我尝试用以下方法解决这个问题Timer isValid函数仅在无效时运行计时器 因此它永远不会重复 但它似乎无法检查计时器是否在invalid在 if
  • nginx 响应 404 Not Found(单页应用程序)

    我有一个带有常规浏览器路由器 没有哈希 的单页应用程序 每当有人浏览页面并点击刷新按钮时 nginx 都会尝试在此路径上查找文件 所以如果有人在mypage com aboutnginx 寻找about文件并以 404 Not Found
  • R 矩阵到 rownames colnames 值

    我有一个矩阵 A 我想将其转换为以下形式的 data frame rownames colnames values Using unlist A 有帮助 但没有给我行名 感谢您的帮助 您可以使用 reshape2 package load
  • Android - 用 @IntDef 替换参数化枚举

    如何避免参数化枚举与 IntDef 我想保留一些与每个枚举 类型关联的静态详细信息 例如关联的 URl 关联的可绘制对象等 TYPE ONE R string res Urls URL1 TYPE TWO R string res Urls
  • 如何防止Xcode每次都重建项目

    我有一个 Mac OS X 应用程序 由一个主要目标和一个依赖框架组成 自从在我的 Mac OS X 应用程序上启用代码签名后 我注意到每次运行 Xcode 时都会重建主要目标 即使我没有触及任何代码行 这是一个问题 因为依赖框架需要知道主
  • 如何更改多处理模块使用的序列化方法?

    如何更改Python使用的序列化方法multiprocessing图书馆 特别是 默认的序列化方法使用pickle具有该版本 Python 的默认 pickle 协议版本的库 默认的pickle协议在Python 2 7中是版本2 在Pyt
  • 为什么是24位寄存器?

    在我的工作中 我处理不同的微控制器 微处理器和 DSP 处理器 其中许多都有 24 位寄存器和计数器 我知道如何使用它们 这不是我的问题 我的问题是为什么他们有 24 位寄存器 为什么不把它做成32位的呢 据我所知 这不是大小的问题 因为寄
  • 根据另一个参考数组从一个数组中选择密切匹配

    我有一个数组A和一个参考数组B 尺寸为A至少和B e g A 2 100 300 793 1300 1500 1810 2400 B 4 305 789 1234 1890 B实际上是指定时间信号中峰值的位置 并且A包含稍后时间的峰值位置
  • 序列化代码示例中的无限循环

    看看下面的代码here https web archive org web 20151025040111 http blogs msdn com 80 b sowmy archive 2006 03 26 561188 aspx 它是关于在
  • 如何使用 Jest 运行单个测试?

    我在文件 fix order test js 中有一个 适用于嵌套子项 的测试 运行以下命令会运行文件中的所有测试 jest fix order test 如何只运行一个测试 下面的代码不起作用 因为它搜索指定的正则表达式的文件 jest
  • Windows:检测右 alt 是否在当前布局中生成 Ctrl+Alt (AltGr)

    Windows 中的某些键盘布局 例如 US QWERTY 将右 Alt 视为常规 Alt 键 而其他键盘布局 例如 US International 将其视为 AltGr 并在按下时同时生成 Ctrl 和 Alt 键 Microsoft
  • 通过身份验证从 https 下载文件

    我有一个 Python 2 6 脚本 可以从 Web 服务器下载文件 我希望这个脚本传递用户名和密码 用于在获取文件之前进行身份验证 并且我将它们作为 url 的一部分传递 如下所示 import urllib2 response urll
  • android 中如何导航到另一个页面?

    我是安卓新手 请告诉我如何在 android 中导航到新页面 提前致谢 编辑 如何从现有活动开始新活动 在 Android 中 导航到另一个页面意味着您必须启动另一个 Activity 要开始新活动 请使用此 Intent intent n
  • 使用 postgres 表序列而不是共享 hibernate_sequence

    当我对表执行任何操作时 它总是显示错误 Hibernate select nextval hibernate sequence 2019 07 20 16 15 44 877 WARN 58376 nio 9000 exec 1 o h e
  • 按修改日期而不是发布日期对 Jekyll 帖子进行排序?

    对于经常更新帖子的人来说 有必要根据帖子从新到旧进行排序最后修改日期而不是 Jekyll 默认按发布日期排序 似乎没有简单的方法可以实现这一点 我已经阅读并测试了几乎所有的方法 这是有效的 部分符合预期 用过这个宝石https github