mirror of
https://ghfast.top/https://github.com/zsjy/halo-theme-dream2.0-plus.git
synced 2025-03-15 17:49:40 +08:00
chore: 适配
This commit is contained in:
parent
3391059c25
commit
9844cc41fd
@ -388,8 +388,8 @@ const commonContext = {
|
||||
sparkInput() {
|
||||
const sparkInputContent = DreamConfig.spark_input_content && DreamConfig.spark_input_content.filter(s => s.length > 0)
|
||||
if (sparkInputContent && sparkInputContent.length > 0) {
|
||||
Utils.cachedScript(`${DreamConfig.theme_base}/source/js/spark-input.min.js?mew=${DreamConfig.theme_version}`, function () {
|
||||
$('.spark-input').each((index, domEle) => sparkInput(domEle, sparkInputContent))
|
||||
Utils.cachedScript(`${DreamConfig.theme_base}/js/spark-input.min.js?mew=${DreamConfig.theme_version}`, function () {
|
||||
$('.spark-input').each((index, domEle) => sparkInput(domEle, [domEle.innerText, ...sparkInputContent]))
|
||||
})
|
||||
}
|
||||
},
|
||||
|
@ -1,58 +0,0 @@
|
||||
let journalContextInitial = false
|
||||
const journalContext = {
|
||||
/* 初始化事件 */
|
||||
initEvent() {
|
||||
if (journalContextInitial) return
|
||||
let $body = $('body')
|
||||
// 展开和关闭评论区事件
|
||||
$body.on('click', '.journal .comment', function () {
|
||||
$(this).parent().parent().siblings('.journal-comment').stop().slideToggle(200)
|
||||
})
|
||||
// 折叠日志区域
|
||||
$body.on('click', '.journal-content>.expand-done', function () {
|
||||
Utils.foldBlock($(this).parent())
|
||||
})
|
||||
$body.on('click', '.journal-operation-item>.share', function () {
|
||||
let $journal = $(this).parents('.journal')
|
||||
let title = '动态: ' + $journal.find('.journal-date>em').text()
|
||||
let desc = $journal.children('.journal-content').children('.main-content').text()
|
||||
DShare.sharePoster({
|
||||
image: DreamConfig.journals_share_image,
|
||||
title: title,
|
||||
description: desc.length > 220 ? desc.substring(0, 220) + '...' :desc
|
||||
})
|
||||
})
|
||||
Utils.initLikeEvent('.journal .like', 'journals', ($elem) => $elem.next())
|
||||
journalContextInitial = true
|
||||
},
|
||||
/* 点赞 */
|
||||
initLike() {
|
||||
Utils.initLikeButton('.journal .like', 'journals')
|
||||
},
|
||||
/* 折叠日志区域 */
|
||||
foldJournals() {
|
||||
const $journals = $('.journal .journal-content')
|
||||
$journals.each(function () {
|
||||
const $this = $(this)
|
||||
if (this.scrollHeight >= DreamConfig.journals_fold_height) {
|
||||
$this.append('<div class="expand-done"><i class="fa fa-angle-double-up"></i></div>')
|
||||
} else {
|
||||
$this.removeClass('fold')
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
window.journalPjax = function (serialNumber) {
|
||||
if ($('.card.journal').length === 0) return
|
||||
Object.keys(journalContext).forEach(
|
||||
(c) => window.pjaxSerialNumber === serialNumber && journalContext[c]()
|
||||
)
|
||||
}
|
||||
!(function () {
|
||||
!window.pjaxSerialNumber && journalContext.initEvent()
|
||||
!window.pjaxSerialNumber && journalContext.initLike()
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
!window.pjaxSerialNumber && journalContext.foldJournals()
|
||||
})
|
||||
})()
|
2
templates/assets/js/common.min.js
vendored
2
templates/assets/js/common.min.js
vendored
File diff suppressed because one or more lines are too long
2
templates/assets/js/dshare.min.js
vendored
2
templates/assets/js/dshare.min.js
vendored
File diff suppressed because one or more lines are too long
1
templates/assets/js/journals.min.js
vendored
1
templates/assets/js/journals.min.js
vendored
@ -1 +0,0 @@
|
||||
(()=>{let e=!1;const i={initEvent(){var n;e||((n=$("body")).on("click",".journal .comment",function(){$(this).parent().parent().siblings(".journal-comment").stop().slideToggle(200)}),n.on("click",".journal-content>.expand-done",function(){Utils.foldBlock($(this).parent())}),n.on("click",".journal-operation-item>.share",function(){var n=$(this).parents(".journal"),e="动态: "+n.find(".journal-date>em").text(),n=n.children(".journal-content").children(".main-content").text();DShare.sharePoster({image:DreamConfig.journals_share_image,title:e,description:220<n.length?n.substring(0,220)+"...":n})}),Utils.initLikeEvent(".journal .like","journals",n=>n.next()),e=!0)},initLike(){Utils.initLikeButton(".journal .like","journals")},foldJournals(){$(".journal .journal-content").each(function(){var n=$(this);this.scrollHeight>=DreamConfig.journals_fold_height?n.append('<div class="expand-done"><i class="fa fa-angle-double-up"></i></div>'):n.removeClass("fold")})}};window.journalPjax=function(e){0!==$(".card.journal").length&&Object.keys(i).forEach(n=>window.pjaxSerialNumber===e&&i[n]())},window.pjaxSerialNumber||i.initEvent(),window.pjaxSerialNumber||i.initLike(),document.addEventListener("DOMContentLoaded",function(){window.pjaxSerialNumber||i.foldJournals()})})();
|
@ -3,7 +3,7 @@
|
||||
class="banner"
|
||||
th:style="${'background-image: url(' + theme.config.basic_style.banner_image + ')'}">
|
||||
<div class="banner-info">
|
||||
<div class="banner-info-title" th:text="${site.title}">$</div>
|
||||
<div class="banner-info-title" th:text="${site.title}"></div>
|
||||
<div class="banner-info-desc" th:text="${theme.config.basic_style.banner_description}"></div>
|
||||
</div>
|
||||
<svg class="banner-waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto">
|
||||
|
@ -1,26 +1,15 @@
|
||||
<head xmlns:th="https://www.thymeleaf.org">
|
||||
<style th:inline="css">
|
||||
/*<#assign fontSrc=(settings.web_font?? && settings.web_font!='default')?then((settings.web_font=='custom')?then((settings.custom_font?? && settings.custom_font!='')?then(settings.custom_font, ''), '${theme_base!}/source/font/${settings.web_font}'), '')>*/
|
||||
/*<#if fontSrc!=''>*/
|
||||
/* <#if fontSrc?ends_with(".woff")>*/
|
||||
/* <#assign fontFormat="woff">*/
|
||||
/* <#elseif fontSrc?ends_with(".woff2")>*/
|
||||
/* <#assign fontFormat="woff2">*/
|
||||
/* <#elseif fontSrc?ends_with(".ttf")>*/
|
||||
/* <#assign fontFormat="truetype">*/
|
||||
/* <#elseif fontSrc?ends_with(".eot")>*/
|
||||
/* <#assign fontFormat="embedded-opentype">*/
|
||||
/* <#elseif fontSrc?ends_with(".svg")>*/
|
||||
/* <#assign fontFormat="svg">*/
|
||||
/* </#if>*/
|
||||
/*@font-face {*/
|
||||
/* font-family: "Dream Font";*/
|
||||
/* font-display: swap;*/
|
||||
/* font-weight: 400;*/
|
||||
/* src: url("${fontSrc!}")${(fontFormat??)?then(' format("${fontFormat}")', '')};*/
|
||||
/*}*/
|
||||
<style th:inline="css"
|
||||
th:with="fontSrc = ${theme.config.basic_style.web_font != 'default' ? theme.config.basic_style.web_font == 'custom' ? theme.config.basic_style.custom_font : #theme.assets('/font/' + theme.config.basic_style.web_font) : ''},
|
||||
fontFormat = ${fontSrc.endsWith('.ttf') ? 'truetype' : fontSrc.endsWith('.eot') ? 'embedded-opentype' : fontSrc.replaceAll('^.*\.([\w]+)$', '$1')}">
|
||||
[(${#strings.isEmpty(fontSrc) ? '' : '
|
||||
@font-face {
|
||||
font-family: "Dream Font";
|
||||
font-display: swap;
|
||||
font-weight: 400;
|
||||
src: url("' + fontSrc + '")' + (#strings.isEmpty(fontFormat)? '' : ' format("' + fontFormat + '")') + ';
|
||||
}'})]
|
||||
|
||||
/*</#if>*/
|
||||
html {
|
||||
--theme: [(${theme.config.basic_style.theme_color})];
|
||||
filter: [(${theme.config.enhance.enable_gray_mode ? 'grayscale(1) !important' : 'none'})];
|
||||
@ -80,9 +69,7 @@
|
||||
[(${!#strings.isEmpty(theme.config.basic_info.document_hidden_title)?'DreamConfig["document_hidden_title"] = "' + theme.config.basic_info.document_hidden_title + '";': ''})]
|
||||
[(${!#strings.isEmpty(theme.config.basic_info.document_visible_title)?'DreamConfig["document_visible_title"] = "' + theme.config.basic_info.document_visible_title + '";' : ''})]
|
||||
[(${!#strings.isEmpty(theme.config.basic_info.website_time)?'DreamConfig["website_time"] = "' + theme.config.basic_info.website_time + '";' : ''})]
|
||||
// <#if settings.enable_color_character!false>
|
||||
// DreamConfig["spark_input_content"] = ['${user.description?trim?replace('\n', '')?js_string}'<#if settings.color_character?? && settings.color_character?trim!=''>, '${settings.color_character?trim?js_string?replace('\\n', "','")}'</#if>];
|
||||
// </#if>
|
||||
[(${(theme.config.sidebar.enable_color_character && !#strings.isEmpty(theme.config.sidebar.color_character))? 'DreamConfig["spark_input_content"] = ["' + #strings.escapeJavaScript(theme.config.sidebar.color_character).replace('\\n', '","') + '"]' : ''})]
|
||||
DreamConfig["notice_show_mode"] = '[(${theme.config.basic_info.notice_show_mode})]';
|
||||
[(${(!#strings.isEmpty(theme.config.post.img_fold_height) && #numbers.sequence(theme.config.post.img_fold_height,theme.config.post.img_fold_height)[0] >= 400)?'DreamConfig["img_fold_height"] = ' + theme.config.post.img_fold_height + ';': ''})]
|
||||
[(${theme.config.enhance.cursor_move != 'none'?'DreamConfig["cursor_move"] = "' + theme.config.enhance.cursor_move + '";': ''})]
|
||||
|
@ -28,7 +28,7 @@
|
||||
</span>
|
||||
</p>
|
||||
<p th:if="${!#strings.isEmpty(theme.config.basic_info.record_number_ps)}"><a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=${settings.record_number_ps?replace('[^\\d]','','ri')}" target="_blank" rel="noopener noreferrer nofollow"><img
|
||||
src="https://www.beian.gov.cn/portal/download" alt="公网安备" style="vertical-align: text-top; width: 1.2em; margin-right: 4px;"/>${theme.config.basic_info.record_number_ps}</a></p>
|
||||
src="https://www.beian.gov.cn/portal/download" alt="公网安备" style="vertical-align: text-top; width: 1.2em; margin-right: 4px;"/>[[${theme.config.basic_info.record_number_ps}]]</a></p>
|
||||
<p th:if="${!#strings.isEmpty(theme.config.basic_info.cloud_by_logo)}">本站由<a
|
||||
class="cloud-driven" target="_blank" rel="noopener noreferrer nofollow" th:href="${theme.config.basic_info.cloud_by_url}"><img
|
||||
alt="云服务商" src="${theme.config.basic_info.cloud_by_logo}"/></a>提供云服务</p>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<head xmlns:th="https://www.thymeleaf.org" th:fragment="head"
|
||||
th:with="description=${isPost ? post.spec.excerpt.raw : site.seo.description}">
|
||||
th:with="description=${isPost ? post != null ? post.spec.excerpt.raw : singlePage.spec.excerpt.raw : site.seo.description}">
|
||||
<title th:text="${title}"></title>
|
||||
<script th:if="${(theme.config.enhance.enable_sw != 'false')}" th:src="${(theme.config.enhance.enable_sw == 'uninstall')? #theme.assets('/assets/js/sw.min.js') + '?mew=0.0.1' : '/sw.min.js?mew=0.0.1' + theme.config.enhance.enable_sw}"></script>
|
||||
<meta charset="utf-8"/>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<div class="column-main">
|
||||
<th:block th:replace="${content}"/>
|
||||
</div>
|
||||
<th:block th:replace="~{common/scripts}"/>
|
||||
<th:block th:include="~{common/scripts}"/>
|
||||
</body>
|
||||
</th:block>
|
||||
<th:block th:unless="${!#strings.equals('',param._pjax)}">
|
||||
@ -33,7 +33,7 @@
|
||||
</section>
|
||||
<th:block th:replace="~{common/actions}"/>
|
||||
<th:block th:replace="~{common/footer}"/>
|
||||
<th:block th:replace="~{common/scripts}"/>
|
||||
<th:block th:include="~{common/scripts}"/>
|
||||
</body>
|
||||
</th:block>
|
||||
</html>
|
@ -1,27 +1,29 @@
|
||||
<script th:src="@{/assets/js/utils.min.js(mew=${theme.spec.version})}"></script>
|
||||
<!--<#if is_carousel??>-->
|
||||
<!-- <script data-pjax th:src="@{/assets/lib/swiper@8.4.6/swiper-bundle.min.js}"></script>-->
|
||||
<!--</#if>-->
|
||||
<script th:src="@{/assets/js/common.min.js(mew=${theme.spec.version})}"></script>
|
||||
<div xmlns:th="https://www.thymeleaf.org">
|
||||
<script th:src="@{/assets/js/utils.min.js(mew=${theme.spec.version})}"></script>
|
||||
<!--<#if is_carousel??>-->
|
||||
<!-- <script data-pjax th:src="@{/assets/lib/swiper@8.4.6/swiper-bundle.min.js}"></script>-->
|
||||
<!--</#if>-->
|
||||
<script th:src="@{/assets/js/common.min.js(mew=${theme.spec.version})}"></script>
|
||||
|
||||
<th:block th:if="${isPost}">
|
||||
<th:block th:if="${isPost}">
|
||||
|
||||
<script th:if="${isPost}" data-pjax th:src="@{/assets/lib/highlightjs@11.5.1/highlight.min.js}"></script>
|
||||
<script th:if="${isPost}" data-pjax th:src="@{/assets/lib/clipboard@2.0.10/clipboard.min.js}"></script>
|
||||
<script th:if="${enableShare}" data-pjax th:src="@{/assets/js/dshare.min.js(mew=${theme.spec.version})}"></script>
|
||||
<script th:if="${isPost}" data-pjax th:src="@{/assets/js/post.min.js(mew=${theme.spec.version})}"></script>
|
||||
</th:block>
|
||||
<script th:if="${isPost}" data-pjax th:src="@{/assets/lib/highlightjs@11.5.1/highlight.min.js}"></script>
|
||||
<script th:if="${isPost}" data-pjax th:src="@{/assets/lib/clipboard@2.0.10/clipboard.min.js}"></script>
|
||||
<script th:if="${enableShare}" data-pjax th:src="@{/assets/js/dshare.min.js(mew=${theme.spec.version})}"></script>
|
||||
<script th:if="${isPost}" data-pjax th:src="@{/assets/js/post.min.js(mew=${theme.spec.version})}"></script>
|
||||
</th:block>
|
||||
|
||||
<script th:src="@{/assets/js/mew-custom.min.js(mew=${theme.spec.version})}"></script>
|
||||
<script th:src="@{/assets/js/mew-custom.min.js(mew=${theme.spec.version})}"></script>
|
||||
|
||||
<script th:src="@{/assets/lib/jquery-pjax@2.0.1/jquery.pjax.min.js}"></script>
|
||||
<script th:if="${theme.config.basic_style.load_progress != 'none'}" th:src="@{/assets/js/dprogress.min.js(mew=${theme.spec.version})}"></script>
|
||||
<script th:src="@{/assets/js/pjax.min.js(mew=${theme.spec.version})}"></script>
|
||||
<script async th:src="@{/assets/lib/qmsg/qmsg.min.js}"></script>
|
||||
<script th:src="@{/assets/lib/jquery-pjax@2.0.1/jquery.pjax.min.js}"></script>
|
||||
<script th:if="${theme.config.basic_style.load_progress != 'none'}" th:src="@{/assets/js/dprogress.min.js(mew=${theme.spec.version})}"></script>
|
||||
<script th:src="@{/assets/js/pjax.min.js(mew=${theme.spec.version})}"></script>
|
||||
<script async th:src="@{/assets/lib/qmsg/qmsg.min.js}"></script>
|
||||
|
||||
<script th:if="${isPost}" data-pjax async th:src="@{/assets/lib/fancybox@5.3.7/jquery.fancybox.min.js}"></script>
|
||||
<script th:if="${isPost}" data-pjax async th:src="@{/assets/lib/fancybox@5.3.7/jquery.fancybox.min.js}"></script>
|
||||
|
||||
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||
|
||||
<script th:if="${!#strings.isEmpty(theme.config.custom.inline_js_body)}" type="text/javascript" th:text="${theme.config.custom.inline_js_body}">
|
||||
</script>
|
||||
<script th:if="${!#strings.isEmpty(theme.config.custom.inline_js_body)}" type="text/javascript" th:text="${theme.config.custom.inline_js_body}">
|
||||
</script>
|
||||
</div>
|
@ -1,30 +1,25 @@
|
||||
<#assign donate = (settings.donate_alipay?? && settings.donate_alipay!='') || (settings.donate_wechat?? && settings.donate_wechat!='') />
|
||||
<#if donate || !is_sheet??>
|
||||
<div class="admire">
|
||||
<div xmlns:th="https://www.thymeleaf.org"
|
||||
th:with="donate=${!#strings.isEmpty(theme.config.post.donate_alipay) || !#strings.isEmpty(theme.config.post.donate_wechat)}">
|
||||
<div th:if="${donate || type == 'Post'}" class="admire">
|
||||
<div class="admire-content">
|
||||
<#if donate>
|
||||
<button class="donate">
|
||||
<i class="fa fa-credit-card"></i>
|
||||
<span>打赏</span>
|
||||
<div class="donate-list">
|
||||
<ol>
|
||||
<#if settings.donate_alipay?? && settings.donate_alipay!=''>
|
||||
<li><img src="${settings.donate_alipay!}" alt="支付宝捐赠"></li>
|
||||
</#if>
|
||||
<#if settings.donate_wechat?? && settings.donate_wechat!=''>
|
||||
<li><img src="${settings.donate_wechat!}" alt="微信捐赠"></li>
|
||||
</#if>
|
||||
</ol>
|
||||
</div>
|
||||
</button>
|
||||
</#if>
|
||||
<#if !is_sheet??>
|
||||
<button class="agree like" data-id="${(post.id!0)?c}" data-likes="${(post.likes!0)?c}">
|
||||
<i class="fa fa-thumbs-o-up"></i>
|
||||
<span>赞<span>${post.likes!0}</span></span>
|
||||
</button>
|
||||
</#if>
|
||||
<button th:if="${donate}" class="donate">
|
||||
<i class="fa fa-credit-card"></i>
|
||||
<span>打赏</span>
|
||||
<div class="donate-list">
|
||||
<ol>
|
||||
<li th:if="!#strings.isEmpty(theme.config.post.donate_alipay)"><img
|
||||
th:src="${theme.config.post.donate_alipay}" alt="支付宝捐赠"></li>
|
||||
<li th:if="!#strings.isEmpty(theme.config.post.donate_wechat)"><img
|
||||
th:src="${theme.config.post.donate_wechat}" alt="微信捐赠"></li>
|
||||
</ol>
|
||||
</div>
|
||||
</button>
|
||||
<button th:if="${type == 'Post'}" class="agree like" data-id="${(post.id!0)?c}"
|
||||
data-likes="${(post.likes!0)?c}">
|
||||
<i class="fa fa-thumbs-o-up"></i>
|
||||
<span>赞<span th:text="${post.stats.upvote}"></span></span>
|
||||
</button>
|
||||
</div>
|
||||
<span>如果觉得文章对你有用,请随意赞赏</span>
|
||||
</div>
|
||||
</#if>
|
||||
</div>
|
@ -1,146 +1,97 @@
|
||||
<div xmlns:th="https://www.thymeleaf.org"
|
||||
th:fragment="article (post, commentType)">
|
||||
<th:block xmlns:th="https://www.thymeleaf.org"
|
||||
th:fragment="article (post, type)"
|
||||
th:with="updateInterval = ${T(java.lang.Math).floor((#dates.createNow().getTime()/1000.0 - post.status.lastModifyTime.getEpochSecond())/86400.0).intValue()}">
|
||||
|
||||
<div th:if="${!#strings.isEmpty(post.spec.cover)}" class="card widget">
|
||||
<div class="cover-image" th:style="'background-image: url(' + ${post.spec.cover} + ')'">
|
||||
<div th:if="${!#lists.isEmpty(post.categories)}" class="category">
|
||||
<a th:each="cy : ${post.categories}" th:href="${cy.status.permalink}" th:text="${cy.spec.displayName}"></a>
|
||||
</div>
|
||||
<div class="details">
|
||||
<h1 class="title" th:text="${post.spec.title}"></h1>
|
||||
<ul class="breadcrumb">
|
||||
<li th:text="${#dates.format(post.spec.publishTime, 'yyyy-MM-dd HH:mm')}"></li>
|
||||
<li><i class="fa fa-eye"></i>[[${post.stats.visit}]]</li>
|
||||
<li th:if="${post.spec.allowComment}" class="is-hidden-mobile"><i class="fa fa-comments-o"></i>[[${post.stats.comment}]]
|
||||
</li>
|
||||
<li><i class="fa fa-thumbs-o-up"></i>[[${post.stats.upvote}]]</li>
|
||||
<li><i class="fa fa-pencil"></i>[[${#strings.length(#strings.trim(post.content.content))}]]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:if="${post.metadata.annotations.containsKey('tips')}" class="card tips brightness"><i
|
||||
class="fa fa-times click-close" data-close=".tips"></i>[[${post.metadata.annotations.tips}]]
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-content main">
|
||||
<th:block th:if="${!#strings.isEmpty(post.spec.cover)}">
|
||||
<h1 class="title" th:text="${post.spec.title}"></h1>
|
||||
<div class="meta">
|
||||
<ul class="breadcrumb">
|
||||
<li th:text="${#dates.format(post.spec.publishTime, 'yyyy-MM-dd HH:mm')}"></li>
|
||||
<li><i class="fa fa-eye"></i>[[${post.stats.visit}]]</li>
|
||||
<li th:if="${post.spec.allowComment}" class="is-hidden-mobile"><i class="fa fa-comments-o"></i>[[${post.stats.comment}]]
|
||||
</li>
|
||||
<li><i class="fa fa-thumbs-o-up"></i>[[${post.stats.upvote}]]</li>
|
||||
<li><i class="fa fa-pencil"></i>[[${#strings.length(#strings.trim(post.content.content))}]]</li>
|
||||
</ul>
|
||||
<div th:if="${!#lists.isEmpty(post.categories)}" class="level-item">
|
||||
<a th:each="cy : ${post.categories}" th:href="${cy.status.permalink}" th:text="${cy.spec.displayName}"></a>
|
||||
</div>
|
||||
<div th:if="${!#strings.isEmpty(post.spec.cover)}" class="card widget">
|
||||
<div class="cover-image" th:style="'background-image: url(' + ${post.spec.cover} + ')'">
|
||||
<div th:if="${type == 'Post' && !#lists.isEmpty(post.categories)}" class="category">
|
||||
<a th:each="cy : ${post.categories}" th:href="${cy.status.permalink}"
|
||||
th:text="${cy.spec.displayName}"></a>
|
||||
</div>
|
||||
<div class="details">
|
||||
<h1 class="title" th:text="${post.spec.title}"></h1>
|
||||
<ul class="breadcrumb">
|
||||
<li th:text="${#dates.format(post.spec.publishTime, 'yyyy-MM-dd HH:mm')}"></li>
|
||||
<li><i class="fa fa-eye"></i>[[${post.stats.visit}]]</li>
|
||||
<li th:if="${post.spec.allowComment}" class="is-hidden-mobile"><i class="fa fa-comments-o"></i>[[${post.stats.comment}]]
|
||||
</li>
|
||||
<li><i class="fa fa-thumbs-o-up"></i>[[${post.stats.upvote}]]</li>
|
||||
<li><i class="fa fa-pencil"></i>[[${#strings.length(#strings.trim(post.content.content))}]]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
</th:block>
|
||||
|
||||
<div th:data-id="${post.metadata.name}" th:data-target="${commentType}" class="main-content article"
|
||||
th:utext="${post.content.content}">
|
||||
</div>
|
||||
|
||||
<!-- <#include "templates/main/admire.html">-->
|
||||
|
||||
|
||||
<div th:if="${!#lists.isEmpty(post.tags)}" class="article-operation">
|
||||
<div class="level-item">
|
||||
<a th:each=" tag : ${post.tags}" th:href="${tag.status.permalink}" th:text="${tag.spec.displayName}"></a>
|
||||
</div>
|
||||
</div>
|
||||
<th:bolck th:if="${enableCopyright || enableShare}">
|
||||
<hr/>
|
||||
<th:block th:if="${enableCopyright}">
|
||||
<th:block th:replace="~{main/copyright}"></th:block>
|
||||
</th:block>
|
||||
<div th:if="${enableShare}" class="dshare"></div>
|
||||
</th:bolck>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card card-content" id="comment-wrapper" th:if="${pluginFinder.available('PluginCommentWidget')}">
|
||||
<h3 class="comment-title">评论</h3>
|
||||
<halo:comment colorScheme="window.dataTheme" group="content.halo.run" th:kind="${commentType}"
|
||||
th:attr="name=${post.metadata.name}"/>
|
||||
</div>
|
||||
</div>
|
||||
<!--<#macro article post,commentType>-->
|
||||
<!-- <#assign updateInterval = ((.now?long - post.updateTime?long)/86400000)?floor >-->
|
||||
<!-- <#if updateInterval gt (settings.invalid_tips_day!'99999999')?number >-->
|
||||
<!-- <div class="card tips brightness"><i class="fa fa-times click-close" data-close=".tips"></i>本文最后更新于 ${post.updateTime?string('yyyy-MM-dd')},距今已有 ${updateInterval} 天,若文章内容或图片链接失效,请留言反馈。</div>-->
|
||||
<!-- </#if>-->
|
||||
<!-- <div class="card">-->
|
||||
<!-- <div class="card-content main">-->
|
||||
<!-- <#if !post.thumbnail?? || post.thumbnail==''>-->
|
||||
<!-- <h1 class="title">${post.title!}</h1>-->
|
||||
<!-- <div class="meta">-->
|
||||
<!-- <ul class="breadcrumb">-->
|
||||
<!-- <li><@global.timeline datetime=post.createTime/></li>-->
|
||||
<!-- <li><i class="fa fa-eye"></i>${post.visits?c}</li>-->
|
||||
<!-- <#if !post.disallowComment!false><li><i class="fa fa-comments-o"></i>${post.commentCount?c}</li></#if>-->
|
||||
<!-- <#if !is_sheet??><li><i class="fa fa-thumbs-o-up"></i>${post.likes?c}</li></#if>-->
|
||||
<!-- <li><i class="fa fa-pencil"></i>${post.wordCount?c}</li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- <#if post.categories?? && post.categories?size gt 0>-->
|
||||
<!-- <div class="level-item">-->
|
||||
<!-- <#list post.categories as category>-->
|
||||
<!-- <a href="${category.fullPath!}">${category.name!}</a> -->
|
||||
<!-- </#list>-->
|
||||
<!-- </div>-->
|
||||
<!-- </#if>-->
|
||||
<!-- </div>-->
|
||||
<!-- <hr/>-->
|
||||
<!-- </#if>-->
|
||||
<!-- <div data-id="${post.id?c}" data-target="${commentType}s" class="main-content article">${post.formatContent!}</div>-->
|
||||
<div th:if="${!#strings.isEmpty(theme.config.post.invalid_tips_day) && updateInterval > T(java.lang.Long).parseLong(theme.config.post.invalid_tips_day)}"
|
||||
class="card tips brightness"><i class="fa fa-times click-close" data-close=".tips"></i>本文最后更新于
|
||||
[[${#dates.format(post.status.lastModifyTime,'yyyy-MM-dd')}]],距今已有 [[${updateInterval}]]
|
||||
天,若文章内容或图片链接失效,请留言反馈。
|
||||
</div>
|
||||
|
||||
<!-- <#include "templates/main/admire.html">-->
|
||||
<div th:if="${post.metadata.annotations.containsKey('tips')}" class="card tips brightness"><i
|
||||
class="fa fa-times click-close" data-close=".tips"></i>[[${post.metadata.annotations.tips}]]
|
||||
</div>
|
||||
|
||||
<!-- <#if tags?? && (tags?size gt 0)>-->
|
||||
<!-- <div class="article-operation">-->
|
||||
<!-- <div class="level-item">-->
|
||||
<!-- <#list tags as tag>-->
|
||||
<!-- <a href="${tag.fullPath!}">${tag.name!}</a> -->
|
||||
<!-- </#list>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </#if>-->
|
||||
<!-- <#assign enable_copyright = (metas?? && metas.enable_copyright?? && metas.enable_copyright?trim!='')?then(metas.enable_copyright?trim, (settings.enable_copyright!true)?c)>-->
|
||||
<!-- <#if enable_copyright == 'true' || enable_share>-->
|
||||
<!-- <hr/>-->
|
||||
<!-- <#if enable_copyright == 'true'>-->
|
||||
<!-- <#include "copyright.ftl">-->
|
||||
<!-- </#if>-->
|
||||
<!-- <#if enable_share>-->
|
||||
<!-- <div class="dshare"></div>-->
|
||||
<!-- </#if>-->
|
||||
<!-- </#if>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="card">
|
||||
<div class="card-content main">
|
||||
<th:block th:if="${!#strings.isEmpty(post.spec.cover)}">
|
||||
<h1 class="title" th:text="${post.spec.title}"></h1>
|
||||
<div class="meta">
|
||||
<ul class="breadcrumb">
|
||||
<li th:text="${#dates.format(post.spec.publishTime, 'yyyy-MM-dd HH:mm')}"></li>
|
||||
<li><i class="fa fa-eye"></i>[[${post.stats.visit}]]</li>
|
||||
<li th:if="${post.spec.allowComment}" class="is-hidden-mobile"><i class="fa fa-comments-o"></i>[[${post.stats.comment}]]
|
||||
</li>
|
||||
<li><i class="fa fa-thumbs-o-up"></i>[[${post.stats.upvote}]]</li>
|
||||
<li><i class="fa fa-pencil"></i>[[${#strings.length(#strings.trim(post.content.content))}]]</li>
|
||||
</ul>
|
||||
<div th:if="${type == 'Post' && !#lists.isEmpty(post.categories)}" class="level-item">
|
||||
<a th:each="cy : ${post.categories}" th:href="${cy.status.permalink}"
|
||||
th:text="${cy.spec.displayName}"></a>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
</th:block>
|
||||
|
||||
<!-- <#if nextPost?? || prevPost??>-->
|
||||
<!-- <div class="card">-->
|
||||
<!-- <div class="level post-navigation card-content">-->
|
||||
<!-- <#if prevPost??>-->
|
||||
<!-- <a class="level-item" href="${prevPost.fullPath!}">-->
|
||||
<!-- <i class="fa fa-angle-left"></i>-->
|
||||
<!-- <span>${prevPost.title!}</span>-->
|
||||
<!-- </a>-->
|
||||
<!-- </#if>-->
|
||||
<!-- <#if nextPost??>-->
|
||||
<!-- <a class="level-item" href="${nextPost.fullPath!}">-->
|
||||
<!-- <span>${nextPost.title!}</span>-->
|
||||
<!-- <i class="fa fa-angle-right"></i>-->
|
||||
<!-- </a>-->
|
||||
<!-- </#if>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </#if>-->
|
||||
<!--</#macro>-->
|
||||
<div th:data-id="${post.metadata.name}" th:data-target="${type}" class="main-content article"
|
||||
th:utext="${post.content.content}">
|
||||
</div>
|
||||
|
||||
<th:block th:include="~{main/admire}"/>
|
||||
|
||||
<div th:if="${type == 'Post' && !#lists.isEmpty(post.tags)}" class="article-operation">
|
||||
<div class="level-item">
|
||||
<a th:each=" tag : ${post.tags}" th:href="${tag.status.permalink}"
|
||||
th:text="${tag.spec.displayName}"></a>
|
||||
</div>
|
||||
</div>
|
||||
<th:bolck th:if="${enableCopyright || enableShare}">
|
||||
<hr/>
|
||||
<th:block th:if="${enableCopyright}">
|
||||
<th:block th:replace="~{main/copyright}"></th:block>
|
||||
</th:block>
|
||||
<div th:if="${enableShare}" class="dshare"></div>
|
||||
</th:bolck>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<th:block th:if="${type == 'Post'}" th:with="postCursor = ${postFinder.cursor(post.metadata.name)}">
|
||||
<div th:if="${postCursor.hasPrevious() || postCursor.hasNext()}" class="card">
|
||||
<div class="level post-navigation card-content">
|
||||
<a th:if="${postCursor.hasPrevious()}" class="level-item"
|
||||
th:href="@{${postCursor.previous.status.permalink}}">
|
||||
<i class="fa fa-angle-left"></i><span th:text="${postCursor.previous.spec.title}"></span>
|
||||
</a>
|
||||
<a th:if="${postCursor.hasNext()}" class="level-item" th:href="@{${postCursor.next.status.permalink}}">
|
||||
<span th:text="${postCursor.next.spec.title}"></span><i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
|
||||
<div class="card card-content" id="comment-wrapper" th:if="${pluginFinder.available('PluginCommentWidget')}">
|
||||
<h3 class="comment-title">评论</h3>
|
||||
<halo:comment colorScheme="window.dataTheme" group="content.halo.run" th:kind="${type}"
|
||||
th:attr="name=${post.metadata.name}"/>
|
||||
</div>
|
||||
</th:block>
|
@ -1,105 +0,0 @@
|
||||
<#macro articleLiterature post,commentType>
|
||||
<#if post.thumbnail?? && post.thumbnail!=''>
|
||||
<div class="card widget">
|
||||
<div class="cover-image" style="background-image: url(${post.thumbnail!})">
|
||||
<#if categories?? && categories?size gt 0>
|
||||
<div class="category">
|
||||
<#list categories as category>
|
||||
<a href="${category.fullPath!}">${category.name!}</a>
|
||||
</#list>
|
||||
</div>
|
||||
</#if>
|
||||
<div class="details">
|
||||
<h1 class="title">${post.title!}</h1>
|
||||
<ul class="breadcrumb">
|
||||
<li><@global.timeline datetime=post.createTime/></li>
|
||||
<li><i class="fa fa-eye"></i>${post.visits?c}</li>
|
||||
<#if !post.disallowComment!false><li><i class="fa fa-comments-o"></i>${post.commentCount?c}</li></#if>
|
||||
<#if !is_sheet??><li><i class="fa fa-thumbs-o-up"></i>${post.likes?c}</li></#if>
|
||||
<li><i class="fa fa-pencil"></i>${post.wordCount?c}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</#if>
|
||||
<#assign updateInterval = ((.now?long - post.updateTime?long)/86400000)?floor >
|
||||
<#if updateInterval gt (settings.invalid_tips_day!'99999999')?number >
|
||||
<div class="card tips brightness"><i class="fa fa-times click-close" data-close=".tips"></i>本文最后更新于 ${post.updateTime?string('yyyy-MM-dd')},距今已有 ${updateInterval} 天,若文章内容或图片链接失效,请留言反馈。</div>
|
||||
</#if>
|
||||
<#if (metas?? && metas.tips?? && metas.tips!='')>
|
||||
<div class="card tips brightness"><i class="fa fa-times click-close" data-close=".tips"></i>${metas.tips}</div>
|
||||
</#if>
|
||||
<div class="card">
|
||||
<div class="card-content main">
|
||||
<#if !post.thumbnail?? || post.thumbnail==''>
|
||||
<h1 class="title">${post.title!}</h1>
|
||||
<div class="meta">
|
||||
<ul class="breadcrumb">
|
||||
<li><@global.timeline datetime=post.createTime/></li>
|
||||
<li><i class="fa fa-eye"></i>${post.visits?c}</li>
|
||||
<#if !post.disallowComment!false><li><i class="fa fa-comments-o"></i>${post.commentCount?c}</li></#if>
|
||||
<#if !is_sheet??><li><i class="fa fa-thumbs-o-up"></i>${post.likes?c}</li></#if>
|
||||
<li><i class="fa fa-pencil"></i>${post.wordCount?c}</li>
|
||||
</ul>
|
||||
<#if post.categories?? && post.categories?size gt 0>
|
||||
<div class="level-item">
|
||||
<#list post.categories as category>
|
||||
<a href="${category.fullPath!}">${category.name!}</a>
|
||||
</#list>
|
||||
</div>
|
||||
</#if>
|
||||
</div>
|
||||
<hr/>
|
||||
</#if>
|
||||
<div data-id="${post.id?c}" data-target="${commentType}s" class="main-content literature-content article">${post.formatContent!}</div>
|
||||
|
||||
<#include "templates/main/admire.html">
|
||||
|
||||
<#if tags?? && (tags?size gt 0)>
|
||||
<div class="article-operation">
|
||||
<div class="level-item">
|
||||
<#list tags as tag>
|
||||
<a href="${tag.fullPath!}">${tag.name!}</a>
|
||||
</#list>
|
||||
</div>
|
||||
</div>
|
||||
</#if>
|
||||
<#assign enable_copyright = (metas?? && metas.enable_copyright?? && metas.enable_copyright?trim!='')?then(metas.enable_copyright?trim, (settings.enable_copyright!true)?c)>
|
||||
<#if enable_copyright == 'true' || enable_share>
|
||||
<hr/>
|
||||
<#if enable_copyright == 'true'>
|
||||
<#include "templates/main/copyright.html">
|
||||
</#if>
|
||||
<#if enable_share>
|
||||
<div class="dshare"></div>
|
||||
</#if>
|
||||
</#if>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<#if nextPost?? || prevPost??>
|
||||
<div class="card">
|
||||
<div class="level post-navigation card-content">
|
||||
<#if prevPost??>
|
||||
<a class="level-item" href="${prevPost.fullPath!}">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
<span>${prevPost.title!}</span>
|
||||
</a>
|
||||
</#if>
|
||||
<#if nextPost??>
|
||||
<a class="level-item" href="${nextPost.fullPath!}">
|
||||
<span>${nextPost.title!}</span>
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
</#if>
|
||||
</div>
|
||||
</div>
|
||||
</#if>
|
||||
<#if (!post.disallowComment!false) && settings.enable_comment!true>
|
||||
<div class="card card-content" id="comment-wrapper">
|
||||
<h3 class="comment-title">评论</h3>
|
||||
<#include "templates/main/comment.html">
|
||||
<@comment post.id?c, commentType />
|
||||
</div>
|
||||
</#if>
|
||||
</#macro>
|
@ -1,24 +0,0 @@
|
||||
<#macro comment id,type>
|
||||
<#assign imageUploadApi = (settings.image_upload_api?? && settings.image_upload_api!='')?then(', "imageUploadApi": "${settings.image_upload_api!}"', '') >
|
||||
<#assign avatarLoading = (settings.avatar_loading?? && settings.avatar_loading!='')?then(', "avatarLoading": "${settings.avatar_loading!}"', '') >
|
||||
<#assign defaultAvatar = (settings.default_avatar?? && settings.default_avatar!='')?then(', "defaultAvatar": "${settings.default_avatar!}"', '') >
|
||||
<#assign anonymousUserName = (settings.anonymous_user_name?? && settings.anonymous_user_name!='')?then(', "anonymousUserName": "${settings.anonymous_user_name!}"', '') >
|
||||
<#assign enableBulletScreen = (is_journals??)?then("false", (metas?? && metas.enable_bullet_screen?? && metas.enable_bullet_screen?trim!="")?then(metas.enable_bullet_screen?trim, (settings.enable_bullet_screen!false)?c))>
|
||||
<#assign configs= '{"autoLoad": ${(settings.autoload_comment!true)?c
|
||||
}, "showUserAgent": ${(settings.show_comment_ua!true)?c
|
||||
}, "priorityQQAvatar": ${(settings.priority_qq_avatar!false)?c
|
||||
}, "getQQInfo": ${(settings.enable_qq_info!false)?c
|
||||
}, "commentHtml": ${(settings.enable_comment_html!false)?c
|
||||
}, "loadingStyle": "${settings.comment_loading_style!"default"
|
||||
}", "unfoldReplyNum": ${settings.unfold_reply_num!6
|
||||
}, "replyDescSoft": ${(settings.reply_desc_soft!false)?c
|
||||
}, "enableImageUpload": ${(settings.enable_image_upload!false)?c
|
||||
}, "enableBulletScreen": ${enableBulletScreen
|
||||
}${imageUploadApi!
|
||||
}${anonymousUserName!
|
||||
}, "enableBloggerOperation": ${(settings.enable_blogger_operation!true)?c
|
||||
}${avatarLoading!
|
||||
}${defaultAvatar!
|
||||
}}'>
|
||||
<halo-comment ${(enableBulletScreen == 'true')?then('bullet-screen="true"', '')} id="${id}" type="${type}" configs='${configs}'/>
|
||||
</#macro>
|
@ -1,5 +1,7 @@
|
||||
<#include "templates/layout_pjax.ftl">
|
||||
<#include "templates/main/article.ftl">
|
||||
<@layout title="${sheet.title} - ${blog_title!}" canonical="${sheet.fullPath!}">
|
||||
<@article sheet,"sheet" />
|
||||
</@layout>
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th="https://www.thymeleaf.org"
|
||||
th:include="~{common/layout :: layout (title = ${singlePage.spec.title + ' - ' + site.title}, canonical = ${singlePage.status.permalink}, content = ~{main/article :: article (${singlePage}, 'SinglePage')}, isPost = true)}"
|
||||
th:with="enableKatex = ${!#strings.isEmpty(singlePage.metadata.annotations.get('enable_katex'))? singlePage.metadata.annotations.get('enable_katex') : theme.config.post.enable_katex},
|
||||
enableShare = ${!#strings.isEmpty(singlePage.metadata.annotations.get('enable_share'))? singlePage.metadata.annotations.get('enable_share') : theme.config.post.enable_share},
|
||||
enableCopyright = ${!#strings.isEmpty(singlePage.metadata.annotations.get('enable_copyright'))? singlePage.metadata.annotations.get('enable_copyright') : theme.config.post.enable_copyright}">
|
||||
</html>
|
@ -1,10 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th="https://www.thymeleaf.org"
|
||||
th:include="~{common/layout :: layout (title = ${post.spec.title + ' - ' + site.title}, canonical = ${post.status.permalink}, content = ~{::content}, isPost = true)}"
|
||||
th:include="~{common/layout :: layout (title = ${post.spec.title + ' - ' + site.title}, canonical = ${post.status.permalink}, content = ~{main/article :: article (${post}, 'Post')}, isPost = true)}"
|
||||
th:with="enableKatex = ${!#strings.isEmpty(post.metadata.annotations.get('enable_katex'))? post.metadata.annotations.get('enable_katex') : theme.config.post.enable_katex},
|
||||
enableShare = ${!#strings.isEmpty(post.metadata.annotations.get('enable_share'))? post.metadata.annotations.get('enable_share') : theme.config.post.enable_share},
|
||||
enableCopyright = ${!#strings.isEmpty(post.metadata.annotations.get('enable_copyright'))? post.metadata.annotations.get('enable_copyright') : theme.config.post.enable_copyright}">
|
||||
<th:block th:fragment="content" th:with="isEmpty = ${#lists.isEmpty(posts)}">
|
||||
<th:block th:include="~{main/article :: article (${post}, 'Post')}"/>
|
||||
</th:block>
|
||||
</html>
|
@ -1,5 +0,0 @@
|
||||
<#include "templates/layout_pjax.ftl">
|
||||
<#include "templates/main/article_literature.ftl">
|
||||
<@layout title="${post.title!} - ${blog_title!}" canonical="${post.fullPath!}">
|
||||
<@articleLiterature post,"post" />
|
||||
</@layout>
|
@ -1,14 +0,0 @@
|
||||
<#include "templates/layout_pjax.ftl">
|
||||
<@layout title="搜索:${keyword} - ${blog_title!}" canonical="${blog_url!}/search?keyword=${keyword}">
|
||||
<#if (posts.content)?? && posts.content?size gt 0>
|
||||
<#include "templates/main/article_list.ftl">
|
||||
<@article_list posts.content/>
|
||||
<#include "templates/main/pagination.ftl">
|
||||
<@pagination method="search" datas=posts keyword="${keyword!}" display="${settings.page_number!5}" />
|
||||
<#else>
|
||||
<div class="card card-empty">
|
||||
<i class="fa fa-inbox"></i>
|
||||
搜索结果为空,回<a href="${context!}">主页</a>看看吧
|
||||
</div>
|
||||
</#if>
|
||||
</@layout>
|
@ -1,5 +0,0 @@
|
||||
<#include "templates/layout_pjax.ftl">
|
||||
<#include "templates/main/article_literature.ftl">
|
||||
<@layout title="${sheet.title} - ${blog_title!}" canonical="${sheet.fullPath!}">
|
||||
<@articleLiterature sheet,"sheet" />
|
||||
</@layout>
|
@ -1,35 +0,0 @@
|
||||
<#assign num= settings.links_num!10 />
|
||||
<div xmlns:th="https://www.thymeleaf.org"
|
||||
th:fragment="widget (hide)"
|
||||
th:class="'card widget links ' + ${hide}">
|
||||
<@linkTag method="listByRandom">
|
||||
<div class="card-title">
|
||||
<i class="fa fa-link card-title-label"></i><span>友链</span>
|
||||
<#if settings.links_more?? && settings.links_more== true && links?size gt num?number>
|
||||
<a class="card-more" href="${links_url!}">更多<i class="fa fa-angle-double-right"></i></a>
|
||||
</#if>
|
||||
</div>
|
||||
<#if links?? && links?size gt 0>
|
||||
<div class="card-content">
|
||||
<ul class="menu-list">
|
||||
<#assign size= (links?size > num?number)?string(num, links?size)?number - 1 />
|
||||
<#list 0..size as i>
|
||||
<#assign link= links[i] />
|
||||
<li>
|
||||
<a class="level is-mobile" rel="nofollow noopener noreferrer" href="${link.url!}" target="_blank">
|
||||
<span class="level-left">
|
||||
<span class="level-item">${link.name}</span>
|
||||
</span>
|
||||
<span class="level-right">
|
||||
<span class="level-item tag">${link.url?replace('http[s]?://|/.*','','ri')}</span>
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</#list>
|
||||
</ul>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="card-empty">暂无友链</div>
|
||||
</#if>
|
||||
</@linkTag>
|
||||
</div>
|
@ -1,4 +1,3 @@
|
||||
<#assign num= settings.tagcloud_num!32 />
|
||||
<div xmlns:th="https://www.thymeleaf.org"
|
||||
th:fragment="widget (hide)"
|
||||
th:class="'card widget tagcloud ' + ${hide}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user