配置文件

本文用 Dayjs 来处理日期。当然,完全可以用原生 Date,但我不想把时间浪费在处理日期上面。

我使用的是 butterfly 主题。如果读者正在使用别的主题,请查阅对应官方文档寻找如何插入自定义标签与自定义页脚信息。

在主题配置文件(即_config.butterfly.yml)中引入:

1
2
3
4
5
inject:
bottom:
- <script src="https://cdn.jsdelivr.net/npm/dayjs@1.11.7/dayjs.min.js"></script>
- <script src="https://cdn.jsdelivr.net/npm/dayjs@1.11.7/plugin/duration.min.js"></script>
- <script src="/scripts/realtime.js"></script>

在自定义页脚中加入一个 span 元素提供日期的挂载位点(hhh 最近做过 tRNA 结合位点的题,觉得这个描述还挺贴切):

1
2
3
footer:
custom_text:
<span id="realtime_duration"></span>

接下来主要通过 setInterval 实现这样一个实时更新的功能。

实现功能

source 目录下创建 scripts/realtime.js,写入以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
(() => {
dayjs.extend(window.dayjs_plugin_duration)
const el = document.getElementById('realtime_duration')
// 改成自己的时间
const date = dayjs('2022-05-19')

setInterval(() => {
const dur = dayjs.duration(dayjs().diff(date))
const days = String(Math.floor(dur.asDays()))
el.innerHTML = '已运行' + days + dur.format('天HH时mm分ss秒')
}, 1000)
})()

现在拉到页底就能看到效果。

当然,如果是用 RSS 阅读器或者别的搬运站的话肯定就看不到了。