1.2.5原版

This commit is contained in:
anian
2026-03-10 17:17:32 +08:00
commit af82232813
163 changed files with 35269 additions and 0 deletions
@@ -0,0 +1,18 @@
<section class="widget adinfo_widget">
<div class="wid_title" th:text="${theme.config.sidebar.adinfo_widget.title}"></div>
<div class="items wid_ad_info" th:with="base_info = ${theme.config.sidebar.adinfo_widget.base_info}">
<div class="ad_info" th:each="base,iStat : ${base_info}">
<div class="name">
<i th:if="${base.ba_icon}" th:class="${base.ba_icon}"></i>
<img th:unless="${base.ba_icon}" th:src="${base.ba_img}">
</div>
<div class="meta"
th:uk-tooltip="${'title:'+base.ba_des+';pos: right'}">
<a th:if="${not #strings.isEmpty(base.ba_link)}"
th:href="${base.ba_link}"
th:target="${base.ba_open_new}">[[${base.ba_title}]]</a>
<p th:unless="${not #strings.isEmpty(base.ba_link)}">[[${base.ba_title}]]</p>
</div>
</div>
</div>
</section>
@@ -0,0 +1,26 @@
<section class="widget cst_widget_comment">
<div class="wid_title" th:text="${theme.config.sidebar.cst_widget_comment.title}">最新评论</div>
<ul class="items wid_comment">
<li class="wid_comment_item" th:each="comment,iterStat : ${commentFinder.list(null, 1, theme.config.sidebar.cst_widget_comment.number)}"
th:with="page = ${comment.spec.subjectRef.kind == 'Post' ? postFinder.getByName(comment.spec.subjectRef.name) :
comment.spec.subjectRef.kind == 'SinglePage' && not #strings.contains('photos,links,moments,equipment', comment.spec.subjectRef.name) ? singlePageFinder.getByName(comment.spec.subjectRef.name) : null},
url = ${page == null? '/' : page.status.permalink + '#comment-' + comment.metadata.name}">
<div class="left">
<a th:href="${url}">
<img alt=""
th:with=" img =${#strings.isEmpty(comment.owner.avatar)? theme.config.com.providerMirror+'/avatar/'+comment.spec.owner.annotations['email-hash'] :comment.owner.avatar}"
th:src="${img}"
class="avatar avatar-100 photo" height="100" width="100" loading="lazy"
decoding="async">
</a>
</div>
<div class="right">
<a th:href="${url}" class="name">[[${comment.owner.displayName}]]</a>
<div class="body" ><th:block th:utext="${comment.spec.content}"></th:block></div>
<div class="meta">
<th:block th:replace="~{modules/widgets/time :: time(${comment.metadata.creationTimestamp})}"></th:block>
</div>
</div>
</li>
</ul>
</section>
@@ -0,0 +1,6 @@
<th:block th:fragment="custom_html(widget_data)">
<section class="widget widget_custom_html">
<div class="wid_title" th:text="${widget_data.custom_html.title}"></div>
<th:block th:utext="${widget_data.custom_html.html}"></th:block>
</section>
</th:block>
@@ -0,0 +1,22 @@
<section class="widget hot_cat">
<div class="wid_title" th:text="${theme.config.sidebar.hot_cat.title}">专题推荐</div>
<ul class="items cats_show">
<th:block th:each="categoryName,iterStat : ${theme.config.sidebar.hot_cat.widget_cat_select}">
<th:block th:with="category = ${categoryFinder.getByName(categoryName)}">
<li th:if="${category!=null}">
<a th:href="@{${category.status.permalink}}" >
<div class="cat_img"
th:with="cover_img=${#strings.contains(theme.config.post.category_banner,'http') ? ((#strings.contains(theme.config.post.category_banner,'?') ? theme.config.post.category_banner : theme.config.post.category_banner+'?')+','+category.metadata.name): theme.config.post.category_banner}">
<img class="round8"
th:data-src="${#strings.isEmpty(category.spec.cover) ? cover_img : thumbnail.gen(category.spec.cover, 's')}"
width="50" height="50" alt="" uk-img >
</div>
<div class="cat_name">
<h2>[[${category.spec.displayName}]]</h2>
</div>
</a>
</li>
</th:block>
</th:block>
</ul>
</section>
@@ -0,0 +1,11 @@
<section id="pix_widget_tongji-2" class="widget pix_widget_tongji">
<div class="wid_title" th:text="${theme.config.sidebar.pix_widget_tongji.title}">站点统计</div>
<ul class="items wid_tongji" th:with="stats = ${siteStatsFinder.getStats()}">
<li class="wid_tongji_item" th:if="${theme.config.sidebar.pix_widget_tongji.posts_count}"><span>文章</span><small>[[${stats.post}]]</small></li>
<li class="wid_tongji_item" th:if="${theme.config.sidebar.pix_widget_tongji.moments_count && pluginFinder.available('PluginMoments')}"><span>片刻</span><small>[[${momentFinder.listAll().size}]]</small></li>
<li class="wid_tongji_item" th:if="${theme.config.sidebar.pix_widget_tongji.comments_count}"><span>留言</span><small>[[${stats.comment}]]</small></li>
<li class="wid_tongji_item" th:if="${theme.config.sidebar.pix_widget_tongji.tags_count}"><span>标签</span><small>[[${tagFinder.listAll().size}]]</small></li>
<li class="wid_tongji_item" th:if="${theme.config.sidebar.pix_widget_tongji.cat_count}"><span>分类</span><small>[[${stats.category}]]</small></li>
<li class="wid_tongji_item" th:if="${theme.config.sidebar.pix_widget_tongji.site_day}"><span>运营</span><small id="runtimeshow" th:text="${theme.config.sidebar.pix_widget_tongji.build_date}">0天</small></li>
</ul>
</section>
@@ -0,0 +1,16 @@
<section id="pix_widget_yiyan-2" class="widget pix_widget_yiyan">
<div class="wid_title" th:text="${theme.config.sidebar.pix_widget_yiyan.title}">一言</div>
<ul class="items wid_yiyan">
<div class="yiyan_box">
<img class="lazy"
th:data-src="${theme.config.sidebar.pix_widget_yiyan.yiyan_bg}">
<div class="yiyan_info">
<div class="time">
<div class="left"><span class="day">[[${#dates.format(#dates.createNow(),'dd')}]]</span><span class="ym">[[${#dates.format(#dates.createNow(),'yyyy/MM')}]]</span></div><a
class="change"><i class="ri-refresh-line"></i></a>
</div>
<p uk-tooltip="东京喰种" aria-describedby="uk-tooltip-23" tabindex="0">错的不是我,而是这个世界!</p>
</div>
</div>
</ul>
</section>
@@ -0,0 +1,20 @@
<section class="widget posts_show_widget">
<div class="wid_title" th:text="${theme.config.sidebar.posts_show_widget.title}">热门文章</div>
<ul class="items posts_show" th:classappend="${theme.config.sidebar.posts_show_widget.show_style}">
<li class="item" th:each="post : ${postFinder.list({page: 1, size: theme.config.sidebar.posts_show_widget.posts_number, sort: {'stats.visit,desc'}})}">
<div class="image">
<a th:href="@{${post.status.permalink}}"
th:with="cover_img=${#strings.contains(theme.config.post.post_banner,'http') ? ((#strings.contains(theme.config.post.post_banner,'?') ? theme.config.post.post_banner : theme.config.post.post_banner+'?')+','+post.spec.title): theme.config.post.post_banner}">
<img class="round8"
th:with="_cover = ${#strings.isEmpty(post.spec.cover) ? cover_img : thumbnail.gen(post.spec.cover, 's')}"
th:data-src="${_cover}" width="50"
height="50" alt="" uk-img="" loading="lazy"
th:src="@{/assets/img/lazyload.png}"></a>
</div>
<div class="info nowrap">
<h4 class="title nowrap"><a th:href="@{${post.status.permalink}}">[[${post.spec.title}]]</a></h4>
<div class="meta">[[${post.stats.comment}]] REPLIES [[${post.stats.visit}]] VIEWS</div>
</div>
</li>
</ul>
</section>
@@ -0,0 +1,10 @@
<section id="tag_cloud-2" class="widget widget_tag_cloud" th:with="tags = ${tagFinder.listAll()}">
<h2 class="widget-title">标签</h2>
<div class="tagcloud">
<a th:each="tag,iStat : ${tags}"
th:href="@{${tag.status.permalink}}"
th:class="|tag-cloud-link tag-link-position-${iStat.count}|" style="font-size: 8pt;"
th:aria-label="|${tag.spec.displayName} (${tag.status.visiblePostCount}个项目)|"
th:text="${tag.spec.displayName}"></a>
</div>
</section>
@@ -0,0 +1,16 @@
<section class="widget admin_widget">
<div class="wid_title" th:text="${theme.config.sidebar.user_widget.title}">Follow Me</div>
<div class="items wid_sw_social" th:with="info = ${theme.config.sidebar.user_widget.admin_info}">
<div class="sw_item" th:each="base,iStat : ${info}">
<a
th:href="${base.ad_link}" class="sw_social" th:target="${base.ad_open_new}"
th:uk-tooltip="${base.ad_title}" th:style="${'background:'+base.s_btn_bg}">
<i th:if="${not #strings.isEmpty(base.ad_icon)}" th:class="${base.ad_icon}"></i>
<img th:unless="${not #strings.isEmpty(base.ad_icon)}" th:src="${base.ad_img}"/>
</a>
<div th:if="${base.ad_show_type == 'qrcode'}" class="sw_qrcode" style="display: none;">
<img th:src="${base.ad_qrcode}">
</div>
</div>
</div>
</section>