文章

Jekyll 跳过未来日期的文章问题及解决方法

Jekyll 跳过未来日期的文章问题及解决方法

Jekyll 跳过未来日期的文章问题及解决方法

问题描述

在运行 Jekyll 服务器时,出现如下提示:

1
Skipping: _posts/2025-03-03-开发笔记:解决 Flutter 项目运行中的 Java 版本问题.md has a future date

Jekyll 认为该文章的日期在未来,因此默认跳过,不会在博客中显示。

问题原因

  1. 文章日期错误
    • 文件名中的日期 2025-03-03 可能比当前系统时间靠后。
    • front matter(YAML 头部)中的 date 可能设置为未来时间,例如:
      1
      2
      3
      4
      5
      
      ---
      title: "开发笔记:解决 Flutter 项目运行中的 Java 版本问题"
      date: 2025-03-03 12:00:00
      layout: post
      ---
      

      注意:如果时间是 12:00:00,Jekyll 可能误认为是 中午 12 点(UTC),而实际上你需要 00:00:00 表示当天凌晨。

  2. Jekyll 默认跳过未来文章
    • Jekyll 默认不会渲染未来日期的文章,除非手动配置。

解决方案

方法 1:允许显示未来文章

在运行 Jekyll 服务器时,加上 --future 选项:

1
bundle exec jekyll s --future

这样,Jekyll 会显示所有文章,包括未来日期的。

方法 2:修改文章的日期

如果你希望文章立即发布,可以修改文件名和 front matter 的日期:

  • 文件名
    _posts/2025-03-03-开发笔记.md 改为当前日期,例如:
    1
    
    _posts/2024-03-03-开发笔记.md
    
  • YAML 头部 (front matter)
    1
    2
    3
    4
    5
    
    ---
    title: "开发笔记:解决 Flutter 项目运行中的 Java 版本问题"
    date: 2024-03-03 00:00:00
    layout: post
    ---
    

    确保 date 设置为当天凌晨 00:00:00,避免 Jekyll 误认为是未来时间。

方法 3:修改 _config.yml(全局生效)

如果你希望 Jekyll 始终显示未来的文章,可以修改 _config.yml

1
future: true

然后重新运行:

1
bundle exec jekyll s

总结

| 方法 | 适用情况 | 命令 / 操作 | | —————————— | ————————– | ———————————— | | 允许未来文章(推荐) | 临时查看未来文章 | bundle exec jekyll s --future | | 修改文章日期 | 文章本应立即发布 | 更改 date 和文件名为当前日期 | | 修改 _config.yml(全局) | 让 Jekyll 始终显示未来文章 | 在 _config.yml 添加 future: true |

这样 Jekyll 就不会跳过这篇文章了!🚀

本文由作者按照 CC BY 4.0 进行授权