commit
1f589f1213
|
@ -317,7 +317,7 @@ spec:
|
|||
name: widgets
|
||||
label: 小部件
|
||||
value: "profile,wechat,comments,recent-posts,categories,tags-stat"
|
||||
help: "目前提供的小部件有:profile(站点资料), wechat(微信), recent-posts(近期文章), comments(最新评论), categories(文章分类), tags(文章标签), stat(统计), tags-stat(标签&统计)。你可以随意组合或排序,以逗号隔开。"
|
||||
help: "目前提供的小部件有:profile(站点资料), wechat(微信), recent-posts(近期文章), comments(最新评论), categories(文章分类), tags(文章标签), stat(统计), tags-stat(标签&归档&统计)。你可以随意组合或排序,以逗号隔开。"
|
||||
- $formkit: textarea
|
||||
name: postWidgets
|
||||
label: 文章页面小部件
|
||||
|
@ -458,6 +458,29 @@ spec:
|
|||
label: 分类数量
|
||||
value: -1
|
||||
help: "小于 0 则展示全部分类"
|
||||
- $formkit: radio
|
||||
name: tags_switch
|
||||
label: 标签&归档&统计 (标签按钮开关)
|
||||
value: true
|
||||
options:
|
||||
- label: 显示
|
||||
value: true
|
||||
- label: 隐藏
|
||||
value: false
|
||||
- $formkit: radio
|
||||
name: archive_switch
|
||||
label: 标签&归档&统计 (归档按钮开关)
|
||||
value: true
|
||||
options:
|
||||
- label: 显示
|
||||
value: true
|
||||
- label: 隐藏
|
||||
value: false
|
||||
- $formkit: number
|
||||
name: archivesQuantity
|
||||
label: 归档数量
|
||||
value: -1
|
||||
help: "小于 0 则展示全部归档(目前没用等适配)"
|
||||
- $formkit: number
|
||||
name: newcommentnumber
|
||||
label: 评论数量
|
||||
|
@ -1112,7 +1135,7 @@ spec:
|
|||
wxPay:
|
||||
alipay:
|
||||
enable_reward_wz:
|
||||
reward_md_url:
|
||||
reward_md_url:
|
||||
children:
|
||||
- $formkit: radio
|
||||
name: enable_reward_wz
|
||||
|
@ -1197,6 +1220,15 @@ spec:
|
|||
name: enableChangeColorScheme
|
||||
label: 允许访客切换配色
|
||||
value: true
|
||||
- $formkit: radio
|
||||
name: universe
|
||||
label: 深色模式粒子效果
|
||||
value: true
|
||||
options:
|
||||
- label: 打开
|
||||
value: true
|
||||
- label: 关闭
|
||||
value: false
|
||||
- $formkit: textarea
|
||||
name: fontFamily
|
||||
label: 全局字体
|
||||
|
@ -1206,6 +1238,7 @@ spec:
|
|||
label: 全局背景图
|
||||
placeholder: "请输入图片地址"
|
||||
|
||||
|
||||
- group: snackbar
|
||||
label: 弹窗
|
||||
help: 右下角 snackbar 弹窗
|
||||
|
|
|
@ -811,7 +811,7 @@
|
|||
<ellipse cx="790" cy="307.5" rx="25" ry="25.5" fill="#ffd52b"></ellipse>
|
||||
<circle r="14" transform="matrix(1 0 0 -1 790 308)" fill="white"></circle>
|
||||
</svg></div>
|
||||
<!-- <p id="people">共<b>29</b>人</p> -->
|
||||
<p id="people">共<b>[[${theme.config.aboutReward.reward_list.size()}]]</b>人</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="reward-list-all" th:if="${not #lists.isEmpty(theme.config.aboutReward.reward_list)}"
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
function dark() {
|
||||
window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
|
||||
var n, e, i, h, t = .05,
|
||||
s = document.getElementById("universe"),
|
||||
o = !0,
|
||||
a = "180,184,240",
|
||||
r = "226,225,142",
|
||||
d = "226,225,224",
|
||||
c = [];
|
||||
|
||||
function f() {
|
||||
n = window.innerWidth, e = window.innerHeight, i = .216 * n, s.setAttribute("width", n), s.setAttribute("height", e)
|
||||
}
|
||||
function u() {
|
||||
h.clearRect(0, 0, n, e);
|
||||
for (var t = c.length, i = 0; i < t; i++) {
|
||||
var s = c[i];
|
||||
s.move(), s.fadeIn(), s.fadeOut(), s.draw()
|
||||
}
|
||||
}
|
||||
function y() {
|
||||
this.reset = function() {
|
||||
this.giant = m(3), this.comet = !this.giant && !o && m(10), this.x = l(0, n - 10), this.y = l(0, e), this.r = l(1.1, 2.6), this.dx = l(t, 6 * t) + (this.comet + 1 - 1) * t * l(50, 120) + 2 * t, this.dy = -l(t, 6 * t) - (this.comet + 1 - 1) * t * l(50, 120), this.fadingOut = null, this.fadingIn = !0, this.opacity = 0, this.opacityTresh = l(.2, 1 - .4 * (this.comet + 1 - 1)), this.do = l(5e-4, .002) + .001 * (this.comet + 1 - 1)
|
||||
}, this.fadeIn = function() {
|
||||
this.fadingIn && (this.fadingIn = !(this.opacity > this.opacityTresh), this.opacity += this.do)
|
||||
}, this.fadeOut = function() {
|
||||
this.fadingOut && (this.fadingOut = !(this.opacity < 0), this.opacity -= this.do /2,(this.x>n||this.y<0)&&(this.fadingOut=!1,this.reset()))},this.draw=function(){if(h.beginPath(),this.giant)h.fillStyle="rgba("+a+","+this.opacity+")",h.arc(this.x,this.y,2,0,2*Math.PI,!1);else if(this.comet){h.fillStyle="rgba("+d+","+this.opacity+")",h.arc(this.x,this.y,1.5,0,2*Math.PI,!1);for(var t=0;t<30;t++)h.fillStyle="rgba("+d+","+(this.opacity-this.opacity/20 * t) + ")", h.rect(this.x - this.dx / 4 * t, this.y - this.dy / 4 * t - 2, 2, 2), h.fill()
|
||||
} else h.fillStyle = "rgba(" + r + "," + this.opacity + ")", h.rect(this.x, this.y, this.r, this.r);
|
||||
h.closePath(), h.fill()
|
||||
}, this.move = function() {
|
||||
this.x += this.dx, this.y += this.dy, !1 === this.fadingOut && this.reset(), (this.x > n - n / 4 || this.y < 0) && (this.fadingOut = !0)
|
||||
}, setTimeout(function() {
|
||||
o = !1
|
||||
}, 50)
|
||||
}
|
||||
function m(t) {
|
||||
return Math.floor(1e3 * Math.random()) + 1 < 10 * t
|
||||
}
|
||||
function l(t, i) {
|
||||
return Math.random() * (i - t) + t
|
||||
}
|
||||
f(), window.addEventListener("resize", f, !1), function() {
|
||||
h = s.getContext("2d");
|
||||
for (var t = 0; t < i; t++) c[t] = new y, c[t].reset();
|
||||
u()
|
||||
}(), function t() {
|
||||
document.getElementsByTagName('html')[0].getAttribute('data-theme') == 'dark' && u(), window.requestAnimationFrame(t)
|
||||
}()
|
||||
};
|
||||
dark()
|
|
@ -100,7 +100,7 @@
|
|||
--heo-post-tabs-bg: #121212;
|
||||
--heo-secondbg: #30343f;
|
||||
--heo-shadow-nav: 0 5px 20px 0px rgba(28, 28, 28, 0.4);
|
||||
--heo-card-bg: #1e1e1e;
|
||||
--heo-card-bg: #1d1e22;
|
||||
--heo-card-bg-op: var(--heo-white-op);
|
||||
--heo-card-bg-none: #1d1b2600;
|
||||
--heo-shadow-lightblack: 0 5px 12px -5px rgba(102, 68, 68, 0);
|
||||
|
@ -9193,6 +9193,27 @@ li {
|
|||
margin-left: 4px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* 添加粒子效果 */
|
||||
[data-theme="dark"] #universe {
|
||||
display: block;
|
||||
position: fixed;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
canvas#universe {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.post-ai {
|
||||
background: var(--heo-secondbg);
|
||||
border-radius: 12px;
|
||||
|
@ -13998,7 +14019,7 @@ button.el-button.tk-cancel.el-button--default.el-button--small {
|
|||
color: var(--heo-fontcolor) !important;
|
||||
font-size: 1.4em !important;
|
||||
padding: 0.2em .5em;
|
||||
background: var(--heo-secondbg);
|
||||
background: var(--heo-card-bg);
|
||||
margin: .5em .5em;
|
||||
border-radius: 12px;
|
||||
-webkit-backface-visibility: hidden;
|
||||
|
@ -14008,7 +14029,7 @@ button.el-button.tk-cancel.el-button--default.el-button--small {
|
|||
}
|
||||
|
||||
#page .tag-cloud-list a:hover {
|
||||
background: var(--heo-blue) !important;
|
||||
background: var(--heo-theme) !important;
|
||||
box-shadow: var(--heo-shadow-blue);
|
||||
color: var(--heo-white) !important;
|
||||
border: var(--style-border-hover);
|
||||
|
@ -14259,7 +14280,7 @@ figure.gallery-group:hover .gallery-group-name::after {
|
|||
/* 随机文章 */
|
||||
#random-post {
|
||||
min-height: 32px;
|
||||
background: var(--card-bg);
|
||||
background: var(--heo-card-bg);
|
||||
border: var(--style-border-always);
|
||||
box-shadow: var(--heo-shadow-border);
|
||||
padding: 20px 30px;
|
||||
|
|
|
@ -53,6 +53,10 @@
|
|||
<!-- todo head 中有它的 css,应该可以写一块,并改成后台可配置的功能,代码中应该还有他的 js -->
|
||||
<script th:src="@{/assets/libs/snackbar/snackbar.min.js}"></script>
|
||||
|
||||
<!-- 深色模式下添加粒子效果canvas -->
|
||||
<canvas th:if="${theme.config.style.universe}" id="universe" width="1312" height="880"></canvas>
|
||||
<script th:if="${theme.config.style.universe}" async="" th:src="@{/assets/libs/canvas/dark.js}"></script>
|
||||
|
||||
<!-- https://davidshimjs.github.io/qrcodejs/ 生成二维码 -->
|
||||
<!-- 应该是文章页分享使用 -->
|
||||
<script data-pjax src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/qrcodejs/1.0.0/qrcode.min.js"></script>
|
||||
|
|
|
@ -145,7 +145,18 @@
|
|||
j = (j % 3) + 1; // 在 1、2、3 之间循环
|
||||
}, 500);
|
||||
const response = await fetch(`https://summary.tianli0.top/?${queryParams}`, requestOptions);
|
||||
const result = await response.json();
|
||||
let result;
|
||||
if (response.status === 403) {
|
||||
result = {
|
||||
summary: "403 refer与key不匹配,本地无法显示。"
|
||||
}
|
||||
} else if (response.status === 500) {
|
||||
result = {
|
||||
summary: "500 系统内部错误"
|
||||
}
|
||||
} else {
|
||||
result = await response.json();
|
||||
}
|
||||
const summary = result.summary.trim();
|
||||
setTimeout(() => {
|
||||
aiTitleRefreshIcon.style.opacity = "1";
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" xmlns:th="http://www.thymeleaf.org">
|
||||
<!-- 标签 -->
|
||||
|
||||
<th:block th:fragment="archive-contain" >
|
||||
|
||||
<div class="item-headline"><a class="card-more-btn" href="/archives/" title="查看更多" data-pjax-state=""></a></div>
|
||||
<ul class="card-archive-list"
|
||||
th:with="archives = ${postFinder.archives(1,1000)}, archivesQuantity = ${#conversions.convert(theme.config.sidebar.archivesQuantity, 'java.lang.Integer')}">
|
||||
<th:block th:each="archive,archiveStat : ${archives.items}">
|
||||
<li class="card-archive-list-item"
|
||||
th:each="month,monthIndex : ${archive.months}"
|
||||
><a
|
||||
class="card-archive-list-link" th:href="@{'/archives/'+${archive.year}+'/'+${month.month}}"
|
||||
data-pjax-state=""><span
|
||||
class="card-archive-list-date">[[${(month.month=='01') ? '一月' :
|
||||
(month.month == '02') ? "二月" :
|
||||
(month.month == '03') ? "三月" :
|
||||
(month.month == '04') ? "四月" :
|
||||
(month.month == '05') ? "五月" :
|
||||
(month.month == '06') ? "六月" :
|
||||
(month.month == '07') ? "七月" :
|
||||
(month.month == '08') ? "八月" :
|
||||
(month.month == '09') ? "九月" :
|
||||
(month.month == '10') ? "十月" :
|
||||
(month.month == '11') ? "十一月" :
|
||||
"十二月"}]] [[${archive.year}]]
|
||||
|
||||
</span>
|
||||
<div class="card-archive-list-count-group"><span
|
||||
class="card-archive-list-count">[[${month.posts.size()}]]</span><span
|
||||
class="card-archive-list-count-unit">篇</span></div>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
|
||||
</th:block>
|
||||
|
||||
|
||||
</html>
|
|
@ -12,18 +12,18 @@
|
|||
</div>
|
||||
<div class="item-count" th:text="${stats.post}"></div>
|
||||
</div>
|
||||
<div class="webinfo-item">
|
||||
<!-- <div class="webinfo-item">
|
||||
<div class="webinfo-item-title"><i class="iconfont icon-sliders"></i>
|
||||
<div class="item-name">分类数 :</div>
|
||||
</div>
|
||||
<div class="item-count" th:text="${stats.category}"></div>
|
||||
</div>
|
||||
<div class="webinfo-item">
|
||||
</div> -->
|
||||
<!-- <div class="webinfo-item">
|
||||
<div class="webinfo-item-title"><i class="iconfont icon-comment-alt"></i>
|
||||
<div class="item-name">评论数 :</div>
|
||||
</div>
|
||||
<div class="item-count" th:text="${stats.comment}"></div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="webinfo-item">
|
||||
<div class="webinfo-item-title"><i class="iconfont icon-bullseye"></i>
|
||||
<div class="item-name">访问量 :</div>
|
||||
|
|
|
@ -6,11 +6,21 @@
|
|||
|
||||
<div class="card-widget card-tags card-archives card-webinfo card-allinfo">
|
||||
|
||||
<th:block th:replace="~{modules/widgets/aside/contain/tags-contain :: tags-contain}"></th:block>
|
||||
|
||||
<hr>
|
||||
<span th:if="${theme.config.sidebar.tags_switch}">
|
||||
<th:block th:replace="~{modules/widgets/aside/contain/tags-contain :: tags-contain}" th:if="${theme.config.sidebar.tags_switch}"></th:block>
|
||||
|
||||
<th:block th:replace="~{modules/widgets/aside/contain/stat-contain :: stat-contain}"></th:block>
|
||||
<hr>
|
||||
</span>
|
||||
|
||||
<span th:if="${theme.config.sidebar.archive_switch}">
|
||||
<th:block th:replace="~{modules/widgets/aside/contain/archive-contain :: archive-contain}" ></th:block>
|
||||
|
||||
<hr>
|
||||
</span>
|
||||
|
||||
|
||||
<th:block th:replace="~{modules/widgets/aside/contain/stat-contain :: stat-contain}" ></th:block>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -37,10 +37,23 @@
|
|||
<th:block th:each="archive : ${archives.items}">
|
||||
<li class="card-archive-list-item" th:each="month,monthStat : ${archive.months}">
|
||||
<a class="card-archive-list-link" th:href="@{'/archives/'+${archive.year}+'/'+${month.month}}"
|
||||
data-pjax-state="load"><span
|
||||
class="card-archive-list-date">[[${archive.year}]]-[[${month.month}]]</span>
|
||||
data-pjax-state="load"><span
|
||||
class="card-archive-list-date">
|
||||
[[${(month.month=='01') ? '一月' :
|
||||
(month.month == '02') ? "二月" :
|
||||
(month.month == '03') ? "三月" :
|
||||
(month.month == '04') ? "四月" :
|
||||
(month.month == '05') ? "五月" :
|
||||
(month.month == '06') ? "六月" :
|
||||
(month.month == '07') ? "七月" :
|
||||
(month.month == '08') ? "八月" :
|
||||
(month.month == '09') ? "九月" :
|
||||
(month.month == '10') ? "十月" :
|
||||
(month.month == '11') ? "十一月" :
|
||||
"十二月"}]] [[${archive.year}]]
|
||||
</span>
|
||||
<div class="card-archive-list-count-group"><span
|
||||
class="card-archive-list-count">[[${month.posts.size()}]]</span>
|
||||
class="card-archive-list-count">[[${month.posts.size()}]]</span>
|
||||
<span class="card-archive-list-count-unit">篇</span>
|
||||
</div>
|
||||
</a>
|
||||
|
|
Loading…
Reference in New Issue