diff --git a/README.md b/README.md index cc8ee3d..ad67b2e 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,30 @@ ## 简介 -迁移到bolo 博客,保存自己自定义的皮肤部分。 - -皮肤样例: -- [bolo-fantastic](https://www.zeekling.cn/?skin=bolo-fantastic) -- [bolo-NeoEase](https://www.zeekling.cn/?skin=bolo-NeoEase-mod) +此项目是本人对bolo-fantastic进行了一些改造,包括样式和seo两方面。 个人站点:[小令童鞋](https://www.zeekling.cn/) +## 使用 + +- 将本项目下载到:`/dockerData/bolo/bolo-fantastic`下面 + +- 参照下面脚本新建bolo镜像。 +```sh +docker run --detach --name bolo --network=host \ + --env RUNTIME_DB="MYSQL" \ + --env JAVA_OPTS="-Xms265m -Xmx265m -Xmn170m -Xloggc:/var/log/gc.log" \ + --env JDBC_USERNAME="root" \ + --env JDBC_PASSWORD="123456" \ + --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \ + --env SERVER_HOST="www.zeekling.cn" \ + --env SERVER_PORT="443" \ + --env SERVER_SCHEME="https" \ + --env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC" \ + -v /dockerData/bolo/bolo-fantastic:/opt/bolo/skins/bolo-fantastic \ + zeek/bolo \ + --lute_http=http://127.0.0.1:8249 +``` + ## 个站样式 首页显示: diff --git a/bolo-fantastic/archive-articles.ftl b/archive-articles.ftl similarity index 100% rename from bolo-fantastic/archive-articles.ftl rename to archive-articles.ftl diff --git a/bolo-fantastic/archives.ftl b/archives.ftl similarity index 100% rename from bolo-fantastic/archives.ftl rename to archives.ftl diff --git a/bolo-fantastic/article-list.ftl b/article-list.ftl similarity index 100% rename from bolo-fantastic/article-list.ftl rename to article-list.ftl diff --git a/bolo-fantastic/article.ftl b/article.ftl similarity index 100% rename from bolo-fantastic/article.ftl rename to article.ftl diff --git a/bolo-NeoEase/archive-articles.ftl b/bolo-NeoEase/archive-articles.ftl deleted file mode 100644 index 64d0ec5..0000000 --- a/bolo-NeoEase/archive-articles.ftl +++ /dev/null @@ -1,49 +0,0 @@ -<#-- - - 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 . - ---> -<#include "../../common-template/macro-common_head.ftl"> - - - - <@head title="${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} ${archiveLabel} - ${blogTitle}"> - - - - - ${topBarReplacement} - <#include "header.ftl"> -
-
-
-

${archive1Label} - <#if "en" == localeString?substring(0, 2)> - ${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} (${archiveDate.archiveDatePublishedArticleCount}) - <#else> - ${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} (${archiveDate.archiveDatePublishedArticleCount}) - -

- <#include "article-list.ftl"> -
- <#include "side.ftl"> -
-
-
- <#include "footer.ftl"> - - diff --git a/bolo-NeoEase/article-list.ftl b/bolo-NeoEase/article-list.ftl deleted file mode 100644 index 305db7f..0000000 --- a/bolo-NeoEase/article-list.ftl +++ /dev/null @@ -1,106 +0,0 @@ -<#-- - - 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 . - ---> -<#list articles as article> -
-

- - - ${article.articleTitle} - - <#if article.articlePutTop> - - ${topArticleLabel} - - - <#if article.hasUpdated> - - - ${updatedLabel} - - - - - - -

-
- - <#if article.hasUpdated> - ${article.articleUpdateDate?string("yyyy-MM-dd HH:mm:ss")} - <#else> - ${article.articleUpdateDate?string("yyyy-MM-dd HH:mm:ss")} - - - - ${article.authorName} - -
-
- <#if interactive == "on"> - - ${article.articleCommentCount}  ${commentLabel} -    - - - ${article.articleViewCount}  ${viewLabel} - -
-
-
-
- ${article.articleAbstract} -
-
-
-
- - <#if article.articleCategory != ""> - - - - - <#list article.articleTags?split(",") as articleTag> - <#if articleTag_has_next>, - - -
-
- -<#if 0 != paginationPageCount> - - diff --git a/bolo-NeoEase/article.ftl b/bolo-NeoEase/article.ftl deleted file mode 100644 index 0b334b9..0000000 --- a/bolo-NeoEase/article.ftl +++ /dev/null @@ -1,134 +0,0 @@ -<#-- - - 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 . - ---> -<#include "../../common-template/macro-common_head.ftl"> -<#include "macro-comments.ftl"> -<#include "../../common-template/macro-comment_script.ftl"> - - - - <@head title="${article.articleTitle} - ${blogTitle}" description="${article.articleAbstract?html}"> - - <#if previousArticlePermalink??> - - - <#if nextArticlePermalink??> - - - - - - ${topBarReplacement} - <#include "header.ftl"> -
-
-
-
-

- - ${article.articleTitle} - - <#if article.articlePutTop> - - ${topArticleLabel} - - -

-
- - ${article.articleUpdateDate?string("yyyy-MM-dd HH:mm:ss")} - - - ${article.authorName} - -
-
- <#if interactive == "on"> - - ${article.articleCommentCount}  ${commentLabel} -    - - - ${article.articleViewCount}  ${viewLabel} - -
-
-
- ${article.articleContent} - <#if "" != article.articleSign.signHTML?trim> -
- ${article.articleSign.signHTML} -
- -
- -
- - <#list article.articleTags?split(",") as articleTag> - <#if articleTag_has_next>, - - -
-
- <#if nextArticlePermalink??> - - - <#if previousArticlePermalink??> - - -
-
-
-
-
-
-
-
-
- <#if interactive == "on"> - <@comments commentList=articleComments article=article> - - <#include "side.ftl"> -
-
-
-
- <#include "footer.ftl"> - <@comment_script oId=article.oId commentable=article.commentable> - page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}"; - <#if 0 != randomArticlesDisplayCount> - page.loadRandomArticles(); - - <#if 0 != relevantArticlesDisplayCount> - page.loadRelevantArticles('${article.oId}', '

${relevantArticlesLabel}

'); - - <#if 0 != externalRelevantArticlesDisplayCount> - page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,"); - - - - diff --git a/bolo-NeoEase/author-articles.ftl b/bolo-NeoEase/author-articles.ftl deleted file mode 100644 index b4e58ea..0000000 --- a/bolo-NeoEase/author-articles.ftl +++ /dev/null @@ -1,43 +0,0 @@ -<#-- - - 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 . - ---> -<#include "../../common-template/macro-common_head.ftl"> - - - - <@head title="${authorName} - ${blogTitle}"> - - - - - ${topBarReplacement} - <#include "header.ftl"> -
-
-
-

${author1Label}${authorName}

- <#include "article-list.ftl"> -
- <#include "side.ftl"> -
-
-
- <#include "footer.ftl"> - - diff --git a/bolo-NeoEase/category-articles.ftl b/bolo-NeoEase/category-articles.ftl deleted file mode 100644 index 166194e..0000000 --- a/bolo-NeoEase/category-articles.ftl +++ /dev/null @@ -1,47 +0,0 @@ -<#-- - - 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 . - ---> -<#include "../../common-template/macro-common_head.ftl"> - - - - <@head title="${category.categoryTitle} - ${blogTitle}"> - - - - - ${topBarReplacement} - <#include "header.ftl"> -
-
-
-

- ${categoryLabel}: - ${category.categoryTitle} - (${category.categoryTagCnt}) ${category.categoryDescription} -

- <#include "article-list.ftl"> -
- <#include "side.ftl"> -
-
-
- <#include "footer.ftl"> - - diff --git a/bolo-NeoEase/common-comment.ftl b/bolo-NeoEase/common-comment.ftl deleted file mode 100644 index 220827d..0000000 --- a/bolo-NeoEase/common-comment.ftl +++ /dev/null @@ -1,45 +0,0 @@ -<#-- - - 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 . - ---> -
-
-
- <#if "http://" == comment.commentURL> - ${comment.commentName} - <#else> - ${comment.commentName} - - <#if comment.isReply> @ - ${comment.commentOriginalCommentName} - -
- <#if article.commentable> -
- ${replyLabel} -  |  - ${comment.commentDate2?string("yyyy-MM-dd HH:mm:ss")} -
- - -
${comment.commentContent}
-
- -
\ No newline at end of file diff --git a/bolo-NeoEase/css/base.css b/bolo-NeoEase/css/base.css deleted file mode 100644 index 671e282..0000000 --- a/bolo-NeoEase/css/base.css +++ /dev/null @@ -1 +0,0 @@ -.article__toc{overflow:auto}.article__toc::-webkit-scrollbar{display:none}.article__toc li{list-style-type:none}.article__toc li a{padding-left:10px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.article__toc li a:hover{text-decoration:none}.article__toc li.toc__h3 a{padding-left:20px}.article__toc li.toc__h4 a{padding-left:30px}.article__toc li.toc__h5 a{padding-left:40px}.user__site:hover{text-decoration:none}.vditor{--border-color: #d1d5da;--second-color: rgba(88, 96, 105, 0.36);--panel-background-color: #fff;--panel-shadow: 0 1px 2px rgba(0, 0, 0, .2);--toolbar-background-color: #f6f8fa;--toolbar-icon-color: #586069;--toolbar-icon-hover-color: #4285f4;--textarea-background-color: #fafbfc;--textarea-text-color: #24292e;--resize-icon-color: var(--toolbar-icon-color);--resize-background-color: var(--toolbar-background-color);--resize-hover-icon-color: var(--panel-background-color);--resize-hover-background-color: var(--toolbar-icon-hover-color);--code-background-color: rgba(27, 31, 35, .05);--preview-background-color: rgba(27, 31, 35, .02);--heading-border-color: #eaecef;--blockquote-color: #6a737d;--ir-heading-color: #660e7a;--ir-title-color: #808080;--ir-bi-color: #000080;--ir-link-color: #008000;--ir-bracket-color: #0000ff;--ir-paren-color: #008000}.vditor--dark{--border-color: #141414;--second-color: rgba(185, 185, 185, .36);--panel-background-color: #24292e;--panel-shadow: 0 1px 2px rgba(255, 255, 255, .2);--toolbar-background-color: #1d2125;--toolbar-icon-color: #b9b9b9;--toolbar-icon-hover-color: #fff;--textarea-background-color: #2f363d;--textarea-text-color: #d1d5da;--resize-icon-color: var(--border-color);--resize-background-color: var(--second-color);--resize-hover-icon-color: var(--toolbar-icon-hover-color);--resize-hover-background-color: rgba(185, 185, 185, .86);--code-background-color: rgba(66,133,244,0.36);--preview-background-color: rgba(120, 146, 190, 0.55);--heading-border-color: var(--textarea-text-color);--blockquote-color: var(--toolbar-icon-color);--ir-heading-color: #9876aa;--ir-title-color: #808080;--ir-bi-color: #cc7832;--ir-link-color: #ffc66d;--ir-bracket-color: #287bde;--ir-paren-color: #6a8759}@-webkit-keyframes tooltip-appear{from{opacity:0}to{opacity:1}}@keyframes tooltip-appear{from{opacity:0}to{opacity:1}}.vditor-tooltipped{position:relative;cursor:pointer}.vditor-tooltipped::after{position:absolute;z-index:1000000;display:none;padding:5px 8px;font-size:11px;font-weight:normal;-webkit-font-smoothing:subpixel-antialiased;color:#fff;text-align:center;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:#3b3e43;border-radius:3px;line-height:16px;opacity:0}.vditor-tooltipped::before{position:absolute;z-index:1000001;display:none;width:0;height:0;color:#3b3e43;pointer-events:none;content:"";border:5px solid transparent;opacity:0}.vditor-tooltipped--hover::before,.vditor-tooltipped--hover::after,.vditor-tooltipped:hover::before,.vditor-tooltipped:hover::after,.vditor-tooltipped:active::before,.vditor-tooltipped:active::after,.vditor-tooltipped:focus::before,.vditor-tooltipped:focus::after{display:inline-block;text-decoration:none;-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.15s;animation-duration:0.15s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}.vditor-tooltipped__s::after,.vditor-tooltipped__se::after,.vditor-tooltipped__sw::after{top:100%;right:50%;margin-top:5px}.vditor-tooltipped__s::before,.vditor-tooltipped__se::before,.vditor-tooltipped__sw::before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:#3b3e43}.vditor-tooltipped__se::after{right:auto;left:50%;margin-left:-15px}.vditor-tooltipped__sw::after{margin-right:-15px}.vditor-tooltipped__n::after,.vditor-tooltipped__ne::after,.vditor-tooltipped__nw::after{right:50%;bottom:100%;margin-bottom:5px}.vditor-tooltipped__n::before,.vditor-tooltipped__ne::before,.vditor-tooltipped__nw::before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:#3b3e43}.vditor-tooltipped__ne::after{right:auto;left:50%;margin-left:-15px}.vditor-tooltipped__nw::after{margin-right:-15px}.vditor-tooltipped__s::after,.vditor-tooltipped__n::after{transform:translateX(50%)}.vditor-tooltipped__w::after{right:100%;bottom:50%;margin-right:5px;transform:translateY(50%)}.vditor-tooltipped__w::before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:#3b3e43}.vditor-tooltipped__e::after{bottom:50%;left:100%;margin-left:5px;transform:translateY(50%)}.vditor-tooltipped__e::before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:#3b3e43}@media screen and (max-width: 520px){.vditor-tooltipped:before,.vditor-tooltipped:after{content:none}}@-webkit-keyframes scale-in{0%{opacity:0;transform:scale(0.5)}100%{opacity:1;transform:scale(1)}}@keyframes scale-in{0%{opacity:0;transform:scale(0.5)}100%{opacity:1;transform:scale(1)}}.vditor-panel{background-color:var(--panel-background-color);position:absolute;box-shadow:var(--panel-shadow);border-radius:3px;padding:5px;z-index:3;font-size:14px;display:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-width:320px;min-width:80px;-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:scale-in;animation-name:scale-in;-webkit-animation-timing-function:cubic-bezier(0.2, 0, 0.13, 1.5);animation-timing-function:cubic-bezier(0.2, 0, 0.13, 1.5);color:var(--toolbar-icon-color)}.vditor-panel--none{padding:0;-webkit-animation:none;animation:none;min-width:auto;max-width:none;white-space:nowrap}.vditor-panel--arrow:before{position:absolute;width:0;height:0;pointer-events:none;content:" ";border:7px solid transparent;top:-14px;left:5px;border-bottom-color:var(--panel-background-color)}.vditor-panel--left{right:0}.vditor-panel--left.vditor-panel--arrow:before{right:5px;left:auto}.vditor-input{border:0;padding:3px 5px;background-color:var(--panel-background-color);font-size:12px;color:var(--textarea-text-color)}.vditor-input:focus{background-color:var(--toolbar-background-color);outline:none}.vditor-icon{color:var(--toolbar-icon-color);cursor:pointer;float:left;padding:4px 5px;height:21px;width:23px;background-color:transparent;border:0;box-sizing:border-box}.vditor-icon:hover,.vditor-icon--current{color:var(--toolbar-icon-hover-color);background-color:transparent}.vditor-icon:focus{outline:none}.vditor-icon svg{height:13px !important;width:13px !important;float:left;fill:currentColor;pointer-events:none}.vditor-toolbar{background-color:var(--toolbar-background-color);border-bottom:1px solid var(--border-color);padding:0 5px;line-height:1}.vditor-toolbar--pin{position:-webkit-sticky;position:sticky;top:0;z-index:1}.vditor-toolbar--hide{transition:all 0.15s ease-in-out;height:5px;overflow:hidden}.vditor-toolbar--hide:hover{background-color:var(--toolbar-background-color);height:auto;overflow:visible}.vditor-toolbar__item{float:left;position:relative}.vditor-toolbar__item .vditor-tooltipped{color:var(--toolbar-icon-color);border:0;padding:10px 5px;background-color:transparent;height:35px;width:25px;box-sizing:border-box}.vditor-toolbar__item .vditor-tooltipped:focus{outline:none}.vditor-toolbar__item .vditor-tooltipped:focus{cursor:pointer;color:var(--toolbar-icon-hover-color)}.vditor-toolbar__item svg{fill:currentColor;display:inline-block;stroke-width:0;stroke:currentColor;width:15px;height:15px}.vditor-toolbar__item input{position:absolute;width:25px;height:35px;top:0;left:0;cursor:pointer;opacity:.001;overflow:hidden}.vditor-toolbar__divider{float:left;width:16px;height:35px}.vditor-toolbar__br{width:100%;padding:0 !important;height:0 !important}.vditor-menu--current{color:var(--toolbar-icon-hover-color) !important}.vditor-menu--disabled{color:var(--second-color) !important;cursor:not-allowed !important}.vditor-emojis{display:inline-block;overflow:auto}.vditor-emojis::-webkit-scrollbar{display:none}.vditor-emojis__tip{flex:1;min-width:1px;width:200px;margin-right:10px;color:var(--toolbar-icon-color);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vditor-emojis__tail{margin-top:5px;font-size:12px;color:var(--toolbar-icon-color);display:flex}.vditor-emojis__tail a{text-decoration:none;color:var(--toolbar-icon-color)}.vditor-emojis__tail a:hover{color:var(--toolbar-icon-hover-color)}.vditor-emojis button{cursor:pointer;border-radius:3px;float:left;height:30px;width:30px;text-align:center;line-height:26px;padding:3px;box-sizing:border-box;font-size:16px;transition:all 0.15s ease-in-out;border:0;margin:0;background-color:transparent;overflow:hidden}.vditor-emojis button:focus{outline:none}.vditor-emojis button:hover .vditor-emojis__icon{display:inline-block;transform:scale(1.2)}.vditor-emojis img{height:20px;width:20px;float:left;margin:3px 0 0 3px}@media screen and (max-width: 520px){.vditor-toolbar__item{padding:0 12px}}@media (hover: hover) and (pointer: fine){.vditor-toolbar__item .vditor-tooltipped:hover{color:var(--toolbar-icon-hover-color)}}@-webkit-keyframes slideInDown{from{transform:translate3d(0, -100%, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes slideInDown{from{transform:translate3d(0, -100%, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}.vditor{display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:3px;box-sizing:border-box;font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans","Hiragino Sans GB","Microsoft Yahei",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Segoe UI Symbol","Android Emoji","EmojiSymbols"}.vditor .vditor-copy{z-index:auto}.vditor--fullscreen{position:fixed;top:0;width:100% !important;left:0;height:100vh !important;z-index:90;border-radius:0}.vditor-content{display:flex;min-height:60px;flex:1;min-width:1px;position:relative}.vditor-textarea{font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans","Hiragino Sans GB","Microsoft Yahei",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Segoe UI Symbol","Android Emoji","EmojiSymbols";margin:0 1px 0 0;overflow:auto;width:100%;flex:1;min-width:1px;border:0;resize:none;padding:10px 9px 10px 10px;box-sizing:border-box;background-color:var(--panel-background-color);outline:0 none;font-size:16px;line-height:22px;color:var(--textarea-text-color);border-radius:0 0 3px 3px;font-variant-ligatures:no-common-ligatures;white-space:pre-wrap;word-break:break-word;word-wrap:break-word}.vditor-textarea[contenteditable="false"]{opacity:0.3;cursor:not-allowed}.vditor-textarea:empty::before{content:attr(placeholder);color:var(--second-color)}.vditor-textarea:focus{background-color:var(--textarea-background-color)}.vditor-textarea:after{content:"";height:var(--editor-bottom);display:block}.vditor-preview{flex:1;min-width:1px;overflow:auto;margin-left:-1px;border-left:1px solid var(--border-color);box-sizing:border-box;border-radius:0 0 3px 0;background-color:var(--textarea-background-color)}.vditor-preview::-webkit-scrollbar{display:none}.vditor-preview__action{text-align:center;padding:10px;background-color:var(--toolbar-background-color)}.vditor-preview__action button{background-color:var(--toolbar-background-color);color:var(--toolbar-icon-color);line-height:20px;border:0;margin:0 10px;cursor:pointer;padding:0 7px;font-size:12px}.vditor-preview__action button.vditor-preview__action--current,.vditor-preview__action button:hover{color:var(--toolbar-icon-hover-color);background-color:var(--toolbar-background-color)}.vditor-preview__action button:focus{outline:none}.vditor-preview__action button svg{fill:currentColor;height:15px;width:15px;vertical-align:middle}.vditor-preview>.vditor-reset{padding:10px;margin:0 auto}.vditor-devtools{display:none;background-color:var(--textarea-background-color);overflow:auto;flex:1;min-width:1px;box-shadow:inset 1px 0 var(--border-color);box-sizing:border-box;border-radius:0 0 3px 0;padding:10px}.vditor-counter{padding:3px;color:var(--toolbar-icon-color);background-color:var(--code-background-color);border-radius:3px;font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;float:right;margin:8px 3px 0 0}.vditor-counter--error{color:#d23f31;background-color:rgba(210,63,49,0.1)}.vditor-resize{padding:3px 0;cursor:row-resize;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;width:100%}.vditor-resize--top{top:-3px}.vditor-resize--bottom{bottom:-3px}.vditor-resize>div{height:3px;background-color:var(--resize-background-color);transition:all 0.15s ease-in-out}.vditor-resize:hover>div,.vditor-resize--selected>div{background-color:var(--resize-hover-background-color)}.vditor-resize:hover svg,.vditor-resize--selected svg{color:var(--resize-hover-icon-color)}.vditor-resize svg{fill:currentColor;stroke-width:0;stroke:currentColor;width:13px;height:3px;display:block;margin:0 auto;color:var(--resize-icon-color)}.vditor-upload{position:absolute;height:3px;left:0;top:-2px;transition:all 0.15s ease-in-out;background-color:#4285f4}.vditor-tip{position:absolute;font-size:12px;top:10px;-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-fill-mode:both;animation-fill-mode:both;left:50%;z-index:5}.vditor-tip--show{display:block;-webkit-animation-name:slideInDown;animation-name:slideInDown}.vditor-tip__content{text-align:left;display:inline-block;line-height:16px;padding:3px 10px;border-radius:3px;background:var(--toolbar-background-color);position:relative;margin-left:-50%;color:var(--toolbar-icon-color);max-width:100%;box-shadow:var(--panel-shadow)}.vditor-tip__content ul{margin:2px 0;padding:0 0 0 18px}.vditor-tip__content a{color:#4285f4}.vditor-tip__close{position:absolute;color:var(--toolbar-icon-color);top:-7px;right:-15px;font-weight:bold;cursor:pointer}.vditor-tip__close:hover{color:var(--toolbar-icon-hover-color)}.vditor-outline{min-width:250px;width:250px;border-right:1px solid var(--border-color);background-color:var(--panel-background-color);display:none}.vditor-outline__item{padding:5px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vditor-outline__item:hover{color:var(--toolbar-icon-hover-color);background-color:var(--toolbar-background-color)}.vditor-outline__panel{position:-webkit-sticky;position:sticky;overflow:auto;top:35px;padding-bottom:10px;color:var(--textarea-text-color);box-sizing:border-box}.vditor-outline__panel::-webkit-scrollbar{display:none}.vditor-outline__title{border-bottom:1px dashed var(--border-color);padding:5px 10px;color:var(--toolbar-icon-color);font-size:12px}.vditor-hint{background-color:var(--panel-background-color);position:absolute;box-shadow:var(--panel-shadow);border-radius:3px;padding:5px 0;z-index:4;line-height:20px;list-style:none;font-size:12px;margin:0;max-width:250px;min-width:80px;display:none}.vditor-hint .vditor-hint{margin-top:-31px;left:100%;right:auto}.vditor-hint .vditor-hint.vditor-panel--left{right:100%;left:auto}.vditor-hint button{color:var(--toolbar-icon-color);display:block;padding:3px 10px;border:0;border-radius:0;line-height:20px;width:100%;box-sizing:border-box;text-align:left;margin:0;background-color:transparent;cursor:pointer;white-space:nowrap}.vditor-hint button:focus{outline:none}.vditor-hint--current,.vditor-hint button:not(.vditor-menu--disabled):hover{background-color:var(--toolbar-background-color) !important;color:var(--toolbar-icon-hover-color) !important}.vditor-hint__emoji{font-size:16px;float:left;margin-right:3px}.vditor-hint img{height:20px;width:20px;float:left;margin-right:3px}.vditor-reset{color:#24292e;font-variant-ligatures:no-common-ligatures;font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans","Hiragino Sans GB","Microsoft Yahei",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Segoe UI Symbol","Android Emoji","EmojiSymbols";word-wrap:break-word;overflow:auto;line-height:1.5;font-size:16px;word-break:break-word}.vditor-reset--anchor{padding-left:20px}.vditor-reset--error{color:#d23f31;font-size:12px;display:block;line-height:16px}.vditor-reset ul ul ul{list-style-type:square}.vditor-reset ul ul{list-style-type:circle}.vditor-reset ul{list-style-type:disc}.vditor-reset ul,.vditor-reset ol{padding-left:2em;margin-top:0;margin-bottom:16px}.vditor-reset li+li{margin-top:0.25em}.vditor-reset audio{max-width:100%}.vditor-reset audio:focus{outline:none}.vditor-reset video{max-height:90vh;max-width:100%}.vditor-reset img{max-width:100%}.vditor-reset img.emoji{cursor:auto;max-width:20px;vertical-align:sub}.vditor-reset h1,.vditor-reset h2,.vditor-reset h3,.vditor-reset h4,.vditor-reset h5,.vditor-reset h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.vditor-reset h1:hover .vditor-anchor svg,.vditor-reset h2:hover .vditor-anchor svg,.vditor-reset h3:hover .vditor-anchor svg,.vditor-reset h4:hover .vditor-anchor svg,.vditor-reset h5:hover .vditor-anchor svg,.vditor-reset h6:hover .vditor-anchor svg{visibility:visible}.vditor-reset h1{padding-bottom:0.3em;font-size:1.7em;border-bottom:1px solid #eaecef}.vditor-reset h2{padding-bottom:0.3em;font-size:1.5em;border-bottom:1px solid #eaecef}.vditor-reset h3{font-size:1.25em}.vditor-reset h4{font-size:1em}.vditor-reset h5{font-size:0.875em}.vditor-reset h6{font-size:0.85em}.vditor-reset hr{height:2px;padding:0;margin:24px 0;background-color:#eaecef;border:0}.vditor-reset p{margin-top:0;margin-bottom:16px}.vditor-reset blockquote{padding:0 1em;color:#6a737d;border-left:0.25em solid #eaecef;margin:0 0 16px 0}.vditor-reset blockquote>:first-child{margin-top:0}.vditor-reset blockquote>:last-child{margin-bottom:0}.vditor-reset ins>iframe{border:0}.vditor-reset iframe{border:1px solid #d1d5da;max-width:100%;box-sizing:border-box}.vditor-reset iframe.iframe__video{min-width:80%;min-height:36vh}.vditor-reset table{border-collapse:collapse;empty-cells:show;margin-bottom:16px;overflow:auto;border-spacing:0}.vditor-reset table tr{background-color:#fafbfc;border-top:1px solid #c6cbd1}.vditor-reset table td,.vditor-reset table th{padding:6px 13px;border:1px solid #dfe2e5;word-break:normal}.vditor-reset table th{font-weight:600}.vditor-reset table tbody tr:nth-child(2n){background-color:#fff}.vditor-reset code:not(.hljs):not(.highlight-chroma){padding:0.2em 0.4em;margin:0;font-size:85%;border-radius:3px;font-family:mononoki,Consolas,"Liberation Mono",Menlo,Courier,monospace,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Segoe UI Symbol","Android Emoji","EmojiSymbols";word-break:break-word;background-size:20px 20px;white-space:pre-wrap;background-color:rgba(27,31,35,0.05)}.vditor-reset code:not(.hljs):not(.highlight-chroma).language-mermaid,.vditor-reset code:not(.hljs):not(.highlight-chroma).language-math,.vditor-reset code:not(.hljs):not(.highlight-chroma).language-graphviz,.vditor-reset code:not(.hljs):not(.highlight-chroma).language-echarts,.vditor-reset code:not(.hljs):not(.highlight-chroma).language-mindmap{background-color:rgba(27,31,35,0.02)}.vditor-reset pre{margin:1em 0}.vditor-reset pre>code{margin:0;font-size:85%;padding:0.5em;border-radius:5px;display:block;overflow:auto;white-space:pre;font-family:mononoki,Consolas,"Liberation Mono",Menlo,Courier,monospace,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Segoe UI Symbol","Android Emoji","EmojiSymbols";background-size:20px 20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AgMAAABHkjHhAAAACVBMVEWAgIBaWlo+Pj7rTFvWAAAAA3RSTlMHCAw+VhR4AAAA+klEQVQoz4WSMW7EQAhFPxKWNh2FCx+HkaZI6RRb5DYbyVfIJXLKDCFoMbaTKSw/8ZnPAPjaH2xgZcUNUDADD7D9LtDBCLZ45fbkvo/30K8yeI64pPwl6znd/3n/Oe93P3ho9qeh72btTFzqkz0rsJle8Zr81OLEwZ1dv/713uWqvu2pl+k0fy7MWtj9r/tN5q/02z89qa/L4Dc2LvM93kezPfXlME/O86EbY/V9GB9ePX8G1/6W+/9h1dq/HGfTfzT3j/xNo7522Bfnqe5jO/fvhVthlfk434v3iO9zG/UOphyPeinPl1J8Gtaa7xPTa/Dk+RIs4deMvwGvcGsmsCvJ0AAAAABJRU5ErkJggg==);word-break:initial;word-wrap:normal}.vditor-reset pre:hover div.vditor-copy{display:block}.vditor-reset kbd{display:inline-block;padding:3px 5px;font:11px Consolas, "Liberation Mono", Menlo, Courier, monospace;line-height:10px;color:#24292e;vertical-align:middle;background-color:#fafbfc;border:solid 1px #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da}.vditor-reset summary{cursor:pointer}.vditor-reset summary:focus{outline:none}.vditor-reset svg{height:auto;width:auto;stroke-width:initial}.vditor-reset p:last-child,.vditor-reset blockquote:last-child,.vditor-reset pre:last-child,.vditor-reset ul:last-child,.vditor-reset ol:last-child,.vditor-reset hr:last-child{margin-bottom:0}.vditor-reset .language-echarts,.vditor-reset .language-mindmap{overflow:hidden;height:420px}.vditor-reset .language-graphviz polygon{fill:transparent}.vditor-task{list-style:none}.vditor-task input{margin:0 .2em .25em -1.6em;font-size:12px;vertical-align:middle}.vditor-copy{position:relative;display:none;z-index:1}.vditor-copy textarea{position:absolute;left:-100000px;height:10px}.vditor-copy span{cursor:pointer;position:absolute;right:0.5em;top:0.5em}.vditor-copy svg{color:#586069;height:14px;width:14px !important;display:block;fill:currentColor}.vditor-linenumber{padding-left:4em !important;position:relative}.vditor-linenumber__rows{position:absolute;pointer-events:none;top:0.2em;left:0;width:3em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;counter-reset:linenumber}.vditor-linenumber__rows>span{pointer-events:none;display:block}.vditor-linenumber__rows>span::before{counter-increment:linenumber;content:counter(linenumber);color:rgba(158,150,150,0.38);display:block;padding-right:1em;text-align:right}.vditor-speech{position:absolute;display:none;background-color:#f6f8fa;border:1px solid #d1d5da;border-radius:3px;padding:3px;cursor:pointer;color:#586069}.vditor-speech:hover,.vditor-speech--current{color:#4285f4}.vditor-speech svg{height:14px;width:14px;fill:currentColor;display:block;stroke-width:0;stroke:currentColor}.vditor-anchor{margin-right:5px}.vditor-anchor--left{float:left;padding-right:4px;margin-left:-20px}.vditor-anchor svg{visibility:hidden}.vditor-anchor:hover svg{visibility:visible}.vditor-anchor:focus{outline:none}.vditor-linkcard{margin:31px auto 16px;transition:all 0.15s ease-in-out;cursor:pointer;max-width:768px;padding:0 10px}.vditor-linkcard a{border-radius:3px;background-color:#f6f8fa;overflow:hidden;max-height:250px;display:flex;text-decoration:none;flex-wrap:wrap-reverse;box-shadow:0 1px 2px rgba(0,0,0,0.2)}.vditor-linkcard a:hover{box-shadow:0 0 3px rgba(0,0,0,0.13),0 3px 6px rgba(0,0,0,0.26);text-decoration:none}.vditor-linkcard a:visited .vditor-linkcard__abstract{color:rgba(88,96,105,0.36)}.vditor-linkcard__info{padding:10px;min-width:200px;box-sizing:border-box;flex:1}.vditor-linkcard__title{font-size:14px;font-weight:400;color:#24292e;display:flex;align-items:center}.vditor-linkcard__title img{cursor:pointer;height:20px;width:20px;border-radius:3px;flex-shrink:0;margin-right:5px}.vditor-linkcard__abstract{word-wrap:break-word;word-break:break-all;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;display:-webkit-box;font-size:13px;color:#586069;margin:5px 0}.vditor-linkcard__site{font-size:12px;color:#4285f4}.vditor-linkcard__image{background-size:cover;background-repeat:no-repeat;background-position:center center;max-width:250px;min-width:126px;cursor:pointer;background-color:rgba(88,96,105,0.36)}.vditor-math mjx-container:focus{outline:none;cursor:context-menu}.vditor-footnotes__goto-ref{text-decoration:none}.vditor-toc{margin-bottom:16px}.vditor-wysiwyg{box-sizing:border-box;flex:1;position:relative;width:100%;min-width:1px}.vditor-wysiwyg pre.vditor-reset{background-color:var(--panel-background-color);margin:0;white-space:pre-wrap;height:100%;box-sizing:border-box}.vditor-wysiwyg pre.vditor-reset[contenteditable="false"]{opacity:0.3;cursor:not-allowed}.vditor-wysiwyg pre.vditor-reset:empty::before{content:attr(placeholder);color:var(--second-color)}.vditor-wysiwyg pre.vditor-reset:focus{outline:none;background-color:var(--textarea-background-color)}.vditor-wysiwyg pre.vditor-reset:after{content:"";height:var(--editor-bottom);display:block}.vditor-wysiwyg blockquote:empty::before,.vditor-wysiwyg pre>code:empty::before,.vditor-wysiwyg p:empty::before,.vditor-wysiwyg h1:empty::after,.vditor-wysiwyg h2:empty::after,.vditor-wysiwyg h3:empty::after,.vditor-wysiwyg h4:empty::after,.vditor-wysiwyg h5:empty::after,.vditor-wysiwyg h6:empty::after{content:' '}.vditor-wysiwyg code[data-marker="`"]{padding-left:0 !important;padding-right:0 !important}.vditor-wysiwyg__block pre:first-child{margin-bottom:-1em}.vditor-wysiwyg__block pre:first-child code{height:auto;background-color:var(--code-background-color) !important}.vditor-wysiwyg__block pre:last-child{margin-bottom:1em}.vditor-wysiwyg__preview{cursor:pointer;white-space:initial;min-height:27px}.vditor-wysiwyg__preview code:not(.hljs):not(.highlight-chroma){background-color:var(--preview-background-color)}.vditor-wysiwyg h1:before,.vditor-wysiwyg h2:before,.vditor-wysiwyg h3:before,.vditor-wysiwyg h4:before,.vditor-wysiwyg h5:before,.vditor-wysiwyg h6:before,.vditor-wysiwyg div.vditor-wysiwyg__block:before,.vditor-wysiwyg div[data-type="link-ref-defs-block"]:before,.vditor-wysiwyg div[data-type="footnotes-block"]:before,.vditor-wysiwyg .vditor-toc:before{float:left;padding-right:4px;margin-left:-29px;content:'H1';font-size:0.85rem;font-weight:normal;color:var(--second-color)}.vditor-wysiwyg h2:before{content:'H2'}.vditor-wysiwyg h3:before{content:'H3'}.vditor-wysiwyg h4:before{content:'H4'}.vditor-wysiwyg h5:before{content:'H5'}.vditor-wysiwyg h6:before{content:'H6'}.vditor-wysiwyg div[data-type="link-ref-defs-block"]:before{content:'"A"'}.vditor-wysiwyg div[data-type="footnotes-block"]:before{content:'^F'}.vditor-wysiwyg div.vditor-wysiwyg__block:before{content:""}.vditor-wysiwyg .vditor-toc:before{content:"ToC"}.vditor-wysiwyg hr{display:inline-block;margin:12px 0;width:100%}.vditor-wysiwyg details{white-space:initial}.vditor-wysiwyg span[data-type="backslash"]>span{display:none;color:var(--second-color)}.vditor-wysiwyg span[data-type="link-ref"],.vditor-wysiwyg sup[data-type="footnotes-ref"]{color:#4285f4}.vditor-wysiwyg span[data-type="toc-h"]{color:#4285f4;text-decoration:underline}.vditor-wysiwyg div[data-type="footnotes-block"]{border-top:2px solid var(--heading-border-color);padding-top:24px;margin-top:24px}.vditor-wysiwyg div[data-type="link-ref-defs-block"]{color:var(--blockquote-color)}@media screen and (max-width: 520px){.vditor-wysiwyg h1:before,.vditor-wysiwyg h2:before,.vditor-wysiwyg h3:before,.vditor-wysiwyg h4:before,.vditor-wysiwyg h5:before,.vditor-wysiwyg h6:before,.vditor-wysiwyg div.vditor-wysiwyg__block:before,.vditor-wysiwyg div[data-type="link-ref-defs-block"]:before,.vditor-wysiwyg div[data-type="footnotes-block"]:before,.vditor-wysiwyg .vditor-toc:before{content:none}}.vditor-ir{box-sizing:border-box;flex:1;min-width:1px;position:relative;width:100%}.vditor-ir__block[data-type="html-block"] pre{margin:1em 0 !important}.vditor-ir__node[data-type="code-block"]:before,.vditor-ir__node[data-type="code-block"]:after,.vditor-ir__node[data-type="math-block"]:before,.vditor-ir__node[data-type="math-block"]:after{content:' ';color:var(--second-color)}.vditor-ir__node:not(.vditor-ir__node--expand) .vditor-ir__marker{padding:0 !important}.vditor-ir__node[data-type="link-ref"],.vditor-ir__node[data-type="footnotes-ref"]{color:#4285f4}.vditor-ir__node .vditor-ir__marker{width:0;overflow:hidden;display:inline-block;height:0;transition:all 0.15s ease-in-out}.vditor-ir__node .vditor-ir__preview code:not(.hljs):not(.highlight-chroma){background-color:var(--preview-background-color)}.vditor-ir__node--hidden .vditor-ir__marker{visibility:hidden}.vditor-ir__node--expand .vditor-ir__marker{color:var(--second-color);display:inline;height:auto;width:auto}.vditor-ir__node--expand .vditor-ir__marker--hide{display:none}.vditor-ir__node--expand .vditor-ir__marker--heading{color:var(--ir-heading-color)}.vditor-ir__node--expand .vditor-ir__marker--bi{color:var(--ir-bi-color)}.vditor-ir__node--expand .vditor-ir__marker--link{color:var(--ir-link-color)}.vditor-ir__node--expand .vditor-ir__marker--title{color:var(--ir-title-color)}.vditor-ir__node--expand .vditor-ir__marker--bracket{color:var(--ir-bracket-color);text-decoration:underline}.vditor-ir__node--expand .vditor-ir__marker--paren{color:var(--ir-paren-color)}.vditor-ir__node--expand .vditor-ir__marker--info{color:var(--ir-heading-color)}.vditor-ir__node--expand .vditor-ir__marker--pre{color:var(--textarea-text-color)}.vditor-ir__node--expand .vditor-ir__marker--pre .language-mermaid,.vditor-ir__node--expand .vditor-ir__marker--pre .language-math,.vditor-ir__node--expand .vditor-ir__marker--pre .language-graphviz,.vditor-ir__node--expand .vditor-ir__marker--pre .language-echarts,.vditor-ir__node--expand .vditor-ir__marker--pre .language-mindmap{background-color:var(--code-background-color) !important;height:auto}.vditor-ir__node--expand[data-type="code-block"]:before,.vditor-ir__node--expand[data-type="code-block"]:after{content:'```'}.vditor-ir__node--expand[data-type="math-block"]:before,.vditor-ir__node--expand[data-type="math-block"]:after{content:'$$'}.vditor-ir__node span[data-type="code-block-open-marker"],.vditor-ir__node span[data-type="code-block-close-marker"],.vditor-ir__node span[data-type="math-block-open-marker"],.vditor-ir__node span[data-type="math-block-close-marker"]{display:none}.vditor-ir__link{color:var(--ir-bracket-color);text-decoration:underline}.vditor-ir pre.vditor-reset{background-color:var(--panel-background-color);margin:0;white-space:pre-wrap;height:100%;box-sizing:border-box}.vditor-ir pre.vditor-reset[contenteditable="false"]{opacity:0.3;cursor:not-allowed}.vditor-ir pre.vditor-reset:empty::before{content:attr(placeholder);color:var(--second-color)}.vditor-ir pre.vditor-reset:focus{outline:none;background-color:var(--textarea-background-color)}.vditor-ir pre.vditor-reset:after{content:"";height:var(--editor-bottom);display:block}.vditor-ir pre.vditor-reset pre{margin:0}.vditor-ir hr{display:inline-block;margin:12px 0;width:100%}.vditor-ir blockquote:empty::before,.vditor-ir pre>code:empty::before,.vditor-ir p:empty::before,.vditor-ir h1:empty::after,.vditor-ir h2:empty::after,.vditor-ir h3:empty::after,.vditor-ir h4:empty::after,.vditor-ir h5:empty::after,.vditor-ir h6:empty::after{content:' '}.vditor-ir h1:before,.vditor-ir h2:before,.vditor-ir h3:before,.vditor-ir h4:before,.vditor-ir h5:before,.vditor-ir h6:before,.vditor-ir div[data-type="link-ref-defs-block"]:before,.vditor-ir div[data-type="footnotes-block"]:before,.vditor-ir .vditor-toc:before{float:left;padding-right:4px;margin-left:-29px;content:'H1';font-size:0.85rem;font-weight:normal;color:var(--second-color)}.vditor-ir h2:before{content:'H2'}.vditor-ir h3:before{content:'H3'}.vditor-ir h4:before{content:'H4'}.vditor-ir h5:before{content:'H5'}.vditor-ir h6:before{content:'H6'}.vditor-ir div[data-type="link-ref-defs-block"]{color:var(--blockquote-color)}.vditor-ir div[data-type="link-ref-defs-block"]:before{content:'"A"'}.vditor-ir div[data-type="footnotes-block"]{border-top:2px solid var(--heading-border-color);padding-top:24px;margin-top:24px}.vditor-ir div[data-type="footnotes-block"]:before{content:'^F'}.vditor-ir .vditor-toc:before{content:"ToC"}.vditor-ir .vditor-toc span[data-type="toc-h"]{color:#4285f4;text-decoration:underline}@media screen and (max-width: 520px){.vditor-ir h1:before,.vditor-ir h2:before,.vditor-ir h3:before,.vditor-ir h4:before,.vditor-ir h5:before,.vditor-ir h6:before,.vditor-ir div[data-type="link-ref-defs-block"]:before,.vditor-ir div[data-type="footnotes-block"]:before,.vditor-ir .vditor-toc:before{content:none}}.user__site{display:inline-block;margin-right:15px}.user__site svg{height:20px;width:20px;fill:currentColor}html,body,div,ul,li,h1,h2,h3,h4,h5,h6{margin:0;padding:0}::-moz-selection{background-color:#ccc;color:#fff}::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}.tip__sup{cursor:text}.tip__sup:link{color:#D54E21}.tip__sup:hover{color:#D54E21}.tip__sup:visited{color:#F9F9F9}.em-span{line-height:24px;float:left}.em-br{line-height:24px}.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}.wrapper{margin:0 auto;width:960px}.body{border-top:2px solid #DDD}.main{float:left;margin:16px 0 50px;overflow:hidden;width:667px}.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;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}.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}.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;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}.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-element--article{margin-top:0}.vditor-reset--article{padding-bottom:12px}.vditor-reset--article::-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}.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{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}#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}.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} diff --git a/bolo-NeoEase/css/base.scss b/bolo-NeoEase/css/base.scss deleted file mode 100644 index 688c8dd..0000000 --- a/bolo-NeoEase/css/base.scss +++ /dev/null @@ -1,866 +0,0 @@ -/* - * 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 . - */ -/** - * skin neoease style - * - * @author Liyuan Li - * @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 */ diff --git a/bolo-NeoEase/footer.ftl b/bolo-NeoEase/footer.ftl deleted file mode 100644 index 859a327..0000000 --- a/bolo-NeoEase/footer.ftl +++ /dev/null @@ -1,36 +0,0 @@ -<#-- - - 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 . - ---> - -
TOP
- - - -<#include "../../common-template/label.ftl"> -${plugins} diff --git a/bolo-NeoEase/header.ftl b/bolo-NeoEase/header.ftl deleted file mode 100644 index e210a33..0000000 --- a/bolo-NeoEase/header.ftl +++ /dev/null @@ -1,80 +0,0 @@ -<#-- - - 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 . - ---> -
-
-
-

- - ${blogTitle} - -

- ${blogSubtitle} -
- <#if interactive == "on"> -
- - -
- -
-
-
- diff --git a/bolo-NeoEase/images/404.png b/bolo-NeoEase/images/404.png deleted file mode 100644 index 47f24c8..0000000 Binary files a/bolo-NeoEase/images/404.png and /dev/null differ diff --git a/bolo-NeoEase/images/ajax-loader.gif b/bolo-NeoEase/images/ajax-loader.gif deleted file mode 100644 index 5ba2f07..0000000 Binary files a/bolo-NeoEase/images/ajax-loader.gif and /dev/null differ diff --git a/bolo-NeoEase/images/icons.png b/bolo-NeoEase/images/icons.png deleted file mode 100644 index b11023a..0000000 Binary files a/bolo-NeoEase/images/icons.png and /dev/null differ diff --git a/bolo-NeoEase/index.ftl b/bolo-NeoEase/index.ftl deleted file mode 100644 index 6d8c968..0000000 --- a/bolo-NeoEase/index.ftl +++ /dev/null @@ -1,42 +0,0 @@ -<#-- - - 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 . - ---> -<#include "../../common-template/macro-common_head.ftl"> - - - - <@head title="${blogTitle}"> - - - - - ${topBarReplacement} - <#include "header.ftl"> -
-
-
- <#include "article-list.ftl"> -
- <#include "side.ftl"> -
-
-
- <#include "footer.ftl"> - - diff --git a/bolo-NeoEase/js/bolo-NeoEase-mod.js b/bolo-NeoEase/js/bolo-NeoEase-mod.js deleted file mode 100644 index cf89ef8..0000000 --- a/bolo-NeoEase/js/bolo-NeoEase-mod.js +++ /dev/null @@ -1,179 +0,0 @@ -/* - * 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 . - */ -/** - * @fileoverview neoease js. - * - * @author Liyuan Li - * @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('
  • ' + year + ' \u5e74
  • ') - } - }) - - // 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', - }) - } - }) -}) \ No newline at end of file diff --git a/bolo-NeoEase/js/bolo-NeoEase-mod.min.js b/bolo-NeoEase/js/bolo-NeoEase-mod.min.js deleted file mode 100644 index 775af59..0000000 --- a/bolo-NeoEase/js/bolo-NeoEase-mod.min.js +++ /dev/null @@ -1 +0,0 @@ -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("
  • "+a+" \u5e74
  • "))})),$(".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"})}))})); \ No newline at end of file diff --git a/bolo-NeoEase/lang/lang_en_US.properties b/bolo-NeoEase/lang/lang_en_US.properties deleted file mode 100644 index 5983078..0000000 --- a/bolo-NeoEase/lang/lang_en_US.properties +++ /dev/null @@ -1,36 +0,0 @@ -# -# 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 . -# - -# -# 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=B3LOG diff --git a/bolo-NeoEase/lang/lang_zh_CN.properties b/bolo-NeoEase/lang/lang_zh_CN.properties deleted file mode 100644 index 389ad21..0000000 --- a/bolo-NeoEase/lang/lang_zh_CN.properties +++ /dev/null @@ -1,27 +0,0 @@ -# -# 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 . -# - -# -# 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=B3LOG diff --git a/bolo-NeoEase/macro-comments.ftl b/bolo-NeoEase/macro-comments.ftl deleted file mode 100644 index 99f30cd..0000000 --- a/bolo-NeoEase/macro-comments.ftl +++ /dev/null @@ -1,40 +0,0 @@ -<#-- - - 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 . - ---> -<#macro comments commentList article> - -
    - <#list commentList as comment> - <#include "common-comment.ftl"/> - -
    -<#if article.commentable> -
    -

    ${postCommentsLabel}

    - - - -
    - - \ No newline at end of file diff --git a/bolo-NeoEase/preview.png b/bolo-NeoEase/preview.png deleted file mode 100644 index 1779495..0000000 Binary files a/bolo-NeoEase/preview.png and /dev/null differ diff --git a/bolo-NeoEase/side.ftl b/bolo-NeoEase/side.ftl deleted file mode 100644 index 5fb33a4..0000000 --- a/bolo-NeoEase/side.ftl +++ /dev/null @@ -1,178 +0,0 @@ -<#-- - - 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 . - ---> -
    -
    -
    - <#include "../../common-template/macro-user_site.ftl"/> - <@userSite dir="nw"/> - <#if "" != noticeBoard> -

    -
    ${noticeBoard}
    - -
    - <#if article?? && article.articleToC?? && article.articleToC?size > 0> -
    -

    ${tocLabel}

    - <#include "../../common-template/toc.ftl"/> -
    - - <#else> - <#if interactive == "on"> - <#if 0 != recentComments?size> -
    -

    ${recentCommentsLabel}

    - -
    - - <#if 0 != mostCommentArticles?size> -
    -

    ${mostCommentArticlesLabel}

    - -
    - - - <#if 0 != mostViewCountArticles?size> -
    -

    ${mostViewCountArticlesLabel}

    - -
    - - - <#if 0 != mostUsedCategories?size> -
    -

    ${categoryLabel}

    - -
    -
    - - - <#if 0 != mostUsedTags?size> -
    -

    ${tagsLabel}

    - -
    -
    - - <#if 0 != links?size> -
    -

    ${linkLabel}

    - -
    - - <#if 0 != archiveDates?size> -
    -

    ${archiveLabel}

    - -
    - - -
    diff --git a/bolo-NeoEase/skin.properties b/bolo-NeoEase/skin.properties deleted file mode 100644 index 1816448..0000000 --- a/bolo-NeoEase/skin.properties +++ /dev/null @@ -1,26 +0,0 @@ -# -# 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 . -# - -# -# Description: NeoEase skin. -# Version: 1.0.0.7, Nov 21, 2012 -# Author: Liyuan Li -# - -name=NeoEase -memo=http://www.neoease.com/ diff --git a/bolo-NeoEase/tag-articles.ftl b/bolo-NeoEase/tag-articles.ftl deleted file mode 100644 index dccb543..0000000 --- a/bolo-NeoEase/tag-articles.ftl +++ /dev/null @@ -1,49 +0,0 @@ -<#-- - - 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 . - ---> -<#include "../../common-template/macro-common_head.ftl"> - - - - <@head title="${tag.tagTitle} ${tagLabel} - ${blogTitle}"> - - - - - ${topBarReplacement} - <#include "header.ftl"> -
    -
    - - <#include "side.ftl"> -
    -
    -
    - <#include "footer.ftl"> - - diff --git a/bolo-NeoEase/tags.ftl b/bolo-NeoEase/tags.ftl deleted file mode 100644 index 2517b8e..0000000 --- a/bolo-NeoEase/tags.ftl +++ /dev/null @@ -1,55 +0,0 @@ -<#-- - - 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 . - ---> -<#include "../../common-template/macro-common_head.ftl"> - - - - <@head title="${allTagsLabel} - ${blogTitle}"> - - - - - ${topBarReplacement} - <#include "header.ftl"> -
    -
    -
    - -
    - <#include "side.ftl"> -
    -
    -
    - <#include "footer.ftl"> - - - diff --git a/bolo-fantastic/category-articles.ftl b/category-articles.ftl similarity index 100% rename from bolo-fantastic/category-articles.ftl rename to category-articles.ftl diff --git a/bolo-fantastic/common-comment.ftl b/common-comment.ftl similarity index 100% rename from bolo-fantastic/common-comment.ftl rename to common-comment.ftl diff --git a/bolo-fantastic/css/base.css b/css/base.css similarity index 100% rename from bolo-fantastic/css/base.css rename to css/base.css diff --git a/bolo-fantastic/css/base.scss b/css/base.scss similarity index 100% rename from bolo-fantastic/css/base.scss rename to css/base.scss diff --git a/bolo-fantastic/css/style.css b/css/style.css similarity index 100% rename from bolo-fantastic/css/style.css rename to css/style.css diff --git a/bolo-fantastic/css/style.scss b/css/style.scss similarity index 100% rename from bolo-fantastic/css/style.scss rename to css/style.scss diff --git a/bolo-fantastic/footer.ftl b/footer.ftl similarity index 100% rename from bolo-fantastic/footer.ftl rename to footer.ftl diff --git a/bolo-fantastic/header.ftl b/header.ftl similarity index 100% rename from bolo-fantastic/header.ftl rename to header.ftl diff --git a/bolo-fantastic/index.ftl b/index.ftl similarity index 100% rename from bolo-fantastic/index.ftl rename to index.ftl diff --git a/bolo-fantastic/js/common.js b/js/common.js similarity index 100% rename from bolo-fantastic/js/common.js rename to js/common.js diff --git a/bolo-fantastic/js/common.min.js b/js/common.min.js similarity index 100% rename from bolo-fantastic/js/common.min.js rename to js/common.min.js diff --git a/bolo-fantastic/js/layer.js b/js/layer.js similarity index 100% rename from bolo-fantastic/js/layer.js rename to js/layer.js diff --git a/bolo-fantastic/js/lazyload.js b/js/lazyload.js similarity index 100% rename from bolo-fantastic/js/lazyload.js rename to js/lazyload.js diff --git a/bolo-fantastic/js/mobile/layer.js b/js/mobile/layer.js similarity index 100% rename from bolo-fantastic/js/mobile/layer.js rename to js/mobile/layer.js diff --git a/bolo-fantastic/js/mobile/need/layer.css b/js/mobile/need/layer.css similarity index 100% rename from bolo-fantastic/js/mobile/need/layer.css rename to js/mobile/need/layer.css diff --git a/bolo-fantastic/js/theme/default/icon-ext.png b/js/theme/default/icon-ext.png similarity index 100% rename from bolo-fantastic/js/theme/default/icon-ext.png rename to js/theme/default/icon-ext.png diff --git a/bolo-fantastic/js/theme/default/icon.png b/js/theme/default/icon.png similarity index 100% rename from bolo-fantastic/js/theme/default/icon.png rename to js/theme/default/icon.png diff --git a/bolo-fantastic/js/theme/default/layer.css b/js/theme/default/layer.css similarity index 100% rename from bolo-fantastic/js/theme/default/layer.css rename to js/theme/default/layer.css diff --git a/bolo-fantastic/js/theme/default/loading-0.gif b/js/theme/default/loading-0.gif similarity index 100% rename from bolo-fantastic/js/theme/default/loading-0.gif rename to js/theme/default/loading-0.gif diff --git a/bolo-fantastic/js/theme/default/loading-1.gif b/js/theme/default/loading-1.gif similarity index 100% rename from bolo-fantastic/js/theme/default/loading-1.gif rename to js/theme/default/loading-1.gif diff --git a/bolo-fantastic/js/theme/default/loading-2.gif b/js/theme/default/loading-2.gif similarity index 100% rename from bolo-fantastic/js/theme/default/loading-2.gif rename to js/theme/default/loading-2.gif diff --git a/bolo-fantastic/links.ftl b/links.ftl similarity index 100% rename from bolo-fantastic/links.ftl rename to links.ftl diff --git a/bolo-fantastic/macro-comments.ftl b/macro-comments.ftl similarity index 100% rename from bolo-fantastic/macro-comments.ftl rename to macro-comments.ftl diff --git a/bolo-fantastic/macro-user_site.ftl b/macro-user_site.ftl similarity index 100% rename from bolo-fantastic/macro-user_site.ftl rename to macro-user_site.ftl diff --git a/bolo-fantastic/preview.png b/preview.png similarity index 100% rename from bolo-fantastic/preview.png rename to preview.png diff --git a/bolo-fantastic/side-right.ftl b/side-right.ftl similarity index 100% rename from bolo-fantastic/side-right.ftl rename to side-right.ftl diff --git a/bolo-fantastic/side.ftl b/side.ftl similarity index 100% rename from bolo-fantastic/side.ftl rename to side.ftl diff --git a/bolo-fantastic/skin.properties b/skin.properties similarity index 100% rename from bolo-fantastic/skin.properties rename to skin.properties diff --git a/bolo-fantastic/style.theme.ftl b/style.theme.ftl similarity index 100% rename from bolo-fantastic/style.theme.ftl rename to style.theme.ftl diff --git a/bolo-fantastic/tag-articles.ftl b/tag-articles.ftl similarity index 100% rename from bolo-fantastic/tag-articles.ftl rename to tag-articles.ftl diff --git a/bolo-fantastic/tags.ftl b/tags.ftl similarity index 100% rename from bolo-fantastic/tags.ftl rename to tags.ftl diff --git a/bolo-fantastic/toc-post.ftl b/toc-post.ftl similarity index 100% rename from bolo-fantastic/toc-post.ftl rename to toc-post.ftl