This commit is contained in:
Van 2019-07-10 20:24:51 +08:00
parent c4c884ffdd
commit efcc10cdeb
No known key found for this signature in database
GPG Key ID: 7059B8783A78F16C
7 changed files with 268 additions and 250 deletions

View File

@ -18,24 +18,8 @@
-->
<div class="articles">
<#list articles as article>
<article class="item<#if article_index % 6 ==0> item--large</#if>">
<a href="${servePath}${article.articlePermalink}" class="item__cover"
style="background-image: url(${article.articleImg1URL})">
</a>
<div class="item__main">
<#list article.articleTags?split(",") as articleTag>
<#if articleTag_index == 0>
<#if article.category??>
<a class="item__tag"
href="${servePath}/category/${article.category.categoryURI}">${article.category.categoryTitle}</a>
<#else>
<a rel="tag" class="item__tag" href="${servePath}/tags/${articleTag?url('UTF-8')}">
${articleTag}
</a>
</#if>
</#if>
</#list>
<#list articles as article>
<article class="item">
<h2 class="item__title">
<a rel="bookmark" href="${servePath}${article.articlePermalink}">
${article.articleTitle}
@ -58,50 +42,53 @@
<#else>
${article.articleAbstractText}
</#if>
</a>
<div class="fn__clear">
<a href="${servePath}/authors/${article.authorId}"
aria-label="${article.authorName}"
class="vditor-tooltipped vditor-tooltipped__n item__avatar">
<img src="${article.authorThumbnailURL}" />
</a>
<a href="${servePath}/authors/${article.authorId}">${article.authorName}</a>
&nbsp;·&nbsp;
<#list article.articleTags?split(",") as articleTag>
<a rel="tag" class="item__tag" href="${servePath}/tags/${articleTag?url('UTF-8')}">
${articleTag}
</a> &nbsp;
</#list>
<#if article.articleCommentCount != 0>
<a class="item__meta" href="${servePath}${article.articlePermalink}#comments">
${article.articleCommentCount} ${commentLabel}
</a>
<#else>
<a class="item__meta" href="${servePath}${article.articlePermalink}">
&nbsp;·&nbsp;
<a class="item__tag" href="${servePath}${article.articlePermalink}#comments">
${article.articleCommentCount} ${commentLabel}
</a>
</#if>
<#if article.articleViewCount != 0>
&nbsp;·&nbsp;
<a class="item__tag" href="${servePath}${article.articlePermalink}">
${article.articleViewCount} ${viewLabel}
</a>
</#if>
</div>
</div>
</article>
</#list>
</div>
<#if 0 != paginationPageCount>
<nav class="pagination">
<#if 1 != paginationPageNums?first>
<a href="${servePath}${path}?p=${paginationPreviousPageNum}"
aria-label="${previousPageLabel}"
class="pagination__item vditor-tooltipped__n vditor-tooltipped">&laquo;</a>
<a class="pagination__item" href="${servePath}${path}">1</a>
<span class="pagination__item pagination__item--omit">...</span>
</#if>
<#list paginationPageNums as paginationPageNum>
<#if paginationPageNum == paginationCurrentPageNum>
<span class="pagination__item pagination__item--active">${paginationPageNum}</span>
<#else>
<a class="pagination__item" href="${servePath}${path}?p=${paginationPageNum}">${paginationPageNum}</a>
</#if>
</article>
</#list>
<#if paginationPageNums?last != paginationPageCount>
<span class="pagination__item pagination__item--omit">...</span>
<a href="${servePath}${path}?p=${paginationPageCount}" class="pagination__item">${paginationPageCount}</a>
<a href="${servePath}${path}?p=${paginationNextPageNum}" aria-label="${nextPagePabel}"
class="pagination__item vditor-tooltipped__n vditor-tooltipped">&raquo;</a>
<#if 0 != paginationPageCount>
<nav class="pagination">
<#if 1 != paginationPageNums?first>
<a href="${servePath}${path}?p=${paginationPreviousPageNum}"
aria-label="${previousPageLabel}"
class="pagination__item vditor-tooltipped__n vditor-tooltipped">&laquo;</a>
<a class="pagination__item" href="${servePath}${path}">1</a>
<span class="pagination__item pagination__item--omit">...</span>
</#if>
<#list paginationPageNums as paginationPageNum>
<#if paginationPageNum == paginationCurrentPageNum>
<span class="pagination__item pagination__item--active">${paginationPageNum}</span>
<#else>
<a class="pagination__item" href="${servePath}${path}?p=${paginationPageNum}">${paginationPageNum}</a>
</#if>
</#list>
<#if paginationPageNums?last != paginationPageCount>
<span class="pagination__item pagination__item--omit">...</span>
<a href="${servePath}${path}?p=${paginationPageCount}" class="pagination__item">${paginationPageCount}</a>
<a href="${servePath}${path}?p=${paginationNextPageNum}" aria-label="${nextPagePabel}"
class="pagination__item vditor-tooltipped__n vditor-tooltipped">&raquo;</a>
</#if>
</nav>
</#if>
</nav>
</#if>
</div>

File diff suppressed because one or more lines are too long

View File

@ -153,7 +153,7 @@ a {
transform: scale(1.6)
}
70%,to {
70%, to {
transform: scale(1)
}
}
@ -168,10 +168,6 @@ a {
position: relative;
z-index: 1;
#canvas {
position: absolute;
}
&--index {
height: 100vh;
@ -186,37 +182,6 @@ a {
}
}
//&--article {
// background-color: $black-bg;
// height: 64px;
// .header__title {
// display: none;
// }
// .header__nav a {
// margin-bottom: 0;
// line-height: 64px;
// }
//}
//&--other {
// height: 407px;
// .header__title {
// display: none;
// }
// &:before {
// content: "";
// height: 100%;
// position: absolute;
// background: url("../images/header-bg.jpg") no-repeat center center;
// width: 100%;
// top: 0;
// background-size: cover;
// filter: brightness(48%);
// }
// .header__nav a {
// margin-bottom: 0;
// line-height: 64px;
// }
//}
&__title {
position: relative;
align-items: center;
@ -272,31 +237,6 @@ a {
color: #fff;
}
}
//&__nav {
// position: relative;
// a {
// font-size: 13px;
// float: left;
// line-height: 24px;
// color: $fade-lighter;
// margin: 0 20px 90px 0;
// &:hover {
// color: #fff;
// text-decoration: none;
// }
// }
//
// img {
// height: 14px;
// width: 14px;
// margin-right: 5px;
// }
//
// svg {
// margin-top: 5px;
// }
//}
}
.side {
@ -363,7 +303,6 @@ a {
width: 280px;
height: 100vh;
overflow: auto;
background: #000 url(../images/side-bg.gif) top / contain no-repeat;
animation-name: bounceOutLeft;
animation-duration: 1s;
animation-fill-mode: both;
@ -371,6 +310,7 @@ a {
left: 0;
z-index: 4;
top: 0;
background-color: #000;
&::-webkit-scrollbar {
display: none;
@ -387,13 +327,122 @@ a {
color: #555;
opacity: .5;
transition: all .5s ease-out;
&--bottom {
transform: rotate(-180deg);
}
&:hover {
opacity: 1;
}
}
&__header {
background: #000 url(../images/side-bg.gif) top/contain no-repeat;
width: 100%;
height: 239px;
padding-top: 40px;
}
&__logo {
width: 66px;
height: 66px;
border: 4px solid hsla(0, 0%, 100%, .5);
border-radius: 100%;
box-shadow: inset 1px 1px 4px rgba(0, 0, 0, .3), 0 2px 3px rgba(0, 0, 0, .4);
margin: 0 auto 20px;
display: block;
transition: transform .3s ease;
&:hover {
transform: rotate3d(0, 0, 1, -45deg);
}
}
&__close {
cursor: pointer;
height: 16px;
width: 16px;
position: absolute;
right: 10px;
top: 10px;
}
&__meta {
color: #fff;
text-align: center;
}
&__title {
position: relative;
&:after {
content: "";
position: absolute;
width: 100%;
height: 1px;
background-color: #3b3b3b;
}
span {
position: absolute;
top: -11px;
left: 91px;
z-index: 1;
padding: 0 10px;
background-color: #000;
color: #b8b8b8;
}
}
&__nav {
flex: 1;
margin: 30px 0 20px;
padding: 0;
counter-reset: item;
li {
height: 30px;
display: flex;
&:after {
padding-right: 20px;
text-align: right;
vertical-align: bottom;
color: #B8B8B8;
content: counter(item, lower-roman);
counter-increment: item;
}
a {
color: #989898;
text-decoration: none;
line-height: 1.4;
padding: 0 10px 0 20px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
&:after {
display: inline-block;
content: " .......................................................";
color: rgba(255, 255, 255, 0.2);
margin-left: 5px;
}
&:hover {
color: #FFF;
}
}
img {
float: left;
height: 14px;
width: 14px;
margin: 3px 4px 0 0;
}
}
}
}
.footer {
@ -407,15 +456,16 @@ a {
.wrapper {
position: relative;
&:after {
background: url(../images/footer.png) no-repeat center center / cover;
position: absolute;
bottom: 88px;
bottom: 65px;
left: 0;
width: 100%;
pointer-events: none;
content: "";
height: 300px;
height: 315px;
}
}
@ -423,11 +473,13 @@ a {
display: inline-block;
animation: beating 1s infinite;
animation-timing-function: ease-out;
margin: 0 3px 5px 5px;
margin: 0 3px 5px 8px;
}
svg {
margin: 0 5px;
height: 20px;
width: 20px;
margin: 0 10px 5px;
}
a {
@ -441,79 +493,26 @@ a {
}
.articles {
display: flex;
flex-wrap: wrap;
margin: 0 -20px;
width: 892px;
margin: 40px auto;
box-shadow: 8px 14px 38px rgba(39, 44, 49, .06), 1px 3px 8px rgba(39, 44, 49, .03);
background-color: rgba(255, 255, 255, .9);
border-radius: 5px;
color: $gray;
.item {
flex: 1 1 300px;
overflow: hidden;
margin: 0 20px 40px;
min-height: 300px;
border-radius: 5px;
box-shadow: 8px 14px 38px rgba(39, 44, 49, .06), 1px 3px 8px rgba(39, 44, 49, .03);
transition: all .3s ease;
display: flex;
flex-direction: column;
background-color: #fff;
border-bottom: 1px solid #f0f2f7;
margin-bottom: 25px;
padding: 25px;
&--large {
flex-direction: row;
flex: 1 1 100%;
.item__cover {
flex: 1;
height: auto;
}
.item__main {
padding: 30px 40px;
width: 357px;
flex: unset;
}
}
&:hover {
box-shadow: 8px 28px 50px rgba(39, 44, 49, .07), 1px 6px 12px rgba(39, 44, 49, .04);
transform: translate3D(0, -1px, 0) scale(1.02);
}
&__cover {
background-size: cover;
background-position: center center;
height: 200px;
}
&__main {
padding: 25px;
box-sizing: border-box;
display: flex;
flex-direction: column;
flex: 1;
}
&__tag {
display: inline-block;
margin-bottom: 4px;
color: $gray;
font-size: 12px;
line-height: 14px;
font-weight: 500;
letter-spacing: .5px;
text-transform: uppercase;
&:hover {
text-decoration: none;
color: rgba($gray, 0.8);
}
&:last-child {
border-bottom-width: 0;
}
&__title {
margin-bottom: 10px;
a {
color: $black;
font-size: 18px;
font-size: 24px;
line-height: 24px;
&:hover {
@ -530,9 +529,11 @@ a {
}
&__abstract {
display: block;
line-height: 24px;
color: $black;
flex: 1;
font-size: 16px;
margin: 10px 0;
&:hover {
text-decoration: none;
@ -540,33 +541,24 @@ a {
}
}
&__meta {
float: right;
margin-top: 18px;
&__tag {
display: inline-block;
color: $gray;
line-height: 14px;
font-weight: 500;
letter-spacing: .5px;
text-transform: uppercase;
&:hover {
text-decoration: none;
color: rgba($gray, 0.8);
}
}
&__avatar {
margin-top: 10px;
float: left;
img {
height: 32px;
width: 32px;
}
}
}
}
.pagination {
text-align: center;
margin-top: -70px;
&__item {
width: 30px;

View File

@ -19,6 +19,8 @@
-->
<footer class="footer">
<div class="wrapper">
<#include "../../common-template/macro-user_site.ftl">
<@userSite dir=""></@userSite> <br>
&copy; ${year}
<a href="${servePath}">${blogTitle}</a>
${footerContent}
@ -28,12 +30,6 @@
Theme <a rel="friend" href="https://github.com/b3log/solo-skins" target="_blank">${skinDirName}</a>
<sup>[<a href="https://www.cnblogs.com/jajian" target="_blank">ref</a>]</sup>
by <a href="http://vanessa.b3log.org" target="_blank">Vanessa</a> <br>
<#include "../../common-template/macro-user_site.ftl">
<@userSite dir=""></@userSite> <br>
${statistic.statisticPublishedBlogArticleCount} ${articleLabel} &nbsp;
${statistic.statisticPublishedBlogCommentCount} ${commentLabel} &nbsp;
${statistic.statisticBlogViewCount} ${viewLabel} &nbsp;
${onlineVisitorCnt} ${onlineVisitorLabel}
</div>
</footer>
<svg class="side__top" version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">

View File

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

View File

@ -70,7 +70,7 @@ var Skin = {
$('.side__menu').click(function () {
$('.side__main').addClass('side__main--show').show()
})
$('.side__bg').click(function () {
$('.side__bg, .side__close').click(function () {
$('.side__main').removeClass('side__main--show')
setTimeout(function () {
$('.side__main').hide()
@ -99,6 +99,8 @@ var Skin = {
}, 1000)
}
}, false)
$(window).scroll()
},
initArticle: function () {
page.share()

View File

@ -44,57 +44,81 @@
<div class="side__main">
<div class="side__bg"></div>
<div class="side__panel">
<img src="${faviconURL}">
<a href="${servePath}/tags.html" rel="section">
${allTagsLabel}
</a>
&nbsp;•&nbsp;
<a href="${servePath}/archives.html">
${archiveLabel}
</a>
&nbsp;•&nbsp;
<a rel="archive" href="${servePath}/links.html">
${linkLabel}
</a>
<nav class="wrapper header__nav fn__clear">
<a href="${servePath}" rel="start">
<#if type == 'article'>
${blogTitle}
<#else>
${indexLabel}
</#if>
</a>
<svg class="side__close ft__a" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20"
viewBox="0 0 20 20">
<path d="M18.362 19.324c-0.902 0.902-2.363 0.902-3.263 0l-5.098-5.827-5.098 5.825c-0.902 0.902-2.363 0.902-3.263 0-0.902-0.902-0.902-2.363 0-3.263l5.304-6.057-5.306-6.061c-0.902-0.902-0.902-2.361 0-3.263s2.361-0.902 3.263 0l5.1 5.829 5.098-5.829c0.902-0.902 2.361-0.902 3.263 0s0.902 2.363 0 3.263l-5.304 6.061 5.304 6.057c0.902 0.902 0.902 2.363 0 3.265z"></path>
</svg>
<div class="side__header">
<a href="${servePath}" rel="start"><img class="side__logo" src="${faviconURL}"></a>
<div class="side__meta">
${statistic.statisticPublishedBlogArticleCount} ${articleLabel} <br>
${statistic.statisticPublishedBlogCommentCount} ${commentLabel} <br>
${statistic.statisticBlogViewCount} ${viewLabel} <br>
${onlineVisitorCnt} ${onlineVisitorLabel}
</div>
</div>
<div class="side__title">
<span>ღゝ◡╹)ノ❤️</span>
</div>
<ul class="side__nav">
<li>
<a href="${servePath}" rel="start">
<#if type == 'article'>
${blogTitle}
<#else>
${indexLabel}
</#if>
</a>
</li>
<#list pageNavigations as page>
<a class="fn__flex-inline" href="${page.pagePermalink}" target="${page.pageOpenTarget}" rel="section">
<#if page.pageIcon != ''><img src="${page.pageIcon}"></#if> ${page.pageTitle}
</a>
<li>
<a href="${page.pagePermalink}" target="${page.pageOpenTarget}"><#if page.pageIcon != ''><img
class="page-icon" src="${page.pageIcon}"></#if>${page.pageTitle}</a>
</li>
</#list>
<a href="${servePath}/search">
${searchLabel}
</a>
<div class="fn__right">
<a rel="alternate" href="${servePath}/rss.xml">
RSS
</a>
<#if isLoggedIn>
<li>
<a href="${servePath}/dynamic.html">${dynamicLabel}</a>
</li>
<li>
<a href="${servePath}/category.html">${categoryLabel}</a>
</li>
<li>
<a href="${servePath}/tags.html">${allTagsLabel}</a>
</li>
<li>
<a href="${servePath}/archives.html">${archiveLabel}</a>
</li>
<li>
<a href="${servePath}/links.html">${linkLabel}</a>
</li>
<li>
<a rel="alternate" href="${servePath}/rss.xml">RSS</a>
</li>
<li>
<a href="${servePath}/search?keyword=">Search</a>
</li>
<#if isLoggedIn>
<li>
<a href="${servePath}/admin-index.do#main">
${adminLabel}
</a>
</li>
<li>
<a href="${logoutURL}">
${logoutLabel}
</a>
<#else>
</li>
<#else>
<li>
<a rel="alternate" href="${servePath}/start">
${startToUseLabel}
</a>
</#if>
</div>
</nav>
</li>
</#if>
</ul>
</div>
</div>
</#macro>