diff --git a/Casper/archive-articles.ftl b/Casper/archive-articles.ftl new file mode 100644 index 0000000..52390f3 --- /dev/null +++ b/Casper/archive-articles.ftl @@ -0,0 +1,61 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +<#include "../../common-template/macro-common_head.ftl"> + + + + <@head title="${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} ${archiveLabel} - ${blogTitle}"> + + + + +<#include "header.ftl"> +
+ <#if pjax> +<#include "nav.ftl"> +
+<#if noticeBoard??> +
+ ${noticeBoard} +
+ +
+
+ + <#if "en" == localeString?substring(0, 2)> + ${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} + <#else> + ${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} + + + ${archiveDate.archiveDatePublishedArticleCount} + ${cntArticleLabel} + + +
+ <#include "article-list.ftl"> +
+<#include "bottom2.ftl"> +
+<#if pjax> +
+<#include "footer.ftl"> + + diff --git a/Casper/archives.ftl b/Casper/archives.ftl new file mode 100644 index 0000000..2fac99f --- /dev/null +++ b/Casper/archives.ftl @@ -0,0 +1,75 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +<#include "../../common-template/macro-common_head.ftl"> + + + +<@head title="${archiveLabel} - ${blogTitle}"> + + + + +<#include "header.ftl"> +
+ <#if pjax> +<#include "nav.ftl"> +
+<#if noticeBoard??> +
+ ${noticeBoard} +
+ +
+
+ + ${archiveDates?size} + ${cntMonthLabel} + ${statistic.statisticPublishedBlogArticleCount} + ${cntArticleLabel} + +
+ <#if 0 != archiveDates?size> + <#list archiveDates as archiveDate> + + + +
+<#include "bottom.ftl"> +
+ <#if pjax> +
+<#include "footer.ftl"> + + diff --git a/Casper/article-list.ftl b/Casper/article-list.ftl new file mode 100644 index 0000000..c1fe855 --- /dev/null +++ b/Casper/article-list.ftl @@ -0,0 +1,88 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +
+<#list articles as article> + + +
+ +<#if 0 != paginationPageCount> + + \ No newline at end of file diff --git a/Casper/article.ftl b/Casper/article.ftl new file mode 100644 index 0000000..8b26526 --- /dev/null +++ b/Casper/article.ftl @@ -0,0 +1,235 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +<#include "../../common-template/macro-common_head.ftl"> +<#include "macro-comments.ftl"> +<#include "../../common-template/macro-comment_script.ftl"> + + + +<@head title="${article.articleTitle} - ${blogTitle}" description="${article.articleAbstract?html}"> + + <#if previousArticlePermalink??> + + + <#if nextArticlePermalink??> + + + + + +<#include "header.ftl"> +
+ <#if pjax> +
+ <#if noticeBoard??> +
+ ${noticeBoard} +
+ +
+
+
+

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

+
+
+ ${article.articleContent} + <#if "" != article.articleSign.signHTML?trim> +
+ ${article.articleSign.signHTML} +
+ +
+
${articleTag}<#if articleTag_has_next>,"> + <#list article.articleTags?split(",") as articleTag> + + +
+ +
+
+
+
+ + <@comments commentList=articleComments article=article> +
+
+ +
+
+ + ${article.articleViewCount} ${viewLabel} + +
+ + +     +     +     + + + + + <#if nextArticlePermalink??> + + +
+
+
+ +
+ +
+     +     +     + + +
+
+
+ <#include "bottom.ftl"> +
+ <#if article?? && article.articleToC?? && article.articleToC?size > 0> + <#include "../../common-template/toc.ftl"/> + +
+ <#if pjax> +
+<#include "footer.ftl"> + +<#if pjax> +<@comment_script oId=article.oId commentable=article.commentable> + Skin.initArticle() + Skin.initComment = function (articleOId, articleTags) { + page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}"; + <#if 0 != randomArticlesDisplayCount> + page.loadRandomArticles("
${randomArticlesLabel}
"); + + <#if 0 != externalRelevantArticlesDisplayCount> + page.loadExternalRelevantArticles(articleTags, "
${externalRelevantArticlesLabel}
"); + + <#if 0 != relevantArticlesDisplayCount> + page.loadRelevantArticles(articleOId, '
${relevantArticlesLabel}
'); + + } + Skin.initComment('${article.oId}', "<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,") + +<#if pjax> +${plugins} + + diff --git a/Casper/bottom.ftl b/Casper/bottom.ftl new file mode 100644 index 0000000..8ee3369 --- /dev/null +++ b/Casper/bottom.ftl @@ -0,0 +1,50 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> + diff --git a/Casper/bottom2.ftl b/Casper/bottom2.ftl new file mode 100644 index 0000000..9ee02b2 --- /dev/null +++ b/Casper/bottom2.ftl @@ -0,0 +1,36 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> + \ No newline at end of file diff --git a/Casper/category-articles.ftl b/Casper/category-articles.ftl new file mode 100644 index 0000000..18d7773 --- /dev/null +++ b/Casper/category-articles.ftl @@ -0,0 +1,56 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +<#include "../../common-template/macro-common_head.ftl"> + + + +<@head title="${category.categoryTitle} - ${blogTitle}"> + + + + +<#include "header.ftl"> +
+ <#if pjax> +<#include "nav.ftl"> +
+<#if noticeBoard??> +
+ ${noticeBoard} +
+ +
+
+ + ${category.categoryTitle} + + ${category.categoryDescription} + + +
+ <#include "article-list.ftl"> +
+<#include "bottom2.ftl"> +
+ <#if pjax> +
+<#include "footer.ftl"> + + diff --git a/Casper/common-comment.ftl b/Casper/common-comment.ftl new file mode 100644 index 0000000..798a750 --- /dev/null +++ b/Casper/common-comment.ftl @@ -0,0 +1,54 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +
+ +
+
+ + <#if "http://" == comment.commentURL> + ${comment.commentName} + <#else> + ${comment.commentName} + + + + <#if comment.isReply> + + + ${reply1Label} ${comment.commentOriginalCommentName} + + + + + + + <#if article.commentable> + + ${reply1Label} + + +
+
+ ${comment.commentContent} +
+
+
\ No newline at end of file diff --git a/Casper/css/base.css b/Casper/css/base.css new file mode 100644 index 0000000..5e1d871 --- /dev/null +++ b/Casper/css/base.css @@ -0,0 +1 @@ +html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;height:100%}body{margin:0;font-family:"Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif;font-size:14px;background-color:#fff;-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch}::-moz-selection{text-shadow:none;background:rgba(65,131,196,0.4)}::selection{text-shadow:none;background:rgba(66,133,244,0.4)}ul,ol{margin:0;padding:0}h1,h2,h3,h4,h5,h6,dl,dd,p{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none}a{outline:0;text-decoration:none}a:hover{text-decoration:underline}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;vertical-align:middle;border:0;height:auto;-ms-interpolation-mode:bicubic;overflow:hidden;font-size:12px}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;font-family:"Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif;outline:none}button,input{line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}svg{fill:currentColor;display:inline-block;stroke-width:0;stroke:currentColor;width:14px;height:14px}blockquote{margin:0}.user__site:hover{text-decoration:none}.article__toc{overflow:auto}.article__toc::-webkit-scrollbar{display:none}.article__toc li{list-style-type:none}.article__toc li a{padding-left:10px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.article__toc li a:hover{text-decoration:none}.article__toc li.toc__h3 a{padding-left:20px}.article__toc li.toc__h4 a{padding-left:30px}.article__toc li.toc__h5 a{padding-left:40px}#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);-ms-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%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@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;animation-name:tooltip-appear;animation-duration:0.1s;animation-fill-mode:forwards;animation-timing-function:ease-in;animation-delay:0.4s}.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{transform:translateX(50%)}.vditor-tooltipped__w::after{right:100%;bottom:50%;margin-right:5px;transform:translateY(50%)}.vditor-tooltipped__w::before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:rgba(0,0,0,0.8)}.vditor-tooltipped__e::after{bottom:50%;left:100%;margin-left:5px;transform:translateY(50%)}.vditor-tooltipped__e::before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:rgba(0,0,0,0.8)}.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:1;font-size:14px;display:none;user-select:none;max-width:200px;min-width:80px}.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 input{position:absolute;width:1px;opacity:.001;height:14px;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-emojis{display:inline-block}.vditor-emojis__tail{font-size:12px;text-align:right;color:#586069}.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:26px;width:26px;text-align:center;line-height:20px;padding:3px;box-sizing:border-box;font-size:16px}.vditor-emojis span:hover{background-color:#4285f4}.vditor-emojis img{height:20px;width:20px;float:left}.vditor{display:flex;flex-direction:column;border:1px solid #d1d5da;border-radius:3px;box-sizing:border-box}.vditor--fullscreen{position:fixed;top:0;width:100% !important;left:0;height:100vh !important;z-index:90;background-color:#fff}.vditor-content{display:flex;min-height:60px;flex:1;position:relative}.vditor-textarea{flex:1;border:0;resize:none;padding: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}.vditor-textarea[disabled]{opacity:0.3;cursor:not-allowed}.vditor-textarea:focus{background-color:#fff}.vditor-preview{flex:1;background-color:#fff;overflow:auto;padding:10px;box-shadow:inset 1px 0 #d1d5da;box-sizing:border-box;border-radius:0 0 3px 0}.vditor-preview::-webkit-scrollbar{display:none}.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;user-select:none}.vditor-counter--error{color:#d23f31;background-color:rgba(210,63,49,0.1)}.vditor-resize{padding:1px 0;border-radius:5px;cursor:row-resize;transition:all .15s ease-in-out;user-select:none;background-color:#f6f8fa}.vditor-resize:hover{background-color:#4285f4}.vditor-resize:hover 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{opacity:0;position:absolute;width:100%;height:5px;left:0;top:-3px;border-radius:3px;overflow:hidden;transition:all .15s ease-in-out;color:#fff;font-size:12px;line-height:14px}.vditor-upload ul{margin:0}.vditor-upload--tip{height:auto;opacity:1 !important}.vditor-upload--tip .vditor-upload__close{display:block}.vditor-upload__close{display:none;position:absolute;right:5px;cursor:pointer;padding:5px;top:0}.vditor-upload__progress{height:100%;background-color:rgba(66,133,244,0.8);transition:all .15s ease-in-out;padding:5px;box-sizing:border-box}.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:1;line-height:20px;list-style:none;color:#24292e;font-size:12px;margin:0;max-width:200px;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-family:"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif;word-wrap:break-word;overflow:auto;line-height:1.65;font-size:16px;word-break:break-word}.vditor-reset ul,.vditor-reset ol{padding-left:2em;margin-top:0;margin-bottom:16px}.vditor-reset li{margin-top:0.25em}.vditor-reset audio{max-width:100%}.vditor-reset video{max-height:90vh}.vditor-reset img.emoji{cursor:auto;max-width:20px;vertical-align:top}.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:0.15em;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}.vditor-reset table{width:100%;border:1px solid #dedede;margin:15px auto;border-collapse:collapse;empty-cells:show}.vditor-reset thead{text-align:center}.vditor-reset td,.vditor-reset th{height:35px;border:1px solid #dedede;padding:0 10px}.vditor-reset th{font-weight:bold;text-align:center !important;background:rgba(158,188,226,0.2)}.vditor-reset tbody tr:nth-child(2n){background:rgba(158,188,226,0.12)}.vditor-reset tr:hover{background:#efefef}.vditor-reset code{padding:0.2em 0.4em;margin:0;font-size:85%;background-color:rgba(27,31,35,0.05);border-radius:3px;font-family:mononoki,Consolas,"Liberation Mono",Menlo,Courier,monospace;word-break:break-word}.vditor-reset pre>code{padding:0.5em;background-color:rgba(0,0,0,0.04);background-image:url("https://cdn.jsdelivr.net/npm/vditor@1.1.2/src/assets/images/code-bg.png");background-size:20px 20px;border-radius:5px;display:block;overflow:auto}.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 .katex{position:relative}.vditor-task{list-style:none;margin-left:-1.4em;display:flex;align-items:center}.vditor-task input{margin-right:5px}.vditor-copy{position:relative;display:none}.vditor-copy textarea{position:absolute;top:-100000px}.vditor-copy span{cursor:pointer;position:absolute;right:0.5em;top:0.5em;height:20px;width:20px}.vditor-copy svg{height:20px;width:20px}.fn-flex{display:flex}.fn-flex-1{flex:1;min-width:1px}.fn-clear:before,.fn-clear:after{display:table;content:""}.fn-clear:after{clear:both}.fn-left{float:left}.fn-right{float:right}.ft-12{font-size:12px;font-weight:normal}.ft-gray{color:rgba(0,0,0,0.54)}.ft-fade{color:rgba(0,0,0,0.38)}.ft-green{color:#03a87c !important;transition:all 0.1s}.ft-green:hover{color:#018f69 !important}.tag{background-color:rgba(0,0,0,0.05);color:rgba(0,0,0,0.68);padding:5px 10px;line-height:22px;font-weight:400;border-radius:3px;white-space:nowrap;display:inline-block;transition:all 0.1s;margin:0 8px 8px 0;font-size:15px}.tag:hover{text-decoration:none;background:rgba(0,0,0,0.1);color:rgba(0,0,0,0.68)}.tag__level0{line-height:inherit;font-size:12px;color:rgba(0,0,0,0.38)}.tag__level1{line-height:inherit;font-size:16px;color:rgba(0,0,0,0.54)}.tag__level2{line-height:inherit;font-size:21px;color:#6f6f6f}.tag__level3{line-height:inherit;font-size:24px;color:#3b3e43}.tag__level4{line-height:inherit;font-size:30px;color:#000}.module__title{border-bottom:1px solid rgba(0,0,0,0.15);margin-bottom:25px;line-height:26px;font-size:22px;position:relative;height:46px}.module__title>span{border-bottom:1px solid rgba(0,0,0,0.54);position:absolute;padding-bottom:20px;height:26px}.wrapper{max-width:1000px;margin:0 auto;box-sizing:border-box}.header{padding:0 20px;box-sizing:border-box;height:64px;text-align:center;transition:all 0.1s;z-index:11}.header h1{display:inline-block;line-height:61px;width:50%;overflow:auto;white-space:nowrap}.header h1::-webkit-scrollbar{display:none}.header--fixed{position:fixed;width:100%;top:-64px;background-color:#fff;box-shadow:0 2px 2px -2px rgba(0,0,0,0.15)}.header__logo{float:left;height:32px;width:32px;margin:16px 0;background-size:cover;background-repeat:no-repeat;background-position:center center}.header__title{overflow:hidden;font-size:26px;color:rgba(0,0,0,0.84)}.header__title:hover{text-decoration:none}.header__icon{transition:all 0.1s;color:rgba(0,0,0,0.54);text-decoration:none;width:25px;margin-left:10px;float:left;margin-top:25px}.header__icon:hover{text-decoration:none;color:rgba(0,0,0,0.68)}.header__icon svg{height:16px;width:16px}.header__icon.avatar{background-size:cover;background-repeat:no-repeat;background-position:center center;display:inline-block;height:32px;width:32px;border-radius:16px;margin-top:16px;margin-left:14px}.header__a{color:#03a87c;font-size:16px;float:left;margin:16px 0 0 16px;transition:all 0.1s;line-height:32px}.header__a:hover{text-decoration:none;color:#018f69;border-color:#018f69}.header__nav{height:50px;padding:0 20px;box-sizing:border-box}.header__nav .wrapper{overflow:auto;word-wrap:normal;white-space:nowrap}.header__nav .wrapper::-webkit-scrollbar{display:none}.header__nav a{color:rgba(0,0,0,0.76);font-size:15px;padding:0 10px;line-height:50px;text-decoration:none}.header__nav a img{height:16px;width:16px;vertical-align:text-top}.header__nav a:first-child{padding-left:0}.header__nav--fixed{z-index:11;position:fixed;width:100%;top:0;background-color:#fff;box-shadow:0 2px 2px -2px rgba(0,0,0,0.15)}.footer{margin-top:50px;padding:10px 20px 25px;font-size:14px;border-top:1px solid rgba(0,0,0,0.05);color:rgba(0,0,0,0.38)}.footer a{color:rgba(0,0,0,0.54)}.footer__tag{margin-top:50px}.footer__tag>div{margin-right:20px}.footer__tag>div:last-child{margin-right:0}.footer__tag li{list-style:none}.footer__tag li a{color:rgba(0,0,0,0.54);display:block;line-height:30px;word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 25px}.footer__tag li a:hover{color:rgba(0,0,0,0.68)}.main{margin:50px 20px 0}.main .content{margin-top:50px}.board{padding:12px 0;text-align:center}.article__toc{left:100%;position:fixed;top:90px;bottom:60px}.article__toc a{color:rgba(0,0,0,0.54)}.article__toc a:hover{color:rgba(0,0,0,0.68)}.article__main{display:flex;flex-direction:column}.article__thumbnail{margin:10px 0;background-position:center center;background-size:cover;flex:1}.article__wrap{margin-right:-20px}.article__item{border:1px solid rgba(0,0,0,0.1);border-radius:2px;margin-bottom:20px;float:left}.article__item--big{width:318px;margin-right:20px}.article__item--big .article__main{height:236px;overflow:hidden}.article__item--small{width:318px;margin-right:20px}.article__item--small .article__thumbnail{background-image:none !important}.article__item--small .article__main{height:91px;overflow:hidden}.article__item--mid{width:488px;margin-right:20px}.article__item--mid .article__main{height:195px;overflow:hidden}.article__panel{padding:16px}.article__title{overflow:hidden;line-height:24px;font-size:21px;font-weight:600;word-break:break-all}.article__title a{color:rgba(0,0,0,0.84)}.article__title a:hover{text-decoration:none}.article__title sup{top:-6px;font-size:12px;color:#03a87c}.article__content{margin-top:4px;font-size:16px;color:rgba(0,0,0,0.54);overflow:hidden;line-height:23px;word-break:break-all}.article__meta{font-size:15px;line-height:23px;flex-shrink:0}.post{max-width:740px;margin:50px auto 20px;position:relative}.post__main{margin:20px 0 0 0}.post__title{font-weight:700;font-size:42px;margin:0 -20px 10px;word-break:break-all}.post__title sup{font-size:16px;top:-20px;color:#03a87c}.post__tags{padding:4px 0 22px;border-bottom:1px solid rgba(0,0,0,0.05)}.post__share{padding:20px 0;margin-bottom:20px;font-size:16px}.post__share svg{height:20px;width:20px;vertical-align:bottom}.post__share #articleShare{position:relative}.post__share #articleShare .article__code{position:absolute;height:130px;width:130px;left:-2px;top:22px}.post__share-icon{color:rgba(0,0,0,0.54);cursor:pointer}.post__share-icon:hover{color:rgba(0,0,0,0.68)}.post__view{color:#03a87c;transition:all 0.1s}.post__view:hover{color:#018f69;text-decoration:none}.post__side{position:fixed;top:50%;left:10%;width:55px;text-align:center;font-size:16px;margin-top:-125px;transition:opacity .1s;opacity:0}.post__side svg{height:25px;width:25px}.post__side .ft-green svg{height:55px;width:55px;vertical-align:bottom;margin-bottom:10px}.post__side .article__code{position:absolute;height:130px;width:130px;left:45px;top:90px}#articleSideShare{width:26px;margin:0 auto}.article__bottom{background-color:#fafafa;padding:40px 20px;position:relative;z-index:1}.article__bottom .footer__tag{margin-bottom:50px}.article__comment{width:640px;margin:45px auto 0;position:relative}.article__comment .comment__title{font-size:16px;margin-bottom:15px;color:rgba(0,0,0,0.68)}.article__comment .comment__item{background-color:#fff;box-shadow:rgba(0,0,0,0.04) 0px 1px 4px;border:1px solid rgba(0,0,0,0.09);border-radius:3px;padding:10px 20px 10px 77px;margin:0 0 20px}.article__comment .comment__avatar{position:absolute;left:10px;height:57px;width:57px;display:inline-block;z-index:10;border:2px solid #fff;border-radius:50%}.article__comment .comment__body svg.ft-gray{height:12px;width:12px;vertical-align:text-top;margin-left:5px}.article__comment .comment__body .vditor-reset{min-height:40px}.article__comment .comment__user,.article__comment .comment__user a{color:#03a87c}.article__comment .comment__user a:hover{color:#018f69;text-decoration:none}.comment-body-ref{position:absolute;width:559px;box-sizing:border-box;left:101px}.comment-body-ref .ft-green{display:none}.comment__textarea{background-color:#fff;box-shadow:rgba(0,0,0,0.04) 0px 1px 4px;border:1px solid rgba(0,0,0,0.09);border-radius:3px;padding:10px;margin:0 0 5px;width:100%;box-sizing:border-box;cursor:pointer;resize:none}.article__toolbar{box-shadow:0 0 1px rgba(0,0,0,0.54);position:fixed;bottom:-44px;width:100%;background-color:#fff;height:44px;font-size:16px;line-height:44px;transition:all 0.1s;opacity:0}.article__toolbar .wrapper{max-width:740px}.article__toolbar svg{height:20px;width:20px;vertical-align:middle}.article__toolbar .fn-right{position:absolute;top:0;right:20px}.article__toolbar .article__code{position:absolute;height:130px;width:130px;left:50px;bottom:30px}.article__next{border-left:1px solid rgba(0,0,0,0.38);line-height:15px;margin-top:7px;color:rgba(0,0,0,0.84);font-size:14px;display:inline-block;padding-left:20px;margin-left:20px;transition:all .2s;float:right}.article__next:hover{text-decoration:none;color:rgba(0,0,0,0.54)}.pagination{margin-top:30px;font-size:16px;border-top:1px solid rgba(0,0,0,0.15)}.pagination__item{text-align:center;border-top:1px solid transparent;transition:all 0.1s;display:inline-block;position:relative;top:-1px;margin:0 10px;padding:0 10px;line-height:30px;color:rgba(0,0,0,0.54)}.pagination__item:hover{border-top-color:rgba(0,0,0,0.54);color:rgba(0,0,0,0.84);text-decoration:none}.pagination__item--active{background:rgba(0,0,0,0.05);border-top-color:rgba(0,0,0,0.54)}.pagination__item--active:hover{color:rgba(0,0,0,0.54);border-top-color:rgba(0,0,0,0.54)}.pagination__item:first-child{margin-left:0}.pagination__item:last-child{margin-right:0}.pagination__omit{top:-5px;margin:0;border:0;padding:0;color:#ccc}.page__item{display:block;border-bottom:1px solid rgba(0,0,0,0.05);padding:40px 0 35px}@media (max-width: 768px){.header{text-align:left}.header__logo,.post__side,.article__next,#articleBottomShare,#articleShare,.article__comment .comment__avatar{display:none}.post{margin:50px 20px 20px}.article__toolbar{padding-left:20px;box-sizing:border-box}.article__item{width:100%;margin-bottom:20px}.article__wrap{margin:0}.article__comment{width:100%}.article__main{height:auto !important}.footer .fn-right{float:none}.footer__tag{display:block}.footer__tag>div{margin:0 0 50px}.footer__tag>div:last-child{margin:0}.pagination__item{margin:0}.article__comment .comment__item{padding-left:10px}}#nprogress .bar{background:#d23f31}#nprogress .peg{box-shadow:0 0 10px #d23f31, 0 0 5px #d23f31}#nprogress .spinner-icon{border-top-color:#d23f31;border-left-color:#d23f31} diff --git a/Casper/css/base.scss b/Casper/css/base.scss new file mode 100644 index 0000000..76a83bb --- /dev/null +++ b/Casper/css/base.scss @@ -0,0 +1,842 @@ +/** + * Solo - A small and beautiful blogging system written in Java. + * Copyright (c) 2010-2019, b3log.org & hacpai.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +/* + * skin style + * + * @author Liyuan Li + * @version 2.1.0.0, Mar 22, 2019 + */ +@import "../../../scss/reset"; +@import "../../../scss/usite"; +@import "../../../scss/toc"; +@import "../../../scss/nprogress"; +@import "vditor/src/assets/scss/classic"; + +.fn-flex { + display: flex +} + +.fn-flex-1 { + flex: 1; + min-width: 1px +} + +.fn-clear:before, .fn-clear:after { + display: table; + content: "" +} + +.fn-clear:after { + clear: both +} + +.fn-left { + float: left +} + +.fn-right { + float: right +} + +.ft-12 { + font-size: 12px; + font-weight: normal; +} + +.ft-gray { + color: rgba(0, 0, 0, 0.54); +} + +.ft-fade { + color: rgba(0, 0, 0, 0.38); +} + +.ft-green { + color: #03a87c !important; + transition: all 0.1s +} + +.ft-green:hover { + color: #018f69 !important +} + +.tag { + background-color: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.68); + padding: 5px 10px; + line-height: 22px; + font-weight: 400; + border-radius: 3px; + white-space: nowrap; + display: inline-block; + transition: all 0.1s; + margin: 0 8px 8px 0; + font-size: 15px +} + +.tag:hover { + text-decoration: none; + background: rgba(0, 0, 0, 0.1); + color: rgba(0, 0, 0, 0.68) +} + +.tag__level0 { + line-height: inherit; + font-size: 12px; + color: rgba(0, 0, 0, 0.38) +} + +.tag__level1 { + line-height: inherit; + font-size: 16px; + color: rgba(0, 0, 0, 0.54) +} + +.tag__level2 { + line-height: inherit; + font-size: 21px; + color: #6f6f6f +} + +.tag__level3 { + line-height: inherit; + font-size: 24px; + color: #3b3e43 +} + +.tag__level4 { + line-height: inherit; + font-size: 30px; + color: #000 +} + +.module__title { + border-bottom: 1px solid rgba(0, 0, 0, 0.15); + margin-bottom: 25px; + line-height: 26px; + font-size: 22px; + position: relative; + height: 46px +} + +.module__title > span { + border-bottom: 1px solid rgba(0, 0, 0, 0.54); + position: absolute; + padding-bottom: 20px; + height: 26px +} + +/* star framework */ +.wrapper { + max-width: 1000px; + margin: 0 auto; + box-sizing: border-box +} + +.header { + padding: 0 20px; + box-sizing: border-box; + height: 64px; + text-align: center; + transition: all 0.1s; + z-index: 11; +} + +.header h1 { + display: inline-block; + line-height: 61px; + width: 50%; + overflow: auto; + white-space: nowrap; +} + +.header h1::-webkit-scrollbar { + display: none; +} + +.header--fixed { + position: fixed; + width: 100%; + top: -64px; + background-color: #fff; + box-shadow: 0 2px 2px -2px rgba(0, 0, 0, 0.15) +} + +.header__logo { + float: left; + height: 32px; + width: 32px; + margin: 16px 0; + background-size: cover; + background-repeat: no-repeat; + background-position: center center +} + +.header__title { + overflow: hidden; + font-size: 26px; + color: rgba(0, 0, 0, 0.84) +} + +.header__title:hover { + text-decoration: none +} + +.header__icon { + transition: all 0.1s; + color: rgba(0, 0, 0, 0.54); + text-decoration: none; + width: 25px; + margin-left: 10px; + float: left; + margin-top: 25px +} + +.header__icon:hover { + text-decoration: none; + color: rgba(0, 0, 0, 0.68) +} + +.header__icon svg { + height: 16px; + width: 16px +} + +.header__icon.avatar { + background-size: cover; + background-repeat: no-repeat; + background-position: center center; + display: inline-block; + height: 32px; + width: 32px; + border-radius: 16px; + margin-top: 16px; + margin-left: 14px +} + +.header__a { + color: #03a87c; + font-size: 16px; + float: left; + margin: 16px 0 0 16px; + transition: all 0.1s; + line-height: 32px; +} + +.header__a:hover { + text-decoration: none; + color: #018f69; + border-color: #018f69 +} + +.header__nav { + height: 50px; + padding: 0 20px; + box-sizing: border-box +} + +.header__nav .wrapper { + overflow: auto; + word-wrap: normal; + white-space: nowrap +} + +.header__nav .wrapper::-webkit-scrollbar { + display: none +} + +.header__nav a { + color: rgba(0, 0, 0, 0.76); + font-size: 15px; + padding: 0 10px; + line-height: 50px; + text-decoration: none +} + +.header__nav a img { + height: 16px; + width: 16px; + vertical-align: text-top +} + +.header__nav a:first-child { + padding-left: 0 +} + +.header__nav--fixed { + z-index: 11; + position: fixed; + width: 100%; + top: 0; + background-color: #fff; + box-shadow: 0 2px 2px -2px rgba(0, 0, 0, 0.15) +} + +.footer { + margin-top: 50px; + padding: 10px 20px 25px; + font-size: 14px; + border-top: 1px solid rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.38) +} + +.footer a { + color: rgba(0, 0, 0, 0.54) +} + +.footer__tag { + margin-top: 50px; +} + +.footer__tag > div { + margin-right: 20px +} + +.footer__tag > div:last-child { + margin-right: 0 +} + +.footer__tag li { + list-style: none; +} + +.footer__tag li a { + color: rgba(0, 0, 0, 0.54); + display: block; + line-height: 30px; + word-break: keep-all; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + padding: 0 25px; +} + +.footer__tag li a:hover { + color: rgba(0, 0, 0, 0.68); +} + +.main { + margin: 50px 20px 0 +} + +.main .content { + margin-top: 50px +} + +.board { + padding: 12px 0; + text-align: center +} + +/* star article */ +.article { + &__toc { + left: 100%; + position: fixed; + top: 90px; + bottom: 60px; + a { + color: rgba(0, 0, 0, 0.54); + &:hover { + color: rgba(0, 0, 0, 0.68); + } + } + } + &__main { + display: flex; + flex-direction: column; + } + &__thumbnail { + margin: 10px 0; + background-position: center center; + background-size: cover; + flex: 1; + } + &__wrap { + margin-right: -20px + } + + &__item { + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 2px; + margin-bottom: 20px; + float: left + } + + &__item--big { + width: 318px; + margin-right: 20px + } + + &__item--big .article__main { + height: 236px; + overflow: hidden; + } + + &__item--small { + width: 318px; + margin-right: 20px; + .article__thumbnail { + background-image: none !important; + } + } + + &__item--small .article__main { + height: 91px; + overflow: hidden; + } + + &__item--mid { + width: 488px; + margin-right: 20px + } + + &__item--mid .article__main { + height: 195px; + overflow: hidden; + } + + &__panel { + padding: 16px + } + + &__title { + overflow: hidden; + line-height: 24px; + font-size: 21px; + font-weight: 600; + word-break: break-all + } + + &__title a { + color: rgba(0, 0, 0, 0.84) + } + + &__title a:hover { + text-decoration: none + } + + &__title sup { + top: -6px; + font-size: 12px; + color: #03a87c; + } + + &__content { + margin-top: 4px; + font-size: 16px; + color: rgba(0, 0, 0, 0.54); + overflow: hidden; + line-height: 23px; + word-break: break-all; + } + + &__meta { + font-size: 15px; + line-height: 23px; + flex-shrink: 0; + } +} + +/* end article list */ + +/* start article */ +.post { + max-width: 740px; + margin: 50px auto 20px; + position: relative +} + +.post__main { + margin: 20px 0 0 0 +} + +.post__title { + font-weight: 700; + font-size: 42px; + margin: 0 -20px 10px; + word-break: break-all +} + +.post__title sup { + font-size: 16px; + top: -20px; + color: #03a87c; +} + +.post__tags { + padding: 4px 0 22px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05) +} + +.post__share { + padding: 20px 0; + margin-bottom: 20px; + font-size: 16px; +} + +.post__share svg { + height: 20px; + width: 20px; + vertical-align: bottom +} + +.post__share #articleShare { + position: relative +} + +.post__share #articleShare .article__code { + position: absolute; + height: 130px; + width: 130px; + left: -2px; + top: 22px +} + +.post__share-icon { + color: rgba(0, 0, 0, 0.54); + cursor: pointer; +} + +.post__share-icon:hover { + color: rgba(0, 0, 0, 0.68); +} + +.post__view { + color: #03a87c; + transition: all 0.1s +} + +.post__view:hover { + color: #018f69; + text-decoration: none +} + +.post__side { + position: fixed; + top: 50%; + left: 10%; + width: 55px; + text-align: center; + font-size: 16px; + margin-top: -125px; + transition: opacity .1s; + opacity: 0 +} + +.post__side svg { + height: 25px; + width: 25px +} + +.post__side .ft-green svg { + height: 55px; + width: 55px; + vertical-align: bottom; + margin-bottom: 10px +} + +.post__side .article__code { + position: absolute; + height: 130px; + width: 130px; + left: 45px; + top: 90px +} + +#articleSideShare { + width: 26px; + margin: 0 auto; +} + +.article__bottom { + background-color: #fafafa; + padding: 40px 20px; + position: relative; + z-index: 1; +} + +.article__bottom .footer__tag { + margin-bottom: 50px; +} + +.article__comment { + width: 640px; + margin: 45px auto 0; + position: relative; +} + +.article__comment .comment__title { + font-size: 16px; + margin-bottom: 15px; + color: rgba(0, 0, 0, 0.68) +} + +.article__comment .comment__item { + background-color: rgb(255, 255, 255); + box-shadow: rgba(0, 0, 0, 0.04) 0px 1px 4px; + border: 1px solid rgba(0, 0, 0, 0.09); + border-radius: 3px; + padding: 10px 20px 10px 77px; + margin: 0 0 20px; +} + +.article__comment .comment__avatar { + position: absolute; + left: 10px; + height: 57px; + width: 57px; + display: inline-block; + z-index: 10; + border: 2px solid rgb(255, 255, 255); + border-radius: 50%; +} + +.article__comment .comment__body svg.ft-gray { + height: 12px; + width: 12px; + vertical-align: text-top; + margin-left: 5px; +} + +.article__comment .comment__body .vditor-reset { + min-height: 40px; +} + +.article__comment .comment__user, +.article__comment .comment__user a { + color: rgb(3, 168, 124); +} + +.article__comment .comment__user a:hover { + color: rgb(1, 143, 105); + text-decoration: none; +} + +.comment-body-ref { + position: absolute; + width: 559px; + box-sizing: border-box; + left: 101px; +} + +.comment-body-ref .ft-green { + display: none; +} + +.comment__textarea { + background-color: rgb(255, 255, 255); + box-shadow: rgba(0, 0, 0, 0.04) 0px 1px 4px; + border: 1px solid rgba(0, 0, 0, 0.09); + border-radius: 3px; + padding: 10px; + margin: 0 0 5px; + width: 100%; + box-sizing: border-box; + cursor: pointer; + resize: none; +} + +.article__toolbar { + box-shadow: 0 0 1px rgba(0, 0, 0, 0.54); + position: fixed; + bottom: -44px; + width: 100%; + background-color: #fff; + height: 44px; + font-size: 16px; + line-height: 44px; + transition: all 0.1s; + opacity: 0 +} + +.article__toolbar .wrapper { + max-width: 740px +} + +.article__toolbar svg { + height: 20px; + width: 20px; + vertical-align: middle +} + +.article__toolbar .fn-right { + position: absolute; + top: 0; + right: 20px +} + +.article__toolbar .article__code { + position: absolute; + height: 130px; + width: 130px; + left: 50px; + bottom: 30px +} + +.article__next { + border-left: 1px solid rgba(0, 0, 0, 0.38); + line-height: 15px; + margin-top: 7px; + color: rgba(0, 0, 0, 0.84); + font-size: 14px; + display: inline-block; + padding-left: 20px; + margin-left: 20px; + transition: all .2s; + float: right; +} + +.article__next:hover { + text-decoration: none; + color: rgba(0, 0, 0, 0.54); +} + +.pagination { + margin-top: 30px; + font-size: 16px; + border-top: 1px solid rgba(0, 0, 0, 0.15) +} + +.pagination__item { + text-align: center; + border-top: 1px solid transparent; + transition: all 0.1s; + display: inline-block; + position: relative; + top: -1px; + margin: 0 10px; + padding: 0 10px; + line-height: 30px; + color: rgba(0, 0, 0, 0.54) +} + +.pagination__item:hover { + border-top-color: rgba(0, 0, 0, 0.54); + color: rgba(0, 0, 0, 0.84); + text-decoration: none +} + +.pagination__item--active { + background: rgba(0, 0, 0, 0.05); + border-top-color: rgba(0, 0, 0, 0.54) +} + +.pagination__item--active:hover { + color: rgba(0, 0, 0, 0.54); + border-top-color: rgba(0, 0, 0, 0.54) +} + +.pagination__item:first-child { + margin-left: 0 +} + +.pagination__item:last-child { + margin-right: 0 +} + +.pagination__omit { + top: -5px; + margin: 0; + border: 0; + padding: 0; + color: #ccc +} + +.page__item { + display: block; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + padding: 40px 0 35px +} + +@media (max-width: 768px) { + .header { + text-align: left + } + + .header__logo, + .post__side, .article__next, #articleBottomShare, #articleShare, + .article__comment .comment__avatar { + display: none + } + + .post { + margin: 50px 20px 20px + } + + .article__toolbar { + padding-left: 20px; + box-sizing: border-box + } + + .article__item { + width: 100%; + margin-bottom: 20px + } + + .article__wrap { + margin: 0 + } + + .article__comment { + width: 100% + } + + .article__main { + height: auto !important + } + + .footer .fn-right { + float: none + } + + .footer__tag { + display: block + } + + .footer__tag > div { + margin: 0 0 50px + } + + .footer__tag > div:last-child { + margin: 0 + } + + .pagination__item { + margin: 0 + } + + .article__comment .comment__item { + padding-left: 10px; + } +} + +/* Make clicks pass-through */ +#nprogress .bar { + background: #d23f31; +} + +/* Fancy blur effect */ +#nprogress .peg { + box-shadow: 0 0 10px #d23f31, 0 0 5px #d23f31; +} + +#nprogress .spinner-icon { + border-top-color: #d23f31; + border-left-color: #d23f31; +} \ No newline at end of file diff --git a/Casper/css/selection.json b/Casper/css/selection.json new file mode 100755 index 0000000..8f73557 --- /dev/null +++ b/Casper/css/selection.json @@ -0,0 +1,524 @@ +{ + "IcoMoonType": "selection", + "icons": [ + { + "icon": { + "paths": [ + "M219.429 804.571c0 60.571-49.143 109.714-109.714 109.714s-109.714-49.143-109.714-109.714 49.143-109.714 109.714-109.714 109.714 49.143 109.714 109.714zM219.429 512c0 60.571-49.143 109.714-109.714 109.714s-109.714-49.143-109.714-109.714 49.143-109.714 109.714-109.714 109.714 49.143 109.714 109.714zM1024 749.714v109.714c0 9.714-8.571 18.286-18.286 18.286h-694.857c-9.714 0-18.286-8.571-18.286-18.286v-109.714c0-9.714 8.571-18.286 18.286-18.286h694.857c9.714 0 18.286 8.571 18.286 18.286zM219.429 219.429c0 60.571-49.143 109.714-109.714 109.714s-109.714-49.143-109.714-109.714 49.143-109.714 109.714-109.714 109.714 49.143 109.714 109.714zM1024 457.143v109.714c0 9.714-8.571 18.286-18.286 18.286h-694.857c-9.714 0-18.286-8.571-18.286-18.286v-109.714c0-9.714 8.571-18.286 18.286-18.286h694.857c9.714 0 18.286 8.571 18.286 18.286zM1024 164.571v109.714c0 9.714-8.571 18.286-18.286 18.286h-694.857c-9.714 0-18.286-8.571-18.286-18.286v-109.714c0-9.714 8.571-18.286 18.286-18.286h694.857c9.714 0 18.286 8.571 18.286 18.286z" + ], + "width": 1024, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "list-ul" + ], + "defaultCode": 61642, + "grid": 14 + }, + "attrs": [], + "properties": { + "name": "list", + "id": 6, + "order": 3, + "prevSize": 28, + "code": 61642 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M804.571 566.857v274.286c0 20-16.571 36.571-36.571 36.571h-219.429v-219.429h-146.286v219.429h-219.429c-20 0-36.571-16.571-36.571-36.571v-274.286c0-1.143 0.571-2.286 0.571-3.429l328.571-270.857 328.571 270.857c0.571 1.143 0.571 2.286 0.571 3.429zM932 527.429l-35.429 42.286c-2.857 3.429-7.429 5.714-12 6.286h-1.714c-4.571 0-8.571-1.143-12-4l-395.429-329.714-395.429 329.714c-4 2.857-8.571 4.571-13.714 4-4.571-0.571-9.143-2.857-12-6.286l-35.429-42.286c-6.286-7.429-5.143-19.429 2.286-25.714l410.857-342.286c24-20 62.857-20 86.857 0l139.429 116.571v-111.429c0-10.286 8-18.286 18.286-18.286h109.714c10.286 0 18.286 8 18.286 18.286v233.143l125.143 104c7.429 6.286 8.571 18.286 2.286 25.714z" + ], + "width": 950.8571428571428, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "home" + ], + "defaultCode": 61461, + "grid": 14 + }, + "attrs": [], + "properties": { + "name": "home", + "id": 7, + "order": 4, + "prevSize": 28, + "code": 61461 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 1 + }, + { + "icon": { + "paths": [ + "M402.286 219.429c-178.286 0-329.143 100.571-329.143 219.429 0 62.857 42.286 123.429 115.429 165.714l55.429 32-20 48c12-6.857 24-14.286 35.429-22.286l25.143-17.714 30.286 5.714c28.571 5.143 57.714 8 87.429 8 178.286 0 329.143-100.571 329.143-219.429s-150.857-219.429-329.143-219.429zM402.286 146.286c222.286 0 402.286 130.857 402.286 292.571s-180 292.571-402.286 292.571c-34.857 0-68.571-3.429-100.571-9.143-47.429 33.714-101.143 58.286-158.857 73.143-15.429 4-32 6.857-49.143 9.143h-1.714c-8.571 0-16.571-6.857-18.286-16.571v0c-2.286-10.857 5.143-17.714 11.429-25.143 22.286-25.143 47.429-47.429 66.857-94.857-92.571-53.714-152-136.571-152-229.143 0-161.714 180-292.571 402.286-292.571zM872 814.286c19.429 47.429 44.571 69.714 66.857 94.857 6.286 7.429 13.714 14.286 11.429 25.143v0c-2.286 10.286-10.857 17.714-20 16.571-17.143-2.286-33.714-5.143-49.143-9.143-57.714-14.857-111.429-39.429-158.857-73.143-32 5.714-65.714 9.143-100.571 9.143-103.429 0-198.286-28.571-269.714-75.429 16.571 1.143 33.714 2.286 50.286 2.286 122.857 0 238.857-35.429 327.429-99.429 95.429-69.714 148-164 148-266.286 0-29.714-4.571-58.857-13.143-86.857 96.571 53.143 159.429 137.714 159.429 233.143 0 93.143-59.429 175.429-152 229.143z" + ], + "width": 1024, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "comments-o" + ], + "defaultCode": 61670, + "grid": 14 + }, + "attrs": [], + "properties": { + "name": "comments", + "id": 8, + "order": 5, + "prevSize": 28, + "code": 61670 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 2 + }, + { + "icon": { + "paths": [ + "M73.143 950.857h164.571v-164.571h-164.571v164.571zM274.286 950.857h182.857v-164.571h-182.857v164.571zM73.143 749.714h164.571v-182.857h-164.571v182.857zM274.286 749.714h182.857v-182.857h-182.857v182.857zM73.143 530.286h164.571v-164.571h-164.571v164.571zM493.714 950.857h182.857v-164.571h-182.857v164.571zM274.286 530.286h182.857v-164.571h-182.857v164.571zM713.143 950.857h164.571v-164.571h-164.571v164.571zM493.714 749.714h182.857v-182.857h-182.857v182.857zM292.571 256v-164.571c0-9.714-8.571-18.286-18.286-18.286h-36.571c-9.714 0-18.286 8.571-18.286 18.286v164.571c0 9.714 8.571 18.286 18.286 18.286h36.571c9.714 0 18.286-8.571 18.286-18.286zM713.143 749.714h164.571v-182.857h-164.571v182.857zM493.714 530.286h182.857v-164.571h-182.857v164.571zM713.143 530.286h164.571v-164.571h-164.571v164.571zM731.429 256v-164.571c0-9.714-8.571-18.286-18.286-18.286h-36.571c-9.714 0-18.286 8.571-18.286 18.286v164.571c0 9.714 8.571 18.286 18.286 18.286h36.571c9.714 0 18.286-8.571 18.286-18.286zM950.857 219.429v731.429c0 40-33.143 73.143-73.143 73.143h-804.571c-40 0-73.143-33.143-73.143-73.143v-731.429c0-40 33.143-73.143 73.143-73.143h73.143v-54.857c0-50.286 41.143-91.429 91.429-91.429h36.571c50.286 0 91.429 41.143 91.429 91.429v54.857h219.429v-54.857c0-50.286 41.143-91.429 91.429-91.429h36.571c50.286 0 91.429 41.143 91.429 91.429v54.857h73.143c40 0 73.143 33.143 73.143 73.143z" + ], + "width": 950.8571428571428, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "calendar" + ], + "defaultCode": 61555, + "grid": 14 + }, + "attrs": [], + "properties": { + "name": "date", + "id": 9, + "order": 6, + "prevSize": 28, + "code": 61555 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 3 + }, + { + "icon": { + "paths": [ + "M658.286 475.429c0-141.143-114.857-256-256-256s-256 114.857-256 256 114.857 256 256 256 256-114.857 256-256zM950.857 950.857c0 40-33.143 73.143-73.143 73.143-19.429 0-38.286-8-51.429-21.714l-196-195.429c-66.857 46.286-146.857 70.857-228 70.857-222.286 0-402.286-180-402.286-402.286s180-402.286 402.286-402.286 402.286 180 402.286 402.286c0 81.143-24.571 161.143-70.857 228l196 196c13.143 13.143 21.143 32 21.143 51.429z" + ], + "width": 950.8571428571428, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "search" + ], + "defaultCode": 61442, + "grid": 14 + }, + "attrs": [], + "properties": { + "name": "search", + "id": 10, + "order": 7, + "prevSize": 28, + "code": 61442 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 4 + }, + { + "icon": { + "paths": [ + "M961.714 760.571l-94.857 94.286c-14.286 14.286-37.143 14.286-51.429 0l-303.429-303.429-303.429 303.429c-14.286 14.286-37.143 14.286-51.429 0l-94.857-94.286c-14.286-14.286-14.286-37.714 0-52l424-423.429c14.286-14.286 37.143-14.286 51.429 0l424 423.429c14.286 14.286 14.286 37.714 0 52z" + ], + "width": 1024, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "chevron-up" + ], + "defaultCode": 61559, + "grid": 14 + }, + "attrs": [], + "properties": { + "name": "up", + "id": 11, + "order": 8, + "prevSize": 28, + "code": 61559 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 5 + }, + { + "icon": { + "paths": [ + "M584.571 548.571h180.571c-1.143-2.857-1.714-6.286-2.857-9.143l-121.143-283.429h-404.571l-121.143 283.429c-1.143 2.857-1.714 6.286-2.857 9.143h180.571l54.286 109.714h182.857zM877.714 565.714v275.429c0 20-16.571 36.571-36.571 36.571h-804.571c-20 0-36.571-16.571-36.571-36.571v-275.429c0-20.571 6.286-50.857 14.286-70.286l136-315.429c8-18.857 30.857-33.714 50.857-33.714h475.429c20 0 42.857 14.857 50.857 33.714l136 315.429c8 19.429 14.286 49.714 14.286 70.286z" + ], + "width": 877.7142857142857, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "inbox" + ], + "defaultCode": 61468, + "grid": 14 + }, + "attrs": [], + "properties": { + "name": "inbox", + "id": 12, + "order": 9, + "prevSize": 28, + "code": 61468 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 6 + }, + { + "icon": { + "paths": [ + "M256 256c0-40.571-32.571-73.143-73.143-73.143s-73.143 32.571-73.143 73.143 32.571 73.143 73.143 73.143 73.143-32.571 73.143-73.143zM865.714 585.143c0 19.429-8 38.286-21.143 51.429l-280.571 281.143c-13.714 13.143-32.571 21.143-52 21.143s-38.286-8-51.429-21.143l-408.571-409.143c-29.143-28.571-52-84-52-124.571v-237.714c0-40 33.143-73.143 73.143-73.143h237.714c40.571 0 96 22.857 125.143 52l408.571 408c13.143 13.714 21.143 32.571 21.143 52zM1085.143 585.143c0 19.429-8 38.286-21.143 51.429l-280.571 281.143c-13.714 13.143-32.571 21.143-52 21.143-29.714 0-44.571-13.714-64-33.714l268.571-268.571c13.143-13.143 21.143-32 21.143-51.429s-8-38.286-21.143-52l-408.571-408c-29.143-29.143-84.571-52-125.143-52h128c40.571 0 96 22.857 125.143 52l408.571 408c13.143 13.714 21.143 32.571 21.143 52z" + ], + "width": 1085.1474285714285, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "tags" + ], + "defaultCode": 61484, + "grid": 14 + }, + "attrs": [], + "properties": { + "name": "tags", + "id": 13, + "order": 10, + "prevSize": 28, + "code": 61484 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 7 + }, + { + "icon": { + "paths": [ + "M832 694.857c0-14.857-5.714-28.571-16-38.857l-118.857-118.857c-10.286-10.286-24.571-16-38.857-16-16.571 0-29.714 6.286-41.143 18.286 18.857 18.857 41.143 34.857 41.143 64 0 30.286-24.571 54.857-54.857 54.857-29.143 0-45.143-22.286-64-41.143-12 11.429-18.857 24.571-18.857 41.714 0 14.286 5.714 28.571 16 38.857l117.714 118.286c10.286 10.286 24.571 15.429 38.857 15.429s28.571-5.143 38.857-14.857l84-83.429c10.286-10.286 16-24 16-38.286zM430.286 292c0-14.286-5.714-28.571-16-38.857l-117.714-118.286c-10.286-10.286-24.571-16-38.857-16s-28.571 5.714-38.857 15.429l-84 83.429c-10.286 10.286-16 24-16 38.286 0 14.857 5.714 28.571 16 38.857l118.857 118.857c10.286 10.286 24.571 15.429 38.857 15.429 16.571 0 29.714-5.714 41.143-17.714-18.857-18.857-41.143-34.857-41.143-64 0-30.286 24.571-54.857 54.857-54.857 29.143 0 45.143 22.286 64 41.143 12-11.429 18.857-24.571 18.857-41.714zM941.714 694.857c0 43.429-17.714 85.714-48.571 116l-84 83.429c-30.857 30.857-72.571 47.429-116 47.429-44 0-85.714-17.143-116.571-48.571l-117.714-118.286c-30.857-30.857-47.429-72.571-47.429-116 0-45.143 18.286-88 50.286-119.429l-50.286-50.286c-31.429 32-73.714 50.286-118.857 50.286-43.429 0-85.714-17.143-116.571-48l-118.857-118.857c-31.429-31.429-48-72.571-48-116.571 0-43.429 17.714-85.714 48.571-116l84-83.429c30.857-30.857 72.571-47.429 116-47.429 44 0 85.714 17.143 116.571 48.571l117.714 118.286c30.857 30.857 47.429 72.571 47.429 116 0 45.143-18.286 88-50.286 119.429l50.286 50.286c31.429-32 73.714-50.286 118.857-50.286 43.429 0 85.714 17.143 116.571 48l118.857 118.857c31.429 31.429 48 72.571 48 116.571z" + ], + "width": 950.8571428571428, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "chain", + "link" + ], + "defaultCode": 61633, + "grid": 14 + }, + "attrs": [], + "properties": { + "name": "link", + "id": 14, + "order": 11, + "prevSize": 28, + "code": 61633 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 8 + }, + { + "icon": { + "paths": [ + "M863.429 603.429c0 1.143 0 2.857-0.571 4-48.571 202.286-215.429 343.429-426.286 343.429-111.429 0-219.429-44-300.571-121.143l-73.714 73.714c-6.857 6.857-16 10.857-25.714 10.857-20 0-36.571-16.571-36.571-36.571v-256c0-20 16.571-36.571 36.571-36.571h256c20 0 36.571 16.571 36.571 36.571 0 9.714-4 18.857-10.857 25.714l-78.286 78.286c53.714 50.286 125.143 78.857 198.857 78.857 101.714 0 196-52.571 249.143-139.429 13.714-22.286 20.571-44 30.286-66.857 2.857-8 8.571-13.143 17.143-13.143h109.714c10.286 0 18.286 8.571 18.286 18.286zM877.714 146.286v256c0 20-16.571 36.571-36.571 36.571h-256c-20 0-36.571-16.571-36.571-36.571 0-9.714 4-18.857 10.857-25.714l78.857-78.857c-54.286-50.286-125.714-78.286-199.429-78.286-101.714 0-196 52.571-249.143 139.429-13.714 22.286-20.571 44-30.286 66.857-2.857 8-8.571 13.143-17.143 13.143h-113.714c-10.286 0-18.286-8.571-18.286-18.286v-4c49.143-202.857 217.714-343.429 428.571-343.429 112 0 221.143 44.571 302.286 121.143l74.286-73.714c6.857-6.857 16-10.857 25.714-10.857 20 0 36.571 16.571 36.571 36.571z" + ], + "width": 877.7142857142857, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "refresh" + ], + "defaultCode": 61473, + "grid": 14 + }, + "attrs": [], + "properties": { + "name": "refresh", + "id": 15, + "order": 12, + "prevSize": 28, + "code": 61473 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 9 + }, + { + "icon": { + "paths": [ + "M976 768h-16v-208c0-61.756-50.242-112-112-112h-272v-128h16c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-160c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h16v128h-272c-61.756 0-112 50.244-112 112v208h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h160c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-16v-192h256v192h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h160c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-16v-192h256v192h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h160c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48zM192 960h-128v-128h128v128zM576 960h-128v-128h128v128zM448 256v-128h128v128h-128zM960 960h-128v-128h128v128z" + ], + "tags": [ + "tree", + "branches", + "inheritance" + ], + "defaultCode": 59836, + "grid": 16, + "attrs": [] + }, + "attrs": [], + "properties": { + "ligatures": "tree, branches", + "name": "category", + "order": 13, + "id": 16, + "prevSize": 32, + "code": 59836 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 10 + }, + { + "icon": { + "paths": [ + "M768 640v-128h-320v-128h320v-128l192 192zM704 576v256h-320v192l-384-192v-832h704v320h-64v-256h-512l256 128v576h256v-192z" + ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "exit", + "signout", + "logout", + "quit", + "close" + ], + "defaultCode": 59924, + "grid": 16 + }, + "attrs": [], + "properties": { + "ligatures": "exit, signout", + "name": "logout", + "id": 0, + "order": 14, + "prevSize": 32, + "code": 59924 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 11 + }, + { + "icon": { + "paths": [ + "M512 192c-282.784 0-512 320-512 320s229.216 320 512 320 512-320 512-320-229.216-320-512-320zM512 704c-106.016 0-192-85.984-192-192s85.984-192 192-192 192 85.984 192 192-85.984 192-192 192zM512 384c-70.688 0-128 57.312-128 128s57.312 128 128 128 128-57.312 128-128-57.312-128-128-128z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "eye", + "views" + ], + "grid": 16 + }, + "attrs": [ + {} + ], + "properties": { + "order": 15, + "id": 1, + "name": "views", + "prevSize": 32, + "code": 59648 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 12 + }, + { + "icon": { + "paths": [ + "M384 736c0-151.234 95.874-280.486 230.032-330.2 16.28-36.538 25.968-77.164 25.968-117.8 0-159.058 0-288-192-288s-192 128.942-192 288c0 99.060 57.502 198.104 128 237.832v52.78c-217.102 17.748-384 124.42-384 253.388h397.306c-8.664-30.53-13.306-62.732-13.306-96z", + "M736 448c-159.058 0-288 128.942-288 288s128.942 288 288 288c159.056 0 288-128.942 288-288s-128.942-288-288-288zM896 768h-128v128h-64v-128h-128v-64h128v-128h64v128h128v64z" + ], + "width": 1024, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "user-plus", + "user", + "user-add", + "profile", + "avatar", + "person", + "member" + ], + "defaultCode": 59763, + "grid": 16 + }, + "attrs": [], + "properties": { + "ligatures": "user-plus, user2", + "name": "register", + "id": 2, + "order": 16, + "prevSize": 32, + "code": 59763 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 13 + }, + { + "icon": { + "paths": [ + "M933.79 610.25c-53.726-93.054-21.416-212.304 72.152-266.488l-100.626-174.292c-28.75 16.854-62.176 26.518-97.846 26.518-107.536 0-194.708-87.746-194.708-195.99h-201.258c0.266 33.41-8.074 67.282-25.958 98.252-53.724 93.056-173.156 124.702-266.862 70.758l-100.624 174.292c28.97 16.472 54.050 40.588 71.886 71.478 53.638 92.908 21.512 211.92-71.708 266.224l100.626 174.292c28.65-16.696 61.916-26.254 97.4-26.254 107.196 0 194.144 87.192 194.7 194.958h201.254c-0.086-33.074 8.272-66.57 25.966-97.218 53.636-92.906 172.776-124.594 266.414-71.012l100.626-174.29c-28.78-16.466-53.692-40.498-71.434-71.228zM512 719.332c-114.508 0-207.336-92.824-207.336-207.334 0-114.508 92.826-207.334 207.336-207.334 114.508 0 207.332 92.826 207.332 207.334-0.002 114.51-92.824 207.334-207.332 207.334z" + ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "cog", + "gear", + "preferences", + "settings", + "generate", + "control", + "options" + ], + "defaultCode": 59796, + "grid": 16 + }, + "attrs": [], + "properties": { + "ligatures": "cog, gear", + "name": "setting", + "id": 3, + "order": 17, + "prevSize": 32, + "code": 59796 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 14 + }, + { + "icon": { + "paths": [ + "M384 512h-320v-128h320v-128l192 192-192 192zM1024 0v832l-384 192v-192h-384v-256h64v192h320v-576l256-128h-576v256h-64v-320z" + ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "enter", + "signin", + "login" + ], + "defaultCode": 59923, + "grid": 16 + }, + "attrs": [], + "properties": { + "ligatures": "enter, signin", + "name": "login", + "id": 4, + "order": 18, + "prevSize": 32, + "code": 59923 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 15 + }, + { + "icon": { + "paths": [ + "M136.294 750.93c-75.196 0-136.292 61.334-136.292 136.076 0 75.154 61.1 135.802 136.292 135.802 75.466 0 136.494-60.648 136.494-135.802-0.002-74.742-61.024-136.076-136.494-136.076zM0.156 347.93v196.258c127.784 0 247.958 49.972 338.458 140.512 90.384 90.318 140.282 211.036 140.282 339.3h197.122c-0.002-372.82-303.282-676.070-675.862-676.070zM0.388 0v196.356c455.782 0 826.756 371.334 826.756 827.644h196.856c0-564.47-459.254-1024-1023.612-1024z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "feed", + "rss", + "social" + ], + "grid": 16 + }, + "attrs": [ + {} + ], + "properties": { + "order": 19, + "id": 5, + "prevSize": 32, + "code": 59649, + "name": "rss" + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 16 + } + ], + "height": 1024, + "metadata": { + "name": "icomoon" + }, + "preferences": { + "showGlyphs": true, + "showQuickUse": true, + "showQuickUse2": true, + "showSVGs": true, + "fontPref": { + "prefix": "icon-", + "metadata": { + "fontFamily": "icomoon" + }, + "metrics": { + "emSize": 1024, + "baseline": 6.25, + "whitespace": 50 + }, + "embed": false + }, + "imagePref": { + "prefix": "icon-", + "png": true, + "useClassSelector": true, + "color": 4473924, + "bgColor": 16777215 + }, + "historySize": 100, + "showCodes": false, + "gridSize": 16 + } +} \ No newline at end of file diff --git a/Casper/footer.ftl b/Casper/footer.ftl new file mode 100644 index 0000000..cfe41db --- /dev/null +++ b/Casper/footer.ftl @@ -0,0 +1,52 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +
+
+
+ ${blogSubtitle} + <#include "../../common-template/macro-user_site.ftl"/> + <@userSite dir="n"/> +
+ ${blogTitle} © ${year} ${footerContent} +
+
+
+ ${statistic.statisticPublishedBlogArticleCount} ${articleLabel}   + ${statistic.statisticPublishedBlogCommentCount} ${commentLabel}   + ${statistic.statisticBlogViewCount} ${viewLabel}   + ${onlineVisitorCnt} ${onlineVisitorLabel} +
+ Powered by B3log 开源 • + Solo • + Theme ${skinDirName} + by Vanessa +
+
+
+
+ + + + +<#include "../../common-template/label.ftl"> +${plugins} diff --git a/Casper/header.ftl b/Casper/header.ftl new file mode 100644 index 0000000..f8a2612 --- /dev/null +++ b/Casper/header.ftl @@ -0,0 +1,104 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

${blogTitle}

+ +
+ + + + + + <#if isLoggedIn> + + <#else> + + ${startToUseLabel} + + +
+
+
\ No newline at end of file diff --git a/Casper/images/header-bg.jpg b/Casper/images/header-bg.jpg new file mode 100644 index 0000000..6999007 Binary files /dev/null and b/Casper/images/header-bg.jpg differ diff --git a/Casper/index.ftl b/Casper/index.ftl new file mode 100644 index 0000000..631d4aa --- /dev/null +++ b/Casper/index.ftl @@ -0,0 +1,48 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +<#include "../../common-template/macro-common_head.ftl"> + + + +<@head title="${blogTitle}"> + + + + +<#include "header.ftl"> +
+<#if pjax> +<#include "nav.ftl"> +
+ <#if noticeBoard??> +
+ ${noticeBoard} +
+ +
+ <#include "article-list.ftl"> +
+ <#include "bottom2.ftl"> +
+<#if pjax> +
+<#include "footer.ftl"> + + \ No newline at end of file diff --git a/Casper/js/common.js b/Casper/js/common.js new file mode 100644 index 0000000..f2f5d83 --- /dev/null +++ b/Casper/js/common.js @@ -0,0 +1,223 @@ +/* + * Solo - A small and beautiful blogging system written in Java. + * Copyright (c) 2010-2019, b3log.org & hacpai.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +/** + * @fileoverview util and every page should be used. + * + * @author Liyuan Li + * @version 0.1.0.1, Mar 22, 2019 + */ + +/** + * @description 皮肤脚本 + * @static + */ +var Skin = { + init: function () { + var $article__toc = $('.article__toc') + $(window).scroll(function () { + if ($article__toc.length === 1) { + if ($('.article__bottom').offset().top < $(window).scrollTop()) { + $article__toc.hide() + } else { + $article__toc.show() + } + } + + if ($('#headerNav').length === 0) { + return + } + if ($(window).scrollTop() > 64) { + $('#headerNav').addClass('header__nav--fixed'); + $('.main').css('margin-top', '100px'); + } else { + $('#headerNav').removeClass('header__nav--fixed'); + $('.main').css('margin-top', '50px'); + } + }); + $(window).scroll(); + + Util.initPjax(function () { + Util.parseMarkdown(); + if (Util.isArticlePage(location.href)) { + if (!$('#articleSideShare .article__code').qrcode) { + $.ajax({ + method: "GET", + url: Label.staticServePath + '/js/lib/jquery.qrcode.min.js', + dataType: "script", + cache: true + }); + } + } + Skin.initToc() + }) + Skin.initToc() + }, + initTags: function () { + var $tags = $('#tags'); + var tagsArray = $tags.find('.tag') + // 根据引用次数添加样式,产生云效果 + var max = parseInt(tagsArray.first().data('count')); + var distance = Math.ceil(max / 5); + for (var i = 0; i < tagsArray.length; i++) { + var count = parseInt($(tagsArray[i]).data('count')); + // 算出当前 tag 数目所在的区间,加上 class + for (var j = 0; j < 5; j++) { + if (count > j * distance && count <= (j + 1) * distance) { + tagsArray[i].className = 'tag tag__level' + j; + break; + } + } + } + + // 按字母或者中文拼音进行排序 + $tags.html(tagsArray.get().sort(function (a, b) { + var valA = $(a).text().toLowerCase(); + var valB = $(b).text().toLowerCase(); + // 对中英文排序的处理 + return valA.localeCompare(valB); + })); + }, + initArticle: function () { + if ($('#articleShare').length === 0) { + return + } + Skin._share('#articleShare') + Skin._share('#articleSideShare') + Skin._share('#articleBottomShare') + + var $postSide = $('.post__side') + if ($(window).height() >= $('.post').height()) { + $postSide.css('opacity', 1) + } + $postSide.css('left', (($('.post').offset().left - 20) / 2 - 27) + 'px') + + var sideAbsoluteTop = ($(window).height() - 249) / 2 + 125 + var beforScrollTop = $(window).scrollTop() + $(window).scroll(function () { + if ($('#articleShare').length === 0) { + return + } + var scrollTop = $(window).scrollTop() + var bottomTop = $('.article__bottom').offset().top + if (scrollTop > 65) { + $postSide.css('opacity', 1) + + if (beforScrollTop - scrollTop > 0) { + // up + $('.header').addClass('header--fixed').css({'top': '0'}) + $('.main').css('padding-top', '64px') + if ($(window).height() <= $('.post').height() && scrollTop < bottomTop - $(window).height()) { + $('.article__toolbar').css({ + 'bottom': 0, + 'opacity': 1 + }) + } + } else if (beforScrollTop - scrollTop < 0) { + // down + $('.header').css({'top': '-64px'}).removeClass('header--fixed') + $('.main').css('padding-top', '0') + $('.article__toolbar').css({ + 'bottom': '-44px', + 'opacity': 0 + }) + } + + } else { + if ($(window).height() <= $('.post').height()) { + $postSide.css('opacity', 0) + } + + $('.header').removeClass('header--fixed').css('top', '-64px') + $('.main').css('padding-top', '0') + } + + if (scrollTop > bottomTop - $(window).height()) { + if (bottomTop < $(window).height()) { + $postSide.css({ + 'position': 'absolute', + 'top': (bottomTop - 125) + 'px' + }) + } else { + $postSide.css({ + 'position': 'absolute', + 'top': (bottomTop - sideAbsoluteTop) + 'px' + }) + } + } else { + $postSide.css({ + 'position': 'fixed', + 'top': '50%' + }) + } + + beforScrollTop = scrollTop + }) + + $(window).scroll() + }, + _share: function (id) { + var $this = $(id) + var $qrCode = $this.find('.article__code') + var shareURL = $qrCode.data('url') + var avatarURL = $qrCode.data('avatar') + var title = encodeURIComponent($qrCode.data('title') + ' - ' + $qrCode.data('blogtitle')), + url = encodeURIComponent(shareURL) + + var urls = {} + urls.tencent = 'http://share.v.t.qq.com/index.php?c=share&a=index&title=' + title + + '&url=' + url + '&pic=' + avatarURL + urls.weibo = 'http://v.t.sina.com.cn/share/share.php?title=' + + title + '&url=' + url + '&pic=' + avatarURL + urls.qqz = 'https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=' + + url + '&sharesource=qzone&title=' + title + '&pics=' + avatarURL + urls.twitter = 'https://twitter.com/intent/tweet?status=' + title + ' ' + url + + $this.find('span').click(function () { + var key = $(this).data('type') + + if (!key) { + return + } + + if (key === 'wechat') { + if ($qrCode.find('canvas').length === 0) { + $qrCode.qrcode({ + width: 128, + height: 128, + text: shareURL + }); + } else { + $qrCode.slideToggle(); + } + return false; + } + + window.open(urls[key], '_blank', 'top=100,left=200,width=648,height=618') + }) + }, + initToc: function () { + if ($('.article__toc').length !== 0 && $(window).width() > 1000) { + $('.article__toc').animate({ + 'left': ($('.post').outerWidth() + $('.post').offset().left) + 'px' + }, 600) + } else { + $('.article__toc').hide() + } + } +}; +Skin.init(); \ No newline at end of file diff --git a/Casper/js/common.min.js b/Casper/js/common.min.js new file mode 100644 index 0000000..1790da0 --- /dev/null +++ b/Casper/js/common.min.js @@ -0,0 +1 @@ +var Skin={init:function(){var t=$(".article__toc");$(window).scroll(function(){1===t.length&&($(".article__bottom").offset().top<$(window).scrollTop()?t.hide():t.show()),0!==$("#headerNav").length&&(64<$(window).scrollTop()?($("#headerNav").addClass("header__nav--fixed"),$(".main").css("margin-top","100px")):($("#headerNav").removeClass("header__nav--fixed"),$(".main").css("margin-top","50px")))}),$(window).scroll(),Util.initPjax(function(){Util.parseMarkdown(),Util.isArticlePage(location.href)&&($("#articleSideShare .article__code").qrcode||$.ajax({method:"GET",url:Label.staticServePath+"/js/lib/jquery.qrcode.min.js",dataType:"script",cache:!0})),Skin.initToc()}),Skin.initToc()},initTags:function(){for(var t=$("#tags"),e=t.find(".tag"),i=parseInt(e.first().data("count")),o=Math.ceil(i/5),a=0;a=$(".post").height()&&i.css("opacity",1),i.css("left",($(".post").offset().left-20)/2-27+"px");var o=($(window).height()-249)/2+125,a=$(window).scrollTop();$(window).scroll(function(){if(0!==$("#articleShare").length){var t=$(window).scrollTop(),e=$(".article__bottom").offset().top;65e-$(window).height()?e<$(window).height()?i.css({position:"absolute",top:e-125+"px"}):i.css({position:"absolute",top:e-o+"px"}):i.css({position:"fixed",top:"50%"}),a=t}}),$(window).scroll()}},_share:function(t){var e=$(t),i=e.find(".article__code"),o=i.data("url"),a=i.data("avatar"),n=encodeURIComponent(i.data("title")+" - "+i.data("blogtitle")),s=encodeURIComponent(o),r={};r.tencent="http://share.v.t.qq.com/index.php?c=share&a=index&title="+n+"&url="+s+"&pic="+a,r.weibo="http://v.t.sina.com.cn/share/share.php?title="+n+"&url="+s+"&pic="+a,r.qqz="https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url="+s+"&sharesource=qzone&title="+n+"&pics="+a,r.twitter="https://twitter.com/intent/tweet?status="+n+" "+s,e.find("span").click(function(){var t=$(this).data("type");if(t)return"wechat"===t?(0===i.find("canvas").length?i.qrcode({width:128,height:128,text:o}):i.slideToggle(),!1):void window.open(r[t],"_blank","top=100,left=200,width=648,height=618")})},initToc:function(){0!==$(".article__toc").length&&1e3<$(window).width()?$(".article__toc").animate({left:$(".post").outerWidth()+$(".post").offset().left+"px"},600):$(".article__toc").hide()}};Skin.init(); \ No newline at end of file diff --git a/Casper/links.ftl b/Casper/links.ftl new file mode 100644 index 0000000..ee0a7a1 --- /dev/null +++ b/Casper/links.ftl @@ -0,0 +1,66 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +<#include "../../common-template/macro-common_head.ftl"> + + + +<@head title="${linkLabel} - ${blogTitle}"> + + + + +<#include "header.ftl"> +
+ <#if pjax> +<#include "nav.ftl"> +
+<#if noticeBoard??> +
+ ${noticeBoard} +
+ +
+
+ + ${links?size} + ${linkLabel} + +
+ <#if 0 != links?size> + <#list links as link> + + + +
+<#include "bottom.ftl"> +
+ <#if pjax> +
+<#include "footer.ftl"> + + diff --git a/Casper/macro-comments.ftl b/Casper/macro-comments.ftl new file mode 100644 index 0000000..c3671a7 --- /dev/null +++ b/Casper/macro-comments.ftl @@ -0,0 +1,33 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +<#macro comments commentList article> +
+
${commentLabel}
+
+ <#list commentList as comment> + <#include 'common-comment.ftl'/> + +
+ <#if article.commentable> + + +
+ \ No newline at end of file diff --git a/Casper/nav.ftl b/Casper/nav.ftl new file mode 100644 index 0000000..bf2196d --- /dev/null +++ b/Casper/nav.ftl @@ -0,0 +1,78 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> + \ No newline at end of file diff --git a/Casper/page.ftl b/Casper/page.ftl new file mode 100644 index 0000000..1421592 --- /dev/null +++ b/Casper/page.ftl @@ -0,0 +1,62 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +<#include "../../common-template/macro-common_head.ftl"> +<#include "macro-comments.ftl"> +<#include "../../common-template/macro-comment_script.ftl"> + + + +<@head title="${page.pageTitle} - ${blogTitle}"> + + + + +<#include "header.ftl"> +
+ <#if pjax> +<#include "nav.ftl"> +
+<#if noticeBoard??> +
+ ${noticeBoard} +
+ +
+
+
+ ${page.pageContent} +
+
+
+
+
+<@comments commentList=pageComments article=page> +
+
+ <#include "bottom.ftl"> +
+ <#if pjax> +
+<#include "footer.ftl"> +<#if pjax> +<@comment_script oId=page.oId commentable=page.commentable> + <#if pjax> + + diff --git a/Casper/preview.png b/Casper/preview.png new file mode 100644 index 0000000..a681f7f Binary files /dev/null and b/Casper/preview.png differ diff --git a/Casper/skin.properties b/Casper/skin.properties new file mode 100644 index 0000000..12530c4 --- /dev/null +++ b/Casper/skin.properties @@ -0,0 +1,26 @@ +# +# Solo - A small and beautiful blogging system written in Java. +# Copyright (c) 2010-2019, b3log.org & hacpai.com +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +# +# Description: skin properties. +# Version: 0.1.0.0, Mar 26, 2018 +# Author: Liyuan Li +# + +name=Casper +memo=https://demo.ghost.io/ diff --git a/Casper/tag-articles.ftl b/Casper/tag-articles.ftl new file mode 100644 index 0000000..52396c6 --- /dev/null +++ b/Casper/tag-articles.ftl @@ -0,0 +1,57 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +<#include "../../common-template/macro-common_head.ftl"> + + + +<@head title="${tag.tagTitle} ${tagLabel} - ${blogTitle}"> + + + + +<#include "header.ftl"> +
+ <#if pjax> +<#include "nav.ftl"> +
+<#if noticeBoard??> +
+ ${noticeBoard} +
+ +
+
+ + ${tag.tagTitle} + + ${tag.tagPublishedRefCount} + ${tagLabel} + + +
+ <#include "article-list.ftl"> +
+<#include "bottom2.ftl"> +
+ <#if pjax> +
+<#include "footer.ftl"> + + diff --git a/Casper/tags.ftl b/Casper/tags.ftl new file mode 100644 index 0000000..81a8c2a --- /dev/null +++ b/Casper/tags.ftl @@ -0,0 +1,67 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2019, b3log.org & hacpai.com + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +--> +<#include "../../common-template/macro-common_head.ftl"> + + + +<@head title="${allTagsLabel} - ${blogTitle}"> + + + + +<#include "header.ftl"> +
+ <#if pjax> +<#include "nav.ftl"> +
+<#if noticeBoard??> +
+ ${noticeBoard} +
+ +
+
+ + ${tags?size} + ${tagLabel} + +
+ +
+<#include "bottom.ftl"> +
+ <#if pjax> +
+<#include "footer.ftl"> + <#if pjax> + + <#if pjax> + +