优化代码

This commit is contained in:
1152958806@qq.com 2023-12-03 01:18:05 +08:00
parent 7906eff660
commit 8de7ebcea8
102 changed files with 932 additions and 1328 deletions

View File

@ -1424,23 +1424,6 @@ spec:
- group: fcircle
label: 友链鱼塘
formSchema:
- $formkit: attachment
name: backgroundImg
label: 背景图
value: https://npm.onmicrosoft.cn/hao-theme-static@1.3.6/images/64624940e3623.jpeg
placeholder: 请输入图片地址
- $formkit: text
name: smallTitle
label: 小标题
value: 友链
- $formkit: text
name: bigTitle
label: 大标题
value: 最新文章订阅
- $formkit: text
name: detail
label: 描述
value: 使用 友链朋友圈 订阅友链最新文章
- $formkit: text
name: buttonTitle
label: 按钮标题
@ -1489,22 +1472,6 @@ spec:
label: 默认
- value: one
label: 样式一
- $formkit: attachment
if: $get(photosStyle).value == 'default'
name: backgroundImg
label: 背景图
value: https://liuzhihang.com/upload/moments.png
- $formkit: text
if: $get(photosStyle).value == 'default'
name: smallTitle
key: smallTitle
label: 小标题
value: 相册集
- $formkit: text
name: bigTitle
key: bigTitle
label: 大标题
value: 这里是我的相册集哦😯
- $formkit: text
name: topLink
key: topLink
@ -1530,26 +1497,9 @@ spec:
- group: todo
label: 待办清单
formSchema:
- $formkit: attachment
name: backgroundImg
label: 背景图
value: https://npm.onmicrosoft.cn/hao-theme-static@1.3.6/images/64624940e3623.jpeg
placeholder: 请输入图片地址
- $formkit: text
name: smallTitle
label: 小标题
value: 想做清单
- $formkit: text
name: bigTitle
label: 大标题
value: ToDoList
- $formkit: text
name: detail
label: 描述
value: 要做的事还有很多,想做的事源源不断
- $formkit: repeater
name: list
label: 待办清单
label: 待办清单列表
value: [ ]
children:
- $formkit: text
@ -1605,27 +1555,6 @@ spec:
label: 描述
value: 跟我一起享受科技带来的乐趣
- group: new_comment
label: 最近评论
formSchema:
- $formkit: attachment
name: backgroundImg
label: 背景图
value: https://liuzhihang.com/upload/moments.png
placeholder: 请输入图片地址
- $formkit: text
name: smallTitle
label: 小标题
value: 评论
- $formkit: text
name: bigTitle
label: 大标题
value: 最近评论
- $formkit: text
name: detail
label: 描述
value: 快速查看本站最近评论内容。
- group: envelope_comment
label: 留言板
formSchema:

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'about',title = ${'关于' + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${singlePage.spec.title},
@ -79,7 +79,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'page',title = ${singlePage.spec.title + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${singlePage.spec.title},
@ -19,10 +19,10 @@
<main class="layout hide-aside" id="content-inner">
<div id="page">
<div id="album" th:if="${#strings.equals(theme.config.photos.photosStyle, 'default')}">
<div th:replace="~{macro/author-content :: author-content(background = ${theme.config.photos.backgroundImg},
smallTitle = ${theme.config.photos.smallTitle},
bigTitle = ${theme.config.photos.bigTitle},
detail = ${theme.config.photos.detail},
<div th:replace="~{macro/author-content :: author-content(background = ${singlePage.spec.cover},
smallTitle = '相册集',
bigTitle = ${singlePage.spec.title},
detail = ${singlePage.spec.excerpt.raw},
buttonUrl = '',
buttonTitle = '')}"></div>
@ -182,7 +182,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
<!-- 卡片顶部气泡效果 -->
<script th:if="${theme.config.other.bubbleEnable}" async data-pjax
th:src="${assets_link + '/libs/canvas/bubble.js'}"></script>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'archive',title = ${'文章归档' + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = '文章归档',
@ -59,7 +59,7 @@
<div th:replace="~{modules/aside :: aside(${theme.config.sidebar.widgetss.categoryWidgets})}"></div>
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="chrome=1">

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'bangumis',title = ${'追番' + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = '追番',
@ -534,7 +534,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'category',title = ${'分类' + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = '分类目录',
@ -49,7 +49,7 @@
</div>
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'category',title = ${'分类' + ': ' + category.spec.displayName + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = '分类',
@ -40,7 +40,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'comments',title = ${singlePage.spec.title + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${singlePage.spec.title},
@ -276,7 +276,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'equipments',title = ${title + ' | ' + site.title}, head = ~{::head},_title = ${title})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${_title},
@ -202,7 +202,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
<!-- 卡片顶部气泡效果 -->
<script th:if="${theme.config.other.bubbleEnable}" async data-pjax
th:src="${assets_link + '/libs/canvas/bubble.js'}"></script>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = '404', title = '404', head = null)}"
<html lang="zh-CN" th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = '404', title = '404', head = null)}"
xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="content">
@ -48,7 +48,7 @@
</div>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = '500', title = '500', head = null)}"
<html lang="zh-CN" th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = '500', title = '500', head = null)}"
xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="content">
@ -48,7 +48,7 @@
</div>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'fcircle',title = ${singlePage.spec.title + ' | ' + site.title}, head = ~{::head} )}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${singlePage.spec.title},
@ -18,10 +18,10 @@
</header>
<main class="layout hide-aside" id="content-inner">
<div id="page">
<div th:replace="~{macro/author-content :: author-content(background = ${theme.config.fcircle.backgroundImg},
smallTitle = ${theme.config.fcircle.smallTitle},
bigTitle = ${theme.config.fcircle.bigTitle},
detail = ${theme.config.fcircle.detail},
<div th:replace="~{macro/author-content :: author-content(background = ${singlePage.spec.cover},
smallTitle = '友链',
bigTitle = ${singlePage.spec.title},
detail = ${singlePage.spec.excerpt.raw},
buttonUrl = ${theme.config.fcircle.buttonUrl},
buttonTitle = ${theme.config.fcircle.buttonTitle})}" ></div>
<!--钓鱼-->
@ -91,7 +91,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
<!-- 卡片顶部气泡效果 -->
<script th:if="${theme.config.other.bubbleEnable}" async data-pjax th:src="${assets_link + '/libs/canvas/bubble.js'}"></script>
</div>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'index', title = null, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${site.title},
@ -15,15 +15,15 @@
<header th:class="${theme.config.top.above.enable_above ? 'full_page' : 'not-top-img'}" id="page-header">
<nav th:replace="~{modules/nav :: nav(title = ${siteTitle})}"></nav>
<!-- 问候语 -->
<th:block th:replace="~{modules/header/greeting :: greeting}"></th:block>
<th:block th:replace="~{modules/header/greeting}"/>
<!-- 第一屏 -->
<th:block th:replace="~{modules/header/index-img :: index-img}"></th:block>
<th:block th:replace="~{modules/header/index-img}"/>
</header>
<div id="home_top">
<!-- 每日说说 -->
<div th:replace="~{modules/moment :: moment}"></div>
<div th:replace="~{modules/moment}"/>
<!-- 置顶内容 -->
<div th:replace="~{modules/recent-top :: recent-top}"></div>
<div th:replace="~{modules/recent-top}"/>
</div>
<main class="layout" id="content-inner" th:classappend="${theme.config.sidebar.location}">
<div class="recent-posts" id="recent-posts">
@ -31,13 +31,13 @@
<!-- 分类导航栏 -->
<div th:replace="~{'modules/bar/' + ${theme.config.layout.navs.nav}}"></div>
<th:block th:replace="~{modules/post-list :: post-list}"></th:block>
<th:block th:replace="~{modules/post-list}"/>
</div>
<div th:replace="~{modules/aside :: aside(${theme.config.sidebar.widgetss.indexWidgets})}"></div>
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'links',title = ${'友链' + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = '友链',
@ -38,7 +38,7 @@
</div>
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,8 +1,6 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<div th:fragment="author-content(background, smallTitle, bigTitle, detail,buttonUrl,buttonTitle)"
class="author-content author-content-item essayPage single"
th:style="'background:url('+${background}+') left 28% / cover no-repeat !important;'">
class="author-content author-content-item essayPage single"
th:style="'background:url('+${background}+') left 28% / cover no-repeat !important;'">
<div class="card-content">
<div class="author-content-item-tips" th:text="${smallTitle}"></div>
<span class="author-content-item-title" th:text="${bigTitle}"></span>
@ -17,5 +15,3 @@
</div>
</div>
</div>
</html>

View File

@ -1,5 +1,3 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="bangumi-item(spec)">
<div class="bangumi-item">
<div class="bangumi-picture no-lightbox">
@ -51,5 +49,3 @@
</div>
</div>
</th:block>
</html>

View File

@ -1,25 +1,20 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="prism-code">
<th:block th:if="${theme.config.code.enable}">
<link rel="preload" as="style" onload="this.rel='stylesheet'"
th:href="${assets_link+'/libs/prism/prism.min.css'}">
<link rel="preload" as="style" onload="this.rel='stylesheet'"
th:href="${assets_link+'/libs/prism/code.css'}">
<link rel="preload" as="style" onload="this.rel='stylesheet'" data-code-theme="light"
th:href="${assets_link+ '/libs/prism/themes/prism-'+theme.config.code.theme_light+'.css'}">
<link rel="preload" as="style" onload="this.rel='stylesheet'" data-code-theme="dark"
th:href="${assets_link+'/libs/prism/themes/prism-'+theme.config.code.theme_dark+'.css'}">
<script data-pjax type="text/javascript" th:src="${assets_link+'/libs/prism/prism.min.js'}"></script>
<th:block th:if="${theme.config.code.enable}">
<link rel="preload" as="style" onload="this.rel='stylesheet'"
th:href="${assets_link+'/libs/prism/prism.min.css'}">
<link rel="preload" as="style" onload="this.rel='stylesheet'"
th:href="${assets_link+'/libs/prism/code.css'}">
<link rel="preload" as="style" onload="this.rel='stylesheet'" data-code-theme="light"
th:href="${assets_link+ '/libs/prism/themes/prism-'+theme.config.code.theme_light+'.css'}">
<link rel="preload" as="style" onload="this.rel='stylesheet'" data-code-theme="dark"
th:href="${assets_link+'/libs/prism/themes/prism-'+theme.config.code.theme_dark+'.css'}">
<script data-pjax type="text/javascript" th:src="${assets_link+'/libs/prism/prism.min.js'}"></script>
<style>
<style>
#article-container .code-toolbar pre.close{
overflow: hidden;
height: [[${theme.config.code.height_limit}]]px;
}
</style>
#article-container .code-toolbar pre.close{
overflow: hidden;
height: [[${theme.config.code.height_limit}]]px;
}
</style>
</th:block>
</th:block>
</html>
</th:block>

View File

@ -1,11 +1,7 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 关于小组件 -->
<th:block th:fragment="about-widgets(widgets)"
th:if="${not #lists.isEmpty(widgets)}">
<th:block th:each="widget : ${widgets}">
<th:block th:replace="~{'modules/widgets/about-widgets/'+ ${widget.widgetId}}"/>
</th:block>
</th:block>
</html>
th:if="${not #lists.isEmpty(widgets)}">
<th:block th:each="widget : ${widgets}">
<th:block th:replace="~{'modules/widgets/about-widgets/'+ ${widget.widgetId}}"/>
</th:block>
</th:block>

View File

@ -1,6 +1,3 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 侧边栏 -->
<div class="aside-content" id="aside-content" th:fragment="aside(widgets)"
th:if="${theme.config.sidebar.location != 'hide-aside' && not #strings.isEmpty(widgets)}">
@ -30,7 +27,7 @@
<!-- toc 之后的组件需要被 sticky_layout 包裹 -->
<div class="sticky_layout">
<th:block th:replace="~{modules/widgets/aside/toc :: toc}"/>
<th:block th:replace="~{modules/widgets/aside/toc}"/>
<th:block th:each="widget : ${#strings.listSplit(#strings.substringAfter(widgets, 'toc'), ',')}">
<th:block th:replace="~{'modules/widgets/aside/'+ ${widget}}"/>
@ -39,5 +36,4 @@
</th:block>
</div>
</html>
</div>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 目录条 -->
<div id="category-bar" th:fragment="category">
<div id="category-bar">
<div class="category-bar-items" id="category-bar-items">
<div class="category-bar-item select" id="category-bar-home">
<a href="/">首页</a>
@ -17,7 +15,5 @@
</th:block>
</div>
<a class="category-bar-more" th:replace="~{modules/bar/more :: more}">更多</a>
</div>
</html>
<a class="category-bar-more" th:replace="~{modules/bar/more}">更多</a>
</div>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 目录条 -->
<div id="category-bar" th:fragment="custom-category">
<div id="category-bar">
<div class="category-bar-items" id="category-bar-items">
<div class="category-bar-item select" id="category-bar-home">
<a href="/">首页</a>
@ -16,7 +14,5 @@
</th:block>
</div>
<a class="category-bar-more" th:replace="~{modules/bar/more :: more}">更多</a>
<a class="category-bar-more" th:replace="~{modules/bar/more}">更多</a>
</div>
</html>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 目录条,这里使用和 category-bar 同样的 css -->
<div id="category-bar" th:fragment="custom-tag">
<div id="category-bar">
<div class="category-bar-items" id="category-bar-items">
<div class="category-bar-item select" id="category-bar-home">
<a href="/">首页</a>
@ -16,7 +14,5 @@
</th:block>
</div>
<a class="category-bar-more" th:replace="~{modules/bar/more :: more}">更多</a>
<a class="category-bar-more" th:replace="~{modules/bar/more}">更多</a>
</div>
</html>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 目录条,这里使用和 category-bar 同样的 css -->
<div id="category-bar" th:fragment="custom-tag">
<div id="category-bar">
<div class="category-bar-items" id="category-bar-items">
<div class="category-bar-item select" id="category-bar-home">
<a href="/">首页</a>
@ -17,7 +15,5 @@
</th:block>
</div>
<a class="category-bar-more" th:replace="~{modules/bar/more :: more}">更多</a>
</div>
</html>
<a class="category-bar-more" th:replace="~{modules/bar/more}">更多</a>
</div>

View File

@ -1,13 +1,9 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 目录条,这里使用和 category-bar 同样的 css -->
<th:block th:fragment="more">
<th:block>
<a class="category-bar-more" href="/categories"
th:if="${#strings.equals(theme.config.layout.navs.navMore, 'categories') }">更多</a>
<a class="category-bar-more" href="/tags"
th:if="${#strings.equals(theme.config.layout.navs.navMore, 'tags') }">更多</a>
<a class="category-bar-more" th:href="@{${theme.config.layout.navs.navMoreCustomUrl}}"
th:if="${#strings.equals(theme.config.layout.navs.navMore, 'customUrl') }">更多</a>
</th:block>
</html>
</th:block>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 目录条,这里使用和 category-bar 同样的 css -->
<div id="category-bar" th:fragment="tag">
<div id="category-bar">
<div class="category-bar-items" id="category-bar-items">
<div class="category-bar-item select" id="category-bar-home">
<a href="/">首页</a>
@ -17,7 +15,5 @@
</th:block>
</div>
<a class="category-bar-more" th:replace="~{modules/bar/more :: more}">更多</a>
<a class="category-bar-more" th:replace="~{modules/bar/more}">更多</a>
</div>
</html>

View File

@ -1,5 +1,3 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="comment(group, kind, name, allowComment)" th:if="${allowComment && theme.config.comments.commentsEnable}">
<!-- 已知问题 PJAX 下comment 首次请求会出错。当前的临时解决办法是使用 js 重试 -->
<div id="post-comment">
@ -39,5 +37,4 @@
<halo:comment th:if="${pluginFinder.available('PluginCommentWidget') && #strings.equals(theme.config.comments.use, 'commentWidget')}"
th:attr="name=${name},kind=${kind},group=${group}" colorScheme="document.documentElement.getAttribute('data-theme')"/>
</div>
</th:block>
</html>
</th:block>

View File

@ -1,7 +1,4 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="artalk" th:if="${#strings.equals(theme.config.comments.use, 'Artalk')
<th:block th:if="${#strings.equals(theme.config.comments.use, 'Artalk')
&& not #strings.isEmpty(theme.config.comments.artalks.server)}">
<div class="js-pjax">
<script th:src="${assets_link + '/js/comment/artalk.js'}"></script>
@ -218,6 +215,4 @@
</style>
</th:block>
</html>
</th:block>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="twikoo" th:if="${#strings.equals(theme.config.comments.use, 'Twikoo') &&
<th:block th:if="${#strings.equals(theme.config.comments.use, 'Twikoo') &&
not #strings.isEmpty(theme.config.comments.twikoos.envId)}">
<div class="js-pjax">
<script th:src="${assets_link + '/js/comment/twikoo.js'}"></script>
@ -149,5 +147,4 @@ not #strings.isEmpty(theme.config.comments.twikoos.envId)}">
document.addEventListener('pjax:complete', newestCommentInit)
})</script>
</th:block>
</html>
</th:block>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="waline" th:if="${#strings.equals(theme.config.comments.use, 'Waline')
<th:block th:if="${#strings.equals(theme.config.comments.use, 'Waline')
&& not #strings.isEmpty(theme.config.comments.walines.serverURL)}">
<div class="js-pjax">
<script th:src="${assets_link + '/js/comment/waline.js'}"></script>
@ -138,5 +136,4 @@
</script>
</th:block>
</html>
</th:block>

View File

@ -1,39 +1,31 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 51统计 -->
<th:block th:fragment="51-la">
<script th:if="${ not #strings.isEmpty(theme.config.about.LingQueMonitorID)}">
!function (p) {
"use strict";
!function (t) {
var s = window
, e = document
, i = p
, c = "".concat("https:" === e.location.protocol ? "https://" : "http://", "sdk.51.la/js-sdk-pro.min.js")
, n = e.createElement("script")
, r = e.getElementsByTagName("script")[0];
n.type = "text/javascript",
n.setAttribute("charset", "UTF-8"),
n.async = !0,
n.src = c,
n.id = "LA_COLLECT",
i.d = n;
var o = function () {
s.LA.ids.push(i)
};
s.LA ? s.LA.ids && o() : (s.LA = p,
s.LA.ids = [],
o()),
r.parentNode.insertBefore(n, r)
}()
}({
id: "[[${theme.config.about.LingQueMonitorID}]]",
ck: "[[${theme.config.about.LingQueMonitorID}]]",
hashMode: true
});
</script>
</th:block>
</html>
<script th:if="${ not #strings.isEmpty(theme.config.about.LingQueMonitorID)}">
!function (p) {
"use strict";
!function (t) {
var s = window
, e = document
, i = p
, c = "".concat("https:" === e.location.protocol ? "https://" : "http://", "sdk.51.la/js-sdk-pro.min.js")
, n = e.createElement("script")
, r = e.getElementsByTagName("script")[0];
n.type = "text/javascript",
n.setAttribute("charset", "UTF-8"),
n.async = !0,
n.src = c,
n.id = "LA_COLLECT",
i.d = n;
var o = function () {
s.LA.ids.push(i)
};
s.LA ? s.LA.ids && o() : (s.LA = p,
s.LA.ids = [],
o()),
r.parentNode.insertBefore(n, r)
}()
}({
id: "[[${theme.config.about.LingQueMonitorID}]]",
ck: "[[${theme.config.about.LingQueMonitorID}]]",
hashMode: true
});
</script>

View File

@ -1,6 +1,4 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="code">
<th:block >
<!-- 解决 pjax问题 自动识别语言-->
<th:block th:if="${pluginFinder.available('PluginPrismJS')}">
<script src="/plugins/PluginPrismJS/assets/static/highlight.js/highlight.min.js"></script>
@ -34,5 +32,3 @@
</th:block>
</th:block>
</html>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 动态标题 -->
<script th:fragment="diytitle"
<script
th:if="${theme.config.other.diytitle.diytitleEnable}">
var leaveTitle = '[[${theme.config.other.diytitle.leaveTitle}]]';
var backTitle = '[[${theme.config.other.diytitle.backTitle}]]';
@ -21,5 +19,4 @@
}, 2000)
}
})
</script>
</html>
</script>

View File

@ -1,72 +1,63 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<script th:if="${theme.config.footer.footerContent.style_one.runtime_enable}" async="async">(function () {
var grt = new Date("[[${#strings.arraySplit(theme.config.basics.siteStartTime, '-')[1]}]]/[[${#strings.arraySplit(theme.config.basics.siteStartTime, '-')[2]}]]/[[${#strings.arraySplit(theme.config.basics.siteStartTime, '-')[0]}]] 00:00:00"); //设置网站上线时间
var now = new Date();
var dnum;
var hnum;
var mnum;
var snum;
var nowHour;
var t;
var n;
<th:block th:fragment="footer-style-one">
<script th:if="${theme.config.footer.footerContent.style_one.runtime_enable}" async="async">(function () {
var grt = new Date("[[${#strings.arraySplit(theme.config.basics.siteStartTime, '-')[1]}]]/[[${#strings.arraySplit(theme.config.basics.siteStartTime, '-')[2]}]]/[[${#strings.arraySplit(theme.config.basics.siteStartTime, '-')[0]}]] 00:00:00"); //设置网站上线时间
var now = new Date();
var dnum;
var hnum;
var mnum;
var snum;
var nowHour;
var t;
var n;
// 计算并更新天数、小时数、分钟数和秒数
function updateTime() {
now = new Date(); // 更新 now 的值
nowHour = now.getHours(); // 更新 nowHour 的值
var days = (now - grt) / 1000 / 60 / 60 / 24;
dnum = Math.floor(days);
var hours = (now - grt) / 1000 / 60 / 60 - 24 * dnum;
hnum = Math.floor(hours);
if (String(hnum).length == 1) {
hnum = "0" + hnum;
}
var minutes = (now - grt) / 1000 / 60 - 24 * 60 * dnum - 60 * hnum;
mnum = Math.floor(minutes);
if (String(mnum).length == 1) {
mnum = "0" + mnum;
}
var seconds = (now - grt) / 1000 - 24 * 60 * 60 * dnum - 60 * 60 * hnum - 60 * mnum;
snum = Math.round(seconds);
if (String(snum).length == 1) {
snum = "0" + snum;
}
t = Math.trunc(234e8 + (now - grt) / 1e3 * 17)
n = (t / 1496e5).toFixed(6)
// 计算并更新天数、小时数、分钟数和秒数
function updateTime() {
now = new Date(); // 更新 now 的值
nowHour = now.getHours(); // 更新 nowHour 的值
var days = (now - grt) / 1000 / 60 / 60 / 24;
dnum = Math.floor(days);
var hours = (now - grt) / 1000 / 60 / 60 - 24 * dnum;
hnum = Math.floor(hours);
if (String(hnum).length == 1) {
hnum = "0" + hnum;
}
var minutes = (now - grt) / 1000 / 60 - 24 * 60 * dnum - 60 * hnum;
mnum = Math.floor(minutes);
if (String(mnum).length == 1) {
mnum = "0" + mnum;
}
var seconds = (now - grt) / 1000 - 24 * 60 * 60 * dnum - 60 * 60 * hnum - 60 * mnum;
snum = Math.round(seconds);
if (String(snum).length == 1) {
snum = "0" + snum;
}
t = Math.trunc(234e8 + (now - grt) / 1e3 * 17)
n = (t / 1496e5).toFixed(6)
}
// 更新网页中显示的网站运行时间
function updateHtml() {
const footer = document.getElementById("footer");
if (!footer) return
let currentTimeHtml = "";
let img = "";
let description = "";
if (nowHour < 18 && nowHour >= 9) {
// 如果是上班时间
img = "[(${theme.config.footer.footerContent.style_one.work_img})]";
description = "[(${theme.config.footer.footerContent.style_one.work_description})]";
} else {
// 如果是下班时间
img = "[(${theme.config.footer.footerContent.style_one.offduty_img})]";
description = "[(${theme.config.footer.footerContent.style_one.offduty_description})]";
}
if (document.getElementById("workboard")) {
currentTimeHtml = `<img class="workSituationImg boardsign" src="${img}" alt="${description}" title="${description}">
// 更新网页中显示的网站运行时间
function updateHtml() {
const footer = document.getElementById("footer");
if (!footer) return
let currentTimeHtml = "";
let img = "";
let description = "";
if (nowHour < 18 && nowHour >= 9) {
// 如果是上班时间
img = "[(${theme.config.footer.footerContent.style_one.work_img})]";
description = "[(${theme.config.footer.footerContent.style_one.work_description})]";
} else {
// 如果是下班时间
img = "[(${theme.config.footer.footerContent.style_one.offduty_img})]";
description = "[(${theme.config.footer.footerContent.style_one.offduty_description})]";
}
if (document.getElementById("workboard")) {
currentTimeHtml = `<img class="workSituationImg boardsign" src="${img}" alt="${description}" title="${description}">
<div id="runtimeTextTip"> 本站居然运行了 ${dnum} 天<span id='runtime'> ${hnum} 小时 ${mnum} 分 ${snum} 秒 </span><i class='haofont hao-icon-heartbeat' style='color:red'></i> <br> 旅行者 1 号当前距离地球 ${t} 千米,约为 ${n} 个天文单位 🚀 </div>`
document.getElementById("workboard").innerHTML = currentTimeHtml;
}
document.getElementById("workboard").innerHTML = currentTimeHtml;
}
setInterval(() => {
updateTime();
updateHtml();
}, 1000);
})();</script>
</th:block>
</html>
}
setInterval(() => {
updateTime();
updateHtml();
}, 1000);
})();</script>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="open-graph(_title,_permalink,_cover,_excerpt,_type)">
<!-- Open Graph Start -->
<meta property="og:site_name" th:content="${site.title}" />

View File

@ -1,8 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- Tocbot 目录生成 start -->
<th:block th:fragment="toc-bot">
<th:bloc>
<script th:src="${assets_link + '/libs/tocbot/4.18.2/tocbot.min.js'}"></script>
<link th:href="${assets_link + '/libs/tocbot/4.18.2/tocbot.css'}" rel="stylesheet">
</th:block>
</html>
</th:bloc>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 页脚模块 -->
<footer id="footer" th:fragment="footer">
<footer id="footer">
<div id="heo-footer-bar" th:if="${theme.config.footer.footer_bar.footer_bar_enable}">
<div class="footer-logo"><th:block th:utext="${theme.config.footer.footer_bar.logo}"></th:block></div>
@ -162,6 +160,4 @@
<!--评论弹幕弹窗 -->
<div class="comment-barrage needEndHide" style="display: none;"></div>
</footer>
</html>
</footer>

View File

@ -1,5 +1,3 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 公共的 head 部分,可以定义部分 links,scripts,styles -->
<th:block th:fragment="head(htmlType)">
<meta charset="UTF-8">
@ -39,12 +37,12 @@
/>
<!-- 代码块自动识别语言 -->
<th:block th:replace="~{modules/common/code :: code}"/>
<th:block th:replace="~{modules/common/code}"/>
<!-- 代码块-->
<th:block th:replace="~{macro/prism-code :: prism-code}"/>
<th:block th:replace="~{macro/prism-code}"/>
<!-- 页脚内容-样式一 -->
<th:block th:replace="~{modules/common/footer-style-one :: footer-style-one}"/>
<th:block th:replace="~{modules/common/footer-style-one}"/>
<script>
(win => {
@ -180,9 +178,7 @@
<!-- icon图标 -->
<link rel="stylesheet" th:href="${assets_link + '/icon/iconfont.css' + theme_version}">
<th:block th:replace="~{modules/variables/site-config :: site-config}" />
<th:block th:replace="~{modules/variables/site-config}" />
</th:block>
</html>

View File

@ -1,98 +1,92 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 第一屏 -->
<th:block th:fragment="greeting">
<th:block th:if="${theme.config.other.greeting.enable_greeting}">
<div id="greetingBox"></div>
<style>
#greetingBox {
position: fixed;
top: 10px;
left: 15%;
width: 400px;
text-align: center;
z-index: 10000;
pointer-events: none
}
<th:block th:if="${theme.config.other.greeting.enable_greeting}">
<div id="greetingBox"></div>
<style>
#greetingBox {
position: fixed;
top: 10px;
left: 15%;
width: 400px;
text-align: center;
z-index: 10000;
pointer-events: none
}
#greeting {
display: inline-block;
position: relative;
opacity: 0;
top: -110px;
padding: 5px 40px;
border-radius: 50px;
background-color: #fff;
color: #000;
font-size: small;
transition: .5s;
box-shadow: rgb(0 0 0 / 5%) 0 10px 20px
}
#greeting {
display: inline-block;
position: relative;
opacity: 0;
top: -110px;
padding: 5px 40px;
border-radius: 50px;
background-color: #fff;
color: #000;
font-size: small;
transition: .5s;
box-shadow: rgb(0 0 0 / 5%) 0 10px 20px
}
#greeting.shown {
opacity: 1;
top: 0
#greeting.shown {
opacity: 1;
top: 0
}
</style>
<script th:inline="javascript">
(() => {
const greeting = [[${theme.config.other.greeting.setting}]].map((itme) => {
return itme.realNode
})
let e = greeting.length !== 0 ? greeting : [
{
greeting: "晚安😴",
start_time: 0,
end_time: 5
}, {
greeting: "早上好鸭👋, 祝你一天好心情!",
start_time: 6,
end_time: 9
}, {
greeting: "上午好👋, 状态很好,鼓励一下~",
start_time: 10,
end_time: 10
}, {
greeting: "11点多啦, 在坚持一下就吃饭啦~",
start_time: 11,
end_time: 11
}, {
greeting: "午安👋, 宝贝",
start_time: 12,
end_time: 14
}, {
greeting: "🌈充实的一天辛苦啦!",
start_time: 14,
end_time: 18
}, {
greeting: "19点喽, 奖励一顿丰盛的大餐吧🍔。",
start_time: 19,
end_time: 19
}, {
greeting: "晚上好👋, 在属于自己的时间好好放松😌~",
start_time: 20,
end_time: 24
}];
let t = document.createElement("div");
t.id = "greeting", setTimeout((() => {
t.classList.add("shown")
}), 1e3);
let i = document.querySelector("#greetingBox");
i.appendChild(t);
const n = (new Date).getHours();
let r = "晚上好👋";
for (let t = 0; t < e.length; t++) if (n >= e[t].start_time && n <= e[t].end_time) {
r = e[t].greeting;
break
}
</style>
<script th:inline="javascript">
(() => {
const greeting = [[${theme.config.other.greeting.setting}]].map((itme) => {
return itme.realNode
})
let e = greeting.length !== 0 ? greeting : [
{
greeting: "晚安😴",
start_time: 0,
end_time: 5
}, {
greeting: "早上好鸭👋, 祝你一天好心情!",
start_time: 6,
end_time: 9
}, {
greeting: "上午好👋, 状态很好,鼓励一下~",
start_time: 10,
end_time: 10
}, {
greeting: "11点多啦, 在坚持一下就吃饭啦~",
start_time: 11,
end_time: 11
}, {
greeting: "午安👋, 宝贝",
start_time: 12,
end_time: 14
}, {
greeting: "🌈充实的一天辛苦啦!",
start_time: 14,
end_time: 18
}, {
greeting: "19点喽, 奖励一顿丰盛的大餐吧🍔。",
start_time: 19,
end_time: 19
}, {
greeting: "晚上好👋, 在属于自己的时间好好放松😌~",
start_time: 20,
end_time: 24
}];
let t = document.createElement("div");
t.id = "greeting", setTimeout((() => {
t.classList.add("shown")
}), 1e3);
let i = document.querySelector("#greetingBox");
i.appendChild(t);
const n = (new Date).getHours();
let r = "晚上好👋";
for (let t = 0; t < e.length; t++) if (n >= e[t].start_time && n <= e[t].end_time) {
r = e[t].greeting;
break
}
t.innerHTML = r, setTimeout((() => {
t.classList.remove("shown"), setTimeout((() => {
i.remove()
}), 500)
}), 3e3)
})()
</script>
</th:block>
</th:block>
</html>
t.innerHTML = r, setTimeout((() => {
t.classList.remove("shown"), setTimeout((() => {
i.remove()
}), 500)
}), 3e3)
})()
</script>
</th:block>

View File

@ -1,282 +1,275 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 第一屏 -->
<th:block th:fragment="index-img">
<th:block th:if="${theme.config.top.above.enable_above}">
<div class="pl-container">
<th:block th:if="!${theme.config.top.above.enable_above_video}">
<div class="pl-img pl-blur pl-visible"></div>
<div class="pl-img pl-visible"></div>
<video class="video"></video>
</th:block>
<th:block th:if="${theme.config.top.above.enable_above_video}">
<video class="index-video" id="index-video" autoplay=""
th:src="${theme.config.top.above.index_video}" loop="" muted="" playsinline=""
webkit-playsinline=""
style="display:block;object-fit:cover;width:100%;height:100%;pointer-events:none;">
</video>
</th:block>
<th:block th:if="${theme.config.top.above.enable_above}">
<div class="pl-container">
<th:block th:if="!${theme.config.top.above.enable_above_video}">
<div class="pl-img pl-blur pl-visible"></div>
<div class="pl-img pl-visible"></div>
<video class="video"></video>
</th:block>
<th:block th:if="${theme.config.top.above.enable_above_video}">
<video class="index-video" id="index-video" autoplay=""
th:src="${theme.config.top.above.index_video}" loop="" muted="" playsinline=""
webkit-playsinline=""
style="display:block;object-fit:cover;width:100%;height:100%;pointer-events:none;">
</video>
</th:block>
</div>
<div id="site-info">
<h1 id="site-title">[[${site.title}]]</h1>
<div id="site-subtitle">
<span id="subtitle"></span>
<span class="typed-cursor" aria-hidden="true"></span>
</div>
</div>
<div id="scroll-down"><i class="haofont hao-icon-angle-down scroll-down-effects"></i></div>
<div id="site-info">
<h1 id="site-title">[[${site.title}]]</h1>
<div id="site-subtitle">
<span id="subtitle"></span>
<span class="typed-cursor" aria-hidden="true"></span>
</div>
</div>
<div id="scroll-down"><i class="haofont hao-icon-angle-down scroll-down-effects"></i></div>
<link rel="stylesheet" th:href="${assets_link + '/css/fullPage.css' + theme_version}">
<link rel="stylesheet" th:href="${assets_link + '/css/fullPage.css' + theme_version}">
<style>
#site-title {
width: max-content;
max-width: 100%;
position: relative;
color: rgba(255, 255, 255, 0);
animation: 1.5s linear 1s 1 normal both running show;
margin: 0px auto !important;
}
<style>
#site-title {
width: max-content;
max-width: 100%;
position: relative;
color: rgba(255, 255, 255, 0);
animation: 1.5s linear 1s 1 normal both running show;
margin: 0px auto !important;
}
#site-title::after {
content: "";
position: absolute;
left: 0px;
margin: auto;
border-radius: 12px;
top: 11px;
height: 55px;
width: 110%;
animation: 2s cubic-bezier(0.62, 0.21, 0.25, 1) 1.5s 1 normal both running color_change, 2s cubic-bezier(0.62, 0.21, 0.25, 1) 1.5s 1 normal both running swipe_box;
}
@media screen and (max-width: 768px) {
#site-title::after {
content: "";
position: absolute;
left: 0px;
margin: auto;
border-radius: 12px;
top: 11px;
height: 55px;
width: 110%;
animation: 2s cubic-bezier(0.62, 0.21, 0.25, 1) 1.5s 1 normal both running color_change, 2s cubic-bezier(0.62, 0.21, 0.25, 1) 1.5s 1 normal both running swipe_box;
}
@media screen and (max-width: 768px) {
#site-title::after {
background: rgb(255, 255, 255) !important;
}
}
@media screen and (max-width: 768px) {
#site-subtitle::after {
background: rgb(255, 255, 255) !important;
}
}
#site-subtitle {
width: 100%;
max-width: 100%;
position: relative;
animation: 1.5s linear 1s 1 normal both running show;
margin: 0px auto !important;
background: rgb(255, 255, 255) !important;
}
}
@media screen and (max-width: 768px) {
#site-subtitle::after {
content: "";
position: absolute;
background: rgb(255, 255, 255) !important;
}
}
#site-subtitle {
width: 100%;
max-width: 100%;
position: relative;
animation: 1.5s linear 1s 1 normal both running show;
margin: 0px auto !important;
}
#site-subtitle::after {
content: "";
position: absolute;
left: 0px;
right: 0px;
margin: auto;
border-radius: 12px;
height: 100%;
width: 0%;
animation: 2s cubic-bezier(0.62, 0.21, 0.25, 1) 1.5s 1 normal both running color_change, 2s cubic-bezier(0.62, 0.21, 0.25, 1) 1.5s 1 normal both running swipe_box2;
}
@keyframes color_change {
0% {
background: rgb(255, 255, 255);
}
100% {
background: var(--xlfd-main);
}
}
@-webkit-keyframes color_change {
0% {
background: rgb(255, 255, 255);
}
100% {
background: var(--xlfd-main);
}
}
@-webkit-keyframes swipe_box {
0% {
left: 0px;
right: 0px;
margin: auto;
border-radius: 12px;
height: 100%;
width: 0%;
animation: 2s cubic-bezier(0.62, 0.21, 0.25, 1) 1.5s 1 normal both running color_change, 2s cubic-bezier(0.62, 0.21, 0.25, 1) 1.5s 1 normal both running swipe_box2;
}
@keyframes color_change {
0% {
background: rgb(255, 255, 255);
}
100% {
background: var(--xlfd-main);
}
50% {
left: 0px;
width: 100%;
}
@-webkit-keyframes color_change {
0% {
background: rgb(255, 255, 255);
}
100% {
left: 100%;
width: 0%;
}
}
100% {
background: var(--xlfd-main);
}
@keyframes swipe_box {
0% {
left: 0px;
width: 0%;
}
@-webkit-keyframes swipe_box {
0% {
left: 0px;
width: 0%;
}
50% {
left: 0px;
width: 100%;
}
100% {
left: 100%;
width: 0%;
}
50% {
left: 0px;
width: 100%;
}
@keyframes swipe_box {
0% {
left: 0px;
width: 0%;
}
100% {
left: 100%;
width: 0%;
}
}
50% {
left: 0px;
width: 100%;
}
100% {
left: 100%;
width: 0%;
}
@-webkit-keyframes swipe_box2 {
0% {
left: 0px;
width: 0%;
}
@-webkit-keyframes swipe_box2 {
0% {
left: 0px;
width: 0%;
}
50% {
left: 0px;
width: 80%;
}
100% {
left: 0px;
width: 0%;
}
50% {
left: 0px;
width: 80%;
}
@keyframes swipe_box2 {
0% {
left: 0px;
width: 0%;
}
100% {
left: 0px;
width: 0%;
}
}
50% {
left: 0px;
width: 80%;
}
100% {
left: 0px;
width: 0%;
}
@keyframes swipe_box2 {
0% {
left: 0px;
width: 0%;
}
@-webkit-keyframes show {
0% {
color: rgba(255, 255, 255, 0);
text-shadow: transparent 2px 3px 10px;
}
81% {
color: rgba(255, 255, 255, 0);
}
100% {
color: rgb(255, 255, 255);
}
50% {
left: 0px;
width: 80%;
}
@keyframes show {
0% {
color: rgba(255, 255, 255, 0);
text-shadow: transparent 2px 3px 10px;
}
100% {
left: 0px;
width: 0%;
}
}
81% {
color: rgba(255, 255, 255, 0);
}
100% {
color: rgb(255, 255, 255);
}
@-webkit-keyframes show {
0% {
color: rgba(255, 255, 255, 0);
text-shadow: transparent 2px 3px 10px;
}
81% {
color: rgba(255, 255, 255, 0);
}
100% {
color: rgb(255, 255, 255);
}
}
@keyframes show {
0% {
color: rgba(255, 255, 255, 0);
text-shadow: transparent 2px 3px 10px;
}
81% {
color: rgba(255, 255, 255, 0);
}
100% {
color: rgb(255, 255, 255);
}
}
.pl-img {
background-image: url([[${theme.config.top.above.index_img}]]);
}
@media screen and (max-width: 768px) {
.pl-img {
background-image: url([[${theme.config.top.above.index_img}]]);
background-image: url([[${theme.config.top.above.phone_index_img}]]);
}
}
@media screen and (max-width: 768px) {
.pl-img {
background-image: url([[${theme.config.top.above.phone_index_img}]]);
}
.typed-cursor {
opacity: 1;
}
.typed-cursor.typed-cursor--blink {
animation: typedjsBlink 0.7s infinite;
-webkit-animation: typedjsBlink 0.7s infinite;
animation: typedjsBlink 0.7s infinite;
}
@keyframes typedjsBlink {
50% {
opacity: 0.0;
}
}
.typed-cursor {
@-webkit-keyframes typedjsBlink {
0% {
opacity: 1;
}
.typed-cursor.typed-cursor--blink {
animation: typedjsBlink 0.7s infinite;
-webkit-animation: typedjsBlink 0.7s infinite;
animation: typedjsBlink 0.7s infinite;
50% {
opacity: 0.0;
}
@keyframes typedjsBlink {
50% {
opacity: 0.0;
}
100% {
opacity: 1;
}
@-webkit-keyframes typedjsBlink {
0% {
opacity: 1;
}
50% {
opacity: 0.0;
}
100% {
opacity: 1;
}
}
</style>
<script th:inline="javascript">
function subtitleType() {
if([[${theme.config.top.above.enable_typed_random}]]){
fetch("https://v1.hitokoto.cn").then((t => t.json())).then((t => {
{
const e = "出自 " + t.from;
const n = [[${theme.config.top.above.typed}]].map((item) => {
return item.realNode.text;
});
n.push(t.hitokoto, e), window.typed = new Typed("#subtitle", {
strings: n,
startDelay: 300,
typeSpeed: 100,
loop: !0,
backSpeed: 50
})
}
}))
}else{
const n = [[${theme.config.top.above.typed}]].map((item) => {
return item.realNode.text;
});
window.typed = new Typed("#subtitle", {
strings: n,
startDelay: 300,
typeSpeed: 100,
loop: !0,
backSpeed: 50
})
}
</style>
<script th:inline="javascript">
function subtitleType() {
if([[${theme.config.top.above.enable_typed_random}]]){
fetch("https://v1.hitokoto.cn").then((t => t.json())).then((t => {
{
const e = "出自 " + t.from;
const n = [[${theme.config.top.above.typed}]].map((item) => {
return item.realNode.text;
});
n.push(t.hitokoto, e), window.typed = new Typed("#subtitle", {
strings: n,
startDelay: 300,
typeSpeed: 100,
loop: !0,
backSpeed: 50
})
}
}))
}else{
const n = [[${theme.config.top.above.typed}]].map((item) => {
return item.realNode.text;
});
window.typed = new Typed("#subtitle", {
strings: n,
startDelay: 300,
typeSpeed: 100,
loop: !0,
backSpeed: 50
})
}
}
// 防止加载文字太短时第一个自定义文字显示不出来
setTimeout(()=>{
"function" == typeof Typed ? subtitleType() : getScript("https://npm.elemecdn.com/typed.js@2.0.12/lib/typed.min.js").then(subtitleType)
},1800)
</script>
</th:block>
</th:block>
</html>
}
// 防止加载文字太短时第一个自定义文字显示不出来
setTimeout(()=>{
"function" == typeof Typed ? subtitleType() : getScript("https://npm.elemecdn.com/typed.js@2.0.12/lib/typed.min.js").then(subtitleType)
},1800)
</script>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" th:fragment="layout(content, htmlType, title, head)" xmlns:th="http://www.thymeleaf.org"
<html lang="zh-CN" th:fragment="layout(content, htmlType, title, head)" xmlns:th="http://www.thymeleaf.org"
th:with="assets_link=${theme.config.other.staticResource.use == 'onmicrosoft' ? 'https://npm.onmicrosoft.cn/hao-theme-static@' + theme.spec.version +'/templates/assets' :
theme.config.other.staticResource.use == 'cbd' ? 'https://cdn.cbd.int/hao-theme-static@' + theme.spec.version +'/templates/assets' :
theme.config.other.staticResource.use == 'custom' ? theme.config.other.staticResource.cdn_link : #theme.assets('/')},
@ -26,7 +26,7 @@
<body>
<!-- loading 页面 -->
<th:block th:replace="~{modules/loading-box :: loading-box}"></th:block>
<th:block th:replace="~{modules/loading-box}"/>
<!-- 网站背景 -->
<div id="web_bg"></div>
@ -35,13 +35,13 @@
<div id="an_music_bg"></div>
<!-- 控制台 -->
<div th:replace="~{modules/widgets/console :: console}"></div>
<div th:replace="~{modules/widgets/console}"/>
<div th:replace="~{modules/sidebar :: sidebar}"></div>
<div th:replace="~{modules/sidebar}"/>
<!-- 左下角音乐 -->
<th:block th:if="${theme.config.tool.nav_music.nav_musicEnable}" >
<div th:replace="~{modules/widgets/nav-music :: nav-music}"></div>
<div th:replace="~{modules/widgets/nav-music}"/>
</th:block>
<!-- 内容 -->
@ -49,10 +49,10 @@
<!-- todo 右下角悬浮操作按钮 -->
<th:block th:replace="~{modules/widgets/rightside :: rightside}"></th:block>
<th:block th:replace="~{modules/widgets/rightside}"/>
<div th:replace="~{modules/widgets/right-menu :: right-menu}"></div>
<div th:replace="~{modules/widgets/right-menu}"/>
<div>
<script th:src="${assets_link + '/js/utils.js' + theme_version}"></script>
@ -71,7 +71,7 @@
<div class="js-pjax">
<!-- 动态标题 -->
<script th:replace="~{modules/common/diytitle :: diytitle}"></script>
<script th:replace="~{modules/common/diytitle}"/>
</div>
<!-- 评论 -->
@ -124,10 +124,10 @@
th:src="${assets_link + '/zhheo/commentBarrage.js'}"></script>
<!-- Tocbot 目录生成 start -->
<th:block th:replace="~{modules/common/toc-bot :: toc-bot}"></th:block>
<th:block th:replace="~{modules/common/toc-bot}"/>
<!-- 51统计 -->
<th:block th:replace="~{modules/common/51-la :: 51-la}"></th:block>
<th:block th:replace="~{modules/common/51-la}"/>
<!--官方评论插件js-->
<script th:if="${pluginFinder.available('PluginCommentWidget')}" src="/plugins/PluginCommentWidget/assets/static/comment-widget.iife.js"></script>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- loading页面 -->
<th:block th:fragment="loading-box"
<th:block
th:if="${theme.config.other.loadingBoxs.loadingBoxEnable} and not ${#strings.isEmpty(theme.config.other.loadingBoxs.loadingBoxImg)}">
<style type="text/css">
#loading-box {
@ -103,5 +101,3 @@
</script>
</th:block>
</html>

View File

@ -1,7 +1,4 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<div class="bbTimeList container" id="bbTimeList" th:fragment="moment"
<div class="bbTimeList container" id="bbTimeList"
th:if="${theme.config.top.moment}">
<i class="haofont hao-icon-logo-moment" onclick="" style="font-size: 1.3rem;" title="瞬间"></i>
@ -36,5 +33,4 @@
onclick="halo.changeMarginLeft(this)"
th:data-lazy-src="${ isLazyload ? theme.config.top.climb.climbImg : ''}">
</div>
</html>
</div>

View File

@ -1,10 +1,8 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<nav class="show" id="nav" th:fragment="nav(title)">
<div id="nav-group">
<!-- 导航栏左侧 -->
<div th:replace="~{modules/widgets/nav-left :: nav-left}"></div>
<div th:replace="~{modules/widgets/nav-left}"/>
<div id="page-name-mask">
<div id="page-name" >
<a id="page-name-text" onclick="btf.scrollToDest(0,500)"
@ -16,9 +14,7 @@
<div th:replace="~{modules/widgets/nav-menu :: nav-menu}"></div>
<!-- 导航栏右侧 -->
<div th:replace="~{modules/widgets/nav-right :: nav-right}"></div>
<div th:replace="~{modules/widgets/nav-right}"/>
</div>
</nav>
</html>
</nav>

View File

@ -1,7 +1,4 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="post-list"
<th:block
th:with='postItems=${posts.items},
postRandomImg=${#strings.contains(theme.config.layout.postRandomImg,"?") ? theme.config.layout.postRandomImg+"&" : theme.config.layout.postRandomImg+"?"}'>
@ -107,5 +104,3 @@
<div th:replace="~{modules/widgets/page :: page('',${posts},true,'')}"></div>
</th:block>
</html>

View File

@ -1,17 +1,9 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 版权声明 -->
<th:block th:fragment="copyright">
<th:block >
<!-- 默认样式 -->
<th:block th:replace="~{modules/post/copyright/copyright-default :: copyright-default}"></th:block>
<th:block th:replace="~{modules/post/copyright/copyright-default}"/>
<!-- 样式一 -->
<th:block th:replace="~{modules/post/copyright/copyright-one :: copyright-one}"></th:block>
<th:block th:replace="~{modules/post/copyright/copyright-one}"/>
</th:block>
</html>
</th:block>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 版权样式默认 -->
<th:block th:fragment="copyright-default" th:if="${#strings.equals(theme.config.post.copyrightsStyle, 'default')}">
<th:block th:if="${#strings.equals(theme.config.post.copyrightsStyle, 'default')}">
<div class="post-tools" id="post-tools">
<div class="post-tools-left">
@ -111,6 +109,3 @@
<link rel="stylesheet" th:href="${assets_link + '/css/post-copyright.css' + theme_version}">
</th:block>
</html>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 版权样式一 -->
<th:block th:fragment="copyright-one" th:if="${#strings.equals(theme.config.post.copyrightsStyle, 'one')}">
<th:block th:if="${#strings.equals(theme.config.post.copyrightsStyle, 'one')}">
<!-- 版权声明 -->
<div class="post-copyright">
<div class="post-copyright__author_group"><a class="post-copyright__author_img" href="/about"
@ -96,7 +94,3 @@
</div>
<link rel="stylesheet" th:href="${assets_link + '/css/post-copyright-one.css' + theme_version}">
</th:block>
</html>

View File

@ -1,7 +1,6 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 阅读建议 -->
<th:block th:fragment="relatedPosts" th:if="${not #lists.isEmpty(post.categories)}" th:with="recommendQuantity = ${theme.config.post.recommendQuantity},
<th:block th:if="${not #lists.isEmpty(post.categories)}" th:with="recommendQuantity = ${theme.config.post.recommendQuantity},
recommandPosts = ${postFinder.listByCategory(1,recommendQuantity == 'six' ? 7 : recommendQuantity == 'two' ? 3 : 1,post.categories.get(0).metadata.name)},
containsTitle = ${#strings.contains(recommandPosts,post.spec.title)},
postRandomImg=${#strings.contains(theme.config.layout.postRandomImg,'?') ? theme.config.layout.postRandomImg+'&' : theme.config.layout.postRandomImg+'?'}">
@ -56,5 +55,4 @@ postRandomImg=${#strings.contains(theme.config.layout.postRandomImg,'?') ? theme
th:href="${assets_link + '/css/related-posts-six.css' + theme_version}">
<link th:if="${#strings.equals(recommendQuantity, 'two')}" rel="stylesheet"
th:href="${assets_link + '/css/related-posts-two.css' + theme_version}">
</th:block>
</html>
</th:block>

View File

@ -1,17 +1,12 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 置顶的文章-->
<div class="recent-top-post-group" id="recent-top-post-group"
th:fragment="recent-top"
th:if="${theme.config.top.recentTop}">
<div class="recent-post-top" id="recent-post-top">
<!-- banner -->
<div th:replace="~{modules/widgets/banner-group :: banner-group}"></div>
<div th:replace="~{modules/widgets/banner-group}"/>
<!-- top -->
<div th:replace="~{modules/widgets/top-group :: top-group}"></div>
<div th:replace="~{modules/widgets/top-group}"/>
</div>
</div>
</html>

View File

@ -1,9 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 侧栏,主要是手机端时会使用 -->
<div id="sidebar" th:fragment="sidebar">
<div id="sidebar">
<div id="menu-mask"></div>
<div id="sidebar-menus">
<span class="sidebar-menu-item-title">功能</span>
@ -77,5 +73,4 @@
</div>
</div>
</div>
</div>
</html>
</div>

View File

@ -1,4 +1,4 @@
<style type="text/css" th:inline="css" th:fragment="variables-root">
<style type="text/css" th:inline="css">
[data-theme=light] {
--heo-theme: [(${theme.config.style.themeLightSkin})] !important;
--heo-theme-op: [(${theme.config.style.themeLightSkin})]23 !important;

View File

@ -1,135 +1,130 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="site-config">
<!-- 声明一些公共信息 -->
<script id="site-config" th:inline="javascript">
var GLOBAL_CONFIG = {
// 页面类型 index,page,post,tag,category
htmlType: [[${ htmlType }]],
postTitle: [[${ htmlType == 'post' ? post.spec.title : htmlType == 'page' ? singlePage.spec.title : ''}]],
isPost: [[${htmlType == 'post'}]],
isHome: [[${ htmlType == 'index'}]],
copyright: undefined,
lightbox: 'fancybox',
lazyload: {enable: [[${theme.config.other.vanillaLazyload.enable}]], error: [[@{${theme.config.other.vanillaLazyload.errorImg}}]] },
isFriendLinksInFooter: [[${theme.config.footer.footer_group.enable_footer_group}]],
loadingBox: [[${theme.config.other.loadingBoxs.loadingBoxEnable}]],
loadProgressBar: [[${theme.config.other.loadingBoxs.loadProgressBar}]],
navMusicEnable:[[${theme.config.tool.nav_music.nav_musicEnable}]],
isMusic: [[${ htmlType == 'music'}]],
helloText: [[${#strings.listSplit(theme.config.sidebar.profile.helloText, ',')}]],
profileStyle: [[${theme.config.sidebar.profile.profileStyle}]],
rightMenuEnable: [[${theme.config.tool.rightMenu.rightMenuEnable}]],
date_suffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
<!-- 声明一些公共信息 -->
<script id="site-config" th:inline="javascript">
var GLOBAL_CONFIG = {
// 页面类型 index,page,post,tag,category
htmlType: [[${ htmlType }]],
postTitle: [[${ htmlType == 'post' ? post.spec.title : htmlType == 'page' ? singlePage.spec.title : ''}]],
isPost: [[${htmlType == 'post'}]],
isHome: [[${ htmlType == 'index'}]],
copyright: undefined,
lightbox: 'fancybox',
lazyload: {enable: [[${theme.config.other.vanillaLazyload.enable}]], error: [[@{${theme.config.other.vanillaLazyload.errorImg}}]] },
isFriendLinksInFooter: [[${theme.config.footer.footer_group.enable_footer_group}]],
loadingBox: [[${theme.config.other.loadingBoxs.loadingBoxEnable}]],
loadProgressBar: [[${theme.config.other.loadingBoxs.loadProgressBar}]],
navMusicEnable:[[${theme.config.tool.nav_music.nav_musicEnable}]],
isMusic: [[${ htmlType == 'music'}]],
helloText: [[${#strings.listSplit(theme.config.sidebar.profile.helloText, ',')}]],
profileStyle: [[${theme.config.sidebar.profile.profileStyle}]],
rightMenuEnable: [[${theme.config.tool.rightMenu.rightMenuEnable}]],
date_suffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
Snackbar: {
chs_to_cht: "你已切换为繁体",
cht_to_chs: "你已切换为简体",
day_to_night: "你已切换为深色模式",
night_to_day: "你已切换为浅色模式",
bgLight: "[(${theme.config.style.themeLightSkin})]",
bgDark: "[(${theme.config.style.themeDarkSkin})]",
position: "top-center",
},
translate: {
defaultEncoding:[[${theme.config.style.translate.defaultEncoding}]],
translateDelay:0,
msgToTraditionalChinese:"繁",
msgToSimplifiedChinese:"简",
rightMenuMsgToTraditionalChinese:"轉為繁體",
rightMenuMsgToSimplifiedChinese:"转为简体"
},
prism: {
enable: [[${ theme.config.code.enable }]],
enable_title: [[${ theme.config.code.enable_title }]],
enable_hr: [[${ theme.config.code.enable_hr }]],
enable_line: [[${ theme.config.code.enable_line }]],
enable_copy: [[${ theme.config.code.enable_copy }]],
enable_expander: [[${ theme.config.code.enable_expander }]],
prism_limit: Number([[${#strings.isEmpty(theme.config.code.height_limit) ? 300 : theme.config.code.height_limit}]])+30,
enable_height_limit: [[${theme.config.code.enable_height_limit}]]
},
source: {
power:{
list:[[${theme.config.sidebar.power.list}]]
},
Snackbar: {
chs_to_cht: "你已切换为繁体",
cht_to_chs: "你已切换为简体",
day_to_night: "你已切换为深色模式",
night_to_day: "你已切换为浅色模式",
bgLight: "[(${theme.config.style.themeLightSkin})]",
bgDark: "[(${theme.config.style.themeDarkSkin})]",
position: "top-center",
links: {
linksUrl: [[${ theme.config.link.linksUrl }]],
linksNum: [[${theme.config.footer.footer_group.num}]],
},
translate: {
defaultEncoding:[[${theme.config.style.translate.defaultEncoding}]],
translateDelay:0,
msgToTraditionalChinese:"繁",
msgToSimplifiedChinese:"简",
rightMenuMsgToTraditionalChinese:"轉為繁體",
rightMenuMsgToSimplifiedChinese:"转为简体"
jQuery: 'https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.6.0/jquery.min.js',
justifiedGallery: {
js: 'https://npm.elemecdn.com/flickr-justified-gallery@2.1.2/dist/fjGallery.min.js',
css: 'https://npm.elemecdn.com/flickr-justified-gallery@2.1.2/dist/fjGallery.css'
},
prism: {
enable: [[${ theme.config.code.enable }]],
enable_title: [[${ theme.config.code.enable_title }]],
enable_hr: [[${ theme.config.code.enable_hr }]],
enable_line: [[${ theme.config.code.enable_line }]],
enable_copy: [[${ theme.config.code.enable_copy }]],
enable_expander: [[${ theme.config.code.enable_expander }]],
prism_limit: Number([[${#strings.isEmpty(theme.config.code.height_limit) ? 300 : theme.config.code.height_limit}]])+30,
enable_height_limit: [[${theme.config.code.enable_height_limit}]]
fancybox: {
js: 'https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/fancybox/3.5.7/jquery.fancybox.min.js',
css: '/null'
},
source: {
power:{
list:[[${theme.config.sidebar.power.list}]]
},
links: {
linksUrl: [[${ theme.config.link.linksUrl }]],
linksNum: [[${theme.config.footer.footer_group.num}]],
},
jQuery: 'https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.6.0/jquery.min.js',
justifiedGallery: {
js: 'https://npm.elemecdn.com/flickr-justified-gallery@2.1.2/dist/fjGallery.min.js',
css: 'https://npm.elemecdn.com/flickr-justified-gallery@2.1.2/dist/fjGallery.css'
},
fancybox: {
js: 'https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/fancybox/3.5.7/jquery.fancybox.min.js',
css: '/null'
},
comments:{
use: [[${theme.config.comments.use}]],
maxBarrage: [[${ theme.config.comments.commentBarrageConfig.maxBarrage }]],
barrageTime: [[${ theme.config.comments.commentBarrageConfig.barrageTime }]],
mailMd5: "[(${theme.config.comments.commentBarrageConfig.mailMd5})]",
lazyload: [[${theme.config.comments.lazyload}]],
textarea: [[${ theme.config.comments.use == 'Twikoo' ? 'el-textarea__inner' :
comments:{
use: [[${theme.config.comments.use}]],
maxBarrage: [[${ theme.config.comments.commentBarrageConfig.maxBarrage }]],
barrageTime: [[${ theme.config.comments.commentBarrageConfig.barrageTime }]],
mailMd5: "[(${theme.config.comments.commentBarrageConfig.mailMd5})]",
lazyload: [[${theme.config.comments.lazyload}]],
textarea: [[${ theme.config.comments.use == 'Twikoo' ? 'el-textarea__inner' :
theme.config.comments.use == 'Artalk' ? 'atk-textarea' :
theme.config.comments.use == 'Waline' ? 'wl-editor' : 'appearance-none' }]]
},
welcome:{
key:"[(${theme.config.sidebar.welcome.key})]",
locationLng: [[${theme.config.sidebar.welcome.locationLng}]],
locationLat: [[${theme.config.sidebar.welcome.locationLat}]]
},
post:{
dynamicBackground: [[${ theme.config.post.dynamicBackground }]]
},
tool:{
switch: [[${ theme.config.tool.snackbar.switch }]]
},
postAi:{
ai : [[${htmlType != 'post' || !theme.config.post.aiDescription.aiDescriptionEnable ? '' :
},
welcome:{
key:"[(${theme.config.sidebar.welcome.key})]",
locationLng: [[${theme.config.sidebar.welcome.locationLng}]],
locationLat: [[${theme.config.sidebar.welcome.locationLat}]]
},
post:{
dynamicBackground: [[${ theme.config.post.dynamicBackground }]]
},
tool:{
switch: [[${ theme.config.tool.snackbar.switch }]]
},
postAi:{
ai : [[${htmlType != 'post' || !theme.config.post.aiDescription.aiDescriptionEnable ? '' :
theme.config.post.aiDescription.mode != 'local' && !theme.config.post.aiDescription.switchBtn ? '' :
post.spec.excerpt.autoGenerate ? '本地模式需要自己填写文章摘要' :
#strings.isEmpty(post.status.excerpt) ? '请填写文章摘要' : post.status.excerpt }]],
randomNum : [[${theme.config.post.aiDescription.randomNum}]],
basicWordCount : [[${theme.config.post.aiDescription.basicWordCount}]],
btnLink : "[(${theme.config.post.aiDescription.btnLink})]",
gptName : "[(${theme.config.post.aiDescription.gptName})]",
modeName : [[${theme.config.post.aiDescription.mode}]],
switchBtn : [[${theme.config.post.aiDescription.switchBtn}]],
keys : "[(${theme.config.post.aiDescription.key})]",
Referers : "[(${theme.config.post.aiDescription.Referer})]",
},
img:{
src: [[${isLazyload ? 'data-lazy-src' : 'src' }]]
},
twikoo:{
js:[[${not #strings.isEmpty(theme.config.comments.twikoos.js) ? theme.config.comments.twikoos.js : assets_link +'/libs/twikoo/twikoo.all.min.js' }]],
twikooUrl: "[(${theme.config.comments.twikoos.envId})]",
accessToken: "[(${theme.config.comments.twikoos.accessToken})]",
},
artalk:{
js:[[${not #strings.isEmpty(theme.config.comments.artalks.artalkJs) ? theme.config.comments.artalks.artalkJs : assets_link +'/libs/artalk/Artalk.js' }]],
css:[[${not #strings.isEmpty(theme.config.comments.artalks.artalkCss) ? theme.config.comments.artalks.artalkCss : assets_link +'/libs/artalk/Artalk.css' }]],
artalkUrl: "[(${theme.config.comments.artalks.server})]",
siteName: "[(${theme.config.comments.artalks.siteName})]",
},
waline:{
js:[[${not #strings.isEmpty(theme.config.comments.walines.walinesJs) ? theme.config.comments.walines.walinesJs : 'https://cdn.cbd.int/@waline/client@2.15.7/dist/waline.js' }]],
serverURL: "[(${theme.config.comments.walines.serverURL})]",
locale: [(${not #strings.isEmpty(theme.config.comments.walines.locale) ? theme.config.comments.walines.locale : {} })]
},
randomNum : [[${theme.config.post.aiDescription.randomNum}]],
basicWordCount : [[${theme.config.post.aiDescription.basicWordCount}]],
btnLink : "[(${theme.config.post.aiDescription.btnLink})]",
gptName : "[(${theme.config.post.aiDescription.gptName})]",
modeName : [[${theme.config.post.aiDescription.mode}]],
switchBtn : [[${theme.config.post.aiDescription.switchBtn}]],
keys : "[(${theme.config.post.aiDescription.key})]",
Referers : "[(${theme.config.post.aiDescription.Referer})]",
},
img:{
src: [[${isLazyload ? 'data-lazy-src' : 'src' }]]
},
twikoo:{
js:[[${not #strings.isEmpty(theme.config.comments.twikoos.js) ? theme.config.comments.twikoos.js : assets_link +'/libs/twikoo/twikoo.all.min.js' }]],
twikooUrl: "[(${theme.config.comments.twikoos.envId})]",
accessToken: "[(${theme.config.comments.twikoos.accessToken})]",
};
},
artalk:{
js:[[${not #strings.isEmpty(theme.config.comments.artalks.artalkJs) ? theme.config.comments.artalks.artalkJs : assets_link +'/libs/artalk/Artalk.js' }]],
css:[[${not #strings.isEmpty(theme.config.comments.artalks.artalkCss) ? theme.config.comments.artalks.artalkCss : assets_link +'/libs/artalk/Artalk.css' }]],
artalkUrl: "[(${theme.config.comments.artalks.server})]",
siteName: "[(${theme.config.comments.artalks.siteName})]",
},
waline:{
js:[[${not #strings.isEmpty(theme.config.comments.walines.walinesJs) ? theme.config.comments.walines.walinesJs : 'https://cdn.cbd.int/@waline/client@2.15.7/dist/waline.js' }]],
serverURL: "[(${theme.config.comments.walines.serverURL})]",
locale: [(${not #strings.isEmpty(theme.config.comments.walines.locale) ? theme.config.comments.walines.locale : {} })]
},
},
</script>
</th:block>
</html>
};
</script>

View File

@ -1,4 +1,4 @@
<div class="author-content" th:fragment="about-reward" th:if="${theme.config.aboutReward.aboutRewardEnable}">
<div class="author-content" th:if="${theme.config.aboutReward.aboutRewardEnable}">
<div class="author-content-item single reward" id="about-reward">
<div class="author-content-item-tips">致谢</div>
<span class="author-content-item-title" >[[${theme.config.aboutReward.title}]]</span>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 技能&职业生涯 -->
<div class="author-content" th:fragment="authorCareers">
<div class="author-content">
<div class="author-content-item skills">
<div class="card-content">
@ -314,5 +312,3 @@
</div>
</div>
</div>
</html>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 我的介绍&我的想法 -->
<div class="author-content" th:fragment="content-idea">
<div class="author-content">
<div class="author-content-item myInfoAndSayHello" th:utext="${theme.config.about.content}">
</div>
<div class="aboutsiteTips author-content-item" th:utext="${theme.config.about.idea}"></div>
@ -18,11 +16,9 @@
show.setAttribute('data-up', '')
next.setAttribute('data-show', '')
}, 2000)
document.addEventListener('pjax:send', function () {
clearInterval(pursuitInterval);
});
</script>
</div>
</html>
</div>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 爱好 -->
<div class="author-content" th:fragment="game">
<div class="author-content" >
<div class="author-content-item game-lol"
th:style="'background: url('+ @{${theme.config.about.game.game_bg}} +') top / cover no-repeat'">
<div class="card-content">
@ -64,6 +62,4 @@
background-position-x: 0;
}
</style>
</div>
</html>
</div>

View File

@ -1,17 +1,15 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- hello -->
<div class="hello-about" th:fragment="hello-about">
<div class="hello-about">
<div class="cursor" style="translate: none; rotate: none; scale: none; transform: translate(721px,180px);"></div>
<div class="shapes">
<div class="shape shape-1"
style="translate: none; rotate: none; scale: none; transform: translate(721px,180px);">
style="translate: none; rotate: none; scale: none; transform: translate(721px,180px);">
</div>
<div class="shape shape-2"
style="translate: none; rotate: none; scale: none; transform: translate(721px,180px);">
style="translate: none; rotate: none; scale: none; transform: translate(721px,180px);">
</div>
<div class="shape shape-3"
style="translate: none; rotate: none; scale: none; transform: translate(721px,180px);">
style="translate: none; rotate: none; scale: none; transform: translate(721px,180px);">
</div>
</div>
<div class="content">
@ -158,5 +156,3 @@
</script>
</div>
</html>

View File

@ -1,16 +1,14 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 关注偏好&音乐偏好 -->
<div class="author-content" th:fragment="like-music">
<div class="author-content" >
<div class="author-content-item like-technology"
th:style="'background: url('+ @{${theme.config.about.like.like_bg}} +') top / cover no-repeat;'">
th:style="'background: url('+ @{${theme.config.about.like.like_bg}} +') top / cover no-repeat;'">
<div class="card-content">
<div class="author-content-item-tips" th:text="${theme.config.about.like.like_tips}">
</div>
<span class="author-content-item-title"
th:text="${theme.config.about.like.like_title}"></span>
th:text="${theme.config.about.like.like_title}"></span>
<div class="content-bottom">
<div class="tips" th:text="${theme.config.about.like.like_bottom}"></div>
</div>
@ -18,13 +16,13 @@
</div>
<div class="author-content-item like-music"
th:style="'background: url('+ @{${theme.config.about.music.music_bg}} +') top / cover no-repeat'">
th:style="'background: url('+ @{${theme.config.about.music.music_bg}} +') top / cover no-repeat'">
<div class="card-content">
<div class="author-content-item-tips" th:text="${theme.config.about.music.music_tips}">
</div>
<span class="author-content-item-title"
th:text="${theme.config.about.music.music_title}"></span>
th:text="${theme.config.about.music.music_title}"></span>
<div class="content-bottom">
<div class="tips">跟 [[${site.title}]] 一起欣赏更多音乐</div>
</div>
@ -33,11 +31,10 @@
th:href="${theme.config.about.music.music_link}"
target="_blank"
rel="noopener nofollow">
<i class="haofont hao-icon-circle-arrow-up-right-1"></i>
<span class="banner-button-text">更多推荐</span></a>
<i class="haofont hao-icon-circle-arrow-up-right-1"></i>
<span class="banner-button-text">更多推荐</span></a>
</div>
</div>
</div>
</div>
</html>
</div>

View File

@ -1,9 +1,7 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 性格&图片 -->
<!-- personalities -->
<div class="author-content" th:fragment="personalities-photo">
<div class="author-content">
<div class="author-content-item personalities" th:with="personality = ${theme.config.about.personalities}">
<div class="author-content-item-tips">性格</div>
@ -13,9 +11,9 @@
<div class="image"><img th:src="${assets_link + '/images/infp.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/INFP-%E4%BA%BA%E6%A0%BC'}">调停者</a>
th:href="@{'https://www.16personalities.com/ch/INFP-%E4%BA%BA%E6%A0%BC'}">调停者</a>
</div>
</th:block>
@ -25,9 +23,9 @@
<div class="image"><img th:src="${assets_link + '/images/intj.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/INTJ-%E4%BA%BA%E6%A0%BC'}">建筑师</a>
th:href="@{'https://www.16personalities.com/ch/INTJ-%E4%BA%BA%E6%A0%BC'}">建筑师</a>
</div>
</th:block>
@ -37,9 +35,9 @@
<div class="image"><img th:src="${assets_link + '/images/intp.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/INTP-%E4%BA%BA%E6%A0%BC'}">逻辑学家</a>
th:href="@{'https://www.16personalities.com/ch/INTP-%E4%BA%BA%E6%A0%BC'}">逻辑学家</a>
</div>
</th:block>
@ -49,9 +47,9 @@
<div class="image"><img th:src="${assets_link + '/images/entj.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/ENTJ-%E4%BA%BA%E6%A0%BC'}">指挥官</a>
th:href="@{'https://www.16personalities.com/ch/ENTJ-%E4%BA%BA%E6%A0%BC'}">指挥官</a>
</div>
</th:block>
@ -61,9 +59,9 @@
<div class="image"><img th:src="${assets_link + '/images/entp.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/ENTP-%E4%BA%BA%E6%A0%BC'}">辩论家</a>
th:href="@{'https://www.16personalities.com/ch/ENTP-%E4%BA%BA%E6%A0%BC'}">辩论家</a>
</div>
</th:block>
@ -73,9 +71,9 @@
<div class="image"><img th:src="${assets_link + '/images/enfj.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/ENFJ-%E4%BA%BA%E6%A0%BC'}">主人公</a>
th:href="@{'https://www.16personalities.com/ch/ENFJ-%E4%BA%BA%E6%A0%BC'}">主人公</a>
</div>
</th:block>
@ -85,9 +83,9 @@
<div class="image"><img th:src="${assets_link + '/images/enfp.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/ENFP-%E4%BA%BA%E6%A0%BC'}">竞选者</a>
th:href="@{'https://www.16personalities.com/ch/ENFP-%E4%BA%BA%E6%A0%BC'}">竞选者</a>
</div>
</th:block>
@ -97,9 +95,9 @@
<div class="image"><img th:src="${assets_link + '/images/estj.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/ESTJ-%E4%BA%BA%E6%A0%BC'}">总经理</a>
th:href="@{'https://www.16personalities.com/ch/ESTJ-%E4%BA%BA%E6%A0%BC'}">总经理</a>
</div>
</th:block>
@ -109,9 +107,9 @@
<div class="image"><img th:src="${assets_link + '/images/estp.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/ESTP-%E4%BA%BA%E6%A0%BC'}">企业家</a>
th:href="@{'https://www.16personalities.com/ch/ESTP-%E4%BA%BA%E6%A0%BC'}">企业家</a>
</div>
</th:block>
@ -121,9 +119,9 @@
<div class="image"><img th:src="${assets_link + '/images/esfj.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/ESFJ-%E4%BA%BA%E6%A0%BC'}">执政官</a>
th:href="@{'https://www.16personalities.com/ch/ESFJ-%E4%BA%BA%E6%A0%BC'}">执政官</a>
</div>
</th:block>
@ -133,9 +131,9 @@
<div class="image"><img th:src="${assets_link + '/images/esfp.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/ESFP-%E4%BA%BA%E6%A0%BC'}">表演者</a>
th:href="@{'https://www.16personalities.com/ch/ESFP-%E4%BA%BA%E6%A0%BC'}">表演者</a>
</div>
</th:block>
@ -145,9 +143,9 @@
<div class="image"><img th:src="${assets_link + '/images/infj.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/INFJ-%E4%BA%BA%E6%A0%BC'}">提倡者</a>
th:href="@{'https://www.16personalities.com/ch/INFJ-%E4%BA%BA%E6%A0%BC'}">提倡者</a>
</div>
</th:block>
@ -157,9 +155,9 @@
<div class="image"><img th:src="${assets_link + '/images/istj.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/ISTJ-%E4%BA%BA%E6%A0%BC'}">物流师</a>
th:href="@{'https://www.16personalities.com/ch/ISTJ-%E4%BA%BA%E6%A0%BC'}">物流师</a>
</div>
</th:block>
@ -169,9 +167,9 @@
<div class="image"><img th:src="${assets_link + '/images/istp.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/ISTP-%E4%BA%BA%E6%A0%BC'}">鉴赏家</a>
th:href="@{'https://www.16personalities.com/ch/ISTP-%E4%BA%BA%E6%A0%BC'}">鉴赏家</a>
</div>
</th:block>
@ -181,9 +179,9 @@
<div class="image"><img th:src="${assets_link + '/images/isfj.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/ISFJ-%E4%BA%BA%E6%A0%BC'}">守卫者</a>
th:href="@{'https://www.16personalities.com/ch/ISFJ-%E4%BA%BA%E6%A0%BC'}">守卫者</a>
</div>
</th:block>
@ -193,16 +191,14 @@
<div class="image"><img th:src="${assets_link + '/images/isfp.svg'}" style="transform: rotateY(180deg);">
</div>
<div class="post-tips"><a href="https://www.16personalities.com/" rel="noopener nofollow"
target="_blank">16personalities</a>
target="_blank">16personalities</a>
了解更多关于 <a rel="noopener external nofollow" target="_blank"
th:href="@{'https://www.16personalities.com/ch/ISFP-%E4%BA%BA%E6%A0%BC'}">探险家</a>
th:href="@{'https://www.16personalities.com/ch/ISFP-%E4%BA%BA%E6%A0%BC'}">探险家</a>
</div>
</th:block>
</div>
<div class="author-content-item myphoto"><img alt="自拍" class="author-content-img"
th:src="${theme.config.about.authorCareersPhoto}">
th:src="${theme.config.about.authorCareersPhoto}">
</div>
</div>
</html>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 数据统计&作者相关信息 -->
<div class="author-content" th:fragment="statistics-map">
<div class="author-content" >
<div class="about-statistic author-content-item"
style="background: url(https://bu.dusays.com/2023/03/12/640dc8c72f623.webp);">
<div class="card-content">
@ -170,5 +168,3 @@
</script>
</div>
</html>

View File

@ -1,4 +1,4 @@
<div class="author-content" th:fragment="tenyear" th:if="${theme.config.about.tenyear.tenyear_enable}">
<div class="author-content" th:if="${theme.config.about.tenyear.tenyear_enable}">
<div class="create-site-post author-content-item single">
<div class="author-content-item-tips">[[${theme.config.about.tenyear.tenyear_tips}]]</div>
<span class="author-content-item-title">[[${theme.config.about.tenyear.tenyear_title}]]</span>

View File

@ -1,13 +1,10 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 座右铭 -->
<!-- motto -->
<div class="author-content" th:fragment="textarea" th:if="${theme.config.about.textarea.size()}=='2'" th:with="texts = ${theme.config.about.textarea}">
<div class="author-content" th:if="${theme.config.about.textarea.size()}=='2'" th:with="texts = ${theme.config.about.textarea}">
<div class="author-content-item maxim">
<div class="author-content-item-tips" th:text="${texts[0].tittle}">座右铭</div>
<span class="maxim-title">
<span style="opacity: 0.6;margin-bottom:8px;"
th:text="${texts[0].textarea_up}">生活原本沉闷,</span>
th:text="${texts[0].textarea_up}">生活原本沉闷,</span>
<span th:text="${texts[0].textarea_down}">但跑起来就有风。</span>
</span>
</div>
@ -17,13 +14,11 @@
<div class="author-content-item-tips" th:text="${texts[1].tittle}">特长</div>
<span class="buff-title">
<span style="opacity: 0.6;margin-bottom:8px;"
th:text="${texts[1].textarea_up}">玄学流电脑疑难问题解决
th:text="${texts[1].textarea_up}">玄学流电脑疑难问题解决
<span class="inline-word">专家</span>
</span>
<span th:text="${texts[1].textarea_down}">软件学习能力</span>
</span>
</div>
</div>
</div>
</html>
</div>

View File

@ -1,23 +1,17 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 目录 -->
<!-- 广告 -->
<div class="card-widget" th:if="${theme.config.sidebar.adbox.adType=='google'}">
<div class="item-headline"><span>广告</span></div>
<script async th:src="${'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=' + theme.config.sidebar.adbox.ad_google.ad_client}"
crossorigin="anonymous"></script>
<!-- 广告2 -->
<ins class="adsbygoogle"
style="display:block"
th:data-ad-client="${theme.config.sidebar.adbox.ad_google.ad_client}"
th:data-ad-slot="${theme.config.sidebar.adbox.ad_google.ad_slot}"
th:data-ad-format="${theme.config.sidebar.adbox.ad_google.ad_format}"
th:data-full-width-responsive="${theme.config.sidebar.adbox.ad_google.full_width_responsive}"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<th:block th:fragment="adbox">
<div class="card-widget" th:if="${theme.config.sidebar.adbox.adType=='google'}">
<div class="item-headline"><span>广告</span></div>
<script async th:src="${'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=' + theme.config.sidebar.adbox.ad_google.ad_client}"
crossorigin="anonymous"></script>
<!-- 广告2 -->
<ins class="adsbygoogle"
style="display:block"
th:data-ad-client="${theme.config.sidebar.adbox.ad_google.ad_client}"
th:data-ad-slot="${theme.config.sidebar.adbox.ad_google.ad_slot}"
th:data-ad-format="${theme.config.sidebar.adbox.ad_google.ad_format}"
th:data-full-width-responsive="${theme.config.sidebar.adbox.ad_google.full_width_responsive}"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</th:block>
</html>
</div>

View File

@ -1,8 +1,4 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 归档 -->
<div class="card-widget card-categories" th:fragment="archives">
<div class="card-widget card-categories" >
</div>
</html>
</div>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 目录 -->
<div class="card-widget card-categories" th:fragment="categories"
<div class="card-widget card-categories"
th:with="categories = ${categoryFinder.list(1, theme.config.sidebar.categoryQuantity)}">
<div class="item-headline"><i class="haofont hao-icon-folder-open"></i><span>分类</span></div>
<div class="aside-list">
@ -18,5 +16,3 @@
</div>
</div>
</html>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 最新评论 -->
<div class="card-widget card-recent-post" th:fragment="comments">
<div class="card-widget card-recent-post" >
<a th:if="${not #strings.isEmpty(theme.config.sidebar.newcomment.newcommentUrl)}"
th:onclick="pjax.loadUrl([[${theme.config.sidebar.newcomment.newcommentUrl}]])"
title="查看更多"
@ -38,5 +36,3 @@
</th:block>
</div>
</div>
</html>

View File

@ -1,8 +1,6 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 标签 -->
<th:block th:fragment="archive-contain" >
<th:block >
<div class="item-headline"><a class="card-more-btn" href="/archives/" title="查看更多" data-pjax-state=""></a></div>
<ul class="card-archive-list"
@ -36,6 +34,3 @@
</ul>
</th:block>
</html>

View File

@ -1,10 +1,8 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 侧边栏站点信息统计 -->
<th:block th:fragment="stat-contain" th:with="stats = ${siteStatsFinder.getStats()}">
<th:block th:with="stats = ${siteStatsFinder.getStats()}">
<!-- <div class="item-headline"><i class="haofont icon-icon-sidebar-scxmtj"></i><span>统计</span></div>-->
<!-- <div class="item-headline"><i class="haofont icon-icon-sidebar-scxmtj"></i><span>统计</span></div>-->
<div class="webinfo">
<div class="webinfo-item">
<div class="webinfo-item-title"><i class="haofont hao-icon-file-lines"></i>
@ -44,5 +42,3 @@
</div> -->
</div>
</th:block>
</html>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 标签 -->
<th:block th:fragment="tags-contain"
<th:block
th:with="tags = ${tagFinder.listAll()}, tagQuantity = ${#conversions.convert(theme.config.sidebar.tagQuantity, 'java.lang.Integer')}">
<div class="item-headline"></div>
@ -21,7 +19,4 @@
}
</script>
</th:block>
</html>
</th:block>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 通讯录 -->
<div class="card-widget card-friend-link" th:fragment="friend-link">
<div class="card-widget card-friend-link">
<div class="item-headline"><i class="haofont hao-icon-tongxunlu07"
style="font-size: 0.9rem;font-weight: 700;"></i><span>通讯录</span></div>
<div class="card-friend-link-container"
@ -52,5 +50,4 @@
</div>
</div>
</html>
</div>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 音乐卡片 -->
<div th:fragment="music">
<div >
<div class="item-headline-music"><i class="haofont hao-icon-music"></i><span>音乐天地</span></div>
<div class="card-widget card-music"
@ -28,7 +26,4 @@
}
</style>
</div>
</html>
</div>

View File

@ -1,8 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 爱发电赞助 -->
<div th:fragment="power">
<div >
<div class="card-widget card-power">
<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="赞助博主">赞助
@ -29,9 +26,5 @@
</div>
</div>
</th:block>
</div>
</div>
</html>

View File

@ -1,8 +1,6 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 侧边栏自我介绍 -->
<div class="card-widget card-info" th:fragment="profile">
<div class="card-widget card-info" >
<!-- 默认 -->
<th:block th:if="${#strings.equals(theme.config.sidebar.profile.profileStyle, 'default')}">
@ -469,5 +467,3 @@
</th:block>
</div>
</html>

View File

@ -1,6 +1,4 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<div class="card-widget card-recent-post" th:fragment="recent-posts" th:with='posts = ${postFinder.list(1,theme.config.sidebar.recentPost)},
<div class="card-widget card-recent-post" 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+"?"}'>
<div class="item-headline"><i class="haofont hao-icon-eicon_map-2-line1"></i><span>最近发布</span></div>
<div class="aside-list">
@ -23,5 +21,4 @@
</div>
</div>
</div>
</html>
</div>

View File

@ -1,7 +1,4 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<div class="card-widget card-webinfo" th:fragment="stat">
<th:block th:replace="~{modules/widgets/aside/contain/stat-contain :: stat-contain}"></th:block>
<div class="card-widget card-webinfo">
<th:block th:replace="~{modules/widgets/aside/contain/stat-contain}"/>
</div>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- Steam卡片 -->
<div th:fragment="steam">
<div >
<div class="item-headline-steam"><i class="fa-brands fa-steam"></i><span>Steam卡片</span></div>
<div class="card-widget card-steam"
@ -16,7 +14,4 @@
</div>
</div>
</div>
</div>
</html>
</div>

View File

@ -1,30 +1,20 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- tag & stat 粘性布局 -->
<th:block th:fragment="tags-stat">
<div class="card-widget card-tags card-archives card-webinfo card-allinfo">
<div class="card-widget card-tags card-archives card-webinfo card-allinfo">
<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/tags-contain}" th:if="${theme.config.sidebar.tags_switch}"/>
<hr>
</span>
<span th:if="${theme.config.sidebar.archive_switch}">
<th:block th:replace="~{modules/widgets/aside/contain/archive-contain :: archive-contain}" ></th:block>
<span th:if="${theme.config.sidebar.archive_switch}">
<th:block th:replace="~{modules/widgets/aside/contain/archive-contain}" />
<hr>
</span>
<th:block th:replace="~{modules/widgets/aside/contain/stat-contain :: stat-contain}" ></th:block>
<th:block th:replace="~{modules/widgets/aside/contain/stat-contain}" />
</div>
</th:block>
</html>
</div>

View File

@ -1,7 +1,4 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 标签 -->
<div class="card-widget card-tags" th:fragment="tags">
<th:block th:replace="~{modules/widgets/aside/contain/tags-contain :: tags-contain}"></th:block>
<div class="card-widget card-tags">
<th:block th:replace="~{modules/widgets/aside/contain/tags-contain}"/>
</div>

View File

@ -1,16 +1,10 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 目录 -->
<th:block th:fragment="toc">
<div class="card-widget" id="card-toc">
<div class="item-headline">
<i class="haofont hao-icon-bars"></i>
<span>文章目录</span>
<span class="toc-percentage"></span>
</div>
<!-- 目录容器 -->
<div class="toc-content"></div>
<div class="card-widget" id="card-toc">
<div class="item-headline">
<i class="haofont hao-icon-bars"></i>
<span>文章目录</span>
<span class="toc-percentage"></span>
</div>
</th:block>
</html>
<!-- 目录容器 -->
<div class="toc-content"></div>
</div>

View File

@ -1,6 +1,4 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<div class="card-widget heo-right-widget" id="card-wechat" th:fragment="wechat"
<div class="card-widget heo-right-widget" id="card-wechat"
th:with="faceImg = ${theme.config.sidebar.wechat.wechatImgFace}, backImg=${theme.config.sidebar.wechat.wechatImgBack}"
th:attr="onclick='javascript:window.open(\''+ ${theme.config.sidebar.wechat.url} +'\')'">
<div id="flip-wrapper">
@ -35,4 +33,3 @@ th:with="faceImg = ${theme.config.sidebar.wechat.wechatImgFace}, backImg=${theme
</style>
</div>
</html>

View File

@ -1,11 +1,7 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 小板报 -->
<div class="card-widget card-announcement" th:fragment="welcome">
<div class="card-widget card-announcement">
<div class="item-headline"><i class="haofont hao-icon-bullhorn"
style="font-size: 0.9rem;font-weight: 700;"></i><span>小板报</span></div>
<div id="welcome-info"></div>
</div>
</html>
</div>

View File

@ -1,6 +1,4 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<div id="bannerGroup" th:fragment="banner-group">
<div id="bannerGroup" >
<!-- banners -->
<div id="banners">
@ -20,253 +18,253 @@
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#989bf8">
<img
th:with=" img = ${assets_link + '/images/icons/AfterEffect.png'}"
th:with=" img = ${assets_link + '/images/icons/AfterEffect.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="AfterEffect">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="AfterEffect">
</div>
<div class="tags-group-icon" style="background:#fff">
<img
th:with=" img = ${assets_link + '/images/icons/Sketch.png'}"
th:with=" img = ${assets_link + '/images/icons/Sketch.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Sketch">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Sketch">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#57b6e6">
<img
th:with=" img = ${assets_link + '/images/icons/Docker.png'}"
th:with=" img = ${assets_link + '/images/icons/Docker.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Docker">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Docker">
</div>
<div class="tags-group-icon" style="background:#4082c3">
<img
th:with=" img = ${assets_link + '/images/icons/Photoshop.png'}"
th:with=" img = ${assets_link + '/images/icons/Photoshop.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Photoshop">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Photoshop">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#fff">
<img
th:with=" img = ${assets_link + '/images/icons/FinalCutPro.png'}"
th:with=" img = ${assets_link + '/images/icons/FinalCutPro.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="FinalCutPro">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="FinalCutPro">
</div>
<div class="tags-group-icon" style="background:#fff">
<img
th:with=" img = ${assets_link + '/images/icons/Python.png'}"
th:with=" img = ${assets_link + '/images/icons/Python.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Python">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Python">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#eb6840">
<img
th:with=" img = ${assets_link + '/images/icons/Swift.png'}"
th:with=" img = ${assets_link + '/images/icons/Swift.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Swift">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Swift">
</div>
<div class="tags-group-icon" style="background:#8f55ba">
<img
th:with=" img = ${assets_link + '/images/icons/Principle.png'}"
th:with=" img = ${assets_link + '/images/icons/Principle.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Principle">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Principle">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#f29e39">
<img
th:with=" img = ${assets_link + '/images/icons/illustrator.png'}"
th:with=" img = ${assets_link + '/images/icons/illustrator.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="illustrator">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="illustrator">
</div>
<div class="tags-group-icon" style="background:#2c51db">
<img
th:with=" img = ${assets_link + '/images/icons/CSS3.png'}"
th:with=" img = ${assets_link + '/images/icons/CSS3.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="CSS3">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="CSS3">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#f7cb4f">
<img
th:with=" img = ${assets_link + '/images/icons/JS.png'}"
th:with=" img = ${assets_link + '/images/icons/JS.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="JS">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="JS">
</div>
<div class="tags-group-icon" style="background:#e9572b">
<img
th:with=" img = ${assets_link + '/images/icons/HTML.png'}"
th:with=" img = ${assets_link + '/images/icons/HTML.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="HTML">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="HTML">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#df5b40">
<img
th:with=" img = ${assets_link + '/images/icons/Git.webp'}"
th:with=" img = ${assets_link + '/images/icons/Git.webp'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Git">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Git">
</div>
<div class="tags-group-icon" style="background:#e65164">
<img
th:with=" img = ${assets_link + '/images/icons/Apifox.webp'}"
th:with=" img = ${assets_link + '/images/icons/Apifox.webp'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Apifox">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Apifox">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#989bf8">
<img
th:with=" img = ${assets_link + '/images/icons/AfterEffect.png'}"
th:with=" img = ${assets_link + '/images/icons/AfterEffect.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="AfterEffect">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="AfterEffect">
</div>
<div class="tags-group-icon" style="background:#fff">
<img
th:with=" img = ${assets_link + '/images/icons/Sketch.png'}"
th:with=" img = ${assets_link + '/images/icons/Sketch.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Sketch">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Sketch">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#57b6e6">
<img
th:with=" img = ${assets_link + '/images/icons/Docker.png'}"
th:with=" img = ${assets_link + '/images/icons/Docker.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Docker">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Docker">
</div>
<div class="tags-group-icon" style="background:#4082c3">
<img
th:with=" img = ${assets_link + '/images/icons/Photoshop.png'}"
th:with=" img = ${assets_link + '/images/icons/Photoshop.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Photoshop">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Photoshop">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#fff">
<img
th:with=" img = ${assets_link + '/images/icons/FinalCutPro.png'}"
th:with=" img = ${assets_link + '/images/icons/FinalCutPro.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="FinalCutPro">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="FinalCutPro">
</div>
<div class="tags-group-icon" style="background:#fff">
<img
th:with=" img = ${assets_link + '/images/icons/Python.png'}"
th:with=" img = ${assets_link + '/images/icons/Python.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Python">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Python">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#eb6840">
<img
th:with=" img = ${assets_link + '/images/icons/Swift.png'}"
th:with=" img = ${assets_link + '/images/icons/Swift.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Swift">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Swift">
</div>
<div class="tags-group-icon" style="background:#8f55ba">
<img
th:with=" img = ${assets_link + '/images/icons/Principle.png'}"
th:with=" img = ${assets_link + '/images/icons/Principle.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Principle">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Principle">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#f29e39">
<img
th:with=" img = ${assets_link + '/images/icons/illustrator.png'}"
th:with=" img = ${assets_link + '/images/icons/illustrator.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="illustrator">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="illustrator">
</div>
<div class="tags-group-icon" style="background:#2c51db">
<img
th:with=" img = ${assets_link + '/images/icons/CSS3.png'}"
th:with=" img = ${assets_link + '/images/icons/CSS3.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="CSS3">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="CSS3">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#f7cb4f">
<img
th:with=" img = ${assets_link + '/images/icons/JS.png'}"
th:with=" img = ${assets_link + '/images/icons/JS.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="JS">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="JS">
</div>
<div class="tags-group-icon" style="background:#e9572b">
<img
th:with=" img = ${assets_link + '/images/icons/HTML.png'}"
th:with=" img = ${assets_link + '/images/icons/HTML.png'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="HTML">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="HTML">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#df5b40">
<img
th:with=" img = ${assets_link + '/images/icons/Git.webp'}"
th:with=" img = ${assets_link + '/images/icons/Git.webp'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Git">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Git">
</div>
<div class="tags-group-icon" style="background:#e65164">
<img
th:with=" img = ${assets_link + '/images/icons/Apifox.webp'}"
th:with=" img = ${assets_link + '/images/icons/Apifox.webp'}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Apifox">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
title="Apifox">
</div>
</div>
</div>
@ -292,11 +290,11 @@
th:style="'background:' + ${techEven.background}"
th:with="techEven = ${tech}">
<img
th:with=" img = @{${techEven.url}}"
th:with=" img = @{${techEven.url}}"
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
th:title="${techEven.name}">
th:src="${isLazyload ? loadingImg : img}"
th:data-lazy-src="${ isLazyload ? img : ''}"
th:title="${techEven.name}">
</div>
</div>
</th:block>
@ -383,5 +381,4 @@
</script>
</div>
</html>
</div>

View File

@ -1,8 +1,5 @@
<!DOCTYPE html>
<!-- 控制台,右上角点击的时候会显示 -->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- TODO 控制台功能 -->
<div id="console" th:fragment="console">
<div id="console" >
<div class="close-btn" onclick="heo.hideConsole()" href="javascript:void(0);">
<i class="haofont hao-icon-circle-xmark"></i>
</div>
@ -138,5 +135,3 @@
<div class="console-mask" href="javascript:void(0);" onclick="heo.hideConsole()" rel="external nofollow">
</div>
</div>
</html>

View File

@ -1,8 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 导航栏左侧 -->
<div id="blog_name" th:fragment="nav-left">
<div id="blog_name" >
<th:block th:if="${not #strings.isEmpty(theme.config.nav.leftMenu)}"
th:with="leftMenu = ${menuFinder.getByName(theme.config.nav.leftMenu)}">
@ -40,6 +37,3 @@
<span th:utext="${#strings.isEmpty(theme.config.basics.siteTitle)} ? ${site.title} : ${theme.config.basics.siteTitle}"></span>
</a>
</div>
</html>

View File

@ -1,7 +1,3 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="nav-menu-recursion(menuItem)">
<!-- 有子菜单则显示子菜单 -->
<th:block th:if="${not #lists.isEmpty(menuItem.children)}">
@ -45,7 +41,4 @@
</div>
</div>
</div>
</html>
</div>

View File

@ -1,11 +1,7 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 音乐 -->
<div th:fragment="nav-music" class="needEndHide" id="nav-music" >
<div class="needEndHide" id="nav-music" >
<a id="nav-music-hoverTips" onclick="heo.musicToggle()" accesskey="m">播放音乐</a>
<div id="console-music-bg"></div><meting-js th:id="${theme.config.tool.nav_music.id}" th:server="${theme.config.tool.nav_music.server}" type="playlist" mutex="true"
preload="none" theme="var(--heo-main)" data-lrctype="0" order="random"></meting-js>
</div>
</html>
</div>

View File

@ -1,8 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 导航栏菜单栏 -->
<div id="nav-right" th:fragment="nav-right">
<div id="nav-right">
<!-- 功能都需要添加开关 -->
@ -82,6 +79,3 @@
</a>
</div>
</div>
</html>

View File

@ -1,6 +1,4 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!--
<!--
分页模块
@param path '/path/page/n' 中的 `/path` 需要保留 `/`
@ -73,5 +71,3 @@
</div>
</nav>
</html>

View File

@ -1,7 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 右键菜单 -->
<div class="js-pjax" th:fragment="right-menu" th:if="${theme.config.tool.rightMenu.rightMenuEnable}">
<div class="js-pjax" th:if="${theme.config.tool.rightMenu.rightMenuEnable}">
<div id="rightMenu">
<div class="rightMenu-group rightMenu-small">
<div class="rightMenu-item" id="menu-backward"><i class="haofont hao-icon-arrow-left"></i></div>
@ -119,5 +117,3 @@
</div>
<div id="rightmenu-mask"></div>
</div>
</html>

View File

@ -1,6 +1,4 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="rightside">
<th:block >
<div id="rightside">
<div id="rightside-config-hide">
<button th:if="${htmlType == 'post' && theme.config.tool.rightside.readmode}" id="readmode" type="button" title="阅读模式"><i class="haofont hao-icon-book-open"></i></button>
@ -39,5 +37,4 @@
<link th:if="${theme.config.tool.rightside.readmode && theme.config.tool.rightside.rightsideEnable}"
rel="stylesheet" th:href="${assets_link + '/css/read-mode.css' + theme_version}">
</th:block>
</html>
</th:block>

View File

@ -1,8 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!-- 推荐文章 -->
<div class="topGroup" th:fragment="top-group" th:with='topGroupPosts = ${postFinder.list(1,6)},
<div class="topGroup" th:with='topGroupPosts = ${postFinder.list(1,6)},
postRandomImg=${#strings.contains(theme.config.layout.postRandomImg,"?") ? theme.config.layout.postRandomImg+"&" : theme.config.layout.postRandomImg+"?"}'
>
<div class="recent-post-item"
@ -79,4 +76,4 @@
</div>
</div>
</div>
</html>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'moments',title = ${title + ' | ' + site.title}, head = ~{::head}, _title = ${title})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${_title},
@ -83,7 +83,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
<!-- 卡片顶部气泡效果 -->
<script th:if="${theme.config.other.bubbleEnable}" async data-pjax
th:src="${assets_link + '/libs/canvas/bubble.js'}"></script>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'music',title = ${singlePage.spec.title + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${singlePage.spec.title},
@ -37,7 +37,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'newComment',title = ${singlePage.spec.title + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${singlePage.spec.title},
@ -18,10 +18,10 @@
</header>
<main class="layout hide-aside" id="content-inner">
<div id="page">
<div th:replace="~{macro/author-content :: author-content(background = ${theme.config.new_comment.backgroundImg},
smallTitle = ${theme.config.new_comment.smallTitle},
bigTitle = ${theme.config.new_comment.bigTitle},
detail = ${theme.config.new_comment.detail},
<div th:replace="~{macro/author-content :: author-content(background = ${singlePage.spec.cover},
smallTitle = '评论',
bigTitle = ${singlePage.spec.title},
detail = ${singlePage.spec.excerpt.raw},
buttonUrl = '',
buttonTitle = '')}"></div>
<div id="comments-page">
@ -353,7 +353,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
<!-- 卡片顶部气泡效果 -->
<script th:if="${theme.config.other.bubbleEnable}" async data-pjax
th:src="${assets_link + '/libs/canvas/bubble.js'}"></script>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'page',title = ${singlePage.spec.title + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${singlePage.spec.title},
@ -36,7 +36,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'page',title = ${singlePage.spec.title + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${singlePage.spec.title},
@ -33,7 +33,7 @@
</div>
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content},htmlType = 'photos',title = ${title + ' | ' + site.title}, head = ~{::head},_title = ${title})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${_title},
@ -249,7 +249,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
<!-- 卡片顶部气泡效果 -->
<script th:if="${theme.config.other.bubbleEnable}" async data-pjax
th:src="${assets_link + '/libs/canvas/bubble.js'}"></script>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'post',title = ${post.spec.title + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${post.spec.title},
@ -174,7 +174,7 @@
th:src="${assets_link + '/libs/gpt/post-ai.js'}"></script>
<!-- 版权声明 -->
<th:block th:replace="~{modules/post/copyright :: copyright}"></th:block>
<th:block th:replace="~{modules/post/copyright}"></th:block>
<nav class="pagination-post needEndHide" id="pagination"
th:with="postCursor = ${postFinder.cursor(post.metadata.name)},
@ -206,7 +206,7 @@
</div>
</nav>
<!-- 阅读建议 -->
<th:block th:replace="~{modules/post/relatedPosts :: relatedPosts}"></th:block>
<th:block th:replace="~{modules/post/relatedPosts}"/>
<hr>
<!--/* 评论组件 */-->
<th:block
@ -222,7 +222,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
<html xmlns:th="http://www.thymeleaf.org"
th:replace="~{modules/layouts/layout :: layout(content = ~{::content}, htmlType = 'tag',title = ${'标签' + ': ' + tag.spec.displayName + ' | ' + site.title}, head = ~{::head})}">
<th:block th:fragment="head">
<th:block th:replace="~{modules/common/open-graph :: open-graph(_title = ${tag.spec.displayName},
@ -34,7 +34,7 @@
</main>
<!-- 底部 -->
<footer th:replace="~{modules/footer :: footer}"></footer>
<footer th:replace="~{modules/footer}"/>
</div>
</th:block>

Some files were not shown because too many files have changed in this diff Show More