Commit d2c0c0f3 authored by Liang Ding's avatar Liang Ding

💚 修复单元测试

parent 2cc18228
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 &gt; 0 && article_index &lt; 5>article__item--small
<#elseif article_index &gt; 4 && article_index &lt; 8>article__item--big
<#elseif article_index == 8 || article_index == 9>article__item--mid
<#elseif article_index &gt; 10 && article_index &lt; 15>article__item--small
<#elseif article_index &gt; 14 && article_index &lt; 18>article__item--big
<#elseif article_index &gt; 17 && article_index &lt; 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="content-reset article__content">
${article.articleAbstract}
</div>
</div>
<div class="article__meta ft-gray fn-flex">
<time>
${article.articleCreateDate?string("yyyy-MM-dd")}
</time> &nbsp;•&nbsp;
<a href="${servePath}${article.articlePermalink}#comments" class="ft-gray">
${article.articleCommentCount} ${commentLabel}
</a> &nbsp;•&nbsp;
<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}/${paginationPreviousPageNum}" class="pagination__item">&laquo;</a>
<a class="pagination__item" href="${servePath}${path}/1">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}/${paginationPageNum}">${paginationPageNum}</a>
</#if>
</#list>
<#if paginationPageNums?last != paginationPageCount>
<span class="pagination__item pagination__omit">...</span>
<a href="${servePath}${path}/${paginationPageCount}" class="pagination__item">${paginationPageCount}</a>
<a href="${servePath}${path}/${paginationNextPageNum}" class="pagination__item">&raquo;</a>
</#if>
</nav>
</#if>
\ No newline at end of file
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 "macro-head.ftl">
<#include "macro-comments.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${article.articleTitle} - ${blogTitle}">
<meta name="keywords" content="${article.articleTags}"/>
<meta name="description" content="${article.articleAbstract?html}"/>
</@head>
<#if previousArticlePermalink??>
<link rel="prev" title="${previousArticleTitle}" href="${servePath}${previousArticlePermalink}">
</#if>
<#if nextArticlePermalink??>
<link rel="next" title="${nextArticleTitle}" href="${servePath}${nextArticlePermalink}">
</#if>
<!-- Open Graph -->
<meta property="og:locale" content="zh_CN"/>
<meta property="og:type" content="article"/>
<meta property="og:title" content="${article.articleTitle}"/>
<meta property="og:description" content="${article.articleAbstract?html}"/>
<meta property="og:image" content="${article.authorThumbnailURL}"/>
<meta property="og:url" content="${servePath}${article.articlePermalink}"/>
<meta property="og:site_name" content="Solo"/>
<!-- Twitter Card -->
<meta name="twitter:card" content="summary"/>
<meta name="twitter:description" content="${article.articleAbstract?html}"/>
<meta name="twitter:title" content="${article.articleTitle}"/>
<meta name="twitter:image" content="${article.authorThumbnailURL}"/>
<meta name="twitter:url" content="${servePath}${article.articlePermalink}"/>
<meta name="twitter:site" content="@DL88250"/>
<meta name="twitter:creator" content="@DL88250"/>
</head>
<body>
<#include "header.ftl">
<div id="pjaxArticle">
<#if pjax><!---- pjax {#pjaxArticle} 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="content-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="pipe-tooltipped pipe-tooltipped--n post__share-icon ft-green"
onclick="$('#comment').focus()"
aria-label="${commentLabel}">
<svg>
<use xlink:href="#icon-comment"></use>
</svg>
${article.articleCommentCount} &nbsp; &nbsp;
</span>
<span id="articleShare">
<span class="post__share-icon" data-type="wechat">
<svg><use xlink:href="#icon-wechat"></use></svg>
</span> &nbsp; &nbsp;
<span class="post__share-icon" data-type="weibo">
<svg><use xlink:href="#icon-weibo"></use></svg>
</span> &nbsp; &nbsp;
<span class="post__share-icon" data-type="twitter">
<svg><use xlink:href="#icon-twitter"></use></svg>
</span> &nbsp; &nbsp;
<span class="post__share-icon" data-type="google">
<svg><use xlink:href="#icon-google"></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>
<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="pipe-tooltipped pipe-tooltipped--n post__share-icon ft-green"
onclick="$('#comment').focus()"
aria-label="${commentLabel}">
<svg>
<use xlink:href="#icon-comment"></use>
</svg>
${article.articleCommentCount} &nbsp; &nbsp;
</span>
<span id="articleBottomShare">
<span class="post__share-icon" data-type="wechat">
<svg><use xlink:href="#icon-wechat"></use></svg>
</span> &nbsp; &nbsp;
<span class="post__share-icon" data-type="weibo">
<svg><use xlink:href="#icon-weibo"></use></svg>
</span> &nbsp; &nbsp;
<span class="post__share-icon" data-type="twitter">
<svg><use xlink:href="#icon-twitter"></use></svg>
</span> &nbsp; &nbsp;
<span class="post__share-icon" data-type="google">
<svg><use xlink:href="#icon-google"></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="pipe-tooltipped pipe-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> &nbsp; &nbsp;
<span class="post__share-icon" data-type="weibo">
<svg><use xlink:href="#icon-weibo"></use></svg>
</span> &nbsp; &nbsp;
<span class="post__share-icon" data-type="twitter">
<svg><use xlink:href="#icon-twitter"></use></svg>
</span> &nbsp; &nbsp;
<span class="post__share-icon" data-type="google">
<svg><use xlink:href="#icon-google"></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>
<#if pjax><!---- pjax {#pjaxArticle} end ----></#if>
</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/jquery.qrcode${miniPostfix}.js"></script>
<script type="text/javascript"
src="${staticServePath}/skins/${skinDirName}/js/common${miniPostfix}.js?${staticResourceVersion}"
charset="utf-8"></script>
<script type="text/javascript">
var latkeConfig = {
"servePath": "${servePath}",
"staticServePath": "${staticServePath}",
"isLoggedIn": "${isLoggedIn?string}",
"userName": "${userName}"
};
var Label = {
"skinDirName": "${skinDirName}",
"em00Label": "${em00Label}",
"em01Label": "${em01Label}",
"em02Label": "${em02Label}",
"em03Label": "${em03Label}",
"em04Label": "${em04Label}",
"em05Label": "${em05Label}",
"em06Label": "${em06Label}",
"em07Label": "${em07Label}",
"em08Label": "${em08Label}",
"em09Label": "${em09Label}",
"em10Label": "${em10Label}",
"em11Label": "${em11Label}",
"em12Label": "${em12Label}",
"em13Label": "${em13Label}",
"em14Label": "${em14Label}"
};
Util.parseMarkdown('content-reset');
Skin.initArticle();
</script>
<@comment_script oId=article.oId>
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>
${plugins}
</body>
</html>
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 pipe-tooltipped pipe-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 pipe-tooltipped pipe-tooltipped--n"
aria-label="${tag.tagPublishedRefCount} ${countLabel}${articleLabel}"
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}">${tag.tagTitle}</a>
</#list>
</div>
</div>
</#if>
</div>
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 pipe-tooltipped pipe-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 pipe-tooltipped pipe-tooltipped--n"
aria-label="${tag.tagPublishedRefCount} ${countLabel}${articleLabel}"
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}">${tag.tagTitle}</a>
</#list>
</#if>
</div>
\ No newline at end of file
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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:replyTo('${comment.oId}')">
<svg><use xlink:href="#icon-reply"></use></svg> ${reply1Label}
</a>
</#if>
</div>
<div class="content-reset">
${comment.commentContent}
</div>
</main>
</div>
\ No newline at end of file
/**
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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 0.1.0.0, Jan 29, 2018
*/
/* start common */
html {
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
height: 100%
}
body {
margin: 0;
font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif;
-webkit-font-smoothing: antialiased
}
::-moz-selection {
text-shadow: none;
background: rgba(65, 131, 196, 0.4)
}
::selection {
text-shadow: none;
background: rgba(66, 133, 244, 0.4)
}
ul,
ol {
margin: 0;
padding: 0
}
h1,
h2,
h3,
h4,
h5,
h6,
dl,
dd,
p {
margin: 0
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section {
display: block
}
audio,
canvas,
video {
display: inline-block
}
audio:not([controls]) {
display: none
}
a {
outline: 0;
text-decoration: none;
color: #4285f4
}
a:hover {
text-decoration: underline
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline
}
sup {
top: -0.5em
}
sub {
bottom: -0.25em
}
img {
max-width: 100%;
vertical-align: middle;
border: 0;
height: auto;
-ms-interpolation-mode: bicubic
}
button,
input,
select,
textarea {
margin: 0;
font-size: 100%;
vertical-align: middle;
font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif;
outline: none
}
button,
input {
line-height: normal
}
button::-moz-focus-inner,
input::-moz-focus-inner {
padding: 0;
border: 0
}
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
cursor: pointer;
-webkit-appearance: button
}
input[type="search"] {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
-webkit-appearance: textfield
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
-webkit-appearance: none
}
textarea {
overflow: auto;
resize: vertical
}
svg {
fill: currentColor;
display: inline-block;
stroke-width: 0;
stroke: currentColor;
width: 14px;
height: 14px
}
blockquote {
margin: 0
}
.content-reset {
font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif;
word-wrap: break-word;
overflow: auto;
line-height: 1.5;
font-size: 16px;
word-break: break-all
}
.content-reset ul,
.content-reset ol {
padding-left: 2em;
margin-top: 0;
margin-bottom: 16px
}
.content-reset li {
margin-top: 0.25em
}
.content-reset h1,
.content-reset h2,
.content-reset h3,
.content-reset h4,
.content-reset h5,
.content-reset h6 {
margin-top: 24px;
margin-bottom: 16px;
font-weight: 600;
line-height: 1.25
}
.content-reset h1 {
padding-bottom: 0.3em;
font-size: 2em;
border-bottom: 1px solid #eee
}
.content-reset h2 {
padding-bottom: 0.3em;
font-size: 1.5em;
border-bottom: 1px solid #eee
}
.content-reset h3 {
font-size: 1.25em
}
.content-reset h4 {
font-size: 1em
}
.content-reset h5 {
font-size: 0.875em
}
.content-reset h6 {
font-size: 0.85em
}
.content-reset hr {
height: 0.25em;
padding: 0;
margin: 24px 0;
background-color: #e7e7e7;
border: 0
}
.content-reset p {
margin-top: 0;
margin-bottom: 16px
}
.content-reset blockquote {
padding: 0 1em;
color: #777;
border-left: 0.25em solid #ddd;
margin-bottom: 16px
}
.content-reset blockquote p {
margin: 0
}
.content-reset iframe {
border: 1px solid #ccc
}
.content-reset table {
width: 100%;
border: 1px solid #dedede;
margin: 15px auto;
border-collapse: collapse;
empty-cells: show
}
.content-reset thead {
text-align: center
}
.content-reset td,
.content-reset th {
height: 35px;
border: 1px solid #dedede;
padding: 0 10px
}
.content-reset th {
font-weight: bold;
text-align: center !important;
background: rgba(158, 188, 226, 0.2)
}
.content-reset tbody tr:nth-child(2n) {
background: rgba(158, 188, 226, 0.12)
}
.content-reset tr:hover {
background: #efefef
}
.content-reset code {
padding: 0.2em 0.4em;
margin: 0;
font-size: 85%;
background-color: rgba(252, 41, 41, 0.12);
border-radius: 3px;
color: #d23f31;
font-family: mononoki, Consolas, "Liberation Mono", Menlo, Courier, monospace
}
.content-reset pre > code {
padding: 0.5em;
border-radius: 0;
color: #333;
background-color: rgba(0, 0, 0, 0.04);
background-image: url(../images/code-bg.png);
background-size: 20px 20px;
border-radius: 5px
}
.content-reset kbd {
display: inline-block;
padding: 3px 5px;
font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb
}
.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
}
.pipe-tooltipped {
position: relative;
cursor: pointer
}
.pipe-tooltipped::after {
position: absolute;
z-index: 1000;
display: none;
padding: 5px 8px;
font-size: 11px;
font-weight: normal;
color: #fff;
text-align: center;
text-decoration: none;
text-shadow: none;
text-transform: none;
letter-spacing: normal;
word-wrap: break-word;
white-space: pre;
pointer-events: none;
content: attr(aria-label);
background: rgba(0, 0, 0, 0.8);
border-radius: 3px;
line-height: 16px;
opacity: 0
}
.pipe-tooltipped::before {
position: absolute;
z-index: 1000001;
display: none;
width: 0;
height: 0;
color: rgba(0, 0, 0, 0.8);
pointer-events: none;
content: "";
border: 5px solid transparent;
opacity: 0
}
@keyframes tooltip-appear {
from {
opacity: 0
}
to {
opacity: 1
}
}
.pipe-tooltipped:hover::before, .pipe-tooltipped:hover::after, .pipe-tooltipped:active::before, .pipe-tooltipped:active::after, .pipe-tooltipped:focus::before, .pipe-tooltipped:focus::after {
display: inline-block;
text-decoration: none;
animation-name: tooltip-appear;
animation-duration: 0.1s;
animation-fill-mode: forwards;
animation-timing-function: ease-in;
animation-delay: 0.4s
}
.pipe-tooltipped--s::after, .pipe-tooltipped--se::after, .pipe-tooltipped--sw::after {
top: 100%;
right: 50%;
margin-top: 5px
}
.pipe-tooltipped--s::before, .pipe-tooltipped--se::before, .pipe-tooltipped--sw::before {
top: auto;
right: 50%;
bottom: -5px;
margin-right: -5px;
border-bottom-color: rgba(0, 0, 0, 0.8)
}
.pipe-tooltipped--se::after {
right: auto;
left: 50%;
margin-left: -15px
}
.pipe-tooltipped--sw::after {
margin-right: -15px
}
.pipe-tooltipped--n::after, .pipe-tooltipped--ne::after, .pipe-tooltipped--nw::after {
right: 50%;
bottom: 100%;
margin-bottom: 5px
}
.pipe-tooltipped--n::before, .pipe-tooltipped--ne::before, .pipe-tooltipped--nw::before {
top: -5px;
right: 50%;
bottom: auto;
margin-right: -5px;
border-top-color: rgba(0, 0, 0, 0.8)
}
.pipe-tooltipped--ne::after {
right: auto;
left: 50%;
margin-left: -15px
}
.pipe-tooltipped--nw::after {
margin-right: -15px
}
.pipe-tooltipped--s::after, .pipe-tooltipped--n::after {
transform: translateX(50%)
}
.pipe-tooltipped--w::after {
right: 100%;
bottom: 50%;
margin-right: 5px;
transform: translateY(50%)
}
.pipe-tooltipped--w::before {
top: 50%;
bottom: 50%;
left: -5px;
margin-top: -5px;
border-left-color: rgba(0, 0, 0, 0.8)
}
.pipe-tooltipped--e::after {
bottom: 50%;
left: 100%;
margin-left: 5px;
transform: translateY(50%)
}
.pipe-tooltipped--e::before {
top: 50%;
right: -5px;
bottom: 50%;
margin-top: -5px;
border-right-color: rgba(0, 0, 0, 0.8)
}
.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;
}
.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 {
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__wrap {
margin-right: -20px
}
.article__item {
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 2px;
margin-bottom: 20px;
float: left
}
.article__item--big {
width: 318px;
margin-right: 20px
}
.article__item--big .article__main {
height: 275px;
overflow: hidden;
margin-bottom: 10px
}
.article__item--small {
width: 318px;
margin-right: 20px
}
.article__item--small .article__main {
height: 94px;
overflow: hidden;
margin-bottom: 10px
}
.article__item--mid {
width: 488px;
margin-right: 20px
}
.article__item--mid .article__main {
height: 195px;
overflow: hidden;
margin-bottom: 10px
}
.article__panel {
padding: 16px
}
.article__title {
overflow: hidden;
line-height: 24px;
font-size: 21px;
font-weight: 600;
word-break: break-all
}
.article__title a {
color: rgba(0, 0, 0, 0.84)
}
.article__title a:hover {
text-decoration: none
}
.article__title sup {
top: -6px;
font-size: 12px;
color: #03a87c;
}
.article__content {
margin-top: 4px;
font-size: 16px;
color: rgba(0, 0, 0, 0.54);
overflow: hidden;
line-height: 23px;
word-break: break-all;
}
.article__meta {
font-size: 15px;
line-height: 23px;
}
/* end article list */
/* start article */
.b3-solo-list {
display: none;
}
.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
}
.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;
margin: 0 0 20px;
}
.article__comment .comment__avatar {
position: absolute;
height: 57px;
width: 57px;
display: inline-block;
z-index: 10;
border: 2px solid rgb(255, 255, 255);
border-radius: 50%;
}
.article__comment .comment__body {
padding-left: 81px;
}
.article__comment .comment__body svg.ft-gray {
height: 12px;
width: 12px;
vertical-align: text-top;
margin-left: 5px;
}
.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;
}
.em00, .em01, .em02, .em03, .em04, .em05, .em06, .em07, .em08, .em09, .em10, .em11, .em12, .em13, .em14 {
cursor: pointer;
background-image: url(../../../images/emotions/emotions.png);
background-size: 120px;
float: left;
height: 24px;
margin-right: 10px;
margin-bottom: 5px;
width: 24px;
transition: all .2s ease-out;
-webkit-transition: all .2s ease-out;
-moz-transition: all .2s ease-out
}
#emotions span:hover {
transform: scale(1.2) rotate(360deg);
-webkit-transform: scale(1.2) rotate(360deg);
-moz-transform: scale(1.2) rotate(360deg)
}
.em01 {
background-position: -24px 0
}
.em02 {
background-position: -48px 0
}
.em03 {
background-position: -72px 0
}
.em04 {
background-position: -96px 0
}
.em05 {
background-position: 0 -24px
}
.em06 {
background-position: -24px -24px
}
.em07 {
background-position: -48px -24px
}
.em08 {
background-position: -72px -24px
}
.em09 {
background-position: -96px -24px
}
.em10 {
background-position: 0 -48px
}
.em11 {
background-position: -24px -48px
}
.em12 {
background-position: -48px -48px
}
.em13 {
background-position: -72px -48px
}
.em14 {
background-position: -96px -48px
}
#commentForm,
#replyForm {
width: 100%;
}
#replyForm {
margin-top: 20px;
}
.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;
}
.captcha {
height: 35px;
margin: -5px 0 0 7px;
border: 1px solid rgba(0, 0, 0, 0.04);
border-radius: 3px;
}
#submitCommentButton,
#submitCommentButtonReply {
background-color: #fff;
border: 1px solid #03a87c;
color: #03a87c;
border-radius: 3px;
padding: 5px 10px;
transition: all 0.1s;
}
#submitCommentButton:hover,
#submitCommentButtonReply:hover {
background-color: #fff;
border-color: #018f69;
color: #018f69;
}
.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: 14px;
margin-top: 7px;
color: rgba(0, 0, 0, 0.84);
font-size: 18px;
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
}
.emotions span {
margin: 0;
transform: scale(0.7);
}
.article__comment .comment__body {
padding-left: 0;
}
}
/* Make clicks pass-through */
#nprogress {
pointer-events: none;
}
#nprogress .bar {
background: #d23f31;
position: fixed;
z-index: 1031;
top: 0;
left: 0;
width: 100%;
height: 2px;
}
/* Fancy blur effect */
#nprogress .peg {
display: block;
position: absolute;
right: 0px;
width: 100px;
height: 100%;
box-shadow: 0 0 10px #d23f31, 0 0 5px #d23f31;
opacity: 1.0;
-webkit-transform: rotate(3deg) translate(0px, -4px);
-ms-transform: rotate(3deg) translate(0px, -4px);
transform: rotate(3deg) translate(0px, -4px);
}
/* Remove these to get rid of the spinner */
#nprogress .spinner {
display: block;
position: fixed;
z-index: 1031;
top: 15px;
right: 15px;
}
#nprogress .spinner-icon {
width: 18px;
height: 18px;
box-sizing: border-box;
border: solid 2px transparent;
border-top-color: #d23f31;
border-left-color: #d23f31;
border-radius: 50%;
-webkit-animation: nprogress-spinner 400ms linear infinite;
animation: nprogress-spinner 400ms linear infinite;
}
.nprogress-custom-parent {
overflow: hidden;
position: relative;
}
.nprogress-custom-parent #nprogress .spinner,
.nprogress-custom-parent #nprogress .bar {
position: absolute;
}
@-webkit-keyframes nprogress-spinner {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@keyframes nprogress-spinner {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/**
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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/>.
*/
blockquote,body,dd,dl,h1,h2,h3,h4,h5,h6,ol,p,ul{margin:0}.content-reset,body,button,input,select,textarea{font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif}.ft-green,.header,.header__a,.header__icon,.post__view,.tag{transition:all .1s}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;height:100%}body{-webkit-font-smoothing:antialiased}::-moz-selection{text-shadow:none;background:rgba(65,131,196,.4)}::selection{text-shadow:none;background:rgba(66,133,244,.4)}ol,ul{padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none}a{outline:0;text-decoration:none;color:#4285f4}a:hover{text-decoration:underline}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{max-width:100%;vertical-align:middle;border:0;height:auto;-ms-interpolation-mode:bicubic}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;outline:0}button,input{line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}.content-reset h1,.content-reset h2{padding-bottom:.3em;border-bottom:1px solid #eee}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}svg{fill:currentColor;display:inline-block;stroke-width:0;stroke:currentColor;width:14px;height:14px}.content-reset{word-wrap:break-word;overflow:auto;line-height:1.5;font-size:16px;word-break:break-all}.content-reset ol,.content-reset ul{padding-left:2em;margin-top:0;margin-bottom:16px}.content-reset li{margin-top:.25em}.content-reset h1,.content-reset h2,.content-reset h3,.content-reset h4,.content-reset h5,.content-reset h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.content-reset h1{font-size:2em}.content-reset h2{font-size:1.5em}.content-reset h3{font-size:1.25em}.content-reset h4{font-size:1em}.content-reset h5{font-size:.875em}.content-reset h6{font-size:.85em}.content-reset hr{height:.25em;padding:0;margin:24px 0;background-color:#e7e7e7;border:0}.content-reset p{margin-top:0;margin-bottom:16px}.content-reset blockquote{padding:0 1em;color:#777;border-left:.25em solid #ddd;margin-bottom:16px}.content-reset blockquote p{margin:0}.content-reset iframe{border:1px solid #ccc}.content-reset table{width:100%;border:1px solid #dedede;margin:15px auto;border-collapse:collapse;empty-cells:show}.content-reset thead{text-align:center}.content-reset td,.content-reset th{height:35px;border:1px solid #dedede;padding:0 10px}.content-reset th{font-weight:700;text-align:center!important;background:rgba(158,188,226,.2)}.board,.header,.pagination__item,.post__side{text-align:center}.content-reset tbody tr:nth-child(2n){background:rgba(158,188,226,.12)}.content-reset tr:hover{background:#efefef}.content-reset code{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(252,41,41,.12);border-radius:3px;color:#d23f31;font-family:mononoki,Consolas,"Liberation Mono",Menlo,Courier,monospace}.content-reset pre>code{padding:.5em;color:#333;background-color:rgba(0,0,0,.04);background-image:url(../images/code-bg.png);background-size:20px 20px;border-radius:5px}.content-reset kbd{display:inline-block;padding:3px 5px;font:11px Consolas,"Liberation Mono",Menlo,Courier,monospace;line-height:10px;color:#555;vertical-align:middle;background-color:#fcfcfc;border:1px solid #ccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.ft-12,.tag{font-weight:400}.fn-flex{display:flex}.fn-flex-1{flex:1;min-width:1px}.fn-clear:after,.fn-clear:before{display:table;content:""}.fn-clear:after{clear:both}.fn-left{float:left}.fn-right{float:right}.ft-12{font-size:12px}.ft-gray{color:rgba(0,0,0,.54)}.ft-fade{color:rgba(0,0,0,.38)}.ft-green{color:#03a87c!important}.ft-green:hover{color:#018f69!important}.pipe-tooltipped{position:relative;cursor:pointer}.pipe-tooltipped::after,.pipe-tooltipped::before{position:absolute;display:none;opacity:0;pointer-events:none}.pipe-tooltipped::after{z-index:1000;padding:5px 8px;font-size:11px;font-weight:400;color:#fff;text-align:center;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;content:attr(aria-label);background:rgba(0,0,0,.8);border-radius:3px;line-height:16px}.pipe-tooltipped::before{z-index:1000001;width:0;height:0;color:rgba(0,0,0,.8);content:"";border:5px solid transparent}.header h1,.header__icon.avatar,.tag{display:inline-block}.tag,.tag:hover{color:rgba(0,0,0,.68)}@keyframes tooltip-appear{from{opacity:0}to{opacity:1}}.pipe-tooltipped:active::after,.pipe-tooltipped:active::before,.pipe-tooltipped:focus::after,.pipe-tooltipped:focus::before,.pipe-tooltipped:hover::after,.pipe-tooltipped:hover::before{display:inline-block;text-decoration:none;animation-name:tooltip-appear;animation-duration:.1s;animation-fill-mode:forwards;animation-timing-function:ease-in;animation-delay:.4s}.pipe-tooltipped--s::after,.pipe-tooltipped--se::after,.pipe-tooltipped--sw::after{top:100%;right:50%;margin-top:5px}.pipe-tooltipped--s::before,.pipe-tooltipped--se::before,.pipe-tooltipped--sw::before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.pipe-tooltipped--se::after{right:auto;left:50%;margin-left:-15px}.pipe-tooltipped--sw::after{margin-right:-15px}.pipe-tooltipped--n::after,.pipe-tooltipped--ne::after,.pipe-tooltipped--nw::after{right:50%;bottom:100%;margin-bottom:5px}.pipe-tooltipped--n::before,.pipe-tooltipped--ne::before,.pipe-tooltipped--nw::before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.pipe-tooltipped--ne::after{right:auto;left:50%;margin-left:-15px}.pipe-tooltipped--nw::after{margin-right:-15px}.pipe-tooltipped--n::after,.pipe-tooltipped--s::after{transform:translateX(50%)}.pipe-tooltipped--w::after{right:100%;bottom:50%;margin-right:5px;transform:translateY(50%)}.pipe-tooltipped--w::before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.pipe-tooltipped--e::after{bottom:50%;left:100%;margin-left:5px;transform:translateY(50%)}.pipe-tooltipped--e::before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.tag{background-color:rgba(0,0,0,.05);padding:5px 10px;line-height:22px;border-radius:3px;white-space:nowrap;margin:0 8px 8px 0;font-size:15px}.tag__level0,.tag__level1,.tag__level2,.tag__level3,.tag__level4{line-height:inherit}.tag:hover{text-decoration:none;background:rgba(0,0,0,.1)}.header__icon.avatar,.header__logo{background-size:cover;background-repeat:no-repeat;background-position:center center}.tag__level0{font-size:12px;color:rgba(0,0,0,.38)}.tag__level1{font-size:16px;color:rgba(0,0,0,.54)}.tag__level2{font-size:21px;color:#6f6f6f}.tag__level3{font-size:24px;color:#3b3e43}.tag__level4{font-size:30px;color:#000}.module__title{border-bottom:1px solid rgba(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,.54);position:absolute;padding-bottom:20px;height:26px}.header--fixed,.header__nav--fixed{position:fixed;background-color:#fff;box-shadow:0 2px 2px -2px rgba(0,0,0,.15)}.header,.header__nav{padding:0 20px;box-sizing:border-box}.wrapper{max-width:1000px;margin:0 auto;box-sizing:border-box}.article__toolbar .wrapper,.post{max-width:740px}.header{height:64px;z-index:11}.header h1{line-height:61px}.header--fixed{width:100%;top:-64px}.header__logo{float:left;height:32px;width:32px;margin:16px 0}.header__title{font-size:26px;color:rgba(0,0,0,.84)}.header__title:hover{text-decoration:none}.header__icon{color:rgba(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,.68)}.header__icon svg{height:16px;width:16px}.header__icon.avatar{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;line-height:32px}.footer,.footer__tag{margin-top:50px}.header__a:hover{text-decoration:none;color:#018f69;border-color:#018f69}.header__nav{height:50px}.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,.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;width:100%;top:0}.post,.post__share #articleShare{position:relative}.article__item--big,.article__item--small{width:318px;margin-right:20px}.footer{padding:10px 20px 25px;font-size:14px;border-top:1px solid rgba(0,0,0,.05);color:rgba(0,0,0,.38)}.footer a,.footer__tag li a{color:rgba(0,0,0,.54)}.footer__tag>div{margin-right:20px}.footer__tag>div:last-child{margin-right:0}.footer__tag li{list-style:none}.footer__tag li a{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,.68)}.main{margin:50px 20px 0}.main .content{margin-top:50px}.board{padding:12px 0}.article__wrap{margin-right:-20px}.article__item{border:1px solid rgba(0,0,0,.1);border-radius:2px;margin-bottom:20px;float:left}.article__item--big .article__main{height:275px;overflow:hidden;margin-bottom:10px}.article__item--small .article__main{height:94px;overflow:hidden;margin-bottom:10px}.article__item--mid{width:488px;margin-right:20px}.article__item--mid .article__main{height:195px;overflow:hidden;margin-bottom:10px}.article__panel{padding:16px}.article__title{overflow:hidden;line-height:24px;font-size:21px;font-weight:600;word-break:break-all}.article__title a{color:rgba(0,0,0,.84)}.article__title a:hover{text-decoration:none}.article__title sup{top:-6px;font-size:12px;color:#03a87c}.article__content{margin-top:4px;font-size:16px;color:rgba(0,0,0,.54);overflow:hidden;line-height:23px;word-break:break-all}.article__meta{font-size:15px;line-height:23px}.b3-solo-list{display:none}.post{margin:50px auto 20px}.post__main{margin:20px 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,.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 .article__code{position:absolute;height:130px;width:130px;left:-2px;top:22px}.post__share-icon{color:rgba(0,0,0,.54);cursor:pointer}.post__share-icon:hover{color:rgba(0,0,0,.68)}.post__view{color:#03a87c}.post__view:hover{color:#018f69;text-decoration:none}.post__side{position:fixed;top:50%;left:10%;width:55px;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}.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,.68)}.article__comment .comment__item{background-color:#fff;box-shadow:rgba(0,0,0,.04) 0 1px 4px;border:1px solid rgba(0,0,0,.09);border-radius:3px;padding:10px 20px;margin:0 0 20px}.article__comment .comment__avatar{position:absolute;height:57px;width:57px;display:inline-block;z-index:10;border:2px solid #fff;border-radius:50%}.article__comment .comment__body{padding-left:81px}.article__comment .comment__body svg.ft-gray{height:12px;width:12px;vertical-align:text-top;margin-left:5px}.article__comment .comment__user,.article__comment .comment__user a{color:#03a87c}.article__comment .comment__user a:hover{color:#018f69;text-decoration:none}.comment-body-ref{position:absolute;width:559px;box-sizing:border-box;left:101px}.comment-body-ref .ft-green{display:none}.em00,.em01,.em02,.em03,.em04,.em05,.em06,.em07,.em08,.em09,.em10,.em11,.em12,.em13,.em14{cursor:pointer;background-image:url(../../../images/emotions/emotions.png);background-size:120px;float:left;height:24px;margin-right:10px;margin-bottom:5px;width:24px;transition:all .2s ease-out;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out}#emotions span:hover{transform:scale(1.2) rotate(360deg);-webkit-transform:scale(1.2) rotate(360deg);-moz-transform:scale(1.2) rotate(360deg)}.em01{background-position:-24px 0}.em02{background-position:-48px 0}.em03{background-position:-72px 0}.em04{background-position:-96px 0}.em05{background-position:0 -24px}.em06{background-position:-24px -24px}.em07{background-position:-48px -24px}.em08{background-position:-72px -24px}.em09{background-position:-96px -24px}.em10{background-position:0 -48px}.em11{background-position:-24px -48px}.em12{background-position:-48px -48px}.em13{background-position:-72px -48px}.em14{background-position:-96px -48px}#commentForm,#replyForm{width:100%}#replyForm{margin-top:20px}.comment__textarea{background-color:#fff;box-shadow:rgba(0,0,0,.04) 0 1px 4px;border:1px solid rgba(0,0,0,.09);border-radius:3px;padding:10px;margin:0 0 5px;width:100%;box-sizing:border-box}.captcha{height:35px;margin:-5px 0 0 7px;border:1px solid rgba(0,0,0,.04);border-radius:3px}#submitCommentButton,#submitCommentButtonReply{background-color:#fff;border:1px solid #03a87c;color:#03a87c;border-radius:3px;padding:5px 10px;transition:all .1s}#submitCommentButton:hover,#submitCommentButtonReply:hover{background-color:#fff;border-color:#018f69;color:#018f69}.article__toolbar{box-shadow:0 0 1px rgba(0,0,0,.54);position:fixed;bottom:-44px;width:100%;background-color:#fff;height:44px;font-size:16px;line-height:44px;transition:all .1s;opacity:0}.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,.38);line-height:14px;margin-top:7px;color:rgba(0,0,0,.84);font-size:18px;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,.54)}.pagination{margin-top:30px;font-size:16px;border-top:1px solid rgba(0,0,0,.15)}.pagination__item{border-top:1px solid transparent;transition:all .1s;display:inline-block;position:relative;top:-1px;margin:0 10px;padding:0 10px;line-height:30px;color:rgba(0,0,0,.54)}.pagination__item:hover{border-top-color:rgba(0,0,0,.54);color:rgba(0,0,0,.84);text-decoration:none}.pagination__item--active{background:rgba(0,0,0,.05);border-top-color:rgba(0,0,0,.54)}.pagination__item--active:hover{color:rgba(0,0,0,.54);border-top-color:rgba(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,.05);padding:40px 0 35px}@media (max-width:768px){.header{text-align:left}#articleBottomShare,#articleShare,.article__comment .comment__avatar,.article__next,.header__logo,.post__side{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,.pagination__item{margin:0}.emotions span{margin:0;transform:scale(.7)}.article__comment .comment__body{padding-left:0}}#nprogress{pointer-events:none}#nprogress .bar{background:#d23f31;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #d23f31,0 0 5px #d23f31;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#d23f31;border-left-color:#d23f31;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
\ No newline at end of file
{
"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
}
}
\ No newline at end of file
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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-google" viewBox="0 0 32 32"><path d="M19.958 16.236q0 2.889-1.208 5.146t-3.444 3.528-5.125 1.271q-2.069 0-3.958-0.806t-3.25-2.167-2.167-3.25-0.806-3.958 0.806-3.958 2.167-3.25 3.25-2.167 3.958-0.806q3.972 0 6.819 2.667l-2.764 2.653q-1.625-1.569-4.056-1.569-1.708 0-3.16 0.861t-2.299 2.34-0.847 3.229 0.847 3.229 2.299 2.34 3.16 0.861q1.153 0 2.118-0.319t1.59-0.799 1.090-1.090 0.681-1.153 0.299-1.028h-5.778v-3.5h9.611q0.167 0.875 0.167 1.694zM32 14.542v2.917h-2.903v2.903h-2.917v-2.903h-2.903v-2.917h2.903v-2.903h2.917v2.903h2.903z"></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="pipe-tooltipped pipe-tooltipped--w header__icon">
<svg>
<use xlink:href="#icon-search"></use>
</svg>
</a>
<#if isLoggedIn>
<a class="avatar pipe-tooltipped pipe-tooltipped--w header__icon" aria-label="${adminLabel}"
href="${servePath}/admin-index.do#main"
style="background-image: url(${adminUser.userAvatar});"></a>
<#else>
<a href="${loginURL}" class="header__a">
${loginLabel}
</a>
</#if>
</div>
</div>
</header>
\ No newline at end of file
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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.0, Jan 29, 2018
*/
/**
* @description 皮肤脚本
* @static
*/
var Skin = {
init: function () {
$('body').on('click', '.content-reset img', function () {
window.open(this.src);
});
$(window).scroll(function () {
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('content-reset');
if (location.href === latkeConfig.servePath + '/tags.html') {
Skin.initTags()
}
}, function () {
Util.parseMarkdown('content-reset');
Skin.initArticle();
Skin.initComment($('.post__tags').data('oid'), $('.post__tags').data('tag'))
})
},
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 () {
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 () {
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.google = 'https://plus.google.com/share?url=' + url
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')
})
}
};
Skin.init();
\ No newline at end of file
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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/>.
*/
var Skin={init:function(){$("body").on("click",".content-reset img",function(){window.open(this.src)}),$(window).scroll(function(){0!==$("#headerNav").length&&($(window).scrollTop()>64?($("#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("content-reset"),location.href===latkeConfig.servePath+"/tags.html"&&Skin.initTags()},function(){Util.parseMarkdown("content-reset"),Skin.initArticle(),Skin.initComment($(".post__tags").data("oid"),$(".post__tags").data("tag"))})},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(n>s*o&&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(){Skin._share("#articleShare"),Skin._share("#articleSideShare"),Skin._share("#articleBottomShare");var t=$(".post__side");$(window).height()>=$(".post").height()&&t.css("opacity",1),t.css("left",($(".post").offset().left-20)/2-27+"px");var e=($(window).height()-249)/2+125,i=$(window).scrollTop();$(window).scroll(function(){var o=$(window).scrollTop(),a=$(".article__bottom").offset().top;o>65?(t.css("opacity",1),i-o>0?($(".header").addClass("header--fixed").css({top:"0"}),$(".main").css("padding-top","64px"),$(window).height()<=$(".post").height()&&o<a-$(window).height()&&$(".article__toolbar").css({bottom:0,opacity:1})):i-o<0&&($(".header").css({top:"-64px"}).removeClass("header--fixed"),$(".main").css("padding-top","0"),$(".article__toolbar").css({bottom:"-44px",opacity:0}))):($(window).height()<=$(".post").height()&&t.css("opacity",0),$(".header").removeClass("header--fixed").css("top","-64px"),$(".main").css("padding-top","0")),o>a-$(window).height()?a<$(window).height()?t.css({position:"absolute",top:a-125+"px"}):t.css({position:"absolute",top:a-e+"px"}):t.css({position:"fixed",top:"50%"}),i=o}),$(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.google="https://plus.google.com/share?url="+s,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")})}};Skin.init();
\ No newline at end of file
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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/>.
*/
(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=0;this.dataCache=null;this.dataList=[]}function q(a,c){if(void 0==a.length)throw Error(a.length+"/"+c);for(var d=0;d<a.length&&0==a[d];)d++;this.num=Array(a.length-d+c);for(var b=0;b<a.length-d;b++)this.num[b]=a[b+d]}function p(a,c){this.totalCount=a;this.dataCount=c}function t(){this.buffer=[];this.length=0}u.prototype={getLength:function(){return this.data.length},
write:function(a){for(var c=0;c<this.data.length;c++)a.put(this.data.charCodeAt(c),8)}};o.prototype={addData:function(a){this.dataList.push(new u(a));this.dataCache=null},isDark:function(a,c){if(0>a||this.moduleCount<=a||0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var a=1,a=1;40>a;a++){for(var c=p.getRSBlocks(a,this.errorCorrectLevel),d=new t,b=0,e=0;e<c.length;e++)b+=c[e].dataCount;
for(e=0;e<this.dataList.length;e++)c=this.dataList[e],d.put(c.mode,4),d.put(c.getLength(),j.getLengthInBits(c.mode,a)),c.write(d);if(d.getLengthInBits()<=8*b)break}this.typeNumber=a}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17;this.modules=Array(this.moduleCount);for(var d=0;d<this.moduleCount;d++){this.modules[d]=Array(this.moduleCount);for(var b=0;b<this.moduleCount;b++)this.modules[d][b]=null}this.setupPositionProbePattern(0,0);this.setupPositionProbePattern(this.moduleCount-
7,0);this.setupPositionProbePattern(0,this.moduleCount-7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(a,c);7<=this.typeNumber&&this.setupTypeNumber(a);null==this.dataCache&&(this.dataCache=o.createData(this.typeNumber,this.errorCorrectLevel,this.dataList));this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,c){for(var d=-1;7>=d;d++)if(!(-1>=a+d||this.moduleCount<=a+d))for(var b=-1;7>=b;b++)-1>=c+b||this.moduleCount<=c+b||(this.modules[a+d][c+b]=
0<=d&&6>=d&&(0==b||6==b)||0<=b&&6>=b&&(0==d||6==d)||2<=d&&4>=d&&2<=b&&4>=b?!0:!1)},getBestMaskPattern:function(){for(var a=0,c=0,d=0;8>d;d++){this.makeImpl(!0,d);var b=j.getLostPoint(this);if(0==d||a>b)a=b,c=d}return c},createMovieClip:function(a,c,d){a=a.createEmptyMovieClip(c,d);this.make();for(c=0;c<this.modules.length;c++)for(var d=1*c,b=0;b<this.modules[c].length;b++){var e=1*b;this.modules[c][b]&&(a.beginFill(0,100),a.moveTo(e,d),a.lineTo(e+1,d),a.lineTo(e+1,d+1),a.lineTo(e,d+1),a.endFill())}return a},
setupTimingPattern:function(){for(var a=8;a<this.moduleCount-8;a++)null==this.modules[a][6]&&(this.modules[a][6]=0==a%2);for(a=8;a<this.moduleCount-8;a++)null==this.modules[6][a]&&(this.modules[6][a]=0==a%2)},setupPositionAdjustPattern:function(){for(var a=j.getPatternPosition(this.typeNumber),c=0;c<a.length;c++)for(var d=0;d<a.length;d++){var b=a[c],e=a[d];if(null==this.modules[b][e])for(var f=-2;2>=f;f++)for(var i=-2;2>=i;i++)this.modules[b+f][e+i]=-2==f||2==f||-2==i||2==i||0==f&&0==i?!0:!1}},setupTypeNumber:function(a){for(var c=
j.getBCHTypeNumber(this.typeNumber),d=0;18>d;d++){var b=!a&&1==(c>>d&1);this.modules[Math.floor(d/3)][d%3+this.moduleCount-8-3]=b}for(d=0;18>d;d++)b=!a&&1==(c>>d&1),this.modules[d%3+this.moduleCount-8-3][Math.floor(d/3)]=b},setupTypeInfo:function(a,c){for(var d=j.getBCHTypeInfo(this.errorCorrectLevel<<3|c),b=0;15>b;b++){var e=!a&&1==(d>>b&1);6>b?this.modules[b][8]=e:8>b?this.modules[b+1][8]=e:this.modules[this.moduleCount-15+b][8]=e}for(b=0;15>b;b++)e=!a&&1==(d>>b&1),8>b?this.modules[8][this.moduleCount-
b-1]=e:9>b?this.modules[8][15-b-1+1]=e:this.modules[8][15-b-1]=e;this.modules[this.moduleCount-8][8]=!a},mapData:function(a,c){for(var d=-1,b=this.moduleCount-1,e=7,f=0,i=this.moduleCount-1;0<i;i-=2)for(6==i&&i--;;){for(var g=0;2>g;g++)if(null==this.modules[b][i-g]){var n=!1;f<a.length&&(n=1==(a[f]>>>e&1));j.getMask(c,b,i-g)&&(n=!n);this.modules[b][i-g]=n;e--; -1==e&&(f++,e=7)}b+=d;if(0>b||this.moduleCount<=b){b-=d;d=-d;break}}}};o.PAD0=236;o.PAD1=17;o.createData=function(a,c,d){for(var c=p.getRSBlocks(a,
c),b=new t,e=0;e<d.length;e++){var f=d[e];b.put(f.mode,4);b.put(f.getLength(),j.getLengthInBits(f.mode,a));f.write(b)}for(e=a=0;e<c.length;e++)a+=c[e].dataCount;if(b.getLengthInBits()>8*a)throw Error("code length overflow. ("+b.getLengthInBits()+">"+8*a+")");for(b.getLengthInBits()+4<=8*a&&b.put(0,4);0!=b.getLengthInBits()%8;)b.putBit(!1);for(;!(b.getLengthInBits()>=8*a);){b.put(o.PAD0,8);if(b.getLengthInBits()>=8*a)break;b.put(o.PAD1,8)}return o.createBytes(b,c)};o.createBytes=function(a,c){for(var d=
0,b=0,e=0,f=Array(c.length),i=Array(c.length),g=0;g<c.length;g++){var n=c[g].dataCount,h=c[g].totalCount-n,b=Math.max(b,n),e=Math.max(e,h);f[g]=Array(n);for(var k=0;k<f[g].length;k++)f[g][k]=255&a.buffer[k+d];d+=n;k=j.getErrorCorrectPolynomial(h);n=(new q(f[g],k.getLength()-1)).mod(k);i[g]=Array(k.getLength()-1);for(k=0;k<i[g].length;k++)h=k+n.getLength()-i[g].length,i[g][k]=0<=h?n.get(h):0}for(k=g=0;k<c.length;k++)g+=c[k].totalCount;d=Array(g);for(k=n=0;k<b;k++)for(g=0;g<c.length;g++)k<f[g].length&&
(d[n++]=f[g][k]);for(k=0;k<e;k++)for(g=0;g<c.length;g++)k<i[g].length&&(d[n++]=i[g][k]);return d};s=4;for(var j={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,
78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(a){for(var c=a<<10;0<=j.getBCHDigit(c)-j.getBCHDigit(j.G15);)c^=j.G15<<j.getBCHDigit(c)-j.getBCHDigit(j.G15);return(a<<10|c)^j.G15_MASK},getBCHTypeNumber:function(a){for(var c=a<<12;0<=j.getBCHDigit(c)-
j.getBCHDigit(j.G18);)c^=j.G18<<j.getBCHDigit(c)-j.getBCHDigit(j.G18);return a<<12|c},getBCHDigit:function(a){for(var c=0;0!=a;)c++,a>>>=1;return c},getPatternPosition:function(a){return j.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,c,d){switch(a){case 0:return 0==(c+d)%2;case 1:return 0==c%2;case 2:return 0==d%3;case 3:return 0==(c+d)%3;case 4:return 0==(Math.floor(c/2)+Math.floor(d/3))%2;case 5:return 0==c*d%2+c*d%3;case 6:return 0==(c*d%2+c*d%3)%2;case 7:return 0==(c*d%3+(c+d)%2)%2;default:throw Error("bad maskPattern:"+
a);}},getErrorCorrectPolynomial:function(a){for(var c=new q([1],0),d=0;d<a;d++)c=c.multiply(new q([1,l.gexp(d)],0));return c},getLengthInBits:function(a,c){if(1<=c&&10>c)switch(a){case 1:return 10;case 2:return 9;case s:return 8;case 8:return 8;default:throw Error("mode:"+a);}else if(27>c)switch(a){case 1:return 12;case 2:return 11;case s:return 16;case 8:return 10;default:throw Error("mode:"+a);}else if(41>c)switch(a){case 1:return 14;case 2:return 13;case s:return 16;case 8:return 12;default:throw Error("mode:"+
a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),d=0,b=0;b<c;b++)for(var e=0;e<c;e++){for(var f=0,i=a.isDark(b,e),g=-1;1>=g;g++)if(!(0>b+g||c<=b+g))for(var h=-1;1>=h;h++)0>e+h||c<=e+h||0==g&&0==h||i==a.isDark(b+g,e+h)&&f++;5<f&&(d+=3+f-5)}for(b=0;b<c-1;b++)for(e=0;e<c-1;e++)if(f=0,a.isDark(b,e)&&f++,a.isDark(b+1,e)&&f++,a.isDark(b,e+1)&&f++,a.isDark(b+1,e+1)&&f++,0==f||4==f)d+=3;for(b=0;b<c;b++)for(e=0;e<c-6;e++)a.isDark(b,e)&&!a.isDark(b,e+1)&&a.isDark(b,e+
2)&&a.isDark(b,e+3)&&a.isDark(b,e+4)&&!a.isDark(b,e+5)&&a.isDark(b,e+6)&&(d+=40);for(e=0;e<c;e++)for(b=0;b<c-6;b++)a.isDark(b,e)&&!a.isDark(b+1,e)&&a.isDark(b+2,e)&&a.isDark(b+3,e)&&a.isDark(b+4,e)&&!a.isDark(b+5,e)&&a.isDark(b+6,e)&&(d+=40);for(e=f=0;e<c;e++)for(b=0;b<c;b++)a.isDark(b,e)&&f++;a=Math.abs(100*f/c/c-50)/5;return d+10*a}},l={glog:function(a){if(1>a)throw Error("glog("+a+")");return l.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;256<=a;)a-=255;return l.EXP_TABLE[a]},EXP_TABLE:Array(256),
LOG_TABLE:Array(256)},m=0;8>m;m++)l.EXP_TABLE[m]=1<<m;for(m=8;256>m;m++)l.EXP_TABLE[m]=l.EXP_TABLE[m-4]^l.EXP_TABLE[m-5]^l.EXP_TABLE[m-6]^l.EXP_TABLE[m-8];for(m=0;255>m;m++)l.LOG_TABLE[l.EXP_TABLE[m]]=m;q.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-1),d=0;d<this.getLength();d++)for(var b=0;b<a.getLength();b++)c[d+b]^=l.gexp(l.glog(this.get(d))+l.glog(a.get(b)));return new q(c,0)},mod:function(a){if(0>
this.getLength()-a.getLength())return this;for(var c=l.glog(this.get(0))-l.glog(a.get(0)),d=Array(this.getLength()),b=0;b<this.getLength();b++)d[b]=this.get(b);for(b=0;b<a.getLength();b++)d[b]^=l.gexp(l.glog(a.get(b))+c);return(new q(d,0)).mod(a)}};p.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],
[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,
116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,
43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,
3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,
55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,
45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];p.getRSBlocks=function(a,c){var d=p.getRsBlockTable(a,c);if(void 0==d)throw Error("bad rs block @ typeNumber:"+a+"/errorCorrectLevel:"+c);for(var b=d.length/3,e=[],f=0;f<b;f++)for(var h=d[3*f+0],g=d[3*f+1],j=d[3*f+2],l=0;l<h;l++)e.push(new p(g,j));return e};p.getRsBlockTable=function(a,c){switch(c){case 1:return p.RS_BLOCK_TABLE[4*(a-1)+0];case 0:return p.RS_BLOCK_TABLE[4*(a-1)+1];case 3:return p.RS_BLOCK_TABLE[4*
(a-1)+2];case 2:return p.RS_BLOCK_TABLE[4*(a-1)+3]}};t.prototype={get:function(a){return 1==(this.buffer[Math.floor(a/8)]>>>7-a%8&1)},put:function(a,c){for(var d=0;d<c;d++)this.putBit(1==(a>>>c-d-1&1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/8);this.buffer.length<=c&&this.buffer.push(0);a&&(this.buffer[c]|=128>>>this.length%8);this.length++}};"string"===typeof h&&(h={text:h});h=r.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,
correctLevel:2,background:"#ffffff",foreground:"#000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=0;f<a.getModuleCount();f++)for(var i=0;i<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+1)*b)-Math.floor(i*b),
j=Math.ceil((f+1)*b)-Math.floor(f*b);d.fillRect(Math.round(i*b),Math.round(f*e),g,j)}}else{a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();c=r("<table></table>").css("width",h.width+"px").css("height",h.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",h.background);d=h.width/a.getModuleCount();b=h.height/a.getModuleCount();for(e=0;e<a.getModuleCount();e++){f=r("<tr></tr>").css("height",b+"px").appendTo(c);for(i=0;i<a.getModuleCount();i++)r("<td></td>").css("width",
d+"px").css("background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;jQuery(a).appendTo(this)})}})(jQuery);
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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/>.
*/
!function(t){t.fn.qrcode=function(e){function r(t){this.mode=u,this.data=t}function o(t,e){this.typeNumber=t,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function n(t,e){if(void 0==t.length)throw Error(t.length+"/"+e);for(var r=0;r<t.length&&0==t[r];)r++;this.num=Array(t.length-r+e);for(var o=0;o<t.length-r;o++)this.num[o]=t[o+r]}function i(t,e){this.totalCount=t,this.dataCount=e}function s(){this.buffer=[],this.length=0}var u;r.prototype={getLength:function(){return this.data.length},write:function(t){for(var e=0;e<this.data.length;e++)t.put(this.data.charCodeAt(e),8)}},o.prototype={addData:function(t){this.dataList.push(new r(t)),this.dataCache=null},isDark:function(t,e){if(0>t||this.moduleCount<=t||0>e||this.moduleCount<=e)throw Error(t+","+e);return this.modules[t][e]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var t=1,t=1;40>t;t++){for(var e=i.getRSBlocks(t,this.errorCorrectLevel),r=new s,o=0,n=0;n<e.length;n++)o+=e[n].dataCount;for(n=0;n<this.dataList.length;n++)e=this.dataList[n],r.put(e.mode,4),r.put(e.getLength(),a.getLengthInBits(e.mode,t)),e.write(r);if(r.getLengthInBits()<=8*o)break}this.typeNumber=t}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(t,e){this.moduleCount=4*this.typeNumber+17,this.modules=Array(this.moduleCount);for(var r=0;r<this.moduleCount;r++){this.modules[r]=Array(this.moduleCount);for(var n=0;n<this.moduleCount;n++)this.modules[r][n]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(t,e),7<=this.typeNumber&&this.setupTypeNumber(t),null==this.dataCache&&(this.dataCache=o.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,e)},setupPositionProbePattern:function(t,e){for(var r=-1;7>=r;r++)if(!(-1>=t+r||this.moduleCount<=t+r))for(var o=-1;7>=o;o++)-1>=e+o||this.moduleCount<=e+o||(this.modules[t+r][e+o]=0<=r&&6>=r&&(0==o||6==o)||0<=o&&6>=o&&(0==r||6==r)||2<=r&&4>=r&&2<=o&&4>=o)},getBestMaskPattern:function(){for(var t=0,e=0,r=0;8>r;r++){this.makeImpl(!0,r);var o=a.getLostPoint(this);(0==r||t>o)&&(t=o,e=r)}return e},createMovieClip:function(t,e,r){for(t=t.createEmptyMovieClip(e,r),this.make(),e=0;e<this.modules.length;e++)for(var r=1*e,o=0;o<this.modules[e].length;o++){var n=1*o;this.modules[e][o]&&(t.beginFill(0,100),t.moveTo(n,r),t.lineTo(n+1,r),t.lineTo(n+1,r+1),t.lineTo(n,r+1),t.endFill())}return t},setupTimingPattern:function(){for(var t=8;t<this.moduleCount-8;t++)null==this.modules[t][6]&&(this.modules[t][6]=0==t%2);for(t=8;t<this.moduleCount-8;t++)null==this.modules[6][t]&&(this.modules[6][t]=0==t%2)},setupPositionAdjustPattern:function(){for(var t=a.getPatternPosition(this.typeNumber),e=0;e<t.length;e++)for(var r=0;r<t.length;r++){var o=t[e],n=t[r];if(null==this.modules[o][n])for(var i=-2;2>=i;i++)for(var s=-2;2>=s;s++)this.modules[o+i][n+s]=-2==i||2==i||-2==s||2==s||0==i&&0==s}},setupTypeNumber:function(t){for(var e=a.getBCHTypeNumber(this.typeNumber),r=0;18>r;r++){var o=!t&&1==(e>>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=o}for(r=0;18>r;r++)o=!t&&1==(e>>r&1),this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=o},setupTypeInfo:function(t,e){for(var r=a.getBCHTypeInfo(this.errorCorrectLevel<<3|e),o=0;15>o;o++){var n=!t&&1==(r>>o&1);6>o?this.modules[o][8]=n:8>o?this.modules[o+1][8]=n:this.modules[this.moduleCount-15+o][8]=n}for(o=0;15>o;o++)n=!t&&1==(r>>o&1),8>o?this.modules[8][this.moduleCount-o-1]=n:9>o?this.modules[8][15-o-1+1]=n:this.modules[8][15-o-1]=n;this.modules[this.moduleCount-8][8]=!t},mapData:function(t,e){for(var r=-1,o=this.moduleCount-1,n=7,i=0,s=this.moduleCount-1;0<s;s-=2)for(6==s&&s--;;){for(var u=0;2>u;u++)if(null==this.modules[o][s-u]){var h=!1;i<t.length&&(h=1==(t[i]>>>n&1)),a.getMask(e,o,s-u)&&(h=!h),this.modules[o][s-u]=h,n--,-1==n&&(i++,n=7)}if(0>(o+=r)||this.moduleCount<=o){o-=r,r=-r;break}}}},o.PAD0=236,o.PAD1=17,o.createData=function(t,e,r){for(var e=i.getRSBlocks(t,e),n=new s,u=0;u<r.length;u++){var h=r[u];n.put(h.mode,4),n.put(h.getLength(),a.getLengthInBits(h.mode,t)),h.write(n)}for(u=t=0;u<e.length;u++)t+=e[u].dataCount;if(n.getLengthInBits()>8*t)throw Error("code length overflow. ("+n.getLengthInBits()+">"+8*t+")");for(n.getLengthInBits()+4<=8*t&&n.put(0,4);0!=n.getLengthInBits()%8;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*t)&&(n.put(o.PAD0,8),!(n.getLengthInBits()>=8*t));)n.put(o.PAD1,8);return o.createBytes(n,e)},o.createBytes=function(t,e){for(var r=0,o=0,i=0,s=Array(e.length),u=Array(e.length),h=0;h<e.length;h++){var l=e[h].dataCount,g=e[h].totalCount-l,o=Math.max(o,l),i=Math.max(i,g);s[h]=Array(l);for(var f=0;f<s[h].length;f++)s[h][f]=255&t.buffer[f+r];for(r+=l,f=a.getErrorCorrectPolynomial(g),l=new n(s[h],f.getLength()-1).mod(f),u[h]=Array(f.getLength()-1),f=0;f<u[h].length;f++)g=f+l.getLength()-u[h].length,u[h][f]=0<=g?l.get(g):0}for(f=h=0;f<e.length;f++)h+=e[f].totalCount;for(r=Array(h),f=l=0;f<o;f++)for(h=0;h<e.length;h++)f<s[h].length&&(r[l++]=s[h][f]);for(f=0;f<i;f++)for(h=0;h<e.length;h++)f<u[h].length&&(r[l++]=u[h][f]);return r},u=4;for(var a={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(t){for(var e=t<<10;0<=a.getBCHDigit(e)-a.getBCHDigit(a.G15);)e^=a.G15<<a.getBCHDigit(e)-a.getBCHDigit(a.G15);return(t<<10|e)^a.G15_MASK},getBCHTypeNumber:function(t){for(var e=t<<12;0<=a.getBCHDigit(e)-a.getBCHDigit(a.G18);)e^=a.G18<<a.getBCHDigit(e)-a.getBCHDigit(a.G18);return t<<12|e},getBCHDigit:function(t){for(var e=0;0!=t;)e++,t>>>=1;return e},getPatternPosition:function(t){return a.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,r){switch(t){case 0:return 0==(e+r)%2;case 1:return 0==e%2;case 2:return 0==r%3;case 3:return 0==(e+r)%3;case 4:return 0==(Math.floor(e/2)+Math.floor(r/3))%2;case 5:return 0==e*r%2+e*r%3;case 6:return 0==(e*r%2+e*r%3)%2;case 7:return 0==(e*r%3+(e+r)%2)%2;default:throw Error("bad maskPattern:"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new n([1],0),r=0;r<t;r++)e=e.multiply(new n([1,h.gexp(r)],0));return e},getLengthInBits:function(t,e){if(1<=e&&10>e)switch(t){case 1:return 10;case 2:return 9;case u:case 8:return 8;default:throw Error("mode:"+t)}else if(27>e)switch(t){case 1:return 12;case 2:return 11;case u:return 16;case 8:return 10;default:throw Error("mode:"+t)}else{if(!(41>e))throw Error("type:"+e);switch(t){case 1:return 14;case 2:return 13;case u:return 16;case 8:return 12;default:throw Error("mode:"+t)}}},getLostPoint:function(t){for(var e=t.getModuleCount(),r=0,o=0;o<e;o++)for(var n=0;n<e;n++){for(var i=0,s=t.isDark(o,n),u=-1;1>=u;u++)if(!(0>o+u||e<=o+u))for(var a=-1;1>=a;a++)0>n+a||e<=n+a||0==u&&0==a||s==t.isDark(o+u,n+a)&&i++;5<i&&(r+=3+i-5)}for(o=0;o<e-1;o++)for(n=0;n<e-1;n++)i=0,t.isDark(o,n)&&i++,t.isDark(o+1,n)&&i++,t.isDark(o,n+1)&&i++,t.isDark(o+1,n+1)&&i++,(0==i||4==i)&&(r+=3);for(o=0;o<e;o++)for(n=0;n<e-6;n++)t.isDark(o,n)&&!t.isDark(o,n+1)&&t.isDark(o,n+2)&&t.isDark(o,n+3)&&t.isDark(o,n+4)&&!t.isDark(o,n+5)&&t.isDark(o,n+6)&&(r+=40);for(n=0;n<e;n++)for(o=0;o<e-6;o++)t.isDark(o,n)&&!t.isDark(o+1,n)&&t.isDark(o+2,n)&&t.isDark(o+3,n)&&t.isDark(o+4,n)&&!t.isDark(o+5,n)&&t.isDark(o+6,n)&&(r+=40);for(n=i=0;n<e;n++)for(o=0;o<e;o++)t.isDark(o,n)&&i++;return t=Math.abs(100*i/e/e-50)/5,r+10*t}},h={glog:function(t){if(1>t)throw Error("glog("+t+")");return h.LOG_TABLE[t]},gexp:function(t){for(;0>t;)t+=255;for(;256<=t;)t-=255;return h.EXP_TABLE[t]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)},l=0;8>l;l++)h.EXP_TABLE[l]=1<<l;for(l=8;256>l;l++)h.EXP_TABLE[l]=h.EXP_TABLE[l-4]^h.EXP_TABLE[l-5]^h.EXP_TABLE[l-6]^h.EXP_TABLE[l-8];for(l=0;255>l;l++)h.LOG_TABLE[h.EXP_TABLE[l]]=l;return n.prototype={get:function(t){return this.num[t]},getLength:function(){return this.num.length},multiply:function(t){for(var e=Array(this.getLength()+t.getLength()-1),r=0;r<this.getLength();r++)for(var o=0;o<t.getLength();o++)e[r+o]^=h.gexp(h.glog(this.get(r))+h.glog(t.get(o)));return new n(e,0)},mod:function(t){if(0>this.getLength()-t.getLength())return this;for(var e=h.glog(this.get(0))-h.glog(t.get(0)),r=Array(this.getLength()),o=0;o<this.getLength();o++)r[o]=this.get(o);for(o=0;o<t.getLength();o++)r[o]^=h.gexp(h.glog(t.get(o))+e);return new n(r,0).mod(t)}},i.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],i.getRSBlocks=function(t,e){var r=i.getRsBlockTable(t,e);if(void 0==r)throw Error("bad rs block @ typeNumber:"+t+"/errorCorrectLevel:"+e);for(var o=r.length/3,n=[],s=0;s<o;s++)for(var u=r[3*s+0],a=r[3*s+1],h=r[3*s+2],l=0;l<u;l++)n.push(new i(a,h));return n},i.getRsBlockTable=function(t,e){switch(e){case 1:return i.RS_BLOCK_TABLE[4*(t-1)+0];case 0:return i.RS_BLOCK_TABLE[4*(t-1)+1];case 3:return i.RS_BLOCK_TABLE[4*(t-1)+2];case 2:return i.RS_BLOCK_TABLE[4*(t-1)+3]}},s.prototype={get:function(t){return 1==(this.buffer[Math.floor(t/8)]>>>7-t%8&1)},put:function(t,e){for(var r=0;r<e;r++)this.putBit(1==(t>>>e-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},"string"==typeof e&&(e={text:e}),e=t.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,correctLevel:2,background:"#ffffff",foreground:"#000000"},e),this.each(function(){var r;if("canvas"==e.render){r=new o(e.typeNumber,e.correctLevel),r.addData(e.text),r.make();var n=document.createElement("canvas");n.width=e.width,n.height=e.height;for(var i=n.getContext("2d"),s=e.width/r.getModuleCount(),u=e.height/r.getModuleCount(),a=0;a<r.getModuleCount();a++)for(var h=0;h<r.getModuleCount();h++){i.fillStyle=r.isDark(a,h)?e.foreground:e.background;var l=Math.ceil((h+1)*s)-Math.floor(h*s),g=Math.ceil((a+1)*s)-Math.floor(a*s);i.fillRect(Math.round(h*s),Math.round(a*u),l,g)}}else for(r=new o(e.typeNumber,e.correctLevel),r.addData(e.text),r.make(),n=t("<table></table>").css("width",e.width+"px").css("height",e.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",e.background),i=e.width/r.getModuleCount(),s=e.height/r.getModuleCount(),u=0;u<r.getModuleCount();u++)for(a=t("<tr></tr>").css("height",s+"px").appendTo(n),h=0;h<r.getModuleCount();h++)t("<td></td>").css("width",i+"px").css("background-color",r.isDark(u,h)?e.foreground:e.background).appendTo(a);r=n,jQuery(r).appendTo(this)})}}(jQuery);
\ No newline at end of file
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 href="${loginURL}">
<svg>
<use xlink:href="#icon-enter"></use>
</svg> ${loginLabel}
</a>
<a rel="alternate" href="${servePath}/register" rel="section">
<svg>
<use xlink:href="#icon-register"></use>
</svg>
${registerLabel}
</a>
</#if>
</div>
</nav>
\ No newline at end of file
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 "macro-head.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} (${archiveDate.archiveDatePublishedArticleCount}) - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveDate.archiveDateYear}${archiveDate.archiveDateMonth}"/>
<meta name="description" content="<#list articles as article>${article.articleTitle}<#if article_has_next>,</#if></#list>"/>
</@head>
</head>
<body class="classic-wptouch-bg ">
<#include "header.ftl">
<div class="content single">
<div class="post">
<h2 class="marginLeft12 marginBottom12">${archive1Label}
<#if "en" == localeString?substring(0, 2)>
${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} (${archiveDate.archiveDatePublishedArticleCount})
<#else>
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} (${archiveDate.archiveDatePublishedArticleCount})
</#if>
</h2>
</div>
</div>
<#include "article-list.ftl">
<#include "footer.ftl">
</body>
</html>
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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="content">
<div class="result-text"><!--TODO wptouch_core_body_result_text()--></div>
<#list articles as article>
<div class="post" id="post-${article.oId}">
<#if 0 lt article.articleCommentCount>
<div class="comment-bubble">${article.articleCommentCount}</div>
</#if>
<script type="text/javascript">
$wpt(document).ready(function(){
$wpt("a#arrow-${article.oId}").bind( touchStartOrClick, function(e) {
$wpt(this).toggleClass("post-arrow-down");
$wpt('#entry-${article.oId}').wptouchFadeToggle(500);
});
});
</script>
<a class="post-arrow" id="arrow-${article.oId}" href="javascript: return false;"></a>
<div class="calendar">
<div class="cal-month month-${article.articleUpdateDate?string("MM")}">${article.articleUpdateDate?string("MM")}</div>
<div class="cal-date">${article.articleUpdateDate?string("dd")}</div>
</div>
<a rel="bookmark" class="h2" href="${servePath}${article.articlePermalink}">${article.articleTitle}</a>
<div class="post-author">
<span class="lead">By</span> ${article.authorName}<br />
<span class="lead">${tags1Label}</span>
<#list article.articleTags?split(",") as articleTag>
<a rel="tag" href="${servePath}/tags/${articleTag?url('UTF-8')}">
${articleTag}</a><#if articleTag_has_next>,</#if>
</#list>
</div>
<div class="clearer"></div>
<div id="entry-${article.oId}" style="display:none" class="mainentry left-justified">
${article.articleAbstract}
<a class="read-more" href="${servePath}${article.articlePermalink}">${readThisPost}</a>
</div>
</div>
</div>
</#list>
<!--TODO ajax load page
<div id="call${paginationCurrentPageNum}" class="ajax-load-more">
<div id="spinner${paginationCurrentPageNum}" class="spin" style="display:none"></div>
<a class="ajax" href="javascript:void(0)" onclick="$wpt('#spinner${paginationCurrentPageNum}').fadeIn(200); $wpt('#ajaxentries${paginationCurrentPageNum}').load('${path}/${paginationPreviousPageNum}', {}, function(){ $wpt('#call${paginationCurrentPageNum}').fadeOut();});">
Load more entries...
</a>
</div>
<div id="ajaxentries${paginationCurrentPageNum}"></div>
-->
<#if 0 != paginationPageCount>
<div class="ajax-load-more">
<#if 1 != paginationPageNums?first>
<a href="${servePath}${path}/1">${firstPageLabel}</a>
<a id="previousPage" href="${servePath}${path}/${paginationPreviousPageNum}">${previousPageLabel}</a>
</#if>
<#list paginationPageNums as paginationPageNum>
<#if paginationPageNum == paginationCurrentPageNum>
<a href="${servePath}${path}/${paginationPageNum}" class="selected">${paginationPageNum}</a>
<#else>
<a href="${servePath}${path}/${paginationPageNum}">${paginationPageNum}</a>
</#if>
</#list>
<#if paginationPageNums?last != paginationPageCount>
<a id="nextPage" href="${servePath}${path}/${paginationNextPageNum}">${nextPagePabel}</a>
<a href="${servePath}${path}/${paginationPageCount}">${lastPageLabel}</a>
</#if>
&nbsp;&nbsp;${sumLabel} ${paginationPageCount} ${pageLabel}
</div>
</#if>
</div>
\ No newline at end of file
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 "macro-head.ftl">
<#include "macro-comments.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${article.articleTitle} - ${blogTitle}">
<meta name="keywords" content="${article.articleTags}" />
<meta name="description" content="${article.articleAbstract?html}" />
</@head>
<#if previousArticlePermalink??>
<link rel="prev" title="${previousArticleTitle}" href="${servePath}${previousArticlePermalink}">
</#if>
<#if nextArticlePermalink??>
<link rel="next" title="${nextArticleTitle}" href="${servePath}${nextArticlePermalink}">
</#if>
<!-- Open Graph -->
<meta property="og:locale" content="zh_CN"/>
<meta property="og:type" content="article"/>
<meta property="og:title" content="${article.articleTitle}"/>
<meta property="og:description" content="${article.articleAbstract?html}"/>
<meta property="og:image" content="${article.authorThumbnailURL}"/>
<meta property="og:url" content="${servePath}${article.articlePermalink}"/>
<meta property="og:site_name" content="Solo"/>
<!-- Twitter Card -->
<meta name="twitter:card" content="summary"/>
<meta name="twitter:description" content="${article.articleAbstract?html}"/>
<meta name="twitter:title" content="${article.articleTitle}"/>
<meta name="twitter:image" content="${article.authorThumbnailURL}"/>
<meta name="twitter:url" content="${servePath}${article.articlePermalink}"/>
<meta name="twitter:site" content="@DL88250"/>
<meta name="twitter:creator" content="@DL88250"/>
</head>
<body class="classic-wptouch-bg">
<#include "header.ftl">
<div class="content single">
<div class="post">
<a class="sh2" href="${servePath}${article.articlePermalink}" rel="bookmark">${article.articleTitle}</a>
<div class="single-post-meta-top">
<#if article.hasUpdated>
${article.articleUpdateDate?string("yyyy-MM-dd HH:mm:ss")}
<#else>
${article.articleCreateDate?string("yyyy-MM-dd HH:mm:ss")}
</#if>
&rsaquo; ${article.authorName}<br />
<a rel="nofollow" href="#comments">${skipToComment}</a>
</div>
</div>
<div class="clearer"></div>
<div class="post article-body" id="post-${article.oId}">
<div id="singlentry" class="left-justified">
${article.articleContent}
<#if "" != article.articleSign.signHTML?trim>
<div class=""><!--TODO sign class-->
${article.articleSign.signHTML}
</div>
</#if>
</div>
<!-- Categories and Tags post footer -->
<div class="single-post-meta-bottom">
${tags1Label}
<#list article.articleTags?split(",") as articleTag>
<a rel="tag" href="${servePath}/tags/${articleTag?url('UTF-8')}" rel="tag">${articleTag}</a><#if articleTag_has_next>,</#if>
</#list>
</div>
<ul id="post-options">
<#if nextArticlePermalink??>
<li><a href="${servePath}${nextArticlePermalink}" id="oprev"></a></li>
</#if>
<li><a href="mailto:?subject=${article.authorName} - ${article.articleTitle}&body=Check out this post: ${servePath}${article.articlePermalink}" id="omail"></a></li>
<li><a href="javascript:void(0)" onclick="window.open('http://service.weibo.com/share/share.php?url=${servePath}${article.articlePermalink}&title=B3LOG%20-%20${article.articleTitle}', '_blank');" id="otweet"></a></li>
<li><a href="javascript:void(0)" id="obook"></a></li>
<#if previousArticlePermalink??>
<li><a href="${servePath}${previousArticlePermalink}" id="onext"></a></li>
</#if>
</ul>
</div>
<div id="bookmark-box" style="display:none">
<ul>
<li><a href="http://del.icio.us/post?url=${servePath}/?p=12&title=${article.articleTitle}" target="_blank"><img src="${staticServePath}/skins/${skinDirName}/themes/core/core-images/bookmarks/delicious.jpg" alt="" /> Del.icio.us</a></li>
<li><a href="http://digg.com/submit?phase=2&url=${servePath}/?p=12&title=${article.articleTitle}" target="_blank"><img src="${staticServePath}/skins/${skinDirName}/themes/core/core-images/bookmarks/digg.jpg" alt="" /> Digg</a></li>
<li><a href="http://technorati.com/faves?add=${servePath}/?p=12" target="_blank"><img src="${staticServePath}/skins/${skinDirName}/themes/core/core-images/bookmarks/technorati.jpg" alt="" /> Technorati</a></li>
<li><a href="http://ma.gnolia.com/bookmarklet/add?url=${servePath}/?p=12&title=${article.articleTitle}" target="_blank"><img src="${staticServePath}/skins/${skinDirName}/themes/core/core-images/bookmarks/magnolia.jpg" alt="" /> Magnolia</a></li>
<li><a href="http://www.newsvine.com/_wine/save?popoff=0&u=${servePath}/?p=12&h=${article.articleTitle}" target="_blank"><img src="${staticServePath}/skins/${skinDirName}/themes/core/core-images/bookmarks/newsvine.jpg" target="_blank"> Newsvine</a></li>
<li class="noborder"><a href="http://reddit.com/submit?url=${servePath}/?p=12&title=${article.articleTitle}" target="_blank"><img src="${staticServePath}/skins/${skinDirName}/themes/core/core-images/bookmarks/reddit.jpg" alt="" /> Reddit</a></li>
</ul>
</div>
<div id="externalRelevantArticles" class="post"></div>
<@comments commentList=articleComments article=article></@comments>
</div>
<#include "footer.ftl">
<@comment_script oId=article.oId>
page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}";
<#if 0 != randomArticlesDisplayCount>
page.loadRandomArticles();
</#if>
<#if 0 != relevantArticlesDisplayCount>
page.loadRelevantArticles('${article.oId}', '<h4>${relevantArticles1Label}</h4>');
</#if>
<#if 0 != externalRelevantArticlesDisplayCount>
page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,</#if></#list>");
</#if>
</@comment_script>
</body>
</html>
\ No newline at end of file
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 "macro-head.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${authorName} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${authorName}"/>
<meta name="description" content="<#list articles as article>${article.articleTitle}<#if article_has_next>,</#if></#list>"/>
</@head>
</head>
<body class="classic-wptouch-bg ">
<#include "header.ftl">
<div class="content single">
<div class="post">
<h2 >
${author1Label}${authorName}
</h2>
</div>
</div>
<#include "article-list.ftl">
<#include "footer.ftl">
</body>
</html>
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 "macro-head.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${category.categoryTitle} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${category.categoryTitle}"/>
<meta name="description" content="<#list articles as article>${article.articleTitle}<#if article_has_next>,</#if></#list>"/>
</@head>
</head>
<body class="classic-wptouch-bg ">
<#include "header.ftl">
<div class="content single">
<div class="post">
<h2 >${categoryLabel}
<a rel="alternate" href="${servePath}/category/${category.categoryURI}">
${category.categoryTitle}
(${category.categoryTagCnt})</a>
</h2>
</div>
</div>
<#include "article-list.ftl">
<#include "footer.ftl">
</body>
</html>
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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/>.
-->
<!-- Here we're establishing whether the page was loaded via Ajax or not, for dynamic purposes. If it's ajax, we're not bringing in footer.php -->
<div id="footer">
<center>
<div id="wptouch-switch-link">
<script type="text/javascript">function switch_delayer() { location.reload();}</script>${mobileLabel} <a id="switch-link" onclick="wptouch_switch_confirmation('normal');" href="javascript:void(0)"></a> </div>
</center>
<p><span style="color: gray;">&copy; ${year}</span> - <a href="${servePath}">${blogTitle}</a>${footerContent}</p>
<p>Powered by <a href="https://b3log.org" target="_blank">B3log 开源</a> • <a href="https://solo.b3log.org" target="_blank">Solo</a> ${version},
Theme <a rel="friend" href="https://github.com/b3log/solo-skins" target="_blank">mobile</a>
by <a rel="friend" href="http://vanessa.b3log.org" target="_blank">Vanessa</a></p>
</div>
<script type="text/javascript" src="${staticServePath}/js/lib/jquery/jquery.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">
var latkeConfig = {
"servePath": "${servePath}",
"isLoggedIn": "${isLoggedIn?string}",
"staticServePath": "${staticServePath}"
};
var Label = {
"skinDirName": "${skinDirName}",
"em00Label": "${em00Label}",
"em01Label": "${em01Label}",
"em02Label": "${em02Label}",
"em03Label": "${em03Label}",
"em04Label": "${em04Label}",
"em05Label": "${em05Label}",
"em06Label": "${em06Label}",
"em07Label": "${em07Label}",
"em08Label": "${em08Label}",
"em09Label": "${em09Label}",
"em10Label": "${em10Label}",
"em11Label": "${em11Label}",
"em12Label": "${em12Label}",
"em13Label": "${em13Label}",
"em14Label": "${em14Label}"
};
$(document).ready(function () {
Util.init();
var toggleArchive = function (it) {
var $it = $(it);
$it.next().slideToggle(260, function () {
var h4Obj = $it.find("h4");
if (this.style.display === "none") {
h4Obj.html("${archiveLabel} +");
} else {
h4Obj.html("${archiveLabel} -");
}
});
}
});
</script>
${plugins}
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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/>.
-->
<!--TODO i18n-->
<!-- New noscript check, we need js on now folks -->
<noscript>
<div id="noscript-wrap">
<div id="noscript">
<h2>Notice</h2>
<p>JavaScript for Mobile Safari is currently turned off.</p>
<p>Turn it on in <em>Settings &rsaquo; Safari</em><br /> to view this website.</p>
</div>
</div>
</noscript>
<!-- Prowl: if DM is sent, let's tell the user what happened -->
<!-- #start The Search Overlay -->
<#--
<div id="wptouch-search">
<div id="wptouch-search-inner">
<form target="_blank" id="searchform" action="http://zhannei.baidu.com/cse/site">
<input id="search" placeholder="Search..." type="text" name="q" />
<input type="submit" id="search-submit" value="" />
<input type="hidden" name="cc" value="${serverHost}">
<a href="javascript:void(0)"><img class="head-close" src="${staticServePath}/skins/${skinDirName}/themes/core/core-images/head-close.png" alt="close" /></a>
</form>
</div>
</div>
-->
<div id="wptouch-menu" class="dropper">
<div id="wptouch-menu-inner">
<div id="menu-head">
<div id="tabnav">
<a href="#head-pages"><img src="${staticServePath}/skins/${skinDirName}/images/icon-pool/Pages.png" alt=""/></a>
<a href="#head-tags"><img src="${staticServePath}/skins/${skinDirName}/images/icon-pool/Tags.png" alt=""/></a>
<a href="#head-cats"><img src="${staticServePath}/skins/${skinDirName}/images/icon-pool/Archives.png" alt=""/></a>
<a href="#head-category"><img src="${staticServePath}/skins/${skinDirName}/images/icon-pool/category.png" alt=""/></a>
</div>
<ul id="head-pages">
<li id="admin" data-login="${isLoggedIn?string}"><a href="${servePath}/admin-index.do#main"><img src="${staticServePath}/skins/${skinDirName}/images/icon-pool/Home.png" alt=""/>Admin</a></li>
<#list pageNavigations as page>
<li><a href="${page.pagePermalink}" target="${page.pageOpenTarget}"><#if page.pageIcon != ''><img class="page-icon" src="${page.pageIcon}"></#if>${page.pageTitle}</a></li>
</#list>
<li><a rel="alternate" href="${servePath}/rss.xml"><img src="${staticServePath}/skins/${skinDirName}/images/icon-pool/RSS.png" alt="" />RSS Feed</a></li>
<li><a href="${servePath}/search?keyword=">Search</a></li>
</ul>
<ul id="head-tags">
<#if 0 != mostUsedTags?size>
<#list mostUsedTags as tag>
<li><a href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}">${tag.tagTitle} <span>(${tag.tagPublishedRefCount})</span></a></li>
</#list>
</#if>
</ul>
<ul id="head-cats">
<#if 0 != archiveDates?size>
<#list archiveDates as archiveDate>
<li>
<#if "en" == localeString?substring(0, 2)>
<a href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
${archiveDate.monthName} ${archiveDate.archiveDateYear} <span>(${archiveDate.archiveDatePublishedArticleCount})</span></a>
<#else>
<a href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} <span>(${archiveDate.archiveDatePublishedArticleCount})</span></a>
</#if>
</li>
</#list>
</#if>
</ul>
<ul id="head-category">
<#if 0 != mostUsedCategories?size>
<#list mostUsedCategories as category>
<li>
<a href="${servePath}/category/${category.categoryURI}">
${category.categoryTitle}</a>
</li>
</#list>
</#if>
</ul>
</div>
</div>
</div>
<div id="headerbar">
<div id="headerbar-title">
<!-- This fetches the admin selection logo icon for the header, which is also the bookmark icon -->
<img id="logo-icon" src="${staticServePath}/skins/${skinDirName}/images/icon-pool/Apps.png" alt="aln" />
<a rel="nofollow" href="${servePath}">${blogTitle}</a>
</div>
<div id="headerbar-menu">
<a href="javascript:void(0)"></a>
</div>
</div>
<div id="drop-fade">
<#--<a id="searchopen" class="top" href="javascript:void(0)">${searchLabel}</a>-->
<!-- #start the Prowl Message Area -->
<div id="prowl-message" style="display:none">
<div id="push-style-bar"></div><!-- filler to get the styling just right -->
<img src="${staticServePath}/skins/${skinDirName}/themes/core/core-images/push-icon.png" alt="push icon" />
<h4>Send a Message</h4>
<p>This message will be pushed to the admin's iPhone instantly.</p><!--TODO instant msg-->
<form id="prowl-direct-message" method="post" action="/blog/">
<p>
<input name="prowl-msg-name" id="prowl-msg-name" type="text" />
<label for="prowl-msg-name">Name</label>
</p>
<p>
<input name="prowl-msg-email" id="prowl-msg-email" type="text" />
<label for="prowl-msg-email">E-Mail</label>
</p>
<textarea name="prowl-msg-message"></textarea>
<input type="hidden" name="wptouch-prowl-message" value="1" />
<input type="hidden" name="_nonce" value="3690953c13" />
<input type="submit" name="prowl-submit" value="Send Now" id="prowl-submit" />
</form>
<div class="clearer"></div>
</div>
</div>
\ No newline at end of file
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 "macro-head.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${blogTitle}">
<#if metaKeywords??>
<meta name="keywords" content="${metaKeywords}"/>
</#if>
<#if metaDescription??>
<meta name="description" content="${metaDescription}"/>
</#if>
</@head>
</head>
<body class="classic-wptouch-bg">
<#include "header.ftl">
<#include "article-list.ftl">
<#include "footer.ftl">
</body>
</html>
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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/>.
*/
function convertEntities(t){var e,n;if(e=function(t){if(/&[^;]+;/.test(t)){var e=document.createElement("div");return e.innerHTML=t,e.firstChild?e.firstChild.nodeValue:t}return t},"string"==typeof t)return e(t);if("object"==typeof t)for(n in t)"string"==typeof t[n]&&(t[n]=e(t[n]));return t}
\ No newline at end of file
#
# Solo - A small and beautiful blogging system written in Java.
# Copyright (c) 2010-2018, 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: Mobile skin language configurations(en_US).
# Version: 1.0.0.3, Aug 30, 2012
# Author: Liang Ding
# Author: Liyuan Li
#
adminConsoleLabel=Admin
adminIndexLabel=Admin Index
postArticleLabel=Post
articleListLabel=Articles
commentListLabel=Comments
draftListLabel=Drafts
userManageLabel=Users
commonUserLabel=Common User
addUserLabel=Add User
updateUserLabel=Update User
linkManagementLabel=Links
pluginMgmtLabel=Plugins
pluginNameLabel=Name
versionLabel=Version
statusLabel=Status
enabledLabel=Enabled
disabledLabel=Disabled
enableLabel=Enable
disableLabel=Disable
preferenceLabel=Preference
localeString1Label=Language:
timeZoneId1Label=Time Zone:
adminLabel=Admin
administratorLabel=Administrator
loginLabel=Login
logoutLabel=Logout
initLabel=Initial
popTagsLabel=Popular Tags
tag1Label=Tag:
tags1Label=Tags:
recentArticlesLabel=Recent Articles
recentCommentsLabel=Recent Comments
postCommentsLabel=Post Comment
mostCommentArticlesLabel=Most Comment Articles
mostViewCountArticlesLabel=Most View Articles
linkLabel=Friend Links
sumLabel=
pageLabel=Page
commentLabel=Comment
linkTitleLabel=Link Title
linkTitle1Label=Title:
updateLabel=Update
removeLabel=Remove
putTopLabel=Put Top
cancelPutTopLabel=Cancel Put Top
downloadCountLabel=Count
sizeLabel=Size
uploadDateLabel=Upload Date
downloadURLLabel=Download URL
downloadLabel=Download
createDateLabel=Create Date
updateDateLabel=Update Date
titleLabel=Title
title1Label=Title:
content1Label=Content:
abstract1Label=Summary:
publishLabel=Publish
unPublishLabel=Un Publish
urlLabel=URL
url1Label=URL (start protocol, e.g.: http://):
addLinkLabel=Add Link
updateLinkLabel=Update Link
archiveLabel=Archive
archive1Label=archive:
yearLabel=
monthLabel=
pageLabel=Page
pageMgmtLabel=Pages
othersLabel=Others
fileListLabel=Files
submitUploadLabel=Upload
fileNameLabel=File Name
paramSettingsLabel=Parameters
skinLabel=Skins
signLabel=Signs
sign1Label=Signs:
noSignLabel=No Signs
signIsNullLabel=This Sign is Null
statisticLabel=Blog Statistic
viewLabel=View
countLabel=Posts
viewCount1Label=View Count:
articleCount1Label=Article Count:
commentCountLabel=Comment Count
commentCount1Label=Comment Count:
commentEmotions1Label=Emotions:
commentEmotionsLabel=Emotions
commentName1Label=Name:
commentNameLabel=Name
commentEmail1Label=Email:
commentEmailLabel=Email
commentURL1Label=URL:
commentURLLabel=URL
commentContent1Label=Content:
commentContentLabel=Content
getDateLabel=Get Date
getArticleLabel=Get Article
selectDateLabel=Select Date
selectDate1Label=Select Date:
importLabel=Import
chooseBlog1Label=Choose Blog:
blogArticleImportLabel=Article Import
userName1Label=Username:
userPassword1Label=Password:
categoryLabel=Category
noticeBoard1Label=Notice Board:
noticeBoardLabel=Notice Board
htmlhead1Label=HTML head:
indexTagDisplayCnt1Label=Index Tag Display Count:
indexRecentArticleDisplayCnt1Label=Recent Article Display Count:
indexRecentCommentDisplayCnt1Label=Recent Comment Display Count:
indexMostCommentArticleDisplayCnt1Label=Most Comment Article Display Count:
indexMostViewArticleDisplayCnt1Label=Most View Article Display Count:
relevantArticlesDisplayCnt1Label=Relevant Article Display Count:
randomArticlesDisplayCnt1Label=Random Article Display Count:
externalRelevantArticlesDisplayCnt1Label=External Relevant Article Display Count:
windowSize1Label=Pagination Window Size:
pageSize1Label=Pagination Page Size:
blogTitle1Label=Blog Title:
blogSubtitle1Label=Blog Subtitle:
blogHost1Label=Blog Host:
submmitCommentLabel=Commit Comment
saveLabel=Save
tagLabel=Tag
tagsLabel=Tags
importedLabel=Imported
captcha1Label=Captcha:
captchaLabel=Captcha
indexLabel=Index
nextArticle1Label=Next:
previousArticle1Label=Previous:
updatedLabel=Updated!
topArticleLabel=Top!
CSDNBlogLabel=CSDN Blog
BlogJavaLabel=BlogJava
CnBlogsLabel=CnBlogs
previousPageLabel=Previous Page
nextPagePabel=Next Page
firstPageLabel=First Page
lastPageLabel=Last Page
returnTo1Label=Return to:
tencentLabel=Tencent
appKey1Label=App Key:
appSecret1Label=App Secret:
postToTencentMicroblogWhilePublishArticleLabel=Post to Tencent microblog while publish an article:
postToCommunityLabel=Post to Community:
authorizeTencentMicroblog1Label=Click to authorize:
googleLabel=Google
OAuthConsumerSecret1Label=OAuth Consumer Secret:
atomLabel=Atom
relevantArticles1Label=Relevant Articles:
randomArticles1Label=Random Articles:
externalRelevantArticles1Label=External Relevant Articles:
metaKeywords1Label=Meta Keywords:
metaDescription1Label=Meta Description:
removeUnusedTagsLabel=Remove Unused Tags
goTopLabel=Top
permalink1Label=Permalink:
permalinkLabel=Permalink
killBrowserLabel=<h2>Let's kill outdated and insecure browser!</h2><p>Let's kill outdated and insecure browser for browser evolution, human progress and better experience.</p><p>You can download</p><ul><li><a href="http://www.mozilla.com/" target="_blank">Firefox</a></li><li><a href="http://www.google.com/chrome" target="_blank">Chrome</a></li><li><a href="http://windows.microsoft.com/en-US/internet-explorer/downloads/ie" target="_blank">IE8 / IE9</a></li><li><a href="http://www.maxthon.com/" target="_blank">Maxthon</a> and <a href="http://www.google.com" target="_blank">so on</a>.</li></ul>
readmoreLabel=Read more\u00BB
readmore2Label=Read more
replyLabel=Reply\u00BB
homeLabel=Home
enableArticleUpdateHint1Label=Enable Article Update Hint:
allowVisitDraftViaPermalink1Label=Allow Visit Draft Via Link:
author1Label=Author:
authorLabel=Author
keyOfSolo1Label=Solo Key:
articleLabel=Article
tagArticlesLabel=Tag Articles
dateArticlesLabel=Archive Date Articles
authorArticlesLabel=Author Articles
indexArticleLabel=Index Articles
allTagsLabel=Tag Cloud
customizedPageLabel=Customized Page
killBrowserPageLabel=Kill Browser Page
pageNumLabel=Page Number
####
forbiddenLabel=Forbidden Access!
sorryLabel=Sorry!
notFoundLabel=Not Found!
unPulbishSuccLabel=Un Publish Successfully
unPulbishFailLabel=Un Publish Fail
removeSuccLabel=Remove Successfully
removeFailLabel=Remove Fail
removeUserFailSkinNeedMulUsersLabel=Remove Fail, the current skin need multiple users!
putTopSuccLabel=Put Top Successfully
putTopFailLabel=Put Top Fail
cancelTopSuccLabel=Cancel Top Successfully
cancelTopFailLabel=Cancel Top Fail
addSuccLabel=Add Successfully
addFailLabel=Add Fail
updateSuccLabel=Update Successfully
updateFailLabel=Update Fail
updatePreferenceFailNeedMulUsersLabel=Update Fail, the selected skin need multiple users!
setFailLabel=Set Fail
setSuccLabel=Set Successfully
getFailLabel=Get Fail
noSettingLabel=No Setting
getSuccLabel=Get Successfully
importSuccLabel=Import Successfully :-)
importFailLabel=Some Import Fail %>_<%
noCommentLabel=No Comment
captchaErrorLabel=Captcha Error
inputErrorLabel=Input Error!
gotoLabel=Go
passwordEmptyLabel=Password is empty
blogEmptyLabel=Blogging service is empty
blogArticleEmptyLabel=Please select articles
nameTooLongLabel=Sorry, your username must be between 2 and 20 characters long.
mailCannotEmptyLabel=Mail is empty
mailInvalidLabel=Mail is invalid
commentContentCannotEmptyLabel=Sorry, your content must be between 2 and 500 characters long.
captchaCannotEmptyLabel=Captcha is empty
loadingLabel=Loading....
titleEmptyLabel=Title is empty
contentEmptyLabel=Content is empty
orderEmptyLabel=Order is empty
abstractEmptyLabel=Abstract is empty
tagsEmptyLabel=Tags is empty
addressEmptyLabel=Address is empty
noAuthorizationURLLabel=Can not retrieve authorization URL from Google, please \
make sure the <em>Consumer Secret</em> you typed in and then try again.
duplicatedPermalinkLabel=Duplicated permalink!
invalidPermalinkFormatLabel=Invalid permalink format!
duplicatedEmailLabel=Duplicated email!
refreshAndRetryLabel=Please refresh and try again!
editorLeaveLabel=Content is not null, Do you leave\uFF1F
editorPostLabel=Content is not null, Do you clear\uFF1F
####
confirmRemoveLabel=Are You Sure?
confirmInitLabel=Are You Sure?
mobileLabel=Mobile Theme
responses=Responses
commentSuccess=Success! Comment added.
refresh2CComment=&lt; Refresh the page to see your comment.
readThisPost=Read This Post
skipToComment=&darr; Skip to comments
searchLabel=Search
publishing=Publishing...
#
# Solo - A small and beautiful blogging system written in Java.
# Copyright (c) 2010-2018, 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: Mobile skin language configurations(zh_CN).
# Version: 1.0.0.3, Aug 30, 2012
# Author: Liang Ding
# Author: Liyuan Li
#
adminConsoleLabel=\u540E\u53F0\u7BA1\u7406
adminIndexLabel=\u540E\u53F0\u9996\u9875
postArticleLabel=\u53D1\u5E03\u6587\u7AE0
articleListLabel=\u6587\u7AE0\u7BA1\u7406
commentListLabel=\u8BC4\u8BBA\u7BA1\u7406
draftListLabel=\u8349\u7A3F\u5939
userManageLabel=\u7528\u6237\u7BA1\u7406
commonUserLabel=\u4E00\u822C\u7528\u6237
addUserLabel=\u6DFB\u52A0\u7528\u6237
updateUserLabel=\u66F4\u65B0\u7528\u6237
linkManagementLabel=\u94FE\u63A5\u7BA1\u7406
pluginMgmtLabel=\u63D2\u4EF6\u7BA1\u7406
pluginNameLabel=\u63D2\u4EF6\u540D
versionLabel=\u7248\u672C
statusLabel=\u72B6\u6001
enabledLabel=\u5DF2\u542F\u7528
disabledLabel=\u5DF2\u7981\u7528
enableLabel=\u542F\u7528
disableLabel=\u7981\u7528
preferenceLabel=\u504F\u597D\u8BBE\u5B9A
localeString1Label=\u8BED\u8A00\uFF1A
timeZoneId1Label=\u65F6\u533A\uFF1A
adminLabel=\u7BA1\u7406
administratorLabel=\u7BA1\u7406\u5458
loginLabel=\u767B\u5F55
logoutLabel=\u767B\u51FA
initLabel=\u521D\u59CB\u5316
popTagsLabel=\u5206\u7C7B\u6807\u7B7E
tag1Label=\u6807\u7B7E\uFF1A
tags1Label=\u6807\u7B7E\uFF1A
recentArticlesLabel=\u6700\u65B0\u6587\u7AE0
recentCommentsLabel=\u6700\u65B0\u8BC4\u8BBA
postCommentsLabel=\u53D1\u8868\u8BC4\u8BBA
mostCommentArticlesLabel=\u8BC4\u8BBA\u6700\u591A\u7684\u6587\u7AE0
mostViewCountArticlesLabel=\u8BBF\u95EE\u6700\u591A\u7684\u6587\u7AE0
linkLabel=\u53CB\u60C5\u94FE\u63A5
sumLabel=\u5171
pageLabel=\u9875
commentLabel=\u8BC4\u8BBA
linkTitleLabel=\u94FE\u63A5\u6807\u9898
linkTitle1Label=\u6807\u9898\uFF1A
updateLabel=\u66F4\u65B0
removeLabel=\u5220\u9664
putTopLabel=\u7F6E\u9876
cancelPutTopLabel=\u53D6\u6D88\u7F6E\u9876
downloadCountLabel=\u4E0B\u8F7D\u6B21\u6570
sizeLabel=\u5927\u5C0F
uploadDateLabel=\u4E0A\u4F20\u65E5\u671F
downloadURLLabel=\u4E0B\u8F7D\u5730\u5740
downloadLabel=\u4E0B\u8F7D
createDateLabel=\u521B\u5EFA\u65E5\u671F
updateDateLabel=\u66F4\u65B0\u65E5\u671F
titleLabel=\u6807\u9898
title1Label=\u6807\u9898\uFF1A
content1Label=\u6B63\u6587\uFF1A
abstract1Label=\u6458\u8981\uFF1A
publishLabel=\u53D1\u5E03
unPublishLabel=\u53D6\u6D88\u53D1\u5E03
urlLabel=URL
url1Label=URL (\u8BF7\u4EE5\u534F\u8BAE\u5F00\u5934\uFF0C\u5982: http://)\uFF1A
addLinkLabel=\u6DFB\u52A0\u94FE\u63A5
updateLinkLabel=\u66F4\u65B0\u94FE\u63A5
archiveLabel=\u5B58\u6863
archive1Label=\u5B58\u6863\uFF1A
yearLabel=\u5E74
monthLabel=\u6708
blogSyncLabel=\u535A\u5BA2\u540C\u6B65
pageLabel=\u9875\u9762
pageMgmtLabel=\u9875\u9762\u7BA1\u7406
othersLabel=\u5176\u4ED6
fileListLabel=\u6587\u4EF6\u7BA1\u7406
submitUploadLabel=\u4E0A\u4F20
fileNameLabel=\u6587\u4EF6\u540D
paramSettingsLabel=\u53C2\u6570\u8BBE\u7F6E
skinLabel=\u76AE\u80A4
signLabel=\u7B7E\u540D\u6863
sign1Label=\u7B7E\u540D\u6863\uFF1A
noSignLabel=\u4E0D\u4F7F\u7528\u7B7E\u540D\u6863
signIsNullLabel=\u8BE5\u7B7E\u540D\u6863\u4E3A\u7A7A
statisticLabel=\u535A\u5BA2\u7EDF\u8BA1
viewLabel=\u6D4F\u89C8
countLabel=\u7BC7
viewCount1Label=\u6D4F\u89C8\u6B21\u6570\uFF1A
articleCount1Label=\u6587\u7AE0\u603B\u6570\uFF1A
commentCountLabel=\u8BC4\u8BBA\u6570
commentCount1Label=\u8BC4\u8BBA\u603B\u6570\uFF1A
commentEmotions1Label=\u8868\u60C5\uFF1A
commentEmotionsLabel=\u8868\u60C5
commentName1Label=\u59D3\u540D\uFF1A
commentNameLabel=\u59D3\u540D
commentEmail1Label=\u90AE\u7BB1\uFF1A
commentEmailLabel=\u90AE\u7BB1
commentURL1Label=URL\uFF1A
commentURLLabel=URL
commentContent1Label=\u8BC4\u8BBA\u5185\u5BB9\uFF1A
commentContentLabel=\u8BC4\u8BBA\u5185\u5BB9
getDateLabel=\u83B7\u53D6\u65E5\u671F
getArticleLabel=\u83B7\u53D6\u6587\u7AE0
selectDateLabel=\u9009\u62E9\u65E5\u671F
selectDate1Label=\u9009\u62E9\u65E5\u671F\uFF1A
importLabel=\u5BFC\u5165
chooseBlog1Label=\u8BF7\u9009\u62E9\u9700\u8981\u7BA1\u7406\u7684\u535A\u5BA2\uFF1A
blogArticleImportLabel=\u6587\u7AE0\u5BFC\u5165
blogSyncMgmtLabel=\u535A\u5BA2\u540C\u6B65\u7BA1\u7406
syncMgmtLabel=\u540C\u6B65\u7BA1\u7406\u535A\u5BA2
userName1Label=\u7528\u6237\u540D\uFF1A
userPassword1Label=\u5BC6\u7801\uFF1A
syncPostLabel=\u540C\u6B65\u53D1\u5E03
syncUpdateLabel=\u540C\u6B65\u66F4\u65B0
syncRemoveLabel=\u540C\u6B65\u5220\u9664
categoryLabel=\u5206\u7C7B
noticeBoard1Label=\u516C\u544A\uFF1A
noticeBoardLabel=\u516C\u544A
htmlhead1Label=HTML head\uFF1A
indexTagDisplayCnt1Label= \u9996\u9875\u6807\u7B7E\u663E\u793A\u6570\uFF1A
indexRecentArticleDisplayCnt1Label=\u6700\u65B0\u6587\u7AE0\u663E\u793A\u6570\u76EE\uFF1A
indexRecentCommentDisplayCnt1Label=\u6700\u65B0\u8BC4\u8BBA\u663E\u793A\u6570\u76EE\uFF1A
indexMostCommentArticleDisplayCnt1Label=\u8BC4\u8BBA\u6700\u591A\u6587\u7AE0\u663E\u793A\u6570\u76EE\uFF1A
indexMostViewArticleDisplayCnt1Label=\u8BBF\u95EE\u6700\u591A\u6700\u591A\u6587\u7AE0\u663E\u793A\u6570\u76EE\uFF1A
relevantArticlesDisplayCnt1Label=\u76F8\u5173\u9605\u8BFB\u663E\u793A\u6570\u76EE\uFF1A
randomArticlesDisplayCnt1Label=\u968F\u673A\u9605\u8BFB\u663E\u793A\u6570\u76EE\uFF1A
externalRelevantArticlesDisplayCnt1Label=\u7AD9\u5916\u76F8\u5173\u9605\u8BFB\u663E\u793A\u6570\u76EE\uFF1A
windowSize1Label=\u5206\u9875\u9875\u7801\u6700\u5927\u5BBD\u5EA6\uFF1A
pageSize1Label=\u5206\u9875\u6BCF\u9875\u663E\u793A\u6587\u7AE0\u6570\uFF1A
blogTitle1Label=\u535A\u5BA2\u6807\u9898\uFF1A
blogSubtitle1Label=\u535A\u5BA2\u5B50\u6807\u9898\uFF1A
blogHost1Label=\u535A\u5BA2\u5730\u5740\uFF1A
submmitCommentLabel=\u63D0\u4EA4\u8BC4\u8BBA
saveLabel=\u4FDD\u5B58
tagLabel=\u6807\u7B7E
tagsLabel=\u6807\u7B7E
importedLabel=\u5DF2\u5BFC\u5165
captcha1Label=\u9A8C\u8BC1\u7801\uFF1A
captchaLabel=\u9A8C\u8BC1\u7801
indexLabel=\u9996\u9875
nextArticle1Label=\u65B0\u4E00\u7BC7\uFF1A
previousArticle1Label=\u65E7\u4E00\u7BC7\uFF1A
updatedLabel=\u6709\u66F4\u65B0\uFF01
topArticleLabel=\u7F6E\u9876\uFF01
CSDNBlogLabel=CSDN \u535A\u5BA2
BlogJavaLabel=BlogJava
CnBlogsLabel=\u535A\u5BA2\u56ED
previousPageLabel=\u4E0A\u4E00\u9875
nextPagePabel=\u4E0B\u4E00\u9875
firstPageLabel=\u7B2C\u4E00\u9875
lastPageLabel=\u6700\u540E\u4E00\u9875
returnTo1Label=\u8FD4\u56DE\uFF1A
tencentLabel=\u817E\u8BAF
appKey1Label=App Key:
appSecret1Label=App Secret:
postToTencentMicroblogWhilePublishArticleLabel=\u53D1\u6587\u7AE0\u65F6\u540C\u6B65\u5230\u817E\u8BAF\u5FAE\u535A\uFF1A
postToCommunityLabel=\u53D1\u5E03\u5230\u793E\u533A\uFF1A
authorizeTencentMicroblog1Label=\u70B9\u51FB\u56FE\u6807\u8FDB\u884C\u6388\u6743:
googleLabel=Google
OAuthConsumerSecret1Label=OAuth Consumer Secret\uFF1A
atomLabel=Atom
relevantArticles1Label=\u76F8\u5173\u9605\u8BFB\uFF1A
randomArticles1Label=\u968F\u673A\u9605\u8BFB\uFF1A
externalRelevantArticles1Label=\u7AD9\u5916\u76F8\u5173\u9605\u8BFB\uFF1A
metaKeywords1Label=Meta Keywords:
metaDescription1Label=Meta Description:
removeUnusedTagsLabel=\u79FB\u9664\u672A\u4F7F\u7528\u6807\u7B7E
goTopLabel=\u9876\u90E8
permalink1Label=\u94FE\u63A5\uFF1A
permalinkLabel=\u94FE\u63A5
killBrowserLabel=<h2>\u8BA9\u6211\u4EEC\u653E\u5F03\u4F7F\u7528\u90A3\u4E9B\u8FC7\u65F6\u3001\u4E0D\u5B89\u5168\u7684\u6D4F\u89C8\u5668\u5427\uFF01</h2><p>\u4E3A\u4E86\u8BA9\u6D4F\u89C8\u5668\u66F4\u597D\u7684\u53D1\u5C55\uFF0C\u4EBA\u7C7B\u66F4\u52A0\u7684\u8FDB\u6B65\uFF0C\u62E5\u6709\u66F4\u597D\u7684\u4F53\u9A8C\uFF0C\u8BA9\u6211\u4EEC\u653E\u5F03\u4F7F\u7528\u90A3\u4E9B\u8FC7\u65F6\u3001\u4E0D\u5B89\u5168\u7684\u6D4F\u89C8\u5668\u3002</p>\u60A8\u53EF\u4EE5\u4E0B\u8F7D<ul><li><a href="http://www.mozilla.com/" target="_blank">\u706B\u72D0</a></li><li><a href="http://www.google.com/chrome" target="_blank">\u8C37\u6B4C\u6D4F\u89C8\u5668</a></li><li><a href="http://windows.microsoft.com/en-US/internet-explorer/downloads/ie" target="_blank">IE8 / IE9</a></li><li><a href="http://www.maxthon.com/" target="_blank">\u9068\u6E38</a>\u6216\u8005<a href="http://www.google.com" target="_blank">\u5176\u5B83\u6D4F\u89C8\u5668</a>.</li></ul>
readmoreLabel=\u9605\u8BFB\u66F4\u591A\u00BB
readmore2Label=\u9605\u8BFB\u66F4\u591A
replyLabel=\u56DE\u590D\u00BB
homeLabel=\u9996\u9875
enableArticleUpdateHint1Label=\u542F\u7528\u6587\u7AE0\u66F4\u65B0\u63D0\u793A\uFF1A
allowVisitDraftViaPermalink1Label=\u5141\u8BB8\u901A\u8FC7\u94FE\u63A5\u8BBF\u95EE\u8349\u7A3F\uFF1A
author1Label=\u4F5C\u8005\uFF1A
authorLabel=\u4F5C\u8005
keyOfSolo1Label=Solo Key\uFF1A
articleLabel=\u6587\u7AE0
tagArticlesLabel=\u6807\u7B7E\u6587\u7AE0\u5217\u8868
dateArticlesLabel=\u5B58\u6863\u6587\u7AE0\u5217\u8868
authorArticlesLabel=\u4F5C\u8005\u6587\u7AE0\u5217\u8868
indexArticleLabel=\u9996\u9875\u6587\u7AE0\u5217\u8868
allTagsLabel=\u6807\u7B7E\u5899
customizedPageLabel=\u81EA\u5B9A\u4E49\u9875\u9762
killBrowserPageLabel=Kill Browser Page
pageNumLabel=\u9875\u53F7
####
forbiddenLabel=\u64CD\u4F5C\u88AB\u7981\u6B62\uFF01
sorryLabel=\u5BF9\u4E0D\u8D77\uFF01
notFoundLabel=\u627E\u4E0D\u5230\uFF01
unPulbishSuccLabel=\u53D6\u6D88\u53D1\u5E03\u6210\u529F
unPulbishFailLabel=\u53D6\u6D88\u53D1\u5E03\u5931\u8D25
removeSuccLabel=\u5220\u9664\u6210\u529F
removeFailLabel=\u5220\u9664\u5931\u8D25
removeUserFailSkinNeedMulUsersLabel=\u5220\u9664\u5931\u8D25\uFF0C\u5F53\u524D\u4F7F\u7528\u7684\u76AE\u80A4\u9700\u8981\u591A\u7528\u6237\u652F\u6301
putTopSuccLabel=\u7F6E\u9876\u6210\u529F
putTopFailLabel=\u7F6E\u9876\u5931\u8D25
cancelTopSuccLabel=\u53D6\u6D88\u7F6E\u9876\u6210\u529F
cancelTopFailLabel=\u53D6\u6D88\u7F6E\u9876\u5931\u8D25
addSuccLabel=\u6DFB\u52A0\u6210\u529F
addFailLabel=\u6DFB\u52A0\u5931\u8D25
updateSuccLabel=\u66F4\u65B0\u6210\u529F
updateFailLabel=\u66F4\u65B0\u5931\u8D25
updatePreferenceFailNeedMulUsersLabel=\u66F4\u65B0\u5931\u8D25\uFF0C\u9700\u8981\u591A\u7528\u6237\u624D\u80FD\u4F7F\u7528\u9009\u62E9\u7684\u76AE\u80A4
setFailLabel=\u8BBE\u7F6E\u5931\u8D25
setSuccLabel=\u8BBE\u7F6E\u6210\u529F
getFailLabel=\u83B7\u53D6\u5931\u8D25
noSettingLabel=\u8BE5\u535A\u5BA2\u65E0\u8D26\u53F7\uFF0C\u8BF7\u6DFB\u52A0
getSuccLabel=\u83B7\u53D6\u6210\u529F
importSuccLabel=\u5BFC\u5165\u6210\u529F :-)
importFailLabel=\u90E8\u5206\u5BFC\u5165\u5931\u8D25 %>_<%
noCommentLabel=\u6682\u65E0\u8BC4\u8BBA
captchaErrorLabel=\u9A8C\u8BC1\u7801\u9519\u8BEF
inputErrorLabel=\u8F93\u5165\u9519\u8BEF\uFF01
gotoLabel=\u8DF3\u8F6C
passwordEmptyLabel=\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A\uFF01
blogEmptyLabel=\u8BF7\u9009\u62E9\u535A\u5BA2\u670D\u52A1\uFF01
blogArticleEmptyLabel=\u8BF7\u9009\u62E9\u9700\u8981\u5BFC\u5165\u7684\u6587\u7AE0
nameTooLongLabel=\u59D3\u540D\u53EA\u80FD\u4E3A 2 \u5230 20 \u4E2A\u5B57\u7B26\uFF01
mailCannotEmptyLabel=\u90AE\u7BB1\u4E0D\u80FD\u4E3A\u7A7A\uFF01
mailInvalidLabel=\u90AE\u7BB1\u683C\u5F0F\u4E0D\u6B63\u786E\uFF01
commentContentCannotEmptyLabel=\u8BC4\u8BBA\u5185\u5BB9\u53EA\u80FD\u4E3A 2 \u5230 500 \u4E2A\u5B57\u7B26\uFF01
captchaCannotEmptyLabel=\u9A8C\u8BC1\u7801\u4E0D\u80FD\u4E3A\u7A7A\uFF01
loadingLabel=\u8F7D\u5165\u4E2D....
titleEmptyLabel=\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A\uFF01
contentEmptyLabel=\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\uFF01
orderEmptyLabel=\u5E8F\u53F7\u4E0D\u80FD\u4E3A\u7A7A\uFF01
abstractEmptyLabel=\u6458\u8981\u4E0D\u80FD\u4E3A\u7A7A\uFF01
tagsEmptyLabel=\u6807\u7B7E\u4E0D\u80FD\u4E3A\u7A7A\uFF01
addressEmptyLabel=\u5730\u5740\u4E0D\u80FD\u4E3A\u7A7A\uFF01
noAuthorizationURLLabel=\u4ECE Google \u83B7\u53D6\u6388\u6743\u5730\u5740\u5931\u8D25\uFF0C\u8BF7\u786E\u8BA4\u60A8\u8F93\u5165\u7684 \
<em>Consumer Secret</em> \u662F\u6B63\u786E\u7684\uFF0C\u7136\u540E\u8FDB\u884C\u91CD\u8BD5\u3002
duplicatedPermalinkLabel=\u94FE\u63A5\u91CD\u590D\uFF01
invalidPermalinkFormatLabel=\u975E\u6CD5\u7684\u94FE\u63A5\u683C\u5F0F\uFF01
duplicatedEmailLabel=\u90AE\u4EF6\u5730\u5740\u91CD\u590D\uFF01
refreshAndRetryLabel=\u8BF7\u5237\u65B0\u91CD\u8BD5\uFF01
editorLeaveLabel=\u7F16\u8F91\u5668\u4E2D\u8FD8\u6709\u5185\u5BB9\uFF0C\u662F\u5426\u79BB\u5F00\uFF1F
editorPostLabel=\u7F16\u8F91\u5668\u4E2D\u8FD8\u6709\u5185\u5BB9\uFF0C\u662F\u5426\u6E05\u7A7A\uFF1F
####
confirmRemoveLabel=\u786E\u5B9A\u5220\u9664\uFF1F
confirmInitLabel=\u786E\u5B9A\u8FDB\u884C\u521D\u59CB\u5316\u5417\uFF1F
mobileLabel=\u79FB\u52A8\u7248
responses=\u56DE\u590D
commentSuccess=\u8BC4\u8BBA\u6210\u529F\uFF01
refresh2CComment=&lt; \u9A6C\u4E0A\u5237\u65B0\u9875\u9762\u5C31\u80FD\u770B\u5230\u8BC4\u8BBA\u4E86
readThisPost=\u9605\u8BFB\u5168\u6587
skipToComment=&darr; \u53D1\u8868\u8BC4\u8BBA
searchLabel=\u641C\u7D22
publishing=\u6B63\u5728\u63D0\u4EA4...
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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>
<!-- Let's rock the comments -->
<!-- You can start editing below here... but make a backup first! -->
<div class="comment_wrapper" id="comments">
<#if 0 lt commentList?size>
<h3 onclick="bnc_showhide_coms_toggle();" id="com-head">
${commentList?size} ${responses}
</h3>
</#if>
<ol class="commentlist" id="commentlist">
<#list commentList as comment>
<#include "common-comment.ftl"/>
</#list>
</ol>
<#if article.commentable>
<div id="textinputwrap">
<div id="refresher" style="display:none;">
<img src="${staticServePath}/skins/${skinDirName}/images/good.png" alt="checkmark" />
<h3>${commentSuccess}</h3>
<a href="javascript:this.location.reload();">${refresh2CComment}</a>
</div>
<div id="commentForm">
<h3 id="respond">${postCommentsLabel}</h3>
<#if !isLoggedIn>
<p>
<input type="text" id="commentName" size="22" tabindex="1"/>
<label for="author">${commentNameLabel} *</label>
</p>
<p>
<input type="text" id="commentEmail" size="22" tabindex="2" />
<label for="email">${commentEmailLabel} *</label>
</p>
<p>
<input type="text" id="commentURL" size="22" tabindex="3" />
<label for="url">${commentURLLabel}</label>
</p>
</#if>
<p>
<span id="commentErrorTip" style="display:none;"></span>
</p>
<p><textarea id="comment" tabindex="4"></textarea></p>
<#if !isLoggedIn>
<p>
<input type="text" id="commentValidate" tabindex="5" />
<label for="url">${captchaLabel}</label>
<img id="captcha" alt="validate" src="${servePath}/captcha.do" />
</p>
</#if>
<p>
<input class="reply-button" id="submitCommentButton" type="submit" onclick="page.submitComment();" value="${submmitCommentLabel}" tabindex="6" />
<div id="loading" style="display:none">
<img src="${staticServePath}/skins/${skinDirName}/themes/core/core-images/comment-ajax-loader.gif" alt="" /> <p>${publishing}</p>
</div>
</p>
</div>
</div>
</#if><!--textinputwrap div-->
</div>
</#macro>
<#macro comment_script oId>
<script type="text/javascript" src="${staticServePath}/js/page${miniPostfix}.js?${staticResourceVersion}" charset="utf-8"></script>
<script type="text/javascript">
Page.prototype.submitComment = function(commentId, state) {
if (!state) {
state = '';
}
var tips = this.tips,
type = "article";
if (tips.externalRelevantArticlesDisplayCount === undefined) {
type = "page";
}
if (this.validateComment(state)) {
$("#submitCommentButton" + state).attr("disabled", "disabled");
$("#commentErrorTip" + state).show().html(this.tips.loadingLabel);
var requestJSONObject = {
"oId": tips.oId,
"commentContent": $("#comment" + state).val().replace(/(^\s*)|(\s*$)/g, "")
};
if (!$("#admin").data("login")) {
requestJSONObject = {
"oId": tips.oId,
"commentContent": $("#comment" + state).val().replace(/(^\s*)|(\s*$)/g, ""),
"commentEmail": $("#commentEmail" + state).val(),
"commentURL": Util.proessURL($("#commentURL" + state).val().replace(/(^\s*)|(\s*$)/g, "")),
"commentName": $("#commentName" + state).val().replace(/(^\s*)|(\s*$)/g, ""),
"captcha": $("#commentValidate" + state).val()
};
Cookie.createCookie("commentName", requestJSONObject.commentName, 365);
Cookie.createCookie("commentEmail", requestJSONObject.commentEmail, 365);
Cookie.createCookie("commentURL", $("#commentURL" + state).val().replace(/(^\s*)|(\s*$)/g, ""), 365);
}
if (state === "Reply") {
requestJSONObject.commentOriginalCommentId = commentId;
}
$.ajax({
type: "POST",
url: latkeConfig.servePath + "/add-" + type + "-comment.do",
cache: false,
contentType: "application/json",
data: JSON.stringify(requestJSONObject),
success: function(result) {
$("#submitCommentButton" + state).removeAttr("disabled");
if (!result.sc) {
$("#commentValidate" + state).val("").focus();
$("#commentErrorTip" + state).html(result.msg);
$("#captcha" + state).attr("src", "/captcha.do?code=" + Math.random());
$wpt('#commentErrorTip' + state).show();
$wpt("#loading").fadeOut(400);
return;
}
$wpt("#commentForm").hide();
$wpt("#loading").fadeOut(400);
$wpt("#refresher").fadeIn(400);
$("#comment" + state).val("");
$("#commentValidate" + state).val("");
$("#replyForm").remove();
}, // end success
error: function() {
} //end error
});
}
};
var replyTo = function(id) {
var commentFormHTML = "<div id='replyForm'>";
page.addReplyForm(id, commentFormHTML, "</div>");
};
var page = new Page({
"nameTooLongLabel": "${nameTooLongLabel}",
"mailCannotEmptyLabel": "${mailCannotEmptyLabel}",
"mailInvalidLabel": "${mailInvalidLabel}",
"commentContentCannotEmptyLabel": "${commentContentCannotEmptyLabel}",
"captchaCannotEmptyLabel": "${captchaCannotEmptyLabel}",
"loadingLabel": "${loadingLabel}",
"oId": "${oId}",
"skinDirName": "${skinDirName}",
"blogHost": "${blogHost}",
"randomArticles1Label": "${randomArticles1Label}",
"externalRelevantArticles1Label": "${externalRelevantArticles1Label}"
});
(function() {
page.load();
// emotions
page.replaceCommentsEm("#commentlist .combody");
<#nested>
})();
</script>
</#macro>
\ No newline at end of file
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, b3log.org & hacpai.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<#macro head title>
<meta charset="utf-8" />
<title>${title}</title>
<#nested>
<meta name="author" content="${blogTitle?html}" />
<meta name="generator" content="Solo" />
<meta name="copyright" content="B3log" />
<meta name="owner" content="B3log Team" />
<meta name="revised" content="${blogTitle?html}, ${year}" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=yes" />
<meta http-equiv="Window-target" content="_top" />
<link type="text/css" rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/themes/default/style.css?${staticResourceVersion}" charset="utf-8" />
<link rel="manifest" href="${servePath}/manifest.json">
<link rel="search" type="application/opensearchdescription+xml" title="${title}" href="/opensearch.xml">
<style type="text/css">
#headerbar, #wptouch-login, #wptouch-search {
background: #000000 url(/skins/${skinDirName}/themes/core/core-images/head-fade-bk.png);
}
#headerbar-title, #headerbar-title a {
color: #eeeeee;
}
#wptouch-menu-inner a:hover {
color: #006bb3;
}
#catsmenu-inner a:hover {
color: #006bb3;
}
#drop-fade {
background: #333333;
}
a, h3#com-head {
color: #006bb3;
}
a.h2, a.sh2, .page h2 {
font-family: 'Helvetica Neue';
}
a.h2{
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
</style>
<link href="${servePath}/rss.xml" title="RSS" type="application/rss+xml" rel="alternate" />
<link rel="icon" type="image/png" href="${servePath}/favicon.png" />
<script type='text/javascript' src='${staticServePath}/skins/${skinDirName}/js/l10n${miniPostfix}.js?${staticResourceVersion}'></script>
<script type="text/javascript" src="${staticServePath}/js/lib/jquery/jquery.min.js" charset="utf-8"></script>
<script type='text/javascript' src='${staticServePath}/skins/${skinDirName}/themes/core/core.js?${staticResourceVersion}'></script>
<script type="text/javascript">
// Hides the addressbar on non-post pages
function hideURLbar() { window.scrollTo(0,1); }
addEventListener('load', function() { setTimeout(hideURLbar, 0); }, false );
</script>
${htmlHead}
</#macro>
\ No newline at end of file
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 "macro-head.ftl">
<#include "macro-comments.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${page.pageTitle} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${page.pageTitle}" />
<meta name="description" content="${metaDescription}" />
</@head>
</head>
<body class="classic-wptouch-bg ">
<#include "header.ftl">
<div class="content single">
<div class="post article-body">
${page.pageContent}
</div>
<@comments commentList=pageComments article=page></@comments>
</div>
<#include "footer.ftl">
<@comment_script oId=page.oId></@comment_script>
</body>
</html>
\ No newline at end of file
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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="sideNavi" class="side-navi">
<#if "" != noticeBoard>
<ul class="marginTop12">
<li>
<h4>${noticeBoardLabel}</h4>
</li>
<li class="side-navi-notice">${noticeBoard}</li>
</ul>
<div class="line"></div>
</#if>
<#if 0 != recentComments?size>
<ul>
<li>
<h4>${recentCommentsLabel}</h4>
</li>
<li>
<ul id="recentComments">
<#list recentComments as comment>
<li>
<#if "http://" == comment.commentURL>
${comment.commentName}<#else>
<a target="_blank" href="${comment.commentURL}">
${comment.commentName}</a></#if>:
<a rel="nofollow" class='side-comment' href="${servePath}${comment.commentSharpURL}">
${comment.commentContent}
</a>
</li>
</#list>
</ul>
</li>
</ul>
<div class="line"></div>
</#if>
<#if 0 != mostCommentArticles?size>
<ul>
<li>
<h4>${mostCommentArticlesLabel}</h4>
</li>
<li>
<ul>
<#list mostCommentArticles as article>
<li>
<sup>[${article.articleCommentCount}]</sup><a rel="nofollow" title="${article.articleTitle}"
href="${servePath}${article.articlePermalink}">${article.articleTitle}</a>
</li>
</#list>
</ul>
</li>
</ul>
<div class="line"></div>
</#if>
<#if 0 != mostViewCountArticles?size>
<ul>
<li>
<h4>${mostViewCountArticlesLabel}</h4>
</li>
<li>
<ul id="mostViewCountArticles">
<#list mostViewCountArticles as article>
<li>
<sup>[${article.articleViewCount}]</sup><a rel="nofollow" title="${article.articleTitle}" href="${servePath}${article.articlePermalink}">${article.articleTitle}</a>
</li>
</#list>
</ul>
</li>
</ul>
<div class="line"></div>
</#if>
<#if 0 != mostUsedTags?size>
<ul>
<li>
<h4>${popTagsLabel}</h4>
</li>
<li>
<ul>
<#list mostUsedTags as tag>
<li>
<a rel="tag" title="${tag.tagTitle}(${tag.tagPublishedRefCount})" href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}">
${tag.tagTitle}</a>
(${tag.tagPublishedRefCount})
</li>
</#list>
</ul>
</li>
</ul>
<div class="line"></div>
</#if>
<#if 0 != links?size>
<ul>
<li>
<h4>${linkLabel}</h4>
</li>
<li>
<ul id="sideLink">
<#list links as link>
<li>
<a rel="friend" href="${link.linkAddress}" title="${link.linkTitle}" target="_blank">
<img alt="${link.linkTitle}"
src="${faviconAPI}<#list link.linkAddress?split('/') as x><#if x_index=2>${x}<#break></#if></#list>" width="16" height="16" /></a>
<a rel="friend" href="${link.linkAddress}" title="${link.linkTitle}" target="_blank">${link.linkTitle}
</a>
<#-- ${link.linkDescription} -->
</li>
</#list>
</ul>
</li>
</ul>
<div class="line"></div>
</#if>
<#if 0 != archiveDates?size>
<ul>
<li onclick="toggleArchive(this)" class="pointer">
<h4>${archiveLabel} +</h4>
</li>
<li class="none">
<ul>
<#list archiveDates as archiveDate>
<li>
<#if "en" == localeString?substring(0, 2)>
<a href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}"
title="${archiveDate.monthName} ${archiveDate.archiveDateYear}(${archiveDate.archiveDatePublishedArticleCount})">
${archiveDate.monthName} ${archiveDate.archiveDateYear}</a>(${archiveDate.archiveDatePublishedArticleCount})
<#else>
<a href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}"
title="${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}(${archiveDate.archiveDatePublishedArticleCount})">
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}</a>(${archiveDate.archiveDatePublishedArticleCount})
</#if>
</li>
</#list>
</ul>
</li>
</ul>
</#if>
</div>
<ul id="head-category">
<#if 0 != mostUsedCategories?size>
<#list mostUsedCategories as category>
<li>
<a href="${servePath}/category/${category.categoryURI}"
aria-label="${category.categoryTagCnt} ${tagsLabel}"
class="tag tooltipped tooltipped-n">
${category.categoryTitle}</a>
</li>
</#list>
</#if>
</ul>
\ No newline at end of file
#
# Solo - A small and beautiful blogging system written in Java.
# Copyright (c) 2010-2018, 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: Mobile skin.
# Version: 1.0.0.15, Feb 20, 2017
# Author: Liang Ding
#
name=mobile
memo=\u8BF7\u4E0D\u8981\u4ECE\u90E8\u7F72\u76EE\u5F55\u4E2D\u5220\u9664\u8BE5\u76AE\u80A4\uFF0C\u5426\u5219\u79FB\u52A8\u8BBE\u5907\u8BBF\u95EE\u65F6\u535A\u5BA2\u5C06\u4E0D\u53EF\u7528\u3002
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 "macro-head.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${tag.tagTitle} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${tag.tagTitle}"/>
<meta name="description" content="<#list articles as article>${article.articleTitle}<#if article_has_next>,</#if></#list>"/>
</@head>
</head>
<body class="classic-wptouch-bg ">
<#include "header.ftl">
<div class="content single">
<div class="post">
<h2 >${tag1Label}
<a rel="alternate" href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}"><span id="tagArticlesTag">
${tag.tagTitle}
</span>(${tag.tagPublishedRefCount})</a>
</h2>
</div>
</div>
<#include "article-list.ftl">
<#include "footer.ftl">
</body>
</html>
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 "macro-head.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${allTagsLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${allTagsLabel}"/>
<meta name="description" content="<#list tags as tag>${tag.tagTitle}<#if tag_has_next>,</#if></#list>"/>
</@head>
</head>
<body class="classic-wptouch-bg ">
${topBarReplacement}
<#include "header.ftl">
<div class="content single">
<div class="post">
<ul id="tags">
<#list tags as tag>
<span>
<a rel="tag" data-count="${tag.tagPublishedRefCount}"
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}" title="${tag.tagTitle}">
<span>${tag.tagTitle}</span>
(<b>${tag.tagPublishedRefCount}</b>)
</a>
</span>&nbsp;&nbsp;
</#list>
</ul>
</div>
</div>
<#include "footer.ftl">
</body>
</html>
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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/>.
*/
/*
* WPtouch 1.9.x -The WPtouch Core JS File
*/
var $wpt = jQuery.noConflict();
if ( ( navigator.platform == 'iPhone' || navigator.platform == 'iPod' ) && typeof orientation != 'undefined' ) {
var touchStartOrClick = 'touchstart';
} else {
var touchStartOrClick = 'click';
};
/* Try to get out of frames! */
if ( window.top != window.self ) {
window.top.location = self.location.href
}
$wpt.fn.wptouchFadeToggle = function( speed, easing, callback ) {
return this.animate( {
opacity: 'toggle'
}, speed, easing, callback );
};
/**
* @description Cookie 相关操作
* @static
*/
var Cookie = {
/**
* @description 读取 cookie
* @param {String} name cookie key
* @returns {String} 对应 key 的值,如 key 不存在则返回 ""
*/
readCookie: function (name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length));
}
return "";
},
/**
* @description 清除 Cookie
* @param {String} name 清除 key 为 name 的该条 Cookie
*/
eraseCookie: function (name) {
this.createCookie(name,"",-1);
},
/**
* @description 创建 Cookie
* @param {String} name 每条 Cookie 唯一的 key
* @param {String} value 每条 Cookie 对应的值,将被 UTF-8 编码
* @param {Int} days Cookie 保存时间
*/
createCookie: function (name, value, days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires="+date.toGMTString();
}
document.cookie = name+"="+encodeURIComponent(value)+expires+"; path=/";
}
};
function wptouch_switch_confirmation(skin, e ) {
if ( document.cookie && document.cookie.indexOf( 'btouch_switch_toggle' ) > -1 ) {
// just switch
Cookie.createCookie("btouch_switch_toggle", skin, 365);
$wpt( 'a#switch-link' ).toggleClass( 'offimg' );
setTimeout('switch_delayer()', 1250 );
} else {
// ask first
Cookie.createCookie("btouch_switch_toggle", skin, 365);
if ( confirm( "Switch to regular view? \n \n You can switch back again in the top bar." ) ) {
$wpt( 'a#switch-link' ).toggleClass( 'offimg' );
setTimeout( 'switch_delayer()', 1350 );
} else {
e.preventDefault();
e.stopImmediatePropagation();
}
}
}
if ( $wpt( '#prowl-success' ).length ) {
setTimeout( function() {
$wpt( '#prowl-success' ).fadeOut( 350 );
}, 5250 );
}
if ( $wpt( '#prowl-fail' ).length ) {
setTimeout( function() {
$wpt( '#prowl-fail' ).fadeOut( 350 );
}, 5250 );
}
$wpt(function() {
var tabContainers = $wpt( '#menu-head > ul' );
$wpt( '#tabnav a' ).bind(touchStartOrClick, function () {
tabContainers.hide().filter( this.hash ).show();
$wpt( '#tabnav a' ).removeClass( 'selected' );
$wpt( this ).addClass( 'selected' );
return false;
}).filter( ':first' ).trigger( touchStartOrClick );
});
function bnc_showhide_coms_toggle() {
$wpt( '#commentlist' ).wptouchFadeToggle( 350 );
$wpt( 'img#com-arrow' ).toggleClass( 'com-arrow-down' );
$wpt( 'h3#com-head' ).toggleClass( 'comhead-open' );
}
function doWPtouchReady() {
$wpt( '#headerbar-menu a' ).bind( touchStartOrClick, function( e ){
$wpt( '#wptouch-menu' ).wptouchFadeToggle( 350 );
$wpt( '#headerbar-menu a' ).toggleClass( 'open' );
});
$wpt( 'a#searchopen, #wptouch-search-inner a' ).bind( touchStartOrClick, function( e ){
$wpt( '#wptouch-search' ).wptouchFadeToggle( 350 );
});
$wpt( 'a#prowlopen' ).bind( touchStartOrClick, function( e ){
$wpt( '#prowl-message' ).wptouchFadeToggle( 350 );
});
$wpt( 'a#wordtwitopen' ).bind( touchStartOrClick, function( e ){
$wpt( '#wptouch-wordtwit' ).wptouchFadeToggle( 350 );
});
$wpt( 'a#gigpressopen' ).bind( touchStartOrClick, function( e ){
$wpt( '#wptouch-gigpress' ).wptouchFadeToggle( 350 );
});
$wpt( 'a#loginopen, #wptouch-login-inner a' ).bind( touchStartOrClick, function( e ){
$wpt( '#wptouch-login' ).wptouchFadeToggle(350);
});
$wpt( 'a#obook' ).bind( touchStartOrClick, function() {
$wpt( '#bookmark-box' ).wptouchFadeToggle(350);
});
$wpt( '.singlentry img, .singlentry .wp-caption' ).each( function() {
if ( $wpt( this ).width() <= 250 ) {
$wpt( this ).addClass( 'aligncenter' );
}
});
if ( $wpt( '#FollowMeTabLeftSm' ).length ) {
$wpt( '#FollowMeTabLeftSm' ).remove();
}
$wpt( '.post' ).fitVids();
}
$wpt( document ).ready( function() {
doWPtouchReady();
} );
/*!
* FitVids 1.0
* Copyright 2011, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
* Released under the WTFPL license - http://sam.zoy.org/wtfpl/
* Date: Thu Sept 01 18:00:00 2011 -0500
*/
(function( $ ){
$.fn.fitVids = function( options ) {
var settings = {
customSelector: null
}
var div = document.createElement('div'),
ref = document.getElementsByTagName('base')[0] || document.getElementsByTagName('script')[0];
div.className = 'fit-vids-style';
div.innerHTML = '&shy;<style> \
.fluid-width-video-wrapper { \
width: 100%; \
position: relative; \
padding: 0; \
} \
\
.fluid-width-video-wrapper iframe, \
.fluid-width-video-wrapper object, \
.fluid-width-video-wrapper embed { \
position: absolute; \
top: 0; \
left: 0; \
width: 100%; \
height: 100%; \
} \
</style>';
ref.parentNode.insertBefore(div,ref);
if ( options ) {
$.extend( settings, options );
}
return this.each(function(){
var selectors = [
"iframe[src^='http://player.vimeo.com']",
"iframe[src^='http://www.youtube.com']",
"iframe[src^='http://www.kickstarter.com']",
"object",
"embed"
];
if (settings.customSelector) {
selectors.push(settings.customSelector);
}
var $allVideos = $(this).find(selectors.join(','));
$allVideos.each(function(){
var $this = $(this),
height = this.tagName == 'OBJECT' ? $this.attr('height') : $this.height(),
aspectRatio = height / $this.width();
$this.wrap('<div class="fluid-width-video-wrapper" />').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%");
$this.removeAttr('height').removeAttr('width');
});
});
}
})( jQuery );
\ No newline at end of file
/**
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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/>.
*/
/* @override
http://beta.bravenewcode.com/wordpress/wp-content/plugins/wptouch/themes/default/style.css
http://www.bravenewcode.com/wordpress/wp-content/plugins/wptouch/themes/default/style.css
*/
/*
Theme Name: WPtouch Mobile Plugin & Theme For WordPress
Theme URI: http://www.bravenewcode.com/wptouch/
Description: A slick theme for your blog or website that is shown only when visitors are using an iPhone, iPod touch, or Android Mobile Device
Author: BraveNewCode Inc.
Author URI: http://www.bravenewcode.com/
*/
/* @group Body and Theme-Wide Elements */
body {
margin: 0;
padding: 0;
font: 12px Helvetica;
-webkit-text-size-adjust: none;
min-height: 460px;
background-repeat: repeat;
background-position: 0 0;
}
ul {
margin: 0;
padding: 0 20px 0 20px;
list-style-type: circle;
list-style-position: outside;
}
ol {
margin: 0;
padding: 0 25px 0 20px;
list-style-type: decimal;
list-style-position: outside;
}
li {
margin-bottom: 5px;
color: #555;
list-style-type: disc;
text-align: left;
padding-bottom: 5px;
font-size: 12px;
margin-right: -15px;
padding-top: 0;
}
a {
text-decoration: none;
}
input, textarea {
font: 12px Helvetica;
max-width: 96%;
}
img {
vertical-align: middle;
}
code {
font-family: Courier, "Courier New", mono;
color: red;
}
blockquote {
text-align: left;
padding: 1px 10px 1px 15px;
font-size: 90%;
border-left: 2px solid #ccc;
margin: 5px 15px;
}
.clearer {
clear: both;
}
.content {
margin-top: 15px;
position: relative;
}
.result-text {
color: #475d79;
text-shadow: #eee 1px 1px 0;
font-size: 15px;
font-weight: bold;
margin-bottom: 10px;
margin-left: 10px;
letter-spacing: 0;
border-style: none;
}
.result-text-footer {
color: #475d79;
text-shadow: #eee 1px 1px 0;
letter-spacing: 0;
font-size: 15px;
font-weight: bold;
margin-bottom: 10px;
margin-left: 10px;
text-align: center;
display: block;
}
.pageentry h1, .mainentry h1 {
font-size: 22px;
}
.pageentry h2, .mainentry h2 {
font-size: 18px;
text-shadow: #f9f9f9 -1px -1px 0;
text-align: left;
padding-bottom: 10px;
color: #222;
}
.pageentry h3, .mainentry h3 {
text-align: left;
color: #666;
font-size: 15px;
border-bottom: 1px solid #adadad;
border-top: 1px solid #adadad;
padding: 10px;
font-weight: bold;
line-height: 14px;
background-color: #eee;
margin: 15px -10px;
text-shadow: #fff -1px 1px 0;
}
.pageentry h4, .mainentry h4 {
font-size: 13px;
text-shadow: #f9f9f9 -1px -1px 0;
padding: 0 0 10px;
padding-bottom: 10px;
color: #666;
}
.pageentry h5, .mainentry h5 {
text-shadow: #f9f9f9 -1px -1px 0;
font-size: 12px;
padding: 0;
}
.mainentry img, #singlentry img, .pageentry img, ol.commentlist li img {
max-width: 100%;
height: auto;
}
.fontsize {
font-size: 1.2em;
line-height: 140%;
}
.aligncenter {
text-align: center;
margin-left: auto;
display: block;
margin-right: auto;
}
/* @end */
/* @group Header */
#headerbar *, #wptouch-menu * {
-webkit-touch-callout: none;
}
#headerbar {
width: 100%;
background-position: 0 0;
background-repeat: repeat-x;
height: 45px;
border-bottom: 1px solid #1e1e1e;
font-size: 19px;
-webkit-touch-callout: none;
}
#headerbar-title {
text-shadow: #242424 -1px -1px 1px;
padding-top: 10px;
padding-left: 10px;
display: block;
margin: 0;
border-style: none;
padding-bottom: 4px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
width: 85%;
font-weight: bold;
height: 29px;
}
#headerbar-title a {
text-decoration: none;
letter-spacing: -1px;
position: relative;
font-family: HelveticaNeue-Bold, sans-serif;
}
#headerbar-title img#logo-icon {
position: relative;
margin-right: 7px;
max-width: 30px;
float: left;
width: 28px;
height: 28px;
padding: 0;
bottom: 1px;
}
#headerbar-menu {
position: absolute;
top: 0;
right: 0;
margin: 0;
padding: 0;
}
#headerbar-menu a {
height: 45px;
display: block;
background: url(../core/core-images/wptouch-menu-dropper.png) 0 0;
width: 30px;
margin: 0;
padding: 0;
}
#headerbar-menu .open {
background-position: 0 -45px;
}
/* @group Sub-Menu */
#drop-fade {
width: 100%;
display: block;
position: relative;
-webkit-box-shadow: #000 -3px 2px 3px;
text-align: right;
border-top: 1px solid #3e3e3e;
height: 20px;
top: 0;
z-index: 1;
}
#drop-fade a.top {
margin-right: 8px;
position: relative;
bottom: 3px;
color: #eee;
text-shadow: #000000 0px -1px 1px;
display: block;
float: right;
font: bold 11px "Helvetica Neue", Helvetica, Arial, sans-serif;
height: 18px;
padding: 6px 2px 2px 0;
}
#drop-fade #prowlopen {
padding-left: 18px;
background: url(../core/core-images/menu-sprite.png) no-repeat 2px -60px;
padding-top: 3px;
padding-bottom: 1px;
margin-top: 3px;
}
#drop-fade #wordtwitopen {
padding-left: 18px;
background: url(../core/core-images/menu-sprite.png) no-repeat 2px -74px;
}
#drop-fade #searchopen {
padding-left: 18px;
background: url(../core/core-images/menu-sprite.png) no-repeat 2px -94px;
height: 15px;
overflow: hidden;
padding-bottom: 0;
padding-top: 3px;
margin-top: 3px;
}
#drop-fade #gigpressopen {
padding-left: 18px;
background: url(../core/core-images/menu-sprite.png) no-repeat 2px -109px;
padding-top: 3px;
padding-bottom: 1px;
margin-top: 3px;
}
/* @end */
/* @group DropDown Menu */
.dropper {
width: 100%;
position: relative;
z-index: 1;
margin: 0;
padding: 0;
border-top: 1px solid #1b1b1b;
font-size: 13px;
background-color: #2c2c2c;
}
.dropper ul {
position: relative;
list-style-type: none;
margin: 0;
padding: 0;
}
.dropper ul#head-tags li, .dropper ul#head-cats li {
width: 100%;
margin: 0;
padding: 0;
}
.dropper ul#head-pages li,
.dropper ul#head-cats li,
.dropper ul#head-tags li,
.dropper ul#head-account li,
.dropper ul#head-category li,
ul#tweets li {
border-bottom: 1px solid #1d1d1d;
background: url(../core/core-images/arrow.png) no-repeat right center;
border-top: 1px solid #363636;
padding: 0;
text-align: left;
margin: 0;
list-style: none;
}
.dropper ul#head-account li.text {
color: #eee;
text-shadow: #111 0 -1px 1px;
text-align: center;
background-image: none;
padding-top: 25px;
padding-bottom: 25px;
text-transform: none;
}
.dropper ul#head-account li.text a {
display: inline;
margin: 0;
padding: 0;
text-decoration: underline;
}
.dropper ul#head-cats li:hover,
.dropper ul#head-tags li li:hover,
.dropper ul#head-category li li:hover,
.dropper ul#head-pages li:hover {
background-color: #222;
border-top: 1px solid #222;
position: relative;
z-index: 2;
}
.dropper a {
font-weight: bold;
display: block;
text-shadow: #000 -1px -1px 1px;
color: #d2d2d2;
margin: 0;
width: auto;
padding: 12px 35px 12px 15px;
text-align: left;
}
.dropper ul#head-tags a {
padding-top: 11px;
padding-bottom: 12px;
}
.dropper ul#head-cats a {
padding-top: 12px;
padding-bottom: 12px;
}
/* @group Tab Menus */
#wptouch-menu {
position: absolute;
z-index: 2;
top: 45px;
-webkit-box-shadow: #333 -6px 6px 6px;
display: none;
}
#wptouch-menu-inner {
position: relative;
}
#wptouch-menu-inner img {
float: left;
position: relative;
bottom: 7px;
width: 28px;
padding-right: 10px;
right: 0;
}
#tabnav {
background-color: #444;
padding-top: 3px;
border-bottom: 1px solid #1b1b1b;
border-top: 1px solid #575757;
padding-left: 7px;
height: 38px;
margin-bottom: -1px;
}
#tabnav img{
position: relative;
margin-top: 3px;
max-width: 30px;
float: left;
width: 28px;
height: 28px;
padding: 0;
bottom: 1px;
}
#tabnav a {
display: inline-block;
margin: 0;
padding: 2px 8px 7px;
color: #999;
text-shadow: #111 0 -1px 1px;
}
#tabnav a.selected {
background-color: #2c2c2c;
position: relative;
z-index: 1;
-webkit-border-top-left-radius: 4px;
-webkit-border-top-right-radius: 4px;
border: 1px solid #1b1b1b;
margin-left: -1px;
margin-right: -1px;
color: #fff !important;
-webkit-box-shadow: #222 0px -2px 3px;
border-bottom: 1px solid #2c2c2c;
text-shadow: #000000 0 -1px 1px;
}
#tabnav a:hover, #tabnav a:active {
color: #fff !important;
}
/* @end */
/* @end */
/* @group WordTwit Menu */
#wptouch-wordtwit {
position: absolute;
border-top: 1px solid #3e3e3e;
background-color: #222;
top: 20px;
text-align: left;
z-index: 2;
left: 0;
right: 0;
}
#wptouch-wordtwit #twitter-style-bar {
display: block;
border-top: 1px solid #1e1e1e;
}
#wordtwit-avatar {
text-align: left;
padding-bottom: 10px;
-webkit-border-radius: 8px;
padding-left: 5px;
padding-top: 5px;
border: 1px solid #555;
background-image: none;
background-color: #444;
margin: 10px;
}
#wordtwit-avatar img {
-webkit-box-reflect: below -1px -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(0.8, transparent), to(white));
border: 1px solid #222;
float: left;
margin-right: 15px;
-webkit-border-radius: 2px;
width: 32px;
height: 32px;
}
#wptouch-wordtwit a#follow-arrow {
border-style: none;
width: 18px;
height: 18px;
position: absolute;
top: 22px;
right: 15px;
padding: 5px;
margin: 0;
}
#wordtwit-avatar p {
padding: 0;
margin: 0;
color: #777;
}
#wordtwit-avatar p.twitter_username {
color: #eee;
text-shadow: #222 0 -1px 1px;
font-size: 15px;
font-weight: bold;
}
#wordtwit-avatar a {
display: inline-block;
font-size: 11px;
color: #999;
text-shadow: #222 0 -1px 0;
padding: 3px 0 0;
}
#wptouch-wordtwit ul#tweets li {
color: #ccc;
font-size: 12px;
text-shadow: #000000 0 -1px 0;
background-image: none;
background-color: #2c2c2c;
padding: 10px 50px 10px 10px;
}
#wptouch-wordtwit ul#tweets li:last-child {
padding-bottom: 30px;
}
#wptouch-wordtwit li p.time {
color: #777;
font-size: 11px;
padding: 0;
margin: 0;
}
/* @end */
/* @group Push Message Area */
#prowl-message {
color: #eee;
text-shadow: #000000 0 -1px 1px;
clear: both;
padding: 10px;
text-align: left;
font-size: 11px;
border-top: 1px solid #3e3e3e;
background-color: #222;
position: absolute;
top: 20px;
right: 0;
left: 0;
}
#prowl-message #push-style-bar {
display: block;
border-top: 1px solid #1e1e1e;
margin-left: -10px;
margin-right: -10px;
margin-top: -10px;
padding-top: 10px;
}
#prowl-message form p {
font-weight: bold;
font-size: 12px;
position: relative;
margin-bottom: 10px;
margin-top: 10px;
clear: both;
}
#prowl-message label {
margin-left: 5px;
}
#prowl-message input {
width: 60%;
-webkit-border-radius: 10px;
padding: 3px;
color: #222;
border: 1px solid #1b1b1b;
font: 14px "Helvetica Neue", Helvetica, Geneva, Arial, sans-serif;
}
#prowl-message input#prowl-submit {
width: 100px;
text-align: center;
color: #fff;
text-shadow: #333 0 -1px 1px;
font-weight: bold;
border: 1px solid #333;
margin-top: 10px;
float: right;
}
#prowl-message textarea {
width: 98%;
-webkit-border-radius: 10px;
padding: 3px;
color: #222;
border: 1px solid #1b1b1b;
height: 70px;
overflow: auto;
margin-top: 2px;
font: 14px "Helvetica Neue", Helvetica, Geneva, Arial, sans-serif;
}
#prowl-message h4 {
font-size: 14px;
margin: 10px 0 15px;
padding: 0;
}
#prowl-message img {
float: left;
margin-right: 10px;
}
/* @group Success */
#prowl-success {
color: #eee;
text-shadow: #000000 0 -1px 1px;
font: bold 16px "Helvetica Neue", Helvetica, Geneva, Arial, sans-serif;
text-align: center;
background: #000 url(../core/core-images/push-success.png) no-repeat center 50px;
position: absolute;
top: 0;
left: 0;
z-index: 1000;
opacity: 0.9;
width: 90%;
margin-left: 5%;
margin-top: 25px;
-webkit-border-radius: 15px;
-webkit-box-shadow: #444 0px 0px 15px;
}
#prowl-success p, #prowl-fail p {
margin-top: 125px;
margin-left: 20%;
margin-right: 20%;
}
#prowl-fail {
color: #eee;
text-shadow: #000000 0 -1px 1px;
font: bold 16px "Helvetica Neue", Helvetica, Geneva, Arial, sans-serif;
text-align: center;
background: #000 url(../core/core-images/push-fail.png) no-repeat center 50px;
position: absolute;
top: 0;
left: 0;
z-index: 1000;
opacity: 0.9;
width: 90%;
margin-left: 5%;
margin-top: 25px;
-webkit-border-radius: 15px;
-webkit-box-shadow: #444 0px 0px 15px;
}
/* @end */
/* @end */
/* @group Login & Search */
#wptouch-login {
position: absolute;
top: 0;
left: 0;
z-index: 1;
width: 100%;
display: none;
}
#wptouch-login-inner {
padding-top: 8px;
width: 100%;
height: 35px;
background-repeat: repeat-x;
text-align: center;
padding-bottom: 2px;
}
#wptouch-login input#log {
width: 120px;
-webkit-border-radius: 10px;
padding: 3px;
font-size: 13px;
color: #222;
font-weight: bold;
border: 1px solid #1b1b1b;
}
#wptouch-login input#pwd {
width: 120px;
-webkit-border-radius: 10px;
padding: 3px;
font-size: 13px;
color: #222;
font-weight: bold;
border: 1px solid #1b1b1b;
margin-left: 5px;
}
#wptouch-login input#logsub {
visibility: hidden;
width: 0;
height: 0;
float: left;
overflow: hidden;
display: inline;
margin: 0 0 0 -22px;
padding: 0;
}
#wptouch-search {
position: absolute;
top: 0;
left: 0;
z-index: 1;
width: 100%;
display: none;
}
#wptouch-search-inner {
width: 100%;
height: 40px;
background-repeat: repeat-x;
text-align: center;
padding-top: 5px;
}
input#search {
-webkit-border-radius: 10px;
padding: 4px;
width: 80%;
font-size: 13px;
color: #222;
text-align: left;
margin-top: 6px;
border: 1px solid #1b1b1b;
font-weight: bold;
}
input#search-submit {
display: none;
}
img.head-close {
display: inline;
position: relative;
top: 0px;
left: 5px;
}
/* @end */
/* @end */
/* @group Index Page */
.post {
background-color: #fff;
padding: 10px;
margin-bottom: 12px;
margin-right: 10px;
margin-left: 10px;
border: 1px solid #b1b1b1;
-webkit-border-radius: 8px;
position: relative;
z-index: 0;
box-shadow: rgba(255,255,255,.8) 0px 1px 0px;
}
.big {
height: 200px;
}
a.post-arrow {
width: 22px;
height: 21px;
float: right;
margin-top: 1px;
padding: 0;
background: #f4f4f4 url(../core/core-images/post-arrow.png) no-repeat center 8px;
border: 1px solid #ddd;
-webkit-border-radius: 5px;
-webkit-transform: scale(1.0) rotate(0deg);
-webkit-transition-duration: 0.6s;
-webkit-touch-callout: none;
}
a.post-arrow-down {
-webkit-transform: scale(1.0) rotate(180deg);
-webkit-transition-duration: 0.6s;
background: #dfe3e3 url(../core/core-images/post-arrow.png) no-repeat center -12px;
border: 1px solid #b8b8b8;
}
a.h2 {
color: #222;
text-decoration: none;
display: block;
margin-top: 2px;
text-align: left;
letter-spacing: -1px;
margin-bottom: 4px;
font-size: 15px;
font-weight: bold;
line-height: 19px;
margin-right: 10px;
}
.mainentry {
color: #444;
line-height: 145%;
display: block;
}
.mainentry p {
margin: 2% 0 1%;
padding: 0;
}
.mainentry a.read-more {
display: block;
padding-top: 10px;
border-top: 1px solid #c1c1c1;
position: relative;
padding-left: 10px;
color: #222;
font-weight: bold;
background: url(../core/core-images/arrow.png) no-repeat right 7px;
padding-bottom: 10px;
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
margin: 10px -10px -10px;
}
.mainentry a.read-more:hover {
background-color: #dcdcdc;
}
.comment-bubble, .comment-bubble-big {
background: -webkit-gradient(linear, left top, left bottom, from(#de939e), to(#a40717), color-stop(0.5, #be4958));
-webkit-background-clip: padding-box;
height: 16px;
display: block;
-webkit-border-radius: 32px;
padding: 0 5px;
color: #fff;
text-shadow: #7b0805 0 1px 1px;
text-align: center;
border-style: solid;
border-width: 2px;
-webkit-box-shadow: rgba(0,0,0, .6) 0px 2px 3px;
position: absolute;
top: 3px;
font: bold 12px "Helvetica Neue", Helvetica, Geneva, Arial, sans-serif;
z-index: 1;
width: auto;
}
.comment-bubble {
border: 2px solid #FFFFFF;
box-shadow: 0 0 2px #666666;
font-size: 10px;
height: auto;
left: 44px;
padding: 0 3px;
}
.comment-bubble-big {
left: 36px;
}
.nothing-shown {
margin-left: -11px;
margin-top: -11px;
}
.archive-top {
margin: -11px -11px 7px;
-webkit-border-top-right-radius: 8px;
}
.archive-top-right .post-arrow, .archive-top-right .post-arrow-down {
margin-right: 5px;
margin-top: 28px;
}
.archive-top-left.month-01, #arc-top.month-02, #arc-top.month-03, #arc-top.month-04, #arc-top.month-05, #arc-top.month-06, #arc-top.month-07, #arc-top.month-08, #arc-top.month-09, #arc-top.month-10, #arc-top.month-11, #arc-top.month-12 {
-webkit-border-top-left-radius: 8px;
-webkit-border-top-right-radius: 8px;
padding-top: 5px;
padding-bottom: 5px;
padding-left: 10px;
font-weight: bold;
color: #eee;
text-shadow: #535353 0 -1px 1px;
}
.main-navigation {
-webkit-border-radius: 8px;
background-color: #fff;
margin-bottom: 12px;
position: relative;
margin-right: 10px;
margin-left: 10px;
border: 1px solid #b1b1b1;
overflow: hidden;
font-weight: bold;
padding: 10px;
}
.main-navigation .alignleft a {
float: left;
display: block;
background: url(../core/core-images/sprite.png) no-repeat 0 -46px;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 23px;
}
.main-navigation .alignright a {
float: right;
display: block;
padding-top: 3px;
padding-bottom: 3px;
padding-right: 35px;
background: url(../core/core-images/sprite.png) no-repeat right -26px;
position: relative;
left: 15px;
}
/* @group Calendar CSS Icons */
.calendar {
text-align: center;
position: relative;
margin-bottom: 5px;
margin-right: 10px;
margin-top: 0;
border: 1px solid #c9c9c9;
-webkit-border-radius: 7px;
-webkit-background-clip: padding-box;
top: 3px;
float: left;
-webkit-box-shadow: #c6c6c6 1px 1px 3px;
}
.cal-month {
font-size: 10px;
font-weight: bold;
color: #fff;
letter-spacing: 0;
border-bottom: 1px solid #474848;
text-transform: uppercase;
padding: 3px 15px;
-webkit-border-top-left-radius: 6px;
-webkit-border-top-right-radius: 6px;
}
.cal-date {
color: #222;
background-color: #e9e9e9;
text-shadow: white -1px -1px 1px;
-webkit-border-bottom-left-radius: 6px;
-webkit-border-bottom-right-radius: 6px;
letter-spacing: -2px;
font: bold 21px Helvetica, "Arial Rounded MT Bold", Geneva, sans-serif;
padding: 1px 4px 2px 0;
text-align: center;
border: 1px solid #fff;
border-top-style: none;
}
/* @group Cal Month Colors */
.month-01 {
background-color: #767c8f;
}
.month-02 {
background-color: #345abe;
}
.month-03 {
background-color: #37838d;
}
.month-04 {
background-color: #55b06c;
}
.month-05 {
background-color: #409ad5;
}
.month-06 {
background-color: #be63c5;
}
.month-07 {
background-color: #f79445;
}
.month-08 {
background-color: #4e1e00;
}
.month-09 {
background-color: #a04262;
}
.month-10 {
background-color: #284461;
}
.month-11 {
background-color: #4d1d77;
}
.month-12 {
background-color: #af1919;
}
/* @end */
/* @end */
.post-author {
color: #555;
font-size: 10px;
line-height: 13px;
position: relative;
font-weight: bold;
letter-spacing: 0;
text-align: left;
width: 72%;
float: left;
padding-top: 2px;
padding-bottom: 1px;
}
.post-author span.lead {
font-weight: normal;
font-style: normal;
}
.post .sticky-icon {
width: 16px;
height: 16px;
display: block;
background: url(../core/core-images/sticky.png) no-repeat 0 0;
position: absolute;
left: 43px;
z-index: 1;
top: 5px;
}
.post .sticky-icon-none {
width: 16px;
height: 16px;
display: block;
background: url(../core/core-images/sticky.png) no-repeat 0 0;
position: absolute;
left: 43px;
z-index: 1;
top: 5px;
margin-top: -12px;
margin-left: -22px;
}
/* @end */
/* @group Ajax */
.ajax-load-more {
margin-top: 15px;
margin-right: auto;
display: block;
margin-left: auto;
width: 160px;
}
.spin {
height: 16px;
background: url(../core/core-images/ajax-loader.gif) no-repeat;
display: inline-block;
width: 16px;
position: relative;
float: left;
top: 0;
right: 5px;
}
a.ajax {
color: #475d79;
text-shadow: #eee 1px 1px 0;
letter-spacing: 0;
height: 16px;
font: bold 14px Helvetica, Geneva, Arial, sans-serif;
-webkit-touch-callout: none;
}
/* @end */
/* @group Single Post Page */
a.sh2 {
letter-spacing: -1px;
margin: 0;
padding: 0 0 2px;
color: #222;
display: block;
line-height: 145%;
font-size: 19px;
font-weight: bold;
text-align: left;
}
#singlentry {
line-height: 150%;
color: #333;
display: block;
overflow: hidden;
font-size: 14px;
}
.single-post-meta-top {
text-align: left;
color: #999;
font-size: 10px;
font-weight: bold;
line-height: 15px;
}
.single-post-meta-bottom {
text-align: left;
color: #666;
font-size: 11px;
border-bottom: 1px solid #adadad;
border-top: 1px solid #adadad;
padding: 10px;
font-weight: bold;
line-height: 14px;
background-color: #e5eff5;
margin: 5px -10px;
text-shadow: #fafafa 0 1px 1px;
}
/* @group Post Options Bar */
.single-post-meta-bottom .post-page-nav {
font-size: 14px;
line-height: 25px;
text-indent: -99px;
margin-left: 100px;
text-align: left;
padding: 0;
margin-bottom: 10px;
letter-spacing: 0;
}
.single-post-meta-bottom .post-page-nav a {
padding: 2px 5px 2px 8px;
background-color: #fff;
border: 1px solid #ccc;
-webkit-border-radius: 4px;
width: 16px;
margin-right: 1px;
letter-spacing: 2px;
}
ul#post-options {
-webkit-border-bottom-left-radius: 7px;
-webkit-border-bottom-right-radius: 7px;
list-style-type: none;
background-color: #e6e6e6;
padding: 0 4px 0 0;
text-align: center;
position: relative;
margin: -5px -10px -10px;
border-top: 1px solid #fbfbfb;
}
ul#post-options li {
margin: 0;
padding: 0;
display: inline-block;
}
ul#post-options li a {
display: inline-block;
width: 36px;
padding: 20px 5px 16px;
margin: 2px 0 0;
}
ul#post-options li a#oprev {
background: url(../core/core-images/post-options.png) no-repeat 5px -210px;
border-right: 1px solid #cfcfcf;
width: 34px;
}
ul#post-options li a#onext {
background: url(../core/core-images/post-options.png) no-repeat -7px -244px;
border-left: 1px solid #cfcfcf;
width: 34px;
}
ul#post-options li a#omail {
background: url(../core/core-images/post-options.png) no-repeat center -1px;
border-left: 1px solid #fbfbfb;
margin-left: -3px;
}
ul#post-options li a#otweet {
background: url(../core/core-images/post-options.png) no-repeat center -82px;
}
ul#post-options li a#facebook {
background: url(../core/core-images/post-options.png) no-repeat center -293px;
}
ul#post-options li a#obook {
background: url(../core/core-images/post-options.png) no-repeat center -39px;
border-right: 1px solid #fbfbfb;
margin-right: -3px;
}
/* @end */
/* @group Gallery / Captions */
#singlentry .wp-caption {
text-align: center;
font-size: 11px;
color: #999;
line-height: 13px;
max-width: 100% !important;
height: auto !important;
}
#singlentry .gallery {
margin: 0;
padding: 0;
width: 100% !important;
height: auto !important;
}
#singlentry .gallery dl.gallery-item img.attachment-thumbnail {
padding: 3px;
margin: 10px;
width: 50% !important;
height: auto;
}
#singlentry .gallery dl.gallery-item {
margin: 0;
}
#singlentry .gallery dl.gallery-item dt.gallery-icon {
margin: 0;
}
#singlentry .gallery dl.gallery-item dd.gallery-caption {
font-size: 11px;
color: #555;
}
/* @end */
/* @group Twitter / Bookmarking */
#twitter-box {
-webkit-border-radius: 8px;
border: 1px solid #adadad;
margin: 10px;
background-color: #fff;
}
#twitter-box img {
float: left;
margin-right: 5px;
position: relative;
bottom: 4px;
right: 3px;
width: 28px;
height: 28px;
}
#twitter-box ul {
list-style-type: none;
margin: 0;
padding: 0;
}
#twitter-box li {
clear: both;
border-bottom: 1px solid #cbcbcb;
margin: 0;
padding: 0;
}
#twitter-box li a {
display: block;
color: #222;
font-size: 13px;
font-weight: bold;
padding-top: 10px;
padding-bottom: 13px;
padding-left: 10px;
margin: 0;
}
#bookmark-box {
-webkit-border-radius: 8px;
border: 1px solid #adadad;
margin: 10px;
background-color: #fff;
}
#bookmark-box img {
float: left;
margin-right: 5px;
position: relative;
bottom: 4px;
right: 3px;
margin-left: 3px;
margin-top: 1px;
}
#bookmark-box ul {
list-style-type: none;
margin: 0;
padding: 0;
}
#bookmark-box li {
clear: both;
border-bottom: 1px solid #cbcbcb;
margin: 0;
padding: 0;
}
#bookmark-box li a {
display: block;
color: #222;
font-size: 13px;
font-weight: bold;
padding-top: 10px;
padding-bottom: 13px;
padding-left: 10px;
margin: 0;
}
#twitter-box li:last-child, #bookmark-box li:last-child {
border-bottom-style: none;
}
/* @end */
/* @end */
/* @group Pages */
.page h2 {
font-size: 22px;
letter-spacing: -1px;
text-align: left;
line-height: 22px;
font-weight: normal;
font-style: normal;
padding-right: 0;
padding-top: 0;
padding-bottom: 0;
position: relative;
border-style: none;
margin: 10px 0 0 42px;
}
.pageentry {
color: #444;
padding: 2px 0 0;
line-height: 145%;
display: block;
}
img.pageicon {
position: relative;
margin-right: 10px;
width: 32px;
height: 32px;
float: left;
margin-top: -5px;
margin-left: 0;
}
.pageentry .wp-caption {
text-align: center;
font-size: 11px;
color: #999;
line-height: 13px;
max-width: 100% !important;
height: auto !important;
}
/* @group Archives */
#wptouch-tagcloud {
-webkit-border-radius: 8px;
border: 1px solid #adadad;
background-color: #fff;
margin-right: 10px;
margin-left: 10px;
padding: 10px;
text-align: justify;
text-transform: capitalize;
line-height: 150%;
}
#wptouch-archives {
-webkit-border-radius: 8px;
border: 1px solid #adadad;
background-color: #fff;
margin-right: 10px;
margin-left: 10px;
}
#wptouch-archives a {
color: #222;
display: block;
padding-bottom: 10px;
padding-left: 10px;
background: url(../core/core-images/arrow.png) no-repeat right center;
padding-top: 10px;
}
#wptouch-archives ul {
padding: 0;
list-style-type: none;
margin: 0;
}
#wptouch-archives li {
border-bottom: 1px solid #ccc;
list-style-type: none;
font-weight: bold;
font-size: 14px;
color: #222;
display: block;
padding: 0;
margin-bottom: 0;
margin-left: -10px;
margin-right: -10px;
}
#wptouch-archives li:first-child {
margin-top: -10px;
}
#wptouch-archives li:last-child {
margin-bottom: -10px;
border-bottom-style: none;
}
/* @end */
/* @group Links */
#wptouch-links a {
color: #222;
display: block;
background: url(../core/core-images/arrow.png) no-repeat right center;
padding: 10px 10% 10px 10px;
}
#wptouch-links h2 {
color: #475d79;
text-shadow: #eee 1px 1px 0;
font-size: 15px;
font-weight: bold;
margin-bottom: 10px;
margin-left: 10px;
letter-spacing: 0;
border-style: none;
text-transform: capitalize;
margin-top: 20px;
}
#wptouch-links ul {
-webkit-border-radius: 8px;
border: 1px solid #adadad;
background-color: #fff;
list-style-type: none;
margin: 10px;
padding: 0;
}
#wptouch-links li {
border-bottom: 1px solid #ccc;
list-style-type: none;
font-weight: bold;
font-size: 13px;
color: #333;
display: block;
padding: 0;
margin: 0;
text-shadow: #fff 0 0 0;
}
#wptouch-links li:first-child {
border-top-style: none;
}
#wptouch-links li:last-child {
border-bottom-style: none;
}
/* @end */
/* @group Photos */
#wptouch-flickr {
text-align: center;
width: auto;
}
#wptouch-flickr img {
padding: 1px;
background-color: #ccc;
margin: 5px;
width: 55px;
height: 55px;
}
/* @end */
/* @group 404 */
#fourohfour {
-webkit-border-radius: 8px;
border: 1px solid #adadad;
background-color: #fff;
text-align: center;
margin: 10px;
padding: 10px;
}
/* @end */
/* @end */
/* @group Comments */
ol#commentlist {
list-style-type: none;
display: none;
margin: 0 10px 0;
position: relative;
padding-right: 0;
padding-bottom: 0;
padding-left: 0;
}
ol.commentlist li {
background-color: #fff;
padding: 10px;
border-bottom: 1px solid #dedede;
margin: 0;
overflow: hidden;
font-size: 12px;
border-right: 1px solid #b1b1b1;
border-left: 1px solid #b1b1b1;
position: relative;
line-height: 17px;
box-shadow: rgba(255,255,255,.8) 0px 1px 0px;
}
h3#com-head {
font-weight: bold;
font-size: 13px;
-webkit-border-radius: 8px;
text-shadow: #fff 0 1px 0;
margin-left: 10px;
margin-right: 10px;
border: 1px solid #b1b1b1;
background: url("/skins/mobile/themes/core/core-images/com_arrow.png") no-repeat scroll 10px 11px #FFFFFF;
position: relative;
padding-top: 10px;
padding-bottom: 10px;
padding-left: 29px;
cursor: pointer;
display: block;
}
h3#com-head img#com-arrow {
margin-right: 5px;
position: relative;
top: 1px;
-webkit-transform: scale(1.0) rotate(0deg);
-webkit-transition-duration: 0.6s;
}
.comhead-open {
-webkit-border-bottom-left-radius: 0px !important;
-webkit-border-bottom-right-radius: 0px !important;
margin-bottom: -1px;
background-color: #eee !important;
}
.com-arrow-down {
-webkit-transform: scale(1.0) rotate(90deg) !important;
-webkit-transition-duration: 0.6s !important;
}
ol.commentlist li:first-child {
border-top: 1px solid #b1b1b1;
}
ol.commentlist li:last-child {
border-bottom: 1px solid #b1b1b1;
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
}
ol.commentlist li img.avatar {
float: left;
border-right: 1px solid #f9f9f9;
margin-right: 5px;
width: 32px;
height: 32px;
}
ol.commentlist li ul {
padding: 0;
margin: 0;
list-style-type: none;
}
ol.commentlist .parent {
background-color: #fefdec;
}
ol.commentlist .parent ul.children li {
border: 1px solid #ddd;
background-color: #e9f8fd;
-webkit-border-radius: 8px;
}
ol.commentlist ul.children .parent ul.children li.alt {
border: 1px solid #ddd;
background-color: #fff;
padding: 10px;
margin: 10px 0 0;
-webkit-border-radius: 8px;
}
ol.commentlist ul.children .parent ul.children li.even {
border: 1px solid #ddd !important;
background-color: #f9fbf6;
padding: 10px;
margin: 10px 0 0;
-webkit-border-radius: 8px;
}
ol.commentlist .reply a, .comdater {
position: absolute;
top: 6px;
right: 5px;
font-weight: bold;
font-size: 10px;
background-color: #e5e5e5;
padding: 1px 5px;
border: 1px solid #fff;
-webkit-border-radius: 3px;
text-shadow: #fff 0 1px 0px;
}
ol.commentlist .comdater span {
margin-right: 3px;
border-right: 1px solid #fefefe;
display: inline-block;
}
ol.commentlist .comdater span a {
padding-right: 7px;
}
ol.commentlist .comdater span a:last-child {
border-right: 1px solid #ccc;
display: inline-block;
}
ol.commentlist .comment-author {
font-weight: bold;
}
ol.commentlist .comment-meta a {
font-size: 11px;
color: #999;
}
.navigation.commentnav {
height: 17px;
padding-right: 0;
padding-top: 10px;
padding-left: 10px;
}
.navigation.commentnav .alignright a {
background-repeat: no-repeat;
background-position: right -26px;
padding-right: 35px;
}
.navigation.commentnav .alignleft a {
background-repeat: no-repeat;
background-position: left -46px;
padding-left: 25px;
}
.comtop {
background-color: #f5f5f5;
padding-left: 0;
padding-bottom: 15px;
border-bottom: 1px solid #dedede;
margin-top: -10px;
margin-left: -10px;
margin-right: -10px;
height: 17px;
}
.com-author a {
font-weight: bold;
text-transform: capitalize;
font-size: 13px;
text-shadow: #fff 0 1px 0;
-webkit-border-top-right-radius: 0px;
}
.com-author {
font-weight: bold;
text-transform: capitalize;
font-size: 13px;
position: relative;
text-shadow: #fff 0 1px 0;
-webkit-border-top-right-radius: 0px;
padding-left: 10px;
padding-top: 7px;
}
/*
@end */
/* @group Leaving A Comment */
h3#comments, h3#respond {
color: #475d79;
text-shadow: #eee 1px 1px 0;
letter-spacing: -1px;
font-size: 17px;
padding-left: 10px;
padding-top: 20px;
}
h3.coms-closed {
text-align: center;
margin-top: 25px;
}
.preview {
background-color: #fdeeab;
color: #bf7b20;
font-weight: bold;
text-shadow: #fff 0 1px 1px;
font-size: 11px;
}
.preview span {
position: absolute;
right: 62px;
top: 8px;
padding-right: 15px;
}
p.logged {
color: #475d79;
text-shadow: #eee 1px 1px 0;
font-size: 11px;
font-weight: bold;
position: relative;
top: 2px;
margin-top: 35px;
}
#commentForm {
margin-left: 10px;
margin-right: 10px;
}
#commentForm input, #replyForm input, .reply-button {
-webkit-border-radius: 8px;
border: 1px solid #adadad;
padding: 3px;
margin: 0;
font-size: 13px;
color: #444;
width: 170px;
vertical-align: middle;
}
.reply-button {
color: #555;
font-weight: bold;
width: 25%;
opacity: 1;
background-color: #eee;
border: 1px solid #aaa;
text-shadow: #fff 0 1px 0;
}
textarea#comment, textarea#commentReply {
-webkit-border-radius: 8px;
border: 1px solid #adadad;
font-size: 13px;
color: #444;
height: 110px;
width: 98%;
padding: 3px;
box-shadow: rgba(255,255,255,.8) 0px 1px 0px;
}
#loading {
position: relative;
background-color: #dedede;
-webkit-border-radius: 8px;
border: 1px solid #9fa5ac;
opacity: 0.85;
z-index: 9;
margin: 0;
bottom: 166px;
text-align: center;
width: 98%;
height: 64px;
max-width: 453px;
padding: 50px 3px 2px;
}
#loading p {
display: inline;
position: relative;
bottom: 3px;
left: 3px;
text-shadow: #fff 0 1px 0;
font-size: 12px;
color: #2f4e71;
font-weight: bold;
}
#commentForm label, #replyForm label {
color: #475d79;
text-shadow: #eee 1px 1px 0;
font-size: 12px;
font-weight: bold;
}
#refresher {
-webkit-border-radius: 8px;
padding: 10px 10px 10px 18px;
border: 1px solid #b1b1b1;
background-color: #e9f5f8;
color: #475d79;
font-weight: bold;
margin-left: 10px;
margin-right: 10px;
text-shadow: #f5f5f5 0 1px 1px;
margin-top: 20px;
}
#refresher img {
float: left;
margin-right: 3px;
margin-left: -10px;
}
#refresher h3 {
padding: 0;
margin: 0 0 5px;
color: #475d79;
text-shadow: #f5f5f5 0 1px 1px;
}
p.subscribe-to-comments {
padding: 8px;
-webkit-border-radius: 8px;
background-color: #eee;
border: 1px solid #adadad;
}
p.subscribe-to-comments label {
text-shadow: #fff 0 1px 0 !important;
color: #333 !important;
}
p.subscribe-to-comments input#subscribe {
padding-right: 3px;
vertical-align: top;
}
#commentErrorTip, #commentErrorTipReply {
background-color: #fed4d2;
border: 1px solid red;
padding: 8px;
text-align: center;
font-weight: bold;
text-shadow: #ffecec 0 1px 0;
-webkit-border-radius: 8px;
}
/*
@end */
/* @group Text Options */
.full-justified {
text-align: justify;
}
.left-justifed {
text-align: left;
}
.small-text {
font-size: 1.1em;
}
.medium-text {
font-size: 1.2em;
}
.large-text {
font-size: 1.3em;
}
/* @end */
/* @group Background Options */
.classic-wptouch-bg {
background-image: url(../core/core-images/pinstripes-classic.gif);
}
.argyle-wptouch-bg {
background-image: url(../core/core-images/argyle-tie.gif);
}
.horizontal-wptouch-bg {
background-image: url(../core/core-images/pinstripes-horizontal.gif);
}
.diagonal-wptouch-bg {
background-image: url(../core/core-images/pinstripes-diagonal.gif);
}
.skated-wptouch-bg {
background-image: url(../core/core-images/skated-concrete.gif);
}
.grid-wptouch-bg {
background-image: url(../core/core-images/grid.gif);
}
/* @end */
/* @group Footer */
#footer {
text-align: center;
color: #475d79;
font-size: 10px;
font-weight: bold;
text-shadow: #eee 1px 1px 0;
margin-top: 60px;
line-height: 13px;
padding: 0 0 10px;
}
#footer p {
margin: 0;
padding: 0 25px 5px;
}
/* @group Switch Link */
#wptouch-switch-link {
-webkit-border-radius: 8px;
border: 1px solid #adadad;
margin-right: 10px;
margin-left: 10px;
margin-bottom: 20px;
position: relative;
max-width: 300px;
padding: 13px 10px 12px 8px;
color: #222;
text-shadow: #fff 0 0 0;
font-size: 13px;
text-align: left;
background-color: #fff;
box-shadow: rgba(255,255,255,.8) 0px 1px 0px;
}
#wptouch-switch-link a {
position: relative;
display: block;
width: 77px;
background: url(../core/core-images/onoff.jpg) no-repeat left top;
height: 22px;
float: right;
left: 2px;
bottom: 5px;
}
.offimg {
width: 77px;
background: url(../core/core-images/onoff.jpg) no-repeat 0 -22px !important;
height: 22px;
}
/* @end */
/* @end */
/* @group WPtouch Adsense area */
#adsense-area {
height: 50px;
overflow: none;
margin-bottom: 12px;
background: transparent;
}
#adsense-area iframe {
height: 50px!important;
overflow: none;
}
/* @end */
/* @group No Script Overlay */
#noscript-wrap {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
background-color: #eee;
z-index: 1000;
opacity: 0.9;
}
#noscript {
color: #ddd;
display: block;
height: 54%;
text-shadow: #000000 -1px -1px 0;
-webkit-border-radius: 15px;
-webkit-box-shadow: #444 0px 0px 15px;
width: auto;
padding-right: 25px;
padding-left: 25px;
background: #0d0d0d url(../../images/saved.png) no-repeat center top;
padding-top: 110px;
text-align: center;
border: 3px solid #444;
font: 14px Helvetica, Arial, sans-serif;
margin: 25px;
}
/* @end */
/* @group Post Thumbnails (2.9+ only) */
.wptouch-post-thumb-wrap {
position: relative;
margin-right: 8px;
display: block;
margin-bottom: 4px;
width: 46px;
height: 46px;
float: left;
}
.wptouch-post-thumb img {
width: 46px;
height: 46px;
}
.wptouch-post-thumb-wrap .thumb-top-left {
position: absolute;
top: 0;
left: 0;
height: 9px;
width: 9px;
background: url(../core/core-images/thumb-corners.png) no-repeat 0 0;
}
.wptouch-post-thumb-wrap .thumb-top-right {
position: absolute;
top: 0;
right: 0;
width: 9px;
height: 9px;
background: url(../core/core-images/thumb-corners.png) no-repeat right top;
}
.wptouch-post-thumb-wrap .thumb-bottom-left {
position: absolute;
bottom: 0;
left: 0;
width: 9px;
height: 9px;
background: url(../core/core-images/thumb-corners.png) no-repeat 0 -9px;
}
.wptouch-post-thumb-wrap .thumb-bottom-right {
position: absolute;
bottom: 0;
right: 0;
width: 9px;
height: 9px;
background: url(../core/core-images/thumb-corners.png) 9px -9px;
}
/* @end */
/* @group iOS 5 */
.ios5 #headerbar {
position: fixed;
top: 0;
z-index: 1;
}
.ios5 #drop-fade {
position: fixed;
top: 46px;
}
.ios5 #wptouch-menu {
position: fixed;
}
.ios5 .content {
padding-top: 56px;
}
.ios5 .content.single {
padding-top: 66px;
}
.ios5 #wptouch-search {
z-index: 2;
position: fixed;
}
/* @end */
/* @group Compatibility */
#livefyre {
margin-left: 9px;
margin-right: 9px;
width: 100%;
background-color: #fff;
border: 1px solid #CCC;
-webkit-border-radius: 8px;
padding: 10px;
}
#wwsgd-optin, #outbrain_container_0_stripBox, #outbrain_container_0_stars, .linkedin_share_container, .dd_post_share, .tweetmeme_button, #dd_ajax_float {
display: none;
}
/* @group Dynamic Contact Form */
#dwp-contact-button, .dwpcontact-page {
display: none !important;
}
/* @end */
/* @group Banner Cycler */
#cycler, #cyclerNav {
display: none;
}
/* @end */
/* @group Gravity Forms */
.gform_wrapper li, .gform_wrapper form li {
list-style-type: none!important;
padding-left: 30px;
}
.gform_wrapper .gform_footer {
margin-top: 0;
margin-left: 20px;
}
body.wptouch-pro .post .gform_wrapper .gform_body ul.gform_fields {
text-indent: 0!important;
margin: 0;
padding: 0
}
body.wptouch-pro .post .gform_wrapper .gform_body ul.gform_fields li {
padding-left: 0!important
}
/* @end */
/* @group WP Skypscraper */
.wp_skyscraper_c2 {
display: none;
}
/* @end */
/* @group AddThis / Tweet This */
.addthis_container {
display: none !important;
}
a.tt {
display: none !important;
}
/* @end */
/* @group Peter's Anti Spam Support */
#secureimgdiv img#cas_image {
-webkit-border-radius: 2px !important;
border: 1px solid #adadad !important;
width: auto !important;
height: 21px !important;
float: left !important;
}
#secureimgdiv p label {
color: #475d79;
text-shadow: #eee 1px 1px 0;
font-size: 14px;
font-weight: bold;
}
#secureimgdiv p small {
display: block;
margin-top: 5px;
font-size: 11px;
text-align: justify;
}
#secureimgdiv p input#securitycode {
-webkit-border-radius: 8px;
border: 1px solid #adadad;
padding: 3px;
margin: 0 0 0 0;
font-size: 13px;
color: #444;
width: 101px;
-webkit-border-top-left-radius: 1px;
-webkit-border-bottom-left-radius: 1px;
}
/* @end */
/* @group Ribbon Manager Plugin Override */
a#ribbon {
display: none !important;
}
/* @end */
/* @group Subscribe To Comments */
p.subscribe-to-comments {
padding: 8px;
-webkit-border-radius: 8px;
background-color: #fff;
border: 1px solid #adadad;
}
p.subscribe-to-comments label {
text-shadow: #fff 0 1px 0 !important;
color: #333 !important;
}
p.subscribe-to-comments input#subscribe {
padding-right: 3px;
vertical-align: top;
width: auto;
height: auto;
}
.commentlist p.subscribe-to-comments {
}
/* @end */
/* @group Digg Box */
span.db-body {
display: none;
}
/* @end */
/* @group WP Thread Comment */
p.thdrpy, p.thdmang {
display: inline;
margin-right: 10px;
}
/* @end */
/* @group WP Greet Box */
#greet_block {
display: none;
}
/* @end */
/* @group Comment Reply Notification */
#commentForm input#comment_mail_notify {
margin-right: 5px;
margin-top: 15px;
margin-bottom: 5px;
}
/* @end */
/* @group Share and Follow */
.footer #follow.right {
display: none !important;
}
.content ul.socialwrap {
display: none;
}
/* @end */
/* @group Disqus */
#disqus_thread {
-webkit-border-radius: 8px;
border: 1px solid #adadad;
background-color: #fff;
padding: 10px;
margin-left: 10px;
margin-right: 10px;
margin-top: 50px;
}
/* @end */
/* @group WP Tweet Button */
#content .tw_button {
display: none !important;
}
/* @end */
/* @group Follow Me */
#followMeTabLeftSm, #followMeTabLeftSm img {
display: none !important;
height: 0 !important;
width: 0 !important;
visibility: hidden !important;
position: -1000em !important;
}
/* @end */
/* @group Comment Quicktags */
#commentForm #ed_toolbar {
margin-left: 9px;
}
#commentForm #ed_toolbar .ed_button {
width: auto !important;
margin-bottom: 10px;
margin-top: 5px;
margin-right: 3px;
-webkit-border-radius: 4px !important;
padding: 2px 6px !important;
font-size: 11px;
font-weight: bold;
}
/* @end */
/* @group Zenbox */
#zenbox_tab {display: none !important;}
/* @end */
/* @group AttentionGrabber */
#attentionGrabber, #attentionGrabberWrap #openAttentionGrabber {
display: none !important;
}
/* @end */
/* @group smartPop-Up Box */
#smartPopupfade, #pietimerholder {
display: none !important;
}
/* @end */
/* @group Mega Dropdown */
.megadropdown-wrapper {
display: none !important;
}
/* @end */
/* @group Easy Button */
.buttonfixed {
display: none !important;
}
/* @end */
/* @group AS Sharebar */
#as-share-window {
display:none !important;
}
/* @end */
/* @end */
\ No newline at end of file
...@@ -22,41 +22,39 @@ ...@@ -22,41 +22,39 @@
<html> <html>
<head> <head>
<@head title="${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} (${archiveDate.archiveDatePublishedArticleCount}) - ${blogTitle}"> <@head title="${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} (${archiveDate.archiveDatePublishedArticleCount}) - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveDate.archiveDateYear}${archiveDate.archiveDateMonth}"/> <meta name="keywords"
content="${metaKeywords},${archiveDate.archiveDateYear}${archiveDate.archiveDateMonth}"/>
<meta name="description" <meta name="description"
content="<#list articles as article>${article.articleTitle}<#if article_has_next>,</#if></#list>"/> content="<#list articles as article>${article.articleTitle}<#if article_has_next>,</#if></#list>"/>
</@head> </@head>
</head> </head>
<body> <body>
<#include "header.ftl"> <#include "header.ftl">
<div id="pjax">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<#include "nav.ftl">
<div class="main"> <div class="main">
<#if noticeBoard??> <div id="pjax" class="content">
<div class="board"> <#if pjax><!---- pjax {#pjax} start ----></#if>
${noticeBoard} <main>
</div> <div class="module">
</#if> <div class="module__content ft__center">
<div class="wrapper content"> <i class="icon__home"></i>
<div class="module__title"> <a href="${servePath}" class="breadcrumb">${blogTitle}</a>
<span> &nbsp; > &nbsp;
<i class="icon__inbox"></i>
<a href="${servePath}/archives.html" class="breadcrumb">${archiveLabel}</a>
&nbsp; > &nbsp;
<#if "en" == localeString?substring(0, 2)> <#if "en" == localeString?substring(0, 2)>
${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} ${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear}
<#else> <#else>
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} ${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}
</#if> </#if>
<span class="ft-green"> - ${archiveDate.archiveDatePublishedArticleCount} ${articleLabel}
${archiveDate.archiveDatePublishedArticleCount} </div>
<span class="ft-12">${cntArticleLabel}</span>
</span>
</span>
</div> </div>
<#include "article-list.ftl"> <#include "article-list.ftl">
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div> </div>
<#include "bottom2.ftl"> <#include "side.ftl">
</div>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div> </div>
<#include "footer.ftl"> <#include "footer.ftl">
</body> </body>
......
...@@ -28,48 +28,46 @@ ...@@ -28,48 +28,46 @@
</head> </head>
<body> <body>
<#include "header.ftl"> <#include "header.ftl">
<div id="pjax">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<#include "nav.ftl">
<div class="main"> <div class="main">
<#if noticeBoard??> <div id="pjax" class="content">
<div class="board"> <#if pjax><!---- pjax {#pjax} start ----></#if>
${noticeBoard} <main>
<div class="module">
<div class="module__content ft__center">
<i class="icon__home"></i>
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__inbox"></i>
${statistic.statisticPublishedBlogArticleCount} ${archiveLabel}${articleLabel}
</div> </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> </div>
<div class="module">
<div class="module__list">
<#if 0 != archiveDates?size> <#if 0 != archiveDates?size>
<ul>
<#list archiveDates as archiveDate> <#list archiveDates as archiveDate>
<div class="page__item"> <li>
<h3>
<a class="ft-gray"
href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
<#if "en" == localeString?substring(0, 2)> <#if "en" == localeString?substring(0, 2)>
<a href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
${archiveDate.monthName} ${archiveDate.archiveDateYear} ${archiveDate.monthName} ${archiveDate.archiveDateYear}
(${archiveDate.archiveDatePublishedArticleCount})
</a>
<#else> <#else>
<a href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} ${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}
</#if> (${archiveDate.archiveDatePublishedArticleCount})
<span class="ft-green">
${archiveDate.archiveDatePublishedArticleCount}
<span class="ft-12">${cntArticleLabel}</span>
</span>
</a> </a>
</h3> </#if>
</div> </li>
</#list> </#list>
</ul>
</#if> </#if>
</div> </div>
<#include "bottom.ftl"> </div>
</div> </main>
<#if pjax><!---- pjax {#pjax} end ----></#if> <#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div> </div>
<#include "footer.ftl"> <#include "footer.ftl">
</body> </body>
......
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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="article-list">
<#list articles as article>
<article class="item <#if article_index &lt; 3>item--active</#if>">
<time class="tooltipped tooltipped__n item__date"
aria-label="${article.articleCreateDate?string("yyyy")}${yearLabel}">
${article.articleCreateDate?string("MM")}${monthLabel}
<span class="item__day">${article.articleCreateDate?string("dd")}</span>
</time>
<h2 class="item__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="item__date--m fn__none">
<i class="icon__date"></i>
${article.articleCreateDate?string("yyy-MM-DD")}
</div>
<div class="ft__center">
<span class="tag">
<i class="icon__tags"></i>
${article.articleTags}
</span>
<a class="tag" href="${servePath}${article.articlePermalink}#comments">
<i class="icon__comments"></i> ${article.articleCommentCount} ${commentLabel}
</a>
<span class="tag">
<i class="icon__views"></i>
${article.articleViewCount} ${viewLabel}
</span>
</div>
<div class="content-reset">
${article.articleAbstract}
</div>
</article>
</#list>
<#if 0 != paginationPageCount>
<div class="fn__clear">
<nav class="pagination fn__right">
<#if 1 != paginationPageNums?first>
<a href="${servePath}${path}/${paginationPreviousPageNum}" class="pagination__item">&laquo;</a>
<a class="pagination__item" href="${servePath}${path}/1">1</a>
<span class="pagination__item pagination__item--text">...</span>
</#if>
<#list paginationPageNums as paginationPageNum>
<#if paginationPageNum == paginationCurrentPageNum>
<span class="pagination__item pagination__item--current">${paginationPageNum}</span>
<#else>
<a class="pagination__item" href="${servePath}${path}/${paginationPageNum}">${paginationPageNum}</a>
</#if>
</#list>
<#if paginationPageNums?last != paginationPageCount>
<span class="pagination__item pagination__item--text">...</span>
<a href="${servePath}${path}/${paginationPageCount}" class="pagination__item">${paginationPageCount}</a>
<a href="${servePath}${path}/${paginationNextPageNum}" class="pagination__item">&raquo;</a>
</#if>
</nav>
</div>
</#if>
</div>
\ No newline at end of file
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 "macro-head.ftl">
<#include "macro-comments.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${article.articleTitle} - ${blogTitle}">
<meta name="keywords" content="${article.articleTags}"/>
<meta name="description" content="${article.articleAbstract?html}"/>
</@head>
<#if previousArticlePermalink??>
<link rel="prev" title="${previousArticleTitle}" href="${servePath}${previousArticlePermalink}">
</#if>
<#if nextArticlePermalink??>
<link rel="next" title="${nextArticleTitle}" href="${servePath}${nextArticlePermalink}">
</#if>
<!-- Open Graph -->
<meta property="og:locale" content="zh_CN"/>
<meta property="og:type" content="article"/>
<meta property="og:title" content="${article.articleTitle}"/>
<meta property="og:description" content="${article.articleAbstract?html}"/>
<meta property="og:image" content="${article.authorThumbnailURL}"/>
<meta property="og:url" content="${servePath}${article.articlePermalink}"/>
<meta property="og:site_name" content="Solo"/>
<!-- Twitter Card -->
<meta name="twitter:card" content="summary"/>
<meta name="twitter:description" content="${article.articleAbstract?html}"/>
<meta name="twitter:title" content="${article.articleTitle}"/>
<meta name="twitter:image" content="${article.authorThumbnailURL}"/>
<meta name="twitter:url" content="${servePath}${article.articlePermalink}"/>
<meta name="twitter:site" content="@DL88250"/>
<meta name="twitter:creator" content="@DL88250"/>
</head>
<body>
<#include "header.ftl">
<div class="main">
<div id="pjax" class="content">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<main class="article-list" id="articlePage">
<div class="item item--active">
<time class="tooltipped tooltipped__n item__date"
aria-label="${article.articleCreateDate?string("yyyy")}${yearLabel}">
${article.articleCreateDate?string("MM")}${monthLabel}
<span class="item__day">${article.articleCreateDate?string("dd")}</span>
</time>
<h2 class="item__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="item__date--m fn__none">
<i class="icon__date"></i>
${article.articleCreateDate?string("yyy-MM-DD")}
</div>
<div class="ft__center">
<span class="tag">
<i class="icon__tags"></i>
${article.articleTags}
</span>
<a class="tag" href="${servePath}${article.articlePermalink}#comments">
<i class="icon__comments"></i> ${article.articleCommentCount} ${commentLabel}
</a>
<span class="tag">
<i class="icon__views"></i>
${article.articleViewCount} ${viewLabel}
</span>
</div>
<div class="content-reset">
${article.articleContent}
<#if "" != article.articleSign.signHTML?trim>
<div>
${article.articleSign.signHTML}
</div>
</#if>
</div>
</div>
<#if previousArticlePermalink?? || nextArticlePermalink??>
<div class="module">
<div class="module__content fn__clear">
<#if previousArticlePermalink??>
<a href="${servePath}${previousArticlePermalink}" rel="prev" class="fn__left breadcrumb">
${previousArticleLabel}: ${previousArticleTitle}
</a>
</#if>
<#if nextArticlePermalink??>
<a href="${servePath}${nextArticlePermalink}" rel="next"
class="fn__right breadcrumb">
${nextArticleTitle}: ${nextArticleLabel}
</a>
</#if>
</div>
</div>
</#if>
<@comments commentList=articleComments article=article></@comments>
<div class="fn__flex">
<div class="fn__flex-1" id="externalRelevantArticlesWrap">
<div class="module">
<div id="externalRelevantArticles" class="module__list"></div>
</div>
</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; </div>
<div class="fn__flex-1" id="randomArticlesWrap">
<div class="module">
<div id="randomArticles" class="module__list"></div>
</div>
</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; </div>
<div class="fn__flex-1" id="relevantArticlesWrap">
<div class="module">
<div id="relevantArticles" class="module__list"></div>
</div>
</div>
</div>
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div>
<#include "footer.ftl">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<@comment_script oId=article.oId>
page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}";
<#if 0 != randomArticlesDisplayCount>
page.loadRandomArticles('<header class="module__header">${randomArticles1Label}</header>');
</#if>
<#if 0 != externalRelevantArticlesDisplayCount>
page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,</#if></#list>"
, "<header class='module__header'>${externalRelevantArticlesLabel}</header>");
</#if>
<#if 0 != relevantArticlesDisplayCount>
page.loadRelevantArticles('${article.oId}',
'<header class="module__header">${relevantArticlesLabel}</header>');
</#if>
</@comment_script>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</body>
</html>
...@@ -29,29 +29,27 @@ ...@@ -29,29 +29,27 @@
</head> </head>
<body> <body>
<#include "header.ftl"> <#include "header.ftl">
<div id="pjax">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<#include "nav.ftl">
<div class="main"> <div class="main">
<#if noticeBoard??> <div id="pjax" class="content">
<div class="board"> <#if pjax><!---- pjax {#pjax} start ----></#if>
${noticeBoard} <main>
<div class="module">
<div class="module__content ft__center">
<i class="icon__home"></i>
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__category"></i>
${categoryLabel}
&nbsp; > &nbsp;
<span class="tooltipped tooltipped__w"
aria-label="${category.categoryDescription}">${category.categoryTitle}</span>
</div> </div>
</#if>
<div class="wrapper content">
<div class="module__title">
<span>
${category.categoryTitle}
<span class="ft-green ft-12">
${category.categoryDescription}
</span>
</span>
</div> </div>
<#include "article-list.ftl"> <#include "article-list.ftl">
</div> </main>
<#include "bottom2.ftl">
</div>
<#if pjax><!---- pjax {#pjax} end ----></#if> <#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div> </div>
<#include "footer.ftl"> <#include "footer.ftl">
</body> </body>
......
...@@ -17,31 +17,32 @@ ...@@ -17,31 +17,32 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<li id="${comment.oId}"> <li id="${comment.oId}" class="comments__item">
<div class="comwrap"> <div class="comments__meta fn__flex">
<div class="comtop"><!--TODO comment->comment_approved == '0') : comtop preview;--> <div class="fn__flex-1">
<img alt='${comment.commentName}' src='${comment.commentThumbnailURL}' class='avatar avatar-64 photo' height='64' width='64' />
<div class="com-author">
<#if "http://" == comment.commentURL> <#if "http://" == comment.commentURL>
<a>${comment.commentName}</a> ${comment.commentName}
<#else> <#else>
<a href='${comment.commentURL}' rel='external nofollow' target="_blank" class='url'>${comment.commentName}</a> <a href="${comment.commentURL}" target="_blank">${comment.commentName}</a>
</#if> </#if>
<#if comment.isReply> <#if comment.isReply>
@ @<a href="${servePath}${article.permalink}#${comment.commentOriginalCommentId}"
<a href="${servePath}${article.permalink}#${comment.commentOriginalCommentId}">${comment.commentOriginalCommentName}</a> onmouseover="page.showComment(this, '${comment.commentOriginalCommentId}', 28);"
onmouseout="page.hideComment('${comment.commentOriginalCommentId}')"
>${comment.commentOriginalCommentName}</a>
</#if> </#if>
</div> </div>
<#if article.commentable> <time>${comment.commentDate2?string("yyyy-MM-dd HH:mm")}</time>
<div class="comdater">
<!--<span>TODO wptouch_moderate_comment_link(get_comment_ID())</span>-->
${comment.commentDate2?string("yyyy-MM-dd HH:mm:ss")}
<a rel="nofollow" href="javascript:replyTo('${comment.oId}');">${replyLabel}</a>
</div>
</#if>
</div><!--end comtop-->
<div class="combody article-body">
<p>${comment.commentContent}</p>
</div> </div>
<main class="comments__content fn__clear">
<div class="comments__avatar" style="background-image: url(${comment.commentThumbnailURL})"></div>
<div class="content-reset">
${comment.commentContent}
</div> </div>
<#if article?? && article.commentable>
<a class="fn__right breadcrumb" href="javascript:replyTo('${comment.oId}')">${replyLabel}</a>
<#else>
<a class="fn__right breadcrumb" href="${servePath}${comment.commentSharpURL}">${viewLabel}»</a>
</#if>
</main>
</li> </li>
\ No newline at end of file
/* /**
* Solo - A small and beautiful blogging system written in Java. * Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, b3log.org & hacpai.com * Copyright (c) 2010-2018, b3log.org & hacpai.com
* *
...@@ -15,4 +15,97 @@ ...@@ -15,4 +15,97 @@
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
function convertEntities(b){var d,a;d=function(c){if(/&[^;]+;/.test(c)){var f=document.createElement("div");f.innerHTML=c;return !f.firstChild?c:f.firstChild.nodeValue}return c};if(typeof b==="string"){return d(b)}else{if(typeof b==="object"){for(a in b){if(typeof b[a]==="string"){b[a]=d(b[a])}}}}return b};
\ No newline at end of file @font-face {
font-family: 'icomoon';
src: url('fonts/icomoon.eot?oyqnlj');
src: url('fonts/icomoon.eot?oyqnlj#iefix') format('embedded-opentype'),
url('fonts/icomoon.ttf?oyqnlj') format('truetype'),
url('fonts/icomoon.woff?oyqnlj') format('woff'),
url('fonts/icomoon.svg?oyqnlj#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}
[class^="icon__"], [class*=" icon__"] {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'icomoon' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon__list:before {
content: "\f0ca";
}
.icon__home:before {
content: "\f015";
}
.icon__comments:before {
content: "\f0e6";
}
.icon__date:before {
content: "\f073";
}
.icon__search:before {
content: "\f002";
}
.icon__up:before {
content: "\f077";
}
.icon__inbox:before {
content: "\f01c";
}
.icon__tags:before {
content: "\f02c";
}
.icon__link:before {
content: "\f0c1";
}
.icon__refresh:before {
content: "\f021";
}
.icon__category:before {
content: "\e9bc";
}
.icon__logout:before {
content: "\ea14";
}
.icon__views:before {
content: "\e900";
}
.icon__register:before {
content: "\e973";
}
.icon__setting:before {
content: "\e994";
}
.icon__login:before {
content: "\ea13";
}
.icon__rss:before {
content: "\e901";
}
\ No newline at end of file
@charset "UTF-8";
/**
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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 0.2.0.0, Sep 25, 2018
*/
/*
* Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java.
* Copyright (C) 2012-2018, b3log.org & hacpai.com
*
* 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定
*/
/**
* Common style for reset
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</ta>
* @version 0.2.0.1, Arp 17, 2018
*/
html {
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
height: 100%; }
body {
margin: 0;
font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif;
font-size: 14px;
background-color: #fff;
-webkit-font-smoothing: antialiased;
-webkit-overflow-scrolling: touch; }
::-moz-selection {
text-shadow: none;
background: rgba(65, 131, 196, 0.4); }
::selection {
text-shadow: none;
background: rgba(66, 133, 244, 0.4); }
ul,
ol {
margin: 0;
padding: 0; }
h1,
h2,
h3,
h4,
h5,
h6,
dl,
dd,
p {
margin: 0; }
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section {
display: block; }
audio,
canvas,
video {
display: inline-block; }
audio:not([controls]) {
display: none; }
a {
outline: 0;
text-decoration: none; }
a:hover {
text-decoration: underline; }
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline; }
sup {
top: -0.5em; }
sub {
bottom: -0.25em; }
img {
max-width: 100%;
vertical-align: middle;
border: 0;
height: auto;
-ms-interpolation-mode: bicubic;
overflow: hidden;
font-size: 12px; }
button,
input,
select,
textarea {
margin: 0;
font-size: 100%;
vertical-align: middle;
font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif;
outline: none; }
button,
input {
line-height: normal; }
button::-moz-focus-inner,
input::-moz-focus-inner {
padding: 0;
border: 0; }
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
cursor: pointer;
-webkit-appearance: button; }
input[type="search"] {
box-sizing: content-box;
-webkit-appearance: textfield; }
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
-webkit-appearance: none; }
textarea {
overflow: auto;
resize: vertical; }
svg {
fill: currentColor;
display: inline-block;
stroke-width: 0;
stroke: currentColor;
width: 14px;
height: 14px; }
blockquote {
margin: 0; }
/*
* Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java.
* Copyright (C) 2012-2018, b3log.org & hacpai.com
*
* 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定
*/
/**
* Article reset style
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</ta>
* @version 0.2.0.2, Jul 6, 2018
*/
.content-reset {
word-wrap: break-word;
overflow: auto;
line-height: 1.65;
font-size: 16px;
word-break: break-word; }
.content-reset ul,
.content-reset ol {
padding-left: 2em;
margin-top: 0;
margin-bottom: 16px; }
.content-reset li {
margin-top: 0.25em; }
.content-reset img {
cursor: zoom-in; }
.content-reset img.emoji {
cursor: auto;
max-width: 18px; }
.content-reset h1,
.content-reset h2,
.content-reset h3,
.content-reset h4,
.content-reset h5,
.content-reset h6 {
margin-top: 24px;
margin-bottom: 16px;
font-weight: 600;
line-height: 1.25; }
.content-reset h1 {
padding-bottom: 0.3em;
font-size: 1.7em;
border-bottom: 1px solid #eee; }
.content-reset h2 {
padding-bottom: 0.3em;
font-size: 1.5em;
border-bottom: 1px solid #eee; }
.content-reset h3 {
font-size: 1.25em; }
.content-reset h4 {
font-size: 1em; }
.content-reset h5 {
font-size: 0.875em; }
.content-reset h6 {
font-size: 0.85em; }
.content-reset hr {
height: 0.25em;
padding: 0;
margin: 24px 0;
background-color: #e7e7e7;
border: 0; }
.content-reset p {
margin-top: 0;
margin-bottom: 16px; }
.content-reset blockquote {
padding: 0 1em;
color: #777;
border-left: 0.25em solid #ddd;
margin-bottom: 16px; }
.content-reset blockquote p {
margin: 0; }
.content-reset iframe {
border: 1px solid rgba(0, 0, 0, 0.38); }
.content-reset table {
width: 100%;
border: 1px solid #dedede;
margin: 15px auto;
border-collapse: collapse;
empty-cells: show; }
.content-reset thead {
text-align: center; }
.content-reset td,
.content-reset th {
height: 35px;
border: 1px solid #dedede;
padding: 0 10px; }
.content-reset th {
font-weight: bold;
text-align: center !important;
background: rgba(158, 188, 226, 0.2); }
.content-reset tbody tr:nth-child(2n) {
background: rgba(158, 188, 226, 0.12); }
.content-reset tr:hover {
background: #efefef; }
.content-reset code {
padding: 0.2em 0.4em;
margin: 0;
font-size: 85%;
background-color: rgba(252, 41, 41, 0.12);
border-radius: 3px;
word-break: break-word; }
.content-reset pre {
position: relative; }
.content-reset pre textarea {
position: absolute;
top: -100000px; }
.content-reset pre > code {
padding: 0.5em;
background-color: rgba(0, 0, 0, 0.04);
background-size: 20px 20px;
border-radius: 5px; }
.content-reset kbd {
display: inline-block;
padding: 3px 5px;
font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px rgba(0, 0, 0, 0.38);
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb; }
.content-reset li.task-list-item {
list-style: none; }
.content-reset li.task-list-item > input {
margin-left: -2em;
vertical-align: middle; }
.img-preview {
width: 100%;
height: 100%;
top: 0;
z-index: 211;
overflow: auto;
cursor: zoom-out;
transition: background-color .2s ease-in-out; }
.img-preview img {
max-width: inherit;
transition: transform .3s ease-in-out; }
/*
* Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java.
* Copyright (C) 2012-2018, b3log.org & hacpai.com
*
* 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定
*/
/**
* Function and font text style
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</ta>
* @version 0.2.0.0, Arp 29, 2018
*/
.fn__flex {
display: flex; }
.fn__flex-center {
align-self: center; }
.fn__flex-inline {
display: inline-flex;
align-items: center; }
.fn__flex-1 {
flex: 1;
min-width: 1px; }
.fn__flex-column {
min-height: 100%;
display: flex;
flex-direction: column; }
.fn__pointer {
cursor: pointer; }
.fn__clear:before, .fn__clear:after {
display: table;
content: ""; }
.fn__clear:after {
clear: both; }
.fn__left {
float: left; }
.fn__right {
float: right; }
.fn__none {
display: none; }
.fn__hidden {
visibility: hidden; }
.fn__ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-wrap: normal; }
.ft__13 {
font-size: 13px; }
.ft__smaller {
font-size: 12px; }
.ft__center {
text-align: center; }
.ft__nowrap {
white-space: nowrap; }
/*
* Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java.
* Copyright (C) 2012-2018, b3log.org & hacpai.com
*
* 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定
*/
/**
* tool tip.
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 0.1.0.0, Apr 18, 2018
*/
@-webkit-keyframes tooltip-appear {
from {
opacity: 0; }
to {
opacity: 1; } }
@keyframes tooltip-appear {
from {
opacity: 0; }
to {
opacity: 1; } }
.tooltipped {
position: relative;
cursor: pointer; }
.tooltipped::after {
position: absolute;
z-index: 1000000;
display: none;
padding: 5px 8px;
font-size: 11px;
font-weight: normal;
-webkit-font-smoothing: subpixel-antialiased;
color: #fff;
text-align: center;
text-decoration: none;
text-shadow: none;
text-transform: none;
letter-spacing: normal;
word-wrap: break-word;
white-space: pre;
pointer-events: none;
content: attr(aria-label);
background: rgba(0, 0, 0, 0.8);
border-radius: 3px;
line-height: 16px;
opacity: 0; }
.tooltipped::before {
position: absolute;
z-index: 1000001;
display: none;
width: 0;
height: 0;
color: rgba(0, 0, 0, 0.8);
pointer-events: none;
content: "";
border: 5px solid transparent;
opacity: 0; }
.tooltipped--hover::before, .tooltipped--hover::after, .tooltipped:hover::before, .tooltipped:hover::after, .tooltipped:active::before, .tooltipped:active::after, .tooltipped:focus::before, .tooltipped:focus::after {
display: inline-block;
text-decoration: none;
animation-name: tooltip-appear;
animation-duration: 0.1s;
animation-fill-mode: forwards;
animation-timing-function: ease-in;
animation-delay: 0.4s; }
.tooltipped__s::after, .tooltipped__se::after, .tooltipped__sw::after {
top: 100%;
right: 50%;
margin-top: 5px; }
.tooltipped__s::before, .tooltipped__se::before, .tooltipped__sw::before {
top: auto;
right: 50%;
bottom: -5px;
margin-right: -5px;
border-bottom-color: rgba(0, 0, 0, 0.8); }
.tooltipped__se::after {
right: auto;
left: 50%;
margin-left: -15px; }
.tooltipped__sw::after {
margin-right: -15px; }
.tooltipped__n::after, .tooltipped__ne::after, .tooltipped__nw::after {
right: 50%;
bottom: 100%;
margin-bottom: 5px; }
.tooltipped__n::before, .tooltipped__ne::before, .tooltipped__nw::before {
top: -5px;
right: 50%;
bottom: auto;
margin-right: -5px;
border-top-color: rgba(0, 0, 0, 0.8); }
.tooltipped__ne::after {
right: auto;
left: 50%;
margin-left: -15px; }
.tooltipped__nw::after {
margin-right: -15px; }
.tooltipped__s::after, .tooltipped__n::after {
transform: translateX(50%); }
.tooltipped__w::after {
right: 100%;
bottom: 50%;
margin-right: 5px;
transform: translateY(50%); }
.tooltipped__w::before {
top: 50%;
bottom: 50%;
left: -5px;
margin-top: -5px;
border-left-color: rgba(0, 0, 0, 0.8); }
.tooltipped__e::after {
bottom: 50%;
left: 100%;
margin-left: 5px;
transform: translateY(50%); }
.tooltipped__e::before {
top: 50%;
right: -5px;
bottom: 50%;
margin-top: -5px;
border-right-color: rgba(0, 0, 0, 0.8); }
/*
* Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java.
* Copyright (C) 2012-2018, b3log.org & hacpai.com
*
* 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定
*/
/**
* comment
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</ta>
* @version 0.1.0.0, Sep 1, 2018
*/
.em00, .em01, .em02, .em03, .em04, .em05, .em06, .em07, .em08, .em09, .em10, .em11, .em12, .em13, .em14 {
cursor: pointer;
background-image: url(../../../images/emotions/emotions.png);
background-size: 120px;
float: left;
height: 24px;
margin-right: 5px;
width: 24px;
transition: all .2s ease-out;
-webkit-transition: all .2s ease-out;
-moz-transition: all .2s ease-out; }
#emotions span:hover {
transform: scale(1.2) rotate(360deg);
-webkit-transform: scale(1.2) rotate(360deg);
-moz-transform: scale(1.2) rotate(360deg); }
.em01 {
background-position: -24px 0; }
.em02 {
background-position: -48px 0; }
.em03 {
background-position: -72px 0; }
.em04 {
background-position: -96px 0; }
.em05 {
background-position: 0 -24px; }
.em06 {
background-position: -24px -24px; }
.em07 {
background-position: -48px -24px; }
.em08 {
background-position: -72px -24px; }
.em09 {
background-position: -96px -24px; }
.em10 {
background-position: 0 -48px; }
.em11 {
background-position: -24px -48px; }
.em12 {
background-position: -48px -48px; }
.em13 {
background-position: -72px -48px; }
.em14 {
background-position: -96px -48px; }
/* Make clicks pass-through */
#nprogress {
pointer-events: none; }
#nprogress .bar {
background: #d23f31;
position: fixed;
z-index: 1031;
top: 0;
left: 0;
width: 100%;
height: 2px; }
/* Fancy blur effect */
#nprogress .peg {
display: block;
position: absolute;
right: 0px;
width: 100px;
height: 100%;
box-shadow: 0 0 10px #d23f31, 0 0 5px #d23f31;
opacity: 1.0;
-webkit-transform: rotate(3deg) translate(0px, -4px);
-ms-transform: rotate(3deg) translate(0px, -4px);
transform: rotate(3deg) translate(0px, -4px); }
/* Remove these to get rid of the spinner */
#nprogress .spinner {
display: block;
position: fixed;
z-index: 1031;
top: 15px;
right: 15px; }
#nprogress .spinner-icon {
width: 18px;
height: 18px;
box-sizing: border-box;
border: solid 2px transparent;
border-top-color: #d23f31;
border-left-color: #d23f31;
border-radius: 50%;
-webkit-animation: nprogress-spinner 400ms linear infinite;
animation: nprogress-spinner 400ms linear infinite; }
.nprogress-custom-parent {
overflow: hidden;
position: relative; }
.nprogress-custom-parent #nprogress .spinner,
.nprogress-custom-parent #nprogress .bar {
position: absolute; }
@-webkit-keyframes nprogress-spinner {
0% {
-webkit-transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg); } }
@keyframes nprogress-spinner {
0% {
transform: rotate(0deg); }
100% {
transform: rotate(360deg); } }
/**
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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/>.
*/
@font-face {
font-family: 'icomoon';
src: url("fonts/icomoon.eot?oyqnlj");
src: url("fonts/icomoon.eot?oyqnlj#iefix") format("embedded-opentype"), url("fonts/icomoon.ttf?oyqnlj") format("truetype"), url("fonts/icomoon.woff?oyqnlj") format("woff"), url("fonts/icomoon.svg?oyqnlj#icomoon") format("svg");
font-weight: normal;
font-style: normal; }
[class^="icon__"], [class*=" icon__"] {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'icomoon' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; }
.icon__list:before {
content: "\f0ca"; }
.icon__home:before {
content: "\f015"; }
.icon__comments:before {
content: "\f0e6"; }
.icon__date:before {
content: "\f073"; }
.icon__search:before {
content: "\f002"; }
.icon__up:before {
content: "\f077"; }
.icon__inbox:before {
content: "\f01c"; }
.icon__tags:before {
content: "\f02c"; }
.icon__link:before {
content: "\f0c1"; }
.icon__refresh:before {
content: "\f021"; }
.icon__category:before {
content: "\e9bc"; }
.icon__logout:before {
content: "\ea14"; }
.icon__views:before {
content: "\e900"; }
.icon__register:before {
content: "\e973"; }
.icon__setting:before {
content: "\e994"; }
.icon__login:before {
content: "\ea13"; }
.icon__rss:before {
content: "\e901"; }
body {
cursor: url(../images/cursor.cur), url(../images/cursor.cur), auto; }
a {
transition: all .3s;
cursor: url(../images/pointer.cur), url(../images/pointer.cur), auto; }
.content-reset img {
vertical-align: sub; }
.ft__red {
color: #b94a48; }
.module {
border-radius: 5px;
overflow: hidden;
margin-bottom: 30px;
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
transition: all .3s; }
.module.item {
transform: translateY(30px);
transition: transform 2s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.module.item--active {
transform: translate(0); }
.module:hover {
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8); }
.module__content {
background-color: rgba(255, 255, 255, 0.8);
padding: 15px;
color: #3d4450;
display: block; }
.module__content:hover {
background-color: #fff; }
.module__content--three {
padding-bottom: 0; }
.module__header {
background-color: rgba(10, 10, 0, 0.7);
padding: 15px;
color: #fff; }
.module__header a {
color: #fff; }
.module__header:hover {
background-color: rgba(10, 10, 0, 0.9); }
.module__list li {
border-bottom: 1px solid #ddd;
background-color: rgba(255, 255, 255, 0.8);
line-height: 20px; }
.module__list li a {
padding: 15px 15px;
display: block;
color: #3d4450; }
.module__list li a:hover {
text-decoration: none;
color: #b94a48;
background-color: #fff; }
.form {
position: relative; }
.form__input {
border: 1px solid #7266BA;
height: 30px;
line-height: 30px;
padding: 0 15px;
border-radius: 15px;
width: 100%;
box-sizing: border-box; }
.bg {
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-image: url(../images/background1.jpg);
background-size: cover;
background-position: center center;
z-index: -1;
animation: imageAnimation 36s linear infinite 0s;
opacity: 0; }
.bg--1 {
background-image: url(../images/background2.jpg);
animation-delay: 6s; }
.bg--2 {
background-image: url(../images/background3.jpg);
animation-delay: 12s; }
.bg--3 {
background-image: url(../images/background4.jpg);
animation-delay: 18s; }
.bg--4 {
background-image: url(../images/background5.jpg);
animation-delay: 24s; }
.bg--5 {
background-image: url(../images/background6.jpg);
animation-delay: 30s; }
@keyframes imageAnimation {
0% {
opacity: 0;
animation-timing-function: ease-in; }
8% {
opacity: 1;
transform: scale(1.05);
animation-timing-function: ease-out; }
17% {
opacity: 1;
transform: scale(1.1) rotate(0deg); }
25% {
opacity: 0;
transform: scale(1.1) rotate(0deg); }
100% {
opacity: 0; } }
.header {
background-color: rgba(10, 10, 0, 0.7);
height: 50px;
line-height: 50px;
color: #fff;
transition: all .3s;
box-shadow: 0 0 8px black; }
.header:hover {
background-color: rgba(10, 10, 0, 0.9); }
.header a {
color: #fff;
padding: 0 15px;
display: inline-block; }
.header a.current, .header a:hover {
text-decoration: none;
background-color: rgba(102, 88, 184, 0.8); }
.header__logo {
position: absolute;
left: 30px; }
.header__nav {
text-align: center; }
.header__nav img {
float: left;
height: 20px;
width: 20px;
margin: 15px 5px 0 0; }
.header__login {
position: absolute;
right: 30px;
top: 0; }
.main {
max-width: 1170px;
padding: 30px;
margin: auto;
display: flex; }
.content {
flex: 1;
min-width: 1px; }
.side {
width: 280px;
min-width: 280px;
margin-left: 30px; }
.side__btn {
background-color: transparent;
border: 0;
top: 5px;
position: absolute;
right: 10px; }
.side__avatar {
border-radius: 50%;
height: 100px;
width: 100px;
display: block;
margin: 0 auto;
margin-bottom: 15px;
transition: transform .3s;
margin-top: 10px; }
.side__avatar:hover {
transform: rotate(360deg) scale(1.2);
border: 5px solid rgba(114, 102, 186, 0.36);
margin-top: 0; }
.tag {
float: left;
color: #fff;
padding: 2px 5px;
border: 1px solid transparent;
height: 20px;
white-space: nowrap;
word-wrap: normal;
background-color: rgba(10, 10, 0, 0.7);
border-radius: 3px 3px 3px 3px;
line-height: 21px;
margin: 0 15px 15px 0; }
.tag a {
color: #fff; }
.tag:hover {
background-color: #b94a48;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
text-decoration: none; }
.breadcrumb {
color: #7266BA !important; }
.breadcrumb:hover {
color: #3d4450 !important; }
.footer {
text-align: center;
color: #fff;
padding: 15px;
margin-bottom: 30px; }
.footer a {
color: #7266BA; }
.article-list .item {
border-radius: 5px;
margin-bottom: 30px;
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
padding: 15px;
background-color: rgba(255, 255, 255, 0.8);
position: relative;
transition: all 0.3s, transform 1s cubic-bezier(0.175, 0.885, 0.32, 1.275);
transform: perspective(2500px) rotateX(-100deg); }
.article-list .item--active {
transform: perspective(2500px) rotateX(0); }
.article-list .item:hover {
background-color: #fff;
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8); }
.article-list .item .tag {
float: none;
display: inline-block; }
.article-list .item__title {
text-align: center;
font-size: 24px;
font-weight: 500; }
.article-list .item__title a {
color: rgba(10, 10, 0, 0.7);
padding: 0 15px;
border-radius: 5px;
display: inline-block;
margin-bottom: 15px;
line-height: 36px; }
.article-list .item__title a:hover {
color: #fff;
text-decoration: none;
background-color: #6658b8; }
.article-list .item__title > sup {
color: #b94a48; }
.article-list .item__date {
position: absolute;
background-color: #7266BA;
color: #fff;
height: 70px;
width: 70px;
font-size: 12px;
top: -20px;
border-radius: 35px;
left: -20px;
text-align: center;
padding-top: 9px;
box-sizing: border-box; }
.article-list .item__day {
font-size: 30px;
display: block; }
.pagination__item {
color: #fff;
border-radius: 3px;
padding: 0 10px;
line-height: 24px;
display: inline-block;
margin: 0 0 10px 10px;
background-color: rgba(114, 102, 186, 0.58); }
.pagination__item--text {
background-color: rgba(255, 255, 255, 0.8);
color: #7266BA; }
.pagination__item--current {
background-color: #6658b8; }
.pagination a.pagination__item:hover {
text-decoration: none;
background-color: #6658b8; }
.comments {
position: relative; }
.comments__item {
border-radius: 5px;
list-style: none;
margin-bottom: 30px;
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
transition: all .3s; }
.comments__item:hover {
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8); }
.comments__item:hover .comments__avatar {
transform: rotate(720deg);
border-radius: 0; }
.comments__item:hover .comments__content {
background-color: #fff; }
.comments__item:hover .comments__meta {
background-color: #d9edf7; }
.comments__meta {
border-radius: 5px 5px 0 0;
min-height: 37px;
line-height: 37px;
padding-left: 45px;
background: rgba(217, 237, 247, 0.6);
color: #3d4450;
padding-right: 15px; }
.comments__meta a {
font-weight: 700;
color: #3d4450; }
.comments__meta a:hover {
color: #b94a48; }
.comments__meta--only {
border-radius: 5px; }
.comments__content {
border-radius: 0 0 5px 5px;
background-color: rgba(255, 255, 255, 0.8);
padding: 15px 15px 15px 45px;
position: relative; }
.comments__avatar {
position: absolute;
height: 54px;
width: 54px;
background-position: center center;
background-size: cover;
border: 2px solid #fff;
border-radius: 35px;
left: -29px;
top: -23px;
transition: all .8s ease; }
.comments__captcha {
height: 30px; }
.comments__reply {
border-radius: 5px;
margin: 15px auto 0; }
.comment-body-ref {
right: 0;
position: absolute;
left: 64px; }
.comment-body-ref .breadcrumb {
display: none; }
.form input,
.form textarea {
border: 1px solid #d1d5da;
background-color: #fafafa;
border-radius: 3px;
box-shadow: inset 0 1px 2px rgba(27, 31, 35, 0.075);
padding: 7px 8px;
width: 100%;
line-height: 17px;
box-sizing: border-box; }
.form input:focus,
.form textarea:focus {
background-color: #fff;
box-shadow: inset 0 1px 2px rgba(27, 31, 35, 0.075), 0 0 0 0.2em #dbedff;
border: 1px solid #4285f4; }
.form .ft__red {
line-height: 34px; }
.form .btn {
float: right;
height: 34px;
margin: 0 0 0 10px;
padding: 0 15px; }
.icon__up {
position: fixed;
bottom: 30px;
right: 30px;
color: #fff;
background-color: rgba(114, 102, 186, 0.8);
height: 30px;
width: 30px;
line-height: 28px;
border-radius: 15px;
cursor: pointer;
display: none;
text-align: center; }
.icon__up:hover {
background-color: #6658b8; }
.content .b3-solo-list {
display: none !important; }
.b3-solo-list {
margin: 0 !important;
font-size: 14px !important; }
.b3-solo-list-h1 {
margin: 0 !important; }
.b3-solo-list-h2 {
margin: 0 !important; }
.b3-solo-list-h2 a {
padding-left: 30px !important; }
.b3-solo-list-h3 {
margin: 0 !important; }
.b3-solo-list-h3 a {
padding-left: 45px !important; }
.b3-solo-list-h4 {
margin: 0 !important; }
.b3-solo-list-h4 a {
padding-left: 60px !important; }
.b3-solo-list-h5 {
margin: 0 !important; }
.b3-solo-list-h5 a {
padding-left: 75px !important; }
@media (max-width: 768px) {
.header__nav {
display: none; }
.main {
display: block;
margin: 15px;
padding: 0; }
.side {
margin: 0;
width: auto; }
.article-list .item__date {
display: none; }
.article-list .item,
.module {
margin-bottom: 15px; }
.footer {
margin: 0 15px 15px;
background-color: rgba(255, 255, 255, 0.8);
border-radius: 5px;
color: #3d4450;
line-height: 20px; }
.footer a {
text-decoration: underline; }
.footer .fn__none--m {
display: none; }
.footer .fn__none {
display: block; }
.article-list .item__date--m {
text-align: center;
margin-bottom: 10px;
color: #3d4450;
display: block; }
.tag {
margin: 0 5px 10px 0;
font-size: 12px; }
.header__logo {
left: 0; }
.header__login {
display: none; }
.header__m {
display: block;
position: absolute;
width: 100%;
z-index: 1; }
.header__m img {
float: left;
height: 20px;
width: 20px;
margin: 0 5px 0 0; }
.header__m a.current {
color: #b94a48; }
.header__m .icon__list {
position: absolute;
top: -35px;
right: 15px;
font-size: 20px;
color: #fff; }
.header__m .module__list {
display: none; }
.header__m .module__list li {
background-color: #fff; }
.module__content.ft__center {
text-align: left; }
.comments__avatar {
height: 48px;
width: 48px;
left: -14px; } }
/**
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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/>.
*/
@charset "UTF-8";body,button,input,select,textarea{margin:0;font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif}.content-reset pre,sub,sup{position:relative}.fn__ellipsis,.ft__nowrap{white-space:nowrap}.comments__item,.content-reset li.task-list-item{list-style:none}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;height:100%}body{font-size:14px;background-color:#fff;-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch}::-moz-selection{text-shadow:none;background:rgba(65,131,196,.4)}::selection{text-shadow:none;background:rgba(66,133,244,.4)}ol,ul{margin:0;padding:0}blockquote,dd,dl,h1,h2,h3,h4,h5,h6,p{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none}a:hover{text-decoration:underline}sub,sup{font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{max-width:100%;vertical-align:middle;border:0;height:auto;-ms-interpolation-mode:bicubic;overflow:hidden;font-size:12px}button,input,select,textarea{font-size:100%;vertical-align:middle;outline:0}button,input{line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}.content-reset h1,.content-reset h2{padding-bottom:.3em;border-bottom:1px solid #eee}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}svg{fill:currentColor;display:inline-block;stroke-width:0;stroke:currentColor;width:14px;height:14px}.content-reset{word-wrap:break-word;overflow:auto;line-height:1.65;font-size:16px;word-break:break-word}.content-reset ol,.content-reset ul{padding-left:2em;margin-top:0;margin-bottom:16px}.content-reset li{margin-top:.25em}.content-reset img{cursor:zoom-in}.content-reset img.emoji{cursor:auto;max-width:18px}.content-reset h1,.content-reset h2,.content-reset h3,.content-reset h4,.content-reset h5,.content-reset h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.content-reset h1{font-size:1.7em}.content-reset h2{font-size:1.5em}.content-reset h3{font-size:1.25em}.content-reset h4{font-size:1em}.content-reset h5{font-size:.875em}.content-reset h6{font-size:.85em}.content-reset hr{height:.25em;padding:0;margin:24px 0;background-color:#e7e7e7;border:0}.content-reset p{margin-top:0;margin-bottom:16px}.content-reset blockquote{padding:0 1em;color:#777;border-left:.25em solid #ddd;margin-bottom:16px}.content-reset blockquote p{margin:0}.content-reset iframe{border:1px solid rgba(0,0,0,.38)}.content-reset table{width:100%;border:1px solid #dedede;margin:15px auto;border-collapse:collapse;empty-cells:show}.content-reset thead{text-align:center}.content-reset td,.content-reset th{height:35px;border:1px solid #dedede;padding:0 10px}.content-reset th{font-weight:700;text-align:center!important;background:rgba(158,188,226,.2)}.article-list .item__date,.footer,.ft__center,.header__nav,.icon__up,.tooltipped::after{text-align:center}.content-reset tbody tr:nth-child(2n){background:rgba(158,188,226,.12)}.content-reset tr:hover{background:#efefef}.content-reset code{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(252,41,41,.12);border-radius:3px;word-break:break-word}.content-reset pre textarea{position:absolute;top:-100000px}.content-reset pre>code{padding:.5em;background-color:rgba(0,0,0,.04);background-size:20px 20px;border-radius:5px}.content-reset kbd{display:inline-block;padding:3px 5px;font:11px Consolas,"Liberation Mono",Menlo,Courier,monospace;line-height:10px;color:#555;vertical-align:middle;background-color:#fcfcfc;border:1px solid rgba(0,0,0,.38);border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.content-reset li.task-list-item>input{margin-left:-2em;vertical-align:middle}.img-preview{width:100%;height:100%;top:0;z-index:211;overflow:auto;cursor:zoom-out;transition:background-color .2s ease-in-out}.fn__pointer,.tooltipped{cursor:pointer}.img-preview img{max-width:inherit;transition:transform .3s ease-in-out}.fn__flex{display:flex}.fn__flex-center{align-self:center}.fn__flex-inline{display:inline-flex;align-items:center}.fn__flex-1{flex:1;min-width:1px}.fn__flex-column{min-height:100%;display:flex;flex-direction:column}.fn__clear:after,.fn__clear:before{display:table;content:""}.fn__clear:after{clear:both}.fn__left{float:left}.fn__right{float:right}.fn__none{display:none}.fn__hidden{visibility:hidden}.fn__ellipsis{overflow:hidden;text-overflow:ellipsis;word-wrap:normal}.ft__13{font-size:13px}.ft__smaller{font-size:12px}@-webkit-keyframes tooltip-appear{from{opacity:0}to{opacity:1}}@keyframes tooltip-appear{from{opacity:0}to{opacity:1}}.tooltipped{position:relative}.tooltipped::after,.tooltipped::before{position:absolute;display:none;opacity:0;pointer-events:none}.tooltipped::after{z-index:1000000;padding:5px 8px;font-size:11px;font-weight:400;-webkit-font-smoothing:subpixel-antialiased;color:#fff;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;content:attr(aria-label);background:rgba(0,0,0,.8);border-radius:3px;line-height:16px}.tooltipped::before{z-index:1000001;width:0;height:0;color:rgba(0,0,0,.8);content:"";border:5px solid transparent}.tooltipped--hover::after,.tooltipped--hover::before,.tooltipped:active::after,.tooltipped:active::before,.tooltipped:focus::after,.tooltipped:focus::before,.tooltipped:hover::after,.tooltipped:hover::before{display:inline-block;text-decoration:none;animation-name:tooltip-appear;animation-duration:.1s;animation-fill-mode:forwards;animation-timing-function:ease-in;animation-delay:.4s}.tooltipped__s::after,.tooltipped__se::after,.tooltipped__sw::after{top:100%;right:50%;margin-top:5px}.tooltipped__s::before,.tooltipped__se::before,.tooltipped__sw::before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.tooltipped__se::after{right:auto;left:50%;margin-left:-15px}.tooltipped__sw::after{margin-right:-15px}.tooltipped__n::after,.tooltipped__ne::after,.tooltipped__nw::after{right:50%;bottom:100%;margin-bottom:5px}.tooltipped__n::before,.tooltipped__ne::before,.tooltipped__nw::before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.tooltipped__ne::after{right:auto;left:50%;margin-left:-15px}.tooltipped__nw::after{margin-right:-15px}.tooltipped__n::after,.tooltipped__s::after{transform:translateX(50%)}.tooltipped__w::after{right:100%;bottom:50%;margin-right:5px;transform:translateY(50%)}.tooltipped__w::before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.tooltipped__e::after{bottom:50%;left:100%;margin-left:5px;transform:translateY(50%)}.tooltipped__e::before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.em00,.em01,.em02,.em03,.em04,.em05,.em06,.em07,.em08,.em09,.em10,.em11,.em12,.em13,.em14{cursor:pointer;background-image:url(../../../images/emotions/emotions.png);background-size:120px;float:left;height:24px;margin-right:5px;width:24px;transition:all .2s ease-out;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out}.module,a{transition:all .3s}#emotions span:hover{transform:scale(1.2) rotate(360deg);-webkit-transform:scale(1.2) rotate(360deg);-moz-transform:scale(1.2) rotate(360deg)}.em01{background-position:-24px 0}.em02{background-position:-48px 0}.em03{background-position:-72px 0}.em04{background-position:-96px 0}.em05{background-position:0 -24px}.em06{background-position:-24px -24px}.em07{background-position:-48px -24px}.em08{background-position:-72px -24px}.em09{background-position:-96px -24px}.em10{background-position:0 -48px}.em11{background-position:-24px -48px}.em12{background-position:-48px -48px}.em13{background-position:-72px -48px}.em14{background-position:-96px -48px}#nprogress{pointer-events:none}#nprogress .bar{background:#d23f31;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #d23f31,0 0 5px #d23f31;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#d23f31;border-left-color:#d23f31;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@font-face{font-family:icomoon;src:url(fonts/icomoon.eot?oyqnlj);src:url(fonts/icomoon.eot?oyqnlj#iefix) format("embedded-opentype"),url(fonts/icomoon.ttf?oyqnlj) format("truetype"),url(fonts/icomoon.woff?oyqnlj) format("woff"),url(fonts/icomoon.svg?oyqnlj#icomoon) format("svg");font-weight:400;font-style:normal}[class*=" icon__"],[class^=icon__]{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon__list:before{content:"\f0ca"}.icon__home:before{content:"\f015"}.icon__comments:before{content:"\f0e6"}.icon__date:before{content:"\f073"}.icon__search:before{content:"\f002"}.icon__up:before{content:"\f077"}.icon__inbox:before{content:"\f01c"}.icon__tags:before{content:"\f02c"}.icon__link:before{content:"\f0c1"}.icon__refresh:before{content:"\f021"}.icon__category:before{content:"\e9bc"}.icon__logout:before{content:"\ea14"}.icon__views:before{content:"\e900"}.icon__register:before{content:"\e973"}.icon__setting:before{content:"\e994"}.icon__login:before{content:"\ea13"}.icon__rss:before{content:"\e901"}body{cursor:url(../images/cursor.cur),url(../images/cursor.cur),auto}a{outline:0;text-decoration:none;cursor:url(../images/pointer.cur),url(../images/pointer.cur),auto}.content-reset img{vertical-align:sub}.ft__red{color:#b94a48}.module{border-radius:5px;overflow:hidden;margin-bottom:30px;box-shadow:1px 1px 3px 1px rgba(0,0,0,.2)}.module.item{transform:translateY(30px);transition:transform 2s cubic-bezier(.175,.885,.32,1.275)}.module.item--active{transform:translate(0)}.module:hover{box-shadow:0 0 20px 0 rgba(0,0,0,.8)}.module__content{background-color:rgba(255,255,255,.8);padding:15px;color:#3d4450;display:block}.module__content:hover{background-color:#fff}.module__content--three{padding-bottom:0}.module__header{background-color:rgba(10,10,0,.7);padding:15px;color:#fff}.module__header a{color:#fff}.module__header:hover{background-color:rgba(10,10,0,.9)}.module__list li{border-bottom:1px solid #ddd;background-color:rgba(255,255,255,.8);line-height:20px}.module__list li a{padding:15px;display:block;color:#3d4450}.module__list li a:hover{text-decoration:none;color:#b94a48;background-color:#fff}.header,.header a,.tag,.tag a{color:#fff}.form{position:relative}.form__input{border:1px solid #7266BA;height:30px;line-height:30px;padding:0 15px;border-radius:15px;width:100%;box-sizing:border-box}.bg{height:100%;width:100%;position:fixed;top:0;left:0;background-image:url(../images/background1.jpg);background-size:cover;background-position:center center;z-index:-1;animation:imageAnimation 36s linear infinite 0s;opacity:0}.bg--1{background-image:url(../images/background2.jpg);animation-delay:6s}.bg--2{background-image:url(../images/background3.jpg);animation-delay:12s}.bg--3{background-image:url(../images/background4.jpg);animation-delay:18s}.bg--4{background-image:url(../images/background5.jpg);animation-delay:24s}.bg--5{background-image:url(../images/background6.jpg);animation-delay:30s}@keyframes imageAnimation{0%{opacity:0;animation-timing-function:ease-in}8%{opacity:1;transform:scale(1.05);animation-timing-function:ease-out}17%{opacity:1;transform:scale(1.1) rotate(0)}25%{opacity:0;transform:scale(1.1) rotate(0)}100%{opacity:0}}.header{background-color:rgba(10,10,0,.7);height:50px;line-height:50px;transition:all .3s;box-shadow:0 0 8px #000}.header:hover{background-color:rgba(10,10,0,.9)}.header a{padding:0 15px;display:inline-block}.header a.current,.header a:hover{text-decoration:none;background-color:rgba(102,88,184,.8)}.header__logo{position:absolute;left:30px}.header__nav img{float:left;height:20px;width:20px;margin:15px 5px 0 0}.header__login{position:absolute;right:30px;top:0}.main{max-width:1170px;padding:30px;margin:auto;display:flex}.content{flex:1;min-width:1px}.side{width:280px;min-width:280px;margin-left:30px}.side__btn{background-color:transparent;border:0;top:5px;position:absolute;right:10px}.side__avatar{border-radius:50%;height:100px;width:100px;display:block;margin:10px auto 15px;transition:transform .3s}.side__avatar:hover{transform:rotate(360deg) scale(1.2);border:5px solid rgba(114,102,186,.36);margin-top:0}.tag{float:left;padding:2px 5px;border:1px solid transparent;height:20px;white-space:nowrap;word-wrap:normal;background-color:rgba(10,10,0,.7);border-radius:3px;line-height:21px;margin:0 15px 15px 0}.article-list .item,.footer{margin-bottom:30px;padding:15px}.tag:hover{background-color:#b94a48;box-shadow:0 1px 1px rgba(0,0,0,.2);text-decoration:none}.breadcrumb{color:#7266BA!important}.breadcrumb:hover{color:#3d4450!important}.footer{color:#fff}.footer a{color:#7266BA}.article-list .item{border-radius:5px;box-shadow:1px 1px 3px 1px rgba(0,0,0,.2);background-color:rgba(255,255,255,.8);position:relative;transition:all .3s,transform 1s cubic-bezier(.175,.885,.32,1.275);transform:perspective(2500px) rotateX(-100deg)}.article-list .item--active{transform:perspective(2500px) rotateX(0)}.article-list .item:hover{background-color:#fff;box-shadow:0 0 20px 0 rgba(0,0,0,.8)}.article-list .item .tag{float:none;display:inline-block}.article-list .item__title{text-align:center;font-size:24px;font-weight:500}.article-list .item__title a{color:rgba(10,10,0,.7);padding:0 15px;border-radius:5px;display:inline-block;margin-bottom:15px;line-height:36px}.article-list .item__title a:hover{color:#fff;text-decoration:none;background-color:#6658b8}.article-list .item__title>sup{color:#b94a48}.article-list .item__date{position:absolute;background-color:#7266BA;color:#fff;height:70px;width:70px;font-size:12px;top:-20px;border-radius:35px;left:-20px;padding-top:9px;box-sizing:border-box}.article-list .item__day{font-size:30px;display:block}.pagination__item{color:#fff;border-radius:3px;padding:0 10px;line-height:24px;display:inline-block;margin:0 0 10px 10px;background-color:rgba(114,102,186,.58)}.comment-body-ref .breadcrumb,.icon__up{display:none}.pagination__item--text{background-color:rgba(255,255,255,.8);color:#7266BA}.pagination__item--current{background-color:#6658b8}.pagination a.pagination__item:hover{text-decoration:none;background-color:#6658b8}.comments{position:relative}.comments__item{border-radius:5px;margin-bottom:30px;box-shadow:1px 1px 3px 1px rgba(0,0,0,.2);transition:all .3s}.comments__item:hover{box-shadow:0 0 20px 0 rgba(0,0,0,.8)}.comments__item:hover .comments__avatar{transform:rotate(720deg);border-radius:0}.comments__item:hover .comments__content{background-color:#fff}.comments__item:hover .comments__meta{background-color:#d9edf7}.comments__meta{border-radius:5px 5px 0 0;min-height:37px;line-height:37px;padding-left:45px;background:rgba(217,237,247,.6);color:#3d4450;padding-right:15px}.comments__meta a{font-weight:700;color:#3d4450}.comments__meta a:hover{color:#b94a48}.comments__meta--only{border-radius:5px}.comments__content{border-radius:0 0 5px 5px;background-color:rgba(255,255,255,.8);padding:15px 15px 15px 45px;position:relative}.comments__avatar{position:absolute;height:54px;width:54px;background-position:center center;background-size:cover;border:2px solid #fff;border-radius:35px;left:-29px;top:-23px;transition:all .8s ease}.comments__captcha{height:30px}.comments__reply{border-radius:5px;margin:15px auto 0}.comment-body-ref{right:0;position:absolute;left:64px}.form input,.form textarea{border:1px solid #d1d5da;background-color:#fafafa;border-radius:3px;box-shadow:inset 0 1px 2px rgba(27,31,35,.075);padding:7px 8px;width:100%;line-height:17px;box-sizing:border-box}.form input:focus,.form textarea:focus{background-color:#fff;box-shadow:inset 0 1px 2px rgba(27,31,35,.075),0 0 0 .2em #dbedff;border:1px solid #4285f4}.form .ft__red{line-height:34px}.form .btn{float:right;height:34px;margin:0 0 0 10px;padding:0 15px}.b3-solo-list,.b3-solo-list-h1,.b3-solo-list-h2,.b3-solo-list-h3,.b3-solo-list-h4,.b3-solo-list-h5{margin:0!important}.icon__up{position:fixed;bottom:30px;right:30px;color:#fff;background-color:rgba(114,102,186,.8);height:30px;width:30px;line-height:28px;border-radius:15px;cursor:pointer}.icon__up:hover{background-color:#6658b8}.content .b3-solo-list{display:none!important}.b3-solo-list{font-size:14px!important}.b3-solo-list-h2 a{padding-left:30px!important}.b3-solo-list-h3 a{padding-left:45px!important}.b3-solo-list-h4 a{padding-left:60px!important}.b3-solo-list-h5 a{padding-left:75px!important}@media (max-width:768px){.header__nav{display:none}.main{display:block;margin:15px;padding:0}.article-list .item__date,.footer .fn__none--m{display:none}.side{margin:0;width:auto}.article-list .item,.module{margin-bottom:15px}.footer{margin:0 15px 15px;background-color:rgba(255,255,255,.8);border-radius:5px;color:#3d4450;line-height:20px}.footer a{text-decoration:underline}.footer .fn__none{display:block}.article-list .item__date--m{text-align:center;margin-bottom:10px;color:#3d4450;display:block}.tag{margin:0 5px 10px 0;font-size:12px}.header__logo{left:0}.header__login{display:none}.header__m{display:block;position:absolute;width:100%;z-index:1}.header__m img{float:left;height:20px;width:20px;margin:0 5px 0 0}.header__m a.current{color:#b94a48}.header__m .icon__list{position:absolute;top:-35px;right:15px;font-size:20px;color:#fff}.header__m .module__list{display:none}.header__m .module__list li{background-color:#fff}.module__content.ft__center{text-align:left}.comments__avatar{height:48px;width:48px;left:-14px}}
\ No newline at end of file
/**
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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 0.2.0.0, Sep 25, 2018
*/
@import "../../../scss/reset";
@import "../../../scss/reset-content";
@import "../../../scss/function";
@import "../../../scss/tooltipped";
@import "../../../scss/comment";
@import "../../../scss/nprogress";
@import "icon";
$purple: #7266BA !default;
$purple-dark: #6658b8 !default;
$red: #b94a48 !default;
$black: #3d4450 !default;
// reset
body {
cursor: url(../images/cursor.cur), url(../images/cursor.cur), auto
}
a {
transition: all .3s;
cursor: url(../images/pointer.cur), url(../images/pointer.cur), auto
}
.content-reset img {
vertical-align: sub;
}
.ft__red {
color: $red;
}
// module
.module {
border-radius: 5px;
overflow: hidden;
margin-bottom: 30px;
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
transition: all .3s;
&.item {
transform: translateY(30px);
transition: transform 2s cubic-bezier(.175, .885, .32, 1.275);
&--active {
transform: translate(0);
}
}
&:hover {
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8);
}
&__content {
background-color: rgba(255, 255, 255, 0.8);
padding: 15px;
color: $black;
display: block;
&:hover {
background-color: #fff;
}
&--three {
padding-bottom: 0;
}
}
&__header {
background-color: rgba(10, 10, 0, 0.7);
padding: 15px;
color: #fff;
a {
color: #fff;
}
&:hover {
background-color: rgba(10, 10, 0, 0.9);
}
}
&__list {
li {
border-bottom: 1px solid #ddd;
background-color: rgba(255, 255, 255, 0.8);
line-height: 20px;
a {
padding: 15px 15px;
display: block;
color: $black;
&:hover {
text-decoration: none;
color: $red;
background-color: #fff;
}
}
}
}
}
// form
.form {
position: relative;
&__input {
border: 1px solid $purple;
height: 30px;
line-height: 30px;
padding: 0 15px;
border-radius: 15px;
width: 100%;
box-sizing: border-box;
}
}
// bg
.bg {
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-image: url(../images/background1.jpg);
background-size: cover;
background-position: center center;
z-index: -1;
animation: imageAnimation 36s linear infinite 0s;
opacity: 0;
&--1 {
background-image: url(../images/background2.jpg);
animation-delay: 6s;
}
&--2 {
background-image: url(../images/background3.jpg);
animation-delay: 12s;
}
&--3 {
background-image: url(../images/background4.jpg);
animation-delay: 18s;
}
&--4 {
background-image: url(../images/background5.jpg);
animation-delay: 24s;
}
&--5 {
background-image: url(../images/background6.jpg);
animation-delay: 30s;
}
}
@keyframes imageAnimation {
0% {
opacity: 0;
animation-timing-function: ease-in
}
8% {
opacity: 1;
transform: scale(1.05);
animation-timing-function: ease-out
}
17% {
opacity: 1;
transform: scale(1.1) rotate(0deg)
}
25% {
opacity: 0;
transform: scale(1.1) rotate(0deg)
}
100% {
opacity: 0
}
}
// header
.header {
background-color: rgba(10, 10, 0, 0.7);
height: 50px;
line-height: 50px;
color: #fff;
transition: all .3s;
box-shadow: 0 0 8px black;
&:hover {
background-color: rgba(10, 10, 0, 0.9);
}
a {
color: #fff;
padding: 0 15px;
display: inline-block;
&.current,
&:hover {
text-decoration: none;
background-color: rgba($purple-dark, 0.8);
}
}
&__logo {
position: absolute;
left: 30px;
}
&__nav {
text-align: center;
img {
float: left;
height: 20px;
width: 20px;
margin: 15px 5px 0 0;
}
}
&__login {
position: absolute;
right: 30px;
top: 0;
}
}
// framework
.main {
max-width: 1170px;
padding: 30px;
margin: auto;
display: flex;
}
.content {
flex: 1;
min-width: 1px;
}
// side
.side {
width: 280px;
min-width: 280px;
margin-left: 30px;
&__btn {
background-color: transparent;
border: 0;
top: 5px;
position: absolute;
right: 10px;
}
&__avatar {
border-radius: 50%;
height: 100px;
width: 100px;
display: block;
margin: 0 auto;
margin-bottom: 15px;
transition: transform .3s;
margin-top: 10px;
&:hover {
transform: rotate(360deg) scale(1.2);
border: 5px solid rgba($purple, 0.36);
margin-top: 0;
}
}
}
// tag
.tag {
float: left;
color: #fff;
padding: 2px 5px;
border: 1px solid transparent;
height: 20px;
white-space: nowrap;
word-wrap: normal;
background-color: rgba(10, 10, 0, 0.7);
border-radius: 3px 3px 3px 3px;
line-height: 21px;
margin: 0 15px 15px 0;
a {
color: #fff;
}
&:hover {
background-color: $red;
box-shadow: 0 1px 1px rgba(0, 0, 0, .2);
text-decoration: none;
}
}
.breadcrumb {
color: $purple !important;
&:hover {
color: $black !important;
}
}
// footer
.footer {
text-align: center;
color: #fff;
padding: 15px;
margin-bottom: 30px;
a {
color: $purple;
}
}
// article list
.article-list {
.item {
border-radius: 5px;
margin-bottom: 30px;
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
padding: 15px;
background-color: rgba(255, 255, 255, 0.8);
position: relative;
transition: all .3s, transform 1s cubic-bezier(.175, .885, .32, 1.275);
transform: perspective(2500px) rotateX(-100deg);
&--active {
transform: perspective(2500px) rotateX(0);
}
&:hover {
background-color: #fff;
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8);
}
.tag {
float: none;
display: inline-block;
}
&__title {
text-align: center;
font-size: 24px;
font-weight: 500;
a {
color: rgba(10, 10, 0, 0.7);
padding: 0 15px;
border-radius: 5px;
display: inline-block;
margin-bottom: 15px;
line-height: 36px;
&:hover {
color: #fff;
text-decoration: none;
background-color: $purple-dark;
}
}
& > sup {
color: $red;
}
}
&__date {
position: absolute;
background-color: $purple;
color: #fff;
height: 70px;
width: 70px;
font-size: 12px;
top: -20px;
border-radius: 35px;
left: -20px;
text-align: center;
padding-top: 9px;
box-sizing: border-box;
}
&__day {
font-size: 30px;
display: block;
}
}
}
// pagination
.pagination {
&__item {
color: #fff;
border-radius: 3px;
padding: 0 10px;
line-height: 24px;
display: inline-block;
margin: 0 0 10px 10px;
background-color: rgba($purple, 0.58);
&--text {
background-color: rgba(255, 255, 255, 0.8);
color: $purple;
}
&--current {
background-color: $purple-dark;
}
}
a.pagination__item:hover {
text-decoration: none;
background-color: $purple-dark;
}
}
// comment
.comments {
position: relative;
&__item {
border-radius: 5px;
list-style: none;
margin-bottom: 30px;
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
transition: all .3s;
&:hover {
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8);
.comments__avatar {
transform: rotate(720deg);
border-radius: 0;
}
.comments__content {
background-color: #fff;
}
.comments__meta {
background-color: rgba(217, 237, 247, 1);
}
}
}
&__meta {
border-radius: 5px 5px 0 0;
min-height: 37px;
line-height: 37px;
padding-left: 45px;
background: rgba(217, 237, 247, 0.6);
color: $black;
padding-right: 15px;
a {
font-weight: 700;
color: $black;
&:hover {
color: $red;
}
}
&--only {
border-radius: 5px;
}
}
&__content {
border-radius: 0 0 5px 5px;
background-color: rgba(255, 255, 255, 0.8);
padding: 15px 15px 15px 45px;
position: relative;
}
&__avatar {
position: absolute;
height: 54px;
width: 54px;
background-position: center center;
background-size: cover;
border: 2px solid #fff;
border-radius: 35px;
left: -29px;
top: -23px;
transition: all .8s ease;
}
&__captcha {
height: 30px;
}
&__reply {
border-radius: 5px;
margin: 15px auto 0
}
}
.comment-body-ref {
right: 0;
position: absolute;
left: 64px;
.breadcrumb {
display: none;
}
}
.form {
input,
textarea {
border: 1px solid #d1d5da;
background-color: #fafafa;
border-radius: 3px;
box-shadow: inset 0 1px 2px rgba(27, 31, 35, .075);
padding: 7px 8px;
width: 100%;
line-height: 17px;
box-sizing: border-box;
&:focus {
background-color: #fff;
box-shadow: inset 0 1px 2px rgba(27, 31, 35, .075), 0 0 0 0.2em #dbedff;
border: 1px solid #4285f4;
}
}
.ft__red {
line-height: 34px;
}
.btn {
float: right;
height: 34px;
margin: 0 0 0 10px;
padding: 0 15px;
}
}
.icon__up {
position: fixed;
bottom: 30px;
right: 30px;
color: #fff;
background-color: rgba($purple, 0.8);
height: 30px;
width: 30px;
line-height: 28px;
border-radius: 15px;
cursor: pointer;
display: none;
text-align: center;
&:hover {
background-color: $purple-dark;
}
}
.content .b3-solo-list {
display: none !important;
}
.b3-solo-list {
margin: 0 !important;
font-size: 14px !important;
}
.b3-solo-list-h1 {
margin: 0 !important;
}
.b3-solo-list-h2 {
margin: 0 !important;
a {
padding-left: 30px !important;
}
}
.b3-solo-list-h3 {
margin: 0 !important;
a {
padding-left: 45px !important;
}
}
.b3-solo-list-h4 {
margin: 0 !important;
a {
padding-left: 60px !important;
}
}
.b3-solo-list-h5 {
margin: 0 !important;
a {
padding-left: 75px !important;
}
}
@media (max-width: 768px) {
.header__nav {
display: none;
}
.main {
display: block;
margin: 15px;
padding: 0;
}
.side {
margin: 0;
width: auto;
}
.article-list .item__date {
display: none;
}
.article-list .item,
.module {
margin-bottom: 15px;
}
.footer {
margin: 0 15px 15px;
background-color: rgba(255, 255, 255, 0.8);
border-radius: 5px;
color: $black;
line-height: 20px;
a {
text-decoration: underline;
}
.fn__none--m {
display: none;
}
.fn__none {
display: block;
}
}
.article-list .item__date--m {
text-align: center;
margin-bottom: 10px;
color: $black;
display: block;
}
.tag {
margin: 0 5px 10px 0;
font-size: 12px;
}
.header__logo {
left: 0;
}
.header__login {
display: none;
}
.header__m {
display: block;
position: absolute;
width: 100%;
z-index: 1;
img {
float: left;
height: 20px;
width: 20px;
margin: 0 5px 0 0;
}
a.current {
color: #b94a48;
}
.icon__list {
position: absolute;
top: -35px;
right: 15px;
font-size: 20px;
color: #fff;
}
.module__list {
display: none;
li {
background-color: #fff;
}
}
}
.module__content.ft__center {
text-align: left;
}
.comments__avatar {
height: 48px;
width: 48px;
left: -14px;
}
}
\ No newline at end of file
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe900;" glyph-name="views" d="M512 768c-282.784 0-512-320-512-320s229.216-320 512-320 512 320 512 320-229.216 320-512 320zM512 256c-106.016 0-192 85.984-192 192s85.984 192 192 192 192-85.984 192-192-85.984-192-192-192zM512 576c-70.688 0-128-57.312-128-128s57.312-128 128-128 128 57.312 128 128-57.312 128-128 128z" />
<glyph unicode="&#xe901;" glyph-name="rss" d="M136.294 209.070c-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 612.070v-196.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 960v-196.356c455.782 0 826.756-371.334 826.756-827.644h196.856c0 564.47-459.254 1024-1023.612 1024z" />
<glyph unicode="&#xe973;" glyph-name="register" d="M384 224c0 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.832v-52.78c-217.102-17.748-384-124.42-384-253.388h397.306c-8.664 30.53-13.306 62.732-13.306 96zM736 512c-159.058 0-288-128.942-288-288s128.942-288 288-288c159.056 0 288 128.942 288 288s-128.942 288-288 288zM896 192h-128v-128h-64v128h-128v64h128v128h64v-128h128v-64z" />
<glyph unicode="&#xe994;" glyph-name="setting" d="M933.79 349.75c-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 240.668c-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" />
<glyph unicode="&#xe9bc;" glyph-name="category" d="M976 192h-16v208c0 61.756-50.242 112-112 112h-272v128h16c26.4 0 48 21.6 48 48v160c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-160c0-26.4 21.6-48 48-48h16v-128h-272c-61.756 0-112-50.244-112-112v-208h-16c-26.4 0-48-21.6-48-48v-160c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v160c0 26.4-21.6 48-48 48h-16v192h256v-192h-16c-26.4 0-48-21.6-48-48v-160c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v160c0 26.4-21.6 48-48 48h-16v192h256v-192h-16c-26.4 0-48-21.6-48-48v-160c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v160c0 26.4-21.6 48-48 48zM192 0h-128v128h128v-128zM576 0h-128v128h128v-128zM448 704v128h128v-128h-128zM960 0h-128v128h128v-128z" />
<glyph unicode="&#xea13;" glyph-name="login" d="M384 448h-320v128h320v128l192-192-192-192zM1024 960v-832l-384-192v192h-384v256h64v-192h320v576l256 128h-576v-256h-64v320z" />
<glyph unicode="&#xea14;" glyph-name="logout" d="M768 320v128h-320v128h320v128l192-192zM704 384v-256h-320v-192l-384 192v832h704v-320h-64v256h-512l256-128v-576h256v192z" />
<glyph unicode="&#xf002;" glyph-name="search" horiz-adv-x="951" d="M658.286 475.428c0 141.143-114.857 256-256 256s-256-114.857-256-256 114.857-256 256-256 256 114.857 256 256zM950.857 0c0-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" />
<glyph unicode="&#xf015;" glyph-name="home" horiz-adv-x="951" d="M804.571 384v-274.286c0-20-16.571-36.571-36.571-36.571h-219.429v219.429h-146.286v-219.429h-219.429c-20 0-36.571 16.571-36.571 36.571v274.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 423.428l-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.571v111.429c0 10.286 8 18.286 18.286 18.286h109.714c10.286 0 18.286-8 18.286-18.286v-233.143l125.143-104c7.429-6.286 8.571-18.286 2.286-25.714z" />
<glyph unicode="&#xf01c;" glyph-name="inbox" horiz-adv-x="878" d="M584.571 402.286h180.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 385.143v-275.429c0-20-16.571-36.571-36.571-36.571h-804.571c-20 0-36.571 16.571-36.571 36.571v275.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" />
<glyph unicode="&#xf021;" glyph-name="refresh" horiz-adv-x="878" d="M863.429 347.428c0-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.571v256c0 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 804.571v-256c0-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.286v4c49.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" />
<glyph unicode="&#xf02c;" glyph-name="tags" horiz-adv-x="1085" d="M256 694.857c0 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 365.714c0-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.571v237.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 365.714c0-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" />
<glyph unicode="&#xf073;" glyph-name="date" horiz-adv-x="951" d="M73.143 0h164.571v164.571h-164.571v-164.571zM274.286 0h182.857v164.571h-182.857v-164.571zM73.143 201.143h164.571v182.857h-164.571v-182.857zM274.286 201.143h182.857v182.857h-182.857v-182.857zM73.143 420.571h164.571v164.571h-164.571v-164.571zM493.714 0h182.857v164.571h-182.857v-164.571zM274.286 420.571h182.857v164.571h-182.857v-164.571zM713.143 0h164.571v164.571h-164.571v-164.571zM493.714 201.143h182.857v182.857h-182.857v-182.857zM292.571 694.857v164.571c0 9.714-8.571 18.286-18.286 18.286h-36.571c-9.714 0-18.286-8.571-18.286-18.286v-164.571c0-9.714 8.571-18.286 18.286-18.286h36.571c9.714 0 18.286 8.571 18.286 18.286zM713.143 201.143h164.571v182.857h-164.571v-182.857zM493.714 420.571h182.857v164.571h-182.857v-164.571zM713.143 420.571h164.571v164.571h-164.571v-164.571zM731.429 694.857v164.571c0 9.714-8.571 18.286-18.286 18.286h-36.571c-9.714 0-18.286-8.571-18.286-18.286v-164.571c0-9.714 8.571-18.286 18.286-18.286h36.571c9.714 0 18.286 8.571 18.286 18.286zM950.857 731.428v-731.429c0-40-33.143-73.143-73.143-73.143h-804.571c-40 0-73.143 33.143-73.143 73.143v731.429c0 40 33.143 73.143 73.143 73.143h73.143v54.857c0 50.286 41.143 91.429 91.429 91.429h36.571c50.286 0 91.429-41.143 91.429-91.429v-54.857h219.429v54.857c0 50.286 41.143 91.429 91.429 91.429h36.571c50.286 0 91.429-41.143 91.429-91.429v-54.857h73.143c40 0 73.143-33.143 73.143-73.143z" />
<glyph unicode="&#xf077;" glyph-name="up" d="M961.714 190.286l-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" />
<glyph unicode="&#xf0c1;" glyph-name="link" horiz-adv-x="951" d="M832 256c0 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 658.857c0 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 256c0-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" />
<glyph unicode="&#xf0ca;" glyph-name="list" d="M219.429 146.286c0-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 438.857c0-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 201.143v-109.714c0-9.714-8.571-18.286-18.286-18.286h-694.857c-9.714 0-18.286 8.571-18.286 18.286v109.714c0 9.714 8.571 18.286 18.286 18.286h694.857c9.714 0 18.286-8.571 18.286-18.286zM219.429 731.428c0-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 493.714v-109.714c0-9.714-8.571-18.286-18.286-18.286h-694.857c-9.714 0-18.286 8.571-18.286 18.286v109.714c0 9.714 8.571 18.286 18.286 18.286h694.857c9.714 0 18.286-8.571 18.286-18.286zM1024 786.286v-109.714c0-9.714-8.571-18.286-18.286-18.286h-694.857c-9.714 0-18.286 8.571-18.286 18.286v109.714c0 9.714 8.571 18.286 18.286 18.286h694.857c9.714 0 18.286-8.571 18.286-18.286z" />
<glyph unicode="&#xf0e6;" glyph-name="comments" d="M402.286 731.428c-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 804.571c222.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 136.571c19.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" />
</font></defs></svg>
\ No newline at end of file
...@@ -21,46 +21,44 @@ ...@@ -21,46 +21,44 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<@head title="${allTagsLabel} - ${blogTitle}"> <@head title="${blogTitle}">
<meta name="keywords" content="${metaKeywords},${allTagsLabel}"/> <meta name="keywords" content="${metaKeywords},${dynamicLabel}"/>
<meta name="description" content="<#list tags as tag>${tag.tagTitle}<#if tag_has_next>,</#if></#list>"/> <meta name="description" content="${metaDescription},${dynamicLabel}"/>
</@head> </@head>
</head> </head>
<body> <body>
<#include "header.ftl"> <#include "header.ftl">
<div id="pjax">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<#include "nav.ftl">
<div class="main"> <div class="main">
<#if noticeBoard??> <div id="pjax" class="content">
<div class="board"> <#if pjax><!---- pjax {#pjax} start ----></#if>
${noticeBoard} <main>
<div class="module">
<div class="module__content ft__center">
<i class="icon__home"></i>
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__refresh"></i> ${dynamicLabel}
</div> </div>
</#if>
<div class="wrapper content">
<div class="module__title">
<span>
${tags?size}
<span class="ft-green ft-12">${tagLabel}</span>
</span>
</div> </div>
<div id="tags"> <#if 0 != recentComments?size>
<#list tags as tag> <ul class="comments">
<a rel="tag" data-count="${tag.tagPublishedRefCount}" class="tag" <#list recentComments as comment>
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}"> <#include "common-comment.ftl"/>
${tag.tagTitle}
<span class="ft-green ft-12">${tag.tagPublishedRefCount} ${countLabel}</span>
</a>
</#list> </#list>
</div> </ul>
</div> </#if>
<#include "bottom.ftl"> </main>
</div>
<#if pjax><!---- pjax {#pjax} end ----></#if> <#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div> </div>
<#include "footer.ftl"> <#include "footer.ftl">
<script> <script>
Skin.initTags() var $commentContents = $('.comments .content-reset')
for (var i = 0; i < $commentContents.length; i++) {
var str = $commentContents[i].innerHTML
$commentContents[i].innerHTML = Util.replaceEmString(str)
}
</script> </script>
</body> </body>
</html> </html>
...@@ -17,34 +17,24 @@ ...@@ -17,34 +17,24 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<div class="wrapper"> <div class="icon__up" onclick="Util.goTop()"></div>
<footer class="footer"> <footer class="footer">
<div class="fn-clear"> &copy; ${year}
${blogSubtitle} ${footerContent}
<div class="fn-right"> <a href="${servePath}">${blogTitle}</a> <span class="fn__none--m">&nbsp; • &nbsp;</span>
${blogTitle} &copy; ${year} ${footerContent} <div class="fn__none"></div>
</div> <a href="https://solo.b3log.org" target="_blank">Solo</a> ${version} <br/>
</div>
<div class="fn-clear"> Powered by <a href="https://b3log.org" target="_blank">B3log</a> 开源
${statistic.statisticPublishedBlogArticleCount} ${articleLabel} &nbsp; <div class="fn__none"></div>
${statistic.statisticPublishedBlogCommentCount} ${commentLabel} &nbsp; &nbsp; &heartsuit; &nbsp;
${statistic.statisticBlogViewCount} ${viewLabel} &nbsp; Theme <a rel="friend" href="https://github.com/b3log/solo-skins" target="_blank">nijigen</a> by <a href="http://vanessa.b3log.org" target="_blank">Vanessa</a>
${onlineVisitorCnt} ${onlineVisitorLabel} </footer>
<div class="fn-right"> <div class="icon-up" onclick="Util.goTop()"></div>
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">Medium</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/lib/compress/pjax.min.js" charset="utf-8"></script>
<script type="text/javascript" src="${staticServePath}/js/common${miniPostfix}.js?${staticResourceVersion}" <script type="text/javascript" src="${staticServePath}/js/common${miniPostfix}.js?${staticResourceVersion}" charset="utf-8"></script>
charset="utf-8"></script> <script type="text/javascript" src="${staticServePath}/skins/${skinDirName}/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>
<script type="text/javascript"> <script type="text/javascript">
var latkeConfig = { var latkeConfig = {
"servePath": "${servePath}", "servePath": "${servePath}",
...@@ -73,5 +63,6 @@ ...@@ -73,5 +63,6 @@
}; };
Util.parseMarkdown('content-reset'); Util.parseMarkdown('content-reset');
Util.killIE(8)
</script> </script>
${plugins} ${plugins}
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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="bg"></div>
<div class="bg bg--1"></div>
<div class="bg bg--2"></div>
<div class="bg bg--3"></div>
<div class="bg bg--4"></div>
<div class="bg bg--5"></div>
<header class="header">
<div class="header__wrap">
<a href="${servePath}" rel="start" class="header__logo">
<i class="icon__home"></i> ${blogTitle}
</a>
<nav class="header__nav">
<#list pageNavigations as page>
<a href="${page.pagePermalink}" target="${page.pageOpenTarget}" rel="section">
<#if page.pageIcon != ''><img class="page-icon" src="${page.pageIcon}"></#if>${page.pageTitle}
</a>
</#list>
<a href="${servePath}/dynamic.html" rel="section">
<i class="icon__refresh"></i> ${dynamicLabel}
</a>
<a href="${servePath}/tags.html" rel="section">
<i class="icon__tags"></i> ${allTagsLabel}
</a>
<a href="${servePath}/archives.html">
<i class="icon__inbox"></i> ${archiveLabel}
</a>
<a rel="archive" href="${servePath}/links.html">
<i class="icon__link"></i> ${linkLabel}
</a>
<a rel="alternate" href="${servePath}/rss.xml" rel="section">
<i class="icon__rss"></i> RSS
</a>
</nav>
<div class="header__login">
<#if isLoggedIn>
<a href="${servePath}/admin-index.do#main" title="${adminLabel}">
<i class="icon__setting"></i> ${adminLabel}
</a>
<a href="${logoutURL}">
<i class="icon__logout"></i> ${logoutLabel}
</a>
<#else>
<a href="${loginURL}">
<i class="icon__login"></i> ${loginLabel}
</a>
<a href="${servePath}/register">
<i class="icon__register"></i> ${registerLabel}
</a>
</#if>
</div>
</div>
</header>
<div class="header__m fn__none">
<i class="icon__list" onclick="$(this).next().slideToggle()"></i>
<main class="module__list">
<ul>
<#if isLoggedIn>
<li>
<a href="${servePath}/admin-index.do#main" title="${adminLabel}">
<i class="icon__setting"></i> ${adminLabel}
</a>
</li>
<li>
<a href="${logoutURL}">
<i class="icon__logout"></i> ${logoutLabel}
</a>
</li>
<#else>
<li>
<a href="${loginURL}">
<i class="icon__login"></i> ${loginLabel}
</a>
</li>
<li>
<a href="${servePath}/register">
<i class="icon__register"></i> ${registerLabel}
</a>
</li>
</#if>
<#list pageNavigations as page>
<li>
<a href="${page.pagePermalink}" target="${page.pageOpenTarget}" rel="section">
<#if page.pageIcon != ''><img class="page-icon" src="${page.pageIcon}"></#if>${page.pageTitle}
</a>
</li>
</#list>
<li>
<a href="${servePath}/dynamic.html" rel="section">
<i class="icon__refresh"></i> ${dynamicLabel}
</a>
</li>
<li>
<a href="${servePath}/tags.html" rel="section">
<i class="icon__tags"></i> ${allTagsLabel}
</a>
</li>
<li>
<a href="${servePath}/archives.html">
<i class="icon__inbox"></i> ${archiveLabel}
</a>
</li>
<li>
<a rel="archive" href="${servePath}/links.html">
<i class="icon__link"></i> ${linkLabel}
</a>
</li>
<li>
<a rel="alternate" href="${servePath}/rss.xml" rel="section">
<i class="icon__rss"></i> RSS
</a>
</li>
</ul>
</main>
</div>
\ No newline at end of file
...@@ -21,32 +21,26 @@ ...@@ -21,32 +21,26 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<@head title="${blogTitle}"> <@head title="${blogTitle}">
<#if metaKeywords??> <#if metaKeywords??>
<meta name="keywords" content="${metaKeywords}"/> <meta name="keywords" content="${metaKeywords}"/>
</#if> </#if>
<#if metaDescription??> <#if metaDescription??>
<meta name="description" content="${metaDescription}"/> <meta name="description" content="${metaDescription}"/>
</#if> </#if>
</@head> </@head>
</head> </head>
<body> <body>
<#include "header.ftl"> <#include "header.ftl">
<div id="pjax">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<#include "nav.ftl">
<div class="main"> <div class="main">
<#if noticeBoard??> <div id="pjax" class="content">
<div class="board"> <#if pjax><!---- pjax {#pjax} start ----></#if>
${noticeBoard} <main>
</div>
</#if>
<div class="wrapper content">
<#include "article-list.ftl"> <#include "article-list.ftl">
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div> </div>
<#include "bottom2.ftl"> <#include "side.ftl">
</div>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div> </div>
<#include "footer.ftl"> <#include "footer.ftl">
</body> </body>
......
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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.2.1.0, Sep 30, 2018
*/
/**
* @description 皮肤脚本
* @static
*/
var Skin = {
_initCommon: function ($goTop) {
$(window).scroll(function () {
if ($(window).scrollTop() > 125) {
$goTop.show()
} else {
$goTop.hide()
}
})
},
_initAnimation: function () {
if (!('IntersectionObserver' in window)) {
$('.item').addClass('item--active')
return false
}
if (window.imageIntersectionObserver) {
window.imageIntersectionObserver.disconnect()
$('.item').each(function () {
window.imageIntersectionObserver.observe(this)
})
} else {
window.imageIntersectionObserver = new IntersectionObserver(
function (entries) {
entries.forEach(function (entrie) {
if (typeof entrie.isIntersecting === 'undefined'
? entrie.intersectionRatio !== 0 : entrie.isIntersecting) {
$(entrie.target).addClass('item--active')
} else {
if ($(entrie.target).closest('.side').length === 1 ||
$(entrie.target).closest('.article-list').hasClass('content') ||
$(entrie.target).outerHeight() > 768) {
return
}
$(entrie.target).removeClass('item--active')
}
})
})
$('.item').each(function () {
window.imageIntersectionObserver.observe(this)
})
}
},
init: function () {
Util.initPjax(function () {
Skin._initAnimation()
if ($('#articlePage').length === 0) {
$('.b3-solo-list').closest('.module').remove()
}
})
Skin._initAnimation()
$('body').on('click', '.content-reset img', function () {
window.open(this.src)
})
this._initCommon($('.icon__up'))
$('.header__nav a, .header__m a').each(function () {
if (this.href === location.href) {
this.className = 'current'
}
}).click(function () {
$('.header__nav a, .header__m a').removeClass('current')
this.className = 'current'
$('.header__m .module__list').hide()
})
$('.header__logo').click(function () {
$('.header__nav a, .header__m a').removeClass('current')
})
},
_initArticleCommon: function () {
if ($('.b3-solo-list li').length > 0 && $(window).width() > 1000) {
$('.side').
prepend('<div class="module"><div class="module__list"></div></div>')
$('.side .module:eq(0) .module__list').html($('.b3-solo-list'))
}
},
initArticle: function () {
this._initArticleCommon()
setTimeout(function () {
if ($('#externalRelevantArticlesWrap li').length === 0) {
$('#externalRelevantArticlesWrap').next().remove()
$('#externalRelevantArticlesWrap').remove()
}
if ($('#relevantArticlesWrap li').length === 0) {
$('#relevantArticlesWrap').prev().remove()
$('#relevantArticlesWrap').remove()
}
if ($('#randomArticlesWrap li').length === 0) {
$('#randomArticlesWrap').prev().remove()
$('#randomArticlesWrap').remove()
}
}, 1000)
},
}
Skin.init()
\ No newline at end of file
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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/>.
*/
var Skin={_initCommon:function(e){$(window).scroll(function(){125<$(window).scrollTop()?e.show():e.hide()})},_initAnimation:function(){if(!("IntersectionObserver"in window))return $(".item").addClass("item--active"),!1;window.imageIntersectionObserver?window.imageIntersectionObserver.disconnect():window.imageIntersectionObserver=new IntersectionObserver(function(e){e.forEach(function(e){if(void 0===e.isIntersecting?0!==e.intersectionRatio:e.isIntersecting)$(e.target).addClass("item--active");else{if(1===$(e.target).closest(".side").length||$(e.target).closest(".article-list").hasClass("content")||768<$(e.target).outerHeight())return;$(e.target).removeClass("item--active")}})}),$(".item").each(function(){window.imageIntersectionObserver.observe(this)})},init:function(){Util.initPjax(function(){Skin._initAnimation(),0===$("#articlePage").length&&$(".b3-solo-list").closest(".module").remove()}),Skin._initAnimation(),$("body").on("click",".content-reset img",function(){window.open(this.src)}),this._initCommon($(".icon__up")),$(".header__nav a, .header__m a").each(function(){this.href===location.href&&(this.className="current")}).click(function(){$(".header__nav a, .header__m a").removeClass("current"),this.className="current",$(".header__m .module__list").hide()}),$(".header__logo").click(function(){$(".header__nav a, .header__m a").removeClass("current")})},_initArticleCommon:function(){0<$(".b3-solo-list li").length&&1e3<$(window).width()&&($(".side").prepend('<div class="module"><div class="module__list"></div></div>'),$(".side .module:eq(0) .module__list").html($(".b3-solo-list")))},initArticle:function(){this._initArticleCommon(),setTimeout(function(){0===$("#externalRelevantArticlesWrap li").length&&($("#externalRelevantArticlesWrap").next().remove(),$("#externalRelevantArticlesWrap").remove()),0===$("#relevantArticlesWrap li").length&&($("#relevantArticlesWrap").prev().remove(),$("#relevantArticlesWrap").remove()),0===$("#randomArticlesWrap li").length&&($("#randomArticlesWrap").prev().remove(),$("#randomArticlesWrap").remove())},1e3)}};Skin.init();
\ No newline at end of file
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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/>.
*/
!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,o){var n,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var d=h[e];if(!d||"_"==e.charAt(0))return void r(s+" is not a valid method");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var o=this._onceEvents&&this._onceEvents[t],n=0;n<i.length;n++){var s=i[n],r=o&&o[s];r&&(this.off(t,s),delete o[s]),s.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=t.indexOf("%")==-1&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<h;e++){var i=u[e];t[i]=0}return t}function o(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function n(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var n=o(e);r=200==Math.round(t(n.width)),s.isBoxSizeOuter=r,i.removeChild(e)}}function s(e){if(n(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=o(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==s.boxSizing,l=0;l<h;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,I=d&&r,x=t(s.width);x!==!1&&(a.width=x+(I?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(I?0:y+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+z),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},u=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],h=u.length,d=!1;return s}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var o=e[i],n=o+"MatchesSelector";if(t[n])return n}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var o=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?o.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);i!=-1&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,o){t=i.makeArray(t);var n=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!o)return void n.push(t);e(t,o)&&n.push(t);for(var i=t.querySelectorAll(o),s=0;s<i.length;s++)n.push(i[s])}}),n},i.debounceMethod=function(t,e,i){i=i||100;var o=t.prototype[e],n=e+"Timeout";t.prototype[e]=function(){var t=this[n];clearTimeout(t);var e=arguments,s=this;this[n]=setTimeout(function(){o.apply(s,e),delete s[n]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var n=t.console;return i.htmlInit=function(e,o){i.docReady(function(){var s=i.toDashed(o),r="data-"+s,a=document.querySelectorAll("["+r+"]"),u=document.querySelectorAll(".js-"+s),h=i.makeArray(a).concat(i.makeArray(u)),d=r+"-options",l=t.jQuery;h.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(d);try{i=s&&JSON.parse(s)}catch(a){return void(n&&n.error("Error parsing "+r+" on "+t.className+": "+a))}var u=new e(t,i);l&&l.data(t,o,u)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function o(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function n(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var s=document.documentElement.style,r="string"==typeof s.transition?"transition":"WebkitTransition",a="string"==typeof s.transform?"transform":"WebkitTransform",u={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[r],h={transform:a,transition:r,transitionDuration:r+"Duration",transitionProperty:r+"Property",transitionDelay:r+"Delay"},d=o.prototype=Object.create(t.prototype);d.constructor=o,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var o=h[i]||i;e[o]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),o=t[e?"left":"right"],n=t[i?"top":"bottom"],s=parseFloat(o),r=parseFloat(n),a=this.layout.size;o.indexOf("%")!=-1&&(s=s/100*a.width),n.indexOf("%")!=-1&&(r=r/100*a.height),s=isNaN(s)?0:s,r=isNaN(r)?0:r,s-=e?a.paddingLeft:a.paddingRight,r-=i?a.paddingTop:a.paddingBottom,this.position.x=s,this.position.y=r},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop"),n=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[n];e[s]=this.getXValue(a),e[r]="";var u=o?"paddingTop":"paddingBottom",h=o?"top":"bottom",d=o?"bottom":"top",l=this.position.y+t[u];e[h]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),n&&!this.isTransitioning)return void this.layoutPosition();var s=t-i,r=e-o,a={};a.transform=this.getTranslate(s,r),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop");return t=i?t:-t,e=o?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var o=this.element.offsetHeight;o=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+n(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(u,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var f={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,o=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[o],i(e.ingProperties)&&this.disableTransition(),o in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[o]),o in e.onEnd){var n=e.onEnd[o];n.call(this),delete e.onEnd[o]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(u,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var c={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(c)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},o}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,o,n,s){return e(t,i,o,n,s)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,o,n){"use strict";function s(t,e){var i=o.getQueryElement(t);if(!i)return void(u&&u.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,h&&(this.$element=h(this.element)),this.options=o.extend({},this.constructor.defaults),this.option(e);var n=++l;this.element.outlayerGUID=n,f[n]=this,this._create();var s=this._getOption("initLayout");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],o=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var n=m[o]||1;return i*n}var u=t.console,h=t.jQuery,d=function(){},l=0,f={};s.namespace="outlayer",s.Item=n,s.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var c=s.prototype;o.extend(c,e.prototype),c.option=function(t){o.extend(this.options,t)},c._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},c._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),o.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},c.reloadItems=function(){this.items=this._itemize(this.element.children)},c._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0;n<e.length;n++){var s=e[n],r=new i(s,this);o.push(r)}return o},c._filterFindItemElements=function(t){return o.filterFindElements(t,this.options.itemSelector)},c.getItemElements=function(){return this.items.map(function(t){return t.element})},c.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},c._init=c.layout,c._resetLayout=function(){this.getSize()},c.getSize=function(){this.size=i(this.element)},c._getMeasurement=function(t,e){var o,n=this.options[t];n?("string"==typeof n?o=this.element.querySelector(n):n instanceof HTMLElement&&(o=n),this[t]=o?i(o)[e]:n):this[t]=0},c.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},c._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},c._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var o=this._getItemLayoutPosition(t);o.item=t,o.isInstant=e||t.isLayoutInstant,i.push(o)},this),this._processLayoutQueue(i)}},c._getItemLayoutPosition=function(){return{x:0,y:0}},c._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},c.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},c._positionItem=function(t,e,i,o,n){o?t.goTo(e,i):(t.stagger(n*this.stagger),t.moveTo(e,i))},c._postLayout=function(){this.resizeContainer()},c.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},c._getContainerSize=d,c._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},c._emitCompleteOnItems=function(t,e){function i(){n.dispatchEvent(t+"Complete",null,[e])}function o(){r++,r==s&&i()}var n=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,o)})},c.dispatchEvent=function(t,e,i){var o=e?[e].concat(i):i;if(this.emitEvent(t,o),h)if(this.$element=this.$element||h(this.element),e){var n=h.Event(e);n.type=t,this.$element.trigger(n,i)}else this.$element.trigger(t,i)},c.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},c.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},c.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},c.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){o.removeFrom(this.stamps,t),this.unignore(t)},this)},c._find=function(t){if(t)return"string"==typeof t&&(t=this.element.querySelectorAll(t)),t=o.makeArray(t)},c._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},c._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},c._manageStamp=d,c._getElementOffset=function(t){var e=t.getBoundingClientRect(),o=this._boundingRect,n=i(t),s={left:e.left-o.left-n.marginLeft,top:e.top-o.top-n.marginTop,right:o.right-e.right-n.marginRight,bottom:o.bottom-e.bottom-n.marginBottom};return s},c.handleEvent=o.handleEvent,c.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},c.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},c.onresize=function(){this.resize()},o.debounceMethod(s,"onresize",100),c.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},c.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},c.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},c.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},c.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},c.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},c.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},c.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},c.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},c.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},c.getItems=function(t){t=o.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},c.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),o.removeFrom(this.items,t)},this)},c.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,h&&h.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=o.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=o.extend({},s.defaults),o.extend(i.defaults,e),i.compatOptions=o.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(n),o.htmlInit(i,t),h&&h.bridget&&h.bridget(t,i),i};var m={ms:1,s:1e3};return s.Item=n,s}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/item",["outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window,function(t){"use strict";function e(){t.Item.apply(this,arguments)}var i=e.prototype=Object.create(t.Item.prototype),o=i._create;i._create=function(){this.id=this.layout.itemGUID++,o.call(this),this.sortData={}},i.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var n=i.destroy;return i.destroy=function(){n.apply(this,arguments),this.css({display:""})},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-mode",["get-size/get-size","outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window,function(t,e){"use strict";function i(t){this.isotope=t,t&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}var o=i.prototype,n=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout","_getOption"];return n.forEach(function(t){o[t]=function(){return e.prototype[t].apply(this.isotope,arguments)}}),o.needsVerticalResizeLayout=function(){var e=t(this.isotope.element),i=this.isotope.size&&e;return i&&e.innerHeight!=this.isotope.size.innerHeight},o._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},o.getColumnWidth=function(){this.getSegmentSize("column","Width")},o.getRowHeight=function(){this.getSegmentSize("row","Height")},o.getSegmentSize=function(t,e){var i=t+e,o="outer"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size["inner"+e]}},o.getFirstItemSize=function(){var e=this.isotope.filteredItems[0];return e&&e.element&&t(e.element)},o.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},o.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},i.modes={},i.create=function(t,e){function n(){i.apply(this,arguments)}return n.prototype=Object.create(o),n.prototype.constructor=n,e&&(n.options=e),n.prototype.namespace=t,i.modes[t]=n,n},i}),function(t,e){"function"==typeof define&&define.amd?define("masonry-layout/masonry",["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var o=i.prototype;return o._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},o.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var o=this.columnWidth+=this.gutter,n=this.containerWidth+this.gutter,s=n/o,r=o-n%o,a=r&&r<1?"round":"floor";s=Math[a](s),this.cols=Math.max(s,1)},o.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,o=e(i);this.containerWidth=o&&o.innerWidth},o._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&e<1?"round":"ceil",o=Math[i](t.size.outerWidth/this.columnWidth);o=Math.min(o,this.cols);for(var n=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",s=this[n](o,t),r={x:this.columnWidth*s.col,y:s.y},a=s.y+t.size.outerHeight,u=o+s.col,h=s.col;h<u;h++)this.colYs[h]=a;return r},o._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},o._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;o<i;o++)e[o]=this._getColGroupY(o,t);return e},o._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},o._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,o=t>1&&i+t>this.cols;i=o?0:i;var n=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=n?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},o._manageStamp=function(t){var i=e(t),o=this._getElementOffset(t),n=this._getOption("originLeft"),s=n?o.left:o.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption("originTop"),d=(h?o.top:o.bottom)+i.outerHeight,l=a;l<=u;l++)this.colYs[l]=Math.max(d,this.colYs[l])},o._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},o._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},o.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/masonry",["../layout-mode","masonry-layout/masonry"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode"),require("masonry-layout")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){"use strict";var i=t.create("masonry"),o=i.prototype,n={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)n[s]||(o[s]=e.prototype[s]);var r=o.measureColumns;o.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=o._getOption;return o._getOption=function(t){return"fitWidth"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("fitRows"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("vertical",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope-layout/js/item","isotope-layout/js/layout-mode","isotope-layout/js/layout-modes/masonry","isotope-layout/js/layout-modes/fit-rows","isotope-layout/js/layout-modes/vertical"],function(i,o,n,s,r,a){return e(t,i,o,n,s,r,a)}):"object"==typeof module&&module.exports?module.exports=e(t,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope-layout/js/item"),require("isotope-layout/js/layout-mode"),require("isotope-layout/js/layout-modes/masonry"),require("isotope-layout/js/layout-modes/fit-rows"),require("isotope-layout/js/layout-modes/vertical")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,o,n,s,r){function a(t,e){return function(i,o){for(var n=0;n<t.length;n++){var s=t[n],r=i.sortData[s],a=o.sortData[s];if(r>a||r<a){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},d=e.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;i<t.length;i++){var o=t[i];o.id=this.itemGUID++}return this._updateItemsSortData(t),t},l._initLayoutMode=function(t){var e=r.modes[t],i=this.options[t]||{};this.options[t]=e.options?n.extend(e.options,i):i,this.modes[t]=new e(this)},l.layout=function(){return!this._isLayoutInited&&this._getOption("initLayout")?void this.arrange():void this._layout()},l._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},l.arrange=function(t){this.option(t),this._getIsInstant();var e=this._filter(this.items);this.filteredItems=e.matches,this._bindArrangeComplete(),this._isInstant?this._noTransition(this._hideReveal,[e]):this._hideReveal(e),this._sort(),this._layout()},l._init=l.arrange,l._hideReveal=function(t){this.reveal(t.needReveal),this.hide(t.needHide)},l._getIsInstant=function(){var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;return this._isInstant=e,e},l._bindArrangeComplete=function(){function t(){e&&i&&o&&n.dispatchEvent("arrangeComplete",null,[n.filteredItems])}var e,i,o,n=this;this.once("layoutComplete",function(){e=!0,t()}),this.once("hideComplete",function(){i=!0,t()}),this.once("revealComplete",function(){o=!0,t()})},l._filter=function(t){var e=this.options.filter;e=e||"*";for(var i=[],o=[],n=[],s=this._getFilterTest(e),r=0;r<t.length;r++){var a=t[r];if(!a.isIgnored){var u=s(a);u&&i.push(a),u&&a.isHidden?o.push(a):u||a.isHidden||n.push(a)}}return{matches:i,needReveal:o,needHide:n}},l._getFilterTest=function(t){return u&&this.options.isJQueryFiltering?function(e){return u(e.element).is(t);
}:"function"==typeof t?function(e){return t(e.element)}:function(e){return o(e.element,t)}},l.updateSortData=function(t){var e;t?(t=n.makeArray(t),e=this.getItems(t)):e=this.items,this._getSorters(),this._updateItemsSortData(e)},l._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=f(i)}},l._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&i<e;i++){var o=t[i];o.updateSortData()}};var f=function(){function t(t){if("string"!=typeof t)return t;var i=h(t).split(" "),o=i[0],n=o.match(/^\[(.+)\]$/),s=n&&n[1],r=e(s,o),a=d.sortDataParsers[i[1]];return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){if(this.options.sortBy){var t=n.makeArray(this.options.sortBy);this._getIsSameSortBy(t)||(this.sortHistory=t.concat(this.sortHistory));var e=a(this.sortHistory,this.options.sortAscending);this.filteredItems.sort(e)}},l._getIsSameSortBy=function(t){for(var e=0;e<t.length;e++)if(t[e]!=this.sortHistory[e])return!1;return!0},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error("No layout mode: "+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;i<n;i++)o=e[i],this.element.appendChild(o.element);var s=this._filter(e).matches;for(i=0;i<n;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;i<n;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=n.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,o=0;i&&o<i;o++){var s=e[o];n.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t<this.items.length;t++){var e=this.items[t];e.sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},l._noTransition=function(t,e){var i=this.options.transitionDuration;this.options.transitionDuration=0;var o=t.apply(this,e);return this.options.transitionDuration=i,o},l.getFilteredItemElements=function(){return this.filteredItems.map(function(t){return t.element})},d});
\ No newline at end of file
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2018, 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/>.
*/
!function(e,i){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("jquery")):e.jQueryBridget=i(e,e.jQuery)}(window,function(t,e){"use strict";function i(h,n,l){(l=l||e||t.jQuery)&&(n.prototype.option||(n.prototype.option=function(t){l.isPlainObject(t)&&(this.options=l.extend(!0,this.options,t))}),l.fn[h]=function(t){if("string"!=typeof t)return o=t,this.each(function(t,e){var i=l.data(e,h);i?(i.option(o),i._init()):(i=new n(e,o),l.data(e,h,i))}),this;var e,s,r,a,u,o,i=d.call(arguments,1);return r=i,u="$()."+h+'("'+(s=t)+'")',(e=this).each(function(t,e){var i=l.data(e,h);if(i){var o=i[s];if(o&&"_"!=s.charAt(0)){var n=o.apply(i,r);a=void 0===a?n:a}else f(u+" is not a valid method")}else f(h+" not initialized. Cannot call methods, i.e. "+u)}),void 0!==a?a:e},o(l))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var d=Array.prototype.slice,n=t.console,f=void 0===n?function(){}:function(t){n.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return-1==o.indexOf(e)&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{};return(i[t]=i[t]||{})[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return-1!=o&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var o=this._onceEvents&&this._onceEvents[t],n=0;n<i.length;n++){var s=i[n];o&&o[s]&&(this.off(t,s),delete o[s]),s.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function g(t){var e=parseFloat(t);return-1==t.indexOf("%")&&!isNaN(e)&&e}function v(t){var e=getComputedStyle(t);return e||i("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function _(t){if(function(){if(!S){S=!0;var t=document.createElement("div");t.style.width="200px",t.style.padding="1px 2px 3px 4px",t.style.borderStyle="solid",t.style.borderWidth="1px 2px 3px 4px",t.style.boxSizing="border-box";var e=document.body||document.documentElement;e.appendChild(t);var i=v(t);z=200==Math.round(g(i.width)),_.isBoxSizeOuter=z,e.removeChild(t)}}(),"string"==typeof t&&(t=document.querySelector(t)),t&&"object"==typeof t&&t.nodeType){var e=v(t);if("none"==e.display)return function(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<x;e++)t[I[e]]=0;return t}();var i={};i.width=t.offsetWidth,i.height=t.offsetHeight;for(var o=i.isBorderBox="border-box"==e.boxSizing,n=0;n<x;n++){var s=I[n],r=e[s],a=parseFloat(r);i[s]=isNaN(a)?0:a}var u=i.paddingLeft+i.paddingRight,h=i.paddingTop+i.paddingBottom,l=i.marginLeft+i.marginRight,d=i.marginTop+i.marginBottom,f=i.borderLeftWidth+i.borderRightWidth,c=i.borderTopWidth+i.borderBottomWidth,m=o&&z,p=g(e.width);!1!==p&&(i.width=p+(m?0:u+f));var y=g(e.height);return!1!==y&&(i.height=y+(m?0:h+c)),i.innerWidth=i.width-(u+f),i.innerHeight=i.height-(h+c),i.outerWidth=i.width+l,i.outerHeight=i.height+d,i}}var z,i="undefined"==typeof console?function(){}:function(t){console.error(t)},I=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],x=I.length,S=!1;return _}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var i=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var o=e[i]+"MatchesSelector";if(t[o])return o}}();return function(t,e){return t[i](e)}}),function(e,i){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("desandro-matches-selector")):e.fizzyUIUtils=i(e,e.matchesSelector)}(window,function(h,s){var l={extend:function(t,e){for(var i in e)t[i]=e[i];return t},modulo:function(t,e){return(t%e+e)%e}},e=Array.prototype.slice;l.makeArray=function(t){return Array.isArray(t)?t:null==t?[]:"object"==typeof t&&"number"==typeof t.length?e.call(t):[t]},l.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},l.getParent=function(t,e){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,s(t,e))return t},l.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},l.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},l.filterFindElements=function(t,o){t=l.makeArray(t);var n=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!o)return void n.push(t);s(t,o)&&n.push(t);for(var e=t.querySelectorAll(o),i=0;i<e.length;i++)n.push(e[i])}}),n},l.debounceMethod=function(t,e,o){o=o||100;var n=t.prototype[e],s=e+"Timeout";t.prototype[e]=function(){var t=this[s];clearTimeout(t);var e=arguments,i=this;this[s]=setTimeout(function(){n.apply(i,e),delete i[s]},o)}},l.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},l.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var d=h.console;return l.htmlInit=function(a,u){l.docReady(function(){var t=l.toDashed(u),n="data-"+t,e=document.querySelectorAll("["+n+"]"),i=document.querySelectorAll(".js-"+t),o=l.makeArray(e).concat(l.makeArray(i)),s=n+"-options",r=h.jQuery;o.forEach(function(e){var t,i=e.getAttribute(n)||e.getAttribute(s);try{t=i&&JSON.parse(i)}catch(t){return void(d&&d.error("Error parsing "+n+" on "+e.className+": "+t))}var o=new a(e,t);r&&r.data(e,u,o)})})},l}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}var o=document.documentElement.style,n="string"==typeof o.transition?"transition":"WebkitTransition",s="string"==typeof o.transform?"transform":"WebkitTransform",r={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[n],a={transform:s,transition:n,transitionDuration:n+"Duration",transitionProperty:n+"Property",transitionDelay:n+"Delay"},u=i.prototype=Object.create(t.prototype);u.constructor=i,u._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},u.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},u.getSize=function(){this.size=e(this.element)},u.css=function(t){var e=this.element.style;for(var i in t){e[a[i]||i]=t[i]}},u.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),o=t[e?"left":"right"],n=t[i?"top":"bottom"],s=parseFloat(o),r=parseFloat(n),a=this.layout.size;-1!=o.indexOf("%")&&(s=s/100*a.width),-1!=n.indexOf("%")&&(r=r/100*a.height),s=isNaN(s)?0:s,r=isNaN(r)?0:r,s-=e?a.paddingLeft:a.paddingRight,r-=i?a.paddingTop:a.paddingBottom,this.position.x=s,this.position.y=r},u.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop"),n=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[n];e[s]=this.getXValue(a),e[r]="";var u=o?"paddingTop":"paddingBottom",h=o?"top":"bottom",l=o?"bottom":"top",d=this.position.y+t[u];e[h]=this.getYValue(d),e[l]="",this.css(e),this.emitEvent("layout",[this])},u.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},u.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},u._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),!n||this.isTransitioning){var s=t-i,r=e-o,a={};a.transform=this.getTranslate(s,r),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})}else this.layoutPosition()},u.getTranslate=function(t,e){return"translate3d("+(t=this.layout._getOption("originLeft")?t:-t)+"px, "+(e=this.layout._getOption("originTop")?e:-e)+"px, 0)"},u.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},u.moveTo=u._transitionTo,u.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},u._nonTransition=function(t){for(var e in this.css(t.to),t.isCleaning&&this._removeStyles(t.to),t.onTransitionEnd)t.onTransitionEnd[e].call(this)},u.transition=function(t){if(parseFloat(this.layout.options.transitionDuration)){var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);this.element.offsetHeight;null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0}else this._nonTransition(t)};var h="opacity,"+s.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()});u.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:h,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(r,this,!1)}},u.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},u.onotransitionend=function(t){this.ontransitionend(t)};var l={"-webkit-transform":"transform"};u.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,i=l[t.propertyName]||t.propertyName;if(delete e.ingProperties[i],function(t){for(var e in t)return!1;return!0}(e.ingProperties)&&this.disableTransition(),i in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[i]),i in e.onEnd)e.onEnd[i].call(this),delete e.onEnd[i];this.emitEvent("transitionEnd",[this])}},u.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(r,this,!1),this.isTransitioning=!1},u._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var d={transitionProperty:"",transitionDuration:"",transitionDelay:""};return u.removeTransitionStyles=function(){this.css(d)},u.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},u.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},u.remove=function(){return n&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},u.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={};e[this.getHideRevealTransitionEndProperty("visibleStyle")]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},u.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},u.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},u.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={};e[this.getHideRevealTransitionEndProperty("hiddenStyle")]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},u.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},u.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},i}),function(n,s){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(t,e,i,o){return s(n,t,e,i,o)}):"object"==typeof module&&module.exports?module.exports=s(n,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):n.Outlayer=s(n,n.EvEmitter,n.getSize,n.fizzyUIUtils,n.Outlayer.Item)}(window,function(t,e,n,s,o){"use strict";function r(t,e){var i=s.getQueryElement(t);if(i){this.element=i,h&&(this.$element=h(this.element)),this.options=s.extend({},this.constructor.defaults),this.option(e);var o=++l;this.element.outlayerGUID=o,(d[o]=this)._create(),this._getOption("initLayout")&&this.layout()}else u&&u.error("Bad element for "+this.constructor.namespace+": "+(i||t))}function a(t){function e(){t.apply(this,arguments)}return(e.prototype=Object.create(t.prototype)).constructor=e}var u=t.console,h=t.jQuery,i=function(){},l=0,d={};r.namespace="outlayer",r.Item=o,r.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var f=r.prototype;s.extend(f,e.prototype),f.option=function(t){s.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},r.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),s.extend(this.element.style,this.options.containerStyle),this._getOption("resize")&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0;n<e.length;n++){var s=new i(e[n],this);o.push(s)}return o},f._filterFindItemElements=function(t){return s.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map(function(t){return t.element})},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=n(this.element)},f._getMeasurement=function(t,e){var i,o=this.options[t];this[t]=o?("string"==typeof o?i=this.element.querySelector(o):o instanceof HTMLElement&&(i=o),i?n(i)[e]:o):0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},f._layoutItems=function(t,i){if(this._emitCompleteOnItems("layout",t),t&&t.length){var o=[];t.forEach(function(t){var e=this._getItemLayoutPosition(t);e.item=t,e.isInstant=i||t.isLayoutInstant,o.push(e)},this),this._processLayoutQueue(o)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},f.updateStagger=function(){var t=this.options.stagger;return null==t?void(this.stagger=0):(this.stagger=function(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],o=e&&e[2];return i.length?(i=parseFloat(i))*(c[o]||1):0}(t),this.stagger)},f._positionItem=function(t,e,i,o,n){o?t.goTo(e,i):(t.stagger(n*this.stagger),t.moveTo(e,i))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){if(this._getOption("resizeContainer")){var t=this._getContainerSize();t&&(this._setContainerMeasure(t.width,!0),this._setContainerMeasure(t.height,!1))}},f._getContainerSize=i,f._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},f._emitCompleteOnItems=function(e,t){function i(){n.dispatchEvent(e+"Complete",null,[t])}function o(){++r==s&&i()}var n=this,s=t.length;if(t&&s){var r=0;t.forEach(function(t){t.once(e,o)})}else i()},f.dispatchEvent=function(t,e,i){var o=e?[e].concat(i):i;if(this.emitEvent(t,o),h)if(this.$element=this.$element||h(this.element),e){var n=h.Event(e);n.type=t,this.$element.trigger(n,i)}else this.$element.trigger(t,i)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){(t=this._find(t))&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){(t=this._find(t))&&t.forEach(function(t){s.removeFrom(this.stamps,t),this.unignore(t)},this)},f._find=function(t){if(t)return"string"==typeof t&&(t=this.element.querySelectorAll(t)),s.makeArray(t)},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=i,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),i=this._boundingRect,o=n(t);return{left:e.left-i.left-o.marginLeft,top:e.top-i.top-o.marginTop,right:i.right-e.right-o.marginRight,bottom:i.bottom-e.bottom-o.marginBottom}},f.handleEvent=s.handleEvent,f.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},s.debounceMethod(r,"onresize",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=n(this.element);return this.size&&t&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},f.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var i=this.updateStagger();t.forEach(function(t,e){t.stagger(e*i),t.reveal()})}},f.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var i=this.updateStagger();t.forEach(function(t,e){t.stagger(e*i),t.hide()})}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},f.getItems=function(t){t=s.makeArray(t);var i=[];return t.forEach(function(t){var e=this.getItem(t);e&&i.push(e)},this),i},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),s.removeFrom(this.items,t)},this)},f.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete d[e],delete this.element.outlayerGUID,h&&h.removeData(this.element,this.constructor.namespace)},r.data=function(t){var e=(t=s.getQueryElement(t))&&t.outlayerGUID;return e&&d[e]},r.create=function(t,e){var i=a(r);return i.defaults=s.extend({},r.defaults),s.extend(i.defaults,e),i.compatOptions=s.extend({},r.compatOptions),i.namespace=t,i.data=r.data,i.Item=a(o),s.htmlInit(i,t),h&&h.bridget&&h.bridget(t,i),i};var c={ms:1,s:1e3};return r.Item=o,r}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/item",["outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window,function(t){"use strict";function e(){t.Item.apply(this,arguments)}var i=e.prototype=Object.create(t.Item.prototype),o=i._create;i._create=function(){this.id=this.layout.itemGUID++,o.call(this),this.sortData={}},i.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var n=i.destroy;return i.destroy=function(){n.apply(this,arguments),this.css({display:""})},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-mode",["get-size/get-size","outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window,function(e,i){"use strict";function o(t){(this.isotope=t)&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}var n=o.prototype;return["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout","_getOption"].forEach(function(t){n[t]=function(){return i.prototype[t].apply(this.isotope,arguments)}}),n.needsVerticalResizeLayout=function(){var t=e(this.isotope.element);return this.isotope.size&&t&&t.innerHeight!=this.isotope.size.innerHeight},n._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},n.getColumnWidth=function(){this.getSegmentSize("column","Width")},n.getRowHeight=function(){this.getSegmentSize("row","Height")},n.getSegmentSize=function(t,e){var i=t+e,o="outer"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size["inner"+e]}},n.getFirstItemSize=function(){var t=this.isotope.filteredItems[0];return t&&t.element&&e(t.element)},n.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},n.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},o.modes={},o.create=function(t,e){function i(){o.apply(this,arguments)}return(i.prototype=Object.create(n)).constructor=i,e&&(i.options=e),o.modes[i.prototype.namespace=t]=i},o}),function(t,e){"function"==typeof define&&define.amd?define("masonry-layout/masonry",["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,h){var e=t.create("masonry");e.compatOptions.fitWidth="isFitWidth";var i=e.prototype;return i._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},i.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],e=t&&t.element;this.columnWidth=e&&h(e).outerWidth||this.containerWidth}var i=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,n=o/i,s=i-o%i;n=Math[s&&s<1?"round":"floor"](n),this.cols=Math.max(n,1)},i.getContainerWidth=function(){var t=this._getOption("fitWidth")?this.element.parentNode:this.element,e=h(t);this.containerWidth=e&&e.innerWidth},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=Math[e&&e<1?"round":"ceil"](t.size.outerWidth/this.columnWidth);i=Math.min(i,this.cols);for(var o=this[this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition"](i,t),n={x:this.columnWidth*o.col,y:o.y},s=o.y+t.size.outerHeight,r=i+o.col,a=o.col;a<r;a++)this.colYs[a]=s;return n},i._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},i._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;o<i;o++)e[o]=this._getColGroupY(o,t);return e},i._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},i._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols;i=1<t&&i+t>this.cols?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},i._manageStamp=function(t){var e=h(t),i=this._getElementOffset(t),o=this._getOption("originLeft")?i.left:i.right,n=o+e.outerWidth,s=Math.floor(o/this.columnWidth);s=Math.max(0,s);var r=Math.floor(n/this.columnWidth);r-=n%this.columnWidth?0:1,r=Math.min(this.cols-1,r);for(var a=(this._getOption("originTop")?i.top:i.bottom)+e.outerHeight,u=s;u<=r;u++)this.colYs[u]=Math.max(a,this.colYs[u])},i._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},i._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},i.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/masonry",["../layout-mode","masonry-layout/masonry"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode"),require("masonry-layout")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){"use strict";var i=t.create("masonry"),o=i.prototype,n={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)n[s]||(o[s]=e.prototype[s]);var r=o.measureColumns;o.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=o._getOption;return o._getOption=function(t){return"fitWidth"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("fitRows"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("vertical",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(r,a){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope-layout/js/item","isotope-layout/js/layout-mode","isotope-layout/js/layout-modes/masonry","isotope-layout/js/layout-modes/fit-rows","isotope-layout/js/layout-modes/vertical"],function(t,e,i,o,n,s){return a(r,t,e,i,o,n,s)}):"object"==typeof module&&module.exports?module.exports=a(r,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope-layout/js/item"),require("isotope-layout/js/layout-mode"),require("isotope-layout/js/layout-modes/masonry"),require("isotope-layout/js/layout-modes/fit-rows"),require("isotope-layout/js/layout-modes/vertical")):r.Isotope=a(r,r.Outlayer,r.getSize,r.matchesSelector,r.fizzyUIUtils,r.Isotope.Item,r.Isotope.LayoutMode)}(window,function(t,i,e,o,s,n,r){var a=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},l=i.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});l.Item=n,l.LayoutMode=r;var u=l.prototype;u._create=function(){for(var t in this.itemGUID=0,this._sorters={},this._getSorters(),i.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"],r.modes)this._initLayoutMode(t)},u.reloadItems=function(){this.itemGUID=0,i.prototype.reloadItems.call(this)},u._itemize=function(){for(var t=i.prototype._itemize.apply(this,arguments),e=0;e<t.length;e++){t[e].id=this.itemGUID++}return this._updateItemsSortData(t),t},u._initLayoutMode=function(t){var e=r.modes[t],i=this.options[t]||{};this.options[t]=e.options?s.extend(e.options,i):i,this.modes[t]=new e(this)},u.layout=function(){return!this._isLayoutInited&&this._getOption("initLayout")?void this.arrange():void this._layout()},u._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},u.arrange=function(t){this.option(t),this._getIsInstant();var e=this._filter(this.items);this.filteredItems=e.matches,this._bindArrangeComplete(),this._isInstant?this._noTransition(this._hideReveal,[e]):this._hideReveal(e),this._sort(),this._layout()},u._init=u.arrange,u._hideReveal=function(t){this.reveal(t.needReveal),this.hide(t.needHide)},u._getIsInstant=function(){var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;return this._isInstant=e},u._bindArrangeComplete=function(){function t(){e&&i&&o&&n.dispatchEvent("arrangeComplete",null,[n.filteredItems])}var e,i,o,n=this;this.once("layoutComplete",function(){e=!0,t()}),this.once("hideComplete",function(){i=!0,t()}),this.once("revealComplete",function(){o=!0,t()})},u._filter=function(t){var e=this.options.filter;e=e||"*";for(var i=[],o=[],n=[],s=this._getFilterTest(e),r=0;r<t.length;r++){var a=t[r];if(!a.isIgnored){var u=s(a);u&&i.push(a),u&&a.isHidden?o.push(a):u||a.isHidden||n.push(a)}}return{matches:i,needReveal:o,needHide:n}},u._getFilterTest=function(e){return a&&this.options.isJQueryFiltering?function(t){return a(t.element).is(e)}:"function"==typeof e?function(t){return e(t.element)}:function(t){return o(t.element,e)}},u.updateSortData=function(t){var e;e=t?(t=s.makeArray(t),this.getItems(t)):this.items,this._getSorters(),this._updateItemsSortData(e)},u._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=d(i)}},u._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&i<e;i++){t[i].updateSortData()}};var d=function(t){if("string"!=typeof t)return t;var e,i,o=h(t).split(" "),n=o[0],s=n.match(/^\[(.+)\]$/),r=s&&s[1],a=(i=n,(e=r)?function(t){return t.getAttribute(e)}:function(t){var e=t.querySelector(i);return e&&e.textContent}),u=l.sortDataParsers[o[1]];return u?function(t){return t&&u(a(t))}:function(t){return t&&a(t)}};l.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},u._sort=function(){if(this.options.sortBy){var t=s.makeArray(this.options.sortBy);this._getIsSameSortBy(t)||(this.sortHistory=t.concat(this.sortHistory));var e=(r=this.sortHistory,a=this.options.sortAscending,function(t,e){for(var i=0;i<r.length;i++){var o=r[i],n=t.sortData[o],s=e.sortData[o];if(s<n||n<s)return(s<n?1:-1)*((void 0!==a[o]?a[o]:a)?1:-1)}return 0});this.filteredItems.sort(e)}var r,a},u._getIsSameSortBy=function(t){for(var e=0;e<t.length;e++)if(t[e]!=this.sortHistory[e])return!1;return!0},u._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error("No layout mode: "+t);return e.options=this.options[t],e},u._resetLayout=function(){i.prototype._resetLayout.call(this),this._mode()._resetLayout()},u._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},u._manageStamp=function(t){this._mode()._manageStamp(t)},u._getContainerSize=function(){return this._mode()._getContainerSize()},u.needsResizeLayout=function(){return this._mode().needsResizeLayout()},u.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},u.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},u._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},u.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;i<n;i++)o=e[i],this.element.appendChild(o.element);var s=this._filter(e).matches;for(i=0;i<n;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;i<n;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var f=u.remove;return u.remove=function(t){t=s.makeArray(t);var e=this.getItems(t);f.call(this,t);for(var i=e&&e.length,o=0;i&&o<i;o++){var n=e[o];s.removeFrom(this.filteredItems,n)}},u.shuffle=function(){for(var t=0;t<this.items.length;t++){this.items[t].sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},u._noTransition=function(t,e){var i=this.options.transitionDuration;this.options.transitionDuration=0;var o=t.apply(this,e);return this.options.transitionDuration=i,o},u.getFilteredItemElements=function(){return this.filteredItems.map(function(t){return t.element})},l});
\ No newline at end of file
...@@ -18,13 +18,16 @@ ...@@ -18,13 +18,16 @@
# #
# Description: Solo language configurations(en_US). # Description: Solo language configurations(en_US).
# Version: 0.1.0.0, Jan 29, 2018 # Version: 1.2.0.0, Apr 8, 2017
# Author: Liyuan Li # Author: Liyuan Li
# #
reply1Label=Reply siteViewLabel=Site
onlineVisitorLabel=Visitor
tocLabel=Article ToC
readLabel=Read More
nextArticleLabel=Next
previousArticleLabel=Previous
articleCP1Label=Please indicate the source:
viewCountLabel=View Count
cntLabel= cntLabel=
\ No newline at end of file
nextArticleLabel=Next Article
onlineVisitorLabel=Online
cntMonthLabel=Month
cntArticleLabel=Article
\ No newline at end of file
...@@ -18,13 +18,16 @@ ...@@ -18,13 +18,16 @@
# #
# Description: Solo default language configurations(zh_CN). # Description: Solo default language configurations(zh_CN).
# Version: 0.1.0.0, Jan 29, 2018 # Version: 1.2.0.0, Apr 8, 2017
# Author: Liyuan Li # Author: Liyuan Li
# #
siteViewLabel=\u7AD9\u70B9\u6982\u8981
onlineVisitorLabel=\u8BBF\u5BA2
tocLabel=\u6587\u7AE0\u76EE\u5F55
readLabel=\u9605\u8BFB\u5168\u6587
nextArticleLabel=\u65B0\u4E00\u7BC7
previousArticleLabel=\u65E7\u4E00\u7BC7
articleCP1Label=\u8F6C\u8F7D\u8BF7\u6CE8\u660E\u6765\u6E90\uFF1A
viewCountLabel=\u6D4F\u89C8\u6570
cntLabel=\u4E2A cntLabel=\u4E2A
\ No newline at end of file
reply1Label=\u56DE\u590D
nextArticleLabel=\u4E0B\u4E00\u7BC7
onlineVisitorLabel=\u5F53\u524D\u8BBF\u5BA2
cntMonthLabel=\u4E2A\u6708
cntArticleLabel=\u7BC7\u6587\u7AE0
\ No newline at end of file
...@@ -28,39 +28,39 @@ ...@@ -28,39 +28,39 @@
</head> </head>
<body> <body>
<#include "header.ftl"> <#include "header.ftl">
<div id="pjax">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<#include "nav.ftl">
<div class="main"> <div class="main">
<#if noticeBoard??> <div id="pjax" class="content">
<div class="board"> <#if pjax><!---- pjax {#pjax} start ----></#if>
${noticeBoard} <main>
<div class="module">
<div class="module__content ft__center">
<i class="icon__home"></i>
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__link"></i>
${linkLabel}
</div> </div>
</#if>
<div class="wrapper content">
<div class="module__title">
<span>
${links?size}
<span class="ft-green ft-12">${linkLabel}</span>
</span>
</div> </div>
<div class="module">
<div class="module__list">
<#if 0 != links?size> <#if 0 != links?size>
<ul class="list">
<#list links as link> <#list links as link>
<div class="page__item"> <li>
<h3> <a rel="friend" href="${link.linkAddress}" title="${link.linkDescription}"
<a rel="friend" class="ft-gray" href="${link.linkAddress}" target="_blank"> target="_blank">
${link.linkTitle} ${link.linkTitle}
<span class="ft-12 ft-green">${link.linkDescription}</span>
</a> </a>
</h3> </li>
</div>
</#list> </#list>
</ul>
</#if> </#if>
</div> </div>
<#include "bottom.ftl"> </div>
</div> </main>
<#if pjax><!---- pjax {#pjax} end ----></#if> <#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div> </div>
<#include "footer.ftl"> <#include "footer.ftl">
</body> </body>
......
...@@ -18,30 +18,38 @@ ...@@ -18,30 +18,38 @@
--> -->
<#macro comments commentList article> <#macro comments commentList article>
<div class="article__comment"> <div class="comments__item">
<div class="comment__title">${commentLabel}</div> <div class="comments__meta comments__meta--only">${commentLabel}</div>
<div id="comments"> </div>
<ul class="comments" id="comments">
<#list commentList as comment> <#list commentList as comment>
<#include 'common-comment.ftl'/> <#include 'common-comment.ftl'/>
</#list> </#list>
</ul>
<#if article.commentable>
<div class="comments__item">
<div class="comments__meta">
${postCommentsLabel}
</div> </div>
<#if article.commentable> <div class="comments__content">
<table id="commentForm"> <table id="commentForm" class="form">
<tbody> <tbody>
<#if !isLoggedIn> <#if !isLoggedIn>
<tr> <tr>
<td> <td>
<input placeholder="${commentNameLabel}" type="text" class="comment__textarea" id="commentName"/> <input placeholder="${commentNameLabel}" type="text" id="commentName"/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<input placeholder="${commentEmailLabel}" type="email" class="comment__textarea" id="commentEmail"/> <input placeholder="${commentEmailLabel}" type="email" id="commentEmail"/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<input placeholder="${commentURLLabel}" type="url" class="comment__textarea" id="commentURL"/> <input placeholder="${commentURLLabel}" type="url" id="commentURL"/>
</td> </td>
</tr> </tr>
</#if> </#if>
...@@ -66,29 +74,29 @@ ...@@ -66,29 +74,29 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<textarea rows="5" placeholder="${commentContentCannotEmptyLabel}" <textarea rows="5" cols="96" id="comment"></textarea>
class="comment__textarea" id="comment"></textarea>
</td> </td>
</tr> </tr>
<#if !isLoggedIn> <#if !isLoggedIn>
<tr> <tr>
<td> <td>
<input style="width:50%" placeholder="${captchaLabel}" type="text" class="comment__textarea" <input style="width:50%" placeholder="${captchaLabel}" type="text"
id="commentValidate"/> id="commentValidate"/>
<img class="captcha" id="captcha" alt="validate" src="${servePath}/captcha.do"/> <img class="comments__captcha" id="captcha" alt="validate" src="${servePath}/captcha.do"/>
</td> </td>
</tr> </tr>
</#if> </#if>
<tr> <tr>
<td colspan="2" align="right"> <td colspan="2" align="right">
<span class="error-msg" id="commentErrorTip"></span> <span class="ft__red" id="commentErrorTip"></span>
<button id="submitCommentButton" onclick="page.submitComment();">${submmitCommentLabel}</button> <button class="btn tag" id="submitCommentButton" onclick="page.submitComment();">${submmitCommentLabel}</button>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</#if> </div>
</div> </div>
</#if>
</#macro> </#macro>
<#macro comment_script oId> <#macro comment_script oId>
...@@ -96,27 +104,28 @@ ...@@ -96,27 +104,28 @@
charset="utf-8"></script> charset="utf-8"></script>
<script type="text/javascript"> <script type="text/javascript">
var page = new Page({ var page = new Page({
"nameTooLongLabel": "${nameTooLongLabel}", 'nameTooLongLabel': "${nameTooLongLabel}",
"mailCannotEmptyLabel": "${mailCannotEmptyLabel}", 'mailCannotEmptyLabel': "${mailCannotEmptyLabel}",
"mailInvalidLabel": "${mailInvalidLabel}", 'mailInvalidLabel': "${mailInvalidLabel}",
"commentContentCannotEmptyLabel": "${commentContentCannotEmptyLabel}", 'commentContentCannotEmptyLabel': "${commentContentCannotEmptyLabel}",
"captchaCannotEmptyLabel": "${captchaCannotEmptyLabel}", 'captchaCannotEmptyLabel': "${captchaCannotEmptyLabel}",
"loadingLabel": "${loadingLabel}", 'loadingLabel': "${loadingLabel}",
"oId": "${oId}", 'oId': "${oId}",
"skinDirName": "${skinDirName}", 'skinDirName': "${skinDirName}",
"blogHost": "${blogHost}", 'blogHost': "${blogHost}",
"randomArticles1Label": "${randomArticles1Label}", 'randomArticles1Label': "${randomArticles1Label}",
"externalRelevantArticles1Label": "${externalRelevantArticles1Label}" 'externalRelevantArticles1Label': "${externalRelevantArticles1Label}",
}); })
var replyTo = function (id) { var replyTo = function (id) {
var commentFormHTML = "<table class='form comment-reply' id='replyForm'>"; var commentFormHTML = '<table class=\'form comments__reply comments__content\' id=\'replyForm\'>'
page.addReplyForm(id, commentFormHTML); page.addReplyForm(id, commentFormHTML)
}; };
(function () { (function () {
page.load(); page.load()
Skin.initArticle()
// emotions // emotions
page.replaceCommentsEm("#comments .content-reset"); page.replaceCommentsEm('#comments .content-reset')
<#nested> <#nested>
})(); })()
</script> </script>
</#macro> </#macro>
\ No newline at end of file
...@@ -29,28 +29,24 @@ ...@@ -29,28 +29,24 @@
</head> </head>
<body> <body>
<#include "header.ftl"> <#include "header.ftl">
<#include "nav.ftl">
<div class="main"> <div class="main">
<#if noticeBoard??> <div id="pjax" class="content">
<div class="board"> <#if pjax><!---- pjax {#pjax} start ----></#if>
${noticeBoard} <main>
</div> <article class="module">
</#if> <div class="module__content">
<div class="wrapper content"> <div class="content-reset">
<article class="post">
<section class="content-reset">
${page.pageContent} ${page.pageContent}
</section> </div>
</div>
</article> </article>
<@comments commentList=pageComments article=page></@comments>
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div> </div>
<#include "side.ftl">
</div> </div>
<div class="article__bottom">
<@comments commentList=pageComments article=page></@comments>
</div>
<div style="margin: 0 20px">
<#include "bottom.ftl">
<#include "footer.ftl"> <#include "footer.ftl">
</div>
<@comment_script oId=page.oId></@comment_script> <@comment_script oId=page.oId></@comment_script>
</body> </body>
</html> </html>
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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/>.
-->
<aside class="side">
<#if noticeBoard??>
<section class="content-reset module">
<main class="module__content">
${noticeBoard}
</main>
</section>
</#if>
<section class="module">
<header class="module__header">
<form class="form" action="${servePath}/search">
<input placeholder="${searchLabel}" class="form__input" type="text" name="keyword"/>
<button class="side__btn" type="submit"><i class="icon__search"></i></button>
</form>
</header>
</section>
<div class="module item">
<header class="module__header ft__center">
${adminUser.userName}
</header>
<main class="module__content ft__center">
<img class="side__avatar" src="${adminUser.userAvatar}" alt="${adminUser.userName}"/>
${blogSubtitle}
</main>
</div>
<#if 0 != mostUsedCategories?size>
<div class="module item">
<header class="module__header">
${categoryLabel}
</header>
<main class="module__content fn__clear module__content--three">
<#list mostUsedCategories as category>
<a href="${servePath}/category/${category.categoryURI}"
aria-label="${category.categoryTagCnt} ${cntLabel}${tagsLabel}"
class="tag tooltipped tooltipped__n">
${category.categoryTitle}</a>
</#list>
</main>
</div>
</#if>
<#if 0 != mostUsedTags?size>
<div class="module item">
<header class="module__header">${tagsLabel}</header>
<main class="module__content--three module__content fn__clear">
<#list mostUsedTags as tag>
<a rel="tag"
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}"
class="tag tooltipped tooltipped__n"
aria-label="${tag.tagPublishedRefCount} ${countLabel}${articleLabel}">
${tag.tagTitle}</a>
</#list>
</main>
</div>
</#if>
<#if 0 != mostCommentArticles?size>
<div class="module item">
<header class="module__header">${mostCommentArticlesLabel}</header>
<main class="module__list">
<ul>
<#list mostCommentArticles as article>
<li>
<a rel="nofollow"
href="${servePath}${article.articlePermalink}">
${article.articleTitle}
</a>
</li>
</#list>
</ul>
</main>
</div>
</#if>
<#if 0 != mostViewCountArticles?size>
<div class="module item">
<header class="module__header">${mostViewCountArticlesLabel}</header>
<main class="module__list">
<ul>
<#list mostViewCountArticles as article>
<li>
<a rel="nofollow"
href="${servePath}${article.articlePermalink}">
${article.articleTitle}
</a>
</li>
</#list>
</ul>
</main>
</div>
</#if>
<div class="module item">
<div class="module__header">
<div class="fn__flex">
<a href="${servePath}/archives.html" class="fn__flex-1 ft__center">
${statistic.statisticPublishedBlogArticleCount}
${articleLabel}
</a>
<a href="${servePath}/dynamic.html" class="fn__flex-1 ft__center">
${statistic.statisticPublishedBlogCommentCount}
${commentLabel}
</a>
</div>
<br/>
<div class="fn__flex">
<div class="fn__flex-1 ft__center">
${statistic.statisticBlogViewCount} <span class="ft-gray">${viewLabel}</span>
</div>
<div class="fn__flex-1 ft__center">
${onlineVisitorCnt} <span class="ft-gray">${onlineVisitorLabel}</span>
</div>
</div>
</div>
</div>
</aside>
\ No newline at end of file
...@@ -17,10 +17,10 @@ ...@@ -17,10 +17,10 @@
# #
# #
# Description: Medium skin. # Description: nijigen skin.
# Version: 0.1.0.0, Jan 29, 2018 # Version: 1.0.0.0, Sep 2, 2018
# Author: Liyuan Li # Author: Liyuan Li
# #
name=Medium name=nijigen
memo=https://medium.com memo=https://github.com/b3log/solo/issues/12494
...@@ -29,30 +29,26 @@ ...@@ -29,30 +29,26 @@
</head> </head>
<body> <body>
<#include "header.ftl"> <#include "header.ftl">
<div id="pjax">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<#include "nav.ftl">
<div class="main"> <div class="main">
<#if noticeBoard??> <div id="pjax" class="content">
<div class="board"> <#if pjax><!---- pjax {#pjax} start ----></#if>
${noticeBoard} <main>
<div class="module">
<div class="module__content ft__center">
<i class="icon__home"></i>
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__tags"></i>
<a href="${servePath}/tags.html" class="breadcrumb">${allTagsLabel}</a>
&nbsp; > &nbsp;
${tag.tagTitle} ${tagLabel}
</div> </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> </div>
<#include "article-list.ftl"> <#include "article-list.ftl">
</div> </main>
<#include "bottom2.ftl">
</div>
<#if pjax><!---- pjax {#pjax} end ----></#if> <#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div> </div>
<#include "footer.ftl"> <#include "footer.ftl">
</body> </body>
......
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, 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 "macro-head.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${allTagsLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${allTagsLabel}"/>
<meta name="description" content="<#list tags as tag>${tag.tagTitle}<#if tag_has_next>,</#if></#list>"/>
</@head>
</head>
<body>
<#include "header.ftl">
<div class="main">
<div id="pjax" class="content">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<main>
<div class="module">
<div class="module__content ft__center">
<i class="icon__home"></i>
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__tags"></i> ${sumLabel} ${tags?size} ${tagLabel}
</div>
</div>
<div class="module">
<div class="module__content fn__clear tags">
<#list tags as tag>
<a rel="tag" data-count="${tag.tagPublishedRefCount}" class="tag"
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}">
<span class="name">${tag.tagTitle}</span>
(<b>${tag.tagPublishedRefCount}</b>)
</a>
</#list>
</div>
</div>
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div>
<#include "footer.ftl">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<script type="text/javascript" src="${staticServePath}/skins/${skinDirName}/js/isotope.pkgd.min.js"
charset="utf-8"></script>
<script>
$('.tags').isotope({
transitionDuration: '1.5s',
itemSelector: '.tag',
layoutMode: 'fitRows',
getSortData: {
name: '.name'
}
})
$('.tags').isotope({
sortBy: 'name',
})
</script>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment