This commit is contained in:
Van 2019-03-22 19:25:36 +08:00
parent 60a8e6df33
commit b2fe147b13
No known key found for this signature in database
GPG Key ID: 7059B8783A78F16C
8 changed files with 472 additions and 260 deletions

71
tree-house/archives.ftl Normal file
View File

@ -0,0 +1,71 @@
<#--
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 "../../common-template/macro-common_head.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${archiveLabel} - ${blogTitle}">
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
</@head>
</head>
<body>
<div class="wrapper">
<div class="bg-bottom">
${topBarReplacement}
<div class="content">
<div class="header">
<#include "header.ftl">
</div>
<div class="body">
<div class="left main">
<#if 0 != archiveDates?size>
<ul class="tags fn__clear">
<#list archiveDates as archiveDate>
<li>
<#if "en" == localeString?substring(0, 2)>
<a class="post-title" href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
${archiveDate.monthName} ${archiveDate.archiveDateYear}(${archiveDate.archiveDatePublishedArticleCount})
</a>
<#else>
<a class="post-title" href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}">
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}(${archiveDate.archiveDatePublishedArticleCount})
</a>
</#if>
</li>
</#list>
</ul>
</#if>
</div>
<div class="left side">
<#include "side.ftl">
</div>
<div class="clear"></div>
</div>
<div class="footer">
<#include "footer.ftl">
</div>
</div>
</div>
</div>
<script type="text/javascript">
Util.buildTags();
</script>
</body>
</html>

View File

@ -39,9 +39,9 @@
<div class="left article-info"> <div class="left article-info">
<div class="article-date"> <div class="article-date">
<#if article.hasUpdated> <#if article.hasUpdated>
${article.articleUpdateDate?string("yyyy-MM-dd HH:mm:ss")} ${article.articleUpdateDate?string("yyyy-MM-dd")}<br>${article.articleUpdateDate?string("HH:mm:ss")}
<#else> <#else>
${article.articleCreateDate?string("yyyy-MM-dd HH:mm:ss")} ${article.articleCreateDate?string("yyyy-MM-dd")}<br>${article.articleCreateDate?string("HH:mm:ss")}
</#if> </#if>
</div> </div>
<div class="article-comment"> <div class="article-comment">
@ -62,7 +62,9 @@
</div> </div>
<div class="clear"></div> <div class="clear"></div>
</div> </div>
<#if article_has_next>
<div class="line right"></div> <div class="line right"></div>
</#if>
<div class="clear"></div> <div class="clear"></div>
</#list> </#list>
<#if 0 != paginationPageCount> <#if 0 != paginationPageCount>

View File

@ -99,12 +99,10 @@
${article.articleCreateDate?string("yyyy-MM-dd HH:mm:ss")}&nbsp;&nbsp; ${article.articleCreateDate?string("yyyy-MM-dd HH:mm:ss")}&nbsp;&nbsp;
</span> </span>
<a rel="nofollow" href="${servePath}${article.articlePermalink}#comments" class="left"> <a rel="nofollow" href="${servePath}${article.articlePermalink}#comments" class="left">
<span class="left commentIcon" title="${commentLabel}"></span> &nbsp;${article.articleCommentCount} ${commentLabel}&nbsp;&nbsp;
&nbsp;${article.articleCommentCount}&nbsp;&nbsp;
</a> </a>
<a rel="nofollow" href="${servePath}${article.articlePermalink}" class="left"> <a rel="nofollow" href="${servePath}${article.articlePermalink}" class="left">
<span class="left browserIcon" title="${viewLabel}"></span> &nbsp;&nbsp;${article.articleViewCount} ${viewLabel}&nbsp;&nbsp;
&nbsp;&nbsp;${article.articleViewCount}&nbsp;&nbsp;
</a> </a>
</div> </div>
<div class="clear"></div> <div class="clear"></div>

File diff suppressed because one or more lines are too long

View File

@ -20,11 +20,37 @@
* skin tree-house style * skin tree-house style
* *
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a> * @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 2.1.0.1, Mar 16, 2019 * @version 2.2.0.0, Mar 22, 2019
*/ */
@import "../../../scss/reset"; @import "../../../scss/reset";
@import "../../../scss/toc";
@import "../../../scss/usite";
@import "../../../scss/function";
@import "vditor/src/assets/scss/classic"; @import "vditor/src/assets/scss/classic";
.user__site {
margin-left: 5px;
}
.tags li {
float: left;
list-style: none;
a {
line-height: 19px;
padding: 5px 10px 4px 23px;
margin: 0 10px 10px 0;
background-color: rgba(255, 255, 255, 0.39);
display: block;
&:hover {
background: url(../images/bg-menu-active.png) repeat scroll -8px -8px transparent;
text-decoration: none;
color: #EC0A8B;
}
}
}
.left { .left {
float: left; float: left;
} }
@ -42,27 +68,42 @@
.clear:after { .clear:after {
clear: both; clear: both;
} }
.none { .none {
display: none; display: none;
} }
.marginLeft12 {
margin-left: 12px;
}
.marginBottom12 {
margin-bottom: 12px;
}
html { html {
min-width: 948px; min-width: 948px;
} }
body { body {
background: url("../images/bg-tree.jpg") repeat-y scroll 50% 0 #7BCCFF; background: url("../images/bg-tree.jpg") repeat-y scroll 50% 0 #7BCCFF;
color: #42423D; color: #42423D;
min-width: 948px; min-width: 948px;
} }
a, a:link, a:visited { a, a:link, a:visited {
color: #FFFFFF; color: #FFFFFF;
text-decoration: none; text-decoration: none;
} }
a:hover { a:hover {
text-decoration: underline; text-decoration: underline;
} }
h5 { h5 {
font-size: 12px; font-size: 12px;
} }
img { img {
max-width: 100%; max-width: 100%;
vertical-align: middle; vertical-align: middle;
@ -72,28 +113,35 @@ img {
overflow: hidden; overflow: hidden;
font-size: 12px; font-size: 12px;
} }
.wrapper { .wrapper {
background: url("../images/bg-header.jpg") no-repeat scroll 50% 0 transparent; background: url("../images/bg-header.jpg") no-repeat scroll 50% 0 transparent;
} }
.bg-bottom { .bg-bottom {
background: url("../images/bg-footer2.jpg") no-repeat scroll 50% 100% transparent; background: url("../images/bg-footer2.jpg") no-repeat scroll 50% 100% transparent;
} }
.content { .content {
margin: 0 auto; margin: 0 auto;
width: 948px; width: 948px;
} }
.header { .header {
height: 476px; height: 476px;
width: 100%; width: 100%;
} }
.header-navi { .header-navi {
position: relative; position: relative;
z-index: 10; z-index: 10;
} }
.header-navi ul { .header-navi ul {
list-style: none outside none; list-style: none outside none;
margin-top: 20px; margin-top: 20px;
} }
.header-navi li { .header-navi li {
float: left; float: left;
} }
@ -111,67 +159,82 @@ img {
padding-top: 222px; padding-top: 222px;
position: relative; position: relative;
} }
#logoTitle { #logoTitle {
color: #FFFFFF; color: #FFFFFF;
font-size: 52px; font-size: 52px;
text-decoration: none; text-decoration: none;
} }
.header-title div { .header-title div {
color: DimGray; color: DimGray;
width: 300px; width: 320px;
} }
.side { .side {
margin: 0 0 0 -21px; margin: 0 0 0 -21px;
width: 256px; width: 256px;
} }
.body { .body {
min-height: 643px; min-height: 643px;
padding-bottom: 682px; padding-bottom: 682px;
} }
.main { .main {
width: 634px; width: 634px;
} }
.footer { .footer {
color: Lavender; color: Lavender;
padding: 12px; padding: 12px;
text-align: center; text-align: center;
} }
.footer a { .footer a {
font-weight: bold; font-weight: bold;
} }
.article { .article {
overflow: hidden; overflow: hidden;
width: 553px; width: 553px;
} }
.article-header sup { .article-header sup {
color: red; color: red;
font-size: 12px; font-size: 12px;
} }
.article-header h2 { .article-header h2 {
color: #242323; color: #242323;
font-weight: bold; font-weight: bold;
margin-left: 6px; margin-left: 6px;
position: relative; position: relative;
} }
.article-header h2 a { .article-header h2 a {
color: #242323; color: #242323;
display: block; display: block;
padding: 3px 0 4px 10px; padding: 3px 0 4px 10px;
text-decoration: none; text-decoration: none;
} }
.article-header h2 a:hover { .article-header h2 a:hover {
background-color: #242323; background-color: #242323;
color: #EC0A8B; color: #EC0A8B;
} }
.article-info { .article-info {
margin: 10px 0 0 9px; margin: 10px 0 0 9px;
width: 109px; width: 109px;
} }
.article-main { .article-main {
margin: 10px 0 0 9px; margin: 10px 0 0 9px;
min-height: 150px; min-height: 150px;
width: 426px; width: 426px;
} }
.article-tags { .article-tags {
background-color: #EC0A8B; background-color: #EC0A8B;
float: left; float: left;
@ -181,6 +244,7 @@ img {
margin: 0 10px 10px 0; margin: 0 10px 10px 0;
padding: 3px 10px; padding: 3px 10px;
} }
.article-abstract { .article-abstract {
color: #42423D; color: #42423D;
line-height: 145%; line-height: 145%;
@ -189,35 +253,41 @@ img {
text-align: justify; text-align: justify;
word-wrap: break-word; word-wrap: break-word;
} }
.main .line { .main .line {
background: url("../images/bg-branch.png") no-repeat scroll 0 0 transparent; background: url("../images/bg-branch.png") no-repeat scroll 0 0 transparent;
height: 108px; height: 108px;
width: 575px; width: 575px;
} }
.article-date { .article-date {
background-color: #D4F2FB; background-color: #D4F2FB;
border: 6px solid #A8D3ED; border: 6px solid #A8D3ED;
border-radius: 5px; border-radius: 5px;
margin-left: 16px; margin-left: 6px;
padding: 6px; padding: 6px;
width: 65px; width: 74px;
} }
.article-comment { .article-comment {
background: url("../images/bg-comments.png") no-repeat scroll 0 0 transparent; background: url("../images/bg-comments.png") no-repeat scroll 0 0 transparent;
font-size: 12px; font-size: 12px;
height: 22px; height: 22px;
margin: 24px 0 0; margin: 24px 0 0;
padding: 29px 0 0; padding: 27px 0 0;
text-align: center; text-align: center;
} }
.article-comment a { .article-comment a {
color: #42423D; color: #42423D;
} }
.main h2.title { .main h2.title {
color: #FF9000; color: #FF9000;
margin: -34px 0 12px; margin: -34px 0 12px;
text-align: center; text-align: center;
} }
.main h2 span { .main h2 span {
color: DimGray; color: DimGray;
float: right; float: right;
@ -225,19 +295,24 @@ img {
margin-top: 7px; margin-top: 7px;
padding-right: 10px; padding-right: 10px;
} }
.vditor-reset { .vditor-reset {
margin: 0 12px 12px; margin: 0 12px 12px;
} }
.vditor-reset a, .article-abstract a { .vditor-reset a, .article-abstract a {
color: #242323; color: #242323;
text-decoration: underline; text-decoration: underline;
} }
.article-footer { .article-footer {
margin-right: 12px; margin-right: 12px;
} }
.article-details-footer a { .article-details-footer a {
line-height: 16px; line-height: 16px;
} }
.article-details-footer { .article-details-footer {
margin: 36px 12px 0 0; margin: 36px 12px 0 0;
} }
@ -250,10 +325,12 @@ img {
line-height: 145%; line-height: 145%;
margin: 12px 0; margin: 12px 0;
} }
.comments { .comments {
padding-left: 99px; padding-left: 99px;
position: relative; position: relative;
} }
.comments-header { .comments-header {
background: url("../images/balloons.png") no-repeat scroll 0 0 transparent; background: url("../images/balloons.png") no-repeat scroll 0 0 transparent;
height: 88px; height: 88px;
@ -263,10 +340,12 @@ img {
width: 440px; width: 440px;
z-index: 10; z-index: 10;
} }
.comment-top { .comment-top {
background: url("../images/bg-comments-top.png") no-repeat scroll 0 0 transparent; background: url("../images/bg-comments-top.png") no-repeat scroll 0 0 transparent;
height: 22px; height: 22px;
} }
.comment-body { .comment-body {
background: url("../images/bg-comments-body.png") repeat-y scroll 0 0 transparent; background: url("../images/bg-comments-body.png") repeat-y scroll 0 0 transparent;
color: #42423D; color: #42423D;
@ -276,23 +355,29 @@ img {
width: 401px; width: 401px;
word-wrap: break-word; word-wrap: break-word;
} }
.comment-body a { .comment-body a {
color: #42423D; color: #42423D;
} }
.comment-body td { .comment-body td {
white-space: normal; white-space: normal;
} }
.comment-bottom { .comment-bottom {
background: url("../images/bg-comments-bottom.png") no-repeat scroll 0 0 transparent; background: url("../images/bg-comments-bottom.png") no-repeat scroll 0 0 transparent;
height: 23px; height: 23px;
} }
.comment-title { .comment-title {
padding-bottom: 6px; padding-bottom: 6px;
} }
.comment-title a { .comment-title a {
color: #42423D; color: #42423D;
font-weight: bold; font-weight: bold;
} }
.comment-body-ref { .comment-body-ref {
left: 182px; left: 182px;
opacity: 0.9; opacity: 0.9;
@ -300,66 +385,82 @@ img {
top: 16px; top: 16px;
z-index: 16; z-index: 16;
} }
img.comment-picture { img.comment-picture {
height: 60px; height: 60px;
padding: 0px 6px 4px 0; padding: 0px 6px 4px 0;
width: 60px; width: 60px;
} }
.comment-reply { .comment-reply {
margin: 0 auto 24px auto; margin: 0 auto 24px auto;
} }
#commentURL:focus, #commentURLReply:focus { #commentURL:focus, #commentURLReply:focus {
box-shadow: -3px 1px 2px rgba(0, 0, 0, 0.3) inset; box-shadow: -3px 1px 2px rgba(0, 0, 0, 0.3) inset;
} }
#comment, #commentReply { #comment, #commentReply {
resize: vertical; resize: vertical;
} }
.error-msg { .error-msg {
color: #EC0A8B; color: #EC0A8B;
font-weight: bold; font-weight: bold;
white-space: normal; white-space: normal;
} }
#sideNavi .line { #sideNavi .line {
background: url("../images/bg-branch-small.png") no-repeat; background: url("../images/bg-branch-small.png") no-repeat;
height: 69px; height: 69px;
margin-top: 12px; margin-top: 12px;
} }
#sideNavi .block { #sideNavi .block {
margin-left: 64px; margin-left: 64px;
} }
#sideNavi h3 { #sideNavi h3 {
background: url("../images/bg-heading.png") no-repeat scroll 0 0 transparent; background: url("../images/bg-heading.png") no-repeat scroll 0 0 transparent;
color: #EC0A8B; color: #EC0A8B;
font-size: 15px; font-size: 15px;
height: 30px; height: 30px;
padding: 38px 0 0 12px; padding: 36px 12px 0 12px;
} }
#sideNavi .notice h3 { #sideNavi .notice h3 {
background-image: url("../images/bg-heading-about-us.png"); background-image: url("../images/bg-heading-about-us.png");
} }
#sideNavi #recentComments img { #sideNavi #recentComments img {
height: 16px; height: 16px;
vertical-align: middle; vertical-align: middle;
width: 16px; width: 16px;
} }
#sideNavi #recentCommentsLabel { #sideNavi #recentCommentsLabel {
background-image: url("../images/bg-heading-portfolio.png"); background-image: url("../images/bg-heading-portfolio.png");
} }
#sideNavi .mostCommentArticles h3 { #sideNavi .mostCommentArticles h3 {
background-image: url("../images/bg-heading-categories.png"); background-image: url("../images/bg-heading-categories.png");
} }
#sideNavi .mostViewCountArticles h3 { #sideNavi .mostViewCountArticles h3 {
background-image: url("../images/bg-heading-resources.png"); background-image: url("../images/bg-heading-resources.png");
margin-bottom: 6px; margin-bottom: 6px;
} }
#sideNavi .notice > div { #sideNavi .notice > div {
margin: 12px 12px 12px 17px; margin: 12px 12px 12px 17px;
} }
#sideNavi ul { #sideNavi ul {
margin-left: 5px; margin-left: 5px;
width: 182px; width: 182px;
list-style: none; list-style: none;
} }
#sideNavi li { #sideNavi li {
border-bottom: 1px dotted #FFFFFF; border-bottom: 1px dotted #FFFFFF;
font-size: 12px; font-size: 12px;
@ -369,7 +470,9 @@ img.comment-picture {
text-overflow: ellipsis; text-overflow: ellipsis;
-o-text-overflow: ellipsis; -o-text-overflow: ellipsis;
vertical-align: top; vertical-align: top;
height: 29px;
} }
#sideNavi li:hover { #sideNavi li:hover {
background: url("../images/bg-menu-active.png") repeat scroll -8px -8px transparent; background: url("../images/bg-menu-active.png") repeat scroll -8px -8px transparent;
color: #EC0A8B; color: #EC0A8B;
@ -397,16 +500,20 @@ img.comment-picture {
line-height: 12px; line-height: 12px;
color: #EC0A8B; color: #EC0A8B;
} }
#sideNavi li > div { #sideNavi li > div {
display: none; display: none;
} }
#sideNavi li p { #sideNavi li p {
display: inline; display: inline;
} }
#sideNavi .popTags li > a { #sideNavi .popTags li > a {
padding-left: 40px; padding-left: 40px;
width: 143px; width: 143px;
} }
#sideNavi .popTags li img { #sideNavi .popTags li img {
cursor: pointer; cursor: pointer;
height: 16px; height: 16px;
@ -415,6 +522,7 @@ img.comment-picture {
top: 7px; top: 7px;
width: 16px; width: 16px;
} }
#sideNavi .popTags li:hover a { #sideNavi .popTags li:hover a {
padding-left: 46px; padding-left: 46px;
width: 137px; width: 137px;
@ -423,25 +531,31 @@ img.comment-picture {
#sideNavi .popTags li:hover img { #sideNavi .popTags li:hover img {
left: 25px; left: 25px;
} }
#statistic { #statistic {
height: 138px; height: 138px;
line-height: 24px; line-height: 24px;
margin: 28px 0 0 80px; margin: 28px 0 0 80px;
} }
.pagination { .pagination {
margin: 16px; margin: 16px;
text-align: center; text-align: center;
} }
.pagination a, .pagination a:visited { .pagination a, .pagination a:visited {
padding: 0 3px; padding: 0 3px;
} }
.pagination a.selected { .pagination a.selected {
color: #42423D; color: #42423D;
font-weight: bold; font-weight: bold;
} }
#tagsPanel { #tagsPanel {
width: 553px; width: 553px;
} }
#tagsPanel .tagPanel { #tagsPanel .tagPanel {
background-color: #EEEEEE; background-color: #EEEEEE;
border: 2px solid; border: 2px solid;
@ -450,19 +564,24 @@ img.comment-picture {
float: left; float: left;
margin: 3px; margin: 3px;
} }
#tagsPanel .tagPanel:hover { #tagsPanel .tagPanel:hover {
background-color: transparent; background-color: transparent;
border: 2px dashed; border: 2px dashed;
} }
#tagsPanel .tagPanel { #tagsPanel .tagPanel {
text-decoration: none; text-decoration: none;
} }
.error-title { .error-title {
width: 553px; width: 553px;
} }
.error-panel { .error-panel {
padding: 24px; padding: 24px;
} }
.error-title { .error-title {
background-color: #242323; background-color: #242323;
color: #EC0A8B; color: #EC0A8B;
@ -470,9 +589,11 @@ img.comment-picture {
padding: 3px 10px 4px 10px; padding: 3px 10px 4px 10px;
position: relative; position: relative;
} }
.goTopIcon { .goTopIcon {
background-position: -128px -32px; background-position: -128px -32px;
} }
.goBottomIcon { .goBottomIcon {
background-position: -144px -32px; background-position: -144px -32px;
} }

View File

@ -30,7 +30,9 @@
<a href="${servePath}/tags.html">${allTagsLabel}</a>&nbsp;&nbsp; <a href="${servePath}/tags.html">${allTagsLabel}</a>&nbsp;&nbsp;
</li> </li>
<li> <li>
<a rel="alternate" href="${servePath}/rss.xml">RSS</a><a href="${servePath}/rss.xml"><img src="${staticServePath}/images/feed.png" alt="RSS"/></a> &nbsp; <a rel="alternate" href="${servePath}/rss.xml">
<img class="page-icon" src="${staticServePath}/images/feed.png" alt="RSS"/>RSS</a>
</a> &nbsp;&nbsp;
</li> </li>
<li> <li>
<a href="${servePath}/search?keyword=">Search</a> <a href="${servePath}/search?keyword=">Search</a>
@ -44,4 +46,9 @@
</a> </a>
</h1> </h1>
<div>${blogSubtitle}</div> <div>${blogSubtitle}</div>
<#include "../../common-template/macro-user_site.ftl"/>
<div>
<br>
<@userSite dir="ne"/>
</div>
</div> </div>

View File

@ -45,6 +45,16 @@
</div> </div>
<div class="line"></div> <div class="line"></div>
</#if> </#if>
<#if article?? && article.articleToC?? && article.articleToC?size &gt; 0>
<div class="block">
<h3>${tocLabel}</h3>
<#include "../../common-template/toc.ftl"/>
</div>
<div class="line"></div>
</#if>
<#if 0 != recentComments?size> <#if 0 != recentComments?size>
<div class="block"> <div class="block">
<h3 id="recentCommentsLabel">${recentCommentsLabel}</h3> <h3 id="recentCommentsLabel">${recentCommentsLabel}</h3>
@ -147,7 +157,10 @@
</#if> </#if>
<#if 0 != archiveDates?size> <#if 0 != archiveDates?size>
<div class="block"> <div class="block">
<h3>${archiveLabel}</h3> <h3 class="fn__clear">
${archiveLabel}
<a class="fn__right" href="${servePath}/archives.html">More</a>
</h3>
<ul> <ul>
<#list archiveDates as archiveDate> <#list archiveDates as archiveDate>
<#if archiveDate_index < 10> <#if archiveDate_index < 10>

View File

@ -35,7 +35,7 @@
</div> </div>
<div class="body"> <div class="body">
<div class="left main"> <div class="left main">
<ul id="tags"> <ul id="tags" class="tags fn__clear">
<#list tags as tag> <#list tags as tag>
<li> <li>
<a rel="tag" data-count="${tag.tagPublishedRefCount}" href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}" title="${tag.tagTitle}"> <a rel="tag" data-count="${tag.tagPublishedRefCount}" href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}" title="${tag.tagTitle}">