Compare commits
7 Commits
19df302749
...
641d7c78ec
Author | SHA1 | Date | |
---|---|---|---|
641d7c78ec | |||
15f3614aac | |||
eca30a503b | |||
d19c1191ef | |||
8f601d0817 | |||
7f8b310cf7 | |||
d197c0e95c |
57
README.md
57
README.md
@ -1,3 +1,56 @@
|
|||||||
# halo-theme-hao
|
<div align="center">
|
||||||
|
<!-- 主题Logo -->
|
||||||
|
<img width="100px" src="https://api.minio.yyds.pink/moony/files/2024/04/halo-theme-hao-sbxqdmuv.png">
|
||||||
|
<!-- 主题名称 -->
|
||||||
|
<h1>Halo-Theme-Hao</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
基于halo-theme-hao的1.4.9-beta2版本进行修改。
|
## 🔥 预览
|
||||||
|
|
||||||
|
| 站点名称 | 站点地址 |
|
||||||
|
|:--------------:|:------------------------:|
|
||||||
|
| 小小笔记大大用处 | https://blog.uptoz.cn |
|
||||||
|
|
||||||
|
|
||||||
|
## 👋 简介
|
||||||
|
|
||||||
|
[Halo-Theme-Hao](https://gitea.uptoz.cn/UPToZ/halo-theme-hao)
|
||||||
|
是一款适用于 [Halo2.x](https://github.com/halo-dev/halo) 的博客主题。
|
||||||
|
|
||||||
|
移植自 [Hexo](https://hexo.io/zh-cn/index.html) 社区中 [张洪 Heo](https://blog.zhheo.com/)
|
||||||
|
对 [Hexo-Theme-hao](https://github.com/chengzhongxue/halo-theme-hao)主题1.4.9-beta2的魔改版本。
|
||||||
|
|
||||||
|
|
||||||
|
## 🚨 注意事项(看我看我)
|
||||||
|
|
||||||
|
1. **建站时间必填**
|
||||||
|
2. 如果安装主题后报错,请仔细查阅[主题说明](https://gitea.uptoz.cn/UPToZ/halo-theme-hao)
|
||||||
|
与[更新说明](https://gitea.uptoz.cn/UPToZ/halo-theme-hao/releases)!!!
|
||||||
|
3. 如果还未解决,可以加群求助!!!
|
||||||
|
4. 如果群友也解决不了,再考虑提ISSUE!!!
|
||||||
|
5. `1.0.0`及以上版本需要`Halo`版本>=`2.14.0`
|
||||||
|
6. **若安装主题后出现500错误,请到主题设置页面,将每个设置项都保存一下!!!**
|
||||||
|
7. **`beta`版本主题必须使用`本地资源`,正式版本才会存在`在线资源`**
|
||||||
|
|
||||||
|
### 🔌 插件依赖
|
||||||
|
|
||||||
|
> 所有插件均为可选,不安装则不会出现对应功能。
|
||||||
|
> 部分插件可能已经预设在 Halo 内。
|
||||||
|
> 部分插件主题尚未适配。
|
||||||
|
|
||||||
|
- 评论功能 [plugin-comment-widget](https://github.com/halo-sigs/plugin-comment-widget/releases)
|
||||||
|
- 搜索功能 [plugin-search-widget](https://github.com/halo-sigs/plugin-search-widget/releases)
|
||||||
|
- 友链页面 [plugin-links](https://github.com/halo-sigs/plugin-links)
|
||||||
|
- 瞬间页面 [plugin-moments](https://github.com/halo-sigs/plugin-moments)
|
||||||
|
- 追番插件 [plugin-bilibili-bangumi](https://github.com/Roozenlz/plugin-bilibili-bangumi)
|
||||||
|
- 图库插件 [plugin-photos](https://github.com/halo-sigs/plugin-photos)
|
||||||
|
- katex插件 [plugin-katex](https://github.com/chengzhongxue/plugin-katex/releases/)
|
||||||
|
- 我的装备 [plugin-equipments](https://github.com/chengzhongxue/plugin-equipments)
|
||||||
|
- Markdown / HTML 内容块插件 [plugin-hybrid-edit-block](https://www.halo.run/store/apps/app-NgHnY)
|
||||||
|
- 爱发电 [plugin-afdian](https://www.halo.run/store/apps/app-oXvZp)
|
||||||
|
|
||||||
|
> 更多插件请参见:https://github.com/halo-sigs/awesome-halo
|
||||||
|
|
||||||
|
## 📝 使用
|
||||||
|
|
||||||
|
[点我查看](https://www.yuque.com/liuzhihangs/halo-theme-hao)
|
@ -750,8 +750,7 @@ spec:
|
|||||||
label: 爱发电赞助
|
label: 爱发电赞助
|
||||||
value:
|
value:
|
||||||
powerLink: /
|
powerLink: /
|
||||||
url: https://api.afdian.cnkj.site/api/creator/get-top-sponsors?user_id=
|
url: /apis/api.plugin.halo.run/v1alpha1/plugins/plugin-afdian/afdian/getSponsorList
|
||||||
userId:
|
|
||||||
showNum: 3
|
showNum: 3
|
||||||
children:
|
children:
|
||||||
- $formkit: url
|
- $formkit: url
|
||||||
@ -760,9 +759,7 @@ spec:
|
|||||||
- $formkit: text
|
- $formkit: text
|
||||||
name: url
|
name: url
|
||||||
label: 接口地址
|
label: 接口地址
|
||||||
- $formkit: text
|
help: 需要安装爱发电插件
|
||||||
name: userId
|
|
||||||
label: 用户ID
|
|
||||||
- $formkit: number
|
- $formkit: number
|
||||||
name: showNum
|
name: showNum
|
||||||
label: 最大展示条数
|
label: 最大展示条数
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
.timeline {
|
.timeline {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 20px;
|
height: 2rem;
|
||||||
background-color: var(--heo-background);
|
background-color: var(--heo-background);
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
border-radius: 0.5rem;
|
border-radius: 1.5rem;
|
||||||
height: 2.5rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress {
|
.progress {
|
||||||
@ -16,7 +15,7 @@
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
animation: progressAnimation 2s linear forwards;
|
animation: progressAnimation 2s linear forwards;
|
||||||
animation-delay: -0.1s;
|
animation-delay: -0.1s;
|
||||||
border-radius: 0.5rem
|
border-radius: 1.5rem
|
||||||
}
|
}
|
||||||
|
|
||||||
.past-time {
|
.past-time {
|
||||||
@ -55,6 +54,7 @@
|
|||||||
0% {
|
0% {
|
||||||
width: 0;
|
width: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
width: var(--progress-percentage, 0);
|
width: var(--progress-percentage, 0);
|
||||||
}
|
}
|
||||||
@ -64,6 +64,7 @@
|
|||||||
0% {
|
0% {
|
||||||
transform: scaleX(0);
|
transform: scaleX(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
transform: scaleX(var(--past-time-percentage, 0));
|
transform: scaleX(var(--past-time-percentage, 0));
|
||||||
}
|
}
|
||||||
@ -78,9 +79,11 @@
|
|||||||
0% {
|
0% {
|
||||||
box-shadow: 0 0 2px var(--heo-main);
|
box-shadow: 0 0 2px var(--heo-main);
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
box-shadow: 0 0 40px var(--heo-main);
|
box-shadow: 0 0 40px var(--heo-main);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
box-shadow: 0 0 2px var(--heo-main);
|
box-shadow: 0 0 2px var(--heo-main);
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,6 @@ let halo = {
|
|||||||
var e = document.querySelector("link[data-code-theme=light]"),
|
var e = document.querySelector("link[data-code-theme=light]"),
|
||||||
o = document.querySelector("link[data-code-theme=dark]");
|
o = document.querySelector("link[data-code-theme=dark]");
|
||||||
(o || e) && ("light" === t ? (o.disabled = !0, e.disabled = !1) : (e.disabled = !0, o.disabled = !1))
|
(o || e) && ("light" === t ? (o.disabled = !0, e.disabled = !1) : (e.disabled = !0, o.disabled = !1))
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -32,7 +31,6 @@ let halo = {
|
|||||||
|
|
||||||
if (!Prism.plugins.toolbar) {
|
if (!Prism.plugins.toolbar) {
|
||||||
console.warn('Copy to Clipboard plugin loaded before Toolbar plugin.');
|
console.warn('Copy to Clipboard plugin loaded before Toolbar plugin.');
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -322,7 +320,8 @@ let halo = {
|
|||||||
'limit': '100'
|
'limit': '100'
|
||||||
});
|
});
|
||||||
|
|
||||||
fetch(GLOBAL_CONFIG.source.artalk.artalkUrl + 'api/v2/stats/latest_comments?' + queryParams.toString(),
|
fetch(GLOBAL_CONFIG.source.artalk.artalkUrl + 'api/v2/stats/latest_comments?' + queryParams
|
||||||
|
.toString(),
|
||||||
statheaderList)
|
statheaderList)
|
||||||
.then((e => e.json())).then((({
|
.then((e => e.json())).then((({
|
||||||
data: t
|
data: t
|
||||||
@ -375,20 +374,32 @@ let halo = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
getTopSponsors() {
|
getTopSponsors() {
|
||||||
var user_id = GLOBAL_CONFIG.source.power.userId
|
var show_num = GLOBAL_CONFIG.source.power.showNum;
|
||||||
var show_num = GLOBAL_CONFIG.source.power.showNum
|
var url = GLOBAL_CONFIG.source.power.url;
|
||||||
|
|
||||||
function getPower() {
|
function getPower() {
|
||||||
const url = GLOBAL_CONFIG.source.power.url + user_id
|
const url = GLOBAL_CONFIG.source.power.url;
|
||||||
fetch(url)
|
fetch(url)
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
.then(data => {
|
.then(data => {
|
||||||
|
console.log(data)
|
||||||
if (200 === data["ec"]) {
|
if (200 === data["ec"]) {
|
||||||
var values = data["data"]["list"]
|
const values = data["data"]["list"];
|
||||||
saveToLocal.set('power-data', JSON.stringify(values), 10 / (60 * 24))
|
saveToLocal.set('power-data', JSON.stringify(values), 10 / (60 * 24))
|
||||||
renderer(values);
|
renderer(values);
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
let powerStar = document.getElementById("power-star")
|
||||||
|
powerStar.href = GLOBAL_CONFIG.source.power.powerLink
|
||||||
|
powerStar.innerHTML = `
|
||||||
|
<div id="power-star-image" style="background-image: url('/themes/theme-hao/assets/images/afadian/afadian.webp')">
|
||||||
|
</div>
|
||||||
|
<div class="power-star-body">
|
||||||
|
<div id="power-star-title">还没有人赞助~</div>
|
||||||
|
<div id="power-star-desc">为爱发电,点击赞助</div>
|
||||||
|
</div>`;
|
||||||
|
console.error(error);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -406,12 +417,12 @@ let halo = {
|
|||||||
</div>`;
|
</div>`;
|
||||||
} else {
|
} else {
|
||||||
if (powerStar) {
|
if (powerStar) {
|
||||||
powerStar.href = "https://afdian.net/u/" + data[0].user_id
|
powerStar.href = "https://afdian.net/u/" + data[0]["user"].user_id
|
||||||
powerStar.innerHTML = `
|
powerStar.innerHTML = `
|
||||||
<div id="power-star-image" style="background-image: url(${data[0].avatar})">
|
<div id="power-star-image" style="background-image: url(${data[0]["user"].avatar})">
|
||||||
</div>
|
</div>
|
||||||
<div class="power-star-body">
|
<div class="power-star-body">
|
||||||
<div id="power-star-title">${data[0].name}</div>
|
<div id="power-star-title">${data[0]["user"].name}</div>
|
||||||
<div id="power-star-desc">更多支持,为爱发电</div>
|
<div id="power-star-desc">更多支持,为爱发电</div>
|
||||||
</div>`;
|
</div>`;
|
||||||
}
|
}
|
||||||
@ -424,7 +435,7 @@ let halo = {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
htmlText +=
|
htmlText +=
|
||||||
` <a href="${"https://afdian.net/u/" + value["user_id"]}" rel="external nofollow" target="_blank" th:title="${value["name"]}">${value["name"]}</a>`;
|
` <a href="${"https://afdian.net/u/" + value["user"]["user_id"]}" rel="external nofollow" target="_blank" th:title="${value["user"]["name"]}">${value["user"]["name"]}</a>`;
|
||||||
i = i + 1;
|
i = i + 1;
|
||||||
}
|
}
|
||||||
if (document.getElementById("power-item-link")) {
|
if (document.getElementById("power-item-link")) {
|
||||||
@ -439,7 +450,7 @@ let halo = {
|
|||||||
if (data) {
|
if (data) {
|
||||||
renderer(JSON.parse(data))
|
renderer(JSON.parse(data))
|
||||||
} else {
|
} else {
|
||||||
getPower()
|
getPower();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
let heo_cookiesTime = null
|
let heo_cookiesTime = null
|
||||||
// 第一次播放音乐
|
// 第一次播放音乐
|
||||||
,heo_musicFirst = false
|
,
|
||||||
|
heo_musicFirst = false
|
||||||
// 音乐播放状态
|
// 音乐播放状态
|
||||||
,heo_musicPlaying = false
|
,
|
||||||
,heo_keyboard = false
|
heo_musicPlaying = false,
|
||||||
,heo_intype = false
|
heo_keyboard = false,
|
||||||
,lastSayHello = ""
|
heo_intype = false,
|
||||||
,refreshNum = 1;
|
lastSayHello = "",
|
||||||
|
refreshNum = 1;
|
||||||
// 私有函数
|
// 私有函数
|
||||||
var heo = {
|
var heo = {
|
||||||
// 检测显示模式
|
// 检测显示模式
|
||||||
@ -63,8 +65,8 @@ var heo = {
|
|||||||
|
|
||||||
//监测是否在页面开头
|
//监测是否在页面开头
|
||||||
addNavBackgroundInit: function() {
|
addNavBackgroundInit: function() {
|
||||||
var e = 0
|
var e = 0,
|
||||||
, t = 0;
|
t = 0;
|
||||||
document.body && (e = document.body.scrollTop),
|
document.body && (e = document.body.scrollTop),
|
||||||
document.documentElement && (t = document.documentElement.scrollTop),
|
document.documentElement && (t = document.documentElement.scrollTop),
|
||||||
0 != (e - t > 0 ? e : t) && (document.getElementById("page-header").classList.add("nav-fixed"),
|
0 != (e - t > 0 ? e : t) && (document.getElementById("page-header").classList.add("nav-fixed"),
|
||||||
@ -89,7 +91,8 @@ var heo = {
|
|||||||
document.querySelector("#category-bar") && $(".category-bar-item").removeClass("select");
|
document.querySelector("#category-bar") && $(".category-bar-item").removeClass("select");
|
||||||
var e = window.location.pathname;
|
var e = window.location.pathname;
|
||||||
if ("/" == (e = decodeURIComponent(e)))
|
if ("/" == (e = decodeURIComponent(e)))
|
||||||
document.querySelector("#category-bar") && document.getElementById("category-bar-home").classList.add("select");
|
document.querySelector("#category-bar") && document.getElementById("category-bar-home").classList
|
||||||
|
.add("select");
|
||||||
else {
|
else {
|
||||||
if (/\/categories\/.*?/.test(e)) {
|
if (/\/categories\/.*?/.test(e)) {
|
||||||
var t = e.split("/")[2];
|
var t = e.split("/")[2];
|
||||||
@ -109,8 +112,10 @@ var heo = {
|
|||||||
footerRandomFriendsBtn.style.opacity = "0.2";
|
footerRandomFriendsBtn.style.opacity = "0.2";
|
||||||
footerRandomFriendsBtn.style.transitionDuration = "0.3s";
|
footerRandomFriendsBtn.style.transitionDuration = "0.3s";
|
||||||
footerRandomFriendsBtn.style.transform = "rotate(" + 360 * refreshNum++ + "deg)";
|
footerRandomFriendsBtn.style.transform = "rotate(" + 360 * refreshNum++ + "deg)";
|
||||||
|
|
||||||
function getLinks() {
|
function getLinks() {
|
||||||
const fetchUrl = "/apis/api.plugin.halo.run/v1alpha1/plugins/PluginLinks/links?keyword=&sort=priority,asc"
|
const fetchUrl =
|
||||||
|
"/apis/api.plugin.halo.run/v1alpha1/plugins/PluginLinks/links?keyword=&sort=priority,asc"
|
||||||
fetch(fetchUrl)
|
fetch(fetchUrl)
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
.then(json => {
|
.then(json => {
|
||||||
@ -118,6 +123,7 @@ var heo = {
|
|||||||
renderer(json.items);
|
renderer(json.items);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderer(data) {
|
function renderer(data) {
|
||||||
const linksUrl = GLOBAL_CONFIG.source.links.linksUrl
|
const linksUrl = GLOBAL_CONFIG.source.links.linksUrl
|
||||||
const num = GLOBAL_CONFIG.source.links.linksNum
|
const num = GLOBAL_CONFIG.source.links.linksNum
|
||||||
@ -125,13 +131,15 @@ var heo = {
|
|||||||
var htmlText = '';
|
var htmlText = '';
|
||||||
for (let i = 0; i < randomFriendLinks.length; ++i) {
|
for (let i = 0; i < randomFriendLinks.length; ++i) {
|
||||||
var item = randomFriendLinks[i]
|
var item = randomFriendLinks[i]
|
||||||
htmlText += `<a class='footer-item' href='${item.spec.url}' target="_blank" rel="noopener nofollow">${item.spec.displayName}</a>`;
|
htmlText +=
|
||||||
|
`<a class='footer-item' href='${item.spec.url}' target="_blank" rel="noopener nofollow">${item.spec.displayName}</a>`;
|
||||||
}
|
}
|
||||||
htmlText += `<a class='footer-item' href='${linksUrl}'>更多</a>`
|
htmlText += `<a class='footer-item' href='${linksUrl}'>更多</a>`
|
||||||
if (document.getElementById("friend-links-in-footer")) {
|
if (document.getElementById("friend-links-in-footer")) {
|
||||||
document.getElementById("friend-links-in-footer").innerHTML = htmlText;
|
document.getElementById("friend-links-in-footer").innerHTML = htmlText;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function friendLinksInFooterInit() {
|
function friendLinksInFooterInit() {
|
||||||
const data = saveToLocal.get('links-data')
|
const data = saveToLocal.get('links-data')
|
||||||
if (data) {
|
if (data) {
|
||||||
@ -216,9 +224,9 @@ var heo = {
|
|||||||
reflashEssayWaterFall: function() {
|
reflashEssayWaterFall: function() {
|
||||||
document.querySelector("#waterfall") && setTimeout((function() {
|
document.querySelector("#waterfall") && setTimeout((function() {
|
||||||
waterfall("#waterfall"),
|
waterfall("#waterfall"),
|
||||||
document.getElementById("waterfall") && document.getElementById("waterfall").classList.add("show")
|
document.getElementById("waterfall") && document.getElementById("waterfall")
|
||||||
}
|
.classList.add("show")
|
||||||
), 500)
|
}), 500)
|
||||||
},
|
},
|
||||||
|
|
||||||
// 下载图片
|
// 下载图片
|
||||||
@ -282,10 +290,8 @@ var heo = {
|
|||||||
document.getElementById("cookies-window").classList.add("cw-hide"),
|
document.getElementById("cookies-window").classList.add("cw-hide"),
|
||||||
setTimeout((() => {
|
setTimeout((() => {
|
||||||
$("#cookies-window").hide()
|
$("#cookies-window").hide()
|
||||||
}
|
}), 1e3)
|
||||||
), 1e3)
|
}), 3e3)
|
||||||
}
|
|
||||||
), 3e3)
|
|
||||||
},
|
},
|
||||||
|
|
||||||
//隐藏今日推荐
|
//隐藏今日推荐
|
||||||
@ -310,7 +316,8 @@ var heo = {
|
|||||||
let themeColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-main');
|
let themeColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-main');
|
||||||
heo.changeThemeColor(themeColor);
|
heo.changeThemeColor(themeColor);
|
||||||
} else {
|
} else {
|
||||||
let themeColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-background');
|
let themeColor = getComputedStyle(document.documentElement).getPropertyValue(
|
||||||
|
'--heo-background');
|
||||||
heo.changeThemeColor(themeColor);
|
heo.changeThemeColor(themeColor);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -419,7 +426,6 @@ var heo = {
|
|||||||
$('.console-card-group').attr('style', 'display: none');
|
$('.console-card-group').attr('style', 'display: none');
|
||||||
document.querySelector("#console").classList.add("show");
|
document.querySelector("#console").classList.add("show");
|
||||||
heo.initConsoleState()
|
heo.initConsoleState()
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
//显示中控台
|
//显示中控台
|
||||||
@ -427,8 +433,6 @@ var heo = {
|
|||||||
$('.console-card-group-reward').attr('style', 'display: none');
|
$('.console-card-group-reward').attr('style', 'display: none');
|
||||||
$('.console-card-group').attr('style', 'display: flex');
|
$('.console-card-group').attr('style', 'display: flex');
|
||||||
document.querySelector("#console").classList.add("show");
|
document.querySelector("#console").classList.add("show");
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
//隐藏中控台
|
//隐藏中控台
|
||||||
@ -453,36 +457,36 @@ var heo = {
|
|||||||
scrollTo: function(e) {
|
scrollTo: function(e) {
|
||||||
const t = document.getElementById(e);
|
const t = document.getElementById(e);
|
||||||
if (t) {
|
if (t) {
|
||||||
const e = t.getBoundingClientRect().top + window.pageYOffset - 80
|
const e = t.getBoundingClientRect().top + window.pageYOffset - 80,
|
||||||
, o = window.pageYOffset
|
o = window.pageYOffset,
|
||||||
, n = e - o;
|
n = e - o;
|
||||||
let a = null;
|
let a = null;
|
||||||
window.requestAnimationFrame((function e(t) {
|
window.requestAnimationFrame((function e(t) {
|
||||||
a || (a = t);
|
a || (a = t);
|
||||||
const l = t - a
|
const l = t - a,
|
||||||
, i = (c = Math.min(l / 0, 1)) < .5 ? 2 * c * c : (4 - 2 * c) * c - 1;
|
i = (c = Math.min(l / 0, 1)) < .5 ? 2 * c * c : (4 - 2 * c) * c - 1;
|
||||||
var c;
|
var c;
|
||||||
window.scrollTo(0, o + n * i),
|
window.scrollTo(0, o + n * i),
|
||||||
l < 600 && window.requestAnimationFrame(e)
|
l < 600 && window.requestAnimationFrame(e)
|
||||||
}
|
}))
|
||||||
))
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
//隐藏侧边栏
|
//隐藏侧边栏
|
||||||
hideAsideBtn: () => { // Hide aside
|
hideAsideBtn: () => { // Hide aside
|
||||||
const $htmlDom = document.documentElement.classList
|
const $htmlDom = document.documentElement.classList
|
||||||
$htmlDom.contains('hide-aside')
|
$htmlDom.contains('hide-aside') ?
|
||||||
? saveToLocal.set('aside-status', 'show', 2)
|
saveToLocal.set('aside-status', 'show', 2) :
|
||||||
: saveToLocal.set('aside-status', 'hide', 2)
|
saveToLocal.set('aside-status', 'hide', 2)
|
||||||
$htmlDom.toggle('hide-aside')
|
$htmlDom.toggle('hide-aside')
|
||||||
$htmlDom.contains("hide-aside") ? document.querySelector("#consoleHideAside").classList.add("on") : document.querySelector("#consoleHideAside").classList.remove("on")
|
$htmlDom.contains("hide-aside") ? document.querySelector("#consoleHideAside").classList.add("on") :
|
||||||
|
document.querySelector("#consoleHideAside").classList.remove("on")
|
||||||
},
|
},
|
||||||
toPage: function() {
|
toPage: function() {
|
||||||
var e = document.querySelectorAll(".page-number")
|
var e = document.querySelectorAll(".page-number"),
|
||||||
, t = parseInt(e[e.length - 1].innerHTML)
|
t = parseInt(e[e.length - 1].innerHTML),
|
||||||
, o = document.getElementById("toPageText")
|
o = document.getElementById("toPageText"),
|
||||||
, n = parseInt(o.value);
|
n = parseInt(o.value);
|
||||||
if (!isNaN(n) && n > 0 && "0" !== ("" + n)[0] && n <= t) {
|
if (!isNaN(n) && n > 0 && "0" !== ("" + n)[0] && n <= t) {
|
||||||
var url = window.location.href;
|
var url = window.location.href;
|
||||||
|
|
||||||
@ -504,8 +508,10 @@ var heo = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
changeSayHelloText: function() {
|
changeSayHelloText: function() {
|
||||||
const greetings = GLOBAL_CONFIG.helloText.length == 0 ? ["🤖️ 数码科技爱好者", "🔍 分享与热心帮助", "🏠 智能家居小能手", "🔨 设计开发一条龙", "🤝 专修交互与设计", "🏃 脚踏实地行动派", "🧱 团队小组发动机", "💢 壮汉人狠话不多"] : GLOBAL_CONFIG.helloText
|
const greetings = GLOBAL_CONFIG.helloText.length == 0 ? ["🤖️ 数码科技爱好者", "🔍 分享与热心帮助", "🏠 智能家居小能手",
|
||||||
, authorInfoSayHiElement = document.getElementById("author-info__sayhi");
|
"🔨 设计开发一条龙", "🤝 专修交互与设计", "🏃 脚踏实地行动派", "🧱 团队小组发动机", "💢 壮汉人狠话不多"
|
||||||
|
] : GLOBAL_CONFIG.helloText,
|
||||||
|
authorInfoSayHiElement = document.getElementById("author-info__sayhi");
|
||||||
// 如果只有一个问候语,设置为默认值
|
// 如果只有一个问候语,设置为默认值
|
||||||
if (greetings.length === 1) {
|
if (greetings.length === 1) {
|
||||||
authorInfoSayHiElement.textContent = greetings[0];
|
authorInfoSayHiElement.textContent = greetings[0];
|
||||||
@ -589,15 +595,15 @@ var heo = {
|
|||||||
|
|
||||||
//爱发电赞助
|
//爱发电赞助
|
||||||
addPowerLinksInPostRightSide: async function() {
|
addPowerLinksInPostRightSide: async function() {
|
||||||
const image = document.getElementById("power-star-image")
|
const image = document.getElementById("power-star-image"),
|
||||||
, star = document.getElementById("power-star")
|
star = document.getElementById("power-star"),
|
||||||
, title = document.getElementById("power-star-title")
|
title = document.getElementById("power-star-title"),
|
||||||
, desc = document.getElementById("power-star-desc");
|
desc = document.getElementById("power-star-desc");
|
||||||
if (image && star && title && desc)
|
if (image && star && title && desc)
|
||||||
try {
|
try {
|
||||||
const list = GLOBAL_CONFIG.source.power.list
|
const list = GLOBAL_CONFIG.source.power.list,
|
||||||
, i = heo.getRandomInt(0, list.length)
|
i = heo.getRandomInt(0, list.length),
|
||||||
, power = list[i].realNode;
|
power = list[i].realNode;
|
||||||
image.style.backgroundImage = `url(${power.avatar})`,
|
image.style.backgroundImage = `url(${power.avatar})`,
|
||||||
star.href = power.link,
|
star.href = power.link,
|
||||||
title.innerText = power.name,
|
title.innerText = power.name,
|
||||||
@ -610,7 +616,8 @@ var heo = {
|
|||||||
|
|
||||||
//初始化console图标
|
//初始化console图标
|
||||||
initConsoleState: function() {
|
initConsoleState: function() {
|
||||||
document.documentElement.classList.contains("hide-aside") ? document.querySelector("#consoleHideAside").classList.add("on") : document.querySelector("#consoleHideAside").classList.remove("on")
|
document.documentElement.classList.contains("hide-aside") ? document.querySelector("#consoleHideAside")
|
||||||
|
.classList.add("on") : document.querySelector("#consoleHideAside").classList.remove("on")
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
@ -669,17 +676,26 @@ var heo = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
const adjectives = ["美丽的", "英俊的", "聪明的", "勇敢的", "可爱的", "慷慨的", "善良的", "可靠的", "开朗的", "成熟的", "稳重的", "真诚的", "幽默的", "豁达的", "有趣的", "活泼的", "优雅的", "敏捷的", "温柔的", "温暖的", "敬业的", "细心的", "耐心的", "深沉的", "朴素的", "含蓄的", "率直的", "开放的", "务实的", "坚强的", "自信的", "谦虚的", "文静的", "深刻的", "纯真的", "朝气蓬勃的", "慎重的", "大方的", "顽强的", "迷人的", "机智的", "善解人意的", "富有想象力的", "有魅力的", "独立的", "好奇的", "干净的", "宽容的", "尊重他人的", "体贴的", "守信的", "有耐性的", "有责任心的", "有担当的", "有远见的", "有智慧的", "有眼光的", "有冒险精神的", "有爱心的", "有同情心的", "喜欢思考的", "喜欢学习的", "具有批判性思维的", "善于表达的", "善于沟通的", "善于合作的", "善于领导的", "有激情的", "有幽默感的", "有思想的", "有个性的", "有正义感的", "有责任感的", "有创造力的", "有想象力的", "有艺术细胞的", "有团队精神的", "有协调能力的", "有决策能力的", "有组织能力的", "有学习能力的", "有执行能力的", "有分析能力的", "有逻辑思维的", "有创新能力的", "有专业素养的", "有商业头脑的"]
|
const adjectives = ["美丽的", "英俊的", "聪明的", "勇敢的", "可爱的", "慷慨的", "善良的", "可靠的", "开朗的", "成熟的", "稳重的", "真诚的", "幽默的", "豁达的",
|
||||||
, vegetablesAndFruits = ["萝卜", "白菜", "芹菜", "生菜", "青椒", "辣椒", "茄子", "豆角", "黄瓜", "西红柿", "洋葱", "大蒜", "土豆", "南瓜", "豆腐", "韭菜", "花菜", "西兰花", "蘑菇", "金针菇", "苹果", "香蕉", "橙子", "柠檬", "猕猴桃", "草莓", "葡萄", "桃子", "杏子", "李子", "石榴", "西瓜", "哈密瓜", "蜜瓜", "樱桃", "蓝莓", "柿子", "橄榄", "柚子", "火龙果"];
|
"有趣的", "活泼的", "优雅的", "敏捷的", "温柔的", "温暖的", "敬业的", "细心的", "耐心的", "深沉的", "朴素的", "含蓄的", "率直的", "开放的", "务实的", "坚强的",
|
||||||
|
"自信的", "谦虚的", "文静的", "深刻的", "纯真的", "朝气蓬勃的", "慎重的", "大方的", "顽强的", "迷人的", "机智的", "善解人意的", "富有想象力的", "有魅力的", "独立的",
|
||||||
|
"好奇的", "干净的", "宽容的", "尊重他人的", "体贴的", "守信的", "有耐性的", "有责任心的", "有担当的", "有远见的", "有智慧的", "有眼光的", "有冒险精神的", "有爱心的",
|
||||||
|
"有同情心的", "喜欢思考的", "喜欢学习的", "具有批判性思维的", "善于表达的", "善于沟通的", "善于合作的", "善于领导的", "有激情的", "有幽默感的", "有思想的", "有个性的",
|
||||||
|
"有正义感的", "有责任感的", "有创造力的", "有想象力的", "有艺术细胞的", "有团队精神的", "有协调能力的", "有决策能力的", "有组织能力的", "有学习能力的", "有执行能力的",
|
||||||
|
"有分析能力的", "有逻辑思维的", "有创新能力的", "有专业素养的", "有商业头脑的"
|
||||||
|
],
|
||||||
|
vegetablesAndFruits = ["萝卜", "白菜", "芹菜", "生菜", "青椒", "辣椒", "茄子", "豆角", "黄瓜", "西红柿", "洋葱", "大蒜", "土豆", "南瓜", "豆腐",
|
||||||
|
"韭菜", "花菜", "西兰花", "蘑菇", "金针菇", "苹果", "香蕉", "橙子", "柠檬", "猕猴桃", "草莓", "葡萄", "桃子", "杏子", "李子", "石榴", "西瓜", "哈密瓜",
|
||||||
|
"蜜瓜", "樱桃", "蓝莓", "柿子", "橄榄", "柚子", "火龙果"
|
||||||
|
];
|
||||||
$(document).ready((function() {
|
$(document).ready((function() {
|
||||||
initBlog()
|
initBlog()
|
||||||
}
|
})),
|
||||||
)),
|
|
||||||
document.addEventListener("pjax:complete", (function() {
|
document.addEventListener("pjax:complete", (function() {
|
||||||
initBlog();
|
initBlog();
|
||||||
// 解决 katex pjax问题
|
// 解决 katex pjax问题
|
||||||
if((GLOBAL_CONFIG.htmlType == 'post' || GLOBAL_CONFIG.htmlType == 'page') && typeof window.renderKaTex != 'undefined'){
|
if ((GLOBAL_CONFIG.htmlType == 'post' || GLOBAL_CONFIG.htmlType == 'page') && typeof window
|
||||||
|
.renderKaTex != 'undefined') {
|
||||||
window.renderKaTex();
|
window.renderKaTex();
|
||||||
}
|
}
|
||||||
}
|
}));
|
||||||
));
|
|
@ -39,9 +39,9 @@ var btf = {
|
|||||||
loadLightbox: ele => {
|
loadLightbox: ele => {
|
||||||
|
|
||||||
const jqLoadAndRun = () => {
|
const jqLoadAndRun = () => {
|
||||||
const $fancyboxEle = GLOBAL_CONFIG.lightbox === 'fancybox'
|
const $fancyboxEle = GLOBAL_CONFIG.lightbox === 'fancybox' ?
|
||||||
? ele
|
ele :
|
||||||
: []
|
[]
|
||||||
const fbLengthNoZero = $fancyboxEle.length > 0
|
const fbLengthNoZero = $fancyboxEle.length > 0
|
||||||
|
|
||||||
if (fbLengthNoZero) {
|
if (fbLengthNoZero) {
|
||||||
@ -60,7 +60,9 @@ var btf = {
|
|||||||
const $this = $(o)
|
const $this = $(o)
|
||||||
const lazyloadSrc = $this.attr('data-lazy-src') || $this.attr('src')
|
const lazyloadSrc = $this.attr('data-lazy-src') || $this.attr('src')
|
||||||
const dataCaption = $this.attr('alt') || ''
|
const dataCaption = $this.attr('alt') || ''
|
||||||
$this.wrap(`<a href="${lazyloadSrc}" data-fancybox="images" data-caption="${dataCaption}" class="fancybox" data-srcset="${lazyloadSrc}"></a>`)
|
$this.wrap(
|
||||||
|
`<a href="${lazyloadSrc}" data-fancybox="images" data-caption="${dataCaption}" class="fancybox" data-srcset="${lazyloadSrc}"></a>`
|
||||||
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
$().fancybox({
|
$().fancybox({
|
||||||
@ -146,7 +148,11 @@ var btf = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
snackbarShow: (text, showActionFunction = false, duration = 2000, actionText = false) => {
|
snackbarShow: (text, showActionFunction = false, duration = 2000, actionText = false) => {
|
||||||
const { position, bgLight, bgDark } = GLOBAL_CONFIG.Snackbar;
|
const {
|
||||||
|
position,
|
||||||
|
bgLight,
|
||||||
|
bgDark
|
||||||
|
} = GLOBAL_CONFIG.Snackbar;
|
||||||
const bg = document.documentElement.getAttribute("data-theme") === "light" ? bgLight : bgDark;
|
const bg = document.documentElement.getAttribute("data-theme") === "light" ? bgLight : bgDark;
|
||||||
const root = document.querySelector(":root");
|
const root = document.querySelector(":root");
|
||||||
root.style.setProperty("--heo-snackbar-time", duration + "ms");
|
root.style.setProperty("--heo-snackbar-time", duration + "ms");
|
||||||
@ -173,8 +179,7 @@ var btf = {
|
|||||||
this.$container.style.opacity = "1"
|
this.$container.style.opacity = "1"
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}))
|
||||||
))
|
|
||||||
document.querySelectorAll('#article-container .loadings')[0]?.classList.remove("loadings");
|
document.querySelectorAll('#article-container .loadings')[0]?.classList.remove("loadings");
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -225,7 +230,9 @@ var btf = {
|
|||||||
callback()
|
callback()
|
||||||
observerItem.disconnect()
|
observerItem.disconnect()
|
||||||
}
|
}
|
||||||
}, {threshold: [0]})
|
}, {
|
||||||
|
threshold: [0]
|
||||||
|
})
|
||||||
observerItem.observe(dom)
|
observerItem.observe(dom)
|
||||||
} else {
|
} else {
|
||||||
callback()
|
callback()
|
||||||
@ -256,8 +263,7 @@ var btf = {
|
|||||||
window.scrollTo(0, n - (n - e) * r / t),
|
window.scrollTo(0, n - (n - e) * r / t),
|
||||||
r < t ? window.requestAnimationFrame(i) : window.scrollTo(0, e)
|
r < t ? window.requestAnimationFrame(i) : window.scrollTo(0, e)
|
||||||
}
|
}
|
||||||
}
|
}))
|
||||||
))
|
|
||||||
},
|
},
|
||||||
|
|
||||||
fadeIn: (ele, time) => {
|
fadeIn: (ele, time) => {
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
templates/assets/libs/crypto/crypto-js.min.js
vendored
Normal file
1
templates/assets/libs/crypto/crypto-js.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -279,10 +279,37 @@ i.haofont.hao-icon-arrow-right.banner-righticon{
|
|||||||
--hao-gl-size: 16px !important;
|
--hao-gl-size: 16px !important;
|
||||||
}
|
}
|
||||||
#aside-content .card-announcement .item-headline i{
|
#aside-content .card-announcement .item-headline i{
|
||||||
color: red;
|
color: palevioletred;
|
||||||
|
margin-left: -6px;
|
||||||
}
|
}
|
||||||
/* 小板报 */
|
/* 小板报 */
|
||||||
|
|
||||||
|
#aside-content .card-ad .item-headline i{
|
||||||
|
color: orangered;
|
||||||
|
margin-left: -6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#aside-content .card-power .item-headline i{
|
||||||
|
color: mediumpurple;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#aside-content .card-categories .item-headline i{
|
||||||
|
color: burlywood;
|
||||||
|
margin-right: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#aside-content .card-toc .item-headline i{
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#aside-content .card-comment .item-headline i{
|
||||||
|
color: rosybrown;
|
||||||
|
}
|
||||||
|
|
||||||
|
#aside-content .card-article .item-headline i{
|
||||||
|
color: cornflowerblue;
|
||||||
|
}
|
||||||
|
|
||||||
/* Steam卡片 */
|
/* Steam卡片 */
|
||||||
#aside-content .item-headline-steam {
|
#aside-content .item-headline-steam {
|
||||||
|
@ -200,7 +200,9 @@ function imageToBlob(imageURL) {
|
|||||||
|
|
||||||
async function copyImage(imageURL) {
|
async function copyImage(imageURL) {
|
||||||
const blob = await imageToBlob(imageURL)
|
const blob = await imageToBlob(imageURL)
|
||||||
const item = new ClipboardItem({"image/png": blob});
|
const item = new ClipboardItem({
|
||||||
|
"image/png": blob
|
||||||
|
});
|
||||||
navigator.clipboard.write([item]);
|
navigator.clipboard.write([item]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -300,7 +302,8 @@ rm.insertAtCaret = function (elemt, value) {
|
|||||||
} else {
|
} else {
|
||||||
if (startPos || startPos == '0') {
|
if (startPos || startPos == '0') {
|
||||||
var scrollTop = elemt.scrollTop;
|
var scrollTop = elemt.scrollTop;
|
||||||
elemt.value = elemt.value.substring(0, startPos) + value + elemt.value.substring(endPos, elemt.value.length);
|
elemt.value = elemt.value.substring(0, startPos) + value + elemt.value.substring(endPos, elemt.value
|
||||||
|
.length);
|
||||||
elemt.focus();
|
elemt.focus();
|
||||||
elemt.selectionStart = startPos + value.length;
|
elemt.selectionStart = startPos + value.length;
|
||||||
elemt.selectionEnd = startPos + value.length;
|
elemt.selectionEnd = startPos + value.length;
|
||||||
|
@ -2064,7 +2064,7 @@ blockquote footer cite::before {
|
|||||||
|
|
||||||
#aside-content .card-archives ul.card-archive-list,
|
#aside-content .card-archives ul.card-archive-list,
|
||||||
#aside-content .card-categories ul.card-category-list {
|
#aside-content .card-categories ul.card-category-list {
|
||||||
margin: 0px;
|
margin: 8px 0 0 0;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
@ -2860,11 +2860,11 @@ blockquote footer cite::before {
|
|||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
#nav .menus_items .menus_item {
|
/* #nav .menus_items .menus_item {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0px 0.4rem 0px 0px;
|
padding: 0px 0.4rem 0px 0px;
|
||||||
}
|
} */
|
||||||
|
|
||||||
#nav .menus_items .recursion_menus_item:hover>.menus_item_child,
|
#nav .menus_items .recursion_menus_item:hover>.menus_item_child,
|
||||||
#nav .menus_items .menus_item:hover>.menus_item_child {
|
#nav .menus_items .menus_item:hover>.menus_item_child {
|
||||||
@ -7438,7 +7438,7 @@ span.fund_name {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#aside-content .card-widget.card-power .power-charge {
|
#aside-content .card-widget.card-power .power-charge {
|
||||||
margin-left: auto;
|
margin-left: 6.5rem;
|
||||||
color: var(--heo-secondtext);
|
color: var(--heo-secondtext);
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 1
|
line-height: 1
|
||||||
@ -7491,7 +7491,7 @@ a#power-star {
|
|||||||
flex-wrap: nowrap;
|
flex-wrap: nowrap;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 12px 0;
|
margin: 12px 10px;
|
||||||
background: var(--heo-secondbg);
|
background: var(--heo-secondbg);
|
||||||
transition: .3s ease-out
|
transition: .3s ease-out
|
||||||
}
|
}
|
||||||
@ -11557,15 +11557,15 @@ blockquote p {
|
|||||||
|
|
||||||
#article-container .headerlink {
|
#article-container .headerlink {
|
||||||
float: right;
|
float: right;
|
||||||
opacity: 0.08;
|
opacity: 0.5;
|
||||||
border-bottom-style: none;
|
border-bottom-style: none;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 8px !important;
|
border-radius: 8px !important;
|
||||||
line-height: 1;
|
/* line-height: 1; */
|
||||||
font-size: 1rem;
|
/* font-size: 1rem; */
|
||||||
}
|
}
|
||||||
|
|
||||||
#article-container .headerlink:hover {
|
#article-container .headerlink:hover {
|
||||||
@ -12432,11 +12432,6 @@ a.reward-main-btn:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 评论 */
|
/* 评论 */
|
||||||
/* ---------------------------------------------------------------- */
|
|
||||||
/* ---------------------------------------------------------------- */
|
|
||||||
/* ---------------------------------------------------------------- */
|
|
||||||
/* ---------------------------------------------------------------- */
|
|
||||||
/* ---------------------------------------------------------------- */
|
|
||||||
div#post-comment {
|
div#post-comment {
|
||||||
margin-top: 2rem;
|
margin-top: 2rem;
|
||||||
}
|
}
|
||||||
@ -16830,8 +16825,8 @@ span.hexo-douban-pagenum {
|
|||||||
|
|
||||||
.author-content-item .card-content .banner-button-group {
|
.author-content-item .card-content .banner-button-group {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 1.5rem;
|
bottom: 1rem;
|
||||||
right: 2rem;
|
right: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.author-content-item .card-content .banner-button-group .banner-button {
|
.author-content-item .card-content .banner-button-group .banner-button {
|
||||||
@ -16867,7 +16862,7 @@ span.hexo-douban-pagenum {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.author-content-item .card-content .banner-button-group .banner-button {
|
.author-content-item .card-content .banner-button-group .banner-button {
|
||||||
background: none;
|
background: none !important;
|
||||||
color: var(--heo-white);
|
color: var(--heo-white);
|
||||||
padding: 0;
|
padding: 0;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
@ -18931,3 +18926,9 @@ body[data-type=neodb] .type-button-group button {
|
|||||||
margin: 12px 0 0 0;
|
margin: 12px 0 0 0;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ad-img:hover {
|
||||||
|
-webkit-backface-visibility: hidden;
|
||||||
|
-webkit-transform-style: preserve-3d;
|
||||||
|
transform: scale(1.05)
|
||||||
|
}
|
@ -152,6 +152,8 @@
|
|||||||
|
|
||||||
<script th:src="${assets_link + '/libs/pjax/pjax.min.js'}"></script>
|
<script th:src="${assets_link + '/libs/pjax/pjax.min.js'}"></script>
|
||||||
|
|
||||||
|
<script th:src="${assets_link + '/libs/crypto/crypto-js.min.js'}"></script>
|
||||||
|
|
||||||
<!-- swiper 在瞬间滚动时会使用 -->
|
<!-- swiper 在瞬间滚动时会使用 -->
|
||||||
<script th:if="${theme.config.top.moment}" data-pjax
|
<script th:if="${theme.config.top.moment}" data-pjax
|
||||||
src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/Swiper/6.6.2/swiper-bundle.min.js"></script>
|
src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/Swiper/6.6.2/swiper-bundle.min.js"></script>
|
||||||
|
@ -58,7 +58,6 @@
|
|||||||
power: {
|
power: {
|
||||||
powerLink: [[${theme.config.sidebar.power.powerLink}]],
|
powerLink: [[${theme.config.sidebar.power.powerLink}]],
|
||||||
url: [[${theme.config.sidebar.power.url}]],
|
url: [[${theme.config.sidebar.power.url}]],
|
||||||
userId: [[${theme.config.sidebar.power.userId}]],
|
|
||||||
showNum: [[${theme.config.sidebar.power.showNum}]]
|
showNum: [[${theme.config.sidebar.power.showNum}]]
|
||||||
},
|
},
|
||||||
links: {
|
links: {
|
||||||
|
@ -16,8 +16,8 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card-widget" th:if="${theme.config.sidebar.adbox.adType=='customAd'}">
|
<div class="card-widget card-ad" th:if="${theme.config.sidebar.adbox.adType=='customAd'}">
|
||||||
<div class="item-headline"><i class="haofont hao-icon-bullhorn"></i><span>广告</span></div>
|
<div class="item-headline"><i class="haofont hao-icon-fire"></i><span>广告</span></div>
|
||||||
<a th:href="${theme.config.sidebar.adbox.ad_custom.ad_redirect_url}" target="_blank" title="立即前往">
|
<a th:href="${theme.config.sidebar.adbox.ad_custom.ad_redirect_url}" target="_blank" title="立即前往">
|
||||||
<img class="ad-img" th:src="${theme.config.sidebar.adbox.ad_custom.ad_pic_url}" alt="自定义广告">
|
<img class="ad-img" th:src="${theme.config.sidebar.adbox.ad_custom.ad_pic_url}" alt="自定义广告">
|
||||||
</a>
|
</a>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!-- 最新评论 -->
|
<!-- 最新评论 -->
|
||||||
<div class="card-widget card-recent-post" >
|
<div class="card-widget card-recent-post card-comment" >
|
||||||
<a th:if="${not #strings.isEmpty(theme.config.sidebar.newcomment.newcommentUrl)}"
|
<a th:if="${not #strings.isEmpty(theme.config.sidebar.newcomment.newcommentUrl)}"
|
||||||
th:onclick="pjax.loadUrl([[${theme.config.sidebar.newcomment.newcommentUrl}]])"
|
th:onclick="pjax.loadUrl([[${theme.config.sidebar.newcomment.newcommentUrl}]])"
|
||||||
title="查看更多"
|
title="查看更多"
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<!-- 爱发电赞助 -->
|
<!-- 爱发电赞助 -->
|
||||||
<div>
|
<div>
|
||||||
<div class="card-widget card-power">
|
<div class="card-widget card-power">
|
||||||
<div class="item-headline"><i class="haofont hao-icon-aifadian-line"></i><span>爱发电赞助</span>
|
<div class="item-headline"><i class="haofont hao-icon-aifadian-line"></i><span>爱发电</span>
|
||||||
<a class="power-charge" th:href="${theme.config.sidebar.power.powerLink}" target="_blank" title="赞助博主">赞助
|
<a class="power-charge" th:href="${theme.config.sidebar.power.powerLink}" target="_blank" title="赞助博主">赞助
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<a id="power-star" rel="external nofollow" target="_blank" title="推荐博主">
|
<a id="power-star" rel="external nofollow" target="_blank" title="感谢赞助博主">
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
<div class="power-list">
|
<div class="power-list">
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<div class="card-widget card-recent-post" th:with='posts = ${postFinder.list(1,theme.config.sidebar.recentPost)},
|
<div class="card-widget card-recent-post card-article" th:with='posts = ${postFinder.list(1,theme.config.sidebar.recentPost)},
|
||||||
postRandomImg=${#strings.contains(theme.config.layout.postRandomImg,"?") ? theme.config.layout.postRandomImg+"&" : theme.config.layout.postRandomImg+"?"}'>
|
postRandomImg=${#strings.contains(theme.config.layout.postRandomImg,"?") ? theme.config.layout.postRandomImg+"&" : theme.config.layout.postRandomImg+"?"}'>
|
||||||
<div class="item-headline"><i class="haofont hao-icon-eicon_map-2-line1"></i><span>最近发布</span></div>
|
<div class="item-headline"><i class="haofont hao-icon-eicon_map-2-line1"></i><span>最近发布</span></div>
|
||||||
<div class="aside-list">
|
<div class="aside-list">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!-- 目录 -->
|
<!-- 目录 -->
|
||||||
<div class="card-widget" id="card-toc">
|
<div class="card-widget card-toc" id="card-toc">
|
||||||
<div class="item-headline">
|
<div class="item-headline">
|
||||||
<i class="haofont hao-icon-bars"></i>
|
<i class="haofont hao-icon-bars"></i>
|
||||||
<span>文章目录</span>
|
<span>文章目录</span>
|
||||||
|
@ -4,9 +4,9 @@
|
|||||||
<!-- 功能都需要添加开关 -->
|
<!-- 功能都需要添加开关 -->
|
||||||
|
|
||||||
<!-- 随机前往一个开往项目网站 -->
|
<!-- 随机前往一个开往项目网站 -->
|
||||||
<div class="nav-button only-home" id="travellings_button" title="随机前往一个开往项目网站" th:if="${theme.config.nav.right.travelling}">
|
<div class="nav-button only-home" id="travellings_button" title="随机前往一个开往项目网站"
|
||||||
<a class="site-page" href="https://www.travellings.cn/go.html" rel="external nofollow"
|
th:if="${theme.config.nav.right.travelling}">
|
||||||
title="随机前往一个开往项目网站">
|
<a class="site-page" href="https://www.travellings.cn/go.html" rel="external nofollow" title="随机前往一个开往项目网站">
|
||||||
<i class="haofont hao-icon-eicon_train-line"></i>
|
<i class="haofont hao-icon-eicon_train-line"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@ -19,8 +19,8 @@
|
|||||||
|
|
||||||
<!-- 切换模式 -->
|
<!-- 切换模式 -->
|
||||||
<div class="nav-button" id="darkmode_button" th:if="${theme.config.nav.right.darkMode}">
|
<div class="nav-button" id="darkmode_button" th:if="${theme.config.nav.right.darkMode}">
|
||||||
<a class="console_switchbutton" href="javascript:void(0);" onclick="navFn.switchDarkMode();" rel="external nofollow"
|
<a class="console_switchbutton" href="javascript:void(0);" onclick="navFn.switchDarkMode();"
|
||||||
title="切换模式 - 日夜交替,黑白互换。">
|
rel="external nofollow" title="切换模式 - 日夜交替,黑白互换。">
|
||||||
<i class="haofont hao-icon-moon-clear-fill" style="font-size: 1rem;"></i>
|
<i class="haofont hao-icon-moon-clear-fill" style="font-size: 1rem;"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@ -37,8 +37,7 @@
|
|||||||
th:with="currentUser = ${contributorFinder.getContributor(#authentication.name)}">
|
th:with="currentUser = ${contributorFinder.getContributor(#authentication.name)}">
|
||||||
<span class="site-page nav-login">
|
<span class="site-page nav-login">
|
||||||
<i sec:authorize="isAnonymous()" class="haofont hao-icon-zhanghao1 " style="font-size: 19.5px;"></i>
|
<i sec:authorize="isAnonymous()" class="haofont hao-icon-zhanghao1 " style="font-size: 19.5px;"></i>
|
||||||
<img sec:authorize="isAuthenticated()" th:src="${currentUser.avatar}"
|
<img sec:authorize="isAuthenticated()" th:src="${currentUser.avatar}" th:alt="${currentUser.displayName}"
|
||||||
th:alt="${currentUser.displayName}"
|
|
||||||
style=" width: 24px; height: 24px; border-radius: 9999px" />
|
style=" width: 24px; height: 24px; border-radius: 9999px" />
|
||||||
</span>
|
</span>
|
||||||
<div class="back-menu-list-groups">
|
<div class="back-menu-list-groups">
|
||||||
@ -49,11 +48,12 @@
|
|||||||
<span class="back-menu-item-text">控制台</span>
|
<span class="back-menu-item-text">控制台</span>
|
||||||
</a>
|
</a>
|
||||||
<a class="back-menu-item" rel="external nofollow"
|
<a class="back-menu-item" rel="external nofollow"
|
||||||
href="javascript:$.ajax({type: 'post',url:'/logout'});window.location.reload()">
|
href="javascript:$.ajax({type: 'post',url:'/logout',headers:{'X-Xsrf-Token':document.cookie.split('; ').find((row) => row.startsWith('XSRF-TOKEN'))?.split('=')[1] || ''},success: function() {window.location.reload();},error: function(xhr, status, error) {console.error('退出登录时发生错误:', error);}});">
|
||||||
<span class="back-menu-item-text">退出登录</span>
|
<span class="back-menu-item-text">退出登录</span>
|
||||||
</a>
|
</a>
|
||||||
</th:block>
|
</th:block>
|
||||||
<a sec:authorize="isAnonymous()" class="back-menu-item" rel="external nofollow" target="_blank" href="/console/login">
|
<a sec:authorize="isAnonymous()" class="back-menu-item" rel="external nofollow" target="_blank"
|
||||||
|
href="/console/login">
|
||||||
<span class="back-menu-item-text">登录</span>
|
<span class="back-menu-item-text">登录</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -48,8 +48,8 @@ spec:
|
|||||||
description: Halo 2.x Theme base on Thymeleaf, Referring to Butterfly and Heo
|
description: Halo 2.x Theme base on Thymeleaf, Referring to Butterfly and Heo
|
||||||
logo: /themes/theme-hao/assets/images/hao-logo.jpg
|
logo: /themes/theme-hao/assets/images/hao-logo.jpg
|
||||||
website: https://blog.uptoz.cn
|
website: https://blog.uptoz.cn
|
||||||
repo: https://githubfast.com/liuzhihang/halo-theme-hao
|
repo: https://gitea.uptoz.cn/UPToZ/halo-theme-hao
|
||||||
settingName: "theme-hao-setting"
|
settingName: "theme-hao-setting"
|
||||||
configMapName: "theme-hao-configMap"
|
configMapName: "theme-hao-configMap"
|
||||||
version: "1.4.9-CommemorativeEdition"
|
version: "1.0.1-ce"
|
||||||
require: ">=2.10.0"
|
require: ">=2.10.0"
|
||||||
|
Loading…
Reference in New Issue
Block a user