diff --git a/README.md b/README.md index fdd0214..416fb00 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ -# bolo-skins +## 简介 -迁移到bolo 博客,保存自己自定义的皮肤部分。 \ No newline at end of file +迁移到bolo 博客,保存自己自定义的皮肤部分。 + +皮肤样例: +- [bolo-fantastic](https://www.zeekling.cn/?skin=bolo-fantastic-mod) + +个人站点:[小令童鞋](https://www.zeekling.cn/) diff --git a/bolo-fantastic/archive-articles.ftl b/bolo-fantastic/archive-articles.ftl new file mode 100644 index 0000000..8905787 --- /dev/null +++ b/bolo-fantastic/archive-articles.ftl @@ -0,0 +1,83 @@ +<#-- + + 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 . + +--> +<#-- Solo - A small and beautiful blogging system written in Java. Copyright (c) 2010-present, b3log.org This program is + free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more + details. You should have received a copy of the GNU Affero General Public License along with this program. If not, + see . --> +<#include "../../common-template/macro-common_head.ftl"> + + + + + + <@head title="${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} ${archiveLabel} - ${blogTitle}"> + + + + + + + <#-- <#include "style.theme.ftl"> --> + + + +<#include "header.ftl"> +
+
+
+
+ +
+
+
+
+
+
+ <#include "article-list.ftl"> +
+
+ <#include "side-right.ftl"> + + +
+
+
+
+
+
+ <#include "side.ftl"> +
+ +
+
+
+ +<#include "footer.ftl"> + + + \ No newline at end of file diff --git a/bolo-fantastic/archives.ftl b/bolo-fantastic/archives.ftl new file mode 100644 index 0000000..61013f1 --- /dev/null +++ b/bolo-fantastic/archives.ftl @@ -0,0 +1,117 @@ +<#-- + + 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 . + +--> +<#-- Solo - A small and beautiful blogging system written in Java. Copyright (c) 2010-present, b3log.org This program is + free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more + details. You should have received a copy of the GNU Affero General Public License along with this program. If not, + see . --> +<#include "../../common-template/macro-common_head.ftl"> + + + + + + + <@head title="${archiveLabel} - ${blogTitle}"> + + + + + + + + + <#-- <#include "style.theme.ftl"> --> + + + +<#include "header.ftl"> +
+
+
+
+ +
+
+
+
+
+
+
+
+ + + + +
+
+
+
+ <#include "side-right.ftl"> + + +
+
+
+
+
+
+ <#include "side.ftl"> +
+ +
+
+
+ + + +<#include "footer.ftl"> + + + \ No newline at end of file diff --git a/bolo-fantastic/article-list.ftl b/bolo-fantastic/article-list.ftl new file mode 100644 index 0000000..438bf90 --- /dev/null +++ b/bolo-fantastic/article-list.ftl @@ -0,0 +1,150 @@ +<#-- + + 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 . + +--> +<#-- 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> + <#if article.articlePutTop> +
+
+
+
+
+ + ${article.articleTitle!} + +
+
+
+ ${article.articleUpdateDate?string("yyyy年MM月dd日")} + <#if article.categoryURI??> + ${article.articleCategory} + +
+ +
+ <#if article.articleAbstractText!?length gt 24> + ${article.articleAbstractText!?substring(0, 24)} ......<#else> + ${article.articleAbstractText!} +
+ 阅读更多 +
+
+ +
+
+
+
+ <#else> +
+
+ + ${article.articleTitle!} + + +
+
+ +

+ + ${article.articleTitle!} + +

+
+ <#if article.articleAbstractText!?length gt 128> + ${article.articleAbstractText!?substring(0, 128)} ......<#else> + ${article.articleAbstractText!} + <#-- ${article.articleAbstractText!?substring(0, 128)} ...... --> +
+ +
+
+ +
+
+
+ +
+ + + + + + + + + +
+ + +
+
\ No newline at end of file diff --git a/bolo-fantastic/article.ftl b/bolo-fantastic/article.ftl new file mode 100644 index 0000000..ad649c3 --- /dev/null +++ b/bolo-fantastic/article.ftl @@ -0,0 +1,191 @@ +<#-- + + 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 . + +--> +<#-- 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 . --> + <#-- Solo - A small and beautiful blogging system written in Java. Copyright (c) 2010-present, b3log.org This + program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General + Public License as published by the Free Software Foundation, either version 3 of the License, or (at your + option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Affero General Public License for more details. You should have received a copy of the GNU Affero General Public + License along with this program. If not, see . --> +<#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}"> + + + + + + + + <#-- <#include "style.theme.ftl"> --> + + + <#include "header.ftl"> + +
+
+
+
+
+
+
+

+ ${article.articleTitle} +

+ + +
+ ${article.articleContent} +
+
+
+
+ # + <#list article.articleTags?split(",") as articleTag> + ${articleTag!}  + +
+
+
+ <#if "" !=article.articleSign.signHTML?trim> +
${article.articleSign.signHTML}
+ +
+
+
+
+

评论

+ <@comments commentList=articleComments article=article + count=article.articleCommentCount> + +
+
+
+
+ <#include "toc-post.ftl"> +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ + <#include "footer.ftl"> + <@comment_script oId=article.oId commentable=article.commentable> + page.tips.externalRelevantArticlesDisplayCount = + "${externalRelevantArticlesDisplayCount}"; + <#if 0 !=randomArticlesDisplayCount> + page.loadRandomArticles('

${randomArticlesLabel}

'); + + <#if 0 !=relevantArticlesDisplayCount> + page.loadRelevantArticles('${article.oId}', '

${relevantArticlesLabel}

'); + + Skin.initArticle() + + + + diff --git a/bolo-fantastic/category-articles.ftl b/bolo-fantastic/category-articles.ftl new file mode 100644 index 0000000..523b2e6 --- /dev/null +++ b/bolo-fantastic/category-articles.ftl @@ -0,0 +1,83 @@ +<#-- + + 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 . + +--> +<#-- Solo - A small and beautiful blogging system written in Java. Copyright (c) 2010-present, b3log.org This program is + free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more + details. You should have received a copy of the GNU Affero General Public License along with this program. If not, + see . --> +<#include "../../common-template/macro-common_head.ftl"> + + + + + + <@head title="${category.categoryTitle} - ${blogTitle}"> + + + + + + + <#-- <#include "style.theme.ftl"> --> + + + +<#include "header.ftl"> +
+
+
+
+ +
+
+
+
+
+
+ <#include "article-list.ftl"> +
+
+ <#include "side-right.ftl"> + + +
+
+
+
+
+
+ <#include "side.ftl"> +
+ +
+
+
+ +<#include "footer.ftl"> + + + \ No newline at end of file diff --git a/bolo-fantastic/common-comment.ftl b/bolo-fantastic/common-comment.ftl new file mode 100644 index 0000000..5b36946 --- /dev/null +++ b/bolo-fantastic/common-comment.ftl @@ -0,0 +1,72 @@ +<#-- + + 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 . + +--> +
  • +
    +
    + + ${comment.commentName} + +
    +
    +
    + + + #${comment.oId}
    + +
    + ${comment.commentContent} +
    +
    +
    +
  • \ No newline at end of file diff --git a/bolo-fantastic/css/base.css b/bolo-fantastic/css/base.css new file mode 100644 index 0000000..0ad08eb --- /dev/null +++ b/bolo-fantastic/css/base.css @@ -0,0 +1 @@ +#back-to-top{position:fixed;padding:8px 0;-webkit-transition:.4s ease opacity,.4s ease width,.4s ease transform,.4s ease border-radius;transition:.4s ease opacity,.4s ease width,.4s ease transform,.4s ease border-radius;opacity:0;line-height:24px;outline:0;-webkit-transform:translateY(120px);transform:translateY(120px)}#back-to-top.fade-in{opacity:1}#back-to-top.rise-up{-webkit-transform:translateY(0);transform:translateY(0)}.ins-section-container{position:relative;background:#f7f7f7}.ins-section{font-size:14px;line-height:16px}.ins-section .ins-search-item,.ins-section .ins-section-header{padding:8px 15px}.ins-section .ins-section-header{color:#9a9a9a}.ins-section .ins-slug{margin-left:5px;color:#9a9a9a}.ins-section .ins-slug:before{content:'('}.ins-section .ins-slug:after{content:')'}.ins-section .ins-search-item .ins-search-preview,.ins-section .ins-search-item header{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ins-section .ins-search-item header .ins-title{margin-left:8px}.ins-section .ins-search-item .ins-search-preview{height:15px;font-size:12px;color:#9a9a9a;margin:5px 0 0 20px}.ins-section .ins-search-item.active,.ins-section .ins-search-item:hover{color:#fff;background:#3273dc}.ins-section .ins-search-item.active .ins-search-preview,.ins-section .ins-search-item.active .ins-slug,.ins-section .ins-search-item:hover .ins-search-preview,.ins-section .ins-search-item:hover .ins-slug{color:#fff}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#3273dc;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px}.searchbox{display:none;-webkit-perspective:50em;perspective:50em;top:0;left:0;width:100%;height:100%;z-index:100;background:rgba(0,0,0,0.7);-webkit-transform-origin:0;transform-origin:0;-webkit-perspective-origin:top center;perspective-origin:top center}.searchbox.show{display:block}.searchbox,.searchbox .searchbox-container{position:fixed}.searchbox .searchbox-container{overflow:hidden}.searchbox .searchbox-selectable{cursor:pointer}.searchbox .searchbox-input-wrapper{position:relative}.searchbox .searchbox-input-wrapper .searchbox-input{font-weight:400 !important;width:100%;border:none;outline:0;font-size:16px;box-shadow:0 1px 2px 0 rgba(0,0,0,0.05);font-weight:200;border-radius:0;background:#fff;line-height:20px;box-sizing:border-box;padding:12px 28px 12px 20px;border-bottom:1px solid #e2e2e2}.searchbox .searchbox-input-wrapper .searchbox-close{top:50%;right:6px;width:20px;height:20px;line-height:20px;font-size:16px;margin-top:-11px;position:absolute;text-align:center;display:inline-block}.searchbox .searchbox-input-wrapper .searchbox-close:hover{color:#3273dc}.searchbox .searchbox-result-wrapper{left:0;right:0;top:45px;bottom:0;overflow-y:auto;position:absolute}.searchbox .searchbox-container{border-radius:2px;left:50%;top:100px;width:540px;z-index:101;bottom:100px;margin-left:-270px;box-sizing:border-box}@media screen and (max-width: 559px), screen and (max-height: 479px){.searchbox .searchbox-container{top:0;left:0;margin:0;width:100%;height:100%;background:#f7f7f7}}.ant-tag{font-family:Chinese Quote, -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;font-size:14px;font-variant:tabular-nums;line-height:1.5;color:rgba(0,0,0,0.65);box-sizing:border-box;margin:0;padding:5px 15px;list-style:none;display:inline-block;border-radius:2px;border:1px solid #d9d9d9;background:#fafafa;font-size:12px;-webkit-transition:all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);transition:all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);opacity:1;margin-right:8px;cursor:pointer;white-space:nowrap;opacity:.8;font-weight:400;text-transform:uppercase}.ant-tag:hover{opacity:1;border-color:#91d5ff}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(0,0,0,0.65)}.ant-tag-pink{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-pink-inverse{background:#eb2f96;border-color:#eb2f96;color:#fff}.ant-tag-magenta{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-magenta-inverse{background:#eb2f96;border-color:#eb2f96;color:#fff}.ant-tag-red{color:#f5222d;background:#fff1f0;border-color:#ffa39e}.ant-tag-red-inverse{background:#f5222d;border-color:#f5222d;color:#fff}.ant-tag-volcano{color:#fa541c;background:#fff2e8;border-color:#ffbb96}.ant-tag-volcano-inverse{background:#fa541c;border-color:#fa541c;color:#fff}.ant-tag-orange{color:#fa8c16;background:#fff7e6;border-color:#ffd591}.ant-tag-orange-inverse{background:#fa8c16;border-color:#fa8c16;color:#fff}.ant-tag-yellow{color:#fadb14;background:#feffe6;border-color:#fffb8f}.ant-tag-yellow-inverse{background:#fadb14;border-color:#fadb14;color:#fff}.ant-tag-gold{color:#faad14;background:#fffbe6;border-color:#ffe58f}.ant-tag-gold-inverse{background:#faad14;border-color:#faad14;color:#fff}.ant-tag-cyan{color:#13c2c2;background:#e6fffb;border-color:#87e8de}.ant-tag-cyan-inverse{background:#13c2c2;border-color:#13c2c2;color:#fff}.ant-tag-lime{color:#a0d911;background:#fcffe6;border-color:#eaff8f}.ant-tag-lime-inverse{background:#a0d911;border-color:#a0d911;color:#fff}.ant-tag-green{color:#52c41a;background:#f6ffed;border-color:#b7eb8f}.ant-tag-green-inverse{background:#52c41a;border-color:#52c41a;color:#fff}.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}.ant-tag-blue-inverse{background:#1890ff;border-color:#1890ff;color:#fff}.ant-tag-geekblue{color:#2f54eb;background:#f0f5ff;border-color:#adc6ff}.ant-tag-geekblue-inverse{background:#2f54eb;border-color:#2f54eb;color:#fff}.ant-tag-purple{color:#722ed1;background:#f9f0ff;border-color:#d3adf7}.ant-tag-purple-inverse{background:#722ed1;border-color:#722ed1;color:#fff}html{font-size:14px}.section{padding:2rem 1.5rem}body,button,input,select,textarea{font-family:'PingFangSC-Regular', 'Ubuntu', sans-serif}.tag:not(body),.button,.file-cta,.file-name,.input,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.select select,.textarea{border-radius:2px}@media screen and (min-width: 1280px){.is-1-column .container,.is-2-column .container{max-width:960px;width:960px}}@media screen and (min-width: 1472px){.is-2-column .container{max-width:1152px;width:1152px}.is-1-column .container{max-width:960px;width:960px}}@media screen and (max-width: 768px){.section{padding:4.5rem 1rem}}@media screen and (min-width: 769px){.column-main.is-sticky,.column-left.is-sticky,.column-right.is-sticky,.column-right-shadow.is-sticky{align-self:flex-start;position:-webkit-sticky;position:sticky;top:0.75rem}.column-right-shadow.is-sticky{top:1.5rem}}.tag.is-grey{background:#e7e7e7}.card{border-radius:2px;box-shadow:0 1px 2px 0 rgba(0,0,0,0.05)}@media screen and (max-width: 769px){.card-image img{height:80% !important}}.card-normal .card{border-radius:2px;box-shadow:0 1px 2px 0 rgba(0,0,0,0.05);display:-webkit-box;display:flex}.card-normal .card+.card,.card-normal .card+.column-right-shadow{margin-top:1.5rem}.card-normal .card.card-transparent{box-shadow:none;background:transparent}.card-normal .card .card-image{border-top-left-radius:4px;border-top-right-radius:4px;-webkit-box-flex:8;flex:8}.card-normal .card .card-image img{max-height:150px;top:50%;-webkit-transform:translateX(-5%) translateY(-50%);transform:translateX(-5%) translateY(-50%);position:relative;border-radius:2px;box-shadow:3px 4px 12px 0 rgba(0,0,0,0.2)}.card-normal .card:hover .card-image img{-webkit-filter:brightness(0.85);filter:brightness(0.85)}.card-normal .card .card-content{-webkit-box-flex:12;flex:12;padding:1rem}img.thumbnail{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;box-shadow:3px 4px 12px 0 rgba(0,0,0,0.2);border-radius:2px}.navbar-logo img,.footer-logo img{max-height:1.75rem}.navbar-main{box-shadow:0 4px 10px rgba(0,0,0,0.05)}.navbar-main .navbar-item{padding-right:1.5rem}.navbar-main .navbar-item.is-active{color:#3273dc;background-color:transparent}.navbar-main .navbar-item .navbar-dropdown{border-radius:2px;box-shadow:0 8px 8px rgba(10,10,10,0.1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.navbar-main .navbar-item .sub-menu{color:#4a4a4a;padding:1rem}.navbar-main .navbar-item .sub-menu:after{content:'\2022';position:absolute;color:#3273dc}@media screen and (max-width: 769px){.navbar-main{left:0;position:fixed;right:0;z-index:30;top:0}.navbar-main .navbar-item{padding:0.55rem 0.75rem}.navbar-main .navbar-item .navbar-dropdown{box-shadow:none}}.footer{background:#fff}.footer .field .button{background:transparent}.widget .media{border:none}.widget .media+.media{margin-top:0}.widget .menu-list li ul{margin-right:0}.widget .menu-list a.level{display:-webkit-box;display:flex}.pagination{width:100%}.pagination .pagination-link:not(.is-current),.pagination .pagination-previous,.pagination .pagination-next{background:#fff;border:none}.pagination .pagination-link,.pagination .pagination-previous,.pagination .pagination-next{box-shadow:0 4px 10px rgba(0,0,0,0.05)}.post-navigation{width:100%}.post-navigation .level-item{margin-bottom:0}.timeline{margin-left:1rem;padding-left:1.5rem;padding-top:1rem;border-left:1px solid #dbdbdb}.timeline .media{position:relative}.timeline .media:before,.timeline .media:last-child:after{content:'';display:block;position:absolute;left:calc(-5px - 1.5rem)}.timeline .media:before{width:9px;height:9px;top:1.3rem;background:#dbdbdb;border-radius:50%}.timeline .media:first-child:before{top:0.3rem}.timeline .media:last-child:after{top:calc(1.3rem + 9px);width:9px;bottom:0;background:#fff}.timeline .media:first-child:last-child:after{top:calc(0.3rem + 9px)}.article .article-meta{margin-bottom:0.5rem !important}.article .content{font-size:1.1rem}.article .content blockquote.pullquote{float:right;max-width:50%;font-size:1.15rem;position:relative}.article .content a{word-wrap:break-word}.article .content p{line-height:1.9rem}.article blockquote{border-left:0.4rem solid #4b8af3;background-color:#e9f5fe}.rtl{direction:rtl}.rtl .level .level-item:not(:last-child),.rtl .level.is-mobile .level-item:not(:last-child){margin-left:0.75rem;margin-right:0}.donate{position:relative}.donate .qrcode{display:none;position:absolute;z-index:99;bottom:2.5em;line-height:0;overflow:hidden;border-radius:2px;box-shadow:0 4px 10px rgba(0,0,0,0.1),0 0 1px rgba(0,0,0,0.2);overflow:hidden}.donate .qrcode img{max-width:280px}.donate:hover .qrcode{display:block}.donate:first-child:not(:last-child) .qrcode{left:-0.75rem}.donate:last-child:not(:first-child) .qrcode{right:-0.75rem}@media screen and (max-width: 768px){#toc{display:none;position:fixed;margin:1rem;left:0;right:0;bottom:0;z-index:100;max-height:calc(100vh - 2rem);overflow-y:auto}#toc-mask{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:99;background:rgba(0,0,0,0.7)}#toc.is-active,#toc-mask.is-active{display:block}}.is-borderless{border:none}.is-size-7{font-size:0.85rem !important}.is-7by1{padding-top:42.8%}.is-7by1 img{bottom:0;left:0;position:absolute;right:0;top:0}.is-overflow-x-auto{overflow-x:auto !important}.is-flex-grow{-webkit-box-flex:1 !important;flex-grow:1 !important}.is-flex-wrap{flex-wrap:wrap !important}.is-flex-start{-webkit-box-pack:start !important;justify-content:start !important}.is-flex-center{-webkit-box-pack:center !important;justify-content:center !important}.is-flex-middle{-webkit-box-align:center !important;align-items:center !important}.has-order-1{-webkit-box-ordinal-group:2;order:1}.has-order-2{-webkit-box-ordinal-group:3;order:2}.has-order-3{-webkit-box-ordinal-group:4;order:3}.has-mr-6{margin-right:0.5em !important}.has-mb-6{margin-bottom:0.5em !important}.has-mr-7{margin-right:0.25em !important}.has-link-grey,.has-link-black-ter{-webkit-transition:0.2s ease;transition:0.2s ease}.has-link-grey:hover,.has-link-black-ter:hover{color:#3273dc !important}.has-link-grey{color:#7a7a7a !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}.is-flex-center-mobile{-webkit-box-pack:center !important;justify-content:center !important}.has-mt-5-mobile{margin-top:1em !important}}.fa,.fab,.fal,.far,.fas{line-height:inherit;font-size:14px}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{font-weight:400}.content h1{font-size:1.55em}.content h2{font-size:1.5em}.content h3{font-size:1.25em}.content h4{font-size:1.125em}.content h5{font-size:1em}.content code,.content pre{font-size:0.95em;font-family:'Fira Sans', monospace, "Microsoft YaHei"}.content blockquote footer strong+cite{margin-left:0.5em}figure.highlight{padding:0;width:100%;position:relative;margin:1em 0 1em !important}figure.highlight.folded .highlight-body{height:0}figure.highlight pre,figure.highlight table tr:hover{color:inherit;background:transparent}figure.highlight table{width:auto}figure.highlight pre{padding:0;overflow:visible}figure.highlight pre .line{line-height:1.5rem}figure.highlight figcaption,figure.highlight .gutter{background:rgba(200,200,200,0.15)}figure.highlight figcaption{padding:0.3em 0.75em;text-align:left;font-style:normal;font-size:0.8em}figure.highlight figcaption:after{clear:both;content:" ";display:table}figure.highlight figcaption span{font-weight:500;font-family:'Fira Sans', monospace, "Microsoft YaHei"}figure.highlight figcaption .fold,figure.highlight figcaption a{color:#9a9a9a}figure.highlight figcaption a{float:right;margin-left:0.5em}figure.highlight figcaption .fold{margin-right:0.5em;cursor:pointer}figure.highlight .highlight-body{overflow:auto}figure.highlight .gutter{text-align:right}figure.highlight .tag,figure.highlight .title,figure.highlight .number,figure.highlight .section{display:inherit;font:inherit;margin:inherit;padding:inherit;background:inherit;height:inherit;text-align:inherit;vertical-align:inherit;min-width:inherit;border-radius:inherit}.table-overflow{overflow-x:auto}.table-overflow table{width:auto !important}.table-overflow table th{word-break:keep-all}.video-container{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.gist table tr:hover{background:transparent}.gist table td{border:none}.gist .file{all:initial}iframe,video{height:none}.post-article{word-wrap:break-word;line-height:1.8;letter-spacing:0.013rem}.post-article a{position:relative;white-space:normal;color:#4b8af3;background:transparent;text-decoration:none;font-weight:500;word-break:break-all}.post-article a::after{position:absolute;bottom:-0.2rem;left:100%;width:0;border-bottom:0.13rem solid #4b8af3;content:"";-webkit-transition:width 350ms, left 350ms;transition:width 350ms, left 350ms}.post-article a:hover::after{left:0;width:100%;-webkit-transition:width 350ms;transition:width 350ms}p{margin-top:0;margin-bottom:1.25rem;text-align:justify;display:block;-webkit-margin-before:1em;margin-block-start:1em;-webkit-margin-after:1em;margin-block-end:1em;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px}.comment-item-content img{width:100%}.ceta .is-active{border-bottom:#4b8af3 solid 2px;font-weight:600}.ceta .tabs a{border-bottom-style:none}.ceta .tabs a:hover{color:#4b8af3;font-weight:500}.widget .media+.media{margin-bottom:0}.media+.media{padding-top:0}.card .media:not(:last-child){margin-bottom:0}.profile .title{line-height:0.2}.profile .level{margin-bottom:2em}.profile .level:first-child{margin-top:0;margin-bottom:0}.profile .level:last-child{margin-top:1em;margin-bottom:0}.intro{margin-top:20px}.intro i{font-size:20px;color:#8e8787}.searchbox .searchbox-result-wrapper{overflow-y:visible !important}:root{--color: #333;--background: #f7f7f7;--cardbgcolor: #fff;--cardtitlecolor: #333333;--navbarcolor: #333333;--navbarbgcolor: rgba(255, 255, 255, 0.7);--img-default-filter: none;--img-hover-filter: none;--btn-bg-color: #f5f5f5;--btn-color: #333;--btn-hover-color: #eee;--link-color: #1485FE;--link-hover-color: #1485FE;--code-bg-color: #2c2a2a;--code-default-color: #A2A1A1;--code-line-numbers-bg-color: #403E3E;--code-line-numbers-color: #888;--code-keyworks-color: #c9c;--code-class-color: #f2777a;--code-cdata-color: hsl(313, 67%, 36%);--code-symbol-color: hsl(33, 83%, 45%);--code-variable-color: hsl(281, 89%, 64%);--code-regex-color: #e90;--code-deleted-color: red;--code-toolbar-bg-color: #454545;--code-toolbar-color: #1485FE;--code-line-numbers-rows-color: #888;--toc-dot-color: #1485FE;--toc-dot-active-bg-color: #ebedef;--toc-dot-active-color: #1485FE;--toc-vertical-line-color: #888;--toc-item-bg-hover: #1485FE}@media (prefers-color-scheme: light){:root{--color: #333333;--background: #f7f7f7;--cardbgcolor: #fff;--cardcolor: #333;--cardtitlecolor: #333333;--navbarcolor: #333333;--navbarbgcolor: rgba(255, 255, 255, 0.7);--img-default-filter: none;--img-hover-filter: none;--link-color: #1485FE;--link-hover-color: #1485FE;--code-bg-color: #F1F3F3;--code-default-color: #A2A1A1;--code-line-numbers-bg-color: #EBEDED;--code-line-numbers-color: #888;--code-keyworks-color: #7012cc;--code-class-color: #f2777a;--code-cdata-color: hsl(313, 67%, 36%);--code-symbol-color: hsl(33, 83%, 45%);--code-variable-color: hsl(281, 89%, 64%);--code-regex-color: #e90;--code-deleted-color: red;--code-toolbar-bg-color: #EBEDED;--code-toolbar-color: #1485FE;--code-line-numbers-rows-color: #888;--toc-dot-color: #1485FE;--toc-dot-active-color: #1485FE;--toc-dot-active-bg-color: #ebedef;--toc-vertical-line-color: #1485FE;--toc-item-bg-hover: #1485FE}}@media (prefers-color-scheme: dark){:root{--color: #CCC;--background: #2c2a2a !important;--cardbgcolor: #343232 !important;--cardcolor: #bcbcbc;--cardtitlecolor: #bcbcbc;--navbarcolor: #bcbcbc;--navbarbgcolor: rgba(52, 50, 50, 0.7);img-default-filter:none;--img-hover-filter: none;--btn-bg-color: #2c2a2a;--btn-color: #bcbcbc;--btn-hover-color: #333;--link-color: #1485FE;--link-hover-color: #1485FE;--code-bg-color: #2c2a2a;--code-default-color: #A2A1A1;--code-line-numbers-bg-color: #403E3E;--code-line-numbers-color: #888;--code-keyworks-color: #c9c;--code-class-color: #f2777a;--code-cdata-color: hsl(313, 67%, 36%);--code-symbol-color: hsl(33, 83%, 45%);--code-variable-color: hsl(281, 89%, 64%);--code-regex-color: #e90;--code-deleted-color: red;--code-toolbar-bg-color: #454545;--code-toolbar-color: #fff;--code-line-numbers-rows-color: #888;--toc-dot-color: #1485FE;--toc-dot-active-bg-color: rgba(255, 255, 255, 0.2);--toc-dot-active-color: #1485FE;--toc-vertical-line-color: #888;--toc-bg-bg-hover: #321}}html{background:var(--background);color:var(--color)}body>.footer,body>.navbar{background-color:var(--cardbgcolor);color:var(--cardcolor)}a:hover{color:var(--link-color)}.content a{color:var(--link-color)}.content a:hover{color:var(--link-hover-color);font-weight:400}.card{background-color:var(--cardbgcolor);color:var(--cardcolor)}.card .card-image img,img.thumbnail{-webkit-filter:var(--img-default-filter);filter:var(--img-default-filter)}.card .card-image img:hover,img.thumbnail:hover{-webkit-filter:var(--img-hover-filter);filter:var(--img-hover-filter)}.card .title{color:var(--color) !important}.navbar-dropdown{background-color:var(--background)}pre,blockquote{background-color:var(--code-bg-color) !important;color:var(--color) !important}.card .content,.pagination .pagination-link:not(.is-current),.pagination .pagination-previous,.pagination .pagination-next{background-color:var(--cardbgcolor);color:var(--cardcolor)}.navbar-item,.navbar-link,.navbar-main .navbar-item .sub-menu{color:var(--navbarcolor)}.has-link-black-ter{color:var(--cardtitlecolor) !important}.button{background-color:var(--btn-bg-color) !important;color:var(--btn-color) !important}.button:hover{background-color:var(--btn-hover-color) !important}body>footer>div>div>div.level-end>div>a>i{background-color:transparent;color:var(--color)}.level .level-item.button{background-color:var(--cardbgcolor) !important;border-color:var(--cardbgcolor) !important;color:var(--color) !important}.menu-list .level{color:var(--color)}.menu-list a:hover{background-color:var(--background);opacity:0.6;color:var(--link-hover-color)}.tag:not(body){background-color:var(--background) !important;color:var(--color) !important}.content .tag{background-color:transparent !important;color:var(--code-class-color) !important}h1,h2,h3,h4,h5,h6,h7,strong{color:var(--color) !important}.is-active a{color:var(--color) !important}a.navbar-item:hover{background-color:var(--cardbgcolor);color:#3273dc}code{color:var(--color);background-color:var(--code-bg-color)}code[class*="language-"],pre[class*="language-"]{color:var(--color);background-color:var(--code-bg-color) !important}pre[class*="language-"],:not(pre)>code[class*="language-"]{background:var(--background)}:not(pre)>code[class*="language-"]{border:red}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:var(--code-cdata-color)}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol{color:var(--code-symbol-color)}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:var(--code-class-color)}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:var(--code-variable-color)}.token.atrule,.token.attr-value,.token.keyword{color:var(--code-keyworks-color)}.token.regex,.token.important{color:var(--code-regex-color)}.token.deleted{color:var(--code-deleted-color)}.line-numbers .line-numbers-rows{background-color:var(--code-line-numbers-bg-color) !important}.line-numbers-rows>span:before{color:var(--code-line-numbers-color) !important}.line-highlight{background:rgba(21,21,21,0.2) !important;background:-webkit-gradient(linear, left top, right top, color-stop(70%, rgba(21,21,21,0.2)), to(rgba(21,21,21,0))) !important;background:linear-gradient(to right, rgba(21,21,21,0.2) 70%, rgba(21,21,21,0)) !important}div.code-toolbar>.toolbar a,div.code-toolbar>.toolbar button,div.code-toolbar>.toolbar span{background:var(--code-toolbar-bg-color) !important;box-shadow:0 1px 2px 0 rgba(0,0,0,0.05)}div.code-toolbar>.toolbar a:hover,div.code-toolbar>.toolbar a:focus,div.code-toolbar>.toolbar button:hover,div.code-toolbar>.toolbar button:focus,div.code-toolbar>.toolbar span:hover,div.code-toolbar>.toolbar span:focus{color:var(--code-toolbar-color) !important}.line-numbers-rows>span:before{color:var(--code-line-numbers-rows-color)}.content table thead td,.content table thead th{color:var(--color)}#toc ul li a,#toc ul li ul li a,#toc ul li ul li ul li a{color:var(--color)}#toc .active{color:var(--toc-dot-active-color) !important}#toc>ul li::before{background-color:var(--toc-dot-color)}#toc a:hover{color:var(--toc-dot-active-color) !important;background-color:var(--toc-dot-active-bg-color)}#toc>ul:before{background-color:var(--toc-vertical-line-color)}.navbar-burger{color:var(--color)}.navbar-menu{background-color:var(--cardbgcolor)}body>.navbar{background-color:var(--navbarbgcolor);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.content table thead td,.content table thead th{border:1px solid var(--background)}.content table td,.content table th{border:1px solid var(--background)}table{border:2px solid var(--btn-hover-color)}thead,tbody,tr,th{border:1px solid var(--background)}footer .title{color:var(--color)}footer .button{background-color:var(--cardbgcolor) !important}.blog-slider{position:relative;width:100%;margin:auto;padding:25px;border-radius:2px;height:250px;-webkit-transition:all .3s;transition:all .3s}@media screen and (max-width: 769px){.blog-slider{height:auto;margin-top:80px}}.blog-slider__item{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}@media screen and (max-width: 768px){.blog-slider__item{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}}.blog-slider__item.swiper-slide-active .blog-slider__img img{opacity:1;-webkit-transition-delay:.3s;transition-delay:.3s}.blog-slider__item.swiper-slide-active .blog-slider__content>*{opacity:1;-webkit-transform:none;transform:none}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(1){-webkit-transition-delay:0.3s;transition-delay:0.3s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(2){-webkit-transition-delay:0.4s;transition-delay:0.4s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(3){-webkit-transition-delay:0.5s;transition-delay:0.5s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(4){-webkit-transition-delay:0.6s;transition-delay:0.6s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(5){-webkit-transition-delay:0.7s;transition-delay:0.7s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(6){-webkit-transition-delay:0.8s;transition-delay:0.8s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(7){-webkit-transition-delay:0.9s;transition-delay:0.9s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(8){-webkit-transition-delay:1s;transition-delay:1s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(9){-webkit-transition-delay:1.1s;transition-delay:1.1s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(10){-webkit-transition-delay:1.2s;transition-delay:1.2s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(11){-webkit-transition-delay:1.3s;transition-delay:1.3s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(12){-webkit-transition-delay:1.4s;transition-delay:1.4s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(13){-webkit-transition-delay:1.5s;transition-delay:1.5s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(14){-webkit-transition-delay:1.6s;transition-delay:1.6s}.blog-slider__item.swiper-slide-active .blog-slider__content>*:nth-child(15){-webkit-transition-delay:1.7s;transition-delay:1.7s}.blog-slider__img{width:300px;flex-shrink:0;height:200px;background-image:linear-gradient(147deg, #fffcf9, #cde8f6);box-shadow:3px 4px 12px 0 rgba(0,0,0,0.2);border-radius:2px;-webkit-transform:translateX(-40px);transform:translateX(-40px);overflow:hidden}.blog-slider__img:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;border-radius:2px;opacity:0.2}.blog-slider__img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;opacity:0;border-radius:2px;-webkit-transition:all .3s;transition:all .3s}@media screen and (max-width: 768px){.blog-slider__img{-webkit-transform:translateY(-50%);transform:translateY(-50%);width:90%}}@media screen and (max-width: 576px){.blog-slider__img{width:95%}}.blog-slider__content{padding-right:25px}@media screen and (max-width: 768px){.blog-slider__content{margin-top:-80px;text-align:center;padding:0 30px}}@media screen and (max-width: 576px){.blog-slider__content{padding:0}}.blog-slider__content>*{opacity:0;-webkit-transform:translateY(25px);transform:translateY(25px);-webkit-transition:all .4s;transition:all .4s}.blog-slider__code{color:#7b7992;margin-bottom:10px;display:block;font-weight:500}.blog-slider__title{margin-bottom:10px}.blog-slider__text{margin-bottom:20px;line-height:1.5em}.blog-slider__button{display:-webkit-inline-box;display:inline-flex;background-image:linear-gradient(149deg, #6c2bfe, #7e8dfd 49.58%);padding:8px 25px;border-radius:2px;color:#fff;box-shadow:3px 4px 12px 0 rgba(0,0,0,0.2);text-decoration:none;font-weight:500;-webkit-box-pack:center;justify-content:center;text-align:center;letter-spacing:1px}.blog-slider .swiper-container-horizontal>.swiper-pagination-bullets,.blog-slider .swiper-pagination-custom,.blog-slider .swiper-pagination-fraction{bottom:10px;left:0;width:100%}.blog-slider__pagination{position:absolute;z-index:21;right:20px;width:11px !important;text-align:center;left:auto !important;top:50%;bottom:auto !important;-webkit-transform:translateY(-50%);transform:translateY(-50%)}@media screen and (max-width: 768px){.blog-slider__pagination{-webkit-transform:translateX(-50%);transform:translateX(-50%);left:50% !important;top:190px;width:100% !important;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center}}.blog-slider__pagination.swiper-pagination-bullets .swiper-pagination-bullet{margin:8px 0}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:10px 4px !important}@media screen and (max-width: 768px){.blog-slider__pagination.swiper-pagination-bullets .swiper-pagination-bullet{margin:0px 5px}}.blog-slider__pagination .swiper-pagination-bullet{width:11px;height:11px;display:block;border-radius:10px;background:#062744;opacity:0.2;-webkit-transition:all .3s;transition:all .3s}.blog-slider__pagination .swiper-pagination-bullet-active{opacity:1;background:linear-gradient(149deg, #6c2bfe, #7e8dfd 49.58%);height:30px;box-shadow:0px 0px 20px rgba(126,141,253,0.3)}@media screen and (max-width: 768px){.blog-slider__pagination .swiper-pagination-bullet-active{height:11px;width:30px}} diff --git a/bolo-fantastic/css/base.scss b/bolo-fantastic/css/base.scss new file mode 100644 index 0000000..c119e7b --- /dev/null +++ b/bolo-fantastic/css/base.scss @@ -0,0 +1,1578 @@ +/* + * 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 . + */ + +/*bundle*/ +#back-to-top{position:fixed;padding:8px 0;transition:.4s ease opacity,.4s ease width,.4s ease transform,.4s ease border-radius;opacity:0;line-height:24px;outline:0;transform:translateY(120px)}#back-to-top.fade-in{opacity:1}#back-to-top.rise-up{transform:translateY(0)}.ins-section-container{position:relative;background:#f7f7f7}.ins-section{font-size:14px;line-height:16px}.ins-section .ins-search-item,.ins-section .ins-section-header{padding:8px 15px}.ins-section .ins-section-header{color:#9a9a9a;}.ins-section .ins-slug{margin-left:5px;color:#9a9a9a}.ins-section .ins-slug:before{content:'('}.ins-section .ins-slug:after{content:')'}.ins-section .ins-search-item .ins-search-preview,.ins-section .ins-search-item header{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ins-section .ins-search-item header .ins-title{margin-left:8px}.ins-section .ins-search-item .ins-search-preview{height:15px;font-size:12px;color:#9a9a9a;margin:5px 0 0 20px}.ins-section .ins-search-item.active,.ins-section .ins-search-item:hover{color:#fff;background:#3273dc}.ins-section .ins-search-item.active .ins-search-preview,.ins-section .ins-search-item.active .ins-slug,.ins-section .ins-search-item:hover .ins-search-preview,.ins-section .ins-search-item:hover .ins-slug{color:#fff}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#3273dc;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px}.searchbox{display:none;perspective:50em;top:0;left:0;width:100%;height:100%;z-index:100;background:rgba(0,0,0,.7);transform-origin:0;perspective-origin:top center}.searchbox.show{display:block}.searchbox,.searchbox .searchbox-container{position:fixed}.searchbox .searchbox-container{overflow:hidden}.searchbox .searchbox-selectable{cursor:pointer}.searchbox .searchbox-input-wrapper{position:relative}.searchbox .searchbox-input-wrapper .searchbox-input{font-weight: 400 !important;width:100%;border:none;outline:0;font-size:16px;box-shadow:0 1px 2px 0 rgba(0,0,0,0.05);font-weight:200;border-radius:0;background:#fff;line-height:20px;box-sizing:border-box;padding:12px 28px 12px 20px;border-bottom:1px solid #e2e2e2}.searchbox .searchbox-input-wrapper .searchbox-close{top:50%;right:6px;width:20px;height:20px;line-height:20px;font-size:16px;margin-top:-11px;position:absolute;text-align:center;display:inline-block}.searchbox .searchbox-input-wrapper .searchbox-close:hover{color:#3273dc}.searchbox .searchbox-result-wrapper{left:0;right:0;top:45px;bottom:0;overflow-y:auto;position:absolute}.searchbox .searchbox-container{border-radius:2px;left:50%;top:100px;width:540px;z-index:101;bottom:100px;margin-left:-270px;box-sizing:border-box}@media screen and (max-width:559px),screen and (max-height:479px){.searchbox .searchbox-container{top:0;left:0;margin:0;width:100%;height:100%;background:#f7f7f7}} + +.ant-tag { + font-family: Chinese Quote, -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; + font-size: 14px; + font-variant: tabular-nums; + line-height: 1.5; + color: rgba(0, 0, 0, .65); + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 5px 15px; + list-style: none; + display: inline-block; + border-radius: 2px; + border: 1px solid #d9d9d9; + background: #fafafa; + font-size: 12px; + -webkit-transition: all .3s cubic-bezier(.215, .61, .355, 1); + transition: all .3s cubic-bezier(.215, .61, .355, 1); + opacity: 1; + margin-right: 8px; + cursor: pointer; + white-space:nowrap; + opacity: .8; + font-weight: 400; + text-transform: uppercase; +} + +.ant-tag:hover { + opacity:1; + border-color:#91d5ff +} + +.ant-tag, .ant-tag a, .ant-tag a:hover { + color:rgba(0, 0, 0, .65) +} + +.ant-tag-pink { + color: #eb2f96; + background: #fff0f6; + border-color:#ffadd2 +} + +.ant-tag-pink-inverse { + background: #eb2f96; + border-color: #eb2f96; + color:#fff +} + +.ant-tag-magenta { + color: #eb2f96; + background: #fff0f6; + border-color:#ffadd2 +} + +.ant-tag-magenta-inverse { + background: #eb2f96; + border-color: #eb2f96; + color:#fff +} + +.ant-tag-red { + color: #f5222d; + background: #fff1f0; + border-color:#ffa39e +} + +.ant-tag-red-inverse { + background: #f5222d; + border-color: #f5222d; + color:#fff +} + +.ant-tag-volcano { + color: #fa541c; + background: #fff2e8; + border-color:#ffbb96 +} + +.ant-tag-volcano-inverse { + background: #fa541c; + border-color: #fa541c; + color:#fff +} + +.ant-tag-orange { + color: #fa8c16; + background: #fff7e6; + border-color:#ffd591 +} + +.ant-tag-orange-inverse { + background: #fa8c16; + border-color: #fa8c16; + color:#fff +} + +.ant-tag-yellow { + color: #fadb14; + background: #feffe6; + border-color:#fffb8f +} + +.ant-tag-yellow-inverse { + background: #fadb14; + border-color: #fadb14; + color:#fff +} + +.ant-tag-gold { + color: #faad14; + background: #fffbe6; + border-color:#ffe58f +} + +.ant-tag-gold-inverse { + background: #faad14; + border-color: #faad14; + color:#fff +} + +.ant-tag-cyan { + color: #13c2c2; + background: #e6fffb; + border-color:#87e8de +} + +.ant-tag-cyan-inverse { + background: #13c2c2; + border-color: #13c2c2; + color:#fff +} + +.ant-tag-lime { + color: #a0d911; + background: #fcffe6; + border-color:#eaff8f +} + +.ant-tag-lime-inverse { + background: #a0d911; + border-color: #a0d911; + color:#fff +} + +.ant-tag-green { + color: #52c41a; + background: #f6ffed; + border-color:#b7eb8f +} + +.ant-tag-green-inverse { + background: #52c41a; + border-color: #52c41a; + color:#fff +} + +.ant-tag-blue { + color: #1890ff; + background: #e6f7ff; + border-color:#91d5ff +} + +.ant-tag-blue-inverse { + background: #1890ff; + border-color: #1890ff; + color:#fff +} + +.ant-tag-geekblue { + color: #2f54eb; + background: #f0f5ff; + border-color:#adc6ff +} + +.ant-tag-geekblue-inverse { + background: #2f54eb; + border-color: #2f54eb; + color:#fff +} + +.ant-tag-purple { + color: #722ed1; + background: #f9f0ff; + border-color:#d3adf7 +} + +.ant-tag-purple-inverse { + background: #722ed1; + border-color: #722ed1; + color:#fff +} + +/*style*/ +/* --------------------------------- + * Override CSS Framework + * --------------------------------- */ + html { + font-size: 14px; +} +.section { + padding: 2rem 1.5rem; +} +body, +button, +input, +select, +textarea { + font-family: 'PingFangSC-Regular', 'Ubuntu', sans-serif; +} +.tag:not(body), +.button, +.file-cta, +.file-name, +.input, +.pagination-ellipsis, +.pagination-link, +.pagination-next, +.pagination-previous, +.select select, +.textarea { + border-radius: 2px; +} +@media screen and (min-width: 1280px) { + .is-1-column .container, + .is-2-column .container { + max-width: 960px; + width: 960px; + } +} +@media screen and (min-width: 1472px) { + .is-2-column .container { + max-width: 1152px; + width: 1152px; + } + .is-1-column .container { + max-width: 960px; + width: 960px; + } +} +@media screen and (max-width: 768px) { + .section { + padding: 4.5rem 1rem; + } +} +@media screen and (min-width: 769px) { + .column-main.is-sticky, + .column-left.is-sticky, + .column-right.is-sticky, + .column-right-shadow.is-sticky { + align-self: flex-start; + position: -webkit-sticky; + position: sticky; + top: 0.75rem; + } + .column-right-shadow.is-sticky { + top: 1.5rem; + } +} +.tag.is-grey { + background: #e7e7e7; +} +.card { + border-radius: 2px; + box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05); +} +@media screen and (max-width: 769px) { + .card-image img { + height: 80% !important; + } +} +.card-normal .card { + border-radius: 2px; + box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05); + display: flex; +} +.card-normal .card + .card, +.card-normal .card + .column-right-shadow { + margin-top: 1.5rem; +} +.card-normal .card.card-transparent { + box-shadow: none; + background: transparent; +} +.card-normal .card .card-image { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + flex: 8; +} +.card-normal .card .card-image img { + max-height: 150px; + top: 50%; + transform: translateX(-5%) translateY(-50%); + position: relative; + border-radius: 2px; + box-shadow: 3px 4px 12px 0 rgba(0,0,0,0.2); +} +.card-normal .card:hover .card-image img { + -webkit-filter: brightness(0.85); + filter: brightness(0.85); +} +.card-normal .card .card-content { + flex: 12; + padding: 1rem; +} +img.thumbnail { + object-fit: cover; + width: 100%; + height: 100%; + box-shadow: 3px 4px 12px 0 rgba(0,0,0,0.2); + border-radius: 2px; +} +.navbar-logo img, +.footer-logo img { + max-height: 1.75rem; +} +.navbar-main { + box-shadow: 0 4px 10px rgba(0,0,0,0.05); +} +.navbar-main .navbar-item { + padding-right: 1.5rem; +} +.navbar-main .navbar-item.is-active { + color: #3273dc; + background-color: transparent; +} +.navbar-main .navbar-item .navbar-dropdown { + border-radius: 2px; + box-shadow: 0 8px 8px rgba(10,10,10,0.1); + -webkit-backdrop-filter: blur(20px); + backdrop-filter: blur(20px); +} +.navbar-main .navbar-item .sub-menu { + color: #4a4a4a; + padding: 1rem; +} +.navbar-main .navbar-item .sub-menu:after { + content: '\2022'; + position: absolute; + color: #3273dc; +} +@media screen and (max-width: 769px) { + .navbar-main { + left: 0; + position: fixed; + right: 0; + z-index: 30; + top: 0; + } + .navbar-main .navbar-item { + padding: 0.55rem 0.75rem; + } + .navbar-main .navbar-item .navbar-dropdown { + box-shadow: none; + } +} +.footer { + background: #fff; +} +.footer .field .button { + background: transparent; +} +.widget .media { + border: none; +} +.widget .media + .media { + margin-top: 0; +} +.widget .menu-list li ul { + margin-right: 0; +} +.widget .menu-list a.level { + display: flex; +} +.pagination { + width: 100%; +} +.pagination .pagination-link:not(.is-current), +.pagination .pagination-previous, +.pagination .pagination-next { + background: #fff; + border: none; +} +.pagination .pagination-link, +.pagination .pagination-previous, +.pagination .pagination-next { + box-shadow: 0 4px 10px rgba(0,0,0,0.05); +} +.post-navigation { + width: 100%; +} +.post-navigation .level-item { + margin-bottom: 0; +} +.timeline { + margin-left: 1rem; + padding-left: 1.5rem; + padding-top: 1rem; + border-left: 1px solid #dbdbdb; +} +.timeline .media { + position: relative; +} +.timeline .media:before, +.timeline .media:last-child:after { + content: ''; + display: block; + position: absolute; + left: calc(-5px - 1.5rem); +} +.timeline .media:before { + width: 9px; + height: 9px; + top: 1.3rem; + background: #dbdbdb; + border-radius: 50%; +} +.timeline .media:first-child:before { + top: 0.3rem; +} +.timeline .media:last-child:after { + top: calc(1.3rem + 9px); + width: 9px; + bottom: 0; + background: #fff; +} +.timeline .media:first-child:last-child:after { + top: calc(0.3rem + 9px); +} +.article .article-meta { + margin-bottom: 0.5rem !important; +} +.article .content { + font-size: 1.1rem; +} +.article .content blockquote.pullquote { + float: right; + max-width: 50%; + font-size: 1.15rem; + position: relative; +} +.article .content a { + word-wrap: break-word; +} +.article .content p { + line-height: 1.9rem; +} +.article blockquote { + border-left: 0.4rem solid #4b8af3; + background-color: #e9f5fe; +} +.rtl { + direction: rtl; +} +.rtl .level .level-item:not(:last-child), +.rtl .level.is-mobile .level-item:not(:last-child) { + margin-left: 0.75rem; + margin-right: 0; +} +.donate { + position: relative; +} +.donate .qrcode { + display: none; + position: absolute; + z-index: 99; + bottom: 2.5em; + line-height: 0; + overflow: hidden; + border-radius: 2px; + box-shadow: 0 4px 10px rgba(0,0,0,0.1), 0 0 1px rgba(0,0,0,0.2); + overflow: hidden; +} +.donate .qrcode img { + max-width: 280px; +} +.donate:hover .qrcode { + display: block; +} +.donate:first-child:not(:last-child) .qrcode { + left: -0.75rem; +} +.donate:last-child:not(:first-child) .qrcode { + right: -0.75rem; +} +@media screen and (max-width: 768px) { + #toc { + display: none; + position: fixed; + margin: 1rem; + left: 0; + right: 0; + bottom: 0; + z-index: 100; + max-height: calc(100vh - 2rem); + overflow-y: auto; + } + #toc-mask { + display: none; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 99; + background: rgba(0,0,0,0.7); + } + #toc.is-active, + #toc-mask.is-active { + display: block; + } +} +/* --------------------------------- + * Custom modifiers + * --------------------------------- */ +.is-borderless { + border: none; +} +.is-size-7 { + font-size: 0.85rem !important; +} +.is-7by1 { + padding-top: 42.8%; +} +.is-7by1 img { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; +} +.is-overflow-x-auto { + overflow-x: auto !important; +} +.is-flex-grow { + flex-grow: 1 !important; +} +.is-flex-wrap { + flex-wrap: wrap !important; +} +.is-flex-start { + justify-content: start !important; +} +.is-flex-center { + justify-content: center !important; +} +.is-flex-middle { + align-items: center !important; +} +.has-order-1 { + order: 1; +} +.has-order-2 { + order: 2; +} +.has-order-3 { + order: 3; +} +.has-mr-6 { + margin-right: 0.5em !important; +} +.has-mb-6 { + margin-bottom: 0.5em !important; +} +.has-mr-7 { + margin-right: 0.25em !important; +} +.has-link-grey, +.has-link-black-ter { + transition: 0.2s ease; +} +.has-link-grey:hover, +.has-link-black-ter:hover { + color: #3273dc !important; +} +.has-link-grey { + color: #7a7a7a !important; +} +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; + } + .is-flex-center-mobile { + justify-content: center !important; + } + .has-mt-5-mobile { + margin-top: 1em !important; + } +} +/* --------------------------------- + * Font icon fixes + * --------------------------------- */ +.fa, +.fab, +.fal, +.far, +.fas { + line-height: inherit; + font-size: 14px; +} +/* --------------------------------- + * Fix content elements + * --------------------------------- */ +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + font-weight: 400; +} +.content h1 { + font-size: 1.55em; +} +.content h2 { + font-size: 1.5em; +} +.content h3 { + font-size: 1.25em; +} +.content h4 { + font-size: 1.125em; +} +.content h5 { + font-size: 1em; +} +.content code, +.content pre { + font-size: 0.95em; + font-family: 'Fira Sans', monospace, "Microsoft YaHei"; +} +.content blockquote footer strong + cite { + margin-left: 0.5em; +} +/* --------------------------------- + * Fix code highlight + * --------------------------------- */ +figure.highlight { + padding: 0; + width: 100%; + position: relative; + margin: 1em 0 1em !important; +} +figure.highlight.folded .highlight-body { + height: 0; +} +figure.highlight pre, +figure.highlight table tr:hover { + color: inherit; + background: transparent; +} +figure.highlight table { + width: auto; +} +figure.highlight pre { + padding: 0; + overflow: visible; +} +figure.highlight pre .line { + line-height: 1.5rem; +} +figure.highlight figcaption, +figure.highlight .gutter { + background: rgba(200,200,200,0.15); +} +figure.highlight figcaption { + padding: 0.3em 0.75em; + text-align: left; + font-style: normal; + font-size: 0.8em; +} +figure.highlight figcaption:after { + clear: both; + content: " "; + display: table; +} +figure.highlight figcaption span { + font-weight: 500; + font-family: 'Fira Sans', monospace, "Microsoft YaHei"; +} +figure.highlight figcaption .fold, +figure.highlight figcaption a { + color: #9a9a9a; +} +figure.highlight figcaption a { + float: right; + margin-left: 0.5em; +} +figure.highlight figcaption .fold { + margin-right: 0.5em; + cursor: pointer; +} +figure.highlight .highlight-body { + overflow: auto; +} +figure.highlight .gutter { + text-align: right; +} +figure.highlight .tag, +figure.highlight .title, +figure.highlight .number, +figure.highlight .section { + display: inherit; + font: inherit; + margin: inherit; + padding: inherit; + background: inherit; + height: inherit; + text-align: inherit; + vertical-align: inherit; + min-width: inherit; + border-radius: inherit; +} +/* --------------------------------- + * Overflow Table + * --------------------------------- */ +.table-overflow { + overflow-x: auto; +} +.table-overflow table { + width: auto !important; +} +.table-overflow table th { + word-break: keep-all; +} +/* --------------------------------- + * Fix Video + * --------------------------------- */ +.video-container { + position: relative; + padding-bottom: 56.25%; + padding-top: 25px; + height: 0; +} +.video-container iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +/* --------------------------------- + * Fix Gist Snippet + * --------------------------------- */ +.gist table tr:hover { + background: transparent; +} +.gist table td { + border: none; +} +.gist .file { + all: initial; +} +/* --------------------------------- + * Fix iframe and video + * --------------------------------- */ +iframe, +video { + height: none; +} +.post-article { + word-wrap: break-word; + line-height: 1.8; + letter-spacing: 0.013rem; +} +.post-article a { + position: relative; + white-space: normal; + color: #4b8af3; + background: transparent; + text-decoration: none; + font-weight: 500; + word-break: break-all; +} +.post-article a::after { + position: absolute; + bottom: -0.2rem; + left: 100%; + width: 0; + border-bottom: 0.13rem solid #4b8af3; + content: ""; + -webkit-transition: width 350ms, left 350ms; + -moz-transition: width 350ms, left 350ms; + -ms-transition: width 350ms, left 350ms; + -o-transition: width 350ms, left 350ms; + transition: width 350ms, left 350ms; +} +.post-article a:hover::after { + left: 0; + width: 100%; + -webkit-transition: width 350ms; + -moz-transition: width 350ms; + -ms-transition: width 350ms; + -o-transition: width 350ms; + transition: width 350ms; +} +p { + margin-top: 0; + margin-bottom: 1.25rem; + text-align: justify; + display: block; + margin-block-start: 1em; + margin-block-end: 1em; + margin-inline-start: 0px; + margin-inline-end: 0px; +} +.comment-item-content img { + width: 100%; +} +.ceta .is-active { + border-bottom: #4b8af3 solid 2px; + font-weight: 600; + +} +.ceta .tabs a { + border-bottom-style: none; +} +.ceta .tabs a:hover { + color: #4b8af3; + font-weight: 500; +} + +.widget .media + .media { + margin-bottom: 0 +} + +.media+.media { + padding-top: 0; +} + +.card .media:not(:last-child) { + margin-bottom: 0 +} + +.profile .title { + line-height: 0.2; +} +.profile .level { + margin-bottom: 2em; +} +.profile .level:first-child { + margin-top: 0; + margin-bottom: 0; +} +.profile .level:last-child { + margin-top: 1em; + margin-bottom: 0; +} +.intro { + margin-top: 20px; +} +.intro i{ + font-size: 20px; + color: #8e8787; +} +.searchbox .searchbox-result-wrapper { + overflow-y: visible !important; +} + + +/*theme*/ +/* default for no-preference */ + +:root { + --color: #333; + --background: #f7f7f7; + --cardbgcolor: #fff; + --cardtitlecolor: #333333; + --navbarcolor: #333333; + --navbarbgcolor: rgba(255, 255, 255, 0.7); + --img-default-filter: none; + --img-hover-filter: none; + --btn-bg-color: #f5f5f5; + --btn-color: #333; + --btn-hover-color: #eee; + --link-color: #1485FE; + --link-hover-color: #1485FE; + + + /*code highlight*/ + --code-bg-color: #2c2a2a; + --code-default-color: #A2A1A1; + --code-line-numbers-bg-color: #403E3E; + --code-line-numbers-color: #888; + + --code-keyworks-color: #c9c; + --code-class-color: #f2777a; + --code-cdata-color: hsl(313, 67%, 36%); + --code-symbol-color: hsl(33, 83%, 45%); + --code-variable-color: hsl(281, 89%, 64%); + --code-regex-color: #e90; + --code-deleted-color: red; + --code-toolbar-bg-color: #454545; + --code-toolbar-color: #1485FE; + --code-line-numbers-rows-color: #888; + + /*toc*/ + --toc-dot-color: #1485FE; + --toc-dot-active-bg-color: #ebedef; + --toc-dot-active-color: #1485FE; + --toc-vertical-line-color: #888; + --toc-item-bg-hover: #1485FE; + +} + +/* Light mode */ +@media (prefers-color-scheme: light) { + :root { + --color: #333333; + --background: #f7f7f7; + --cardbgcolor: #fff; + --cardcolor: #333; + --cardtitlecolor: #333333; + --navbarcolor: #333333; + --navbarbgcolor: rgba(255, 255, 255, 0.7); + --img-default-filter: none; + --img-hover-filter: none; + --link-color: #1485FE; + --link-hover-color: #1485FE; + + /*code highlight*/ + --code-bg-color: #F1F3F3; + --code-default-color: #A2A1A1; + --code-line-numbers-bg-color: #EBEDED; + --code-line-numbers-color: #888; + + --code-keyworks-color: #7012cc; + --code-class-color: #f2777a; + --code-cdata-color: hsl(313, 67%, 36%); + --code-symbol-color: hsl(33, 83%, 45%); + --code-variable-color: hsl(281, 89%, 64%); + --code-regex-color: #e90; + --code-deleted-color: red; + --code-toolbar-bg-color: #EBEDED; + --code-toolbar-color: #1485FE; + --code-line-numbers-rows-color: #888; + /*toc*/ + --toc-dot-color: #1485FE; + --toc-dot-active-color: #1485FE; + --toc-dot-active-bg-color: #ebedef; + --toc-vertical-line-color: #1485FE; + --toc-item-bg-hover: #1485FE; + } +} + +/* Dark mode */ +@media (prefers-color-scheme: dark) { + :root { + --color: #CCC; + --background: #2c2a2a !important; + --cardbgcolor: #343232 !important; + --cardcolor: #bcbcbc; + --cardtitlecolor: #bcbcbc; + --navbarcolor: #bcbcbc; + --navbarbgcolor: rgba(52, 50, 50, 0.7); + /*--img-default-filter: grayscale(100%);*/ + img-default-filter: none; + --img-hover-filter: none; + --btn-bg-color: #2c2a2a; + --btn-color: #bcbcbc; + --btn-hover-color: #333; + --link-color: #1485FE; + --link-hover-color: #1485FE; + + /*code highlight*/ + --code-bg-color: #2c2a2a; + --code-default-color: #A2A1A1; + --code-line-numbers-bg-color: #403E3E; + --code-line-numbers-color: #888; + + --code-keyworks-color: #c9c; + --code-class-color: #f2777a; + --code-cdata-color: hsl(313, 67%, 36%); + --code-symbol-color: hsl(33, 83%, 45%); + --code-variable-color: hsl(281, 89%, 64%); + --code-regex-color: #e90; + --code-deleted-color: red; + --code-toolbar-bg-color: #454545; + --code-toolbar-color: #fff; + --code-line-numbers-rows-color: #888; + + /*toc*/ + --toc-dot-color: #1485FE; + --toc-dot-active-bg-color: rgba(255, 255, 255, 0.2); + --toc-dot-active-color: #1485FE; + --toc-vertical-line-color: #888; + --toc-bg-bg-hover: #321; + } +} + +html { + background: var(--background); + color: var(--color); +} + +body > .footer, body > .navbar { + background-color: var(--cardbgcolor); + color: var(--cardcolor); +} + +a:hover { + color: var(--link-color); +} + +.content a { + color: var(--link-color); +} + +.content a:hover { + color: var(--link-hover-color); + font-weight: 400; +} + +.card { + background-color: var(--cardbgcolor); + color: var(--cardcolor); +} + +.card .card-image img, +img.thumbnail { + filter: var(--img-default-filter); +} + +.card .card-image img:hover, +img.thumbnail:hover { + filter: var(--img-hover-filter); +} + +.card .title { + color: var(--color) !important; +} + +.navbar-dropdown { + background-color: var(--background); +} + +pre, +blockquote { + background-color: var(--code-bg-color) !important; + color: var(--color) !important; +} + +.card .content, + /*.card .title a{*/ + /* color: var(--cardtitlecolor) !important;*/ + /*}*/ +.pagination .pagination-link:not(.is-current), +.pagination .pagination-previous, +.pagination .pagination-next { + background-color: var(--cardbgcolor); + color: var(--cardcolor); +} + +.navbar-item, .navbar-link, +.navbar-main .navbar-item .sub-menu { + color: var(--navbarcolor); + +} + +.has-link-black-ter { + color: var(--cardtitlecolor) !important; +} + + +.button { + background-color: var(--btn-bg-color) !important; + color: var(--btn-color) !important; +} + +.button:hover { + background-color: var(--btn-hover-color) !important; +} + +body > footer > div > div > div.level-end > div > a > i { + background-color: transparent; + color: var(--color); +} + +.level .level-item.button { + background-color: var(--cardbgcolor) !important; + border-color: var(--cardbgcolor) !important; + color: var(--color) !important; +} + +.menu-list .level { + color: var(--color); +} + + +.menu-list a:hover { + background-color: var(--background); + opacity: 0.6; + color: var(--link-hover-color); +} + +.tag:not(body) { + background-color: var(--background) !important; + color: var(--color) !important; +} + +.content .tag { + background-color: transparent !important; + color: var(--code-class-color) !important; +} + +h1, +h2, +h3, +h4, +h5, +h6, +h7, +strong { + color: var(--color) !important; +} + +.is-active a { + color: var(--color) !important; +} + +a.navbar-item:hover { + background-color: var(--cardbgcolor); + color: #3273dc; +} + +code { + color: var(--color); + background-color: var(--code-bg-color) +} + +code[class*="language-"], +pre[class*="language-"] { + color: var(--color); + background-color: var(--code-bg-color) !important; +} + +pre[class*="language-"], +:not(pre) > code[class*="language-"] { + background: var(--background); +} + +:not(pre) > code[class*="language-"] { + border: red; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: var(--code-cdata-color); +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol { + color: var(--code-symbol-color); +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: var(--code-class-color); +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable { + color: var(--code-variable-color); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: var(--code-keyworks-color); +} + +.token.regex, +.token.important { + color: var(--code-regex-color); +} + +.token.deleted { + color: var(--code-deleted-color); +} + + +.line-numbers .line-numbers-rows { + background-color: var(--code-line-numbers-bg-color) !important; +} + +.line-numbers-rows > span:before { + color: var(--code-line-numbers-color) !important; +} + +.line-highlight { + background: rgba(21, 21, 21, 0.2) !important; + background: -webkit-linear-gradient(left, rgba(21, 21, 21, 0.2) 70%, rgba(21, 21, 21, 0)) !important; + background: linear-gradient(to right, rgba(21, 21, 21, 0.2) 70%, rgba(21, 21, 21, 0)) !important; +} + +div.code-toolbar > .toolbar a, +div.code-toolbar > .toolbar button, +div.code-toolbar > .toolbar span { + background: var(--code-toolbar-bg-color) !important; + /*box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);*/ + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); +} + +div.code-toolbar > .toolbar a:hover, +div.code-toolbar > .toolbar a:focus, +div.code-toolbar > .toolbar button:hover, +div.code-toolbar > .toolbar button:focus, +div.code-toolbar > .toolbar span:hover, +div.code-toolbar > .toolbar span:focus { + color: var(--code-toolbar-color) !important; +} + +.line-numbers-rows > span:before { + color: var(--code-line-numbers-rows-color); +} + +.content table thead td, +.content table thead th { + color: var(--color); +} + +#toc ul li a, +#toc ul li ul li a, +#toc ul li ul li ul li a { + color: var(--color); +} + +#toc .active { + color: var(--toc-dot-active-color) !important; +} + +#toc > ul li::before { + background-color: var(--toc-dot-color) +} + +#toc a:hover { + color: var(--toc-dot-active-color) !important; + background-color: var(--toc-dot-active-bg-color); +} + +#toc > ul:before { + background-color: var(--toc-vertical-line-color); +} + + +.navbar-burger { + color: var(--color); +} + +.navbar-menu { + background-color: var(--cardbgcolor); +} + +body > .navbar { + background-color: var(--navbarbgcolor); + -webkit-backdrop-filter: blur(20px); + backdrop-filter: blur(20px); +} + +.content table thead td, +.content table thead th { + border: 1px solid var(--background); + +} + +.content table td, +.content table th { + border: 1px solid var(--background); +} + +table { + border: 2px solid var(--btn-hover-color); +} + +thead, tbody, tr, th { + border: 1px solid var(--background); +} + +footer .title { + color: var(--color); +} + +footer .button { + background-color: var(--cardbgcolor) !important; +} + +/*@import url("https://fonts.googleapis.com/css?family=Fira+Sans:400,500,600,700,800");*/ +.blog-slider { + position: relative; + width: 100%; + margin: auto; + padding: 25px; + border-radius: 2px; + height: 250px; + transition: all .3s; +} +@media screen and (max-width: 992px) { + .blog-slider { + /*max-width: 680px;*/ + /*height: 400px;*/ + } +} +@media screen and (max-width: 769px) { + .blog-slider { + /*min-height: 500px;*/ + height: auto; + /*margin: 80px auto;*/ + margin-top: 80px; + } +} +/*@media screen and (max-height: 500px) and (min-width: 992px) {*/ +/* .blog-slider {*/ +/* height: 350px;*/ +/* }*/ +/*}*/ +.blog-slider__item { + display: flex; + align-items: center; +} +@media screen and (max-width: 768px) { + .blog-slider__item { + flex-direction: column; + } +} +.blog-slider__item.swiper-slide-active .blog-slider__img img { + opacity: 1; + transition-delay: .3s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > * { + opacity: 1; + transform: none; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(1) { + transition-delay: 0.3s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(2) { + transition-delay: 0.4s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(3) { + transition-delay: 0.5s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(4) { + transition-delay: 0.6s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(5) { + transition-delay: 0.7s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(6) { + transition-delay: 0.8s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(7) { + transition-delay: 0.9s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(8) { + transition-delay: 1s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(9) { + transition-delay: 1.1s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(10) { + transition-delay: 1.2s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(11) { + transition-delay: 1.3s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(12) { + transition-delay: 1.4s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(13) { + transition-delay: 1.5s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(14) { + transition-delay: 1.6s; +} +.blog-slider__item.swiper-slide-active .blog-slider__content > *:nth-child(15) { + transition-delay: 1.7s; +} +.blog-slider__img { + width: 300px; + flex-shrink: 0; + height: 200px; + background-image: linear-gradient(147deg, #fffcf9, #cde8f6); + box-shadow: 3px 4px 12px 0 rgba(0,0,0,0.2); + border-radius: 2px; + transform: translateX(-40px); + overflow: hidden; +} +.blog-slider__img:after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + /*background-image: linear-gradient(147deg, #fff9fb 0%, #fd3838 74%);*/ + border-radius: 2px; + opacity: 0.2; +} +.blog-slider__img img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; + opacity: 0; + border-radius: 2px; + transition: all .3s; +} +@media screen and (max-width: 768px) { + .blog-slider__img { + transform: translateY(-50%); + width: 90%; + } +} +@media screen and (max-width: 576px) { + .blog-slider__img { + width: 95%; + } +} +/*@media screen and (max-height: 500px) and (min-width: 992px) {*/ +/* .blog-slider__img {*/ +/* height: 270px;*/ +/* }*/ +/*}*/ +.blog-slider__content { + padding-right: 25px; +} +@media screen and (max-width: 768px) { + .blog-slider__content { + margin-top: -80px; + text-align: center; + padding: 0 30px; + } +} +@media screen and (max-width: 576px) { + .blog-slider__content { + padding: 0; + } +} +.blog-slider__content > * { + opacity: 0; + transform: translateY(25px); + transition: all .4s; +} +.blog-slider__code { + color: #7b7992; + margin-bottom: 10px; + display: block; + font-weight: 500; +} +.blog-slider__title { + /*color: #0d0925;*/ + margin-bottom: 10px; +} +.blog-slider__title a{ +} +.blog-slider__text { + /*color: #4e4a67;*/ + margin-bottom: 20px; + line-height: 1.5em; +} +.blog-slider__button { + display: inline-flex; + background-image: linear-gradient(149deg, #6c2bfe, #7e8dfd 49.58%); + padding: 8px 25px; + border-radius: 2px; + color: #fff; + box-shadow: 3px 4px 12px 0 rgba(0,0,0,0.2); + text-decoration: none; + font-weight: 500; + justify-content: center; + text-align: center; + letter-spacing: 1px; +} +@media screen and (max-width: 576px) { + .blog-slider__button { + /*width: 100%;*/ + } +} +.blog-slider .swiper-container-horizontal > .swiper-pagination-bullets, .blog-slider .swiper-pagination-custom, .blog-slider .swiper-pagination-fraction { + bottom: 10px; + left: 0; + width: 100%; +} +.blog-slider__pagination { + position: absolute; + z-index: 21; + right: 20px; + width: 11px !important; + text-align: center; + left: auto !important; + top: 50%; + bottom: auto !important; + transform: translateY(-50%); +} +@media screen and (max-width: 768px) { + .blog-slider__title { + /*white-space:nowrap;*/ + /*overflow:hidden;*/ + /*text-overflow:ellipsis; /这里的ellipsis的英文名字就是省略的意思/*/ + } + .blog-slider__pagination { + transform: translateX(-50%); + left: 50% !important; + top: 190px; + width: 100% !important; + display: flex; + justify-content: center; + align-items: center; + } + +} +.blog-slider__pagination.swiper-pagination-bullets .swiper-pagination-bullet { + margin: 8px 0; +} +.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet { + margin: 10px 4px !important; +} +@media screen and (max-width: 768px) { + .blog-slider__pagination.swiper-pagination-bullets .swiper-pagination-bullet { + margin: 0px 5px; + } +} +.blog-slider__pagination .swiper-pagination-bullet { + width: 11px; + height: 11px; + display: block; + border-radius: 10px; + background: #062744; + opacity: 0.2; + transition: all .3s; +} +.blog-slider__pagination .swiper-pagination-bullet-active { + opacity: 1; + background: linear-gradient(149deg, #6c2bfe, #7e8dfd 49.58%); + height: 30px; + box-shadow: 0px 0px 20px rgba(126, 141, 253, 0.3); +} +@media screen and (max-width: 768px) { + .blog-slider__pagination .swiper-pagination-bullet-active { + height: 11px; + width: 30px; + } +} + diff --git a/bolo-fantastic/css/style.css b/bolo-fantastic/css/style.css new file mode 100644 index 0000000..7e476a1 --- /dev/null +++ b/bolo-fantastic/css/style.css @@ -0,0 +1 @@ +#nprogress{pointer-events:none}#nprogress .bar{background:#d23f31;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0px;width:100px;height:100%;box-shadow:0 0 10px #d23f31, 0 0 5px #d23f31;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px, -4px);transform:rotate(3deg) translate(0px, -4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#d23f31;border-left-color:#d23f31;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-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:rgba(0,0,0,0.8);border-radius:3px;line-height:16px;opacity:0}.vditor-tooltipped::before{position:absolute;z-index:1000001;display:none;width:0;height:0;color:rgba(0,0,0,0.8);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:rgba(0,0,0,0.8)}.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:rgba(0,0,0,0.8)}.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{-webkit-transform:translateX(50%);transform:translateX(50%)}.vditor-tooltipped__w::after{right:100%;bottom:50%;margin-right:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.vditor-tooltipped__w::before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:rgba(0,0,0,0.8)}.vditor-tooltipped__e::after{bottom:50%;left:100%;margin-left:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.vditor-tooltipped__e::before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:rgba(0,0,0,0.8)}@-webkit-keyframes scale-in{0%{opacity:0;-webkit-transform:scale(0.5);transform:scale(0.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scale-in{0%{opacity:0;-webkit-transform:scale(0.5);transform:scale(0.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.vditor-panel{background-color:#fff;position:absolute;box-shadow:0 1px 2px rgba(0,0,0,0.2);border-radius:3px;padding:5px;z-index:4;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)}.vditor-panel h1,.vditor-panel h2,.vditor-panel h3,.vditor-panel h4,.vditor-panel h5,.vditor-panel h6{margin:0;cursor:pointer;padding:3px 10px;border-radius:3px;line-height:normal}.vditor-panel h1:hover,.vditor-panel h2:hover,.vditor-panel h3:hover,.vditor-panel h4:hover,.vditor-panel h5:hover,.vditor-panel h6:hover{background-color:#4285f4;color:#fff}.vditor-toolbar{background-color:#f6f8fa;border-bottom:1px solid #d1d5da;padding:0 5px;border-radius:3px 3px 0 0}.vditor-toolbar>div{padding:10px 5px;float:left;line-height:14px;height:36px;box-sizing:border-box}.vditor-toolbar svg{fill:currentColor;display:inline-block;stroke-width:0;stroke:currentColor;width:14px;height:14px}.vditor-toolbar .vditor-tooltipped{color:#586069}.vditor-toolbar .vditor-tooltipped:hover{color:#4285f4}.vditor-toolbar label{overflow:hidden;position:relative;height:14px;width:15px;display:block;cursor:pointer}.vditor-toolbar label svg{position:absolute;top:0;left:0}.vditor-toolbar label input{position:absolute;width:15px;height:15px;top:0;left:0;opacity:.001;overflow:hidden}.vditor-menu--current svg{color:#4285f4}.vditor-menu__divider{width:10px}.vditor-menu__br{width:100%;padding:0 !important;height:0 !important}.vditor-menu--disabled svg{color:rgba(88,96,105,0.6);cursor:not-allowed}.vditor-emojis{display:inline-block;overflow:auto}.vditor-emojis::-webkit-scrollbar{display:none}.vditor-emojis__tip{-webkit-box-flex:1;flex:1;width:200px;margin-right:10px;color:#586069;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vditor-emojis__tail{margin-top:5px;font-size:12px;color:#586069;display:-webkit-box;display:flex}.vditor-emojis__tail a{text-decoration:none;color:#586069}.vditor-emojis__tail a:hover{color:#4285f4}.vditor-emojis span{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;-webkit-transition:all 0.15s ease-in-out;transition:all 0.15s ease-in-out}.vditor-emojis span:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.vditor-emojis img{height:20px;width:20px;float:left;margin:3px 0 0 3px}@-webkit-keyframes slideInDown{from{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);visibility:visible}to{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@keyframes slideInDown{from{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);visibility:visible}to{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}.vditor{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;border:1px solid #d1d5da;border-radius:3px;box-sizing:border-box;font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Segoe UI Symbol","Android Emoji","EmojiSymbols"}.vditor--fullscreen{position:fixed;top:0;width:100% !important;left:0;height:100vh !important;z-index:90;background-color:#fff}.vditor-content{display:-webkit-box;display:flex;min-height:60px;-webkit-box-flex:1;flex:1;position:relative}.vditor-textarea{font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"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;height:100%;overflow:auto;width:100%;-webkit-box-flex:1;flex:1;border:0;resize:none;padding:10px 9px 10px 10px;box-sizing:border-box;background-color:#fafbfc;outline:0 none;font-size:16px;line-height:22px;color:#24292e;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:focus{background-color:#fff}.vditor-textarea:empty::before{content:attr(placeholder);color:rgba(36,41,46,0.68)}.vditor-preview{-webkit-box-flex:1;flex:1;background-color:#fff;overflow:auto;margin-left:-1px;padding:10px;box-shadow:inset 1px 0 #d1d5da;box-sizing:border-box;border-radius:0 0 3px 0}.vditor-preview>div::-webkit-scrollbar{display:none}.vditor-preview>.vditor-reset{margin:0 auto}.vditor-devtools{display:none;background-color:#fff;overflow:auto;-webkit-box-flex:1;flex:1;box-shadow:inset 1px 0 #d1d5da;box-sizing:border-box;border-radius:0 0 3px 0;padding:10px}.vditor-counter{padding:0 3px;position:absolute;bottom:10px;right:20px;color:#24292e;background-color:rgba(255,255,255,0.6);border-radius:3px;font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}.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%;z-index:2}.vditor-resize--top{top:-3px}.vditor-resize--bottom{bottom:-3px}.vditor-resize>div{height:3px;background-color:#f6f8fa;-webkit-transition:all 0.15s ease-in-out;transition:all 0.15s ease-in-out}.vditor-resize:hover>div,.vditor-resize--selected>div{background-color:#4285f4}.vditor-resize:hover svg,.vditor-resize--selected svg{color:#fff}.vditor-resize svg{fill:currentColor;stroke-width:0;stroke:currentColor;width:13px;height:3px;display:block;margin:0 auto;color:#586069}.vditor-upload{position:absolute;height:3px;left:0;top:-2px;-webkit-transition:all 0.15s ease-in-out;transition:all 0.15s ease-in-out;background-color:rgba(66,133,244,0.8)}.vditor-tip{position:absolute;font-size:12px;top:10px;color:#fff;-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-fill-mode:both;animation-fill-mode:both;width:100%;text-align:center}.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:rgba(66,133,244,0.8);position:relative}.vditor-tip__content ul{margin:2px 0;padding:0 0 0 18px}.vditor-tip__close{position:absolute;color:#586069;top:-7px;right:-15px;font-weight:bold;cursor:pointer}.vditor-tip__close:hover{color:#4285f4}.vditor-hint{background-color:#fff;position:absolute;box-shadow:0 1px 2px rgba(0,0,0,0.2);border-radius:3px;padding:5px 0;z-index:3;line-height:20px;list-style:none;color:#24292e;font-size:12px;margin:0;max-width:250px;min-width:80px;display:none}.vditor-hint li{cursor:pointer;padding:3px 10px;border-bottom:1px solid #d1d5da;line-height:20px}.vditor-hint li:last-child{border-bottom:0}.vditor-hint--current,.vditor-hint li:hover{background-color:#4285f4;color:#fff}.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{font-variant-ligatures:no-common-ligatures;font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"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 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{padding-bottom:0.3em;font-size:1.7em;border-bottom:1px solid #eee}.vditor-reset h2{padding-bottom:0.3em;font-size:1.5em;border-bottom:1px solid #eee}.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:#e7e7e7;border:0}.vditor-reset p{margin-top:0;margin-bottom:16px}.vditor-reset blockquote{padding:0 1em;color:#777;border-left:0.25em solid #ddd;margin:0 0 16px 0}.vditor-reset blockquote p{margin: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{width:100%;border-collapse:collapse;empty-cells:show;margin-bottom:16px;display:block;overflow:auto;border-spacing:0}.vditor-reset table tr{background-color:#fff;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:#f6f8fa}.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;word-break:break-word;background-size:20px 20px;white-space:pre-wrap;background-color:rgba(27,31,35,0.05)}.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;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:#555;vertical-align:middle;background-color:#fcfcfc;border:solid 1px #d1d5da;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.vditor-reset summary{cursor:pointer}.vditor-reset summary:focus{outline:none}.vditor-reset svg{height:auto;width:auto}.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{overflow:hidden;height:420px}.vditor-task{list-style:none}.vditor-task input{margin:0 .2em .25em -1.6em;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;height:14px;width:14px;display:block;background-color:#f6f8fa;border-radius:3px;padding:3px}.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.5em;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--error{color:#d23f31;font-size:12px;display:block;line-height:16px}.vditor-wysiwyg{background-color:#fafbfc;box-sizing:border-box;-webkit-box-flex:1;flex:1;margin:0;white-space:pre-wrap}.vditor-wysiwyg[contenteditable="false"]{opacity:0.3;cursor:not-allowed}.vditor-wysiwyg:focus{outline:none;background-color:#fff}.vditor-wysiwyg .marker{height:0;width:0;display:inline-block;overflow:hidden;-webkit-transition:color .15s ease-in-out;transition:color .15s ease-in-out;font-size:initial;font-weight:normal;line-height:24px}.vditor-wysiwyg .newline{display:none}.vditor-wysiwyg .node--block{position:relative}.vditor-wysiwyg .node--block>.marker{position:absolute;left:3px}.vditor-wysiwyg .node--hr .marker{left:-22px;top:-8px}.vditor-wysiwyg .node--expand>.marker{width:auto;height:auto;display:inline;color:#bbb}.vditor-wysiwyg .node>[data-hidden]::after{content:attr(data-hidden)}.vditor-wysiwyg li.node--expand .marker{left:-9px}.vditor-wysiwyg li.node--expand.vditor-task .marker{left:-46px}.vditor-wysiwyg p:empty:after{content:'\200b'}.vditor-wysiwyg hr:last-child{margin-bottom:24px} diff --git a/bolo-fantastic/css/style.scss b/bolo-fantastic/css/style.scss new file mode 100644 index 0000000..d92a31e --- /dev/null +++ b/bolo-fantastic/css/style.scss @@ -0,0 +1,19 @@ +/* + * 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 . + */ +@import "../../../scss/nprogress"; +@import "vditor/src/assets/scss/classic"; \ No newline at end of file diff --git a/bolo-fantastic/footer.ftl b/bolo-fantastic/footer.ftl new file mode 100644 index 0000000..48f80e3 --- /dev/null +++ b/bolo-fantastic/footer.ftl @@ -0,0 +1,57 @@ +<#-- + + 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/label.ftl"> + +${plugins} diff --git a/bolo-fantastic/header.ftl b/bolo-fantastic/header.ftl new file mode 100644 index 0000000..05b1dbe --- /dev/null +++ b/bolo-fantastic/header.ftl @@ -0,0 +1,64 @@ +<#-- + + 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 . + +--> + + + diff --git a/bolo-fantastic/index.ftl b/bolo-fantastic/index.ftl new file mode 100644 index 0000000..2e193b4 --- /dev/null +++ b/bolo-fantastic/index.ftl @@ -0,0 +1,95 @@ +<#-- + + 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 . + +--> +<#-- Solo - A small and beautiful blogging system written in Java. Copyright (c) 2010-present, b3log.org This program is + free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more + details. You should have received a copy of the GNU Affero General Public License along with this program. If not, + see . --> +<#include "../../common-template/macro-common_head.ftl"> + + + + + + <@head title="${blogTitle}"> + + + + + + + <#-- <#include "style.theme.ftl"> --> + + + +<#include "header.ftl"> +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + <#include "article-list.ftl"> +
    +
    + <#include "side-right.ftl"> + + +
    +
    +
    +
    +
    +
    + <#include "side.ftl"> +
    + + + + + + +
    +
    +
    + +<#include "footer.ftl"> + + + diff --git a/bolo-fantastic/js/common.js b/bolo-fantastic/js/common.js new file mode 100644 index 0000000..611254f --- /dev/null +++ b/bolo-fantastic/js/common.js @@ -0,0 +1,357 @@ +/* + * 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 . + */ +//animate +(function () { + function $() { + return Array.prototype.slice.call(document.querySelectorAll.apply(document, arguments)); + } + + $('body > .navbar, body > .section, body > .footer').forEach(function (element) { + element.style.transition = '0s'; + element.style.opacity = '0'; + }); + document.querySelector('body > .navbar').style.transform = 'translateY(-100px)'; + ['.column-main > .card', + '.column-left > .card, .column-right-shadow > .card', + '.column-right > .card'].map(function (selector) { + $(selector).forEach(function (element) { + element.style.transition = '0s'; + element.style.opacity = '0'; + element.style.transform = 'scale(0.8)'; + element.style.transformOrigin = 'center top'; + }); + }); + setTimeout(function () { + $('body > .navbar, body > .section, body > .footer').forEach(function (element) { + element.style.opacity = '1'; + element.style.transition = 'opacity 0.3s ease-out, transform 0.3s ease-out'; + }); + document.querySelector('body > .navbar').style.transform = 'translateY(0)'; + ['.column-main > .card', + '.column-left > .card, .column-right-shadow > .card', + '.column-right > .card'].map(function (selector) { + var i = 1; + $(selector).forEach(function (element) { + setTimeout(function () { + element.style.opacity = '1'; + element.style.transform = ''; + element.style.transition = 'opacity 0.3s ease-out, transform 0.3s ease-out'; + }, i * 100); + i++; + }); + }); + }); +})(); + + //burger + (function () { + var burger = document.querySelector('.burger'); + var menu = document.querySelector('#' + burger.dataset.target); + burger.addEventListener('click', function () { + burger.classList.toggle('is-active'); + menu.classList.toggle('is-active'); + }); + +})(); + +//backtotop +$(document).ready(function () { + var $button = $('#back-to-top'); + var $footer = $('footer.footer'); + var $mainColumn = $('.column-main'); + var $leftSidebar = $('.column-left'); + var $rightSidebar = $('.column-right'); + var lastScrollTop = 0; + var rightMargin = 20; + var bottomMargin = 20; + var lastState = null; + var state = { + base: { + classname: 'card has-text-centered', + left: '', + width: 64, + bottom: bottomMargin, + 'border-radius': 4 + } + }; + state['desktop-hidden'] = Object.assign({}, state.base, { + classname: state.base.classname + ' rise-up', + }); + state['desktop-visible'] = Object.assign({}, state['desktop-hidden'], { + classname: state['desktop-hidden'].classname + ' fade-in', + }); + state['desktop-dock'] = Object.assign({}, state['desktop-visible'], { + classname: state['desktop-visible'].classname + ' fade-in', + width: 40, + 'border-radius': '50%' + }); + state['mobile-hidden'] = Object.assign({}, state.base, { + classname: state.base.classname + ' fade-in', + right: rightMargin + }); + state['mobile-visible'] = Object.assign({}, state['mobile-hidden'], { + classname: state['mobile-hidden'].classname + ' rise-up', + }); + + function isStateEquals(prev, next) { + for (var prop in prev) { + if (!next.hasOwnProperty(prop) || next[prop] !== prev[prop]) { + return false; + } + } + for (var prop in next) { + if (!prev.hasOwnProperty(prop) || prev[prop] !== prev[prop]) { + return false; + } + } + return true; + } + + function applyState(state) { + if (lastState !== null && isStateEquals(lastState, state)) { + return; + } + $button.attr('class', state.classname); + for (let prop in state) { + if (prop === 'classname') { + continue; + } + $button.css(prop, state[prop]); + } + lastState = state; + } + + function isDesktop() { + return window.innerWidth >= 1078; + } + + function isTablet() { + return window.innerWidth >= 768 && !isDesktop(); + } + + function isScrollUp() { + return $(window).scrollTop() < lastScrollTop && $(window).scrollTop() > 0; + } + + function hasLeftSidebar() { + return $leftSidebar.length > 0; + } + + function hasRightSidebar() { + return $rightSidebar.length > 0; + } + + function getRightSidebarBottom() { + if (!hasRightSidebar()) { + return 0; + } + return Math.max.apply(null, $rightSidebar.find('.widget').map(function () { + return $(this).offset().top + $(this).outerHeight(true); + })); + } + + function getScrollTop() { + return $(window).scrollTop(); + } + + function getScrollBottom() { + return $(window).scrollTop() + $(window).height(); + } + + function getButtonWidth() { + return $button.outerWidth(true); + } + + function getButtonHeight() { + return $button.outerHeight(true); + } + + function updateScrollTop() { + lastScrollTop = $(window).scrollTop(); + } + + function update() { + // desktop mode or tablet mode with only right sidebar enabled + if (isDesktop() || (isTablet() && !hasLeftSidebar() && hasRightSidebar())) { + var nextState; + var padding = ($mainColumn.outerWidth() - $mainColumn.width()) / 2; + var maxLeft = $(window).width() - getButtonWidth() - rightMargin; + var maxBottom = $footer.offset().top + getButtonHeight() / 2 + bottomMargin; + if (getScrollTop() == 0 || getScrollBottom() < getRightSidebarBottom() + padding + getButtonHeight()) { + nextState = state['desktop-hidden']; + } else if (getScrollBottom() < maxBottom) { + nextState = state['desktop-visible']; + } else { + nextState = Object.assign({}, state['desktop-dock'], { + bottom: getScrollBottom() - maxBottom + bottomMargin + }); + } + + var left = $mainColumn.offset().left + $mainColumn.outerWidth() + padding; + nextState = Object.assign({}, nextState, { + left: Math.min(left, maxLeft) + }); + applyState(nextState); + } else { + // mobile and tablet mode + if (!isScrollUp()) { + applyState(state['mobile-hidden']); + } else { + applyState(state['mobile-visible']); + } + updateScrollTop(); + } + } + + update(); + $(window).resize(update); + $(window).scroll(update); + + $('#back-to-top').on('click', function () { + $('body, html').animate({ scrollTop: 0 }, 400); + }); +}); + +//gallery +document.addEventListener('DOMContentLoaded', function () { + if (typeof ($.fn.lightGallery) === 'function') { + $('.article').lightGallery({ selector: '.gallery-item' }); + } + if (typeof ($.fn.justifiedGallery) === 'function') { + if ($('.justified-gallery > p > .gallery-item').length) { + $('.justified-gallery > p > .gallery-item').unwrap(); + } + $('.justified-gallery').justifiedGallery(); + } +}); + +//main +(function ($) { + //alert(); + $('.article img:not(".not-gallery-item")').each(function () { + // wrap images with link and add caption if possible + if ($(this).parent('a').length === 0) { + $(this).wrap(''); + if (this.alt) { + $(this).after('
    ' + this.alt + '
    '); + } + } + }); + + if (typeof (moment) === 'function') { + $('.article-meta time').each(function () { + $(this).text(moment($(this).attr('datetime')).fromNow()); + }); + } + + $('.article > .content > table').each(function () { + if ($(this).width() > $(this).parent().width()) { + $(this).wrap('
    '); + } + }); + + function adjustNavbar() { + const navbarWidth = $('.navbar-main .navbar-start').outerWidth() + $('.navbar-main .navbar-end').outerWidth(); + if ($(document).outerWidth() < navbarWidth) { + $('.navbar-main .navbar-menu').addClass('is-flex-start'); + } else { + $('.navbar-main .navbar-menu').removeClass('is-flex-start'); + } + } + adjustNavbar(); + $(window).resize(adjustNavbar); + + $('figure.highlight table').wrap('
    '); + if (typeof (IcarusThemeSettings) !== 'undefined' && + typeof (IcarusThemeSettings.article) !== 'undefined' && + typeof (IcarusThemeSettings.article.highlight) !== 'undefined') { + if (typeof (ClipboardJS) !== 'undefined' && IcarusThemeSettings.article.highlight.clipboard) { + $('figure.highlight').each(function () { + var id = 'code-' + Date.now() + (Math.random() * 1000 | 0); + var button = ''; + $(this).attr('id', id); + if ($(this).find('figcaption').length) { + $(this).find('figcaption').prepend(button); + } else { + $(this).prepend('
    ' + button + '
    '); + } + }); + new ClipboardJS('.highlight .copy'); + } + var fold = IcarusThemeSettings.article.highlight.fold; + if (fold.trim()) { + var button = '' + (fold === 'unfolded' ? '' : '') + ''; + $('figure.highlight').each(function () { + if ($(this).find('figcaption').length) { + $(this).find('figcaption').prepend(button); + } else { + $(this).prepend('
    ' + button + '
    '); + } + }); + + function toggleFold(codeBlock, isFolded) { + var $toggle = $(codeBlock).find('.fold i'); + !isFolded ? $(codeBlock).removeClass('folded') : $(codeBlock).addClass('folded'); + !isFolded ? $toggle.removeClass('fa-angle-right') : $toggle.removeClass('fa-angle-down'); + !isFolded ? $toggle.addClass('fa-angle-down') : $toggle.addClass('fa-angle-right'); + } + + $('figure.highlight').each(function () { + toggleFold(this, fold === 'folded'); + }); + $('figure.highlight figcaption .fold').click(function () { + var $code = $(this).closest('figure.highlight'); + toggleFold($code.eq(0), !$code.hasClass('folded')); + }); + } + } + + var $toc = $('#toc'); + if ($toc.length > 0) { + var $mask = $('
    '); + $mask.attr('id', 'toc-mask'); + + $('body').append($mask); + + function toggleToc() { + $toc.toggleClass('is-active'); + $mask.toggleClass('is-active'); + } + + $toc.on('click', toggleToc); + $mask.on('click', toggleToc); + $('.navbar-main .catalogue').on('click', toggleToc); + } +})(jQuery); + + +//widget_pin +var swiper = new Swiper('.blog-slider', { + spaceBetween: 30, + effect: 'fade', + // autoHeight: true, + pagination: { + el: '.blog-slider__pagination', + clickable: true, + } + }); + + + + + diff --git a/bolo-fantastic/js/common.min.js b/bolo-fantastic/js/common.min.js new file mode 100644 index 0000000..880728c --- /dev/null +++ b/bolo-fantastic/js/common.min.js @@ -0,0 +1 @@ +!function(){function t(){return Array.prototype.slice.call(document.querySelectorAll.apply(document,arguments))}t("body > .navbar, body > .section, body > .footer").forEach((function(t){t.style.transition="0s",t.style.opacity="0"})),document.querySelector("body > .navbar").style.transform="translateY(-100px)",[".column-main > .card",".column-left > .card, .column-right-shadow > .card",".column-right > .card"].map((function(e){t(e).forEach((function(t){t.style.transition="0s",t.style.opacity="0",t.style.transform="scale(0.8)",t.style.transformOrigin="center top"}))})),setTimeout((function(){t("body > .navbar, body > .section, body > .footer").forEach((function(t){t.style.opacity="1",t.style.transition="opacity 0.3s ease-out, transform 0.3s ease-out"})),document.querySelector("body > .navbar").style.transform="translateY(0)",[".column-main > .card",".column-left > .card, .column-right-shadow > .card",".column-right > .card"].map((function(e){var i=1;t(e).forEach((function(t){setTimeout((function(){t.style.opacity="1",t.style.transform="",t.style.transition="opacity 0.3s ease-out, transform 0.3s ease-out"}),100*i),i++}))}))}))}(),function(){var t=document.querySelector(".burger"),e=document.querySelector("#"+t.dataset.target);t.addEventListener("click",(function(){t.classList.toggle("is-active"),e.classList.toggle("is-active")}))}(),$(document).ready((function(){var t=$("#back-to-top"),e=$("footer.footer"),i=$(".column-main"),a=$(".column-left"),n=$(".column-right"),o=0,s=20,r=20,l=null,c={base:{classname:"card has-text-centered",left:"",width:64,bottom:r,"border-radius":4}};function d(e){if(null===l||!function(t,e){for(var i in t)if(!e.hasOwnProperty(i)||e[i]!==t[i])return!1;for(var i in e)if(!t.hasOwnProperty(i)||t[i]!=t[i])return!1;return!0}(l,e)){t.attr("class",e.classname);for(let i in e)"classname"!==i&&t.css(i,e[i]);l=e}}function f(){return window.innerWidth>=1078}function h(){return n.length>0}function u(){return $(window).scrollTop()+$(window).height()}function g(){return t.outerHeight(!0)}function m(){if(f()||window.innerWidth>=768&&!f()&&!(a.length>0)&&h()){var l,m=(i.outerWidth()-i.width())/2,p=$(window).width()-t.outerWidth(!0)-s,b=e.offset().top+g()/2+r;l=0==$(window).scrollTop()||u()<(h()?Math.max.apply(null,n.find(".widget").map((function(){return $(this).offset().top+$(this).outerHeight(!0)}))):0)+m+g()?c["desktop-hidden"]:u()0?d(c["mobile-visible"]):d(c["mobile-hidden"]),o=$(window).scrollTop()}c["desktop-hidden"]=Object.assign({},c.base,{classname:c.base.classname+" rise-up"}),c["desktop-visible"]=Object.assign({},c["desktop-hidden"],{classname:c["desktop-hidden"].classname+" fade-in"}),c["desktop-dock"]=Object.assign({},c["desktop-visible"],{classname:c["desktop-visible"].classname+" fade-in",width:40,"border-radius":"50%"}),c["mobile-hidden"]=Object.assign({},c.base,{classname:c.base.classname+" fade-in",right:s}),c["mobile-visible"]=Object.assign({},c["mobile-hidden"],{classname:c["mobile-hidden"].classname+" rise-up"}),m(),$(window).resize(m),$(window).scroll(m),$("#back-to-top").on("click",(function(){$("body, html").animate({scrollTop:0},400)}))})),document.addEventListener("DOMContentLoaded",(function(){"function"==typeof $.fn.lightGallery&&$(".article").lightGallery({selector:".gallery-item"}),"function"==typeof $.fn.justifiedGallery&&($(".justified-gallery > p > .gallery-item").length&&$(".justified-gallery > p > .gallery-item").unwrap(),$(".justified-gallery").justifiedGallery())})),function(t){function e(){const e=t(".navbar-main .navbar-start").outerWidth()+t(".navbar-main .navbar-end").outerWidth();t(document).outerWidth()'),this.alt&&t(this).after('
    '+this.alt+"
    "))})),"function"==typeof moment&&t(".article-meta time").each((function(){t(this).text(moment(t(this).attr("datetime")).fromNow())})),t(".article > .content > table").each((function(){t(this).width()>t(this).parent().width()&&t(this).wrap('
    ')})),e(),t(window).resize(e),t("figure.highlight table").wrap('
    '),"undefined"!=typeof IcarusThemeSettings&&void 0!==IcarusThemeSettings.article&&void 0!==IcarusThemeSettings.article.highlight){"undefined"!=typeof ClipboardJS&&IcarusThemeSettings.article.highlight.clipboard&&(t("figure.highlight").each((function(){var e="code-"+Date.now()+(1e3*Math.random()|0),i='';t(this).attr("id",e),t(this).find("figcaption").length?t(this).find("figcaption").prepend(i):t(this).prepend("
    "+i+"
    ")})),new ClipboardJS(".highlight .copy"));var i=IcarusThemeSettings.article.highlight.fold;if(i.trim()){var a=''+("unfolded"===i?'':'')+"";function n(e,i){var a=t(e).find(".fold i");i?t(e).addClass("folded"):t(e).removeClass("folded"),i?a.removeClass("fa-angle-down"):a.removeClass("fa-angle-right"),i?a.addClass("fa-angle-right"):a.addClass("fa-angle-down")}t("figure.highlight").each((function(){t(this).find("figcaption").length?t(this).find("figcaption").prepend(a):t(this).prepend("
    "+a+"
    ")})),t("figure.highlight").each((function(){n(this,"folded"===i)})),t("figure.highlight figcaption .fold").click((function(){var e=t(this).closest("figure.highlight");n(e.eq(0),!e.hasClass("folded"))}))}}var o=t("#toc");if(o.length>0){var s=t("
    ");function r(){o.toggleClass("is-active"),s.toggleClass("is-active")}s.attr("id","toc-mask"),t("body").append(s),o.on("click",r),s.on("click",r),t(".navbar-main .catalogue").on("click",r)}}(jQuery);var swiper=new Swiper(".blog-slider",{spaceBetween:30,effect:"fade",pagination:{el:".blog-slider__pagination",clickable:!0}}); \ No newline at end of file diff --git a/bolo-fantastic/links.ftl b/bolo-fantastic/links.ftl new file mode 100644 index 0000000..a963c83 --- /dev/null +++ b/bolo-fantastic/links.ftl @@ -0,0 +1,175 @@ +<#-- + + 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 . + +--> +<#-- Solo - A small and beautiful blogging system written in Java. Copyright (c) 2010-present, b3log.org This program is + free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more + details. You should have received a copy of the GNU Affero General Public License along with this program. If not, + see . --> +<#include "../../common-template/macro-common_head.ftl"> + + + + + + + <@head title="${linkLabel} - ${blogTitle}"> + + + + + + + + + <#-- <#include "style.theme.ftl"> --> + + + +<#include "header.ftl"> +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    + + +
    + <#list links as link> + + +
    + +
    +
    +
    +
    + <#include "side-right.ftl"> + + +
    +
    +
    +
    +
    +
    + <#include "side.ftl"> +
    + +
    +
    +
    + + + +<#include "footer.ftl"> + + + \ No newline at end of file diff --git a/bolo-fantastic/macro-comments.ftl b/bolo-fantastic/macro-comments.ftl new file mode 100644 index 0000000..d9899ef --- /dev/null +++ b/bolo-fantastic/macro-comments.ftl @@ -0,0 +1,600 @@ +<#-- + + 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 count> + <#if article.commentable || 0 != commentList?size> +
    + <#if article.commentable> + +
    +
    +
    +
    + +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + +
      + <#list commentList as comment> + <#include "common-comment.ftl"/> + +
    +
    + +
    + + + diff --git a/bolo-fantastic/preview.png b/bolo-fantastic/preview.png new file mode 100644 index 0000000..52848b7 Binary files /dev/null and b/bolo-fantastic/preview.png differ diff --git a/bolo-fantastic/side-right.ftl b/bolo-fantastic/side-right.ftl new file mode 100644 index 0000000..4393b88 --- /dev/null +++ b/bolo-fantastic/side-right.ftl @@ -0,0 +1,78 @@ +<#-- + + 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 mostViewCountArticles as article> + + + +
    +
    + \ No newline at end of file diff --git a/bolo-fantastic/side.ftl b/bolo-fantastic/side.ftl new file mode 100644 index 0000000..fa40e76 --- /dev/null +++ b/bolo-fantastic/side.ftl @@ -0,0 +1,261 @@ +<#-- + + 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 usite??> + <#if usite.usiteQQ !=''> + + + + + <#if usite.usiteWeChat !=''> + + + + + <#if usite.usiteWeiBo !=''> + + + + + <#if usite.usiteGitHub !=''> + + + + + <#if usite.usiteTwitter !=''> + + + + + <#if usite.usiteFacebook !=''> + + + + + <#if usite.usiteTelegram !=''> + + + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    + + + <#list mostViewCountArticles as article> + + + +
    +
    + + +
    + + +
    diff --git a/bolo-fantastic/skin.properties b/bolo-fantastic/skin.properties new file mode 100644 index 0000000..91f2af2 --- /dev/null +++ b/bolo-fantastic/skin.properties @@ -0,0 +1,20 @@ +# +# 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 . +# + +name=solo-fantastic +memo=https://github.com/InkDP/solo-nexmoe diff --git a/bolo-fantastic/style.theme.ftl b/bolo-fantastic/style.theme.ftl new file mode 100644 index 0000000..6782dac --- /dev/null +++ b/bolo-fantastic/style.theme.ftl @@ -0,0 +1,510 @@ +<#-- + + 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 . + +--> + \ No newline at end of file diff --git a/bolo-fantastic/tag-articles.ftl b/bolo-fantastic/tag-articles.ftl new file mode 100644 index 0000000..7daece3 --- /dev/null +++ b/bolo-fantastic/tag-articles.ftl @@ -0,0 +1,83 @@ +<#-- + + 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 . + +--> +<#-- Solo - A small and beautiful blogging system written in Java. Copyright (c) 2010-present, b3log.org This program is + free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more + details. You should have received a copy of the GNU Affero General Public License along with this program. If not, + see . --> +<#include "../../common-template/macro-common_head.ftl"> + + + + + + <@head title="${tag.tagTitle} ${tagLabel} - ${blogTitle}"> + + + + + + + <#-- <#include "style.theme.ftl"> --> + + + +<#include "header.ftl"> +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + <#include "article-list.ftl"> +
    +
    + <#include "side-right.ftl"> + + +
    +
    +
    +
    +
    +
    + <#include "side.ftl"> +
    + +
    +
    +
    + +<#include "footer.ftl"> + + + \ No newline at end of file diff --git a/bolo-fantastic/tags.ftl b/bolo-fantastic/tags.ftl new file mode 100644 index 0000000..f9b5195 --- /dev/null +++ b/bolo-fantastic/tags.ftl @@ -0,0 +1,119 @@ +<#-- + + 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 . + +--> +<#-- Solo - A small and beautiful blogging system written in Java. Copyright (c) 2010-present, b3log.org This program is + free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more + details. You should have received a copy of the GNU Affero General Public License along with this program. If not, + see . --> +<#include "../../common-template/macro-common_head.ftl"> + + + + + + <@head title="${allTagsLabel} - ${blogTitle}"> + + + + + + + <#-- <#include "style.theme.ftl"> --> + + + +<#include "header.ftl"> + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + +
    + <#list tags as tag> + ${tag.tagTitle}   + +
    +
    +
    +
    +
    + <#include "side-right.ftl"> + + +
    +
    +
    +
    +
    +
    + <#include "side.ftl"> +
    + +
    +
    +
    + + + +<#include "footer.ftl"> + + + \ No newline at end of file diff --git a/bolo-fantastic/toc-post.ftl b/bolo-fantastic/toc-post.ftl new file mode 100644 index 0000000..5934dc8 --- /dev/null +++ b/bolo-fantastic/toc-post.ftl @@ -0,0 +1,328 @@ +<#-- + + 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 . + +--> +
    +
    +
    + + +