hexo-theme-icarus 预发布文章显示优化

hexo-theme-icarus 预发布文章显示优化

由于我有时候比较忙,有时候比较空闲,所以我会存有一些文章,hexo 的配置文件中如果设置 future: false 则不会显示超前的文章。

现在遇到了一个新问题,有时候超前文章的时间设置的比较久,就容易被遗忘了,而且我现在一百多篇文章也很难去找哪些是我设置了超前时间。

最开始考虑是从 hexo 源码入手,后面发现我本来就是通过 GitHub Actions 来完成自动部署的。完全可以默认就设置成 future: true ,然后部署脚本中 sed 来修改成 false

最后就只剩下 UI 的处理。

https://github.com/ppoffice/hexo-theme-icarus/blob/2.8.1/layout/common/article.ejs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<% if (post.layout != 'page') { %>
<div class="level article-meta is-size-7 is-uppercase is-mobile is-overflow-x-auto">
<div class="level-left">
<time class="level-item has-text-grey" datetime="<%= date_xml(post.date) %>"><%= date(post.date) %></time>
<% if (post.categories && post.categories.length) { %>
<div class="level-item">
<%- list_categories(post.categories, {
class: 'has-link-grey ',
show_count: false,
style: 'none',
separator: '&nbsp;/&nbsp;'
}) %>
</div>
<% } %>

+ <% if (post.source.indexOf('_drafts') !== 0 && && moment().unix() < moment(post.date).unix()) { %>
+ <div class="level-item">
+ <span class="has-link-grey" style="text-decoration: underline;">
+ 预发布时间:<%= date(post.date, 'YYYY年MM月DD日 HH:mm:ss') %>
+ </span>
+ </div>
+ <% } %>
</div>
</div>
<% } %>

往上