📝 update title

This commit is contained in:
Van 2018-12-07 16:57:14 +08:00
parent dbb3b29bda
commit 2af4532528
No known key found for this signature in database
GPG Key ID: 7059B8783A78F16C
27 changed files with 366 additions and 1454 deletions

View File

@ -21,7 +21,7 @@
<!DOCTYPE html>
<html>
<head>
<@head title="${blogTitle}">
<@head title="${archiveLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveLabel}"/>
<meta name="description" content="${metaDescription},${archiveLabel}"/>
</@head>

View File

@ -21,7 +21,7 @@
<!DOCTYPE html>
<html>
<head>
<@head title="${blogTitle}">
<@head title="${archiveLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveLabel}"/>
<meta name="description" content="${metaDescription},${archiveLabel}"/>
</@head>

View File

@ -21,7 +21,7 @@
<!DOCTYPE html>
<html>
<head>
<@head title="${blogTitle}">
<@head title="${archiveLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveLabel}"/>
<meta name="description" content="${metaDescription},${archiveLabel}"/>
</@head>

View File

@ -30,18 +30,17 @@
</head>
<body>
<#include "header.ftl">
<div class="main">
<div id="pjax" class="content">
<div id="pjax" class="wrapper">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<main>
<div class="module">
<div class="module__content ft__center">
<i class="icon__home"></i>
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__inbox"></i>
<a href="${servePath}/archives.html" class="breadcrumb">${archiveLabel}</a>
&nbsp; > &nbsp;
<div class="article__item">
<h2 class="article__title">
<a href="${servePath}/archives.html">
<i class="icon__inbox"></i>
${archiveLabel}
</a>
</h2>
<div class="article__more">
<#if "en" == localeString?substring(0, 2)>
${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear}
<#else>
@ -53,9 +52,7 @@
<#include "article-list.ftl">
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
<#include "footer.ftl">
</div>
<#include "footer.ftl">
</body>
</html>

View File

@ -21,54 +21,41 @@
<!DOCTYPE html>
<html>
<head>
<@head title="${blogTitle}">
<@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">
<div id="pjax" class="wrapper">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<main>
<div class="module">
<div class="module__content ft__center">
<i class="icon__home"></i>
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__inbox"></i>
${statistic.statisticPublishedBlogArticleCount} ${archiveLabel}${articleLabel}
</div>
<div class="article__item">
<h2 class="article__title">
<i class="icon__inbox"></i> ${archiveLabel}${articleLabel}
</h2>
<div class="ft__gray">
${statistic.statisticPublishedBlogArticleCount} ${countLabel}
</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 class="tags fn__clear">
<#list archiveDates as archiveDate>
<#if "en" == localeString?substring(0, 2)>
<a class="ft__red" href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
${archiveDate.monthName} ${archiveDate.archiveDateYear}
<span class="ft__gray">(${archiveDate.archiveDatePublishedArticleCount})</span>
</a>
<#else>
<a class="ft__red"
href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}
<span class="ft__gray">(${archiveDate.archiveDatePublishedArticleCount})</span>
</a>
</#if>
</#list>
</div>
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
<#if pjax><!---- pjax {#pjax} end ----></#if>
<#include "footer.ftl">
</div>
<#include "footer.ftl">
</body>
</html>

View File

@ -17,16 +17,9 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<div class="article-list">
<#list articles as article>
<article class="item <#if article_index &lt; 3>item--active</#if>">
<time class="tooltipped tooltipped__n item__date"
aria-label="${article.articleCreateDate?string("yyyy")}${yearLabel}">
${article.articleCreateDate?string("MM")}${monthLabel}
<span class="item__day">${article.articleCreateDate?string("dd")}</span>
</time>
<h2 class="item__title">
<#list articles as article>
<article class="article__item">
<h2 class="article__title">
<a rel="bookmark" href="${servePath}${article.articlePermalink}">
${article.articleTitle}
</a>
@ -41,58 +34,45 @@
</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">
<time class="ft__gray">
${article.articleCreateDate?string("yyyy-MM-dd")}${monthLabel}
</time>
<div class="content-reset article__content">
${article.articleAbstract}
</div>
<a class="article__more" href="">More...</a>
</article>
</#list>
</#list>
<#if 0 != paginationPageCount>
<div class="fn__clear">
<nav class="pagination fn__right">
<#if 1 != paginationPageNums?first>
<a href="${servePath}${path}?p=${paginationPreviousPageNum}" class="pagination__item">&laquo;</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">&raquo;</a>
</#if>
</nav>
<#if 0 != paginationPageCount>
<nav class="fn__flex pagination">
<#if 1 != paginationPageNums?first>
<a href="${servePath}${path}?p=${paginationPreviousPageNum}" class="pagination__item fn__flex-center">&laquo; Prev</a>
</#if>
<div class="fn__flex-1 ft__center">
<#if 1 != paginationPageNums?first>
<a class="pagination__item" href="${servePath}${path}">1</a>
<span class="pagination__item">...</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">...</span>
<a href="${servePath}${path}?p=${paginationPageCount}"
class="pagination__item">${paginationPageCount}</a>
</#if>
</div>
</#if>
</div>
<#if paginationPageNums?last != paginationPageCount>
<a href="${servePath}${path}?p=${paginationNextPageNum}" class="pagination__item fn__flex-center">Next &raquo;</a>
</#if>
</nav>
</#if>

View File

@ -152,7 +152,6 @@
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div>
<#include "footer.ftl">
<#if pjax><!---- pjax {#pjax} start ----></#if>

55
Jane/categories.ftl Normal file
View File

@ -0,0 +1,55 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, b3log.org & hacpai.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<#include "macro-head.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${categoryLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${categoryLabel}"/>
<meta name="description"
content="<#list mostUsedCategories as category>${category.categoryTitle}<#if category_has_next>,</#if></#list>"/>
</@head>
</head>
<body>
<#include "header.ftl">
<div id="pjax" class="wrapper">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<main>
<div class="module">
<div class="module__content ft__center">
<i class="icon__home"></i>
<a href="${servePath}" class="breadcrumb">${blogTitle}</a>
&nbsp; > &nbsp;
<i class="icon__category"></i>
${categoryLabel}
</div>
</div>
<#list mostUsedCategories as category>
<a href="${servePath}/category/${category.categoryURI}"
aria-label="${category.categoryTagCnt} ${cntLabel}${tagsLabel}"
class="tag tooltipped tooltipped__n">
${category.categoryTitle}</a>
</#list>
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
<#include "footer.ftl">
</div>
</body>
</html>

View File

@ -49,7 +49,6 @@
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div>
<#include "footer.ftl">
</body>

View File

@ -20,7 +20,7 @@
* skin style
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 0.1.0.0, Dec 6, 2018
* @version 0.1.0.0, Dec 7, 2018
*/
/*
* Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java.
@ -728,449 +728,105 @@ blockquote {
.icon__rss:before {
content: "\e901"; }
body::-webkit-scrollbar {
display: none; }
a {
transition: all .3s; }
.ft__red {
color: #b94a48; }
color: #991a1a; }
.module {
border-radius: 5px;
overflow: hidden;
margin-bottom: 30px;
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
transition: all .3s; }
.module.item {
transform: translateY(30px);
transition: transform 2s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.module.item--active {
transform: translate(0); }
.module:hover {
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8); }
.module__content {
background-color: rgba(255, 255, 255, 0.8);
padding: 15px;
color: #3d4450;
display: block; }
.module__content:hover {
background-color: #fff; }
.module__content--three {
padding-bottom: 0; }
.module__header {
background-color: rgba(10, 10, 0, 0.7);
padding: 15px;
color: #fff; }
.module__header a {
color: #fff; }
.module__header:hover {
background-color: rgba(10, 10, 0, 0.9); }
.module__list li {
border-bottom: 1px solid #ddd;
background-color: rgba(255, 255, 255, 0.8);
line-height: 20px; }
.module__list li a {
padding: 15px 15px;
display: block;
color: #3d4450; }
.module__list li a:hover {
text-decoration: none;
color: #b94a48;
background-color: #fff; }
.ft__gray {
color: #999; }
.form {
position: relative; }
.form__input {
border: 1px solid #7266BA;
height: 30px;
line-height: 30px;
padding: 0 15px;
border-radius: 15px;
width: 100%;
box-sizing: border-box; }
.content-reset {
color: #555;
font-size: 14px; }
.header {
top: 0;
background-color: #2a2a2a;
color: #fff;
position: fixed;
right: 0;
height: 100%;
width: 33px; }
.header a {
width: 50px; }
.header a, .header span {
color: #fff;
padding: 0 15px;
display: inline-block; }
.header a.current, .header a:hover {
text-decoration: none;
background-color: rgba(102, 88, 184, 0.8); }
.header__logo {
position: absolute;
left: 30px; }
.header__nav {
text-align: center; }
.header__nav img {
float: left;
height: 20px;
width: 20px;
margin: 15px 5px 0 0; }
.header__login {
position: absolute;
right: 30px;
top: 0; }
.main {
max-width: 1170px;
padding: 30px;
margin: auto;
display: flex; }
.content {
flex: 1;
min-width: 1px; }
.side {
width: 280px;
min-width: 280px;
margin-left: 30px; }
.side__btn {
background-color: transparent;
border: 0;
top: 5px;
position: absolute;
right: 10px; }
.side__avatar {
border-radius: 50%;
height: 100px;
width: 100px;
padding: 10px 0;
display: block;
margin: 0 auto;
margin-bottom: 15px;
transition: transform .3s;
margin-top: 10px; }
.side__avatar:hover {
transform: rotate(360deg) scale(1.2);
border: 5px solid rgba(114, 102, 186, 0.36);
margin-top: 0; }
text-align: center;
font-size: 16px;
width: 100%; }
.header a img, .header span img {
height: 17px;
width: 17px; }
.header a.current, .header a:hover, .header span.current, .header span:hover {
text-decoration: none;
color: #999; }
.header__bottom {
width: 100%;
position: absolute;
bottom: 0; }
.tag {
float: left;
color: #fff;
padding: 2px 5px;
border: 1px solid transparent;
height: 20px;
white-space: nowrap;
word-wrap: normal;
background-color: rgba(10, 10, 0, 0.7);
border-radius: 3px 3px 3px 3px;
line-height: 21px;
margin: 0 15px 15px 0; }
.tag a {
color: #fff; }
.tag:hover {
background-color: #b94a48;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
text-decoration: none; }
.breadcrumb {
color: #7266BA !important; }
.breadcrumb:hover {
color: #3d4450 !important; }
.wrapper {
max-width: 920px;
margin: 0 auto;
padding: 0 20px; }
.footer {
text-align: center;
color: #fff;
padding: 15px;
margin-bottom: 30px; }
color: #999;
padding: 30px 0;
line-height: 1.6em;
font-size: 0.85em; }
.footer a {
color: #7266BA; }
color: #991a1a; }
.article-list .item {
border-radius: 5px;
margin-bottom: 30px;
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
padding: 15px;
background-color: rgba(255, 255, 255, 0.8);
position: relative;
transition: all 0.3s, transform 1s cubic-bezier(0.175, 0.885, 0.32, 1.275);
transform: perspective(2500px) rotateX(-100deg); }
.article-list .item--active {
transform: perspective(2500px) rotateX(0); }
.article-list .item:hover {
background-color: #fff;
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8); }
.article-list .item .tag {
float: none;
display: inline-block; }
.article-list .item__title {
text-align: center;
font-size: 24px;
font-weight: 500; }
.article-list .item__title a {
color: rgba(10, 10, 0, 0.7);
padding: 0 15px;
border-radius: 5px;
display: inline-block;
margin-bottom: 15px;
line-height: 36px; }
.article-list .item__title a:hover {
color: #fff;
text-decoration: none;
background-color: #6658b8; }
.article-list .item__title > sup {
color: #b94a48; }
.article-list .item__date {
position: absolute;
background-color: #7266BA;
color: #fff;
height: 70px;
width: 70px;
font-size: 12px;
top: -20px;
border-radius: 35px;
left: -20px;
text-align: center;
padding-top: 9px;
box-sizing: border-box; }
.article-list .item__day {
font-size: 30px;
display: block; }
.article__item {
margin: 50px 0;
border-bottom: 1px dashed #d9d9d9;
text-align: justify; }
.pagination__item {
color: #fff;
border-radius: 3px;
padding: 0 10px;
line-height: 24px;
display: inline-block;
margin: 0 0 10px 10px;
background-color: rgba(114, 102, 186, 0.58); }
.pagination__item--text {
background-color: rgba(255, 255, 255, 0.8);
color: #7266BA; }
.pagination__item--current {
background-color: #6658b8; }
.article__title {
padding: 20px 0; }
.article__title a {
text-decoration: none;
font-size: 25px;
font-weight: bold;
color: #555;
transition: color 0.2s; }
.article__title a:hover {
color: #991a1a; }
.pagination a.pagination__item:hover {
.article__content {
margin: 20px 0; }
.article__content > p:last-child {
margin-bottom: 0; }
.article__more {
margin-bottom: 70px;
text-decoration: none;
background-color: #6658b8; }
color: #991a1a;
display: block; }
.comments {
position: relative; }
.comments__item {
border-radius: 5px;
list-style: none;
margin-bottom: 30px;
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
transition: all .3s; }
.comments__item:hover {
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8); }
.comments__item:hover .comments__avatar {
transform: rotate(720deg);
border-radius: 0; }
.comments__item:hover .comments__content {
background-color: #fff; }
.comments__item:hover .comments__meta {
background-color: #d9edf7; }
.comments__item:hover .comments__reply:after {
background-color: #d9edf7; }
.comments__meta {
border-radius: 5px 5px 0 0;
min-height: 37px;
line-height: 37px;
padding-left: 45px;
background: rgba(217, 237, 247, 0.6);
color: #3d4450;
padding-right: 15px; }
.comments__meta a {
font-weight: 700;
color: #3d4450; }
.comments__meta a:hover {
color: #b94a48; }
.comments__meta--only {
border-radius: 5px; }
.comments__content {
border-radius: 0 0 5px 5px;
background-color: rgba(255, 255, 255, 0.8);
padding: 15px 45px;
position: relative; }
.comments__content textarea {
margin: 15px 0; }
.comments__avatar {
position: absolute;
height: 54px;
width: 54px;
background-position: center center;
background-size: cover;
border: 2px solid #fff;
border-radius: 35px;
left: -29px;
top: -23px;
transition: all .8s ease; }
.comments__captcha {
height: 30px; }
.comments__reply {
border-radius: 5px;
margin: 15px auto 0; }
.comments__reply #cancelCommentButton {
line-height: 34px; }
.comments__reply:after {
content: " ";
position: absolute;
height: 15px;
width: 5px;
right: 60px;
top: -15px;
background-color: rgba(217, 237, 247, 0.6); }
.pagination {
margin: 20px 0 40px; }
.pagination__item {
padding: 10px 10px;
color: #999;
display: inline-block; }
.pagination__item--current {
color: #991a1a;
font-weight: bold; }
.pagination a.pagination__item:hover {
text-decoration: none;
background: #991a1a;
color: #fff; }
.comment-body-ref {
right: 0;
position: absolute;
left: 64px; }
.comment-body-ref .breadcrumb {
display: none; }
.form {
width: 100%; }
.form input,
.form textarea {
border: 1px solid #d1d5da;
background-color: #fafafa;
border-radius: 3px;
box-shadow: inset 0 1px 2px rgba(27, 31, 35, 0.075);
padding: 7px 8px;
width: 100%;
line-height: 17px;
box-sizing: border-box; }
.form input:focus,
.form textarea:focus {
background-color: #fff;
box-shadow: inset 0 1px 2px rgba(27, 31, 35, 0.075), 0 0 0 0.2em #dbedff;
border: 1px solid #4285f4; }
.form .ft__red {
line-height: 34px; }
.form .btn {
float: right;
height: 34px;
margin: 0 0 0 10px;
padding: 0 15px; }
.icon__up {
position: fixed;
bottom: 30px;
right: 30px;
color: #fff;
background-color: rgba(114, 102, 186, 0.8);
height: 30px;
width: 30px;
line-height: 28px;
border-radius: 15px;
cursor: pointer;
display: none;
text-align: center; }
.icon__up:hover {
background-color: #6658b8; }
.content .b3-solo-list {
display: none !important; }
.b3-solo-list {
margin: 0 !important;
font-size: 14px !important; }
.b3-solo-list-h1 {
margin: 0 !important; }
.b3-solo-list-h2 {
margin: 0 !important; }
.b3-solo-list-h2 a {
padding-left: 30px !important; }
.b3-solo-list-h3 {
margin: 0 !important; }
.b3-solo-list-h3 a {
padding-left: 45px !important; }
.b3-solo-list-h4 {
margin: 0 !important; }
.b3-solo-list-h4 a {
padding-left: 60px !important; }
.b3-solo-list-h5 {
margin: 0 !important; }
.b3-solo-list-h5 a {
padding-left: 75px !important; }
@media (max-width: 768px) {
.header__nav {
display: none; }
.main {
display: block;
margin: 15px;
padding: 0; }
.side {
margin: 0;
width: auto; }
.article-list {
overflow: hidden; }
.article-list .item__title {
font-size: 20px; }
.article-list .item__date--m {
text-align: center;
margin-bottom: 10px;
color: #3d4450;
display: block; }
.article-list .item__date {
display: none; }
.article-list .item,
.module,
.comments__item {
margin-bottom: 15px; }
.footer {
margin: 0 15px 15px;
background-color: rgba(255, 255, 255, 0.8);
border-radius: 5px;
color: #3d4450;
line-height: 20px; }
.footer a {
text-decoration: underline; }
.footer .fn__none--m {
display: none; }
.footer .fn__none {
display: block; }
.tag {
margin: 0 5px 10px 0;
font-size: 12px; }
.header__logo {
left: 0; }
.header__login {
display: none; }
.header__m {
display: block;
position: absolute;
width: 100%;
z-index: 1; }
.header__m img {
float: left;
height: 20px;
width: 20px;
margin: 0 5px 0 0; }
.header__m a.current {
color: #b94a48; }
.header__m .icon__list {
position: absolute;
top: -35px;
right: 15px;
font-size: 20px;
color: #fff; }
.header__m .module__list {
display: none; }
.header__m .module__list li {
background-color: #fff; }
.module__content.ft__center {
text-align: left; }
.comments__avatar {
height: 34px;
width: 34px;
left: -7px; }
.comments__content {
padding: 15px; }
.content-reset {
font-size: 14px; } }
.tags {
line-height: 32px;
margin: 20px 0 70px; }
.tags a {
width: 180px;
float: left; }

View File

@ -19,7 +19,7 @@
* skin style
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 0.1.0.0, Dec 6, 2018
* @version 0.1.0.0, Dec 7, 2018
*/
@import "../../../scss/reset";
@import "../../../scss/reset-content";
@ -29,12 +29,16 @@
@import "../../../scss/nprogress";
@import "icon";
$purple: #7266BA !default;
$purple-dark: #6658b8 !default;
$red: #b94a48 !default;
$black: #3d4450 !default;
$red: #991a1a !default;
$gray: #999 !default;
// reset
body {
&::-webkit-scrollbar {
display: none;
}
}
a {
transition: all .3s;
}
@ -43,646 +47,135 @@ a {
color: $red;
}
// module
.module {
border-radius: 5px;
overflow: hidden;
margin-bottom: 30px;
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
transition: all .3s;
&.item {
transform: translateY(30px);
transition: transform 2s cubic-bezier(.175, .885, .32, 1.275);
&--active {
transform: translate(0);
}
}
&:hover {
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8);
}
&__content {
background-color: rgba(255, 255, 255, 0.8);
padding: 15px;
color: $black;
display: block;
&:hover {
background-color: #fff;
}
&--three {
padding-bottom: 0;
}
}
&__header {
background-color: rgba(10, 10, 0, 0.7);
padding: 15px;
color: #fff;
a {
color: #fff;
}
&:hover {
background-color: rgba(10, 10, 0, 0.9);
}
}
&__list {
li {
border-bottom: 1px solid #ddd;
background-color: rgba(255, 255, 255, 0.8);
line-height: 20px;
a {
padding: 15px 15px;
display: block;
color: $black;
&:hover {
text-decoration: none;
color: $red;
background-color: #fff;
}
}
}
}
.ft__gray {
color: $gray;
}
// form
.form {
position: relative;
&__input {
border: 1px solid $purple;
height: 30px;
line-height: 30px;
padding: 0 15px;
border-radius: 15px;
width: 100%;
box-sizing: border-box;
}
.content-reset {
color: #555;
font-size: 14px;
}
// header
.header {
top: 0;
background-color: #2a2a2a;
color: #fff;
position: fixed;
right: 0;
height: 100%;
width: 33px;
width: 50px;
a {
a, span {
color: #fff;
padding: 0 15px;
display: inline-block;
padding: 10px 0;
display: block;
text-align: center;
font-size: 16px;
width: 100%;
img {
height: 17px;
width: 17px;
}
&.current,
&:hover {
text-decoration: none;
background-color: rgba($purple-dark, 0.8);
color: $gray;
}
}
&__logo {
&__bottom {
width: 100%;
position: absolute;
left: 30px;
}
&__nav {
text-align: center;
img {
float: left;
height: 20px;
width: 20px;
margin: 15px 5px 0 0;
}
}
&__login {
position: absolute;
right: 30px;
top: 0;
bottom: 0;
}
}
// framework
.main {
max-width: 1170px;
padding: 30px;
margin: auto;
display: flex;
}
.content {
flex: 1;
min-width: 1px;
}
// side
.side {
width: 280px;
min-width: 280px;
margin-left: 30px;
&__btn {
background-color: transparent;
border: 0;
top: 5px;
position: absolute;
right: 10px;
}
&__avatar {
border-radius: 50%;
height: 100px;
width: 100px;
display: block;
margin: 0 auto;
margin-bottom: 15px;
transition: transform .3s;
margin-top: 10px;
&:hover {
transform: rotate(360deg) scale(1.2);
border: 5px solid rgba($purple, 0.36);
margin-top: 0;
}
}
}
// tag
.tag {
float: left;
color: #fff;
padding: 2px 5px;
border: 1px solid transparent;
height: 20px;
white-space: nowrap;
word-wrap: normal;
background-color: rgba(10, 10, 0, 0.7);
border-radius: 3px 3px 3px 3px;
line-height: 21px;
margin: 0 15px 15px 0;
a {
color: #fff;
}
&:hover {
background-color: $red;
box-shadow: 0 1px 1px rgba(0, 0, 0, .2);
text-decoration: none;
}
}
.breadcrumb {
color: $purple !important;
&:hover {
color: $black !important;
}
.wrapper {
max-width: 920px;
margin: 0 auto;
padding: 0 20px;
}
// footer
.footer {
text-align: center;
color: #fff;
padding: 15px;
margin-bottom: 30px;
color: $gray;
padding: 30px 0;
line-height: 1.6em;
font-size: 0.85em;
a {
color: $purple;
color: $red;
}
}
// article list
.article-list {
.item {
border-radius: 5px;
margin-bottom: 30px;
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
padding: 15px;
background-color: rgba(255, 255, 255, 0.8);
position: relative;
transition: all .3s, transform 1s cubic-bezier(.175, .885, .32, 1.275);
transform: perspective(2500px) rotateX(-100deg);
// article
.article {
&__item {
margin: 50px 0;
border-bottom: 1px dashed #d9d9d9;
text-align: justify;
}
&--active {
transform: perspective(2500px) rotateX(0);
}
&:hover {
background-color: #fff;
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8);
}
.tag {
float: none;
display: inline-block;
}
&__title {
text-align: center;
font-size: 24px;
font-weight: 500;
a {
color: rgba(10, 10, 0, 0.7);
padding: 0 15px;
border-radius: 5px;
display: inline-block;
margin-bottom: 15px;
line-height: 36px;
&:hover {
color: #fff;
text-decoration: none;
background-color: $purple-dark;
}
}
& > sup {
&__title {
padding: 20px 0;
a {
text-decoration: none;
font-size: 25px;
font-weight: bold;
color: #555;
transition: color 0.2s;
&:hover {
color: $red;
}
}
}
&__date {
position: absolute;
background-color: $purple;
color: #fff;
height: 70px;
width: 70px;
font-size: 12px;
top: -20px;
border-radius: 35px;
left: -20px;
text-align: center;
padding-top: 9px;
box-sizing: border-box;
&__content {
margin: 20px 0;
& > p:last-child {
margin-bottom: 0
}
}
&__day {
font-size: 30px;
display: block;
}
&__more {
margin-bottom: 70px;
text-decoration: none;
color: $red;
display: block;
}
}
// pagination
.pagination {
&__item {
color: #fff;
border-radius: 3px;
padding: 0 10px;
line-height: 24px;
display: inline-block;
margin: 0 0 10px 10px;
background-color: rgba($purple, 0.58);
&--text {
background-color: rgba(255, 255, 255, 0.8);
color: $purple;
}
.pagination {
margin: 20px 0 40px;
&__item {
padding: 10px 10px;
color: $gray;
display: inline-block;
&--current {
background-color: $purple-dark;
color: #991a1a;
font-weight: bold;
}
}
a.pagination__item:hover {
text-decoration: none;
background-color: $purple-dark;
background: $red;
color: #fff;
}
}
// comment
.comments {
position: relative;
&__item {
border-radius: 5px;
list-style: none;
margin-bottom: 30px;
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
transition: all .3s;
&:hover {
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8);
.comments__avatar {
transform: rotate(720deg);
border-radius: 0;
}
.comments__content {
background-color: #fff;
}
.comments__meta {
background-color: rgba(217, 237, 247, 1);
}
.comments__reply:after {
background-color: #d9edf7;
}
}
}
&__meta {
border-radius: 5px 5px 0 0;
min-height: 37px;
line-height: 37px;
padding-left: 45px;
background: rgba(217, 237, 247, 0.6);
color: $black;
padding-right: 15px;
a {
font-weight: 700;
color: $black;
&:hover {
color: $red;
}
}
&--only {
border-radius: 5px;
}
}
&__content {
border-radius: 0 0 5px 5px;
background-color: rgba(255, 255, 255, 0.8);
padding: 15px 45px;
position: relative;
textarea {
margin: 15px 0;
}
}
&__avatar {
position: absolute;
height: 54px;
width: 54px;
background-position: center center;
background-size: cover;
border: 2px solid #fff;
border-radius: 35px;
left: -29px;
top: -23px;
transition: all .8s ease;
}
&__captcha {
height: 30px;
}
&__reply {
border-radius: 5px;
margin: 15px auto 0;
#cancelCommentButton {
line-height: 34px;
}
&:after {
content: " ";
position: absolute;
height: 15px;
width: 5px;
right: 60px;
top: -15px;
background-color: rgba(217, 237, 247, 0.6);
}
}
}
.comment-body-ref {
right: 0;
position: absolute;
left: 64px;
.breadcrumb {
display: none;
}
}
.form {
width: 100%;
input,
textarea {
border: 1px solid #d1d5da;
background-color: #fafafa;
border-radius: 3px;
box-shadow: inset 0 1px 2px rgba(27, 31, 35, .075);
padding: 7px 8px;
width: 100%;
line-height: 17px;
box-sizing: border-box;
&:focus {
background-color: #fff;
box-shadow: inset 0 1px 2px rgba(27, 31, 35, .075), 0 0 0 0.2em #dbedff;
border: 1px solid #4285f4;
}
}
.ft__red {
line-height: 34px;
}
.btn {
float: right;
height: 34px;
margin: 0 0 0 10px;
padding: 0 15px;
}
}
.icon__up {
position: fixed;
bottom: 30px;
right: 30px;
color: #fff;
background-color: rgba($purple, 0.8);
height: 30px;
width: 30px;
line-height: 28px;
border-radius: 15px;
cursor: pointer;
display: none;
text-align: center;
&:hover {
background-color: $purple-dark;
}
}
.content .b3-solo-list {
display: none !important;
}
.b3-solo-list {
margin: 0 !important;
font-size: 14px !important;
}
.b3-solo-list-h1 {
margin: 0 !important;
}
.b3-solo-list-h2 {
margin: 0 !important;
// other page
.tags {
line-height: 32px;
margin: 20px 0 70px;
a {
padding-left: 30px !important;
}
}
.b3-solo-list-h3 {
margin: 0 !important;
a {
padding-left: 45px !important;
}
}
.b3-solo-list-h4 {
margin: 0 !important;
a {
padding-left: 60px !important;
}
}
.b3-solo-list-h5 {
margin: 0 !important;
a {
padding-left: 75px !important;
}
}
@media (max-width: 768px) {
.header__nav {
display: none;
}
.main {
display: block;
margin: 15px;
padding: 0;
}
.side {
margin: 0;
width: auto;
}
.article-list {
overflow: hidden;
.item {
&__title {
font-size: 20px;
}
&__date--m {
text-align: center;
margin-bottom: 10px;
color: $black;
display: block;
}
&__date {
display: none;
}
}
}
.article-list .item,
.module,
.comments__item {
margin-bottom: 15px;
}
.footer {
margin: 0 15px 15px;
background-color: rgba(255, 255, 255, 0.8);
border-radius: 5px;
color: $black;
line-height: 20px;
a {
text-decoration: underline;
}
.fn__none--m {
display: none;
}
.fn__none {
display: block;
}
}
.tag {
margin: 0 5px 10px 0;
font-size: 12px;
}
.header__logo {
left: 0;
}
.header__login {
display: none;
}
.header__m {
display: block;
position: absolute;
width: 100%;
z-index: 1;
img {
float: left;
height: 20px;
width: 20px;
margin: 0 5px 0 0;
}
a.current {
color: #b94a48;
}
.icon__list {
position: absolute;
top: -35px;
right: 15px;
font-size: 20px;
color: #fff;
}
.module__list {
display: none;
li {
background-color: #fff;
}
}
}
.module__content.ft__center {
text-align: left;
}
.comments__avatar {
height: 34px;
width: 34px;
left: -7px;
}
.comments__content {
padding: 15px;
}
.content-reset {
font-size: 14px;
width: 180px;
float: left;
}
}

View File

@ -50,7 +50,6 @@
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div>
<#include "footer.ftl">
<script>

View File

@ -17,18 +17,19 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<div class="icon__up" onclick="Util.goTop()"></div>
<footer class="footer">
<footer class="footer fn__clear">
&copy; ${year}
${footerContent}
<a href="${servePath}">${blogTitle}</a> <span class="fn__none--m">&nbsp; • &nbsp;</span>
<div class="fn__none"></div>
<a href="https://solo.b3log.org" target="_blank">Solo</a> ${version} <br/>
<a href="https://solo.b3log.org" target="_blank">Solo</a> ${version}
Powered by <a href="https://b3log.org" target="_blank">B3log</a> 开源
<div class="fn__none"></div>
&nbsp; &heartsuit; &nbsp;
Theme <a rel="friend" href="https://github.com/b3log/solo-skins" target="_blank">nijigen</a> by <a href="http://vanessa.b3log.org" target="_blank">Vanessa</a>
<div class="fn__right">
Powered by <a href="https://b3log.org" target="_blank">B3log</a> 开源
<div class="fn__none"></div>
&nbsp; &heartsuit; &nbsp;
Theme <a rel="friend" href="https://github.com/b3log/solo-skins" target="_blank">Jane</a> by <a href="http://vanessa.b3log.org" target="_blank">Vanessa</a>
</div>
</footer>
<div class="icon-up" onclick="Util.goTop()"></div>

View File

@ -18,115 +18,61 @@
-->
<header class="header">
<div class="header__wrap">
<a href="${servePath}" rel="start" class="tooltipped__w tooltipped" aria-label="${blogTitle}">
<i class="icon__home"></i>
</a>
<a href="${servePath}" rel="start" class="header__logo">
<i class="icon__home"></i> ${blogTitle}
<i class="icon__search"></i>
<#list pageNavigations as page>
<a href="${page.pagePermalink}" target="${page.pageOpenTarget}"
class="tooltipped__w tooltipped" rel="section" aria-label="${page.pageTitle}">
<#if page.pageIcon != ''><img class="page-icon" src="${page.pageIcon}"><#else>
<i class="icon__category"></i>
</#if>
</a>
</#list>
<nav class="header__nav">
<#list pageNavigations as page>
<a href="${page.pagePermalink}" target="${page.pageOpenTarget}" rel="section">
<#if page.pageIcon != ''><img class="page-icon" src="${page.pageIcon}"></#if>${page.pageTitle}
</a>
</#list>
<a href="${servePath}/dynamic.html" rel="section">
<i class="icon__refresh"></i> ${dynamicLabel}
</a>
<a href="${servePath}/tags.html" rel="section">
<i class="icon__tags"></i> ${allTagsLabel}
</a>
<a href="${servePath}/archives.html">
<i class="icon__inbox"></i> ${archiveLabel}
</a>
<a rel="archive" href="${servePath}/links.html">
<i class="icon__link"></i> ${linkLabel}
</a>
<a rel="alternate" href="${servePath}/rss.xml" rel="section">
<i class="icon__rss"></i> RSS
</a>
</nav>
<a href="${servePath}/dynamic.html" rel="section" aria-label="${dynamicLabel}" class="tooltipped tooltipped__w">
<i class="icon__refresh"></i>
</a>
<a href="${servePath}/tags.html" rel="section" aria-label="${allTagsLabel}" class="tooltipped tooltipped__w">
<i class="icon__tags"></i>
</a>
<a href="${servePath}/archives.html" aria-label="${archiveLabel}" class="tooltipped tooltipped__w">
<i class="icon__inbox"></i>
</a>
<a rel="archive" href="${servePath}/links.html" aria-label="${linkLabel}" class="tooltipped tooltipped__w">
<i class="icon__link"></i>
</a>
<a href="${servePath}/search" class="tooltipped__w tooltipped" aria-label="${searchLabel}">
<i class="icon__search"></i>
</a>
<a rel="alternate" href="${servePath}/rss.xml" rel="section" aria-label="RSS" class="tooltipped tooltipped__w">
<i class="icon__rss"></i>
</a>
<div class="header__login">
<#if isLoggedIn>
<a href="${servePath}/admin-index.do#main" title="${adminLabel}">
<i class="icon__setting"></i> ${adminLabel}
</a>
<a href="${logoutURL}">
<i class="icon__logout"></i> ${logoutLabel}
</a>
<#else>
<a href="${loginURL}">
<i class="icon__login"></i> ${loginLabel}
</a>
<a href="${servePath}/register">
<i class="icon__register"></i> ${registerLabel}
</a>
</#if>
</div>
</div>
</header>
<div class="header__m fn__none">
<i class="icon__list" onclick="$(this).next().slideToggle()"></i>
<main class="module__list">
<ul>
<#if isLoggedIn>
<li>
<a href="${servePath}/admin-index.do#main" title="${adminLabel}">
<i class="icon__setting"></i> ${adminLabel}
</a>
</li>
<li>
<a href="${logoutURL}">
<i class="icon__logout"></i> ${logoutLabel}
</a>
</li>
<div class="header__bottom">
<#if isLoggedIn>
<a href="${servePath}/admin-index.do#main"
aria-label="${adminLabel}" class="tooltipped tooltipped__w">
<i class="icon__setting"></i>
</a>
<a href="${logoutURL}"
aria-label="${logoutLabel}" class="tooltipped tooltipped__w">
<i class="icon__logout"></i>
</a>
<#else>
<li>
<a href="${loginURL}">
<i class="icon__login"></i> ${loginLabel}
</a>
</li>
<li>
<a href="${servePath}/register">
<i class="icon__register"></i> ${registerLabel}
</a>
</li>
<a href="${loginURL}"
aria-label="${loginLabel}" class="tooltipped tooltipped__w">
<i class="icon__login"></i>
</a>
<a href="${servePath}/register"
aria-label="${registerLabel}" class="tooltipped tooltipped__w">
<i class="icon__register"></i>
</a>
</#if>
<#list pageNavigations as page>
<li>
<a href="${page.pagePermalink}" target="${page.pageOpenTarget}" rel="section">
<#if page.pageIcon != ''><img class="page-icon" src="${page.pageIcon}"></#if>${page.pageTitle}
</a>
</li>
</#list>
<li>
<a href="${servePath}/dynamic.html" rel="section">
<i class="icon__refresh"></i> ${dynamicLabel}
</a>
</li>
<li>
<a href="${servePath}/tags.html" rel="section">
<i class="icon__tags"></i> ${allTagsLabel}
</a>
</li>
<li>
<a href="${servePath}/archives.html">
<i class="icon__inbox"></i> ${archiveLabel}
</a>
</li>
<li>
<a rel="archive" href="${servePath}/links.html">
<i class="icon__link"></i> ${linkLabel}
</a>
</li>
<li>
<a rel="alternate" href="${servePath}/rss.xml" rel="section">
<i class="icon__rss"></i> RSS
</a>
</li>
</ul>
</main>
</div>
<span onclick="Util.goTop()"
aria-label="${putTopLabel}" class="tooltipped tooltipped__w">
<i class="icon__up"></i>
</span>
</div>
</header>

View File

@ -32,14 +32,12 @@
</head>
<body>
<#include "header.ftl">
<div class="main">
<div id="pjax" class="content">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<div id="pjax" class="wrapper">
<#if pjax><!---- pjax {#pjax} start ----></#if>
<main>
<#include "article-list.ftl">
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "footer.ftl">
</body>

View File

@ -19,7 +19,7 @@
* @fileoverview util and every page should be used.
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 0.2.1.0, Sep 30, 2018
* @version 0.1.0.0, Dec 7, 2018
*/
/**
@ -27,76 +27,20 @@
* @static
*/
var Skin = {
_initCommon: function ($goTop) {
$(window).scroll(function () {
if ($(window).scrollTop() > 125) {
$goTop.show()
} else {
$goTop.hide()
}
})
},
_initAnimation: function () {
if (!('IntersectionObserver' in window)) {
$('.item').addClass('item--active')
return false
}
if (window.imageIntersectionObserver) {
window.imageIntersectionObserver.disconnect()
$('.item').each(function () {
window.imageIntersectionObserver.observe(this)
})
} else {
window.imageIntersectionObserver = new IntersectionObserver(
function (entries) {
entries.forEach(function (entrie) {
if (typeof entrie.isIntersecting === 'undefined'
? entrie.intersectionRatio !== 0 : entrie.isIntersecting) {
$(entrie.target).addClass('item--active')
} else {
if ($(entrie.target).closest('.side').length === 1 ||
$(entrie.target).closest('.article-list').hasClass('content') ||
$(entrie.target).outerHeight() > 768) {
return
}
$(entrie.target).removeClass('item--active')
}
})
})
$('.item').each(function () {
window.imageIntersectionObserver.observe(this)
})
}
},
init: function () {
Util.initPjax(function () {
Skin._initAnimation()
if ($('#articlePage').length === 0) {
$('.b3-solo-list').closest('.module').remove()
}
})
Skin._initAnimation()
Util.initPjax()
$('body').on('click', '.content-reset img', function () {
window.open(this.src)
})
this._initCommon($('.icon__up'))
$('.header__nav a, .header__m a').each(function () {
$('.header a').each(function () {
if (this.href === location.href) {
this.className = 'current'
}
}).click(function () {
$('.header__nav a, .header__m a').removeClass('current')
$('.header 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 () {

View File

@ -60,7 +60,6 @@
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div>
<#include "footer.ftl">
</body>

View File

@ -44,7 +44,6 @@
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div>
<#include "footer.ftl">
<#if pjax><!---- pjax {#pjax} start ----></#if>

View File

@ -1,138 +0,0 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2018, b3log.org & hacpai.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<aside class="side">
<#if noticeBoard??>
<section class="content-reset module">
<main class="module__content">
${noticeBoard}
</main>
</section>
</#if>
<section class="module">
<header class="module__header">
<form class="form" action="${servePath}/search">
<input placeholder="${searchLabel}" class="form__input" type="text" name="keyword"/>
<button class="side__btn" type="submit"><i class="icon__search"></i></button>
</form>
</header>
</section>
<div class="module item">
<header class="module__header ft__center">
${adminUser.userName}
</header>
<main class="module__content ft__center">
<img class="side__avatar" src="${adminUser.userAvatar}" alt="${adminUser.userName}"/>
${blogSubtitle}
</main>
</div>
<#if 0 != mostUsedCategories?size>
<div class="module item">
<header class="module__header">
${categoryLabel}
</header>
<main class="module__content fn__clear module__content--three">
<#list mostUsedCategories as category>
<a href="${servePath}/category/${category.categoryURI}"
aria-label="${category.categoryTagCnt} ${cntLabel}${tagsLabel}"
class="tag tooltipped tooltipped__n">
${category.categoryTitle}</a>
</#list>
</main>
</div>
</#if>
<#if 0 != mostUsedTags?size>
<div class="module item">
<header class="module__header">${tagsLabel}</header>
<main class="module__content--three module__content fn__clear">
<#list mostUsedTags as tag>
<a rel="tag"
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}"
class="tag tooltipped tooltipped__n"
aria-label="${tag.tagPublishedRefCount} ${countLabel}${articleLabel}">
${tag.tagTitle}</a>
</#list>
</main>
</div>
</#if>
<#if 0 != mostCommentArticles?size>
<div class="module item">
<header class="module__header">${mostCommentArticlesLabel}</header>
<main class="module__list">
<ul>
<#list mostCommentArticles as article>
<li>
<a rel="nofollow"
href="${servePath}${article.articlePermalink}">
${article.articleTitle}
</a>
</li>
</#list>
</ul>
</main>
</div>
</#if>
<#if 0 != mostViewCountArticles?size>
<div class="module item">
<header class="module__header">${mostViewCountArticlesLabel}</header>
<main class="module__list">
<ul>
<#list mostViewCountArticles as article>
<li>
<a rel="nofollow"
href="${servePath}${article.articlePermalink}">
${article.articleTitle}
</a>
</li>
</#list>
</ul>
</main>
</div>
</#if>
<div class="module item">
<div class="module__header">
<div class="fn__flex">
<a href="${servePath}/archives.html" class="fn__flex-1 ft__center">
${statistic.statisticPublishedBlogArticleCount}
${articleLabel}
</a>
<a href="${servePath}/dynamic.html" class="fn__flex-1 ft__center">
${statistic.statisticPublishedBlogCommentCount}
${commentLabel}
</a>
</div>
<br/>
<div class="fn__flex">
<div class="fn__flex-1 ft__center">
${statistic.statisticBlogViewCount} <span class="ft-gray">${viewLabel}</span>
</div>
<div class="fn__flex-1 ft__center">
${onlineVisitorCnt} <span class="ft-gray">${onlineVisitorLabel}</span>
</div>
</div>
</div>
</div>
</aside>

View File

@ -48,7 +48,6 @@
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div>
<#include "footer.ftl">
</body>

View File

@ -55,7 +55,6 @@
</main>
<#if pjax><!---- pjax {#pjax} end ----></#if>
</div>
<#include "side.ftl">
</div>
<#include "footer.ftl">
<#if pjax><!---- pjax {#pjax} start ----></#if>

View File

@ -21,7 +21,7 @@
<!DOCTYPE html>
<html>
<head>
<@head title="${blogTitle}">
<@head title="${archiveLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveLabel}"/>
<meta name="description" content="${metaDescription},${archiveLabel}"/>
</@head>

View File

@ -21,7 +21,7 @@
<!DOCTYPE html>
<html>
<head>
<@head title="${blogTitle}">
<@head title="${archiveLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveLabel}"/>
<meta name="description" content="${metaDescription},${archiveLabel}"/>
</@head>

View File

@ -22,7 +22,7 @@
<!DOCTYPE html>
<html>
<head>
<@head title="${blogTitle}">
<@head title="${archiveLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveLabel}"/>
<meta name="description" content="${metaDescription},${archiveLabel}"/>
</@head>

View File

@ -21,7 +21,7 @@
<!DOCTYPE html>
<html>
<head>
<@head title="${blogTitle}">
<@head title="${archiveLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveLabel}"/>
<meta name="description" content="${metaDescription},${archiveLabel}"/>
</@head>

View File

@ -21,7 +21,7 @@
<!DOCTYPE html>
<html>
<head>
<@head title="${blogTitle}">
<@head title="${archiveLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveLabel}"/>
<meta name="description" content="${metaDescription},${archiveLabel}"/>
</@head>

View File

@ -21,7 +21,7 @@
<!DOCTYPE html>
<html>
<head>
<@head title="${blogTitle}">
<@head title="${archiveLabel} - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveLabel}"/>
<meta name="description" content="${metaDescription},${archiveLabel}"/>
</@head>