注意:这篇文章上次更新于742天前,文章内容可能已经过时。
This article was last updated742 days ago, the content may be outdated.
前段时间写的一个基于 Cloudflare Workers 搭建 Vless 节点访问 ChatGPT 的文章部分内容失效了,节点还是可以正常翻墙,但是由于代码中的 ProxyIP 失效了,所以无法访问 ChatGPT 的网站了,其实是所有托管在 Cloudflare 的网站都访问不了了。这周末更新了一下那篇文章中的代码,算是短暂修复了。
这个问题不是本文要讨论的内容,但是它让我想到我需要对文章内容的时效性加个必要的“免责声明”。
其实文章过期提醒这个 Feature 在很多博客主题中都有,但是我使用的 hexo-theme-yun 已经进入了维护阶段。
所以我需要自己动手实现这个功能。
在这篇博客中,我将会介绍如何在 hexo-theme-yun 主题中添加文章过期提醒功能。
效果如下:

实现原理
实现原理本身很简单,就是在渲染文章的时候获取到文章的更新时间,然后根据这个时间判断文章是否需要过时提醒。
再加上现在有 AI 的加持,即使是我这种没学过前端的人也能在一天内实现这个功能。
其实,30 分钟就够了,但是我用了一天的时间。其中 80% 的时间用来调试 CSS,这东西真是太恶心了。
我对 yun 主题的架构不是很了解,不过在摸索了一番后,我觉得所有文章以及页面的渲染都会在 post-content.pug 中进行。
所以我把代码加在这个文件里,但请注意这可能不是最好的解法。
实现步骤
总体的设计参考了 butterfly 主题的文章过期提醒功能。
- 所以,首先在主题的配置文件中加入下面的配置。
1 | # 文章过期提醒 |
enable:是否启用文章过期提醒功能。days:文章过期提醒的天数。text_before:文章过期提醒的前缀。text_after:文章过期提醒的后缀。except_tags:不需要过期提醒的标签。
我的博客中没有使用分类功能,我觉得分类和标签的区别不大,两个都用的话会显得有些多余,所以我只使用了标签功能。
于是我就想到实际上不是所有的文章都需要加入过期提醒功能,所以我加入了 except_tags 这个配置项。
- 然后修改
post-content.pug为下面的代码。
1 | section.post-body(itemprop='articleBody') |
这段代码首先拿到了一些配置项,比如文章的标签是否在 except_tags 中,文章的更新时间,然后计算了文章更新时间和当前时间的差值。
然后根据这些值判断是否需要显示过期提醒。
- 最后,加入 CSS 样式。
我选择自己为这个功能写一个 CSS 文件,然后在主题的配置文件中引入这个 CSS 文件。
1 | .expire_notice { |
然后在主题的配置文件中引入这段 CSS 就 OK 了。
1 | # custom your assets in head |
至此,这个小功能就实现完成了。效果如开篇图所示。
还是前端好,所见即所得,自己学了什么就能立马写出来看到效果。
不像我现在,干了一年的 WLAN Driver,WLAN 也不懂,Driver 也不会。😅


