This commit is contained in:
parent
f038d96741
commit
00f36effdb
|
@ -0,0 +1,61 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<#include "../../common-template/macro-common_head.ftl">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<@head title="${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} ${archiveLabel} - ${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
<#include "header.ftl">
|
||||
<div id="pjax">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<#include "nav.ftl">
|
||||
<div class="main">
|
||||
<#if noticeBoard??>
|
||||
<div class="board">
|
||||
${noticeBoard}
|
||||
</div>
|
||||
</#if>
|
||||
<div class="wrapper content">
|
||||
<div class="module__title">
|
||||
<span>
|
||||
<#if "en" == localeString?substring(0, 2)>
|
||||
${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear}
|
||||
<#else>
|
||||
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}
|
||||
</#if>
|
||||
<span class="ft-green">
|
||||
${archiveDate.archiveDatePublishedArticleCount}
|
||||
<span class="ft-12">${cntArticleLabel}</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<#include "article-list.ftl">
|
||||
</div>
|
||||
<#include "bottom2.ftl">
|
||||
</div>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,75 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<#include "../../common-template/macro-common_head.ftl">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<@head title="${archiveLabel} - ${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
<#include "header.ftl">
|
||||
<div id="pjax">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<#include "nav.ftl">
|
||||
<div class="main">
|
||||
<#if noticeBoard??>
|
||||
<div class="board">
|
||||
${noticeBoard}
|
||||
</div>
|
||||
</#if>
|
||||
<div class="wrapper content">
|
||||
<div class="module__title">
|
||||
<span>
|
||||
${archiveDates?size}
|
||||
<span class="ft-green ft-12">${cntMonthLabel}</span>
|
||||
${statistic.statisticPublishedBlogArticleCount}
|
||||
<span class="ft-green ft-12">${cntArticleLabel}</span>
|
||||
</span>
|
||||
</div>
|
||||
<#if 0 != archiveDates?size>
|
||||
<#list archiveDates as archiveDate>
|
||||
<div class="page__item">
|
||||
<h3>
|
||||
<a class="ft-gray"
|
||||
href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
|
||||
<#if "en" == localeString?substring(0, 2)>
|
||||
${archiveDate.monthName} ${archiveDate.archiveDateYear}
|
||||
<#else>
|
||||
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}
|
||||
</#if>
|
||||
<span class="ft-green">
|
||||
${archiveDate.archiveDatePublishedArticleCount}
|
||||
<span class="ft-12">${cntArticleLabel}</span>
|
||||
</span>
|
||||
</a>
|
||||
</h3>
|
||||
</div>
|
||||
</#list>
|
||||
</#if>
|
||||
</div>
|
||||
<#include "bottom.ftl">
|
||||
</div>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,88 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<div class="fn-clear article__wrap">
|
||||
<#list articles as article>
|
||||
<article class="article__item
|
||||
<#if article_index == 0 || article_index == 10>article__item--big
|
||||
<#elseif article_index > 0 && article_index < 5>article__item--small
|
||||
<#elseif article_index > 4 && article_index < 8>article__item--big
|
||||
<#elseif article_index == 8 || article_index == 9>article__item--mid
|
||||
<#elseif article_index > 10 && article_index < 15>article__item--small
|
||||
<#elseif article_index > 14 && article_index < 18>article__item--big
|
||||
<#elseif article_index > 17 && article_index < 20>article__item--mid
|
||||
<#else>article__item--big
|
||||
</#if>">
|
||||
<header class="article__panel">
|
||||
<div class="article__main">
|
||||
<h2 class="article__title">
|
||||
<a rel="bookmark" href="${servePath}${article.articlePermalink}">
|
||||
${article.articleTitle}
|
||||
</a>
|
||||
<#if article.articlePutTop>
|
||||
<sup>
|
||||
${topArticleLabel}
|
||||
</sup>
|
||||
</#if>
|
||||
<#if article.hasUpdated>
|
||||
<sup>
|
||||
${updatedLabel}
|
||||
</sup>
|
||||
</#if>
|
||||
</h2>
|
||||
<div class="article__thumbnail" style="background-image: url(${article.articleImg1URL})"/>
|
||||
</div>
|
||||
|
||||
<div class="article__meta ft-gray fn-flex">
|
||||
<time>
|
||||
${article.articleCreateDate?string("yyyy-MM-dd")}
|
||||
</time> •
|
||||
<a href="${servePath}${article.articlePermalink}#comments" class="ft-gray">
|
||||
${article.articleCommentCount} ${commentLabel}
|
||||
</a> •
|
||||
<a href="${servePath}${article.articlePermalink}" class="ft-gray">
|
||||
${article.articleViewCount} ${viewLabel}
|
||||
</a>
|
||||
</div>
|
||||
</header>
|
||||
</article>
|
||||
</#list>
|
||||
</div>
|
||||
|
||||
<#if 0 != paginationPageCount>
|
||||
<nav class="pagination">
|
||||
<#if 1 != paginationPageNums?first>
|
||||
<a href="${servePath}${path}?p=${paginationPreviousPageNum}" class="pagination__item">«</a>
|
||||
<a class="pagination__item" href="${servePath}${path}">1</a>
|
||||
<span class="pagination__item pagination__omit">...</span>
|
||||
</#if>
|
||||
<#list paginationPageNums as paginationPageNum>
|
||||
<#if paginationPageNum == paginationCurrentPageNum>
|
||||
<span class="pagination__item pagination__item--active">${paginationPageNum}</span>
|
||||
<#else>
|
||||
<a class="pagination__item" href="${servePath}${path}?p=${paginationPageNum}">${paginationPageNum}</a>
|
||||
</#if>
|
||||
</#list>
|
||||
<#if paginationPageNums?last != paginationPageCount>
|
||||
<span class="pagination__item pagination__omit">...</span>
|
||||
<a href="${servePath}${path}?p=${paginationPageCount}" class="pagination__item">${paginationPageCount}</a>
|
||||
<a href="${servePath}${path}?p=${paginationNextPageNum}" class="pagination__item">»</a>
|
||||
</#if>
|
||||
</nav>
|
||||
</#if>
|
|
@ -0,0 +1,235 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<#include "../../common-template/macro-common_head.ftl">
|
||||
<#include "macro-comments.ftl">
|
||||
<#include "../../common-template/macro-comment_script.ftl">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<@head title="${article.articleTitle} - ${blogTitle}" description="${article.articleAbstract?html}">
|
||||
<link rel="stylesheet"
|
||||
href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
<#if previousArticlePermalink??>
|
||||
<link rel="prev" title="${previousArticleTitle}" href="${servePath}${previousArticlePermalink}">
|
||||
</#if>
|
||||
<#if nextArticlePermalink??>
|
||||
<link rel="next" title="${nextArticleTitle}" href="${servePath}${nextArticlePermalink}">
|
||||
</#if>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
<#include "header.ftl">
|
||||
<div id="pjax">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<div class="main post__main">
|
||||
<#if noticeBoard??>
|
||||
<div class="board">
|
||||
${noticeBoard}
|
||||
</div>
|
||||
</#if>
|
||||
<div class="wrapper content">
|
||||
<article class="post">
|
||||
<header>
|
||||
<h1 class="post__title">
|
||||
${article.articleTitle}
|
||||
<#if article.articlePutTop>
|
||||
<sup>
|
||||
${topArticleLabel}
|
||||
</sup>
|
||||
</#if>
|
||||
<#if article.hasUpdated>
|
||||
<sup>
|
||||
${updatedLabel}
|
||||
</sup>
|
||||
</#if>
|
||||
</h1>
|
||||
</header>
|
||||
<section class="vditor-reset">
|
||||
${article.articleContent}
|
||||
<#if "" != article.articleSign.signHTML?trim>
|
||||
<div>
|
||||
${article.articleSign.signHTML}
|
||||
</div>
|
||||
</#if>
|
||||
</section>
|
||||
<footer data-oid="${article.oId}"
|
||||
class="post__tags"
|
||||
data-tag="<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,</#if></#list>">
|
||||
<#list article.articleTags?split(",") as articleTag>
|
||||
<a class="tag" rel="tag" href="${servePath}/tags/${articleTag?url('UTF-8')}">
|
||||
${articleTag}</a>
|
||||
</#list>
|
||||
</footer>
|
||||
<div class="post__share fn-clear">
|
||||
<time class="ft-gray">
|
||||
${article.articleCreateDate?string("yyyy-MM-dd")} •
|
||||
</time>
|
||||
<a class="post__view" href="${servePath}${article.articlePermalink}">
|
||||
${article.articleViewCount} ${viewLabel}</a>
|
||||
<div class="fn-right">
|
||||
<span class="vditor-tooltipped vditor-tooltipped__n post__share-icon ft-green"
|
||||
onclick="$('#comment').focus()"
|
||||
aria-label="${commentLabel}">
|
||||
<svg>
|
||||
<use xlink:href="#icon-comment"></use>
|
||||
</svg>
|
||||
${article.articleCommentCount}
|
||||
</span>
|
||||
|
||||
<span id="articleShare">
|
||||
<span class="post__share-icon" data-type="wechat">
|
||||
<svg><use xlink:href="#icon-wechat"></use></svg>
|
||||
</span>
|
||||
<span class="post__share-icon" data-type="weibo">
|
||||
<svg><use xlink:href="#icon-weibo"></use></svg>
|
||||
</span>
|
||||
<span class="post__share-icon" data-type="twitter">
|
||||
<svg><use xlink:href="#icon-twitter"></use></svg>
|
||||
</span>
|
||||
<span class="post__share-icon" data-type="qqz">
|
||||
<svg><use xlink:href="#icon-qqz"></use></svg>
|
||||
</span>
|
||||
<span class="article__code"
|
||||
data-title="${article.articleTitle}"
|
||||
data-blogtitle="${blogTitle}"
|
||||
data-url="${servePath}${article.articlePermalink}"
|
||||
data-avatar="${article.authorThumbnailURL}"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
<div class="article__bottom">
|
||||
<div class="wrapper">
|
||||
<div class="fn-flex footer__tag">
|
||||
<div class="fn-flex-1" id="externalRelevantArticles"></div>
|
||||
<div class="fn-flex-1" id="relevantArticles"></div>
|
||||
<div class="fn-flex-1" id="randomArticles"></div>
|
||||
</div>
|
||||
<@comments commentList=articleComments article=article></@comments>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="article__toolbar">
|
||||
<div class="wrapper">
|
||||
<a class="post__view" href="${servePath}${article.articlePermalink}">
|
||||
${article.articleViewCount} ${viewLabel}
|
||||
</a>
|
||||
<div class="fn-right">
|
||||
<span class="vditor-tooltipped vditor-tooltipped__n post__share-icon ft-green"
|
||||
onclick="$('#comment').focus()"
|
||||
aria-label="${commentLabel}">
|
||||
<svg>
|
||||
<use xlink:href="#icon-comment"></use>
|
||||
</svg>
|
||||
${article.articleCommentCount}
|
||||
</span>
|
||||
<span id="articleBottomShare">
|
||||
<span class="post__share-icon" data-type="wechat">
|
||||
<svg><use xlink:href="#icon-wechat"></use></svg>
|
||||
</span>
|
||||
<span class="post__share-icon" data-type="weibo">
|
||||
<svg><use xlink:href="#icon-weibo"></use></svg>
|
||||
</span>
|
||||
<span class="post__share-icon" data-type="twitter">
|
||||
<svg><use xlink:href="#icon-twitter"></use></svg>
|
||||
</span>
|
||||
<span class="post__share-icon" data-type="qqz">
|
||||
<svg><use xlink:href="#icon-qqz"></use></svg>
|
||||
</span>
|
||||
<span class="article__code"
|
||||
data-title="${article.articleTitle}"
|
||||
data-blogtitle="${blogTitle}"
|
||||
data-url="${servePath}${article.articlePermalink}"
|
||||
data-avatar="${article.authorThumbnailURL}"></span>
|
||||
</span>
|
||||
|
||||
<#if nextArticlePermalink??>
|
||||
<a href="${servePath}${nextArticlePermalink}" rel="next" class="article__next">
|
||||
<span class="ft-12 ft-gray">${nextArticleLabel}</span> <br>
|
||||
${nextArticleTitle}
|
||||
</a>
|
||||
</#if>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="post__side">
|
||||
<span class="vditor-tooltipped vditor-tooltipped__e post__share-icon ft-green"
|
||||
onclick="$('#comment').focus()"
|
||||
aria-label="${commentLabel}">
|
||||
<span class="ft-gray">${article.articleCommentCount}</span>
|
||||
<svg>
|
||||
<use xlink:href="#icon-comment"></use>
|
||||
</svg>
|
||||
</span>
|
||||
<div id="articleSideShare">
|
||||
<span class="post__share-icon" data-type="wechat">
|
||||
<svg><use xlink:href="#icon-wechat"></use></svg>
|
||||
</span>
|
||||
<span class="post__share-icon" data-type="weibo">
|
||||
<svg><use xlink:href="#icon-weibo"></use></svg>
|
||||
</span>
|
||||
<span class="post__share-icon" data-type="twitter">
|
||||
<svg><use xlink:href="#icon-twitter"></use></svg>
|
||||
</span>
|
||||
<span class="post__share-icon" data-type="qqz">
|
||||
<svg><use xlink:href="#icon-qqz"></use></svg>
|
||||
</span>
|
||||
<span class="article__code"
|
||||
data-title="${article.articleTitle}"
|
||||
data-blogtitle="${blogTitle}"
|
||||
data-url="${servePath}${article.articlePermalink}"
|
||||
data-avatar="${article.authorThumbnailURL}"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main">
|
||||
<#include "bottom.ftl">
|
||||
</div>
|
||||
<#if article?? && article.articleToC?? && article.articleToC?size > 0>
|
||||
<#include "../../common-template/toc.ftl"/>
|
||||
</#if>
|
||||
</div>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
<script type="text/javascript"
|
||||
src="${staticServePath}/skins/${skinDirName}/js/jquery.qrcode${miniPostfix}.js"></script>
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<@comment_script oId=article.oId commentable=article.commentable>
|
||||
Skin.initArticle()
|
||||
Skin.initComment = function (articleOId, articleTags) {
|
||||
page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}";
|
||||
<#if 0 != randomArticlesDisplayCount>
|
||||
page.loadRandomArticles("<div class='module__title'><span>${randomArticlesLabel}</span></div>");
|
||||
</#if>
|
||||
<#if 0 != externalRelevantArticlesDisplayCount>
|
||||
page.loadExternalRelevantArticles(articleTags, "<div class='module__title'><span>${externalRelevantArticlesLabel}</span></div>");
|
||||
</#if>
|
||||
<#if 0 != relevantArticlesDisplayCount>
|
||||
page.loadRelevantArticles(articleOId, '<div class="module__title"><span>${relevantArticlesLabel}</span></div>');
|
||||
</#if>
|
||||
}
|
||||
Skin.initComment('${article.oId}', "<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,</#if></#list>")
|
||||
</@comment_script>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
${plugins}
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,50 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<div class="footer__tag wrapper fn-flex">
|
||||
<#if 0 != mostUsedCategories?size>
|
||||
<div class="fn-flex-1">
|
||||
<div class="module__title">
|
||||
<span>${categoryLabel}</span>
|
||||
</div>
|
||||
<div>
|
||||
<#list mostUsedCategories as category>
|
||||
<a class="tag vditor-tooltipped vditor-tooltipped__n"
|
||||
aria-label="${category.categoryTagCnt} ${cntLabel}${tagsLabel}"
|
||||
href="${servePath}/category/${category.categoryURI}">${category.categoryTitle}</a>
|
||||
</#list>
|
||||
</div>
|
||||
</div>
|
||||
</#if>
|
||||
<#if 0 != mostUsedTags?size>
|
||||
<div class="fn-flex-1">
|
||||
<div class="module__title">
|
||||
<span>${tagsLabel}</span>
|
||||
</div>
|
||||
<div>
|
||||
<#list mostUsedTags as tag>
|
||||
<a rel="tag"
|
||||
class="tag vditor-tooltipped vditor-tooltipped__n"
|
||||
aria-label="${tag.tagPublishedRefCount} ${countLabel}${articleLabel}"
|
||||
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}">${tag.tagTitle}</a>
|
||||
</#list>
|
||||
</div>
|
||||
</div>
|
||||
</#if>
|
||||
</div>
|
|
@ -0,0 +1,36 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<div class="footer__tag wrapper">
|
||||
<#if 0 != mostUsedCategories?size>
|
||||
<#list mostUsedCategories as category>
|
||||
<a class="tag vditor-tooltipped vditor-tooltipped__n"
|
||||
aria-label="${category.categoryTagCnt} ${cntLabel}${tagsLabel}"
|
||||
href="${servePath}/category/${category.categoryURI}">${category.categoryTitle}</a>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if 0 != mostUsedTags?size>
|
||||
<#list mostUsedTags as tag>
|
||||
<a rel="tag"
|
||||
class="tag vditor-tooltipped vditor-tooltipped__n"
|
||||
aria-label="${tag.tagPublishedRefCount} ${countLabel}${articleLabel}"
|
||||
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}">${tag.tagTitle}</a>
|
||||
</#list>
|
||||
</#if>
|
||||
</div>
|
|
@ -0,0 +1,56 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<#include "../../common-template/macro-common_head.ftl">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<@head title="${category.categoryTitle} - ${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
<#include "header.ftl">
|
||||
<div id="pjax">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<#include "nav.ftl">
|
||||
<div class="main">
|
||||
<#if noticeBoard??>
|
||||
<div class="board">
|
||||
${noticeBoard}
|
||||
</div>
|
||||
</#if>
|
||||
<div class="wrapper content">
|
||||
<div class="module__title">
|
||||
<span>
|
||||
${category.categoryTitle}
|
||||
<span class="ft-green ft-12">
|
||||
${category.categoryDescription}
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<#include "article-list.ftl">
|
||||
</div>
|
||||
<#include "bottom2.ftl">
|
||||
</div>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,54 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<div id="${comment.oId}" class="comment__item">
|
||||
<img class="comment__avatar" src="${comment.commentThumbnailURL}"/>
|
||||
<main class="comment__body">
|
||||
<div class="fn-clear">
|
||||
<span class="comment__user">
|
||||
<#if "http://" == comment.commentURL>
|
||||
${comment.commentName}
|
||||
<#else>
|
||||
<a href="${comment.commentURL}" target="_blank">${comment.commentName}</a>
|
||||
</#if>
|
||||
</span>
|
||||
<span class="ft-12">
|
||||
<#if comment.isReply>
|
||||
<a class="ft-gray" href="${servePath}${article.permalink}#${comment.commentOriginalCommentId}"
|
||||
onmouseover="page.showComment(this, '${comment.commentOriginalCommentId}', 23);"
|
||||
onmouseout="page.hideComment('${comment.commentOriginalCommentId}')">
|
||||
<svg class="ft-gray"><use xlink:href="#icon-reply"></use></svg>
|
||||
${reply1Label} ${comment.commentOriginalCommentName}
|
||||
</a>
|
||||
</#if>
|
||||
<time class="ft-fade"> • ${comment.commentDate2?string("yyyy-MM-dd")}</time>
|
||||
</span>
|
||||
|
||||
|
||||
<#if article.commentable>
|
||||
<a class="fn-right ft-green" href="javascript:page.toggleEditor('${comment.oId}', '${comment.commentName}')">
|
||||
<svg><use xlink:href="#icon-reply"></use></svg> ${reply1Label}
|
||||
</a>
|
||||
</#if>
|
||||
</div>
|
||||
<div class="vditor-reset">
|
||||
${comment.commentContent}
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,842 @@
|
|||
/**
|
||||
* 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/>.
|
||||
*/
|
||||
/*
|
||||
* skin style
|
||||
*
|
||||
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
|
||||
* @version 2.1.0.0, Mar 22, 2019
|
||||
*/
|
||||
@import "../../../scss/reset";
|
||||
@import "../../../scss/usite";
|
||||
@import "../../../scss/toc";
|
||||
@import "../../../scss/nprogress";
|
||||
@import "vditor/src/assets/scss/classic";
|
||||
|
||||
.fn-flex {
|
||||
display: flex
|
||||
}
|
||||
|
||||
.fn-flex-1 {
|
||||
flex: 1;
|
||||
min-width: 1px
|
||||
}
|
||||
|
||||
.fn-clear:before, .fn-clear:after {
|
||||
display: table;
|
||||
content: ""
|
||||
}
|
||||
|
||||
.fn-clear:after {
|
||||
clear: both
|
||||
}
|
||||
|
||||
.fn-left {
|
||||
float: left
|
||||
}
|
||||
|
||||
.fn-right {
|
||||
float: right
|
||||
}
|
||||
|
||||
.ft-12 {
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.ft-gray {
|
||||
color: rgba(0, 0, 0, 0.54);
|
||||
}
|
||||
|
||||
.ft-fade {
|
||||
color: rgba(0, 0, 0, 0.38);
|
||||
}
|
||||
|
||||
.ft-green {
|
||||
color: #03a87c !important;
|
||||
transition: all 0.1s
|
||||
}
|
||||
|
||||
.ft-green:hover {
|
||||
color: #018f69 !important
|
||||
}
|
||||
|
||||
.tag {
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
color: rgba(0, 0, 0, 0.68);
|
||||
padding: 5px 10px;
|
||||
line-height: 22px;
|
||||
font-weight: 400;
|
||||
border-radius: 3px;
|
||||
white-space: nowrap;
|
||||
display: inline-block;
|
||||
transition: all 0.1s;
|
||||
margin: 0 8px 8px 0;
|
||||
font-size: 15px
|
||||
}
|
||||
|
||||
.tag:hover {
|
||||
text-decoration: none;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
color: rgba(0, 0, 0, 0.68)
|
||||
}
|
||||
|
||||
.tag__level0 {
|
||||
line-height: inherit;
|
||||
font-size: 12px;
|
||||
color: rgba(0, 0, 0, 0.38)
|
||||
}
|
||||
|
||||
.tag__level1 {
|
||||
line-height: inherit;
|
||||
font-size: 16px;
|
||||
color: rgba(0, 0, 0, 0.54)
|
||||
}
|
||||
|
||||
.tag__level2 {
|
||||
line-height: inherit;
|
||||
font-size: 21px;
|
||||
color: #6f6f6f
|
||||
}
|
||||
|
||||
.tag__level3 {
|
||||
line-height: inherit;
|
||||
font-size: 24px;
|
||||
color: #3b3e43
|
||||
}
|
||||
|
||||
.tag__level4 {
|
||||
line-height: inherit;
|
||||
font-size: 30px;
|
||||
color: #000
|
||||
}
|
||||
|
||||
.module__title {
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.15);
|
||||
margin-bottom: 25px;
|
||||
line-height: 26px;
|
||||
font-size: 22px;
|
||||
position: relative;
|
||||
height: 46px
|
||||
}
|
||||
|
||||
.module__title > span {
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.54);
|
||||
position: absolute;
|
||||
padding-bottom: 20px;
|
||||
height: 26px
|
||||
}
|
||||
|
||||
/* star framework */
|
||||
.wrapper {
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box
|
||||
}
|
||||
|
||||
.header {
|
||||
padding: 0 20px;
|
||||
box-sizing: border-box;
|
||||
height: 64px;
|
||||
text-align: center;
|
||||
transition: all 0.1s;
|
||||
z-index: 11;
|
||||
}
|
||||
|
||||
.header h1 {
|
||||
display: inline-block;
|
||||
line-height: 61px;
|
||||
width: 50%;
|
||||
overflow: auto;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.header h1::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.header--fixed {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
top: -64px;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 2px 2px -2px rgba(0, 0, 0, 0.15)
|
||||
}
|
||||
|
||||
.header__logo {
|
||||
float: left;
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
margin: 16px 0;
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center
|
||||
}
|
||||
|
||||
.header__title {
|
||||
overflow: hidden;
|
||||
font-size: 26px;
|
||||
color: rgba(0, 0, 0, 0.84)
|
||||
}
|
||||
|
||||
.header__title:hover {
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.header__icon {
|
||||
transition: all 0.1s;
|
||||
color: rgba(0, 0, 0, 0.54);
|
||||
text-decoration: none;
|
||||
width: 25px;
|
||||
margin-left: 10px;
|
||||
float: left;
|
||||
margin-top: 25px
|
||||
}
|
||||
|
||||
.header__icon:hover {
|
||||
text-decoration: none;
|
||||
color: rgba(0, 0, 0, 0.68)
|
||||
}
|
||||
|
||||
.header__icon svg {
|
||||
height: 16px;
|
||||
width: 16px
|
||||
}
|
||||
|
||||
.header__icon.avatar {
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
display: inline-block;
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
border-radius: 16px;
|
||||
margin-top: 16px;
|
||||
margin-left: 14px
|
||||
}
|
||||
|
||||
.header__a {
|
||||
color: #03a87c;
|
||||
font-size: 16px;
|
||||
float: left;
|
||||
margin: 16px 0 0 16px;
|
||||
transition: all 0.1s;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
.header__a:hover {
|
||||
text-decoration: none;
|
||||
color: #018f69;
|
||||
border-color: #018f69
|
||||
}
|
||||
|
||||
.header__nav {
|
||||
height: 50px;
|
||||
padding: 0 20px;
|
||||
box-sizing: border-box
|
||||
}
|
||||
|
||||
.header__nav .wrapper {
|
||||
overflow: auto;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap
|
||||
}
|
||||
|
||||
.header__nav .wrapper::-webkit-scrollbar {
|
||||
display: none
|
||||
}
|
||||
|
||||
.header__nav a {
|
||||
color: rgba(0, 0, 0, 0.76);
|
||||
font-size: 15px;
|
||||
padding: 0 10px;
|
||||
line-height: 50px;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.header__nav a img {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
vertical-align: text-top
|
||||
}
|
||||
|
||||
.header__nav a:first-child {
|
||||
padding-left: 0
|
||||
}
|
||||
|
||||
.header__nav--fixed {
|
||||
z-index: 11;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 2px 2px -2px rgba(0, 0, 0, 0.15)
|
||||
}
|
||||
|
||||
.footer {
|
||||
margin-top: 50px;
|
||||
padding: 10px 20px 25px;
|
||||
font-size: 14px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.05);
|
||||
color: rgba(0, 0, 0, 0.38)
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: rgba(0, 0, 0, 0.54)
|
||||
}
|
||||
|
||||
.footer__tag {
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.footer__tag > div {
|
||||
margin-right: 20px
|
||||
}
|
||||
|
||||
.footer__tag > div:last-child {
|
||||
margin-right: 0
|
||||
}
|
||||
|
||||
.footer__tag li {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.footer__tag li a {
|
||||
color: rgba(0, 0, 0, 0.54);
|
||||
display: block;
|
||||
line-height: 30px;
|
||||
word-break: keep-all;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
padding: 0 25px;
|
||||
}
|
||||
|
||||
.footer__tag li a:hover {
|
||||
color: rgba(0, 0, 0, 0.68);
|
||||
}
|
||||
|
||||
.main {
|
||||
margin: 50px 20px 0
|
||||
}
|
||||
|
||||
.main .content {
|
||||
margin-top: 50px
|
||||
}
|
||||
|
||||
.board {
|
||||
padding: 12px 0;
|
||||
text-align: center
|
||||
}
|
||||
|
||||
/* star article */
|
||||
.article {
|
||||
&__toc {
|
||||
left: 100%;
|
||||
position: fixed;
|
||||
top: 90px;
|
||||
bottom: 60px;
|
||||
a {
|
||||
color: rgba(0, 0, 0, 0.54);
|
||||
&:hover {
|
||||
color: rgba(0, 0, 0, 0.68);
|
||||
}
|
||||
}
|
||||
}
|
||||
&__main {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
&__thumbnail {
|
||||
margin: 10px 0;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
flex: 1;
|
||||
}
|
||||
&__wrap {
|
||||
margin-right: -20px
|
||||
}
|
||||
|
||||
&__item {
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-radius: 2px;
|
||||
margin-bottom: 20px;
|
||||
float: left
|
||||
}
|
||||
|
||||
&__item--big {
|
||||
width: 318px;
|
||||
margin-right: 20px
|
||||
}
|
||||
|
||||
&__item--big .article__main {
|
||||
height: 236px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
&__item--small {
|
||||
width: 318px;
|
||||
margin-right: 20px;
|
||||
.article__thumbnail {
|
||||
background-image: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
&__item--small .article__main {
|
||||
height: 91px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
&__item--mid {
|
||||
width: 488px;
|
||||
margin-right: 20px
|
||||
}
|
||||
|
||||
&__item--mid .article__main {
|
||||
height: 195px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
&__panel {
|
||||
padding: 16px
|
||||
}
|
||||
|
||||
&__title {
|
||||
overflow: hidden;
|
||||
line-height: 24px;
|
||||
font-size: 21px;
|
||||
font-weight: 600;
|
||||
word-break: break-all
|
||||
}
|
||||
|
||||
&__title a {
|
||||
color: rgba(0, 0, 0, 0.84)
|
||||
}
|
||||
|
||||
&__title a:hover {
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
&__title sup {
|
||||
top: -6px;
|
||||
font-size: 12px;
|
||||
color: #03a87c;
|
||||
}
|
||||
|
||||
&__content {
|
||||
margin-top: 4px;
|
||||
font-size: 16px;
|
||||
color: rgba(0, 0, 0, 0.54);
|
||||
overflow: hidden;
|
||||
line-height: 23px;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
&__meta {
|
||||
font-size: 15px;
|
||||
line-height: 23px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* end article list */
|
||||
|
||||
/* start article */
|
||||
.post {
|
||||
max-width: 740px;
|
||||
margin: 50px auto 20px;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.post__main {
|
||||
margin: 20px 0 0 0
|
||||
}
|
||||
|
||||
.post__title {
|
||||
font-weight: 700;
|
||||
font-size: 42px;
|
||||
margin: 0 -20px 10px;
|
||||
word-break: break-all
|
||||
}
|
||||
|
||||
.post__title sup {
|
||||
font-size: 16px;
|
||||
top: -20px;
|
||||
color: #03a87c;
|
||||
}
|
||||
|
||||
.post__tags {
|
||||
padding: 4px 0 22px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.05)
|
||||
}
|
||||
|
||||
.post__share {
|
||||
padding: 20px 0;
|
||||
margin-bottom: 20px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.post__share svg {
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
vertical-align: bottom
|
||||
}
|
||||
|
||||
.post__share #articleShare {
|
||||
position: relative
|
||||
}
|
||||
|
||||
.post__share #articleShare .article__code {
|
||||
position: absolute;
|
||||
height: 130px;
|
||||
width: 130px;
|
||||
left: -2px;
|
||||
top: 22px
|
||||
}
|
||||
|
||||
.post__share-icon {
|
||||
color: rgba(0, 0, 0, 0.54);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.post__share-icon:hover {
|
||||
color: rgba(0, 0, 0, 0.68);
|
||||
}
|
||||
|
||||
.post__view {
|
||||
color: #03a87c;
|
||||
transition: all 0.1s
|
||||
}
|
||||
|
||||
.post__view:hover {
|
||||
color: #018f69;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.post__side {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 10%;
|
||||
width: 55px;
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
margin-top: -125px;
|
||||
transition: opacity .1s;
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
.post__side svg {
|
||||
height: 25px;
|
||||
width: 25px
|
||||
}
|
||||
|
||||
.post__side .ft-green svg {
|
||||
height: 55px;
|
||||
width: 55px;
|
||||
vertical-align: bottom;
|
||||
margin-bottom: 10px
|
||||
}
|
||||
|
||||
.post__side .article__code {
|
||||
position: absolute;
|
||||
height: 130px;
|
||||
width: 130px;
|
||||
left: 45px;
|
||||
top: 90px
|
||||
}
|
||||
|
||||
#articleSideShare {
|
||||
width: 26px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.article__bottom {
|
||||
background-color: #fafafa;
|
||||
padding: 40px 20px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.article__bottom .footer__tag {
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.article__comment {
|
||||
width: 640px;
|
||||
margin: 45px auto 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.article__comment .comment__title {
|
||||
font-size: 16px;
|
||||
margin-bottom: 15px;
|
||||
color: rgba(0, 0, 0, 0.68)
|
||||
}
|
||||
|
||||
.article__comment .comment__item {
|
||||
background-color: rgb(255, 255, 255);
|
||||
box-shadow: rgba(0, 0, 0, 0.04) 0px 1px 4px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.09);
|
||||
border-radius: 3px;
|
||||
padding: 10px 20px 10px 77px;
|
||||
margin: 0 0 20px;
|
||||
}
|
||||
|
||||
.article__comment .comment__avatar {
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
height: 57px;
|
||||
width: 57px;
|
||||
display: inline-block;
|
||||
z-index: 10;
|
||||
border: 2px solid rgb(255, 255, 255);
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.article__comment .comment__body svg.ft-gray {
|
||||
height: 12px;
|
||||
width: 12px;
|
||||
vertical-align: text-top;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.article__comment .comment__body .vditor-reset {
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
.article__comment .comment__user,
|
||||
.article__comment .comment__user a {
|
||||
color: rgb(3, 168, 124);
|
||||
}
|
||||
|
||||
.article__comment .comment__user a:hover {
|
||||
color: rgb(1, 143, 105);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.comment-body-ref {
|
||||
position: absolute;
|
||||
width: 559px;
|
||||
box-sizing: border-box;
|
||||
left: 101px;
|
||||
}
|
||||
|
||||
.comment-body-ref .ft-green {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.comment__textarea {
|
||||
background-color: rgb(255, 255, 255);
|
||||
box-shadow: rgba(0, 0, 0, 0.04) 0px 1px 4px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.09);
|
||||
border-radius: 3px;
|
||||
padding: 10px;
|
||||
margin: 0 0 5px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
.article__toolbar {
|
||||
box-shadow: 0 0 1px rgba(0, 0, 0, 0.54);
|
||||
position: fixed;
|
||||
bottom: -44px;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
height: 44px;
|
||||
font-size: 16px;
|
||||
line-height: 44px;
|
||||
transition: all 0.1s;
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
.article__toolbar .wrapper {
|
||||
max-width: 740px
|
||||
}
|
||||
|
||||
.article__toolbar svg {
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
vertical-align: middle
|
||||
}
|
||||
|
||||
.article__toolbar .fn-right {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 20px
|
||||
}
|
||||
|
||||
.article__toolbar .article__code {
|
||||
position: absolute;
|
||||
height: 130px;
|
||||
width: 130px;
|
||||
left: 50px;
|
||||
bottom: 30px
|
||||
}
|
||||
|
||||
.article__next {
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.38);
|
||||
line-height: 15px;
|
||||
margin-top: 7px;
|
||||
color: rgba(0, 0, 0, 0.84);
|
||||
font-size: 14px;
|
||||
display: inline-block;
|
||||
padding-left: 20px;
|
||||
margin-left: 20px;
|
||||
transition: all .2s;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.article__next:hover {
|
||||
text-decoration: none;
|
||||
color: rgba(0, 0, 0, 0.54);
|
||||
}
|
||||
|
||||
.pagination {
|
||||
margin-top: 30px;
|
||||
font-size: 16px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.15)
|
||||
}
|
||||
|
||||
.pagination__item {
|
||||
text-align: center;
|
||||
border-top: 1px solid transparent;
|
||||
transition: all 0.1s;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
top: -1px;
|
||||
margin: 0 10px;
|
||||
padding: 0 10px;
|
||||
line-height: 30px;
|
||||
color: rgba(0, 0, 0, 0.54)
|
||||
}
|
||||
|
||||
.pagination__item:hover {
|
||||
border-top-color: rgba(0, 0, 0, 0.54);
|
||||
color: rgba(0, 0, 0, 0.84);
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.pagination__item--active {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
border-top-color: rgba(0, 0, 0, 0.54)
|
||||
}
|
||||
|
||||
.pagination__item--active:hover {
|
||||
color: rgba(0, 0, 0, 0.54);
|
||||
border-top-color: rgba(0, 0, 0, 0.54)
|
||||
}
|
||||
|
||||
.pagination__item:first-child {
|
||||
margin-left: 0
|
||||
}
|
||||
|
||||
.pagination__item:last-child {
|
||||
margin-right: 0
|
||||
}
|
||||
|
||||
.pagination__omit {
|
||||
top: -5px;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
color: #ccc
|
||||
}
|
||||
|
||||
.page__item {
|
||||
display: block;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
|
||||
padding: 40px 0 35px
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.header {
|
||||
text-align: left
|
||||
}
|
||||
|
||||
.header__logo,
|
||||
.post__side, .article__next, #articleBottomShare, #articleShare,
|
||||
.article__comment .comment__avatar {
|
||||
display: none
|
||||
}
|
||||
|
||||
.post {
|
||||
margin: 50px 20px 20px
|
||||
}
|
||||
|
||||
.article__toolbar {
|
||||
padding-left: 20px;
|
||||
box-sizing: border-box
|
||||
}
|
||||
|
||||
.article__item {
|
||||
width: 100%;
|
||||
margin-bottom: 20px
|
||||
}
|
||||
|
||||
.article__wrap {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.article__comment {
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.article__main {
|
||||
height: auto !important
|
||||
}
|
||||
|
||||
.footer .fn-right {
|
||||
float: none
|
||||
}
|
||||
|
||||
.footer__tag {
|
||||
display: block
|
||||
}
|
||||
|
||||
.footer__tag > div {
|
||||
margin: 0 0 50px
|
||||
}
|
||||
|
||||
.footer__tag > div:last-child {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.pagination__item {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.article__comment .comment__item {
|
||||
padding-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Make clicks pass-through */
|
||||
#nprogress .bar {
|
||||
background: #d23f31;
|
||||
}
|
||||
|
||||
/* Fancy blur effect */
|
||||
#nprogress .peg {
|
||||
box-shadow: 0 0 10px #d23f31, 0 0 5px #d23f31;
|
||||
}
|
||||
|
||||
#nprogress .spinner-icon {
|
||||
border-top-color: #d23f31;
|
||||
border-left-color: #d23f31;
|
||||
}
|
|
@ -0,0 +1,524 @@
|
|||
{
|
||||
"IcoMoonType": "selection",
|
||||
"icons": [
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M219.429 804.571c0 60.571-49.143 109.714-109.714 109.714s-109.714-49.143-109.714-109.714 49.143-109.714 109.714-109.714 109.714 49.143 109.714 109.714zM219.429 512c0 60.571-49.143 109.714-109.714 109.714s-109.714-49.143-109.714-109.714 49.143-109.714 109.714-109.714 109.714 49.143 109.714 109.714zM1024 749.714v109.714c0 9.714-8.571 18.286-18.286 18.286h-694.857c-9.714 0-18.286-8.571-18.286-18.286v-109.714c0-9.714 8.571-18.286 18.286-18.286h694.857c9.714 0 18.286 8.571 18.286 18.286zM219.429 219.429c0 60.571-49.143 109.714-109.714 109.714s-109.714-49.143-109.714-109.714 49.143-109.714 109.714-109.714 109.714 49.143 109.714 109.714zM1024 457.143v109.714c0 9.714-8.571 18.286-18.286 18.286h-694.857c-9.714 0-18.286-8.571-18.286-18.286v-109.714c0-9.714 8.571-18.286 18.286-18.286h694.857c9.714 0 18.286 8.571 18.286 18.286zM1024 164.571v109.714c0 9.714-8.571 18.286-18.286 18.286h-694.857c-9.714 0-18.286-8.571-18.286-18.286v-109.714c0-9.714 8.571-18.286 18.286-18.286h694.857c9.714 0 18.286 8.571 18.286 18.286z"
|
||||
],
|
||||
"width": 1024,
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"list-ul"
|
||||
],
|
||||
"defaultCode": 61642,
|
||||
"grid": 14
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"name": "list",
|
||||
"id": 6,
|
||||
"order": 3,
|
||||
"prevSize": 28,
|
||||
"code": 61642
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 0
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M804.571 566.857v274.286c0 20-16.571 36.571-36.571 36.571h-219.429v-219.429h-146.286v219.429h-219.429c-20 0-36.571-16.571-36.571-36.571v-274.286c0-1.143 0.571-2.286 0.571-3.429l328.571-270.857 328.571 270.857c0.571 1.143 0.571 2.286 0.571 3.429zM932 527.429l-35.429 42.286c-2.857 3.429-7.429 5.714-12 6.286h-1.714c-4.571 0-8.571-1.143-12-4l-395.429-329.714-395.429 329.714c-4 2.857-8.571 4.571-13.714 4-4.571-0.571-9.143-2.857-12-6.286l-35.429-42.286c-6.286-7.429-5.143-19.429 2.286-25.714l410.857-342.286c24-20 62.857-20 86.857 0l139.429 116.571v-111.429c0-10.286 8-18.286 18.286-18.286h109.714c10.286 0 18.286 8 18.286 18.286v233.143l125.143 104c7.429 6.286 8.571 18.286 2.286 25.714z"
|
||||
],
|
||||
"width": 950.8571428571428,
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"home"
|
||||
],
|
||||
"defaultCode": 61461,
|
||||
"grid": 14
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"name": "home",
|
||||
"id": 7,
|
||||
"order": 4,
|
||||
"prevSize": 28,
|
||||
"code": 61461
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 1
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M402.286 219.429c-178.286 0-329.143 100.571-329.143 219.429 0 62.857 42.286 123.429 115.429 165.714l55.429 32-20 48c12-6.857 24-14.286 35.429-22.286l25.143-17.714 30.286 5.714c28.571 5.143 57.714 8 87.429 8 178.286 0 329.143-100.571 329.143-219.429s-150.857-219.429-329.143-219.429zM402.286 146.286c222.286 0 402.286 130.857 402.286 292.571s-180 292.571-402.286 292.571c-34.857 0-68.571-3.429-100.571-9.143-47.429 33.714-101.143 58.286-158.857 73.143-15.429 4-32 6.857-49.143 9.143h-1.714c-8.571 0-16.571-6.857-18.286-16.571v0c-2.286-10.857 5.143-17.714 11.429-25.143 22.286-25.143 47.429-47.429 66.857-94.857-92.571-53.714-152-136.571-152-229.143 0-161.714 180-292.571 402.286-292.571zM872 814.286c19.429 47.429 44.571 69.714 66.857 94.857 6.286 7.429 13.714 14.286 11.429 25.143v0c-2.286 10.286-10.857 17.714-20 16.571-17.143-2.286-33.714-5.143-49.143-9.143-57.714-14.857-111.429-39.429-158.857-73.143-32 5.714-65.714 9.143-100.571 9.143-103.429 0-198.286-28.571-269.714-75.429 16.571 1.143 33.714 2.286 50.286 2.286 122.857 0 238.857-35.429 327.429-99.429 95.429-69.714 148-164 148-266.286 0-29.714-4.571-58.857-13.143-86.857 96.571 53.143 159.429 137.714 159.429 233.143 0 93.143-59.429 175.429-152 229.143z"
|
||||
],
|
||||
"width": 1024,
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"comments-o"
|
||||
],
|
||||
"defaultCode": 61670,
|
||||
"grid": 14
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"name": "comments",
|
||||
"id": 8,
|
||||
"order": 5,
|
||||
"prevSize": 28,
|
||||
"code": 61670
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 2
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M73.143 950.857h164.571v-164.571h-164.571v164.571zM274.286 950.857h182.857v-164.571h-182.857v164.571zM73.143 749.714h164.571v-182.857h-164.571v182.857zM274.286 749.714h182.857v-182.857h-182.857v182.857zM73.143 530.286h164.571v-164.571h-164.571v164.571zM493.714 950.857h182.857v-164.571h-182.857v164.571zM274.286 530.286h182.857v-164.571h-182.857v164.571zM713.143 950.857h164.571v-164.571h-164.571v164.571zM493.714 749.714h182.857v-182.857h-182.857v182.857zM292.571 256v-164.571c0-9.714-8.571-18.286-18.286-18.286h-36.571c-9.714 0-18.286 8.571-18.286 18.286v164.571c0 9.714 8.571 18.286 18.286 18.286h36.571c9.714 0 18.286-8.571 18.286-18.286zM713.143 749.714h164.571v-182.857h-164.571v182.857zM493.714 530.286h182.857v-164.571h-182.857v164.571zM713.143 530.286h164.571v-164.571h-164.571v164.571zM731.429 256v-164.571c0-9.714-8.571-18.286-18.286-18.286h-36.571c-9.714 0-18.286 8.571-18.286 18.286v164.571c0 9.714 8.571 18.286 18.286 18.286h36.571c9.714 0 18.286-8.571 18.286-18.286zM950.857 219.429v731.429c0 40-33.143 73.143-73.143 73.143h-804.571c-40 0-73.143-33.143-73.143-73.143v-731.429c0-40 33.143-73.143 73.143-73.143h73.143v-54.857c0-50.286 41.143-91.429 91.429-91.429h36.571c50.286 0 91.429 41.143 91.429 91.429v54.857h219.429v-54.857c0-50.286 41.143-91.429 91.429-91.429h36.571c50.286 0 91.429 41.143 91.429 91.429v54.857h73.143c40 0 73.143 33.143 73.143 73.143z"
|
||||
],
|
||||
"width": 950.8571428571428,
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"calendar"
|
||||
],
|
||||
"defaultCode": 61555,
|
||||
"grid": 14
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"name": "date",
|
||||
"id": 9,
|
||||
"order": 6,
|
||||
"prevSize": 28,
|
||||
"code": 61555
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 3
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M658.286 475.429c0-141.143-114.857-256-256-256s-256 114.857-256 256 114.857 256 256 256 256-114.857 256-256zM950.857 950.857c0 40-33.143 73.143-73.143 73.143-19.429 0-38.286-8-51.429-21.714l-196-195.429c-66.857 46.286-146.857 70.857-228 70.857-222.286 0-402.286-180-402.286-402.286s180-402.286 402.286-402.286 402.286 180 402.286 402.286c0 81.143-24.571 161.143-70.857 228l196 196c13.143 13.143 21.143 32 21.143 51.429z"
|
||||
],
|
||||
"width": 950.8571428571428,
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"search"
|
||||
],
|
||||
"defaultCode": 61442,
|
||||
"grid": 14
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"name": "search",
|
||||
"id": 10,
|
||||
"order": 7,
|
||||
"prevSize": 28,
|
||||
"code": 61442
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 4
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M961.714 760.571l-94.857 94.286c-14.286 14.286-37.143 14.286-51.429 0l-303.429-303.429-303.429 303.429c-14.286 14.286-37.143 14.286-51.429 0l-94.857-94.286c-14.286-14.286-14.286-37.714 0-52l424-423.429c14.286-14.286 37.143-14.286 51.429 0l424 423.429c14.286 14.286 14.286 37.714 0 52z"
|
||||
],
|
||||
"width": 1024,
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"chevron-up"
|
||||
],
|
||||
"defaultCode": 61559,
|
||||
"grid": 14
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"name": "up",
|
||||
"id": 11,
|
||||
"order": 8,
|
||||
"prevSize": 28,
|
||||
"code": 61559
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 5
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M584.571 548.571h180.571c-1.143-2.857-1.714-6.286-2.857-9.143l-121.143-283.429h-404.571l-121.143 283.429c-1.143 2.857-1.714 6.286-2.857 9.143h180.571l54.286 109.714h182.857zM877.714 565.714v275.429c0 20-16.571 36.571-36.571 36.571h-804.571c-20 0-36.571-16.571-36.571-36.571v-275.429c0-20.571 6.286-50.857 14.286-70.286l136-315.429c8-18.857 30.857-33.714 50.857-33.714h475.429c20 0 42.857 14.857 50.857 33.714l136 315.429c8 19.429 14.286 49.714 14.286 70.286z"
|
||||
],
|
||||
"width": 877.7142857142857,
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"inbox"
|
||||
],
|
||||
"defaultCode": 61468,
|
||||
"grid": 14
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"name": "inbox",
|
||||
"id": 12,
|
||||
"order": 9,
|
||||
"prevSize": 28,
|
||||
"code": 61468
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 6
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M256 256c0-40.571-32.571-73.143-73.143-73.143s-73.143 32.571-73.143 73.143 32.571 73.143 73.143 73.143 73.143-32.571 73.143-73.143zM865.714 585.143c0 19.429-8 38.286-21.143 51.429l-280.571 281.143c-13.714 13.143-32.571 21.143-52 21.143s-38.286-8-51.429-21.143l-408.571-409.143c-29.143-28.571-52-84-52-124.571v-237.714c0-40 33.143-73.143 73.143-73.143h237.714c40.571 0 96 22.857 125.143 52l408.571 408c13.143 13.714 21.143 32.571 21.143 52zM1085.143 585.143c0 19.429-8 38.286-21.143 51.429l-280.571 281.143c-13.714 13.143-32.571 21.143-52 21.143-29.714 0-44.571-13.714-64-33.714l268.571-268.571c13.143-13.143 21.143-32 21.143-51.429s-8-38.286-21.143-52l-408.571-408c-29.143-29.143-84.571-52-125.143-52h128c40.571 0 96 22.857 125.143 52l408.571 408c13.143 13.714 21.143 32.571 21.143 52z"
|
||||
],
|
||||
"width": 1085.1474285714285,
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"tags"
|
||||
],
|
||||
"defaultCode": 61484,
|
||||
"grid": 14
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"name": "tags",
|
||||
"id": 13,
|
||||
"order": 10,
|
||||
"prevSize": 28,
|
||||
"code": 61484
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 7
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M832 694.857c0-14.857-5.714-28.571-16-38.857l-118.857-118.857c-10.286-10.286-24.571-16-38.857-16-16.571 0-29.714 6.286-41.143 18.286 18.857 18.857 41.143 34.857 41.143 64 0 30.286-24.571 54.857-54.857 54.857-29.143 0-45.143-22.286-64-41.143-12 11.429-18.857 24.571-18.857 41.714 0 14.286 5.714 28.571 16 38.857l117.714 118.286c10.286 10.286 24.571 15.429 38.857 15.429s28.571-5.143 38.857-14.857l84-83.429c10.286-10.286 16-24 16-38.286zM430.286 292c0-14.286-5.714-28.571-16-38.857l-117.714-118.286c-10.286-10.286-24.571-16-38.857-16s-28.571 5.714-38.857 15.429l-84 83.429c-10.286 10.286-16 24-16 38.286 0 14.857 5.714 28.571 16 38.857l118.857 118.857c10.286 10.286 24.571 15.429 38.857 15.429 16.571 0 29.714-5.714 41.143-17.714-18.857-18.857-41.143-34.857-41.143-64 0-30.286 24.571-54.857 54.857-54.857 29.143 0 45.143 22.286 64 41.143 12-11.429 18.857-24.571 18.857-41.714zM941.714 694.857c0 43.429-17.714 85.714-48.571 116l-84 83.429c-30.857 30.857-72.571 47.429-116 47.429-44 0-85.714-17.143-116.571-48.571l-117.714-118.286c-30.857-30.857-47.429-72.571-47.429-116 0-45.143 18.286-88 50.286-119.429l-50.286-50.286c-31.429 32-73.714 50.286-118.857 50.286-43.429 0-85.714-17.143-116.571-48l-118.857-118.857c-31.429-31.429-48-72.571-48-116.571 0-43.429 17.714-85.714 48.571-116l84-83.429c30.857-30.857 72.571-47.429 116-47.429 44 0 85.714 17.143 116.571 48.571l117.714 118.286c30.857 30.857 47.429 72.571 47.429 116 0 45.143-18.286 88-50.286 119.429l50.286 50.286c31.429-32 73.714-50.286 118.857-50.286 43.429 0 85.714 17.143 116.571 48l118.857 118.857c31.429 31.429 48 72.571 48 116.571z"
|
||||
],
|
||||
"width": 950.8571428571428,
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"chain",
|
||||
"link"
|
||||
],
|
||||
"defaultCode": 61633,
|
||||
"grid": 14
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"name": "link",
|
||||
"id": 14,
|
||||
"order": 11,
|
||||
"prevSize": 28,
|
||||
"code": 61633
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 8
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M863.429 603.429c0 1.143 0 2.857-0.571 4-48.571 202.286-215.429 343.429-426.286 343.429-111.429 0-219.429-44-300.571-121.143l-73.714 73.714c-6.857 6.857-16 10.857-25.714 10.857-20 0-36.571-16.571-36.571-36.571v-256c0-20 16.571-36.571 36.571-36.571h256c20 0 36.571 16.571 36.571 36.571 0 9.714-4 18.857-10.857 25.714l-78.286 78.286c53.714 50.286 125.143 78.857 198.857 78.857 101.714 0 196-52.571 249.143-139.429 13.714-22.286 20.571-44 30.286-66.857 2.857-8 8.571-13.143 17.143-13.143h109.714c10.286 0 18.286 8.571 18.286 18.286zM877.714 146.286v256c0 20-16.571 36.571-36.571 36.571h-256c-20 0-36.571-16.571-36.571-36.571 0-9.714 4-18.857 10.857-25.714l78.857-78.857c-54.286-50.286-125.714-78.286-199.429-78.286-101.714 0-196 52.571-249.143 139.429-13.714 22.286-20.571 44-30.286 66.857-2.857 8-8.571 13.143-17.143 13.143h-113.714c-10.286 0-18.286-8.571-18.286-18.286v-4c49.143-202.857 217.714-343.429 428.571-343.429 112 0 221.143 44.571 302.286 121.143l74.286-73.714c6.857-6.857 16-10.857 25.714-10.857 20 0 36.571 16.571 36.571 36.571z"
|
||||
],
|
||||
"width": 877.7142857142857,
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"refresh"
|
||||
],
|
||||
"defaultCode": 61473,
|
||||
"grid": 14
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"name": "refresh",
|
||||
"id": 15,
|
||||
"order": 12,
|
||||
"prevSize": 28,
|
||||
"code": 61473
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 9
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M976 768h-16v-208c0-61.756-50.242-112-112-112h-272v-128h16c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-160c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h16v128h-272c-61.756 0-112 50.244-112 112v208h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h160c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-16v-192h256v192h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h160c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-16v-192h256v192h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h160c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48zM192 960h-128v-128h128v128zM576 960h-128v-128h128v128zM448 256v-128h128v128h-128zM960 960h-128v-128h128v128z"
|
||||
],
|
||||
"tags": [
|
||||
"tree",
|
||||
"branches",
|
||||
"inheritance"
|
||||
],
|
||||
"defaultCode": 59836,
|
||||
"grid": 16,
|
||||
"attrs": []
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"ligatures": "tree, branches",
|
||||
"name": "category",
|
||||
"order": 13,
|
||||
"id": 16,
|
||||
"prevSize": 32,
|
||||
"code": 59836
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 10
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M768 640v-128h-320v-128h320v-128l192 192zM704 576v256h-320v192l-384-192v-832h704v320h-64v-256h-512l256 128v576h256v-192z"
|
||||
],
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"exit",
|
||||
"signout",
|
||||
"logout",
|
||||
"quit",
|
||||
"close"
|
||||
],
|
||||
"defaultCode": 59924,
|
||||
"grid": 16
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"ligatures": "exit, signout",
|
||||
"name": "logout",
|
||||
"id": 0,
|
||||
"order": 14,
|
||||
"prevSize": 32,
|
||||
"code": 59924
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 11
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M512 192c-282.784 0-512 320-512 320s229.216 320 512 320 512-320 512-320-229.216-320-512-320zM512 704c-106.016 0-192-85.984-192-192s85.984-192 192-192 192 85.984 192 192-85.984 192-192 192zM512 384c-70.688 0-128 57.312-128 128s57.312 128 128 128 128-57.312 128-128-57.312-128-128-128z"
|
||||
],
|
||||
"attrs": [
|
||||
{}
|
||||
],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"eye",
|
||||
"views"
|
||||
],
|
||||
"grid": 16
|
||||
},
|
||||
"attrs": [
|
||||
{}
|
||||
],
|
||||
"properties": {
|
||||
"order": 15,
|
||||
"id": 1,
|
||||
"name": "views",
|
||||
"prevSize": 32,
|
||||
"code": 59648
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 12
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M384 736c0-151.234 95.874-280.486 230.032-330.2 16.28-36.538 25.968-77.164 25.968-117.8 0-159.058 0-288-192-288s-192 128.942-192 288c0 99.060 57.502 198.104 128 237.832v52.78c-217.102 17.748-384 124.42-384 253.388h397.306c-8.664-30.53-13.306-62.732-13.306-96z",
|
||||
"M736 448c-159.058 0-288 128.942-288 288s128.942 288 288 288c159.056 0 288-128.942 288-288s-128.942-288-288-288zM896 768h-128v128h-64v-128h-128v-64h128v-128h64v128h128v64z"
|
||||
],
|
||||
"width": 1024,
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"user-plus",
|
||||
"user",
|
||||
"user-add",
|
||||
"profile",
|
||||
"avatar",
|
||||
"person",
|
||||
"member"
|
||||
],
|
||||
"defaultCode": 59763,
|
||||
"grid": 16
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"ligatures": "user-plus, user2",
|
||||
"name": "register",
|
||||
"id": 2,
|
||||
"order": 16,
|
||||
"prevSize": 32,
|
||||
"code": 59763
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 13
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M933.79 610.25c-53.726-93.054-21.416-212.304 72.152-266.488l-100.626-174.292c-28.75 16.854-62.176 26.518-97.846 26.518-107.536 0-194.708-87.746-194.708-195.99h-201.258c0.266 33.41-8.074 67.282-25.958 98.252-53.724 93.056-173.156 124.702-266.862 70.758l-100.624 174.292c28.97 16.472 54.050 40.588 71.886 71.478 53.638 92.908 21.512 211.92-71.708 266.224l100.626 174.292c28.65-16.696 61.916-26.254 97.4-26.254 107.196 0 194.144 87.192 194.7 194.958h201.254c-0.086-33.074 8.272-66.57 25.966-97.218 53.636-92.906 172.776-124.594 266.414-71.012l100.626-174.29c-28.78-16.466-53.692-40.498-71.434-71.228zM512 719.332c-114.508 0-207.336-92.824-207.336-207.334 0-114.508 92.826-207.334 207.336-207.334 114.508 0 207.332 92.826 207.332 207.334-0.002 114.51-92.824 207.334-207.332 207.334z"
|
||||
],
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"cog",
|
||||
"gear",
|
||||
"preferences",
|
||||
"settings",
|
||||
"generate",
|
||||
"control",
|
||||
"options"
|
||||
],
|
||||
"defaultCode": 59796,
|
||||
"grid": 16
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"ligatures": "cog, gear",
|
||||
"name": "setting",
|
||||
"id": 3,
|
||||
"order": 17,
|
||||
"prevSize": 32,
|
||||
"code": 59796
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 14
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M384 512h-320v-128h320v-128l192 192-192 192zM1024 0v832l-384 192v-192h-384v-256h64v192h320v-576l256-128h-576v256h-64v-320z"
|
||||
],
|
||||
"attrs": [],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"enter",
|
||||
"signin",
|
||||
"login"
|
||||
],
|
||||
"defaultCode": 59923,
|
||||
"grid": 16
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"ligatures": "enter, signin",
|
||||
"name": "login",
|
||||
"id": 4,
|
||||
"order": 18,
|
||||
"prevSize": 32,
|
||||
"code": 59923
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 15
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M136.294 750.93c-75.196 0-136.292 61.334-136.292 136.076 0 75.154 61.1 135.802 136.292 135.802 75.466 0 136.494-60.648 136.494-135.802-0.002-74.742-61.024-136.076-136.494-136.076zM0.156 347.93v196.258c127.784 0 247.958 49.972 338.458 140.512 90.384 90.318 140.282 211.036 140.282 339.3h197.122c-0.002-372.82-303.282-676.070-675.862-676.070zM0.388 0v196.356c455.782 0 826.756 371.334 826.756 827.644h196.856c0-564.47-459.254-1024-1023.612-1024z"
|
||||
],
|
||||
"attrs": [
|
||||
{}
|
||||
],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"feed",
|
||||
"rss",
|
||||
"social"
|
||||
],
|
||||
"grid": 16
|
||||
},
|
||||
"attrs": [
|
||||
{}
|
||||
],
|
||||
"properties": {
|
||||
"order": 19,
|
||||
"id": 5,
|
||||
"prevSize": 32,
|
||||
"code": 59649,
|
||||
"name": "rss"
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 3,
|
||||
"iconIdx": 16
|
||||
}
|
||||
],
|
||||
"height": 1024,
|
||||
"metadata": {
|
||||
"name": "icomoon"
|
||||
},
|
||||
"preferences": {
|
||||
"showGlyphs": true,
|
||||
"showQuickUse": true,
|
||||
"showQuickUse2": true,
|
||||
"showSVGs": true,
|
||||
"fontPref": {
|
||||
"prefix": "icon-",
|
||||
"metadata": {
|
||||
"fontFamily": "icomoon"
|
||||
},
|
||||
"metrics": {
|
||||
"emSize": 1024,
|
||||
"baseline": 6.25,
|
||||
"whitespace": 50
|
||||
},
|
||||
"embed": false
|
||||
},
|
||||
"imagePref": {
|
||||
"prefix": "icon-",
|
||||
"png": true,
|
||||
"useClassSelector": true,
|
||||
"color": 4473924,
|
||||
"bgColor": 16777215
|
||||
},
|
||||
"historySize": 100,
|
||||
"showCodes": false,
|
||||
"gridSize": 16
|
||||
}
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<div class="wrapper">
|
||||
<footer class="footer">
|
||||
<div class="fn-clear">
|
||||
${blogSubtitle}
|
||||
<#include "../../common-template/macro-user_site.ftl"/>
|
||||
<@userSite dir="n"/>
|
||||
<div class="fn-right">
|
||||
${blogTitle} © ${year} ${footerContent}
|
||||
</div>
|
||||
</div>
|
||||
<div class="fn-clear">
|
||||
${statistic.statisticPublishedBlogArticleCount} ${articleLabel}
|
||||
${statistic.statisticPublishedBlogCommentCount} ${commentLabel}
|
||||
${statistic.statisticBlogViewCount} ${viewLabel}
|
||||
${onlineVisitorCnt} ${onlineVisitorLabel}
|
||||
<div class="fn-right">
|
||||
Powered by <a href="https://b3log.org" target="_blank">B3log 开源</a> •
|
||||
<a href="https://solo.b3log.org" target="_blank">Solo</a> •
|
||||
Theme <a rel="friend" href="https://github.com/b3log/solo-skins" target="_blank">${skinDirName}</a>
|
||||
by <a href="http://vanessa.b3log.org" target="_blank">Vanessa</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="${staticServePath}/js/lib/compress/pjax.min.js" charset="utf-8"></script>
|
||||
<script type="text/javascript" src="${staticServePath}/js/common${miniPostfix}.js?${staticResourceVersion}"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript"
|
||||
src="${staticServePath}/skins/${skinDirName}/js/common${miniPostfix}.js?${staticResourceVersion}"
|
||||
charset="utf-8"></script>
|
||||
<#include "../../common-template/label.ftl">
|
||||
${plugins}
|
|
@ -0,0 +1,104 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<svg style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<symbol id="icon-tag" viewBox="0 0 32 32">
|
||||
<path
|
||||
d="M29.021 0h-8.936c-1.638 0-3.927 0.948-5.085 2.106l-13.842 13.842c-1.158 1.158-1.158 3.054 0 4.213l10.681 10.681c1.158 1.158 3.054 1.158 4.212 0l13.842-13.842c1.158-1.158 2.106-3.447 2.106-5.085v-8.936c0-1.638-1.34-2.979-2.979-2.979zM25.063 9.91c-1.642 0-2.973-1.331-2.973-2.973s1.331-2.973 2.973-2.973 2.973 1.331 2.973 2.973-1.331 2.973-2.973 2.973z"></path>
|
||||
</symbol>
|
||||
<symbol id="icon-feed" viewBox="0 0 28 28">
|
||||
<path
|
||||
d="M8.542 22.72c0 1.805-1.465 3.27-3.27 3.27s-3.27-1.465-3.27-3.27 1.465-3.27 3.27-3.27 3.27 1.465 3.27 3.27zM17.262 24.815c0.017 0.307-0.085 0.596-0.29 0.817-0.204 0.238-0.494 0.358-0.8 0.358h-2.299c-0.562 0-1.022-0.426-1.073-0.988-0.494-5.195-4.615-9.316-9.81-9.81-0.562-0.051-0.988-0.511-0.988-1.073v-2.299c0-0.307 0.119-0.596 0.358-0.8 0.187-0.187 0.46-0.29 0.732-0.29h0.085c3.628 0.29 7.051 1.873 9.623 4.462 2.589 2.572 4.173 5.995 4.462 9.623zM25.982 24.849c0.017 0.29-0.085 0.579-0.307 0.8-0.204 0.221-0.477 0.341-0.783 0.341h-2.435c-0.579 0-1.056-0.443-1.090-1.022-0.562-9.895-8.448-17.781-18.343-18.36-0.579-0.034-1.022-0.511-1.022-1.073v-2.435c0-0.307 0.119-0.579 0.341-0.783 0.204-0.204 0.477-0.307 0.749-0.307h0.051c5.961 0.307 11.564 2.81 15.788 7.051 4.241 4.224 6.744 9.827 7.051 15.788z"></path>
|
||||
</symbol>
|
||||
<symbol id="icon-folders" viewBox="0 0 28 28">
|
||||
<path
|
||||
d="M28.68 15.875c0 0.375-0.234 0.75-0.484 1.031l-5.25 6.188c-0.906 1.062-2.75 1.906-4.125 1.906h-17c-0.562 0-1.359-0.172-1.359-0.875 0-0.375 0.234-0.75 0.484-1.031l5.25-6.188c0.906-1.062 2.75-1.906 4.125-1.906h17c0.562 0 1.359 0.172 1.359 0.875zM23.32 10.5v2.5h-13c-1.953 0-4.375 1.109-5.641 2.609l-5.344 6.281c0-0.125-0.016-0.266-0.016-0.391v-15c0-1.922 1.578-3.5 3.5-3.5h5c1.922 0 3.5 1.578 3.5 3.5v0.5h8.5c1.922 0 3.5 1.578 3.5 3.5z"></path>
|
||||
</symbol>
|
||||
<symbol id="icon-bookmark" viewBox="0 0 28 28">
|
||||
<path
|
||||
d="M17.231 12.923c0-0.589-0.488-1.077-1.077-1.077h-4.308c-0.589 0-1.077 0.488-1.077 1.077s0.488 1.077 1.077 1.077h4.308c0.589 0 1.077-0.488 1.077-1.077zM26.923 9.692v16.154c0 0.589-0.488 1.077-1.077 1.077h-23.692c-0.589 0-1.077-0.488-1.077-1.077v-16.154c0-0.589 0.488-1.077 1.077-1.077h23.692c0.589 0 1.077 0.488 1.077 1.077zM28 2.154v4.308c0 0.589-0.488 1.077-1.077 1.077h-25.846c-0.589 0-1.077-0.488-1.077-1.077v-4.308c0-0.589 0.488-1.077 1.077-1.077h25.846c0.589 0 1.077 0.488 1.077 1.077z"></path>
|
||||
</symbol>
|
||||
<symbol id="icon-group" viewBox="0 0 28 28">
|
||||
<path
|
||||
d="M8.665 14c-1.512 0.044-2.879 0.698-3.853 1.861h-1.948c-1.454 0-2.82-0.698-2.82-2.312 0-1.178-0.044-5.132 1.803-5.132 0.305 0 1.817 1.236 3.78 1.236 0.669 0 1.308-0.116 1.934-0.334-0.044 0.32-0.073 0.64-0.073 0.959 0 1.323 0.422 2.631 1.178 3.722zM24.235 23.261c0 2.355-1.556 3.765-3.882 3.765h-12.706c-2.326 0-3.882-1.41-3.882-3.765 0-3.286 0.771-8.33 5.030-8.33 0.494 0 2.297 2.021 5.205 2.021s4.71-2.021 5.205-2.021c4.26 0 5.030 5.045 5.030 8.33zM9.348 4.696c0 2.050-1.672 3.722-3.722 3.722s-3.722-1.672-3.722-3.722 1.672-3.722 3.722-3.722 3.722 1.672 3.722 3.722zM19.583 10.278c0 3.082-2.501 5.583-5.583 5.583s-5.583-2.501-5.583-5.583 2.501-5.583 5.583-5.583 5.583 2.501 5.583 5.583zM27.956 13.549c0 1.614-1.367 2.312-2.82 2.312h-1.948c-0.974-1.163-2.341-1.817-3.853-1.861 0.756-1.090 1.178-2.399 1.178-3.722 0-0.32-0.029-0.64-0.073-0.959 0.625 0.218 1.265 0.334 1.934 0.334 1.963 0 3.475-1.236 3.78-1.236 1.846 0 1.803 3.954 1.803 5.132zM26.096 4.696c0 2.050-1.672 3.722-3.722 3.722s-3.722-1.672-3.722-3.722 1.672-3.722 3.722-3.722 3.722 1.672 3.722 3.722z"></path>
|
||||
</symbol>
|
||||
<symbol id="icon-search" viewBox="0 0 32 32">
|
||||
<path
|
||||
d="M31.008 27.231l-7.58-6.447c-0.784-0.705-1.622-1.029-2.299-0.998 1.789-2.096 2.87-4.815 2.87-7.787 0-6.627-5.373-12-12-12s-12 5.373-12 12 5.373 12 12 12c2.972 0 5.691-1.081 7.787-2.87-0.031 0.677 0.293 1.515 0.998 2.299l6.447 7.58c1.104 1.226 2.907 1.33 4.007 0.23s0.997-2.903-0.23-4.007zM12 20c-4.418 0-8-3.582-8-8s3.582-8 8-8 8 3.582 8 8-3.582 8-8 8z"></path>
|
||||
</symbol>
|
||||
<symbol id="icon-home" viewBox="0 0 32 32">
|
||||
<path
|
||||
d="M32 18.967l-16-12.42-16 12.42v-5.064l16-12.42 16 12.42zM28 18.516v12h-8v-8h-8v8h-8v-12l12-9z"></path>
|
||||
</symbol>
|
||||
<symbol id="icon-setting" viewBox="0 0 32 32">
|
||||
<path
|
||||
d="M29.181 19.070c-1.679-2.908-0.669-6.634 2.255-8.328l-3.145-5.447c-0.898 0.527-1.943 0.829-3.058 0.829-3.36 0-6.085-2.742-6.085-6.125h-6.289c0.008 1.044-0.252 2.103-0.811 3.070-1.679 2.908-5.411 3.897-8.339 2.211l-3.144 5.447c0.905 0.515 1.689 1.268 2.246 2.234 1.676 2.903 0.672 6.623-2.241 8.319l3.145 5.447c0.895-0.522 1.935-0.82 3.044-0.82 3.35 0 6.067 2.725 6.084 6.092h6.289c-0.003-1.034 0.259-2.080 0.811-3.038 1.676-2.903 5.399-3.894 8.325-2.219l3.145-5.447c-0.899-0.515-1.678-1.266-2.232-2.226zM16 22.479c-3.578 0-6.479-2.901-6.479-6.479s2.901-6.479 6.479-6.479c3.578 0 6.479 2.901 6.479 6.479s-2.901 6.479-6.479 6.479z"></path>
|
||||
</symbol>
|
||||
<symbol id="icon-out" viewBox="0 0 28 32">
|
||||
<path d="M11.429 25.714c0 0.5 0.232 1.714-0.571 1.714h-5.714c-2.839 0-5.143-2.304-5.143-5.143v-12.571c0-2.839 2.304-5.143 5.143-5.143h5.714c0.304 0 0.571 0.268 0.571 0.571 0 0.5 0.232 1.714-0.571 1.714h-5.714c-1.571 0-2.857 1.286-2.857 2.857v12.571c0 1.571 1.286 2.857 2.857 2.857h5.143c0.446 0 1.143-0.089 1.143 0.571zM28 16c0 0.304-0.125 0.589-0.339 0.804l-9.714 9.714c-0.214 0.214-0.5 0.339-0.804 0.339-0.625 0-1.143-0.518-1.143-1.143v-5.143h-8c-0.625 0-1.143-0.518-1.143-1.143v-6.857c0-0.625 0.518-1.143 1.143-1.143h8v-5.143c0-0.625 0.518-1.143 1.143-1.143 0.304 0 0.589 0.125 0.804 0.339l9.714 9.714c0.214 0.214 0.339 0.5 0.339 0.804z"></path>
|
||||
</symbol>
|
||||
<symbol id="icon-enter" viewBox="0 0 27 32">
|
||||
<path d="M21.143 16c0 0.304-0.125 0.589-0.339 0.804l-9.714 9.714c-0.214 0.214-0.5 0.339-0.804 0.339-0.625 0-1.143-0.518-1.143-1.143v-5.143h-8c-0.625 0-1.143-0.518-1.143-1.143v-6.857c0-0.625 0.518-1.143 1.143-1.143h8v-5.143c0-0.625 0.518-1.143 1.143-1.143 0.304 0 0.589 0.125 0.804 0.339l9.714 9.714c0.214 0.214 0.339 0.5 0.339 0.804zM27.429 9.714v12.571c0 2.839-2.304 5.143-5.143 5.143h-5.714c-0.304 0-0.571-0.268-0.571-0.571 0-0.5-0.232-1.714 0.571-1.714h5.714c1.571 0 2.857-1.286 2.857-2.857v-12.571c0-1.571-1.286-2.857-2.857-2.857h-5.143c-0.446 0-1.143 0.089-1.143-0.571 0-0.5-0.232-1.714 0.571-1.714h5.714c2.839 0 5.143 2.304 5.143 5.143z"></path>
|
||||
</symbol>
|
||||
<symbol id="icon-link" viewBox="0 0 32 32">
|
||||
<path d="M13.757 19.868c-0.416 0-0.832-0.159-1.149-0.476-2.973-2.973-2.973-7.81 0-10.783l6-6c1.44-1.44 3.355-2.233 5.392-2.233s3.951 0.793 5.392 2.233c2.973 2.973 2.973 7.81 0 10.783l-2.743 2.743c-0.635 0.635-1.663 0.635-2.298 0s-0.635-1.663 0-2.298l2.743-2.743c1.706-1.706 1.706-4.481 0-6.187-0.826-0.826-1.925-1.281-3.094-1.281s-2.267 0.455-3.094 1.281l-6 6c-1.706 1.706-1.706 4.481 0 6.187 0.635 0.635 0.635 1.663 0 2.298-0.317 0.317-0.733 0.476-1.149 0.476z"></path>
|
||||
<path d="M8 31.625c-2.037 0-3.952-0.793-5.392-2.233-2.973-2.973-2.973-7.81 0-10.783l2.743-2.743c0.635-0.635 1.664-0.635 2.298 0s0.635 1.663 0 2.298l-2.743 2.743c-1.706 1.706-1.706 4.481 0 6.187 0.826 0.826 1.925 1.281 3.094 1.281s2.267-0.455 3.094-1.281l6-6c1.706-1.706 1.706-4.481 0-6.187-0.635-0.635-0.635-1.663 0-2.298s1.663-0.635 2.298 0c2.973 2.973 2.973 7.81 0 10.783l-6 6c-1.44 1.44-3.355 2.233-5.392 2.233z"></path>
|
||||
</symbol>
|
||||
<svg id="icon-comment" viewBox="0 0 29 29">
|
||||
<path d="M21.27 20.058c1.89-1.826 2.754-4.17 2.754-6.674C24.024 8.21 19.67 4 14.1 4 8.53 4 4 8.21 4 13.384c0 5.175 4.53 9.385 10.1 9.385 1.007 0 2-.14 2.95-.41.285.25.592.49.918.7 1.306.87 2.716 1.31 4.19 1.31.276-.01.494-.14.6-.36a.625.625 0 0 0-.052-.65c-.61-.84-1.042-1.71-1.282-2.58a5.417 5.417 0 0 1-.154-.75zm-3.85 1.324l-.083-.28-.388.12a9.72 9.72 0 0 1-2.85.424c-4.96 0-8.99-3.706-8.99-8.262 0-4.556 4.03-8.263 8.99-8.263 4.95 0 8.77 3.71 8.77 8.27 0 2.25-.75 4.35-2.5 5.92l-.24.21v.32c0 .07 0 .19.02.37.03.29.1.6.19.92.19.7.49 1.4.89 2.08-.93-.14-1.83-.49-2.67-1.06-.34-.22-.88-.48-1.16-.74z"></path>
|
||||
</svg>
|
||||
<symbol id="icon-reply" viewBox="0 0 28 28">
|
||||
<path d="M0 18c0 2.188 1.094 5.047 1.984 7.047 0.172 0.359 0.344 0.859 0.578 1.188 0.109 0.156 0.219 0.266 0.438 0.266 0.313 0 0.5-0.25 0.5-0.547 0-0.25-0.063-0.531-0.078-0.781-0.047-0.641-0.078-1.281-0.078-1.922 0-7.453 4.422-8.75 11.156-8.75h3.5v4c0 0.547 0.453 1 1 1 0.266 0 0.516-0.109 0.703-0.297l8-8c0.187-0.187 0.297-0.438 0.297-0.703s-0.109-0.516-0.297-0.703l-8-8c-0.187-0.187-0.438-0.297-0.703-0.297-0.547 0-1 0.453-1 1v4h-3.5c-5.125 0-11.5 0.906-13.672 6.297-0.656 1.656-0.828 3.453-0.828 5.203z"></path>
|
||||
</symbol>
|
||||
<symbol id="icon-qqz" viewBox="0 0 32 32">
|
||||
<path d="M22.824 13.989l-8.348 6.287s3.351 0.522 8.404 0.461l-0.23-1.040 7.2-6.549c0.132-0.12 0.183-0.312 0.129-0.487s-0.203-0.299-0.377-0.314l-9.492-0.856-3.708-9.213c-0.068-0.169-0.226-0.279-0.401-0.279s-0.333 0.11-0.401 0.279l-3.708 9.213-9.492 0.856c-0.174 0.015-0.323 0.139-0.377 0.314s-0.004 0.366 0.129 0.487l7.2 6.549-2.158 9.742c-0.040 0.178 0.026 0.365 0.168 0.474 0.142 0.107 0.331 0.115 0.481 0.021l8.158-5.165 8.158 5.165c0.070 0.045 0.147 0.066 0.225 0.066 0.090 0 0.18-0.029 0.256-0.086 0.142-0.109 0.208-0.295 0.168-0.474l-1.707-7.704c0.732-0.386 1.538-1.040 1.538-1.040s-3.195 1.638-14.664 0.838l8.312-6.325s-0.327-0.534-10.744-0.914c-0.697-0.026 8.493-1.83 15.281-0.305z"></path>
|
||||
</symbol>
|
||||
<symbol id="icon-wechat" viewBox="0 0 32 32"><path d="M9.062 9.203q0-0.641-0.391-1.031t-1.031-0.391q-0.672 0-1.188 0.398t-0.516 1.023q0 0.609 0.516 1.008t1.188 0.398q0.641 0 1.031-0.383t0.391-1.023zM20.672 17.125q0-0.438-0.398-0.781t-1.023-0.344q-0.422 0-0.773 0.352t-0.352 0.773q0 0.438 0.352 0.789t0.773 0.352q0.625 0 1.023-0.344t0.398-0.797zM16.984 9.203q0-0.641-0.383-1.031t-1.023-0.391q-0.672 0-1.188 0.398t-0.516 1.023q0 0.609 0.516 1.008t1.188 0.398q0.641 0 1.023-0.383t0.383-1.023zM26.906 17.125q0-0.438-0.406-0.781t-1.016-0.344q-0.422 0-0.773 0.352t-0.352 0.773q0 0.438 0.352 0.789t0.773 0.352q0.609 0 1.016-0.344t0.406-0.797zM22.75 10.922q-0.484-0.063-1.094-0.063-2.641 0-4.859 1.203t-3.492 3.258-1.273 4.492q0 1.219 0.359 2.375-0.547 0.047-1.062 0.047-0.406 0-0.781-0.023t-0.859-0.102-0.695-0.109-0.852-0.164-0.781-0.164l-3.953 1.984 1.125-3.406q-4.531-3.172-4.531-7.656 0-2.641 1.523-4.859t4.125-3.492 5.68-1.273q2.75 0 5.195 1.031t4.094 2.852 2.133 4.070zM32 19.688q0 1.828-1.070 3.492t-2.898 3.023l0.859 2.828-3.109-1.703q-2.344 0.578-3.406 0.578-2.641 0-4.859-1.102t-3.492-2.992-1.273-4.125 1.273-4.125 3.492-2.992 4.859-1.102q2.516 0 4.734 1.102t3.555 3 1.336 4.117z"></path></symbol>
|
||||
<symbol id="icon-weibo" viewBox="0 0 32 32"><path d="M13.242 27.106c-5.22 0.517-9.727-1.847-10.065-5.27-0.339-3.429 3.62-6.618 8.834-7.135 5.22-0.517 9.727 1.847 10.059 5.27 0.345 3.429-3.614 6.624-8.828 7.135zM23.677 15.735c-0.443-0.135-0.751-0.222-0.517-0.806 0.505-1.268 0.554-2.358 0.006-3.14-1.022-1.459-3.823-1.385-7.030-0.037 0 0-1.010 0.437-0.751-0.357 0.492-1.588 0.419-2.912-0.351-3.681-1.742-1.742-6.372 0.068-10.342 4.038-2.967 2.961-4.691 6.119-4.691 8.846 0 5.208 6.686 8.379 13.224 8.379 8.569 0 14.276-4.98 14.276-8.933 0-2.395-2.013-3.749-3.823-4.309z"></path><path d="M29.371 6.193c-2.069-2.296-5.122-3.17-7.942-2.573v0c-0.653 0.142-1.065 0.782-0.923 1.428 0.142 0.653 0.776 1.065 1.428 0.923 2.007-0.425 4.174 0.197 5.645 1.828s1.872 3.854 1.237 5.799v0c-0.203 0.634 0.142 1.311 0.776 1.521 0.634 0.203 1.311-0.142 1.521-0.776v-0.006c0.887-2.721 0.326-5.848-1.742-8.145z"></path><path d="M26.189 9.068c-1.010-1.12-2.499-1.545-3.866-1.25-0.56 0.117-0.917 0.677-0.8 1.237 0.123 0.56 0.677 0.917 1.231 0.794v0c0.671-0.142 1.397 0.068 1.89 0.609 0.492 0.548 0.628 1.293 0.412 1.945v0c-0.172 0.542 0.123 1.133 0.671 1.311 0.548 0.172 1.133-0.123 1.311-0.671 0.431-1.336 0.16-2.863-0.85-3.977z"></path><path d="M13.531 20.907c-0.185 0.314-0.585 0.462-0.899 0.332-0.314-0.123-0.406-0.48-0.228-0.782 0.185-0.302 0.573-0.449 0.88-0.332 0.308 0.111 0.419 0.462 0.246 0.782zM11.863 23.037c-0.505 0.806-1.588 1.157-2.401 0.788-0.8-0.363-1.040-1.299-0.536-2.087 0.499-0.782 1.545-1.133 2.352-0.794 0.819 0.351 1.084 1.28 0.585 2.093zM13.759 17.336c-2.481-0.646-5.288 0.591-6.366 2.776-1.102 2.229-0.037 4.709 2.469 5.522 2.598 0.837 5.664-0.449 6.729-2.85 1.053-2.358-0.259-4.777-2.832-5.448z"></path></symbol>
|
||||
<symbol id="icon-twitter" viewBox="0 0 32 32"><path d="M32 6.077c-1.175 0.525-2.443 0.875-3.768 1.031 1.356-0.812 2.393-2.1 2.887-3.631-1.268 0.75-2.674 1.3-4.168 1.593-1.2-1.275-2.906-2.068-4.793-2.068-3.624 0-6.561 2.937-6.561 6.561 0 0.512 0.056 1.012 0.169 1.493-5.455-0.275-10.292-2.887-13.529-6.861-0.562 0.969-0.887 2.1-0.887 3.299 0 2.275 1.156 4.287 2.918 5.461-1.075-0.031-2.087-0.331-2.974-0.819 0 0.025 0 0.056 0 0.081 0 3.181 2.262 5.836 5.268 6.436-0.55 0.15-1.131 0.231-1.731 0.231-0.425 0-0.831-0.044-1.237-0.119 0.837 2.606 3.262 4.505 6.13 4.562-2.25 1.762-5.074 2.812-8.155 2.812-0.531 0-1.050-0.031-1.568-0.094 2.912 1.868 6.361 2.949 10.067 2.949 12.073 0 18.678-10.004 18.678-18.678 0-0.287-0.006-0.569-0.019-0.85 1.281-0.919 2.393-2.075 3.274-3.393z"></path></symbol>
|
||||
<symbol id="icon-register" viewBox="0 0 32 32">
|
||||
<path d="M16 0c8.839 0 16 7.161 16 16 0 8.786-7.125 16-16 16-8.857 0-16-7.196-16-16 0-8.839 7.161-16 16-16zM27.054 24.125c1.661-2.286 2.661-5.089 2.661-8.125 0-7.554-6.161-13.714-13.714-13.714s-13.714 6.161-13.714 13.714c0 3.036 1 5.839 2.661 8.125 0.643-3.196 2.196-5.839 5.464-5.839 1.446 1.411 3.411 2.286 5.589 2.286s4.143-0.875 5.589-2.286c3.268 0 4.821 2.643 5.464 5.839zM22.857 12.571c0-3.786-3.071-6.857-6.857-6.857s-6.857 3.071-6.857 6.857 3.071 6.857 6.857 6.857 6.857-3.071 6.857-6.857z"></path>
|
||||
</symbol>
|
||||
</defs>
|
||||
</svg>
|
||||
<header class="header">
|
||||
<div class="wrapper fn-clear">
|
||||
<h1><a href="${servePath}" rel="start" class="header__title">${blogTitle}</a></h1>
|
||||
|
||||
<div class="fn-right">
|
||||
<a href="${servePath}/search" aria-label="${searchLabel}"
|
||||
class="vditor-tooltipped vditor-tooltipped__w header__icon">
|
||||
<svg>
|
||||
<use xlink:href="#icon-search"></use>
|
||||
</svg>
|
||||
</a>
|
||||
<#if isLoggedIn>
|
||||
<a class="avatar vditor-tooltipped vditor-tooltipped__w header__icon" aria-label="${adminLabel}"
|
||||
href="${servePath}/admin-index.do#main"
|
||||
style="background-image: url(${adminUser.userAvatar});"></a>
|
||||
<#else>
|
||||
<a href="${servePath}/start" class="header__a">
|
||||
${startToUseLabel}
|
||||
</a>
|
||||
</#if>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
Binary file not shown.
After Width: | Height: | Size: 71 KiB |
|
@ -0,0 +1,48 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<#include "../../common-template/macro-common_head.ftl">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<@head title="${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
<#include "header.ftl">
|
||||
<div id="pjax">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<#include "nav.ftl">
|
||||
<div class="main">
|
||||
<#if noticeBoard??>
|
||||
<div class="board">
|
||||
${noticeBoard}
|
||||
</div>
|
||||
</#if>
|
||||
<div class="wrapper content">
|
||||
<#include "article-list.ftl">
|
||||
</div>
|
||||
<#include "bottom2.ftl">
|
||||
</div>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,223 @@
|
|||
/*
|
||||
* 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/>.
|
||||
*/
|
||||
/**
|
||||
* @fileoverview util and every page should be used.
|
||||
*
|
||||
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
|
||||
* @version 0.1.0.1, Mar 22, 2019
|
||||
*/
|
||||
|
||||
/**
|
||||
* @description 皮肤脚本
|
||||
* @static
|
||||
*/
|
||||
var Skin = {
|
||||
init: function () {
|
||||
var $article__toc = $('.article__toc')
|
||||
$(window).scroll(function () {
|
||||
if ($article__toc.length === 1) {
|
||||
if ($('.article__bottom').offset().top < $(window).scrollTop()) {
|
||||
$article__toc.hide()
|
||||
} else {
|
||||
$article__toc.show()
|
||||
}
|
||||
}
|
||||
|
||||
if ($('#headerNav').length === 0) {
|
||||
return
|
||||
}
|
||||
if ($(window).scrollTop() > 64) {
|
||||
$('#headerNav').addClass('header__nav--fixed');
|
||||
$('.main').css('margin-top', '100px');
|
||||
} else {
|
||||
$('#headerNav').removeClass('header__nav--fixed');
|
||||
$('.main').css('margin-top', '50px');
|
||||
}
|
||||
});
|
||||
$(window).scroll();
|
||||
|
||||
Util.initPjax(function () {
|
||||
Util.parseMarkdown();
|
||||
if (Util.isArticlePage(location.href)) {
|
||||
if (!$('#articleSideShare .article__code').qrcode) {
|
||||
$.ajax({
|
||||
method: "GET",
|
||||
url: Label.staticServePath + '/js/lib/jquery.qrcode.min.js',
|
||||
dataType: "script",
|
||||
cache: true
|
||||
});
|
||||
}
|
||||
}
|
||||
Skin.initToc()
|
||||
})
|
||||
Skin.initToc()
|
||||
},
|
||||
initTags: function () {
|
||||
var $tags = $('#tags');
|
||||
var tagsArray = $tags.find('.tag')
|
||||
// 根据引用次数添加样式,产生云效果
|
||||
var max = parseInt(tagsArray.first().data('count'));
|
||||
var distance = Math.ceil(max / 5);
|
||||
for (var i = 0; i < tagsArray.length; i++) {
|
||||
var count = parseInt($(tagsArray[i]).data('count'));
|
||||
// 算出当前 tag 数目所在的区间,加上 class
|
||||
for (var j = 0; j < 5; j++) {
|
||||
if (count > j * distance && count <= (j + 1) * distance) {
|
||||
tagsArray[i].className = 'tag tag__level' + j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 按字母或者中文拼音进行排序
|
||||
$tags.html(tagsArray.get().sort(function (a, b) {
|
||||
var valA = $(a).text().toLowerCase();
|
||||
var valB = $(b).text().toLowerCase();
|
||||
// 对中英文排序的处理
|
||||
return valA.localeCompare(valB);
|
||||
}));
|
||||
},
|
||||
initArticle: function () {
|
||||
if ($('#articleShare').length === 0) {
|
||||
return
|
||||
}
|
||||
Skin._share('#articleShare')
|
||||
Skin._share('#articleSideShare')
|
||||
Skin._share('#articleBottomShare')
|
||||
|
||||
var $postSide = $('.post__side')
|
||||
if ($(window).height() >= $('.post').height()) {
|
||||
$postSide.css('opacity', 1)
|
||||
}
|
||||
$postSide.css('left', (($('.post').offset().left - 20) / 2 - 27) + 'px')
|
||||
|
||||
var sideAbsoluteTop = ($(window).height() - 249) / 2 + 125
|
||||
var beforScrollTop = $(window).scrollTop()
|
||||
$(window).scroll(function () {
|
||||
if ($('#articleShare').length === 0) {
|
||||
return
|
||||
}
|
||||
var scrollTop = $(window).scrollTop()
|
||||
var bottomTop = $('.article__bottom').offset().top
|
||||
if (scrollTop > 65) {
|
||||
$postSide.css('opacity', 1)
|
||||
|
||||
if (beforScrollTop - scrollTop > 0) {
|
||||
// up
|
||||
$('.header').addClass('header--fixed').css({'top': '0'})
|
||||
$('.main').css('padding-top', '64px')
|
||||
if ($(window).height() <= $('.post').height() && scrollTop < bottomTop - $(window).height()) {
|
||||
$('.article__toolbar').css({
|
||||
'bottom': 0,
|
||||
'opacity': 1
|
||||
})
|
||||
}
|
||||
} else if (beforScrollTop - scrollTop < 0) {
|
||||
// down
|
||||
$('.header').css({'top': '-64px'}).removeClass('header--fixed')
|
||||
$('.main').css('padding-top', '0')
|
||||
$('.article__toolbar').css({
|
||||
'bottom': '-44px',
|
||||
'opacity': 0
|
||||
})
|
||||
}
|
||||
|
||||
} else {
|
||||
if ($(window).height() <= $('.post').height()) {
|
||||
$postSide.css('opacity', 0)
|
||||
}
|
||||
|
||||
$('.header').removeClass('header--fixed').css('top', '-64px')
|
||||
$('.main').css('padding-top', '0')
|
||||
}
|
||||
|
||||
if (scrollTop > bottomTop - $(window).height()) {
|
||||
if (bottomTop < $(window).height()) {
|
||||
$postSide.css({
|
||||
'position': 'absolute',
|
||||
'top': (bottomTop - 125) + 'px'
|
||||
})
|
||||
} else {
|
||||
$postSide.css({
|
||||
'position': 'absolute',
|
||||
'top': (bottomTop - sideAbsoluteTop) + 'px'
|
||||
})
|
||||
}
|
||||
} else {
|
||||
$postSide.css({
|
||||
'position': 'fixed',
|
||||
'top': '50%'
|
||||
})
|
||||
}
|
||||
|
||||
beforScrollTop = scrollTop
|
||||
})
|
||||
|
||||
$(window).scroll()
|
||||
},
|
||||
_share: function (id) {
|
||||
var $this = $(id)
|
||||
var $qrCode = $this.find('.article__code')
|
||||
var shareURL = $qrCode.data('url')
|
||||
var avatarURL = $qrCode.data('avatar')
|
||||
var title = encodeURIComponent($qrCode.data('title') + ' - ' + $qrCode.data('blogtitle')),
|
||||
url = encodeURIComponent(shareURL)
|
||||
|
||||
var urls = {}
|
||||
urls.tencent = 'http://share.v.t.qq.com/index.php?c=share&a=index&title=' + title +
|
||||
'&url=' + url + '&pic=' + avatarURL
|
||||
urls.weibo = 'http://v.t.sina.com.cn/share/share.php?title=' +
|
||||
title + '&url=' + url + '&pic=' + avatarURL
|
||||
urls.qqz = 'https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url='
|
||||
+ url + '&sharesource=qzone&title=' + title + '&pics=' + avatarURL
|
||||
urls.twitter = 'https://twitter.com/intent/tweet?status=' + title + ' ' + url
|
||||
|
||||
$this.find('span').click(function () {
|
||||
var key = $(this).data('type')
|
||||
|
||||
if (!key) {
|
||||
return
|
||||
}
|
||||
|
||||
if (key === 'wechat') {
|
||||
if ($qrCode.find('canvas').length === 0) {
|
||||
$qrCode.qrcode({
|
||||
width: 128,
|
||||
height: 128,
|
||||
text: shareURL
|
||||
});
|
||||
} else {
|
||||
$qrCode.slideToggle();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
window.open(urls[key], '_blank', 'top=100,left=200,width=648,height=618')
|
||||
})
|
||||
},
|
||||
initToc: function () {
|
||||
if ($('.article__toc').length !== 0 && $(window).width() > 1000) {
|
||||
$('.article__toc').animate({
|
||||
'left': ($('.post').outerWidth() + $('.post').offset().left) + 'px'
|
||||
}, 600)
|
||||
} else {
|
||||
$('.article__toc').hide()
|
||||
}
|
||||
}
|
||||
};
|
||||
Skin.init();
|
|
@ -0,0 +1 @@
|
|||
var Skin={init:function(){var t=$(".article__toc");$(window).scroll(function(){1===t.length&&($(".article__bottom").offset().top<$(window).scrollTop()?t.hide():t.show()),0!==$("#headerNav").length&&(64<$(window).scrollTop()?($("#headerNav").addClass("header__nav--fixed"),$(".main").css("margin-top","100px")):($("#headerNav").removeClass("header__nav--fixed"),$(".main").css("margin-top","50px")))}),$(window).scroll(),Util.initPjax(function(){Util.parseMarkdown(),Util.isArticlePage(location.href)&&($("#articleSideShare .article__code").qrcode||$.ajax({method:"GET",url:Label.staticServePath+"/js/lib/jquery.qrcode.min.js",dataType:"script",cache:!0})),Skin.initToc()}),Skin.initToc()},initTags:function(){for(var t=$("#tags"),e=t.find(".tag"),i=parseInt(e.first().data("count")),o=Math.ceil(i/5),a=0;a<e.length;a++)for(var n=parseInt($(e[a]).data("count")),s=0;s<5;s++)if(s*o<n&&n<=(s+1)*o){e[a].className="tag tag__level"+s;break}t.html(e.get().sort(function(t,e){var i=$(t).text().toLowerCase(),o=$(e).text().toLowerCase();return i.localeCompare(o)}))},initArticle:function(){if(0!==$("#articleShare").length){Skin._share("#articleShare"),Skin._share("#articleSideShare"),Skin._share("#articleBottomShare");var i=$(".post__side");$(window).height()>=$(".post").height()&&i.css("opacity",1),i.css("left",($(".post").offset().left-20)/2-27+"px");var o=($(window).height()-249)/2+125,a=$(window).scrollTop();$(window).scroll(function(){if(0!==$("#articleShare").length){var t=$(window).scrollTop(),e=$(".article__bottom").offset().top;65<t?(i.css("opacity",1),0<a-t?($(".header").addClass("header--fixed").css({top:"0"}),$(".main").css("padding-top","64px"),$(window).height()<=$(".post").height()&&t<e-$(window).height()&&$(".article__toolbar").css({bottom:0,opacity:1})):a-t<0&&($(".header").css({top:"-64px"}).removeClass("header--fixed"),$(".main").css("padding-top","0"),$(".article__toolbar").css({bottom:"-44px",opacity:0}))):($(window).height()<=$(".post").height()&&i.css("opacity",0),$(".header").removeClass("header--fixed").css("top","-64px"),$(".main").css("padding-top","0")),t>e-$(window).height()?e<$(window).height()?i.css({position:"absolute",top:e-125+"px"}):i.css({position:"absolute",top:e-o+"px"}):i.css({position:"fixed",top:"50%"}),a=t}}),$(window).scroll()}},_share:function(t){var e=$(t),i=e.find(".article__code"),o=i.data("url"),a=i.data("avatar"),n=encodeURIComponent(i.data("title")+" - "+i.data("blogtitle")),s=encodeURIComponent(o),r={};r.tencent="http://share.v.t.qq.com/index.php?c=share&a=index&title="+n+"&url="+s+"&pic="+a,r.weibo="http://v.t.sina.com.cn/share/share.php?title="+n+"&url="+s+"&pic="+a,r.qqz="https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url="+s+"&sharesource=qzone&title="+n+"&pics="+a,r.twitter="https://twitter.com/intent/tweet?status="+n+" "+s,e.find("span").click(function(){var t=$(this).data("type");if(t)return"wechat"===t?(0===i.find("canvas").length?i.qrcode({width:128,height:128,text:o}):i.slideToggle(),!1):void window.open(r[t],"_blank","top=100,left=200,width=648,height=618")})},initToc:function(){0!==$(".article__toc").length&&1e3<$(window).width()?$(".article__toc").animate({left:$(".post").outerWidth()+$(".post").offset().left+"px"},600):$(".article__toc").hide()}};Skin.init();
|
|
@ -0,0 +1,66 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<#include "../../common-template/macro-common_head.ftl">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<@head title="${linkLabel} - ${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
<#include "header.ftl">
|
||||
<div id="pjax">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<#include "nav.ftl">
|
||||
<div class="main">
|
||||
<#if noticeBoard??>
|
||||
<div class="board">
|
||||
${noticeBoard}
|
||||
</div>
|
||||
</#if>
|
||||
<div class="wrapper content">
|
||||
<div class="module__title">
|
||||
<span>
|
||||
${links?size}
|
||||
<span class="ft-green ft-12">${linkLabel}</span>
|
||||
</span>
|
||||
</div>
|
||||
<#if 0 != links?size>
|
||||
<#list links as link>
|
||||
<div class="page__item">
|
||||
<h3>
|
||||
<a rel="friend" class="ft-gray" href="${link.linkAddress}" target="_blank">
|
||||
${link.linkTitle}
|
||||
<span class="ft-12 ft-green">${link.linkDescription}</span>
|
||||
</a>
|
||||
</h3>
|
||||
|
||||
</div>
|
||||
</#list>
|
||||
</#if>
|
||||
</div>
|
||||
<#include "bottom.ftl">
|
||||
</div>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,33 @@
|
|||
<#--
|
||||
|
||||
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 comments commentList article>
|
||||
<div class="article__comment">
|
||||
<div class="comment__title">${commentLabel}</div>
|
||||
<div id="comments">
|
||||
<#list commentList as comment>
|
||||
<#include 'common-comment.ftl'/>
|
||||
</#list>
|
||||
</div>
|
||||
<#if article.commentable>
|
||||
<textarea rows="3" placeholder="${postCommentsLabel}"
|
||||
class="comment__textarea" id="comment"></textarea>
|
||||
</#if>
|
||||
</div>
|
||||
</#macro>
|
|
@ -0,0 +1,78 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<nav id="headerNav" class="header__nav">
|
||||
<div class="wrapper">
|
||||
<a href="${servePath}">
|
||||
<svg>
|
||||
<use xlink:href="#icon-home"></use>
|
||||
</svg>
|
||||
${indexLabel}
|
||||
</a>
|
||||
<a href="${servePath}/tags.html" rel="section">
|
||||
<svg>
|
||||
<use xlink:href="#icon-tag"></use>
|
||||
</svg> ${allTagsLabel}
|
||||
</a>
|
||||
<a href="${servePath}/archives.html">
|
||||
<svg>
|
||||
<use xlink:href="#icon-bookmark"></use>
|
||||
</svg> ${archiveLabel}
|
||||
</a>
|
||||
|
||||
<#list pageNavigations as page>
|
||||
<a href="${page.pagePermalink}" target="${page.pageOpenTarget}" rel="section">
|
||||
<#if page.pageIcon != ''><img src="${page.pageIcon}"></#if> ${page.pageTitle}
|
||||
</a>
|
||||
</#list>
|
||||
|
||||
<a rel="archive" href="${servePath}/links.html">
|
||||
<svg>
|
||||
<use xlink:href="#icon-link"></use>
|
||||
</svg> ${linkLabel}
|
||||
</a>
|
||||
|
||||
<a rel="alternate" href="${servePath}/rss.xml" rel="section">
|
||||
<svg>
|
||||
<use xlink:href="#icon-feed"></use>
|
||||
</svg>
|
||||
RSS
|
||||
</a>
|
||||
<#if isLoggedIn>
|
||||
<a href="${servePath}/admin-index.do#main">
|
||||
<svg>
|
||||
<use xlink:href="#icon-setting"></use>
|
||||
</svg> ${adminLabel}
|
||||
</a>
|
||||
<a href="${logoutURL}">
|
||||
<svg>
|
||||
<use xlink:href="#icon-out"></use>
|
||||
</svg>
|
||||
${logoutLabel}
|
||||
</a>
|
||||
<#else>
|
||||
<a rel="alternate" href="${servePath}/start" rel="section">
|
||||
<svg>
|
||||
<use xlink:href="#icon-enter"></use>
|
||||
</svg>
|
||||
${startToUseLabel}
|
||||
</a>
|
||||
</#if>
|
||||
</div>
|
||||
</nav>
|
|
@ -0,0 +1,62 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<#include "../../common-template/macro-common_head.ftl">
|
||||
<#include "macro-comments.ftl">
|
||||
<#include "../../common-template/macro-comment_script.ftl">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<@head title="${page.pageTitle} - ${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
<#include "header.ftl">
|
||||
<div id="pjax">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<#include "nav.ftl">
|
||||
<div class="main">
|
||||
<#if noticeBoard??>
|
||||
<div class="board">
|
||||
${noticeBoard}
|
||||
</div>
|
||||
</#if>
|
||||
<div class="wrapper content">
|
||||
<article class="post">
|
||||
<section class="vditor-reset">
|
||||
${page.pageContent}
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
<div class="article__bottom">
|
||||
<@comments commentList=pageComments article=page></@comments>
|
||||
</div>
|
||||
<div style="margin-left: 20px;margin-right: 20px">
|
||||
<#include "bottom.ftl">
|
||||
</div>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<@comment_script oId=page.oId commentable=page.commentable></@comment_script>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,26 @@
|
|||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
#
|
||||
# Description: skin properties.
|
||||
# Version: 0.1.0.0, Mar 26, 2018
|
||||
# Author: Liyuan Li
|
||||
#
|
||||
|
||||
name=Casper
|
||||
memo=https://demo.ghost.io/
|
|
@ -0,0 +1,57 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<#include "../../common-template/macro-common_head.ftl">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<@head title="${tag.tagTitle} ${tagLabel} - ${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
<#include "header.ftl">
|
||||
<div id="pjax">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<#include "nav.ftl">
|
||||
<div class="main">
|
||||
<#if noticeBoard??>
|
||||
<div class="board">
|
||||
${noticeBoard}
|
||||
</div>
|
||||
</#if>
|
||||
<div class="wrapper content">
|
||||
<div class="module__title">
|
||||
<span>
|
||||
${tag.tagTitle}
|
||||
<span class="ft-green">
|
||||
${tag.tagPublishedRefCount}
|
||||
<span class="ft-12">${tagLabel}</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<#include "article-list.ftl">
|
||||
</div>
|
||||
<#include "bottom2.ftl">
|
||||
</div>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,67 @@
|
|||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<#include "../../common-template/macro-common_head.ftl">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<@head title="${allTagsLabel} - ${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
<#include "header.ftl">
|
||||
<div id="pjax">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<#include "nav.ftl">
|
||||
<div class="main">
|
||||
<#if noticeBoard??>
|
||||
<div class="board">
|
||||
${noticeBoard}
|
||||
</div>
|
||||
</#if>
|
||||
<div class="wrapper content">
|
||||
<div class="module__title">
|
||||
<span>
|
||||
${tags?size}
|
||||
<span class="ft-green ft-12">${tagLabel}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div id="tags">
|
||||
<#list tags as tag>
|
||||
<a rel="tag" data-count="${tag.tagPublishedRefCount}" class="tag"
|
||||
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}">
|
||||
${tag.tagTitle}
|
||||
<span class="ft-green ft-12">${tag.tagPublishedRefCount} ${countLabel}</span>
|
||||
</a>
|
||||
</#list>
|
||||
</div>
|
||||
</div>
|
||||
<#include "bottom.ftl">
|
||||
</div>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<script>
|
||||
Skin.initTags()
|
||||
</script>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue