Van 2019-02-27 21:33:50 +08:00
parent aeb19ca6f8
commit 0defece290
No known key found for this signature in database
GPG Key ID: 7059B8783A78F16C
44 changed files with 1170 additions and 461 deletions

View File

@ -158,6 +158,7 @@
<#if 0 != relevantArticlesDisplayCount> <#if 0 != relevantArticlesDisplayCount>
page.loadRelevantArticles('${article.oId}', '<h4>${relevantArticlesLabel}</h4>'); page.loadRelevantArticles('${article.oId}', '<h4>${relevantArticlesLabel}</h4>');
</#if> </#if>
Skin.initArticle()
</@comment_script> </@comment_script>
</body> </body>
</html> </html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -28,33 +28,19 @@
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 class="body--gray">
<#include "header.ftl"> <#include "header.ftl">
<div class="main"> <main id="pjax">
<div id="pjax" class="content">
<#if pjax><!---- pjax {#pjax} start ----></#if> <#if pjax><!---- pjax {#pjax} start ----></#if>
<main> <div class="wrapper wrapper--min">
<div class="module"> <div class="page__title">
<div class="module__content ft__center"> <span class="ft__red">#</span>
<i class="icon__home"></i> ${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__inbox"></i>
<a href="${servePath}/archives.html" class="breadcrumb">${archiveLabel}</a>
&nbsp; > &nbsp;
<#if "en" == localeString?substring(0, 2)>
${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear}
<#else>
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}
</#if>
- ${archiveDate.archiveDatePublishedArticleCount} ${articleLabel}
</div>
</div> </div>
<#include "article-list.ftl"> <#include "article-list.ftl">
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div> </div>
</div> <#if pjax><!---- pjax {#pjax} end ----></#if>
</main>
<#include "footer.ftl"> <#include "footer.ftl">
</body> </body>
</html> </html>

View File

@ -26,48 +26,28 @@
<meta name="description" content="${metaDescription},${archiveLabel}"/> <meta name="description" content="${metaDescription},${archiveLabel}"/>
</@head> </@head>
</head> </head>
<body> <body class="body--gray">
<#include "header.ftl"> <#include "header.ftl">
<div class="main"> <main id="pjax">
<div id="pjax" class="content">
<#if pjax><!---- pjax {#pjax} start ----></#if> <#if pjax><!---- pjax {#pjax} start ----></#if>
<main> <div class="wrapper wrapper--min">
<div class="module"> <div class="page__title">
<div class="module__content ft__center"> <span class="ft__red">#</span>
<i class="icon__home"></i> ${statistic.statisticPublishedBlogArticleCount} ${archiveLabel}${articleLabel}
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__inbox"></i>
${statistic.statisticPublishedBlogArticleCount} ${archiveLabel}${articleLabel}
</div>
</div> </div>
<div class="module"> <div class="page__content fn__clear">
<div class="module__list"> <#if 0 != archiveDates?size>
<#if 0 != archiveDates?size> <#list archiveDates as archiveDate>
<ul> <a class="page__item" href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
<#list archiveDates as archiveDate> ${archiveDate.archiveDateYear} / ${archiveDate.archiveDateMonth}
<li> (${archiveDate.archiveDatePublishedArticleCount})
<#if "en" == localeString?substring(0, 2)> </a>
<a href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}"> </#list>
${archiveDate.monthName} ${archiveDate.archiveDateYear} </#if>
(${archiveDate.archiveDatePublishedArticleCount})
</a>
<#else>
<a href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}
(${archiveDate.archiveDatePublishedArticleCount})
</a>
</#if>
</li>
</#list>
</ul>
</#if>
</div>
</div> </div>
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div> </div>
</div> <#if pjax><!---- pjax {#pjax} end ----></#if>
</main>
<#include "footer.ftl"> <#include "footer.ftl">
</body> </body>
</html> </html>

View File

@ -17,7 +17,7 @@
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="article-list fn__clear"> <main class="article-list fn__clear">
<#list articles as article> <#list articles as article>
<article class="item"> <article class="item">
<div class="item__container"> <div class="item__container">
@ -57,7 +57,7 @@
</div> </div>
</article> </article>
</#list> </#list>
</div> </main>
<#if 0 != paginationPageCount> <#if 0 != paginationPageCount>
<nav class="pagination"> <nav class="pagination">
<#if 1 != paginationPageNums?first> <#if 1 != paginationPageNums?first>

View File

@ -47,151 +47,129 @@
<meta name="twitter:title" content="${article.articleTitle}"/> <meta name="twitter:title" content="${article.articleTitle}"/>
<meta name="twitter:image" content="${article.authorThumbnailURL}"/> <meta name="twitter:image" content="${article.authorThumbnailURL}"/>
<meta name="twitter:url" content="${servePath}${article.articlePermalink}"/> <meta name="twitter:url" content="${servePath}${article.articlePermalink}"/>
<meta name="twitter:site" content="@DL88250"/>
<meta name="twitter:creator" content="@DL88250"/>
</head> </head>
<body> <body>
<#include "header.ftl"> <#include "header.ftl">
<div class="main"> <main id="pjax">
<div id="pjax" class="content">
<#if pjax><!---- pjax {#pjax} start ----></#if> <#if pjax><!---- pjax {#pjax} start ----></#if>
<main id="articlePage"> <div class="post wrapper wrapper--miner">
<div class="article-list"> <h2 class="item__title">
<div class="item item--active"> <a rel="bookmark" href="${servePath}${article.articlePermalink}">
<time class="tooltipped tooltipped__n item__date" ${article.articleTitle}
aria-label="${article.articleCreateDate?string("yyyy")}${yearLabel}"> </a>
${article.articleCreateDate?string("MM")}${monthLabel} <#if article.articlePutTop>
<span class="item__day">${article.articleCreateDate?string("dd")}</span> <sup>
</time> ${topArticleLabel}
</sup>
<h2 class="item__title"> </#if>
<a rel="bookmark" href="${servePath}${article.articlePermalink}"> <#if article.hasUpdated>
${article.articleTitle} <sup>
</a> ${updatedLabel}
<#if article.articlePutTop> </sup>
<sup> </#if>
${topArticleLabel} </h2>
</sup> <div class="ft__gray item__meta">
</#if> Published on
<#if article.hasUpdated> <time>
<sup> <#setting locale="en_US">
${updatedLabel} ${article.articleCreateDate?string["MMM d, yyyy"]}
</sup> </time>
</#if> <#if article.category??>
</h2> in <a href="${servePath}/category/${article.category.categoryURI}">${article.category.categoryTitle}</a>
</#if>
<div class="item__date--m fn__none"> with ${article.articleViewCount} views
<i class="icon__date"></i> <#if article.articleCommentCount != 0>
${article.articleCreateDate?string("yyyy-MM-dd")} and <a href="#comments">${article.articleCommentCount} comments</a>
</div> </#if>
<div class="ft__center">
<span class="tag">
<i class="icon__tags"></i>
<#list article.articleTags?split(",") as articleTag>
<a rel="tag" href="${servePath}/tags/${articleTag?url('UTF-8')}">
${articleTag}</a><#if articleTag_has_next>,</#if>
</#list>
</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>
</div> </div>
<div class="item__tags">
<#if previousArticlePermalink?? || nextArticlePermalink??> <#list article.articleTags?split(",") as articleTag>
<div class="module mobile__hidden"> <a rel="tag" class="tag tag--${articleTag_index}" href="${servePath}/tags/${articleTag?url('UTF-8')}">
<div class="module__content fn__clear"> <b># ${articleTag}</b>
<#if previousArticlePermalink??> </a>
<a href="${servePath}${previousArticlePermalink}" rel="prev" class="fn__left breadcrumb"> </#list>
${previousArticleLabel}: ${previousArticleTitle}
</a>
</#if>
<#if nextArticlePermalink??>
<a href="${servePath}${nextArticlePermalink}" rel="next"
class="fn__right breadcrumb">
${nextArticleTitle}: ${nextArticleLabel}
</a>
</#if>
</div>
</div> </div>
<div class="content-reset">
${article.articleContent}
<#if "" != article.articleSign.signHTML?trim>
<div>
${article.articleSign.signHTML}
</div>
</#if> </#if>
<#if previousArticlePermalink??>
<div class="module mobile__hidden fn__none">
<div class="module__content">
<a href="${servePath}${previousArticlePermalink}" rel="prev" class="breadcrumb">
${previousArticleLabel}: ${previousArticleTitle}
</a>
</div>
</div> </div>
</#if>
<#if nextArticlePermalink??>
<div class="module mobile__hidden fn__none">
<div class="module__content">
<a href="${servePath}${nextArticlePermalink}" rel="next"
class="breadcrumb">
${nextArticleLabel}: ${nextArticleTitle}
</a>
</div>
</div>
</#if>
<@comments commentList=articleComments article=article></@comments>
<div class="fn__flex article__relevant">
<div class="fn__flex-1" id="externalRelevantArticlesWrap">
<div class="module">
<div id="externalRelevantArticles" class="module__list"></div>
</div>
</div>
<div class="mobile__hidden">&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 class="mobile__hidden">&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> </div>
</div> <div class="post__toc"></div>
<div class="body--gray post__gray">
<div class="wrapper comment">
<@comments commentList=articleComments article=article></@comments>
<div class="post__list fn__flex">
<div class="fn__flex-1">
<div id="externalRelevantArticles"></div>
</div>
<div class="post__list-mid fn__flex-1">
<div id="randomArticles"></div>
</div>
<div class="fn__flex-1">
<div id="relevantArticles"></div>
</div>
</div>
</div>
</div>
<div class="post__fix">
<div class="wrapper">
<span class="post__share">
Share
<span class="tag tag--4" data-type="weibo">WeiBo</span>
<span class="tag tag--5" data-type="twitter">Twitter</span>
<span class="tag tag--6" data-type="qqz">QZone</span>
<span class="post__code tag tag--7"
data-type="wechat"
data-title="${article.articleTitle}"
data-blogtitle="${blogTitle}"
data-url="${servePath}${article.articlePermalink}"
data-avatar="${article.authorThumbnailURL}">WeChat</span>
</span>
<span class="post__arrow">
<#if previousArticlePermalink??>
<a href="${servePath}${previousArticlePermalink}" rel="prev"
class="tooltipped__n tooltipped"
pjax-title="${previousArticleTitle}"
aria-label="${previousArticleLabel}: ${previousArticleTitle}">←</a>
</#if>
<#if nextArticlePermalink??>
<a href="${servePath}${nextArticlePermalink}" rel="next"
class="tooltipped__n tooltipped"
pjax-title="${nextArticleTitle}"
aria-label="${nextArticleLabel}: ${nextArticleTitle}">→</a>
</#if>
<a href="javascript:Util.goTop()" class="tooltipped__n tooltipped"
aria-label="${goTopLabel}">↑</a>
<a href="javascript:Util.goBottom()" class="tooltipped__n tooltipped"
aria-label="${goBottomLabel}">↓</a>
</span>
</div>
</div>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</main>
<#include "footer.ftl"> <#include "footer.ftl">
<#if pjax><!---- pjax {#pjax} start ----></#if> <#if pjax><!---- pjax {#pjax} start ----></#if>
<@comment_script oId=article.oId commentable=article.commentable> <@comment_script oId=article.oId commentable=article.commentable>
page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}"; page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}";
<#if 0 != randomArticlesDisplayCount> <#if 0 != randomArticlesDisplayCount>
page.loadRandomArticles('<header class="module__header">${randomArticlesLabel}</header>'); page.loadRandomArticles('<h3>RECOMMEND POSTS</h3>');
</#if> </#if>
<#if 0 != externalRelevantArticlesDisplayCount> <#if 0 != externalRelevantArticlesDisplayCount>
page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,</#if></#list>" page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,</#if></#list>",
, "<header class='module__header'>${externalRelevantArticlesLabel}</header>"); '<h3>HACPAI POSTS</h3>');
</#if> </#if>
<#if 0 != relevantArticlesDisplayCount> <#if 0 != relevantArticlesDisplayCount>
page.loadRelevantArticles('${article.oId}', page.loadRelevantArticles('${article.oId}', '<h3>RELEVANT POSTS</h3>');
'<header class="module__header">${relevantArticlesLabel}</header>');
</#if> </#if>
Skin.initArticle()
</@comment_script> </@comment_script>
<#if pjax><!---- pjax {#pjax} end ----></#if> <#if pjax><!---- pjax {#pjax} end ----></#if>
</body> </body>

View File

@ -27,29 +27,20 @@
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 class="body--gray">
<#include "header.ftl"> <#include "header.ftl">
<div class="main"> <main id="pjax">
<div id="pjax" class="content">
<#if pjax><!---- pjax {#pjax} start ----></#if> <#if pjax><!---- pjax {#pjax} start ----></#if>
<main> <div class="wrapper wrapper--min">
<div class="module"> <div class="page__title">
<div class="module__content ft__center"> <span class="ft__red">#</span>
<i class="icon__home"></i> ${category.categoryTitle}
<a href="${servePath}" class="breadcrumb">${blogTitle}</a> <div class="ft__gray">${category.categoryDescription}</div>
&nbsp; > &nbsp;
<i class="icon__category"></i>
${categoryLabel}
&nbsp; > &nbsp;
<span class="tooltipped tooltipped__w"
aria-label="${category.categoryDescription}">${category.categoryTitle}</span>
</div>
</div> </div>
<#include "article-list.ftl"> <#include "article-list.ftl">
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div> </div>
</div> <#if pjax><!---- pjax {#pjax} end ----></#if>
</main>
<#include "footer.ftl"> <#include "footer.ftl">
</body> </body>
</html> </html>

View File

@ -17,32 +17,35 @@
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}" class="comments__item"> <#setting locale="en_US">
<div class="comments__meta fn__flex"> <li id="${comment.oId}" class="item">
<div class="fn__flex-1"> <div class="fn__clear">
<div class="item__avatar" style="background-image: url(${comment.commentThumbnailURL})"></div>
<div class="item__name">
<#if "http://" == comment.commentURL> <#if "http://" == comment.commentURL>
${comment.commentName} ${comment.commentName}
<#else> <#else>
<a href="${comment.commentURL}" target="_blank">${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}"
onmouseover="page.showComment(this, '${comment.commentOriginalCommentId}', 28);" onmouseover="page.showComment(this, '${comment.commentOriginalCommentId}', 6);"
onmouseout="page.hideComment('${comment.commentOriginalCommentId}')" onmouseout="page.hideComment('${comment.commentOriginalCommentId}')"
>${comment.commentOriginalCommentName}</a> >${comment.commentOriginalCommentName}</a>
</#if> </#if>
</div> </div>
<time>${comment.commentDate2?string("yyyy-MM-dd HH:mm")}</time>
</div> </div>
<main class="comments__content fn__clear"> <div class="content-reset">
<div class="comments__avatar" style="background-image: url(${comment.commentThumbnailURL})"></div> ${comment.commentContent}
<div class="content-reset"> </div>
${comment.commentContent} <div class="item__meta fn__clear">
</div> <time>
${comment.commentDate2?string["MMM d, yyyy"]}
</time>
<#if article?? && article.commentable> <#if article?? && article.commentable>
<a class="fn__right breadcrumb" href="javascript:page.toggleEditor('${comment.oId}', '${comment.commentName}')">${replyLabel}</a> <a class="fn__right fn__none item__reply"
<#else> href="javascript:page.toggleEditor('${comment.oId}', '${comment.commentName}')">Reply</a>
<a class="fn__right breadcrumb" href="${servePath}${comment.commentSharpURL}">${viewLabel}»</a>
</#if> </#if>
</main> </div>
</li> </li>

File diff suppressed because one or more lines are too long

View File

@ -30,7 +30,7 @@
@import "icon"; @import "icon";
@import "vditor/src/assets/scss/classic"; @import "vditor/src/assets/scss/classic";
body { .body--gray {
background-color: #f7f7f7; background-color: #f7f7f7;
} }
@ -49,18 +49,80 @@ a:active, a:focus, a:hover {
::selection { ::selection {
color: #fff; color: #fff;
background-color: #eb5055 background-color: #eb5055;
}
.content-reset {
font-size: 14px;
.b3-solo-list {
display: none;
}
} }
.ft__gray { .ft__gray {
color: #767676; color: #767676;
} }
.ft__red {
color: #eb5055;
}
.tag {
font-size: 13px;
display: inline-block;
padding: 0 15px;
transition: all .3s;
line-height: 24px;
color: #fff;
cursor: pointer;
background: #6fa3ef;
border-radius: 12px;
margin-left: 10px;
&:hover {
color: #5f5f5f;
background: #f7f7f7;
}
&--1 {
background: #ff9800;
}
&--2 {
background: #46c47c;
}
&--3 {
background: #eb5055;
}
&--4 {
background: #db4437;
}
&--5 {
background: #1b95e0;
}
&--6 {
background: #fdc200;
}
&--7 {
background: #4caf50;
}
}
.wrapper { .wrapper {
width: 1025px; width: 1024px;
padding: 0 10px; padding: 0 10px;
box-sizing: border-box; box-sizing: border-box;
margin: 0 auto; margin: 0 auto;
&--min {
animation: fade-in;
animation-duration: .5s;
padding-top: 115px;
max-width: 900px;
}
&--miner {
animation: fade-in;
animation-duration: .5s;
padding-top: 115px;
max-width: 700px;
}
} }
.header { .header {
@ -90,6 +152,9 @@ a:active, a:focus, a:hover {
float: right; float: right;
a { a {
margin: 0 15px; margin: 0 15px;
&.current {
color: #eb5055;
}
} }
} }
@ -136,6 +201,7 @@ a:active, a:focus, a:hover {
.footer { .footer {
background-color: #fff; background-color: #fff;
line-height: 20px; line-height: 20px;
position: relative;
font-size: 13px; font-size: 13px;
&__border { &__border {
border-bottom: 1px solid rgba(184, 197, 214, .2); border-bottom: 1px solid rgba(184, 197, 214, .2);
@ -165,16 +231,16 @@ a:active, a:focus, a:hover {
.wrapper { .wrapper {
padding-bottom: 40px; padding-bottom: 40px;
} }
a {
color: #5f5f5f;
&:hover {
color: #313131;
}
}
} }
.article-list { .article-list {
animation: fade-in;
animation-duration: .5s;
padding-top: 95px;
max-width: 900px;
margin: 0 auto;
box-sizing: border-box;
.item { .item {
float: left; float: left;
width: 33.3333%; width: 33.3333%;
@ -244,6 +310,8 @@ a:active, a:focus, a:hover {
} }
&__title { &__title {
margin-bottom: 2px;
height: 44px;
a { a {
font-size: 18px; font-size: 18px;
line-height: 22px; line-height: 22px;
@ -254,8 +322,13 @@ a:active, a:focus, a:hover {
text-overflow: ellipsis; text-overflow: ellipsis;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
display: -webkit-box; display: -webkit-box;
margin-bottom: 2px; }
height: 44px; sup {
font-weight: normal;
font-size: 12px;
float: left;
top: -33px;
color: #eb5055;
} }
} }
@ -296,4 +369,283 @@ a:active, a:focus, a:hover {
color: #eb5055; color: #eb5055;
} }
} }
}
.post {
&__fix {
position: fixed;
box-sizing: border-box;
z-index: 2;
right: 0;
bottom: 0;
left: 0;
height: 48px;
border-top: 1px solid #e0e0e0;
background-color: #fff;
animation-duration: .5s;
animation-fill-mode: both;
&--unpinned {
animation-name: unpinned;
}
&--pinned {
animation-name: pinned;
}
@keyframes unpinned {
0% {
transform: translateY(0)
}
100% {
transform: translateY(48px)
}
}
@keyframes pinned {
0% {
transform: translateY(48px)
}
100% {
transform: translateY(0)
}
}
}
&__share {
line-height: 48px;
}
&__code {
position: relative;
canvas {
position: absolute;
bottom: 30px;
left: 0;
}
}
&__arrow {
float: right;
a {
margin-left: 20px;
line-height: 48px;
}
}
.item {
&__title {
a {
font-weight: 400;
font-size: 21px;
color: #222;
}
sup {
font-weight: normal;
color: #eb5055;
}
}
&__meta {
font-size: 12px;
margin: 5px 0 15px;
}
&__tags {
border-bottom: 1px solid #e0e0e0;
padding-bottom: 15px;
margin-bottom: 15px;
.tag--0 {
margin-left: 0;
}
}
}
&__list {
padding: 20px 0 40px;
&-mid {
margin: 0 20px;
}
h3 {
font-size: 14px;
padding-bottom: 10px;
color: #5f5f5f;
font-weight: normal;
}
li {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-wrap: normal;
list-style: none;
font-size: 13px;
line-height: 26px;
}
}
&__toc {
position: fixed;
top: 100px;
max-width: 200px;
border-left: 1px solid #ddd;
.b3-solo-list {
margin: 0;
font-size: 14px;
line-height: 24px;
a {
display: block;
margin-top: -24px;
}
}
.b3-solo-list-h2,
.b3-solo-list-h4,
.b3-solo-list-h5,
.b3-solo-list-h3 {
margin-left: 0;
}
.b3-solo-list-h2 a {
margin-left: 10px;
}
.b3-solo-list-h3 a {
margin-left: 20px;
}
.b3-solo-list-h4 a {
margin-left: 30px;
}
.b3-solo-list-h5 a {
margin-left: 40px;
}
li {
&:before {
position: relative;
top: -2px;
left: -4px;
display: inline-block;
width: 7px;
height: 7px;
content: '';
border-radius: 50%;
background-color: #eb5055;
}
}
}
&__gray {
position: relative;
}
}
.comment {
width: 700px;
box-sizing: border-box;
&-body-ref {
position: absolute;
left: 80px;
width: 76%;
}
&__title {
padding: 30px 20px;
color: #5f5f5f;
}
.item {
margin: 20px 0;
border: 1px solid rgba(184, 197, 214, .2);
border-radius: 3px;
background: #fff;
box-shadow: 0 1px 4px rgba(0, 0, 0, .04);
list-style: none;
padding: 20px;
&__meta {
color: #5f5f5f;
font-size: 12px;
}
&__avatar {
float: left;
height: 40px;
width: 40px;
border-radius: 20px;
border: 1px solid #eaeaea;
margin: 0 20px 20px 0;
background-size: cover;
background-position: center center;
}
&__name {
color: #5f5f5f;
float: left;
line-height: 40px;
}
&:hover {
.item__reply {
display: block;
color: #eb5055;
}
}
}
#comments {
position: relative;
}
#comment {
position: relative;
margin-bottom: 30px;
padding: 20px;
border-radius: 3px;
background: #fff;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
border: 0;
resize: none;
cursor: pointer;
width: 100%;
box-sizing: border-box;
}
}
.page {
&__title {
margin: 10px 0;
padding: 0 15px;
color: #5f5f5f;
}
&__content {
margin: 15px 0 40px;
}
&__item {
float: left;
list-style: none;
box-shadow: 0 1px 4px rgba(0, 0, 0, .04);
background-color: #fff;
padding: 15px;
margin: 15px;
min-width: 115px;
line-height: 22px;
&:hover {
transform: scale(1.03);
}
}
&__bottom {
height: 40px;
}
&__tags {
.tag {
margin: 15px;
}
}
} }

View File

@ -21,7 +21,7 @@
<nav class="footer__nav"> <nav class="footer__nav">
<#list pageNavigations as page> <#list pageNavigations as page>
<a href="${page.pagePermalink}" target="${page.pageOpenTarget}" rel="section"> <a href="${page.pagePermalink}" target="${page.pageOpenTarget}" rel="section">
<#if page.pageIcon != ''><img src="${page.pageIcon}"></#if>${page.pageTitle} ${page.pageTitle}
</a> </a>
</#list> </#list>
<a rel="alternate" href="${servePath}/rss.xml" rel="section">RSS</a> <a rel="alternate" href="${servePath}/rss.xml" rel="section">RSS</a>

View File

@ -30,11 +30,13 @@
</#if> </#if>
</@head> </@head>
</head> </head>
<body> <body class="body--gray">
<#include "header.ftl"> <#include "header.ftl">
<main id="pjax"> <main id="pjax">
<#if pjax><!---- pjax {#pjax} start ----></#if> <#if pjax><!---- pjax {#pjax} start ----></#if>
<#include "article-list.ftl"> <div class="wrapper wrapper--min">
<#include "article-list.ftl">
</div>
<#if pjax><!---- pjax {#pjax} end ----></#if> <#if pjax><!---- pjax {#pjax} end ----></#if>
</main> </main>
<#include "footer.ftl"> <#include "footer.ftl">

View File

@ -27,23 +27,6 @@
* @static * @static
*/ */
var Skin = { var Skin = {
_initCommon: function ($goTop) {
$(window).scroll(function () {
if ($(window).scrollTop() > 125) {
$goTop.show()
} else {
$goTop.hide()
}
if ($('.side .b3-solo-list').length > 0) {
if ($(window).scrollTop() > 50) {
$('.side').css('position', 'fixed')
} else {
$('.side').css('position', 'initial')
}
}
})
},
init: function () { init: function () {
var header = new Headroom($('header')[0], { var header = new Headroom($('header')[0], {
tolerance: 0, tolerance: 0,
@ -61,87 +44,117 @@ var Skin = {
header.init() header.init()
Util.initPjax(function () { Util.initPjax(function () {
if ($('#articlePage').length === 0) { if ($('.post__fix').length === 0) {
$('.b3-solo-list').closest('.module').remove() $('body').addClass('body--gray')
} else {
$('body').removeClass('body--gray')
} }
$('.header__nav a').each(function () {
$('.header__nav a').removeClass('current')
if (this.href === location.href) {
this.className = 'current'
}
})
}) })
$('body').on('click', '.content-reset img', function () { $('body').on('click', '.content-reset img', function () {
window.open(this.src) window.open(this.src)
}) })
this._initCommon($('.icon__up')) $('.header__nav a').each(function () {
$('.header__nav a, .header__m a').each(function () {
if (this.href === location.href) { if (this.href === location.href) {
this.className = 'current' this.className = 'current'
} }
}).click(function () { }).click(function () {
$('.header__nav a, .header__m a').removeClass('current') $('.header__nav a').removeClass('current')
this.className = 'current' if (this.href === location.href) {
$('.header__m .module__list').hide() this.className = 'current'
}) }
$('.header__logo').click(function () {
$('.header__nav a, .header__m a').removeClass('current')
}) })
}, },
_initArticleCommon: function () { _initToc: function () {
if ($(window).width() > 768) { if ($('.content-reset .b3-solo-list li').length === 0 || $(window).width() < 768) {
if ($('#articlePage .b3-solo-list li').length === 0) { $('.post__toc .b3-solo-list').remove()
$('.side .b3-solo-list').closest('.module').remove() return
$('.side').css({ }
height: 'auto',
position: 'initial', $('.post__toc').html($('.b3-solo-list')).css('left', $('.post').offset().left + $('.post').outerWidth())
})
$(window).scroll(function () {
if ($(window).scrollTop() > 72) {
$('.post__toc').show()
} else {
$('.post__toc').hide()
}
})
},
_initShare: function () {
var $this = $('.post__share')
var $qrCode = $this.find('.post__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.weibo = 'http://v.t.sina.com.cn/share/share.php?title=' +
title + '&url=' + url + '&pic=' + avatarURL
urls.qqz = 'https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url='
+ url + '&sharesource=qzone&title=' + title + '&pics=' + avatarURL
urls.twitter = 'https://twitter.com/intent/tweet?status=' + title + ' ' +
url
$this.find('span').click(function () {
var key = $(this).data('type')
if (!key) {
return return
} }
$('#articlePage').width($('.main').width() - 310) if (key === 'wechat') {
if ($('.side .b3-solo-list').length === 0) { if ($qrCode.find('canvas').length === 0) {
$('.side'). $.ajax({
prepend('<div class="module"><div class="module__list"></div></div>'). method: 'GET',
css({ url: latkeConfig.staticServePath +
right: ($(window).width() - $('.main').width()) / 2, '/skins/Pinghsu/js/jquery.qrcode.min.js',
position: 'fixed', dataType: 'script',
overflow: 'auto', cache: true,
height: $(window).height() - 30, success: function () {
top: 30, $qrCode.qrcode({
width: 128,
height: 128,
text: shareURL,
})
},
}) })
} else {
$qrCode.find('canvas').slideToggle()
}
return false
} }
$('.side .module:eq(0) .module__list').html($('.b3-solo-list'))
$(window).scroll() window.open(urls[key], '_blank', 'top=100,left=200,width=648,height=618')
$('.side').scrollTop(0) })
} else {
if ($('#articlePage .b3-solo-list li').length === 0) {
$('.header__m .icon__list').hide().next().hide()
return
}
$('.header__m .icon__list').show().next().html($('.b3-solo-list'))
$('.b3-solo-list a').click(function () {
$(this).closest('.module__list').hide()
})
}
}, },
initArticle: function () { initArticle: function () {
this._initArticleCommon() var postSharer = new Headroom($('.post__fix')[0], {
tolerance: 0,
offset: 48,
classes: {
initial: 'post__fix',
pinned: 'post__fix--pinned',
unpinned: 'post__fix--unpinned',
top: 'post__fix',
notTop: 'post__fix',
bottom: 'post__fix',
notBottom: 'post__fix',
},
})
postSharer.init()
setTimeout(function () { Skin._initShare()
if ($('#externalRelevantArticlesWrap li').length === 0) { Skin._initToc()
$('#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() Skin.init()

View File

@ -15,4 +15,4 @@
* 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/>.
*/ */
var Skin={_initCommon:function(e){$(window).scroll(function(){125<$(window).scrollTop()?e.show():e.hide(),0<$(".side .b3-solo-list").length&&(50<$(window).scrollTop()?$(".side").css("position","fixed"):$(".side").css("position","initial"))})},_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||1===$(e.target).closest("#articlePage").length||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(){if(768<$(window).width()){if(0===$("#articlePage .b3-solo-list li").length)return $(".side .b3-solo-list").closest(".module").remove(),void $(".side").css({height:"auto",position:"initial"});$("#articlePage").width($(".main").width()-310),0===$(".side .b3-solo-list").length&&$(".side").prepend('<div class="module"><div class="module__list"></div></div>').css({right:($(window).width()-$(".main").width())/2,position:"fixed",overflow:"auto",height:$(window).height()-30,top:30}),$(".side .module:eq(0) .module__list").html($(".b3-solo-list")),$(window).scroll(),$(".side").scrollTop(0)}else{if(0===$("#articlePage .b3-solo-list li").length)return void $(".header__m .icon__list").hide().next().hide();$(".header__m .icon__list").show().next().html($(".b3-solo-list")),$(".b3-solo-list a").click(function(){$(this).closest(".module__list").hide()})}},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(); var Skin={init:function(){new Headroom($("header")[0],{tolerance:0,offset:70,classes:{initial:"header",pinned:"header--down",unpinned:"header--up",top:"header",notTop:"header",bottom:"header",notBottom:"header"}}).init(),Util.initPjax(function(){0===$(".post__fix").length?$("body").addClass("body--gray"):$("body").removeClass("body--gray"),$(".header__nav a").each(function(){$(".header__nav a").removeClass("current"),this.href===location.href&&(this.className="current")})}),$("body").on("click",".content-reset img",function(){window.open(this.src)}),$(".header__nav a").each(function(){this.href===location.href&&(this.className="current")}).click(function(){$(".header__nav a").removeClass("current"),this.href===location.href&&(this.className="current")})},_initToc:function(){0===$(".content-reset .b3-solo-list li").length||$(window).width()<768?$(".post__toc .b3-solo-list").remove():($(".post__toc").html($(".b3-solo-list")).css("left",$(".post").offset().left+$(".post").outerWidth()),$(window).scroll(function(){72<$(window).scrollTop()?$(".post__toc").show():$(".post__toc").hide()}))},_initShare:function(){var t=$(".post__share"),e=t.find(".post__code"),o=e.data("url"),n=e.data("avatar"),i=encodeURIComponent(e.data("title")+" - "+e.data("blogtitle")),s=encodeURIComponent(o),a={};a.weibo="http://v.t.sina.com.cn/share/share.php?title="+i+"&url="+s+"&pic="+n,a.qqz="https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url="+s+"&sharesource=qzone&title="+i+"&pics="+n,a.twitter="https://twitter.com/intent/tweet?status="+i+" "+s,t.find("span").click(function(){var t=$(this).data("type");if(t)return"wechat"===t?(0===e.find("canvas").length?$.ajax({method:"GET",url:latkeConfig.staticServePath+"/skins/Pinghsu/js/jquery.qrcode.min.js",dataType:"script",cache:!0,success:function(){e.qrcode({width:128,height:128,text:o})}}):e.find("canvas").slideToggle(),!1):void window.open(a[t],"_blank","top=100,left=200,width=648,height=618")})},initArticle:function(){new Headroom($(".post__fix")[0],{tolerance:0,offset:48,classes:{initial:"post__fix",pinned:"post__fix--pinned",unpinned:"post__fix--unpinned",top:"post__fix",notTop:"post__fix",bottom:"post__fix",notBottom:"post__fix"}}).init(),Skin._initShare(),Skin._initToc()}};Skin.init();

18
Pinghsu/js/headroom.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,45 @@
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2019, b3log.org & hacpai.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
(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);

18
Pinghsu/js/jquery.qrcode.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -18,16 +18,10 @@
# #
# Description: Solo language configurations(en_US). # Description: Solo language configurations(en_US).
# Version: 2.0.0.0, Feb 23, 2019 # Version: 0.1.0.0, Feb 26, 2019
# Author: Liyuan Li # Author: Liyuan Li
# #
cancelLabel=Cancel
siteViewLabel=Site
onlineVisitorLabel=Visitor
tocLabel=Article ToC
readLabel=Read More
nextArticleLabel=Next nextArticleLabel=Next
previousArticleLabel=Previous previousArticleLabel=Previous
articleCP1Label=Please indicate the source: goTopLabel=Go top
viewCountLabel=View Count goBottomLabel=Go bottom

View File

@ -18,15 +18,10 @@
# #
# Description: Solo default language configurations(zh_CN). # Description: Solo default language configurations(zh_CN).
# Version: 2.0.0.0, Feb 23, 2019 # Version: 0.1.0.0, Feb 26, 2019
# 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 nextArticleLabel=\u65B0\u4E00\u7BC7
previousArticleLabel=\u65E7\u4E00\u7BC7 previousArticleLabel=\u65E7\u4E00\u7BC7
articleCP1Label=\u8F6C\u8F7D\u8BF7\u6CE8\u660E\u6765\u6E90\uFF1A goTopLabel=\u79FB\u52A8\u5230\u9876\u90E8
viewCountLabel=\u6D4F\u89C8\u6570 goBottomLabel=\u79FB\u52A8\u5230\u5E95\u90E8

View File

@ -26,41 +26,30 @@
<meta name="description" content="${metaDescription},${linkLabel}"/> <meta name="description" content="${metaDescription},${linkLabel}"/>
</@head> </@head>
</head> </head>
<body> <body class="body--gray">
<#include "header.ftl"> <#include "header.ftl">
<div class="main"> <main id="pjax">
<div id="pjax" class="content">
<#if pjax><!---- pjax {#pjax} start ----></#if> <#if pjax><!---- pjax {#pjax} start ----></#if>
<main> <div class="wrapper--min wrapper">
<div class="module"> <div class="page__title">
<div class="module__content ft__center"> <span class="ft__red">#</span>
<i class="icon__home"></i>
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__link"></i>
${linkLabel} ${linkLabel}
</div>
</div> </div>
<div class="module"> <div class="page__content fn__clear">
<div class="module__list"> <#if 0 != links?size>
<#if 0 != links?size> <#list links as link>
<ul class="list"> <a rel="friend" href="${link.linkAddress}"
<#list links as link> class="page__item"
<li> title="${link.linkDescription}"
<a rel="friend" href="${link.linkAddress}" title="${link.linkDescription}" target="_blank">
target="_blank"> ${link.linkTitle}
${link.linkTitle} </a>
</a> </#list>
</li> </#if>
</#list>
</ul>
</#if>
</div>
</div> </div>
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div> </div>
</div> <#if pjax><!---- pjax {#pjax} end ----></#if>
</main>
<#include "footer.ftl"> <#include "footer.ftl">
</body> </body>
</html> </html>

View File

@ -18,26 +18,16 @@
--> -->
<#macro comments commentList article> <#macro comments commentList article>
<div class="comments__item"> <div class="comment__title">
<div class="comments__meta comments__meta--only">${commentLabel}</div> Responses
</div> </div>
<#if article.commentable>
<textarea rows="3" placeholder="Your comment here. Be cool. " id="comment"></textarea>
</#if>
<ul class="comments" id="comments"> <ul id="comments">
<#list commentList as comment> <#list commentList as comment>
<#include 'common-comment.ftl'/> <#include 'common-comment.ftl'/>
</#list> </#list>
</ul> </ul>
<#if article.commentable>
<div class="comments__item">
<div class="comments__meta">
${postCommentsLabel}
</div>
<div class="comments__content">
<div class="form">
<textarea rows="3" placeholder="${postCommentsLabel}" id="comment"></textarea>
</div>
</div>
</div>
</#if>
</#macro> </#macro>

View File

@ -30,25 +30,42 @@
</head> </head>
<body> <body>
<#include "header.ftl"> <#include "header.ftl">
<div class="main"> <main id="pjax">
<div id="pjax" class="content">
<#if pjax><!---- pjax {#pjax} start ----></#if> <#if pjax><!---- pjax {#pjax} start ----></#if>
<main> <div class="post wrapper wrapper--miner">
<article class="module"> <div class="content-reset">
<div class="module__content"> ${page.pageContent}
<div class="content-reset">
${page.pageContent}
</div>
</div> </div>
</article>
<@comments commentList=pageComments article=page></@comments>
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div> </div>
</div> <div class="body--gray post__gray">
<div class="wrapper comment">
<@comments commentList=pageComments article=page></@comments>
</div>
<div class="page__bottom"></div>
</div>
<div class="post__fix">
<div class="wrapper">
<span class="post__share">
Share
<span class="tag tag--4" data-type="weibo">WeiBo</span>
<span class="tag tag--5" data-type="twitter">Twitter</span>
<span class="tag tag--6" data-type="qqz">QZone</span>
<span class="post__code tag tag--7"
data-type="wechat"
data-title="${page.pageTitle}"
data-blogtitle="${blogTitle}"
data-url="${servePath}${page.pagePermalink}"
data-avatar="${adminUser.userAvatar}">WeChat</span>
</span>
</div>
</div>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</main>
<#include "footer.ftl"> <#include "footer.ftl">
<#if pjax><!---- pjax {#pjax} start ----></#if> <#if pjax><!---- pjax {#pjax} start ----></#if>
<@comment_script oId=page.oId commentable=page.commentable></@comment_script> <@comment_script oId=page.oId commentable=page.commentable>
Skin.initArticle()
</@comment_script>
<#if pjax><!---- pjax {#pjax} end ----></#if> <#if pjax><!---- pjax {#pjax} end ----></#if>
</body> </body>
</html> </html>

View File

@ -27,28 +27,19 @@
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 class="body--gray">
<#include "header.ftl"> <#include "header.ftl">
<div class="main"> <main id="pjax">
<div id="pjax" class="content">
<#if pjax><!---- pjax {#pjax} start ----></#if> <#if pjax><!---- pjax {#pjax} start ----></#if>
<main> <div class="wrapper wrapper--min">
<div class="module"> <div class="page__title">
<div class="module__content ft__center"> <span class="ft__red">#</span>
<i class="icon__home"></i> ${tag.tagTitle} ${tagLabel}
<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> </div>
<#include "article-list.ftl"> <#include "article-list.ftl">
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div> </div>
</div> <#if pjax><!---- pjax {#pjax} end ----></#if>
</main>
<#include "footer.ftl"> <#include "footer.ftl">
</body> </body>
</html> </html>

View File

@ -26,36 +26,28 @@
<meta name="description" content="<#list tags as tag>${tag.tagTitle}<#if tag_has_next>,</#if></#list>"/> <meta name="description" content="<#list tags as tag>${tag.tagTitle}<#if tag_has_next>,</#if></#list>"/>
</@head> </@head>
</head> </head>
<body> <body class="body--gray">
<#include "header.ftl"> <#include "header.ftl">
<div class="main"> <main id="pjax">
<div id="pjax" class="content">
<#if pjax><!---- pjax {#pjax} start ----></#if> <#if pjax><!---- pjax {#pjax} start ----></#if>
<main> <div class="wrapper--min wrapper">
<div class="module"> <div class="page__title">
<div class="module__content ft__center"> <span class="ft__red">#</span>
<i class="icon__home"></i> ${sumLabel} ${tags?size} ${tagLabel}
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__tags"></i> ${sumLabel} ${tags?size} ${tagLabel}
</div>
</div> </div>
<div class="module"> <div class="page__content page__tags fn__clear">
<div class="module__content fn__clear tags"> <#list tags as tag>
<#list tags as tag> <a rel="tag" data-count="${tag.tagPublishedRefCount}" class="tag tag--${tag_index % 10}"
<a rel="tag" data-count="${tag.tagPublishedRefCount}" class="tag" href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}">
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}"> <span class="name">${tag.tagTitle}</span>
<span class="name">${tag.tagTitle}</span> (<b>${tag.tagPublishedRefCount}</b>)
(<b>${tag.tagPublishedRefCount}</b>) </a>
</a> </#list>
</#list>
</div>
</div> </div>
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div> </div>
</div> <#if pjax><!---- pjax {#pjax} end ----></#if>
</main>
<#include "footer.ftl"> <#include "footer.ftl">
</body> </body>
</html> </html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -47,8 +47,6 @@
<meta name="twitter:title" content="${article.articleTitle}"/> <meta name="twitter:title" content="${article.articleTitle}"/>
<meta name="twitter:image" content="${article.authorThumbnailURL}"/> <meta name="twitter:image" content="${article.authorThumbnailURL}"/>
<meta name="twitter:url" content="${servePath}${article.articlePermalink}"/> <meta name="twitter:url" content="${servePath}${article.articlePermalink}"/>
<meta name="twitter:site" content="@DL88250"/>
<meta name="twitter:creator" content="@DL88250"/>
</head> </head>
<body> <body>
<#include "header.ftl"> <#include "header.ftl">
@ -181,18 +179,17 @@
<#include "footer.ftl"> <#include "footer.ftl">
<#if pjax><!---- pjax {#pjax} start ----></#if> <#if pjax><!---- pjax {#pjax} start ----></#if>
<@comment_script oId=article.oId commentable=article.commentable> <@comment_script oId=article.oId commentable=article.commentable>
page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}"; page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}";
<#if 0 != randomArticlesDisplayCount> <#if 0 != randomArticlesDisplayCount>
page.loadRandomArticles('<header class="module__header">${randomArticlesLabel}</header>'); page.loadRandomArticles('<header class="module__header">${randomArticlesLabel}</header>');
</#if> </#if>
<#if 0 != externalRelevantArticlesDisplayCount> <#if 0 != externalRelevantArticlesDisplayCount>
page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,</#if></#list>" page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,</#if></#list>" , "<header class='module__header'>${externalRelevantArticlesLabel}</header>");
, "<header class='module__header'>${externalRelevantArticlesLabel}</header>");
</#if> </#if>
<#if 0 != relevantArticlesDisplayCount> <#if 0 != relevantArticlesDisplayCount>
page.loadRelevantArticles('${article.oId}', page.loadRelevantArticles('${article.oId}', '<header class="module__header">${relevantArticlesLabel}</header>');
'<header class="module__header">${relevantArticlesLabel}</header>');
</#if> </#if>
Skin.initArticle()
</@comment_script> </@comment_script>
<#if pjax><!---- pjax {#pjax} end ----></#if> <#if pjax><!---- pjax {#pjax} end ----></#if>
</body> </body>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long