增加bolo-NeoEase
This commit is contained in:
parent
119ca3684c
commit
ecc0facf66
@ -4,5 +4,6 @@
|
||||
|
||||
皮肤样例:
|
||||
- [bolo-fantastic](https://www.zeekling.cn/?skin=bolo-fantastic-mod)
|
||||
- [bolo-NeoEase](https://www.zeekling.cn/?skin=bolo-NeoEase-mod)
|
||||
|
||||
个人站点:[小令童鞋](https://www.zeekling.cn/)
|
||||
|
49
bolo-NeoEase/archive-articles.ftl
Normal file
49
bolo-NeoEase/archive-articles.ftl
Normal file
@ -0,0 +1,49 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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="${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} ${archiveLabel} - ${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
${topBarReplacement}
|
||||
<#include "header.ftl">
|
||||
<div class="body">
|
||||
<div class="wrapper">
|
||||
<div class="main">
|
||||
<h2>${archive1Label}
|
||||
<#if "en" == localeString?substring(0, 2)>
|
||||
${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} (${archiveDate.archiveDatePublishedArticleCount})
|
||||
<#else>
|
||||
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} (${archiveDate.archiveDatePublishedArticleCount})
|
||||
</#if>
|
||||
</h2>
|
||||
<#include "article-list.ftl">
|
||||
</div>
|
||||
<#include "side.ftl">
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
106
bolo-NeoEase/article-list.ftl
Normal file
106
bolo-NeoEase/article-list.ftl
Normal file
@ -0,0 +1,106 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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/>.
|
||||
|
||||
-->
|
||||
<#list articles as article>
|
||||
<div class="article">
|
||||
<h2>
|
||||
<span class="left">
|
||||
<a rel="bookmark" class="article-title" href="${servePath}${article.articlePermalink}">
|
||||
${article.articleTitle}
|
||||
</a>
|
||||
<#if article.articlePutTop>
|
||||
<sup class="tip">
|
||||
${topArticleLabel}
|
||||
</sup>
|
||||
</#if>
|
||||
<#if article.hasUpdated>
|
||||
<sup>
|
||||
<a class="tip tip__sup" href="${servePath}${article.articlePermalink}">
|
||||
${updatedLabel}
|
||||
</a>
|
||||
</sup>
|
||||
</#if>
|
||||
</span>
|
||||
<span class="expand-ico" onclick="getArticle(this, '${article.oId}');"></span>
|
||||
<span class="clear"></span>
|
||||
</h2>
|
||||
<div class="left article-element">
|
||||
<span class="date-ico" title="${dateLabel}">
|
||||
<#if article.hasUpdated>
|
||||
${article.articleUpdateDate?string("yyyy-MM-dd HH:mm:ss")}
|
||||
<#else>
|
||||
${article.articleUpdateDate?string("yyyy-MM-dd HH:mm:ss")}
|
||||
</#if>
|
||||
</span>
|
||||
<span class="user-ico" title="${authorLabel}">
|
||||
<a rel="nofollow" href="${servePath}/authors/${article.authorId}">${article.authorName}</a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="right article-element">
|
||||
<#if interactive == "on">
|
||||
<a rel="nofollow" href="${servePath}${article.articlePermalink}#comments">
|
||||
${article.articleCommentCount} ${commentLabel}
|
||||
</a>
|
||||
</#if>
|
||||
<a rel="nofollow" href="${servePath}${article.articlePermalink}">
|
||||
${article.articleViewCount} ${viewLabel}
|
||||
</a>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<div class="vditor-reset">
|
||||
<div id="abstract${article.oId}">
|
||||
${article.articleAbstract}
|
||||
</div>
|
||||
<div id="content${article.oId}" class="none"></div>
|
||||
</div>
|
||||
<div class="article-element">
|
||||
<span class="tag-ico" title="${tagsLabel}">
|
||||
<#if article.articleCategory != "">
|
||||
<span>
|
||||
<a rel="tag" href="${servePath}/category/${article.categoryURI}">分类:${article.articleCategory}</a>
|
||||
</span>
|
||||
</#if>
|
||||
<#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>
|
||||
</div>
|
||||
</div>
|
||||
</#list>
|
||||
<#if 0 != paginationPageCount>
|
||||
<div class="pagination">
|
||||
<#if 1 != paginationPageNums?first>
|
||||
<a href="${servePath}${path}" title="${firstPageLabel}"><<</a>
|
||||
<a href="${servePath}${path}?p=${paginationPreviousPageNum}" title="${previousPageLabel}"><</a>
|
||||
</#if>
|
||||
<#list paginationPageNums as paginationPageNum>
|
||||
<#if paginationPageNum == paginationCurrentPageNum>
|
||||
<a href="${servePath}${path}?p=${paginationPageNum}" class="current">${paginationPageNum}</a>
|
||||
<#else>
|
||||
<a href="${servePath}${path}?p=${paginationPageNum}">${paginationPageNum}</a>
|
||||
</#if>
|
||||
</#list>
|
||||
<#if paginationPageNums?last != paginationPageCount>
|
||||
<a href="${servePath}${path}?p=${paginationNextPageNum}" title="${nextPagePabel}">></a>
|
||||
<a href="${servePath}${path}?p=${paginationPageCount}" title="${lastPageLabel}">>></a>
|
||||
</#if>
|
||||
${sumLabel} ${paginationPageCount} ${pageLabel}
|
||||
</div>
|
||||
</#if>
|
134
bolo-NeoEase/article.ftl
Normal file
134
bolo-NeoEase/article.ftl
Normal file
@ -0,0 +1,134 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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">
|
||||
<#include "macro-comments.ftl">
|
||||
<#include "../../common-template/macro-comment_script.ftl">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<@head title="${article.articleTitle} - ${blogTitle}" description="${article.articleAbstract?html}">
|
||||
<link rel="stylesheet"
|
||||
href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
<#if previousArticlePermalink??>
|
||||
<link rel="prev" title="${previousArticleTitle}" href="${servePath}${previousArticlePermalink}">
|
||||
</#if>
|
||||
<#if nextArticlePermalink??>
|
||||
<link rel="next" title="${nextArticleTitle}" href="${servePath}${nextArticlePermalink}">
|
||||
</#if>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
${topBarReplacement}
|
||||
<#include "header.ftl">
|
||||
<div class="body">
|
||||
<div class="wrapper">
|
||||
<div class="main">
|
||||
<div class="page">
|
||||
<h2>
|
||||
<a class="article-title" href="${servePath}${article.articlePermalink}">
|
||||
${article.articleTitle}
|
||||
</a>
|
||||
<#if article.articlePutTop>
|
||||
<sup class="tip">
|
||||
${topArticleLabel}
|
||||
</sup>
|
||||
</#if>
|
||||
</h2>
|
||||
<div class="left article-element">
|
||||
<span class="date-ico" title="${dateLabel}">
|
||||
${article.articleUpdateDate?string("yyyy-MM-dd HH:mm:ss")}
|
||||
</span>
|
||||
<span class="user-ico" title="${authorLabel}">
|
||||
<a rel="nofollow" href="${servePath}/authors/${article.authorId}">${article.authorName}</a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="right article-element">
|
||||
<#if interactive == "on">
|
||||
<a rel="nofollow" href="${servePath}${article.articlePermalink}#comments">
|
||||
${article.articleCommentCount} ${commentLabel}
|
||||
</a>
|
||||
</#if>
|
||||
<a rel="nofollow" href="${servePath}${article.articlePermalink}">
|
||||
${article.articleViewCount} ${viewLabel}
|
||||
</a>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<div class="vditor-reset vditor-reset--article">
|
||||
${article.articleContent}
|
||||
<#if "" != article.articleSign.signHTML?trim>
|
||||
<div>
|
||||
${article.articleSign.signHTML}
|
||||
</div>
|
||||
</#if>
|
||||
</div>
|
||||
<script>
|
||||
var loggedIn = ${article.logged};
|
||||
</script>
|
||||
<div class="article-element article-element--article">
|
||||
<span class="tag-ico" title="${tagsLabel}">
|
||||
<#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>
|
||||
</div>
|
||||
<div class="article-panel1">
|
||||
<#if nextArticlePermalink??>
|
||||
<div class="left">
|
||||
<a href="${servePath}${nextArticlePermalink}">${nextArticle1Label}${nextArticleTitle}</a>
|
||||
</div>
|
||||
</#if>
|
||||
<#if previousArticlePermalink??>
|
||||
<div class="right">
|
||||
<a href="${servePath}${previousArticlePermalink}">${previousArticle1Label}${previousArticleTitle}</a>
|
||||
</div>
|
||||
</#if>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div class="article-panel2">
|
||||
<div id="relevantArticles" class="left" style="width: 50%;"></div>
|
||||
<div id="randomArticles" class="left"></div>
|
||||
<div class="clear" style="height: 15px;"></div>
|
||||
<div id="externalRelevantArticles"></div>
|
||||
</div>
|
||||
</div>
|
||||
<#if interactive == "on">
|
||||
<@comments commentList=articleComments article=article></@comments>
|
||||
</#if>
|
||||
<#include "side.ftl">
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
<@comment_script oId=article.oId commentable=article.commentable>
|
||||
page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}";
|
||||
<#if 0 != randomArticlesDisplayCount>
|
||||
page.loadRandomArticles();
|
||||
</#if>
|
||||
<#if 0 != relevantArticlesDisplayCount>
|
||||
page.loadRelevantArticles('${article.oId}', '<h4>${relevantArticlesLabel}</h4>');
|
||||
</#if>
|
||||
<#if 0 != externalRelevantArticlesDisplayCount>
|
||||
page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,</#if></#list>");
|
||||
</#if>
|
||||
</@comment_script>
|
||||
</body>
|
||||
</html>
|
43
bolo-NeoEase/author-articles.ftl
Normal file
43
bolo-NeoEase/author-articles.ftl
Normal file
@ -0,0 +1,43 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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="${authorName} - ${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
${topBarReplacement}
|
||||
<#include "header.ftl">
|
||||
<div class="body">
|
||||
<div class="wrapper">
|
||||
<div class="main">
|
||||
<h2>${author1Label}${authorName}</h2>
|
||||
<#include "article-list.ftl">
|
||||
</div>
|
||||
<#include "side.ftl">
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
47
bolo-NeoEase/category-articles.ftl
Normal file
47
bolo-NeoEase/category-articles.ftl
Normal file
@ -0,0 +1,47 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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="${category.categoryTitle} - ${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
${topBarReplacement}
|
||||
<#include "header.ftl">
|
||||
<div class="body">
|
||||
<div class="wrapper">
|
||||
<div class="main">
|
||||
<h2>
|
||||
${categoryLabel}:
|
||||
${category.categoryTitle}
|
||||
(${category.categoryTagCnt})<small> ${category.categoryDescription}</small>
|
||||
</h2>
|
||||
<#include "article-list.ftl">
|
||||
</div>
|
||||
<#include "side.ftl">
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
45
bolo-NeoEase/common-comment.ftl
Normal file
45
bolo-NeoEase/common-comment.ftl
Normal file
@ -0,0 +1,45 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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 id="${comment.oId}">
|
||||
<div class="comment-panel">
|
||||
<div class="left">
|
||||
<#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}', 20);"
|
||||
onmouseout="page.hideComment('${comment.commentOriginalCommentId}')">${comment.commentOriginalCommentName}</a>
|
||||
</#if>
|
||||
</div>
|
||||
<#if article.commentable>
|
||||
<div class="right">
|
||||
<a rel="nofollow" href="javascript:page.toggleEditor('${comment.oId}', '${comment.commentName}');">${replyLabel}</a>
|
||||
|
|
||||
${comment.commentDate2?string("yyyy-MM-dd HH:mm:ss")}
|
||||
</div>
|
||||
</#if>
|
||||
<span class="clear"></span>
|
||||
<div class="vditor-reset">${comment.commentContent}</div>
|
||||
</div>
|
||||
<span class="clear"></span>
|
||||
</div>
|
1
bolo-NeoEase/css/base.css
Normal file
1
bolo-NeoEase/css/base.css
Normal file
File diff suppressed because one or more lines are too long
866
bolo-NeoEase/css/base.scss
Normal file
866
bolo-NeoEase/css/base.scss
Normal file
@ -0,0 +1,866 @@
|
||||
/*
|
||||
* Bolo - A stable and beautiful blogging system based in Solo.
|
||||
* Copyright (c) 2020, https://github.com/adlered
|
||||
*
|
||||
* 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 neoease style
|
||||
*
|
||||
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
|
||||
* @version 2.3.0.0, Aug 2, 2019
|
||||
*/
|
||||
@import "../../../scss/toc";
|
||||
@import "../../../scss/usite";
|
||||
@import "vditor/src/assets/scss/index";
|
||||
|
||||
.user__site {
|
||||
display: inline-block;
|
||||
margin-right: 15px;
|
||||
|
||||
svg {
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
fill: currentColor;
|
||||
}
|
||||
}
|
||||
|
||||
/* start base */
|
||||
html, body, div, ul, li, h1, h2, h3, h4, h5, h6 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background-color: #ccc;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
background-color: #ccc;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Lucida Grande", "Verdana", "\5fae\8f6f\96c5\9ed1";
|
||||
font-size: 12px;
|
||||
background-color: #F9F9F9;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
a:link {
|
||||
outline: none;
|
||||
color: #21759B;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #555777;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #D54E21;
|
||||
}
|
||||
|
||||
a:active {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
vertical-align: middle;
|
||||
border: 0;
|
||||
height: auto;
|
||||
-ms-interpolation-mode: bicubic
|
||||
}
|
||||
|
||||
textarea, input {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.clear {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
clear: both;
|
||||
display: block;
|
||||
font-size: 0;
|
||||
height: 0;
|
||||
line-height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.none {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.logo {
|
||||
padding: 0 5px;
|
||||
text-shadow: 0 0 1px #EEE;
|
||||
}
|
||||
|
||||
.tip {
|
||||
color: #D54E21;
|
||||
font-size: 11px;
|
||||
|
||||
&__sup {
|
||||
cursor: text;
|
||||
&:link {
|
||||
color: #D54E21;
|
||||
}
|
||||
&:hover {
|
||||
color: #D54E21;
|
||||
}
|
||||
&:visited {
|
||||
color: #F9F9F9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.em-span {
|
||||
line-height: 24px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.em-br {
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
/* end base */
|
||||
|
||||
/* start ico */
|
||||
.date-ico, .tag-ico, .user-ico, .expand-ico, .collapse-ico, #search,
|
||||
.translate-ico, .feed-ico {
|
||||
background-image: url("../../bolo-NeoEase/images/icons.png");
|
||||
}
|
||||
|
||||
.feed-ico {
|
||||
background-position: right -146px;
|
||||
background-repeat: no-repeat;
|
||||
color: #333;
|
||||
padding-right: 24px;
|
||||
}
|
||||
|
||||
.translate-ico {
|
||||
background-position: 1px -125px;
|
||||
background-repeat: no-repeat;
|
||||
border: 1px solid #999;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
height: 16px;
|
||||
margin: 6px 0 0 18px;
|
||||
padding: 1px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.translate-ico:hover {
|
||||
border-color: #D54E21;
|
||||
box-shadow: 0 0 1px #999;
|
||||
background-color: #F2F2F2;
|
||||
}
|
||||
|
||||
.expand-ico, .collapse-ico {
|
||||
background-position: 54px -84px;
|
||||
cursor: pointer;
|
||||
height: 16px;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.collapse-ico {
|
||||
background-position: 54px -69px;
|
||||
}
|
||||
|
||||
.date-ico, .tag-ico, .user-ico {
|
||||
background-repeat: no-repeat;
|
||||
height: 16px;
|
||||
display: block;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.tag-ico {
|
||||
margin: 6px 6px 0 0;
|
||||
}
|
||||
|
||||
.date-ico {
|
||||
float: left;
|
||||
background-position: 0 -16px;
|
||||
}
|
||||
|
||||
.user-ico {
|
||||
background-position: 0 -32px;
|
||||
float: left;
|
||||
margin-left: 12px;
|
||||
}
|
||||
|
||||
/* end ico */
|
||||
|
||||
/* start frame */
|
||||
.wrapper {
|
||||
margin: 0 auto;
|
||||
width: 960px;
|
||||
}
|
||||
|
||||
.body {
|
||||
border-top: 2px solid #DDD;
|
||||
}
|
||||
|
||||
.main {
|
||||
float: left;
|
||||
margin: 16px 0 50px;
|
||||
overflow: hidden;
|
||||
width: 667px;
|
||||
}
|
||||
|
||||
/* end frame */
|
||||
|
||||
/* start header */
|
||||
.header {
|
||||
background: url("../../bolo-NeoEase/images/icons.png") repeat-x scroll 0 -220px #F2F2F2;
|
||||
padding: 20px 0;
|
||||
}
|
||||
|
||||
.header .title {
|
||||
border-bottom: 1px solid #242424;
|
||||
color: #000;
|
||||
font-size: 26px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.header .sub-title {
|
||||
color: #242424;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.nav .page-icon {
|
||||
float: left;
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
margin: 8px 3px 0 0;
|
||||
}
|
||||
|
||||
#search {
|
||||
background-position: 7px -99px;
|
||||
background-repeat: no-repeat;
|
||||
background-color: #FFF;
|
||||
border: 1px solid #DDD;
|
||||
border-radius: 2px 2px 2px 2px;
|
||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1) inset;
|
||||
color: #888;
|
||||
float: right;
|
||||
font-size: 14px;
|
||||
height: 20px;
|
||||
line-height: 145%;
|
||||
padding: 3px 10px 3px 28px;
|
||||
width: 24px;
|
||||
-moz-transition: width 0.4s ease, background 0.4s ease;
|
||||
-webkit-transition: width 0.4s ease, background 0.4s ease;
|
||||
transition: width 0.4s ease, background 0.4s ease;
|
||||
}
|
||||
|
||||
#search:focus {
|
||||
background-color: #F9F9F9;
|
||||
width: 196px;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background-color: #E9E9E9;
|
||||
border-bottom: 1px solid #CCCCCC;
|
||||
}
|
||||
|
||||
.nav ul {
|
||||
list-style: none;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav li {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav a {
|
||||
color: #666666;
|
||||
display: block;
|
||||
float: left;
|
||||
font-size: 14px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding: 0 15px;
|
||||
text-shadow: 0 1px 0 #EEE;
|
||||
}
|
||||
|
||||
.nav a:hover {
|
||||
color: #D54E21;
|
||||
background-color: #DDD;
|
||||
}
|
||||
|
||||
.nav .current {
|
||||
background-color: #DDD;
|
||||
margin: -1px 0;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.nav .current a {
|
||||
background-color: #F9F9F9;
|
||||
border-color: #CCCCCC #CCCCCC #F9F9F9;
|
||||
border-style: solid;
|
||||
border-width: 1px 1px 3px;
|
||||
font-weight: 700;
|
||||
height: 33px;
|
||||
line-height: 33px;
|
||||
margin: -2px 0 -3px;
|
||||
color: #333;
|
||||
text-shadow: 1px 1px 1px #C6D9E9;
|
||||
}
|
||||
|
||||
.nav img {
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
.nav .right {
|
||||
line-height: 29px;
|
||||
}
|
||||
|
||||
/* end header */
|
||||
|
||||
/* start footer */
|
||||
.footer {
|
||||
background-color: #E9E9E9;
|
||||
border-top: 3px solid #DDD;
|
||||
color: #999;
|
||||
font-size: 11px;
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: #787878;
|
||||
}
|
||||
|
||||
.footer a:hover {
|
||||
color: #D54E21;
|
||||
}
|
||||
|
||||
#goTop {
|
||||
background: url("../../bolo-NeoEase/images/icons.png") no-repeat scroll 5px -51px #DDD;
|
||||
border-radius: 2px 2px 0 0;
|
||||
cursor: pointer;
|
||||
font-size: 11px;
|
||||
height: 21px;
|
||||
line-height: 21px;
|
||||
padding: 0 10px 0 23px;
|
||||
position: absolute;
|
||||
right: 56px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#goTop:hover {
|
||||
background-color: #EAEAEA;
|
||||
}
|
||||
|
||||
/* end footer*/
|
||||
|
||||
/* start side */
|
||||
.side {
|
||||
float: right;
|
||||
width: 278px;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.side > div {
|
||||
border-bottom: 1px solid #DEDEDE;
|
||||
padding: 10px 5px 15px;
|
||||
}
|
||||
|
||||
.side h4 {
|
||||
font-size: 14px;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
.side ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#archiveSide {
|
||||
list-style: square outside none;
|
||||
margin-left: 18px;
|
||||
}
|
||||
|
||||
#archiveSide .archive-year {
|
||||
color: #D54E21;
|
||||
font-weight: bold;
|
||||
height: 18px;
|
||||
line-height: 18px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.side a {
|
||||
line-height: 18px;
|
||||
color: #21759B;
|
||||
}
|
||||
|
||||
.side a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.side sup {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.side .side-li li {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
-o-text-overflow: ellipsis;
|
||||
width: 268px;
|
||||
}
|
||||
|
||||
.side .side-li a {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.recent-comments li > img {
|
||||
background-color: #FFF;
|
||||
border: 1px solid #999;
|
||||
padding: 1px;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.recent-comments-main {
|
||||
float: left;
|
||||
margin: 0 0 9px 3px;
|
||||
width: 229px;
|
||||
}
|
||||
|
||||
.recent-comments-main .expand-ico, .recent-comments-main .collapse-ico {
|
||||
background-position: 0 -86px;
|
||||
float: right;
|
||||
width: 16px;
|
||||
-moz-transition: opacity 400ms ease;
|
||||
-webkit-transition: opacity 400ms ease;
|
||||
transition: opacity 400ms ease;
|
||||
opacity: 0;
|
||||
filter: alpha(opacity=0);
|
||||
}
|
||||
|
||||
.recent-comments li:hover .expand-ico, .recent-comments li:hover .collapse-ico {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
}
|
||||
|
||||
.recent-comments-main .collapse-ico {
|
||||
background-position: 0 -70px;
|
||||
}
|
||||
|
||||
.recent-comments-content {
|
||||
height: 18px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
-o-text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.recent-comments-content img {
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.recent-comments-content a {
|
||||
color: #555777;
|
||||
}
|
||||
|
||||
.recent-comments-content a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.recent-comments-content p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* end side */
|
||||
|
||||
/* start article list */
|
||||
.article {
|
||||
border-bottom: 1px solid #CCC;
|
||||
padding: 0 5px 10px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.article-element {
|
||||
font-size: 11px;
|
||||
line-height: 16px;
|
||||
margin: 12px 0;
|
||||
|
||||
&--article {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.vditor-reset--article {
|
||||
padding-bottom: 12px;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.article-element a {
|
||||
border-bottom: 1px solid #DFDFDF;
|
||||
color: #555;
|
||||
text-decoration: none;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.article-element a:hover {
|
||||
color: #D54E21;
|
||||
border-bottom-color: #D54E21;
|
||||
}
|
||||
|
||||
.article-title {
|
||||
color: #21759B;
|
||||
font-size: 20px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.article-title:hover {
|
||||
color: #D54E21;
|
||||
}
|
||||
|
||||
.article .expand-ico, .article .collapse-ico {
|
||||
float: right;
|
||||
margin-top: 9px;
|
||||
padding-right: 6px;
|
||||
width: 15px;
|
||||
background-position: 0 -86px;
|
||||
}
|
||||
|
||||
.article .collapse-ico {
|
||||
background-position: 0 -70px;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
margin-top: 30px;
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.pagination a {
|
||||
border: 1px solid #C5C3C2;
|
||||
font-size: 10px;
|
||||
margin: 2px;
|
||||
padding: 1px 5px;
|
||||
text-decoration: none;
|
||||
background-color: #F2F2F2;
|
||||
}
|
||||
|
||||
.pagination a.current {
|
||||
background-color: #FFF;
|
||||
font-weight: bold;
|
||||
padding: 2px 6px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.pagination a:hover {
|
||||
background-color: #F3DEDD;
|
||||
color: #D54E21;
|
||||
border: 1px solid #D54E21;
|
||||
}
|
||||
|
||||
.page {
|
||||
margin-top: 20px;
|
||||
padding: 0 5px 5px;
|
||||
}
|
||||
|
||||
/* end article list */
|
||||
|
||||
/* start article */
|
||||
.article-panel1 {
|
||||
background-color: #F2F2F2;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.article-panel2 {
|
||||
background-color: #FFF;
|
||||
margin-top: 12px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.article-panel2 ul {
|
||||
line-height: 18px;
|
||||
list-style: square outside none;
|
||||
margin-left: 18px;
|
||||
}
|
||||
|
||||
.share {
|
||||
border-bottom: 1px solid #DEDEDE;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.share-comment {
|
||||
background-color: #DDD;
|
||||
border-radius: 2px 2px 0 0;
|
||||
float: right;
|
||||
font-size: 11px;
|
||||
height: 21px;
|
||||
line-height: 21px;
|
||||
margin-right: 16px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.share-comment:hover {
|
||||
background-color: #EAEAEA;
|
||||
}
|
||||
|
||||
#comments {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#comments > div {
|
||||
border-bottom: 1px solid #DEDEDE;
|
||||
padding: 10px;
|
||||
width: 647px;
|
||||
background-color: #F5F5F5;
|
||||
}
|
||||
|
||||
#comments > div:nth-child(2n) {
|
||||
background-color: #F8F8F8;
|
||||
}
|
||||
|
||||
#comments .comment-panel > .right {
|
||||
-moz-transition: opacity 400ms ease;
|
||||
-webkit-transition: opacity 400ms ease;
|
||||
transition: opacity 400ms ease;
|
||||
opacity: 0;
|
||||
filter: alpha(opacity=0);
|
||||
}
|
||||
|
||||
#comments > div:hover .comment-panel > .right {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
}
|
||||
|
||||
.comment-header {
|
||||
height: 50px;
|
||||
width: 50px;
|
||||
float: left;
|
||||
background-color: #FFF;
|
||||
border: 1px solid #DEDEDE;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.comment-panel {
|
||||
float: left;
|
||||
margin: 0 10px;
|
||||
width: 573px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.comment-panel .vditor-reset {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
#comments .comment-body-ref {
|
||||
border-bottom: 0;
|
||||
background-color: #FFF;
|
||||
border-radius: 5px 5px 5px 5px;
|
||||
left: 73px;
|
||||
position: absolute;
|
||||
box-shadow: 1px 0 3px #DEDEDE;
|
||||
width: 560px;
|
||||
}
|
||||
|
||||
.comment-body-ref .comment-panel {
|
||||
width: 486px;
|
||||
}
|
||||
|
||||
.comment-body-ref .arrow {
|
||||
border-color: #F5F5F5 #FFF #F5F5F5 #F5F5F5;
|
||||
border-style: solid;
|
||||
border-width: 6px 8px 10px 0;
|
||||
display: block;
|
||||
left: -8px;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
}
|
||||
|
||||
.form {
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.form img {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.form h4 {
|
||||
margin: 10px 0 5px 5px;
|
||||
}
|
||||
|
||||
.form th {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.form input[type="text"], .form input[type="password"], .form textarea {
|
||||
border-color: silver #D9D9D9 #D9D9D9;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
font-family: "Lucida Grande", Verdana, '微软雅黑';
|
||||
font-size: 12px;
|
||||
outline: medium none;
|
||||
padding: 0 3px;
|
||||
}
|
||||
|
||||
.form input:focus, .form textarea:focus {
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) inset;
|
||||
}
|
||||
|
||||
.form textarea {
|
||||
overflow: auto;
|
||||
resize: vertical;
|
||||
padding: 3px;
|
||||
width: 634px;
|
||||
}
|
||||
|
||||
.form input {
|
||||
height: 24px;
|
||||
line-height: 16px;
|
||||
width: 260px;
|
||||
}
|
||||
|
||||
.form button {
|
||||
background-color: #B4D666;
|
||||
border-color: #B4D666 #81B840 #81B840 #B4D666;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
color: #2970A6;
|
||||
height: 28px;
|
||||
line-height: 28px;
|
||||
padding: 0 12px;
|
||||
}
|
||||
|
||||
.form button:hover {
|
||||
background-color: #98C64C;
|
||||
border-color: #76B33A #98C64C #98C64C #76B33A;
|
||||
color: #074A7E;
|
||||
}
|
||||
|
||||
/* end article*/
|
||||
|
||||
/* start tags */
|
||||
#tags li {
|
||||
float: left;
|
||||
list-style: none;
|
||||
height: 38px;
|
||||
}
|
||||
|
||||
#tags a:hover {
|
||||
text-shadow: 0 0 2px;
|
||||
}
|
||||
|
||||
#tags a {
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
box-shadow: 1px 1px 3px #333;
|
||||
float: left;
|
||||
margin: 3px 6px;
|
||||
padding: 3px 12px;
|
||||
}
|
||||
|
||||
#tagsSide li a {
|
||||
float: left;
|
||||
line-height: 145%;
|
||||
margin-right: 7px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tags1 {
|
||||
font-size: 12px;
|
||||
color: #A1A1A1;
|
||||
}
|
||||
|
||||
.tags2 {
|
||||
font-size: 14px;
|
||||
color: #687F95;
|
||||
}
|
||||
|
||||
.tags3 {
|
||||
font-size: 16px;
|
||||
color: #4C6E90;
|
||||
}
|
||||
|
||||
.tags4 {
|
||||
font-size: 18px;
|
||||
color: #258;
|
||||
}
|
||||
|
||||
.tags5 {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
#tagsSide .tags2 {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#tagsSide .tags3 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#tagsSide .tags4 {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#tagsSide .tags5 {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
/* end tags */
|
||||
|
||||
/* start others */
|
||||
.main > h2 {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.error {
|
||||
background-image: url("../../bolo-NeoEase/images/404.png");
|
||||
float: left;
|
||||
height: 536px;
|
||||
margin: 50px 80px;
|
||||
position: relative;
|
||||
width: 363px;
|
||||
}
|
||||
|
||||
.error h2 {
|
||||
left: -68px;
|
||||
position: absolute;
|
||||
top: -20px;
|
||||
}
|
||||
|
||||
.error a {
|
||||
background-color: #9CD941;
|
||||
border: 265px none;
|
||||
bottom: 12px;
|
||||
color: #333555;
|
||||
float: left;
|
||||
padding: 10px 15px;
|
||||
position: absolute;
|
||||
right: -106px;
|
||||
}
|
||||
|
||||
.error a:hover {
|
||||
background-color: #ADEb51;
|
||||
}
|
||||
|
||||
/* end others */
|
36
bolo-NeoEase/footer.ftl
Normal file
36
bolo-NeoEase/footer.ftl
Normal file
@ -0,0 +1,36 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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="footer">
|
||||
<div class="wrapper">
|
||||
<div class="left">
|
||||
<span style="color: gray;">© ${year}</span> <a href="${servePath}">${blogTitle}</a> ${footerContent}<br/>
|
||||
Powered by <a href="https://github.com/adlered/bolo-solo" target="_blank">Bolo</a>
|
||||
Theme ${skinDirName}
|
||||
by <a rel="friend" href="http://vanessa.b3log.org" target="_blank">Vanessa</a>.
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="goTop" onclick="goTop()">TOP</div>
|
||||
<script type="text/javascript" src="${staticServePath}/js/lib/jquery/jquery.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/${skinDirName}${miniPostfix}.js?${staticResourceVersion}" charset="utf-8"></script>
|
||||
<#include "../../common-template/label.ftl">
|
||||
${plugins}
|
80
bolo-NeoEase/header.ftl
Normal file
80
bolo-NeoEase/header.ftl
Normal file
@ -0,0 +1,80 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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="header">
|
||||
<div class="wrapper">
|
||||
<div class="left">
|
||||
<h1>
|
||||
<a class="title" href="${servePath}">
|
||||
${blogTitle}
|
||||
</a>
|
||||
</h1>
|
||||
<span class="sub-title">${blogSubtitle}</span>
|
||||
</div>
|
||||
<#if interactive == "on">
|
||||
<form class="right" action="${servePath}/search">
|
||||
<input id="search" type="text" name="keyword" />
|
||||
<input type="submit" value="" class="none" />
|
||||
</form>
|
||||
</#if>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nav">
|
||||
<div class="wrapper">
|
||||
<ul>
|
||||
<li>
|
||||
<a rel="nofollow" href="${servePath}/">${indexLabel}</a>
|
||||
</li>
|
||||
<#list pageNavigations as page>
|
||||
<li>
|
||||
<a href="${page.pagePermalink}" target="${page.pageOpenTarget}"><#if page.pageIcon != ''><img class="page-icon" src="${page.pageIcon}"></#if>${page.pageTitle}</a>
|
||||
</li>
|
||||
</#list>
|
||||
<li>
|
||||
<a href="${servePath}/tags.html">${allTagsLabel}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a rel="alternate" href="${servePath}/rss.xml">RSS<img src="${staticServePath}/images/feed.png" alt="RSS"/></a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="right">
|
||||
<span class="translate-ico" onclick="goTranslate()"></span>
|
||||
<div class="right">
|
||||
${viewCount1Label}
|
||||
<span class="tip">
|
||||
${statistic.statisticBlogViewCount}
|
||||
</span>
|
||||
|
||||
${articleCount1Label}
|
||||
<span class="tip">
|
||||
${statistic.statisticPublishedBlogArticleCount}
|
||||
</span>
|
||||
<#if interactive == "on">
|
||||
|
||||
${commentCount1Label}
|
||||
<span class="tip">
|
||||
${statistic.statisticPublishedBlogCommentCount}
|
||||
</span>
|
||||
</#if>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
BIN
bolo-NeoEase/images/404.png
Normal file
BIN
bolo-NeoEase/images/404.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 216 KiB |
BIN
bolo-NeoEase/images/ajax-loader.gif
Normal file
BIN
bolo-NeoEase/images/ajax-loader.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
BIN
bolo-NeoEase/images/icons.png
Normal file
BIN
bolo-NeoEase/images/icons.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
42
bolo-NeoEase/index.ftl
Normal file
42
bolo-NeoEase/index.ftl
Normal file
@ -0,0 +1,42 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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="${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
${topBarReplacement}
|
||||
<#include "header.ftl">
|
||||
<div class="body">
|
||||
<div class="wrapper">
|
||||
<div class="main">
|
||||
<#include "article-list.ftl">
|
||||
</div>
|
||||
<#include "side.ftl">
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
179
bolo-NeoEase/js/bolo-NeoEase-mod.js
Normal file
179
bolo-NeoEase/js/bolo-NeoEase-mod.js
Normal file
@ -0,0 +1,179 @@
|
||||
/*
|
||||
* Bolo - A stable and beautiful blogging system based in Solo.
|
||||
* Copyright (c) 2020, https://github.com/adlered
|
||||
*
|
||||
* 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 neoease js.
|
||||
*
|
||||
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
|
||||
* @version 1.0.0.8, Sep 6, 2012
|
||||
*/
|
||||
var goTop = function (acceleration) {
|
||||
acceleration = acceleration || 0.1
|
||||
|
||||
var y = $(window).scrollTop()
|
||||
var speed = 1 + acceleration
|
||||
window.scrollTo(0, Math.floor(y / speed))
|
||||
|
||||
if (y > 0) {
|
||||
var invokeFunction = 'goTop(' + acceleration + ')'
|
||||
window.setTimeout(invokeFunction, 16)
|
||||
}
|
||||
}
|
||||
|
||||
var collapseArchive = function (it, year) {
|
||||
var tag = true
|
||||
if (it.className === 'collapse-ico') {
|
||||
it.className = 'expand-ico'
|
||||
tag = false
|
||||
} else {
|
||||
it.className = 'collapse-ico'
|
||||
}
|
||||
|
||||
$('#archiveSide li').each(function () {
|
||||
var $this = $(this)
|
||||
// hide other year month archives
|
||||
if ($this.data('year') === year) {
|
||||
if (tag) {
|
||||
$(this).show()
|
||||
} else {
|
||||
$(this).hide()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
var getArticle = function (it, id) {
|
||||
var $abstract = $('#abstract' + id),
|
||||
$content = $('#content' + id)
|
||||
|
||||
if ($content.html() === '') {
|
||||
$.ajax({
|
||||
url: '/get-article-content?id=' + id,
|
||||
type: 'GET',
|
||||
dataType: 'html',
|
||||
beforeSend: function () {
|
||||
$abstract.css('background',
|
||||
'url(/skins/bolo-NeoEase/images/ajax-loader.gif) no-repeat scroll center center transparent')
|
||||
},
|
||||
success: function (result, textStatus) {
|
||||
it.className = 'collapse-ico'
|
||||
$content.html(result)
|
||||
$abstract.hide().css('background', 'none')
|
||||
$content.fadeIn('slow')
|
||||
Util.parseLanguage()
|
||||
Util.parseMarkdown()
|
||||
},
|
||||
})
|
||||
} else {
|
||||
if (it.className === 'expand-ico') {
|
||||
$abstract.hide()
|
||||
$content.fadeIn()
|
||||
it.className = 'collapse-ico'
|
||||
} else {
|
||||
$content.hide()
|
||||
$abstract.fadeIn()
|
||||
it.className = 'expand-ico'
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
var goTranslate = function () {
|
||||
window.open('http://translate.google.com/translate?sl=auto&tl=auto&u=' +
|
||||
location.href)
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
// go top icon show or hide
|
||||
$(window).scroll(function () {
|
||||
var y = $(window).scrollTop()
|
||||
|
||||
if (y > 182) {
|
||||
var bodyH = $(window).height()
|
||||
var top = y + bodyH - 21
|
||||
if ($('body').height() - 58 <= y + bodyH) {
|
||||
top = $('.footer').offset().top - 21
|
||||
}
|
||||
$('#goTop').fadeIn('slow').css('top', top)
|
||||
} else {
|
||||
$('#goTop').hide()
|
||||
}
|
||||
})
|
||||
|
||||
// archive
|
||||
var currentYear = (new Date()).getFullYear(),
|
||||
year = currentYear
|
||||
$('#archiveSide li').each(function (i) {
|
||||
var $this = $(this)
|
||||
|
||||
// hide other year month archives
|
||||
if ($this.data('year') !== currentYear) {
|
||||
$(this).hide()
|
||||
}
|
||||
|
||||
// append year archive
|
||||
if (year !== $this.data('year')) {
|
||||
year = $this.data('year')
|
||||
$this.before('<li class=\'archive-year\'><div onclick=\'collapseArchive(this, ' +
|
||||
year + ')\' class=\'expand-ico\'>' + year + ' \u5e74</div></li>')
|
||||
}
|
||||
})
|
||||
|
||||
// recent comment mouse click
|
||||
$('.recent-comments .expand-ico').click(function () {
|
||||
if (this.className === 'expand-ico') {
|
||||
$(this).parent().next().css({
|
||||
'height': 'auto',
|
||||
'white-space': 'normal',
|
||||
})
|
||||
this.className = 'collapse-ico'
|
||||
} else {
|
||||
$(this).parent().next().animate({
|
||||
'height': '18px',
|
||||
}, function () {
|
||||
$(this).css('white-space', 'nowrap')
|
||||
})
|
||||
this.className = 'expand-ico'
|
||||
}
|
||||
})
|
||||
|
||||
// nav current
|
||||
$('.nav ul li').each(function () {
|
||||
var $a = $(this).find('a')
|
||||
if ($a.attr('href') === Label.servePath + location.pathname) {
|
||||
$(this).addClass('current')
|
||||
} else if (/\/[0-9]+$/.test(location.pathname)) {
|
||||
$('.nav ul li')[0].className = 'current'
|
||||
}
|
||||
})
|
||||
|
||||
Util.setTopBar()
|
||||
Util.replaceSideEm($('.recent-comments-content'))
|
||||
Util.buildTags('tagsSide')
|
||||
|
||||
// recent comments
|
||||
$('.recent-comments .recent-comments-main').each(function () {
|
||||
if ($(this).find('.recent-comments-content>a').height() < 30) {
|
||||
$(this).find('.expand-ico').remove()
|
||||
} else {
|
||||
$(this).find('.expand-ico').parent().next().css({
|
||||
'white-space': 'nowrap',
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
1
bolo-NeoEase/js/bolo-NeoEase-mod.min.js
vendored
Normal file
1
bolo-NeoEase/js/bolo-NeoEase-mod.min.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
var goTop=function(e){e=e||.1;var a=$(window).scrollTop(),t=1+e;if(window.scrollTo(0,Math.floor(a/t)),a>0){var n="goTop("+e+")";window.setTimeout(n,16)}},collapseArchive=function(e,a){var t=!0;"collapse-ico"===e.className?(e.className="expand-ico",t=!1):e.className="collapse-ico",$("#archiveSide li").each((function(){$(this).data("year")===a&&(t?$(this).show():$(this).hide())}))},getArticle=function(e,a){var t=$("#abstract"+a),n=$("#content"+a);return""===n.html()?$.ajax({url:"/get-article-content?id="+a,type:"GET",dataType:"html",beforeSend:function(){t.css("background","url(/skins/bolo-NeoEase/images/ajax-loader.gif) no-repeat scroll center center transparent")},success:function(a,o){e.className="collapse-ico",n.html(a),t.hide().css("background","none"),n.fadeIn("slow"),Util.parseLanguage(),Util.parseMarkdown()}}):"expand-ico"===e.className?(t.hide(),n.fadeIn(),e.className="collapse-ico"):(n.hide(),t.fadeIn(),e.className="expand-ico"),!1},goTranslate=function(){window.open("http://translate.google.com/translate?sl=auto&tl=auto&u="+location.href)};$(document).ready((function(){$(window).scroll((function(){var e=$(window).scrollTop();if(e>182){var a=$(window).height(),t=e+a-21;$("body").height()-58<=e+a&&(t=$(".footer").offset().top-21),$("#goTop").fadeIn("slow").css("top",t)}else $("#goTop").hide()}));var e=(new Date).getFullYear(),a=e;$("#archiveSide li").each((function(t){var n=$(this);n.data("year")!==e&&$(this).hide(),a!==n.data("year")&&(a=n.data("year"),n.before("<li class='archive-year'><div onclick='collapseArchive(this, "+a+")' class='expand-ico'>"+a+" \u5e74</div></li>"))})),$(".recent-comments .expand-ico").click((function(){"expand-ico"===this.className?($(this).parent().next().css({height:"auto","white-space":"normal"}),this.className="collapse-ico"):($(this).parent().next().animate({height:"18px"},(function(){$(this).css("white-space","nowrap")})),this.className="expand-ico")})),$(".nav ul li").each((function(){$(this).find("a").attr("href")===Label.servePath+location.pathname?$(this).addClass("current"):/\/[0-9]+$/.test(location.pathname)&&($(".nav ul li")[0].className="current")})),Util.setTopBar(),Util.replaceSideEm($(".recent-comments-content")),Util.buildTags("tagsSide"),$(".recent-comments .recent-comments-main").each((function(){$(this).find(".recent-comments-content>a").height()<30?$(this).find(".expand-ico").remove():$(this).find(".expand-ico").parent().next().css({"white-space":"nowrap"})}))}));
|
36
bolo-NeoEase/lang/lang_en_US.properties
Normal file
36
bolo-NeoEase/lang/lang_en_US.properties
Normal file
@ -0,0 +1,36 @@
|
||||
#
|
||||
# Bolo - A stable and beautiful blogging system based in Solo.
|
||||
# Copyright (c) 2020, https://github.com/adlered
|
||||
#
|
||||
# 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: Language configurations(en_US) for skin "neoease".
|
||||
# Version: 2.0.0.0, Feb 23, 2019
|
||||
# Author: Liyuan Li
|
||||
#
|
||||
allTagsLabel=Tags
|
||||
indexLabel=Home
|
||||
archive1Label=Archive:
|
||||
tag1Label=Tags:
|
||||
returnTo1Label=Return:
|
||||
replyLabel=Reply
|
||||
commentNameLabel=Name
|
||||
commentURLLabel=URL
|
||||
nameTooLongLabel=Sorry, your username must be between 2 and 20 characters long!
|
||||
commentContentCannotEmptyLabel=Sorry, your content must be between 2 and 500 characters long!
|
||||
loadingLabel=loading....
|
||||
externalRelevantArticlesLabel=External Relevant Articles:
|
||||
b3logLabel=<span style="color: orange;">B</span><span style="color: blue;"><sup>3</sup></span><span style="color: green;">L</span><span style="color: red;">O</span><span style="color: blue;">G</span>
|
27
bolo-NeoEase/lang/lang_zh_CN.properties
Normal file
27
bolo-NeoEase/lang/lang_zh_CN.properties
Normal file
@ -0,0 +1,27 @@
|
||||
#
|
||||
# Bolo - A stable and beautiful blogging system based in Solo.
|
||||
# Copyright (c) 2020, https://github.com/adlered
|
||||
#
|
||||
# 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: Language configurations(zh_CN) for skin "neoease".
|
||||
# Version: 2.0.0.0, Feb 23, 2019
|
||||
# Author: Liyuan Li
|
||||
#
|
||||
replyLabel=\u56DE\u590D
|
||||
commentNameLabel=\u59D3\u540D
|
||||
commentURLLabel=URL
|
||||
b3logLabel=<span style="color: orange;">B</span><span style="color: blue;"><sup>3</sup></span><span style="color: green;">L</span><span style="color: red;">O</span><span style="color: blue;">G</span>
|
40
bolo-NeoEase/macro-comments.ftl
Normal file
40
bolo-NeoEase/macro-comments.ftl
Normal file
@ -0,0 +1,40 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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="share">
|
||||
<a class="share-comment" href="#commentForm">
|
||||
${commentList?size} ${commentLabel}
|
||||
</a>
|
||||
<span class="clear"></span>
|
||||
</div>
|
||||
<div id="comments">
|
||||
<#list commentList as comment>
|
||||
<#include "common-comment.ftl"/>
|
||||
</#list>
|
||||
</div>
|
||||
<#if article.commentable>
|
||||
<div class="form">
|
||||
<h4>${postCommentsLabel}</h4>
|
||||
<input id="boloUser" placeholder="你的昵称" style="padding: 5px; width: fill-available; width: -webkit-fill-available;">
|
||||
<input id="boloSite" placeholder="你的个人主页URL(选填)" style="margin-top: 3px; margin-bottom: 10px; padding: 5px; width: fill-available; width: -webkit-fill-available;">
|
||||
<textarea rows="3" placeholder="${postCommentsLabel}" id="comment"></textarea>
|
||||
<script type="text/javascript" src="${staticServePath}/js/bolo/sweetalert.min.js"></script></div></div>
|
||||
</#if>
|
||||
</#macro>
|
BIN
bolo-NeoEase/preview.png
Normal file
BIN
bolo-NeoEase/preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
178
bolo-NeoEase/side.ftl
Normal file
178
bolo-NeoEase/side.ftl
Normal file
@ -0,0 +1,178 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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="side">
|
||||
<div>
|
||||
<br>
|
||||
<#include "../../common-template/macro-user_site.ftl"/>
|
||||
<@userSite dir="nw"/>
|
||||
<#if "" != noticeBoard>
|
||||
<br><br>
|
||||
<div style="text-align: center">${noticeBoard}</div>
|
||||
</#if>
|
||||
</div>
|
||||
<#if article?? && article.articleToC?? && article.articleToC?size > 0>
|
||||
<div>
|
||||
<h4>${tocLabel}</h4>
|
||||
<#include "../../common-template/toc.ftl"/>
|
||||
</div>
|
||||
|
||||
<#else>
|
||||
<#if interactive == "on">
|
||||
<#if 0 != recentComments?size>
|
||||
<div>
|
||||
<h4>${recentCommentsLabel}</h4>
|
||||
<ul class="recent-comments">
|
||||
<#list recentComments as comment>
|
||||
<li>
|
||||
<div class='recent-comments-main'>
|
||||
<div>
|
||||
<span class="left">
|
||||
<#if "http://" == comment.commentURL>
|
||||
${comment.commentName}
|
||||
<#else>
|
||||
<a target="_blank" href="${comment.commentURL}">${comment.commentName}</a>
|
||||
</#if>
|
||||
</span>
|
||||
<span class="expand-ico"></span>
|
||||
<span class="clear"></span>
|
||||
</div>
|
||||
<div class="recent-comments-content">
|
||||
<a href="${servePath}${comment.commentSharpURL}">
|
||||
${comment.commentContent}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class='clear'></div>
|
||||
</li>
|
||||
</#list>
|
||||
</ul>
|
||||
</div>
|
||||
</#if>
|
||||
<#if 0 != mostCommentArticles?size>
|
||||
<div>
|
||||
<h4>${mostCommentArticlesLabel}</h4>
|
||||
<ul class="side-li">
|
||||
<#list mostCommentArticles as article>
|
||||
<li>
|
||||
<sup>[${article.articleCommentCount}]</sup>
|
||||
<a title="${article.articleTitle}" href="${servePath}${article.articlePermalink}">
|
||||
${article.articleTitle}
|
||||
</a>
|
||||
</li>
|
||||
</#list>
|
||||
</ul>
|
||||
</div>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if 0 != mostViewCountArticles?size>
|
||||
<div>
|
||||
<h4>${mostViewCountArticlesLabel}</h4>
|
||||
<ul class="side-li">
|
||||
<#list mostViewCountArticles as article>
|
||||
<li>
|
||||
<sup>[${article.articleViewCount}]</sup>
|
||||
<a title="${article.articleTitle}" href="${servePath}${article.articlePermalink}">
|
||||
${article.articleTitle}
|
||||
</a>
|
||||
</li>
|
||||
</#list>
|
||||
</ul>
|
||||
</div>
|
||||
</#if>
|
||||
|
||||
<#if 0 != mostUsedCategories?size>
|
||||
<div>
|
||||
<h4>${categoryLabel}</h4>
|
||||
<ul class="tags">
|
||||
<#list mostUsedCategories as category>
|
||||
<li>
|
||||
<sup>[${category.categoryTagCnt}]</sup>
|
||||
<a class="tag" href="${servePath}/category/${category.categoryURI}">
|
||||
${category.categoryTitle}</a>
|
||||
</li>
|
||||
</#list>
|
||||
</ul>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</#if>
|
||||
|
||||
<#if 0 != mostUsedTags?size>
|
||||
<div>
|
||||
<h4>${tagsLabel}</h4>
|
||||
<ul id="tagsSide" class="tags">
|
||||
<#list mostUsedTags as tag>
|
||||
<li>
|
||||
<a data-count="${tag.tagPublishedRefCount}"
|
||||
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}"
|
||||
title="${tag.tagTitle}(${tag.tagPublishedRefCount})">
|
||||
<span>${tag.tagTitle}</span>
|
||||
</a>
|
||||
</li>
|
||||
</#list>
|
||||
</ul>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</#if>
|
||||
<#if 0 != links?size>
|
||||
<div>
|
||||
<h4>${linkLabel}</h4>
|
||||
<ul>
|
||||
<#list links as link>
|
||||
<li>
|
||||
<a rel="friend" href="${link.linkAddress}" title="${link.linkTitle}" target="_blank">
|
||||
<#if link.linkIcon != "" >
|
||||
<img alt="${link.linkTitle}" src="${link.linkIcon}" width="16" height="16"/></a>
|
||||
<#else>
|
||||
<img alt="${link.linkTitle}"
|
||||
src="${faviconAPI}<#list link.linkAddress?split('/') as x><#if x_index=2>${x}<#break></#if></#list>"
|
||||
width="16" height="16"/></a>
|
||||
</#if>
|
||||
<a rel="friend" href="${link.linkAddress}" title="${link.linkTitle}"
|
||||
target="_blank">${link.linkTitle}
|
||||
</a>
|
||||
</li>
|
||||
</#list>
|
||||
</ul>
|
||||
</div>
|
||||
</#if>
|
||||
<#if 0 != archiveDates?size>
|
||||
<div>
|
||||
<h4>${archiveLabel}</h4>
|
||||
<ul id="archiveSide">
|
||||
<#list archiveDates as archiveDate>
|
||||
<li data-year="${archiveDate.archiveDateYear}">
|
||||
<#if "en" == localeString?substring(0, 2)>
|
||||
<a href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}"
|
||||
title="${archiveDate.monthName} ${archiveDate.archiveDateYear}(${archiveDate.archiveDatePublishedArticleCount})">
|
||||
${archiveDate.monthName} ${archiveDate.archiveDateYear}</a>(${archiveDate.archiveDatePublishedArticleCount}
|
||||
)
|
||||
<#else>
|
||||
<a href="${servePath}/archives/${archiveDate.archiveDateYear}/${archiveDate.archiveDateMonth}"
|
||||
title="${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}(${archiveDate.archiveDatePublishedArticleCount})">
|
||||
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}</a>(${archiveDate.archiveDatePublishedArticleCount}
|
||||
)
|
||||
</#if>
|
||||
</li>
|
||||
</#list>
|
||||
</ul>
|
||||
</div>
|
||||
</#if>
|
||||
</#if>
|
||||
</div>
|
26
bolo-NeoEase/skin.properties
Normal file
26
bolo-NeoEase/skin.properties
Normal file
@ -0,0 +1,26 @@
|
||||
#
|
||||
# Bolo - A stable and beautiful blogging system based in Solo.
|
||||
# Copyright (c) 2020, https://github.com/adlered
|
||||
#
|
||||
# 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: NeoEase skin.
|
||||
# Version: 1.0.0.7, Nov 21, 2012
|
||||
# Author: Liyuan Li
|
||||
#
|
||||
|
||||
name=NeoEase
|
||||
memo=http://www.neoease.com/
|
49
bolo-NeoEase/tag-articles.ftl
Normal file
49
bolo-NeoEase/tag-articles.ftl
Normal file
@ -0,0 +1,49 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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="${tag.tagTitle} ${tagLabel} - ${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
${topBarReplacement}
|
||||
<#include "header.ftl">
|
||||
<div class="body">
|
||||
<div class="wrapper">
|
||||
<div class="main">
|
||||
<h2>
|
||||
<a rel="alternate" href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}">
|
||||
${tag1Label}
|
||||
${tag.tagTitle}
|
||||
(${tag.tagPublishedRefCount})
|
||||
</a>
|
||||
</h2>
|
||||
<#include "article-list.ftl">
|
||||
</div>
|
||||
<#include "side.ftl">
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
</body>
|
||||
</html>
|
55
bolo-NeoEase/tags.ftl
Normal file
55
bolo-NeoEase/tags.ftl
Normal file
@ -0,0 +1,55 @@
|
||||
<#--
|
||||
|
||||
Bolo - A stable and beautiful blogging system based in Solo.
|
||||
Copyright (c) 2020, https://github.com/adlered
|
||||
|
||||
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="${allTagsLabel} - ${blogTitle}">
|
||||
<link rel="stylesheet" href="${staticServePath}/skins/${skinDirName}/css/base.css?${staticResourceVersion}"/>
|
||||
</@head>
|
||||
</head>
|
||||
<body>
|
||||
${topBarReplacement}
|
||||
<#include "header.ftl">
|
||||
<div class="body">
|
||||
<div class="wrapper">
|
||||
<div class="main">
|
||||
<ul id="tags" class="tags">
|
||||
<#list tags as tag>
|
||||
<li>
|
||||
<a rel="tag" data-count="${tag.tagPublishedRefCount}"
|
||||
href="${servePath}/tags/${tag.tagTitle?url('UTF-8')}" title="${tag.tagTitle}">
|
||||
<span>${tag.tagTitle}</span>
|
||||
(<b>${tag.tagPublishedRefCount}</b>)
|
||||
</a>
|
||||
</li>
|
||||
</#list>
|
||||
</ul>
|
||||
</div>
|
||||
<#include "side.ftl">
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<#include "footer.ftl">
|
||||
<script type="text/javascript">
|
||||
Util.buildTags();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
x
Reference in New Issue
Block a user