This commit is contained in:
Van 2019-03-20 13:49:45 +08:00
parent 1605dceed8
commit 4d04c02872
No known key found for this signature in database
GPG Key ID: 7059B8783A78F16C
23 changed files with 631 additions and 751 deletions

View File

@ -17,13 +17,12 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<#include "macro-head.ftl"> <#include "../../common-template/macro-common_head.ftl">
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<@head title="${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} (${archiveDate.archiveDatePublishedArticleCount}) - ${blogTitle}"> <@head title="${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} ${archiveLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveDate.archiveDateYear}${archiveDate.archiveDateMonth}"/> <link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
<meta name="description" content="<#list articles as article>${article.articleTitle}<#if article_has_next>,</#if></#list>"/>
</@head> </@head>
</head> </head>
<body> <body>

View File

@ -17,13 +17,12 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<#include "macro-head.ftl"> <#include "../../common-template/macro-common_head.ftl">
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<@head title="${archiveLabel} - ${blogTitle}"> <@head title="${archiveLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveLabel}"/> <link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
<meta name="description" content="${metaDescription},${archiveLabel}"/>
</@head> </@head>
</head> </head>
<body> <body>

View File

@ -38,20 +38,20 @@
</h1> </h1>
<div class="meta"> <div class="meta">
<span class="tooltipped tooltipped-n" aria-label="${createDateLabel}"> <span class="vditor-tooltipped vditor-tooltipped__n" aria-label="${createDateLabel}">
<i class="icon-date"></i> <i class="icon-date"></i>
<time> <time>
${article.articleCreateDate?string("yyyy-MM-dd")} ${article.articleCreateDate?string("yyyy-MM-dd")}
</time> </time>
</span> </span>
&nbsp; | &nbsp; &nbsp; | &nbsp;
<span class="tooltipped tooltipped-n" aria-label="${commentCountLabel}"> <span class="vditor-tooltipped vditor-tooltipped__n" aria-label="${commentCountLabel}">
<i class="icon-comments"></i> <i class="icon-comments"></i>
<a href="${servePath}${article.articlePermalink}#comments"> <a href="${servePath}${article.articlePermalink}#comments">
${article.articleCommentCount} ${commentLabel}</a> ${article.articleCommentCount} ${commentLabel}</a>
</span> </span>
&nbsp; | &nbsp; &nbsp; | &nbsp;
<span class="tooltipped tooltipped-n" aria-label="${viewCountLabel}"> <span class="vditor-tooltipped vditor-tooltipped__n" aria-label="${viewCountLabel}">
<i class="icon-views"></i> <i class="icon-views"></i>
${article.articleViewCount} ${viewLabel} ${article.articleViewCount} ${viewLabel}
</span> </span>

View File

@ -17,50 +17,34 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<#include "macro-head.ftl"> <#include "../../common-template/macro-common_head.ftl">
<#include "macro-comments.ftl"> <#include "macro-comments.ftl">
<#include "../../common-template/macro-comment_script.ftl"> <#include "../../common-template/macro-comment_script.ftl">
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<@head title="${article.articleTitle} - ${blogTitle}"> <@head title="${article.articleTitle} - ${blogTitle}" description="${article.articleAbstract?html}">
<meta name="keywords" content="${article.articleTags}" /> <link rel="stylesheet"
<meta name="description" content="${article.articleAbstract?html}" /> href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
</@head>
<#if previousArticlePermalink??> <#if previousArticlePermalink??>
<link rel="prev" title="${previousArticleTitle}" href="${servePath}${previousArticlePermalink}"> <link rel="prev" title="${previousArticleTitle}" href="${servePath}${previousArticlePermalink}">
</#if> </#if>
<#if nextArticlePermalink??> <#if nextArticlePermalink??>
<link rel="next" title="${nextArticleTitle}" href="${servePath}${nextArticlePermalink}"> <link rel="next" title="${nextArticleTitle}" href="${servePath}${nextArticlePermalink}">
</#if> </#if>
<!-- Open Graph --> </@head>
<meta property="og:locale" content="zh_CN"/> </head>
<meta property="og:type" content="article"/> <body>
<meta property="og:title" content="${article.articleTitle}"/>
<meta property="og:description" content="${article.articleAbstract?html}"/>
<meta property="og:image" content="${article.authorThumbnailURL}"/>
<meta property="og:url" content="${servePath}${article.articlePermalink}"/>
<meta property="og:site_name" content="Solo"/>
<!-- Twitter Card -->
<meta name="twitter:card" content="summary"/>
<meta name="twitter:description" content="${article.articleAbstract?html}"/>
<meta name="twitter:title" content="${article.articleTitle}"/>
<meta name="twitter:image" content="${article.authorThumbnailURL}"/>
<meta name="twitter:url" content="${servePath}${article.articlePermalink}"/>
<meta name="twitter:site" content="@DL88250"/>
<meta name="twitter:creator" content="@DL88250"/>
</head>
<body>
<#include "header.ftl"> <#include "header.ftl">
<div class="wrapper"> <div class="wrapper">
<div class="main-wrap"> <div class="main-wrap">
<main> <main>
<article class="post"> <article class="post">
<header> <header>
<h1> <h1>
<a rel="bookmark" href="${servePath}${article.articlePermalink}"> <a rel="bookmark" href="${servePath}${article.articlePermalink}">
${article.articleTitle} ${article.articleTitle}
</a> </a>
<#if article.articlePutTop> <#if article.articlePutTop>
<sup> <sup>
${topArticleLabel} ${topArticleLabel}
@ -71,94 +55,94 @@
${updatedLabel} ${updatedLabel}
</sup> </sup>
</#if> </#if>
</h1> </h1>
<div class="meta"> <div class="meta">
<span class="tooltipped tooltipped-n" aria-label="${createDateLabel}"> <span class="vditor-tooltipped vditor-tooltipped__n" aria-label="${createDateLabel}">
<i class="icon-date"></i> <i class="icon-date"></i>
<time> <time>
${article.articleCreateDate?string("yyyy-MM-dd")} ${article.articleCreateDate?string("yyyy-MM-dd")}
</time> </time>
</span> </span>
&nbsp; | &nbsp; &nbsp; | &nbsp;
<span class="tooltipped tooltipped-n" aria-label="${commentCountLabel}"> <span class="vditor-tooltipped vditor-tooltipped__n" aria-label="${commentCountLabel}">
<i class="icon-comments"></i> <i class="icon-comments"></i>
<a href="${servePath}${article.articlePermalink}#comments"> <a href="${servePath}${article.articlePermalink}#comments">
${article.articleCommentCount} ${commentLabel}</a> ${article.articleCommentCount} ${commentLabel}</a>
</span> </span>
&nbsp; | &nbsp; &nbsp; | &nbsp;
<span class="tooltipped tooltipped-n" aria-label="${viewCountLabel}"> <span class="vditor-tooltipped vditor-tooltipped__n" aria-label="${viewCountLabel}">
<i class="icon-views"></i> <i class="icon-views"></i>
${article.articleViewCount} ${viewLabel} ${article.articleViewCount} ${viewLabel}
</span> </span>
</div> </div>
</header> </header>
<div class="vditor-reset"> <div class="vditor-reset">
${article.articleContent} ${article.articleContent}
<#if "" != article.articleSign.signHTML?trim> <#if "" != article.articleSign.signHTML?trim>
<div> <div>
${article.articleSign.signHTML} ${article.articleSign.signHTML}
</div> </div>
</#if> </#if>
</div> </div>
<footer class="tags"> <footer class="tags">
<#list article.articleTags?split(",") as articleTag> <#list article.articleTags?split(",") as articleTag>
<a class="tag" rel="tag" href="${servePath}/tags/${articleTag?url('UTF-8')}"> <a class="tag" rel="tag" href="${servePath}/tags/${articleTag?url('UTF-8')}">
${articleTag}</a> ${articleTag}</a>
</#list> </#list>
<#-- div class="copyright"> <#-- div class="copyright">
${articleCP1Label} ${articleCP1Label}
<a rel="bookmark" href="${servePath}${article.articlePermalink}"> <a rel="bookmark" href="${servePath}${article.articlePermalink}">
${article.articleTitle} ${article.articleTitle}
</a> - </a> -
<a href="${servePath}"> <a href="${servePath}">
${blogTitle} ${blogTitle}
</a> </a>
</div --> </div -->
<div class="rel fn-clear"> <div class="rel fn-clear">
<#if previousArticlePermalink??> <#if previousArticlePermalink??>
<a href="${servePath}${previousArticlePermalink}" rel="prev" <a href="${servePath}${previousArticlePermalink}" rel="prev"
class="fn-left tooltipped tooltipped-n" class="fn-left vditor-tooltipped vditor-tooltipped__n"
aria-label="${previousArticleTitle}"> aria-label="${previousArticleTitle}">
${previousArticleLabel} ${previousArticleLabel}
</a> </a>
</#if> </#if>
<#if nextArticlePermalink??> <#if nextArticlePermalink??>
<a href="${servePath}${nextArticlePermalink}" rel="next" <a href="${servePath}${nextArticlePermalink}" rel="next"
class="fn-right tooltipped tooltipped-n" class="fn-right vditor-tooltipped vditor-tooltipped__n"
aria-label="${nextArticleTitle}"> aria-label="${nextArticleTitle}">
${nextArticleLabel} ${nextArticleLabel}
</a> </a>
</#if> </#if>
</div> </div>
</footer> </footer>
<@comments commentList=articleComments article=article></@comments> <@comments commentList=articleComments article=article></@comments>
<br> <br>
<div id="externalRelevantArticles" class="list"></div> <div id="externalRelevantArticles" class="list"></div>
<div id="relevantArticles" class="list"></div> <div id="relevantArticles" class="list"></div>
<div id="randomArticles" class="list"></div> <div id="randomArticles" class="list"></div>
</article> </article>
</main> </main>
<#include "side.ftl"> <#include "side.ftl">
</div> </div>
</div> </div>
<#include "footer.ftl"> <#include "footer.ftl">
<@comment_script oId=article.oId commentable=article.commentable> <@comment_script oId=article.oId commentable=article.commentable>
page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}"; page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}";
<#if 0 != randomArticlesDisplayCount> <#if 0 != randomArticlesDisplayCount>
page.loadRandomArticles(); page.loadRandomArticles();
</#if> </#if>
<#if 0 != externalRelevantArticlesDisplayCount> <#if 0 != externalRelevantArticlesDisplayCount>
page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,</#if></#list>" page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,</#if></#list>"
, "<header class='title'><h2>${externalRelevantArticlesLabel}</h2></header>"); , "<header class='title'><h2>${externalRelevantArticlesLabel}</h2></header>");
</#if> </#if>
<#if 0 != relevantArticlesDisplayCount> <#if 0 != relevantArticlesDisplayCount>
page.loadRelevantArticles('${article.oId}', '<h4>${relevantArticlesLabel}</h4>'); page.loadRelevantArticles('${article.oId}', '<h4>${relevantArticlesLabel}</h4>');
</#if> </#if>
Skin.initArticle('${tocLabel}', '${siteViewLabel}') Skin.initToc()
</@comment_script> </@comment_script>
</body> </body>
</html> </html>

View File

@ -17,13 +17,12 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<#include "macro-head.ftl"> <#include "../../common-template/macro-common_head.ftl">
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<@head title="${category.categoryTitle} - ${blogTitle}"> <@head title="${category.categoryTitle} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${category.categoryTitle}"/> <link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
<meta name="description" content="<#list articles as article>${article.articleTitle}<#if article_has_next>,</#if></#list>"/>
</@head> </@head>
</head> </head>
<body> <body>

View File

@ -19,7 +19,7 @@
--> -->
<li id="${comment.oId}"> <li id="${comment.oId}">
<div> <div>
<div class="avatar tooltipped tooltipped-n" aria-label="${comment.commentName}" <div class="avatar vditor-tooltipped vditor-tooltipped__n" aria-label="${comment.commentName}"
style="background-image: url(${comment.commentThumbnailURL})"></div> style="background-image: url(${comment.commentThumbnailURL})"></div>
<main> <main>
<div class="fn-clear"> <div class="fn-clear">

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -17,13 +17,12 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<#include "macro-head.ftl"> <#include "../../common-template/macro-common_head.ftl">
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<@head title="${blogTitle}"> <@head title="${dynamicLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${dynamicLabel}"/> <link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
<meta name="description" content="${metaDescription},${dynamicLabel}"/>
</@head> </@head>
</head> </head>
<body> <body>
@ -36,7 +35,7 @@
<#list recentComments as comment> <#list recentComments as comment>
<li id="${comment.oId}"> <li id="${comment.oId}">
<div> <div>
<div class="avatar tooltipped tooltipped-n" aria-label="${comment.commentName}" <div class="avatar vditor-tooltipped vditor-tooltipped__n" aria-label="${comment.commentName}"
style="background-image: url(${comment.commentThumbnailURL})"></div> style="background-image: url(${comment.commentThumbnailURL})"></div>
<main> <main>
<div class="fn-clear"> <div class="fn-clear">

View File

@ -30,9 +30,8 @@
by <a href="http://vanessa.b3log.org" target="_blank">Vanessa</a> by <a href="http://vanessa.b3log.org" target="_blank">Vanessa</a>
</footer> </footer>
<div class="icon-up" onclick="Util.goTop()"></div> <div class="icon-up" onclick="Util.goTop()"></div>
<script src="${staticServePath}/js/lib/compress/pjax.min.js"></script>
<script type="text/javascript" src="${staticServePath}/js/lib/jquery/jquery.min.js" charset="utf-8"></script> <script src="${staticServePath}/js/common${miniPostfix}.js?${staticResourceVersion}"></script>
<script type="text/javascript" src="${staticServePath}/js/common${miniPostfix}.js?${staticResourceVersion}" charset="utf-8"></script> <script src="${staticServePath}/skins/${skinDirName}/js/common${miniPostfix}.js?${staticResourceVersion}"></script>
<script type="text/javascript" src="${staticServePath}/skins/${skinDirName}/js/common${miniPostfix}.js?${staticResourceVersion}" charset="utf-8"></script> <#include "../../common-template/label.ftl">
<#include "../../common-template/skin-script.ftl">
${plugins} ${plugins}

View File

@ -28,15 +28,15 @@
<small> &nbsp; ${blogSubtitle}</small> <small> &nbsp; ${blogSubtitle}</small>
<div class="fn-right"> <div class="fn-right">
<#if isLoggedIn> <#if isLoggedIn>
<a href="${servePath}/admin-index.do#main" title="${adminLabel}"> <a class="fn__flex-inline" href="${servePath}/admin-index.do#main" title="${adminLabel}">
<i class="icon-setting"></i> ${adminLabel} <i class="icon-setting"></i>&nbsp;${adminLabel}
</a> </a>
<a href="${logoutURL}"> <a class="fn__flex-inline" href="${logoutURL}">
<i class="icon-logout"></i> ${logoutLabel} <i class="icon-logout"></i>&nbsp;${logoutLabel}
</a> </a>
<#else> <#else>
<a href="${servePath}/start"> <a class="fn__flex-inline" href="${servePath}/start">
<i class="icon-login"></i> ${startToUseLabel} <i class="icon-login"></i>&nbsp;${startToUseLabel}
</a> </a>
</#if> </#if>
</div> </div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 B

View File

@ -17,17 +17,13 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<#include "macro-head.ftl"> <#include "../../common-template/macro-common_head.ftl">
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<@head title="${blogTitle}"> <@head title="${blogTitle}">
<#if metaKeywords??> <link rel="stylesheet"
<meta name="keywords" content="${metaKeywords}"/> href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
</#if>
<#if metaDescription??>
<meta name="description" content="${metaDescription}"/>
</#if>
</@head> </@head>
</head> </head>
<body> <body>

View File

@ -44,12 +44,16 @@ var Skin = {
if ($(window).scrollTop() > $banner.height()) { if ($(window).scrollTop() > $banner.height()) {
$navbar.addClass('pin') $navbar.addClass('pin')
$('.main-wrap').parent().css('margin-top', '86px') $('.main-wrap').parent().css('margin-top', '81px')
$('.article__toc').css('position', 'fixed')
} else { } else {
$navbar.removeClass('pin') $navbar.removeClass('pin')
$('.main-wrap').parent().css('margin-top', '0') $('.main-wrap').parent().css('margin-top', '0')
$('.article__toc').css('position', 'inherit')
} }
}) })
$(window).scroll()
}, },
init: function () { init: function () {
this._initCommon($('.icon-up')) this._initCommon($('.icon-up'))
@ -70,63 +74,27 @@ var Skin = {
$('.responsive .list').slideToggle() $('.responsive .list').slideToggle()
}) })
}, },
_initArticleCommon: function (tocLabel, siteViewLabel) { initToc: function () {
// TOC var $articleToc = $('.article__toc')
if ($('.article__toc').length > 0 && $(window).width() > 1000) { if ($articleToc.length === 0) {
$('.article__toc, .article__toc > ul').show() return false
var $sectionF = $('aside section:first').html($('.b3-solo-list')),
$sectionL = $('aside section:last')
$sectionF.height($(window).height() - 154).
css({'overflow': 'auto', 'width': $('aside').width() + 'px'})
$sectionL.hide()
// 切换 tab
$('aside > ul > li').click(function () {
if ($(this).data('tab') === 'toc') {
$sectionL.animate({
'opacity': '0',
'top': '-50px',
}, 300, function () {
$sectionF.show().css('top', '-50px')
$sectionF.animate({
'opacity': '1',
'top': '0',
}, 300).show()
})
} else {
$sectionF.animate({
'opacity': '0',
'top': '-50px',
}, 300, function () {
$sectionF.hide().css('top', '-50px')
$sectionL.animate({
'opacity': '1',
'top': '0',
}, 300).show()
}).hide()
}
$('aside > ul > li').removeClass('current')
$(this).addClass('current')
})
$(window).scroll(function () {
if ($(window).scrollTop() > 125) {
$('aside section:eq(0)').css({
position: 'fixed',
top: '51px',
backgroundColor: '#fff',
})
} else {
$('aside section:eq(0)').css({
position: 'inherit',
borderLeft: 0,
})
}
})
} }
},
initArticle: function (tocLabel, siteViewLabel) { $articleToc.css({
this._initArticleCommon(tocLabel, siteViewLabel) width: $articleToc.parent().width(),
left: $articleToc.parent().offset().left,
}).find('a').click(function () {
$articleToc.find('li').removeClass('toc--current')
$(this).parent().addClass('toc--current')
var id = $(this).attr('href')
setTimeout(function () {
$(window).scrollTop($(id).offset().top - 60)
})
})
}, },
} }
Skin.init()
$(document).ready(function () {
Util.init()
Skin.init()
})

View File

@ -1 +1 @@
var Skin={_initCommon:function(i){var t=$("header .banner"),n=$("header .navbar");$(window).scroll(function(){if(125<$(window).scrollTop()?i.show():i.hide(),$(window).width()<701)return!1;$(window).scrollTop()>t.height()?(n.addClass("pin"),$(".main-wrap").parent().css("margin-top","86px")):(n.removeClass("pin"),$(".main-wrap").parent().css("margin-top","0"))})},init:function(){this._initCommon($(".icon-up")),$(".navbar nav a").each(function(){this.href===location.href&&(this.className="current")}),$(".responsive .list a").each(function(){this.href===location.href&&$(this).parent().addClass("current")}),$(".responsive .icon-list").click(function(){$(".responsive .list").slideToggle()})},_initArticleCommon:function(i,t){if(0<$(".b3-solo-list li").length&&1e3<$(window).width()){$("aside").addClass("has-toc");var n='<ul class="fn-clear"><li class="current" data-tab="toc">'+i+'</li><li data-tab="site">'+t+"</li></ul><section></section>";$("aside").prepend(n);var o=$("aside section:first").html($(".b3-solo-list")),s=$("aside section:last");o.height($(window).height()-154).css({overflow:"auto",width:$("aside").width()+"px"}),s.hide(),$("aside > ul > li").click(function(){"toc"===$(this).data("tab")?s.animate({opacity:"0",top:"-50px"},300,function(){o.show().css("top","-50px"),o.animate({opacity:"1",top:"0"},300).show()}):o.animate({opacity:"0",top:"-50px"},300,function(){o.hide().css("top","-50px"),s.animate({opacity:"1",top:"0"},300).show()}).hide(),$("aside > ul > li").removeClass("current"),$(this).addClass("current")}),$(window).scroll(function(){125<$(window).scrollTop()?$("aside section:eq(0)").css({position:"fixed",top:"51px",backgroundColor:"#fff"}):$("aside section:eq(0)").css({position:"inherit",borderLeft:0})})}},initArticle:function(i,t){this._initArticleCommon(i,t)}};Skin.init(); var Skin={_initCommon:function(i){var n=$("header .banner"),t=$("header .navbar");$(window).scroll(function(){if(125<$(window).scrollTop()?i.show():i.hide(),$(window).width()<701)return!1;$(window).scrollTop()>n.height()?(t.addClass("pin"),$(".main-wrap").parent().css("margin-top","81px"),$(".article__toc").css("position","fixed")):(t.removeClass("pin"),$(".main-wrap").parent().css("margin-top","0"),$(".article__toc").css("position","inherit"))}),$(window).scroll()},init:function(){this._initCommon($(".icon-up")),$(".navbar nav a").each(function(){this.href===location.href&&(this.className="current")}),$(".responsive .list a").each(function(){this.href===location.href&&$(this).parent().addClass("current")}),$(".responsive .icon-list").click(function(){$(".responsive .list").slideToggle()})},initToc:function(){var n=$(".article__toc");if(0===n.length)return!1;n.css({width:n.parent().width(),position:"fixed",left:n.parent().offset().left}).find("a").click(function(){n.find("li").removeClass("toc--current"),$(this).parent().addClass("toc--current");var i=$(this).attr("href");setTimeout(function(){$(window).scrollTop($(i).offset().top-60)})})}};$(document).ready(function(){Util.init(),Skin.init()});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -17,13 +17,12 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<#include "macro-head.ftl"> <#include "../../common-template/macro-common_head.ftl">
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<@head title="${linkLabel} - ${blogTitle}"> <@head title="${linkLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${linkLabel}"/> <link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
<meta name="description" content="${metaDescription},${linkLabel}"/>
</@head> </@head>
</head> </head>
<body> <body>

View File

@ -1,37 +0,0 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<#macro head title>
<meta charset="utf-8" />
<title>${title}</title>
<#nested>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="author" content="${blogTitle?html}" />
<meta name="generator" content="Solo" />
<meta name="owner" content="B3log Team" />
<meta name="revised" content="${blogTitle?html}, ${year}" />
<meta name="copyright" content="B3log" />
<meta http-equiv="Window-target" content="_top" />
<link type="text/css" rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}" charset="utf-8" />
<link href="${servePath}/rss.xml" title="RSS" type="application/rss+xml" rel="alternate" />
<link rel="icon" type="image/png" href="${faviconURL}" />
<link rel="manifest" href="${servePath}/manifest.json">
<link rel="search" type="application/opensearchdescription+xml" title="${title}" href="/opensearch.xml">
${htmlHead}
</#macro>

View File

@ -17,15 +17,14 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<#include "macro-head.ftl"> <#include "../../common-template/macro-common_head.ftl">
<#include "macro-comments.ftl"> <#include "macro-comments.ftl">
<#include "../../common-template/macro-comment_script.ftl"> <#include "../../common-template/macro-comment_script.ftl">
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<@head title="${page.pageTitle} - ${blogTitle}"> <@head title="${page.pageTitle} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${page.pageTitle}" /> <link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
<meta name="description" content="${metaDescription}" />
</@head> </@head>
</head> </head>
<body> <body>

View File

@ -17,117 +17,108 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<aside<#if article?? && article.articleToC?size &gt; 0 > class="has-toc"</#if>> <#include "../../common-template/macro-user_site.ftl">
<ul class="fn__clear fn__none"> <aside>
<li class="current" data-tab="toc"> <#if article?? && article.articleToC?? && article.articleToC?size &gt; 0>
${tocLabel} <#include "../../common-template/toc.ftl"/>
</li> <#else>
<li data-tab="site">
${siteViewLabel}
</li>
</ul>
<section>
<#if article??>
<ul class="article__toc">
<#list article.articleToC as item>
<li>
<a class="${item.className}" href="#${item.id}">${item.text}</a>
</li>
</#list>
</ul>
</#if>
</section>
<section> <section>
<#if noticeBoard??> <#if noticeBoard??>
<div class="ad vditor-reset"> <div class="ad vditor-reset">
${noticeBoard} ${noticeBoard}
</div> </div>
</#if> </#if>
<#if 0 != mostUsedCategories?size> <#if 0 != mostUsedCategories?size>
<div class="module"> <div class="module">
<header><h2>${categoryLabel}</h2></header> <header><h2>${categoryLabel}</h2></header>
<main> <main>
<#list mostUsedCategories as category> <#list mostUsedCategories as category>
<a href="${servePath}/category/${category.categoryURI}" <a href="${servePath}/category/${category.categoryURI}"
aria-label="${category.categoryTagCnt} ${cntLabel}${tagsLabel}" aria-label="${category.categoryTagCnt} ${cntLabel}${tagsLabel}"
class="tag tooltipped tooltipped-n"> class="tag vditor-tooltipped vditor-tooltipped__n">
${category.categoryTitle}</a> ${category.categoryTitle}</a>
</#list> </#list>
</main> </main>
</div> </div>
</#if> </#if>
<#if 0 != mostUsedTags?size> <#if 0 != mostUsedTags?size>
<div class="module"> <div class="module">
<header><h2>${tagsLabel}</h2></header> <header><h2>${tagsLabel}</h2></header>
<main> <main>
<#list mostUsedTags as tag> <#list mostUsedTags as tag>
<a rel="tag" <a rel="tag"
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}" href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}"
class="tag tooltipped tooltipped-n" class="tag vditor-tooltipped vditor-tooltipped__n"
aria-label="${tag.tagPublishedRefCount} ${countLabel}${articleLabel}"> aria-label="${tag.tagPublishedRefCount} ${countLabel}${articleLabel}">
${tag.tagTitle}</a> ${tag.tagTitle}</a>
</#list> </#list>
</main> </main>
</div> </div>
</#if> </#if>
<div class="module meta"> <div class="module meta">
<header> <header>
<h2>${adminUser.userName}</h2> <h2 class="fn__clear">
${adminUser.userName}
<div class="fn__right">
<@userSite dir="nw"></@userSite>
</div>
</h2>
</header> </header>
<main class="fn-clear"> <main class="fn__clear">
<img src="${adminUser.userAvatar}" aria-label="${adminUser.userName}"/> <img src="${adminUser.userAvatar}" aria-label="${adminUser.userName}"/>
<div class="fn-right"> <div class="fn-right">
<a href="${servePath}/archives.html"> <a href="${servePath}/archives.html">
${statistic.statisticPublishedBlogArticleCount} ${statistic.statisticPublishedBlogArticleCount}
<span class="ft-gray">${articleLabel}</span></a><br/> <span class="ft-gray">${articleLabel}</span></a><br/>
<a href="${servePath}/dynamic.html"> <a href="${servePath}/dynamic.html">
${statistic.statisticPublishedBlogCommentCount} ${statistic.statisticPublishedBlogCommentCount}
<span class="ft-gray">${commentLabel}</span></a><br/> <span class="ft-gray">${commentLabel}</span></a><br/>
${statistic.statisticBlogViewCount} <span class="ft-gray">${viewLabel}</span><br/> ${statistic.statisticBlogViewCount} <span class="ft-gray">${viewLabel}</span><br/>
${onlineVisitorCnt} <span class="ft-gray">${onlineVisitorLabel}</span> ${onlineVisitorCnt} <span class="ft-gray">${onlineVisitorLabel}</span>
</div> </div>
</main> </main>
</div> </div>
<#if 0 != mostCommentArticles?size> <#if 0 != mostCommentArticles?size>
<div class="module"> <div class="module">
<header><h2>${mostCommentArticlesLabel}</h2></header> <header><h2>${mostCommentArticlesLabel}</h2></header>
<main class="list"> <main class="list">
<ul> <ul>
<#list mostCommentArticles as article> <#list mostCommentArticles as article>
<li> <li>
<a rel="nofollow" aria-label="${article.articleCommentCount} ${commentLabel}" <a rel="nofollow" aria-label="${article.articleCommentCount} ${commentLabel}"
class="tooltipped tooltipped-e" class="vditor-tooltipped vditor-tooltipped__e"
href="${servePath}${article.articlePermalink}"> href="${servePath}${article.articlePermalink}">
${article.articleTitle} ${article.articleTitle}
</a> </a>
</li> </li>
</#list> </#list>
</ul> </ul>
</main> </main>
</div> </div>
</#if> </#if>
<#if 0 != mostViewCountArticles?size> <#if 0 != mostViewCountArticles?size>
<div class="module"> <div class="module">
<header><h2>${mostViewCountArticlesLabel}</h2></header> <header><h2>${mostViewCountArticlesLabel}</h2></header>
<main class="list"> <main class="list">
<ul> <ul>
<#list mostViewCountArticles as article> <#list mostViewCountArticles as article>
<li> <li>
<a rel="nofollow" aria-label="${article.articleCommentCount} ${commentLabel}" <a rel="nofollow" aria-label="${article.articleCommentCount} ${commentLabel}"
class="tooltipped tooltipped-e" class="vditor-tooltipped vditor-tooltipped__e"
href="${servePath}${article.articlePermalink}"> href="${servePath}${article.articlePermalink}">
${article.articleTitle} ${article.articleTitle}
</a> </a>
</li> </li>
</#list> </#list>
</ul> </ul>
</main> </main>
</div> </div>
</#if> </#if>
</section> </section>
</#if>
</aside> </aside>

View File

@ -17,13 +17,12 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<#include "macro-head.ftl"> <#include "../../common-template/macro-common_head.ftl">
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<@head title="${tag.tagTitle} - ${blogTitle}"> <@head title="${tag.tagTitle} ${tagLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${tag.tagTitle}"/> <link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
<meta name="description" content="<#list articles as article>${article.articleTitle}<#if article_has_next>,</#if></#list>"/>
</@head> </@head>
</head> </head>
<body> <body>

View File

@ -17,13 +17,12 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<#include "macro-head.ftl"> <#include "../../common-template/macro-common_head.ftl">
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<@head title="${allTagsLabel} - ${blogTitle}"> <@head title="${allTagsLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${allTagsLabel}"/> <link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
<meta name="description" content="<#list tags as tag>${tag.tagTitle}<#if tag_has_next>,</#if></#list>"/>
</@head> </@head>
</head> </head>
<body> <body>
@ -37,7 +36,7 @@
</div> </div>
<div class="tags"> <div class="tags">
<#list tags as tag> <#list tags as tag>
<a rel="tag" data-count="${tag.tagPublishedRefCount}" class="tag" <a rel="tag" class="tag"
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}"> href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}">
<span>${tag.tagTitle}</span> <span>${tag.tagTitle}</span>
(<b>${tag.tagPublishedRefCount}</b>) (<b>${tag.tagPublishedRefCount}</b>)
@ -49,16 +48,5 @@
</div> </div>
</div> </div>
<#include "footer.ftl"> <#include "footer.ftl">
<script type="text/javascript" src="${staticServePath}/skins/${skinDirName}/js/isotope.pkgd.min.js" charset="utf-8"></script>
<script>
$('.tags').isotope({
transitionDuration: '1.5s',
filter: 'a',
layoutMode: 'fitRows'
});
$('.tags').isotope({
sortBy: 'random'
});
</script>
</body> </body>
</html> </html>