解决Hexo文章更新时间问题

问题描述:整理文件的时候,误把存放 Hexo 博客的目录删除了,因为是存储在远程 Git 仓库上的,所以又重新拉取了一遍。在创建新文章进行预览的时候,发现更新所有文章的更新日期都变成了今天

产生原因:Hexo 默认是以文件的「修改时间」作为文章的更新时间,由于所有博客文章是从 Git 仓库重新拉取回来的,所有文件的创建时间和修改时间都是这个重新拉取的时间,所以文章的更新时间相应的就不对了。

解决步骤如下:

1. 修改 /scaffolds/post.md 文件

1
2
3
4
5
6
---
title: {{ title }}
date: {{ date }}
updated: {{ date }}
tags:
---

这样每次新建文章后,会自动添加 updated 标签,并且与 date 的创建时间一致。

如果是历史文章,则需要手动给每篇文章增加这个更新时间,或者自己写个脚本批量处理下。

2. 主题相关配置

本文是以 NexT 主题为例,相关设置保持默认就可以,类似如下:

1
2
3
4
5
6
7
8
9
10
11
# Post meta display settings
post_meta:
item_text: true
created_at: true
# 主要是这一部分
updated_at:
# 显示更新时间
enable: true
# 与创建时间不同时才显示
another_day: true
categories: true

其它主题应该也不需要什么特殊设置,如果没有效果或产生异常,则需要查询一下对应主题的相关配置说明。

3. ok

当对文章进行修改的时候,更新这个 updated 的值就可以了。

如果不需要时间,就把文章的创建时间复制过来,把日期改为当天就可以了。

如果需要准确的时间,则可以查找快捷插入日期时间的方法,因为每个人使用的工具不同,这里只以 vscode 为例说明:

  • 方法一:使用快捷键,macOS: ⌘ + ⇧ + I;Windows 或 Linux: Ctrl + Shift + I
  • 方法二:通过按 F1 打开命令面板,并键入 Insert DateTime,然后按回车键即可。如果想指定格式,则输入 Insert Formatted DateTime,然后更改成你需要的格式。