This commit is contained in:
60
Pinghsu/archive-articles.ftl
Normal file
60
Pinghsu/archive-articles.ftl
Normal file
@@ -0,0 +1,60 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<#include "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>
|
||||
<#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>
|
||||
>
|
||||
<i class="icon__inbox"></i>
|
||||
<a href="${servePath}/archives.html" class="breadcrumb">${archiveLabel}</a>
|
||||
>
|
||||
<#if "en" == localeString?substring(0, 2)>
|
||||
${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear}
|
||||
<#else>
|
||||
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}
|
||||
</#if>
|
||||
- ${archiveDate.archiveDatePublishedArticleCount} ${articleLabel}
|
||||
</div>
|
||||
</div>
|
||||
<#include "article-list.ftl">
|
||||
</main>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
73
Pinghsu/archives.ftl
Normal file
73
Pinghsu/archives.ftl
Normal file
@@ -0,0 +1,73 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<#include "macro-head.ftl">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<@head title="${archiveLabel} - ${blogTitle}">
|
||||
<meta name="keywords" content="${metaKeywords},${archiveLabel}"/>
|
||||
<meta name="description" content="${metaDescription},${archiveLabel}"/>
|
||||
</@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>
|
||||
>
|
||||
<i class="icon__inbox"></i>
|
||||
${statistic.statisticPublishedBlogArticleCount} ${archiveLabel}${articleLabel}
|
||||
</div>
|
||||
</div>
|
||||
<div class="module">
|
||||
<div class="module__list">
|
||||
<#if 0 != archiveDates?size>
|
||||
<ul>
|
||||
<#list archiveDates as archiveDate>
|
||||
<li>
|
||||
<#if "en" == localeString?substring(0, 2)>
|
||||
<a href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
|
||||
${archiveDate.monthName} ${archiveDate.archiveDateYear}
|
||||
(${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>
|
||||
</main>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
83
Pinghsu/article-list.ftl
Normal file
83
Pinghsu/article-list.ftl
Normal file
@@ -0,0 +1,83 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<div class="article-list fn__clear">
|
||||
<#list articles as article>
|
||||
<article class="item">
|
||||
<div class="item__container">
|
||||
<div class="item__cover" style="background-image: url(${article.articleImg1URL})"></div>
|
||||
<div rel="bookmark" class="item__abstract">
|
||||
<div>
|
||||
${article.articleAbstract}
|
||||
</div>
|
||||
</div>
|
||||
<div class="item__slant"></div>
|
||||
<div class="item__slant item__slant--white"></div>
|
||||
<div class="item__main">
|
||||
<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>
|
||||
<#list article.articleTags?split(",") as articleTag>
|
||||
<#if articleTag_index == 0>
|
||||
<div class="ico ico--${article_index % 10}"></div>
|
||||
<a rel="tag" class="item__tag" href="${servePath}/tags/${articleTag?url('UTF-8')}">
|
||||
${articleTag}
|
||||
</a>
|
||||
</#if>
|
||||
</#list>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</#list>
|
||||
</div>
|
||||
<#if 0 != paginationPageCount>
|
||||
<nav class="pagination">
|
||||
<#if 1 != paginationPageNums?first>
|
||||
<a href="${servePath}${path}?p=${paginationPreviousPageNum}" class="pagination__item">←</a>
|
||||
<a class="pagination__item" href="${servePath}${path}">1</a>
|
||||
<span class="pagination__item pagination__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}?p=${paginationPageNum}">${paginationPageNum}</a>
|
||||
</#if>
|
||||
</#list>
|
||||
<#if paginationPageNums?last != paginationPageCount>
|
||||
<span class="pagination__item pagination__item--text">...</span>
|
||||
<a href="${servePath}${path}?p=${paginationPageCount}"
|
||||
class="pagination__item">${paginationPageCount}</a>
|
||||
<a href="${servePath}${path}?p=${paginationNextPageNum}" class="pagination__item">→</a>
|
||||
</#if>
|
||||
</nav>
|
||||
</#if>
|
198
Pinghsu/article.ftl
Normal file
198
Pinghsu/article.ftl
Normal file
@@ -0,0 +1,198 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<#include "macro-head.ftl">
|
||||
<#include "macro-comments.ftl">
|
||||
<#include "../../common-template/macro-comment_script.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 id="articlePage">
|
||||
<div class="article-list">
|
||||
<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("yyyy-MM-dd")}
|
||||
</div>
|
||||
|
||||
<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>
|
||||
|
||||
<#if previousArticlePermalink?? || nextArticlePermalink??>
|
||||
<div class="module mobile__hidden">
|
||||
<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>
|
||||
|
||||
<#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>
|
||||
</#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"> </div>
|
||||
<div class="fn__flex-1" id="randomArticlesWrap">
|
||||
<div class="module">
|
||||
<div id="randomArticles" class="module__list"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mobile__hidden"> </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>
|
||||
<#include "footer.ftl">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<@comment_script oId=article.oId commentable=article.commentable>
|
||||
page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}";
|
||||
<#if 0 != randomArticlesDisplayCount>
|
||||
page.loadRandomArticles('<header class="module__header">${randomArticlesLabel}</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>
|
55
Pinghsu/category-articles.ftl
Normal file
55
Pinghsu/category-articles.ftl
Normal file
@@ -0,0 +1,55 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<#include "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>
|
||||
<#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>
|
||||
>
|
||||
<i class="icon__category"></i>
|
||||
${categoryLabel}
|
||||
>
|
||||
<span class="tooltipped tooltipped__w"
|
||||
aria-label="${category.categoryDescription}">${category.categoryTitle}</span>
|
||||
</div>
|
||||
</div>
|
||||
<#include "article-list.ftl">
|
||||
</main>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
48
Pinghsu/common-comment.ftl
Normal file
48
Pinghsu/common-comment.ftl
Normal file
@@ -0,0 +1,48 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<li id="${comment.oId}" class="comments__item">
|
||||
<div class="comments__meta fn__flex">
|
||||
<div class="fn__flex-1">
|
||||
<#if "http://" == comment.commentURL>
|
||||
${comment.commentName}
|
||||
<#else>
|
||||
<a href="${comment.commentURL}" target="_blank">${comment.commentName}</a>
|
||||
</#if>
|
||||
<#if comment.isReply>
|
||||
@<a href="${servePath}${article.permalink}#${comment.commentOriginalCommentId}"
|
||||
onmouseover="page.showComment(this, '${comment.commentOriginalCommentId}', 28);"
|
||||
onmouseout="page.hideComment('${comment.commentOriginalCommentId}')"
|
||||
>${comment.commentOriginalCommentName}</a>
|
||||
</#if>
|
||||
</div>
|
||||
<time>${comment.commentDate2?string("yyyy-MM-dd HH:mm")}</time>
|
||||
</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>
|
||||
<#if article?? && article.commentable>
|
||||
<a class="fn__right breadcrumb" href="javascript:page.toggleEditor('${comment.oId}', '${comment.commentName}')">${replyLabel}</a>
|
||||
<#else>
|
||||
<a class="fn__right breadcrumb" href="${servePath}${comment.commentSharpURL}">${viewLabel}»</a>
|
||||
</#if>
|
||||
</main>
|
||||
</li>
|
93
Pinghsu/css/_icon.scss
Normal file
93
Pinghsu/css/_icon.scss
Normal file
@@ -0,0 +1,93 @@
|
||||
/**
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* icon font
|
||||
*
|
||||
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
|
||||
* @version 0.2.0.1, Jan 2, 2019
|
||||
*/
|
||||
@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__search:before {
|
||||
content: "\f002";
|
||||
}
|
||||
|
||||
.ico {
|
||||
background-image: url("../images/ico.png");
|
||||
float: right;
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
border: 1px solid #eaeaea;
|
||||
border-radius: 50%;
|
||||
background-size: 42px auto;
|
||||
&--0 {
|
||||
background-position: 0 -42px;
|
||||
}
|
||||
&--1 {
|
||||
background-position: 0 -84px;
|
||||
}
|
||||
&--2 {
|
||||
background-position: 0 -126px;
|
||||
}
|
||||
&--3 {
|
||||
background-position: 0 -168px;
|
||||
}
|
||||
&--4 {
|
||||
background-position: 0 -210px;
|
||||
}
|
||||
&--5 {
|
||||
background-position: 0 -252px;
|
||||
}
|
||||
&--6 {
|
||||
background-position: 0 -294px;
|
||||
}
|
||||
&--7 {
|
||||
background-position: 0 -336px;
|
||||
}
|
||||
&--8 {
|
||||
background-position: 0 -378px;
|
||||
}
|
||||
&--9 {
|
||||
background-position: 0 -420px;
|
||||
}
|
||||
}
|
1
Pinghsu/css/base.css
Normal file
1
Pinghsu/css/base.css
Normal file
File diff suppressed because one or more lines are too long
299
Pinghsu/css/base.scss
Normal file
299
Pinghsu/css/base.scss
Normal file
@@ -0,0 +1,299 @@
|
||||
/**
|
||||
* 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, Feb 26, 2019
|
||||
*/
|
||||
@import "../../../scss/reset";
|
||||
@import "../../../scss/reset-content";
|
||||
@import "../../../scss/function";
|
||||
@import "../../../scss/tooltipped";
|
||||
@import "../../../scss/comment";
|
||||
@import "../../../scss/nprogress";
|
||||
@import "icon";
|
||||
@import "vditor/src/assets/scss/classic";
|
||||
|
||||
body {
|
||||
background-color: #f7f7f7;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #313131;
|
||||
outline: 0;
|
||||
transition: all .3s;
|
||||
}
|
||||
|
||||
a:active, a:focus, a:hover {
|
||||
color: #eb5055;
|
||||
outline: 0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
::selection {
|
||||
color: #fff;
|
||||
background-color: #eb5055
|
||||
}
|
||||
|
||||
.ft__gray {
|
||||
color: #767676;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
width: 1025px;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: #fff;
|
||||
animation-duration: .5s;
|
||||
animation-fill-mode: both;
|
||||
line-height: 70px;
|
||||
position: fixed;
|
||||
z-index: 10;
|
||||
top: 0;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 70px;
|
||||
box-shadow: 0 1px 5px rgba(0, 0, 0, .1);
|
||||
&__logo {
|
||||
color: #4d4d4d;
|
||||
font-size: 20px;
|
||||
img {
|
||||
margin: 10px 5px 0 0;
|
||||
height: 50px;
|
||||
width: 50px;
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
|
||||
&__nav {
|
||||
float: right;
|
||||
a {
|
||||
margin: 0 15px;
|
||||
}
|
||||
}
|
||||
|
||||
&--up {
|
||||
animation-name: slideUp;
|
||||
}
|
||||
|
||||
&--down {
|
||||
animation-name: slideDown;
|
||||
}
|
||||
|
||||
@keyframes slideUp {
|
||||
0% {
|
||||
transform: translateY(0)
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(-70px)
|
||||
}
|
||||
}
|
||||
@keyframes slideDown {
|
||||
0% {
|
||||
transform: translateY(-70px)
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fade-in {
|
||||
0% {
|
||||
transform: translateY(20px);
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
opacity: 1
|
||||
}
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: #fff;
|
||||
line-height: 20px;
|
||||
font-size: 13px;
|
||||
&__border {
|
||||
border-bottom: 1px solid rgba(184, 197, 214, .2);
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
&__nav {
|
||||
text-align: center;
|
||||
height: 65px;
|
||||
line-height: 65px;
|
||||
a {
|
||||
padding: 0 25px;
|
||||
}
|
||||
img {
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
margin-right: 3px;
|
||||
}
|
||||
}
|
||||
&__mid {
|
||||
margin: 0 40px;
|
||||
}
|
||||
&__copyright {
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
color: #767676;
|
||||
}
|
||||
.wrapper {
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.article-list {
|
||||
animation: fade-in;
|
||||
animation-duration: .5s;
|
||||
padding-top: 95px;
|
||||
max-width: 900px;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
|
||||
.item {
|
||||
float: left;
|
||||
width: 33.3333%;
|
||||
padding: 15px;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
transition: all .3s;
|
||||
&__container {
|
||||
position: relative;
|
||||
border-radius: 3px;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, .04);
|
||||
overflow: hidden;
|
||||
}
|
||||
&__cover {
|
||||
margin-bottom: 130px;
|
||||
height: 250px;
|
||||
transition: transform .5s ease, filter .5s ease;
|
||||
background-position: 50% 50%;
|
||||
background-size: cover;
|
||||
}
|
||||
&__slant {
|
||||
transform: rotate(-10deg) translate(10px, -10px);
|
||||
opacity: .7;
|
||||
position: absolute;
|
||||
z-index: 0;
|
||||
top: 237px;
|
||||
left: 3px;
|
||||
width: 110%;
|
||||
height: 100px;
|
||||
background-color: rgba(0, 0, 0, .5);
|
||||
&--white {
|
||||
left: 3px;
|
||||
opacity: 1;
|
||||
top: 234px;
|
||||
transform: rotate(7deg) translate(-10px, 0);
|
||||
background-color: #fff;
|
||||
}
|
||||
}
|
||||
&__main {
|
||||
top: 250px;
|
||||
height: 130px;
|
||||
box-sizing: border-box;
|
||||
padding: 20px;
|
||||
background-color: #fff;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
&__abstract {
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
padding: 40px 20px;
|
||||
color: #fff;
|
||||
word-break: break-all;
|
||||
box-sizing: border-box;
|
||||
transition: all .5s;
|
||||
& > div {
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
-webkit-line-clamp: 7;
|
||||
text-overflow: ellipsis;
|
||||
-webkit-box-orient: vertical;
|
||||
display: -webkit-box;
|
||||
}
|
||||
}
|
||||
|
||||
&__title {
|
||||
a {
|
||||
font-size: 18px;
|
||||
line-height: 22px;
|
||||
word-break: break-all;
|
||||
font-weight: normal;
|
||||
overflow: hidden;
|
||||
-webkit-line-clamp: 2;
|
||||
text-overflow: ellipsis;
|
||||
-webkit-box-orient: vertical;
|
||||
display: -webkit-box;
|
||||
margin-bottom: 2px;
|
||||
height: 44px;
|
||||
}
|
||||
}
|
||||
|
||||
&__tag {
|
||||
float: right;
|
||||
color: #5f5f5f;
|
||||
margin: 12px 10px;
|
||||
}
|
||||
|
||||
&__container:hover {
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
|
||||
.item {
|
||||
&__cover {
|
||||
transform: scale(1.1);
|
||||
filter: blur(3px);
|
||||
}
|
||||
&__abstract {
|
||||
background-color: rgba(0, 0, 0, .5);
|
||||
& > div {
|
||||
animation: fade-in;
|
||||
animation-duration: .5s;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.pagination {
|
||||
text-align: center;
|
||||
margin: 25px 0 40px;
|
||||
&__item {
|
||||
color: #5f5f5f;
|
||||
padding: 0 15px;
|
||||
|
||||
&--current {
|
||||
color: #eb5055;
|
||||
}
|
||||
}
|
||||
}
|
BIN
Pinghsu/css/fonts/icomoon.eot
Executable file
BIN
Pinghsu/css/fonts/icomoon.eot
Executable file
Binary file not shown.
28
Pinghsu/css/fonts/icomoon.svg
Executable file
28
Pinghsu/css/fonts/icomoon.svg
Executable file
@@ -0,0 +1,28 @@
|
||||
<?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=" " horiz-adv-x="512" d="" />
|
||||
<glyph unicode="" 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="" 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="" glyph-name="more" d="M128 332.8c-70.692 0-128 57.307-128 128s57.307 128 128 128v0c70.692 0 128-57.307 128-128s-57.307-128-128-128v0zM512 332.8c-70.692 0-128 57.307-128 128s57.307 128 128 128v0c70.692 0 128-57.307 128-128s-57.307-128-128-128v0zM896 332.8c-70.692 0-128 57.307-128 128s57.307 128 128 128v0c70.692 0 128-57.307 128-128s-57.307-128-128-128v0z" />
|
||||
<glyph unicode="" 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="" 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="" 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="" glyph-name="login" d="M384 448h-320v128h320v128l192-192-192-192zM1024 960v-832l-384-192v192h-384v256h64v-192h320v576l256 128h-576v-256h-64v320z" />
|
||||
<glyph unicode="" glyph-name="logout" d="M768 320v128h-320v128h320v128l192-192zM704 384v-256h-320v-192l-384 192v832h704v-320h-64v256h-512l256-128v-576h256v192z" />
|
||||
<glyph unicode="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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>
|
After Width: | Height: | Size: 13 KiB |
BIN
Pinghsu/css/fonts/icomoon.ttf
Executable file
BIN
Pinghsu/css/fonts/icomoon.ttf
Executable file
Binary file not shown.
BIN
Pinghsu/css/fonts/icomoon.woff
Executable file
BIN
Pinghsu/css/fonts/icomoon.woff
Executable file
Binary file not shown.
1
Pinghsu/css/fonts/selection.json
Executable file
1
Pinghsu/css/fonts/selection.json
Executable file
File diff suppressed because one or more lines are too long
101
Pinghsu/footer.ftl
Normal file
101
Pinghsu/footer.ftl
Normal file
@@ -0,0 +1,101 @@
|
||||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<footer class="footer">
|
||||
<nav class="footer__nav">
|
||||
<#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="alternate" href="${servePath}/rss.xml" rel="section">RSS</a>
|
||||
<#if isLoggedIn>
|
||||
<a href="${servePath}/admin-index.do#main" title="${adminLabel}">${adminLabel}</a>
|
||||
<a href="${logoutURL}">${logoutLabel}</a>
|
||||
<#else>
|
||||
<a href="${servePath}/start">${startToUseLabel}</a>
|
||||
</#if>
|
||||
</nav>
|
||||
<div class="footer__border"></div>
|
||||
<div class="wrapper fn__flex">
|
||||
<div class="fn__flex-1">
|
||||
<div class="ft__gray">${adminUser.userName} - ${blogSubtitle}</div><br>
|
||||
<#if noticeBoard??>
|
||||
${noticeBoard}
|
||||
</#if>
|
||||
</div>
|
||||
|
||||
<#if 0 != mostUsedCategories?size>
|
||||
<div class="footer__mid fn__flex-1">
|
||||
<div class="ft__gray">${categoryLabel}</div> <br>
|
||||
<#list mostUsedCategories as category>
|
||||
<a href="${servePath}/category/${category.categoryURI}"
|
||||
aria-label="${category.categoryTagCnt} ${cntLabel}${tagsLabel}"
|
||||
class="ft__nowrap tooltipped tooltipped__n">
|
||||
${category.categoryTitle}</a>
|
||||
</#list>
|
||||
</div>
|
||||
</#if>
|
||||
|
||||
<div class="fn__flex-1 footer__copyright">
|
||||
<a href="${servePath}/archives.html">
|
||||
${statistic.statisticPublishedBlogArticleCount}
|
||||
${articleLabel}
|
||||
</a>
|
||||
${statistic.statisticPublishedBlogCommentCount}
|
||||
${commentLabel} <br>
|
||||
${statistic.statisticBlogViewCount} <span class="ft-gray">${viewLabel}</span>
|
||||
${onlineVisitorCnt} <span class="ft-gray">${onlineVisitorLabel}</span> <br>
|
||||
<a href="https://solo.b3log.org" target="_blank">Solo</a> ${version}
|
||||
© ${year} ${footerContent}
|
||||
<a href="${servePath}">${blogTitle}</a>
|
||||
<br>
|
||||
Powered by <a href="https://b3log.org" target="_blank">B3log</a> 开源
|
||||
<br>
|
||||
Theme <a rel="friend" href="https://github.com/b3log/solo-skins" target="_blank">Pinghsu</a>
|
||||
by <a href="http://vanessa.b3log.org" target="_blank">Vanessa</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<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/headroom${miniPostfix}.js"
|
||||
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">
|
||||
var latkeConfig = {
|
||||
'servePath': "${servePath}",
|
||||
'staticServePath': "${staticServePath}",
|
||||
'isLoggedIn': "${isLoggedIn?string}",
|
||||
'userName': "${userName}",
|
||||
}
|
||||
|
||||
var Label = {
|
||||
'markedAvailable': ${markedAvailable?c},
|
||||
'skinDirName': "${skinDirName}",
|
||||
}
|
||||
|
||||
Util.initSW()
|
||||
Util.parseMarkdown()
|
||||
Util.killIE()
|
||||
</script>
|
||||
${plugins}
|
42
Pinghsu/header.ftl
Normal file
42
Pinghsu/header.ftl
Normal file
@@ -0,0 +1,42 @@
|
||||
<#--
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<header class="header">
|
||||
<div class="wrapper">
|
||||
<a href="${servePath}" rel="start" class="header__logo">
|
||||
<img src="${adminUser.userAvatar}"/>
|
||||
${blogTitle}
|
||||
</a>
|
||||
|
||||
<nav class="header__nav">
|
||||
<a href="${servePath}/tags.html" rel="section">
|
||||
Tags
|
||||
</a>
|
||||
<a href="${servePath}/archives.html">
|
||||
Archives
|
||||
</a>
|
||||
<a rel="archive" href="${servePath}/links.html">
|
||||
Links
|
||||
</a>
|
||||
<a rel="archive" href="${servePath}/search">
|
||||
<i class="icon__search"></i>
|
||||
</a>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
BIN
Pinghsu/images/ico.png
Executable file
BIN
Pinghsu/images/ico.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
42
Pinghsu/index.ftl
Normal file
42
Pinghsu/index.ftl
Normal file
@@ -0,0 +1,42 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<#include "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>
|
||||
<#include "header.ftl">
|
||||
<main id="pjax">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<#include "article-list.ftl">
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</main>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
147
Pinghsu/js/common.js
Normal file
147
Pinghsu/js/common.js
Normal file
@@ -0,0 +1,147 @@
|
||||
/*
|
||||
* Solo - A small and beautiful blogging system written in Java.
|
||||
* Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
* @fileoverview util and every page should be used.
|
||||
*
|
||||
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
|
||||
* @version 0.3.0.0, Dev 17, 2018
|
||||
*/
|
||||
|
||||
/**
|
||||
* @description 皮肤脚本
|
||||
* @static
|
||||
*/
|
||||
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 () {
|
||||
var header = 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',
|
||||
},
|
||||
})
|
||||
header.init()
|
||||
|
||||
Util.initPjax(function () {
|
||||
if ($('#articlePage').length === 0) {
|
||||
$('.b3-solo-list').closest('.module').remove()
|
||||
}
|
||||
})
|
||||
|
||||
$('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 ($(window).width() > 768) {
|
||||
if ($('#articlePage .b3-solo-list li').length === 0) {
|
||||
$('.side .b3-solo-list').closest('.module').remove()
|
||||
$('.side').css({
|
||||
height: 'auto',
|
||||
position: 'initial',
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
$('#articlePage').width($('.main').width() - 310)
|
||||
if ($('.side .b3-solo-list').length === 0) {
|
||||
$('.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 ($('#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 () {
|
||||
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()
|
18
Pinghsu/js/common.min.js
vendored
Normal file
18
Pinghsu/js/common.min.js
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* 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/>.
|
||||
*/
|
||||
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();
|
18
Pinghsu/js/headroom.js
Normal file
18
Pinghsu/js/headroom.js
Normal file
File diff suppressed because one or more lines are too long
33
Pinghsu/lang/lang_en_US.properties
Normal file
33
Pinghsu/lang/lang_en_US.properties
Normal file
@@ -0,0 +1,33 @@
|
||||
#
|
||||
# Solo - A small and beautiful blogging system written in Java.
|
||||
# Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
#
|
||||
# Description: Solo language configurations(en_US).
|
||||
# Version: 2.0.0.0, Feb 23, 2019
|
||||
# Author: Liyuan Li
|
||||
#
|
||||
|
||||
cancelLabel=Cancel
|
||||
siteViewLabel=Site
|
||||
onlineVisitorLabel=Visitor
|
||||
tocLabel=Article ToC
|
||||
readLabel=Read More
|
||||
nextArticleLabel=Next
|
||||
previousArticleLabel=Previous
|
||||
articleCP1Label=Please indicate the source:
|
||||
viewCountLabel=View Count
|
32
Pinghsu/lang/lang_zh_CN.properties
Normal file
32
Pinghsu/lang/lang_zh_CN.properties
Normal file
@@ -0,0 +1,32 @@
|
||||
#
|
||||
# Solo - A small and beautiful blogging system written in Java.
|
||||
# Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
#
|
||||
# Description: Solo default language configurations(zh_CN).
|
||||
# Version: 2.0.0.0, Feb 23, 2019
|
||||
# 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
|
66
Pinghsu/links.ftl
Normal file
66
Pinghsu/links.ftl
Normal file
@@ -0,0 +1,66 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<#include "macro-head.ftl">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<@head title="${linkLabel} - ${blogTitle}">
|
||||
<meta name="keywords" content="${metaKeywords},${linkLabel}"/>
|
||||
<meta name="description" content="${metaDescription},${linkLabel}"/>
|
||||
</@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>
|
||||
>
|
||||
<i class="icon__link"></i>
|
||||
${linkLabel}
|
||||
</div>
|
||||
</div>
|
||||
<div class="module">
|
||||
<div class="module__list">
|
||||
<#if 0 != links?size>
|
||||
<ul class="list">
|
||||
<#list links as link>
|
||||
<li>
|
||||
<a rel="friend" href="${link.linkAddress}" title="${link.linkDescription}"
|
||||
target="_blank">
|
||||
${link.linkTitle}
|
||||
</a>
|
||||
</li>
|
||||
</#list>
|
||||
</ul>
|
||||
</#if>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
43
Pinghsu/macro-comments.ftl
Normal file
43
Pinghsu/macro-comments.ftl
Normal file
@@ -0,0 +1,43 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<#macro comments commentList article>
|
||||
<div class="comments__item">
|
||||
<div class="comments__meta comments__meta--only">${commentLabel}</div>
|
||||
</div>
|
||||
|
||||
<ul class="comments" id="comments">
|
||||
<#list commentList as comment>
|
||||
<#include 'common-comment.ftl'/>
|
||||
</#list>
|
||||
</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>
|
37
Pinghsu/macro-head.ftl
Normal file
37
Pinghsu/macro-head.ftl
Normal file
@@ -0,0 +1,37 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<#macro head title>
|
||||
<meta charset="utf-8" />
|
||||
<title>${title}</title>
|
||||
<#nested>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<meta name="author" content="${blogTitle?html}" />
|
||||
<meta name="generator" content="Solo" />
|
||||
<meta name="owner" content="B3log Team" />
|
||||
<meta name="revised" content="${blogTitle?html}, ${year}" />
|
||||
<meta name="copyright" content="B3log" />
|
||||
<meta http-equiv="Window-target" content="_top" />
|
||||
<link type="text/css" rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}" charset="utf-8" />
|
||||
<link href="${servePath}/rss.xml" title="RSS" type="application/rss+xml" rel="alternate" />
|
||||
<link rel="icon" type="image/png" href="${servePath}/favicon.png" />
|
||||
<link rel="manifest" href="${servePath}/manifest.json">
|
||||
<link rel="search" type="application/opensearchdescription+xml" title="${title}" href="/opensearch.xml">
|
||||
${htmlHead}
|
||||
</#macro>
|
54
Pinghsu/page.ftl
Normal file
54
Pinghsu/page.ftl
Normal file
@@ -0,0 +1,54 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<#include "macro-head.ftl">
|
||||
<#include "macro-comments.ftl">
|
||||
<#include "../../common-template/macro-comment_script.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>
|
||||
<#include "header.ftl">
|
||||
<div class="main">
|
||||
<div id="pjax" class="content">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<main>
|
||||
<article class="module">
|
||||
<div class="module__content">
|
||||
<div class="content-reset">
|
||||
${page.pageContent}
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<@comments commentList=pageComments article=page></@comments>
|
||||
</main>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
<#if pjax><!---- pjax {#pjax} start ----></#if>
|
||||
<@comment_script oId=page.oId commentable=page.commentable></@comment_script>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</body>
|
||||
</html>
|
BIN
Pinghsu/preview.png
Normal file
BIN
Pinghsu/preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 84 KiB |
26
Pinghsu/skin.properties
Normal file
26
Pinghsu/skin.properties
Normal file
@@ -0,0 +1,26 @@
|
||||
#
|
||||
# Solo - A small and beautiful blogging system written in Java.
|
||||
# Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
#
|
||||
# Description: skin memo.
|
||||
# Version: 1.0.0.0, Feb 26, 2019
|
||||
# Author: Liyuan Li
|
||||
#
|
||||
|
||||
name=Pinghsu
|
||||
memo=https://github.com/b3log/solo/issues/12673
|
54
Pinghsu/tag-articles.ftl
Normal file
54
Pinghsu/tag-articles.ftl
Normal file
@@ -0,0 +1,54 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<#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>
|
||||
<#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>
|
||||
>
|
||||
<i class="icon__tags"></i>
|
||||
<a href="${servePath}/tags.html" class="breadcrumb">${allTagsLabel}</a>
|
||||
>
|
||||
${tag.tagTitle} ${tagLabel}
|
||||
</div>
|
||||
</div>
|
||||
<#include "article-list.ftl">
|
||||
</main>
|
||||
<#if pjax><!---- pjax {#pjax} end ----></#if>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
61
Pinghsu/tags.ftl
Normal file
61
Pinghsu/tags.ftl
Normal file
@@ -0,0 +1,61 @@
|
||||
<#--
|
||||
|
||||
Solo - A small and beautiful blogging system written in Java.
|
||||
Copyright (c) 2010-2019, b3log.org & hacpai.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<#include "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>
|
||||
>
|
||||
<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>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user