From dbb3b29bda4205f42ab8125361cbc74ad48bfc67 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 7 Dec 2018 08:21:44 +0800 Subject: [PATCH] =?UTF-8?q?:lipstick=20=E6=96=B0=E7=9A=AE=E8=82=A4=20Jane?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jane/archive-articles.ftl | 61 ++ Jane/archives.ftl | 74 ++ Jane/article-list.ftl | 98 +++ Jane/article.ftl | 175 +++++ Jane/category-articles.ftl | 56 ++ Jane/common-comment.ftl | 48 ++ Jane/css/_icon.scss | 111 +++ Jane/css/base.css | 1176 +++++++++++++++++++++++++++++++ Jane/css/base.min.css | 18 + Jane/css/base.scss | 688 ++++++++++++++++++ Jane/css/fonts/icomoon.eot | Bin 0 -> 4772 bytes Jane/css/fonts/icomoon.svg | 27 + Jane/css/fonts/icomoon.ttf | Bin 0 -> 4608 bytes Jane/css/fonts/icomoon.woff | Bin 0 -> 4684 bytes Jane/dynamic.ftl | 64 ++ Jane/footer.ftl | 68 ++ Jane/header.ftl | 132 ++++ Jane/images/code-bg.png | Bin 0 -> 343 bytes Jane/index.ftl | 46 ++ Jane/js/common.js | 130 ++++ Jane/js/common.min.js | 18 + Jane/js/isotope.pkgd.js | 19 + Jane/js/isotope.pkgd.min.js | 18 + Jane/lang/lang_en_US.properties | 34 + Jane/lang/lang_zh_CN.properties | 34 + Jane/links.ftl | 67 ++ Jane/macro-comments.ftl | 132 ++++ Jane/macro-head.ftl | 39 + Jane/page.ftl | 54 ++ Jane/preview.png | Bin 0 -> 85707 bytes Jane/side.ftl | 138 ++++ Jane/skin.properties | 26 + Jane/tag-articles.ftl | 55 ++ Jane/tags.ftl | 79 +++ 34 files changed, 3685 insertions(+) create mode 100644 Jane/archive-articles.ftl create mode 100644 Jane/archives.ftl create mode 100644 Jane/article-list.ftl create mode 100644 Jane/article.ftl create mode 100644 Jane/category-articles.ftl create mode 100644 Jane/common-comment.ftl create mode 100644 Jane/css/_icon.scss create mode 100644 Jane/css/base.css create mode 100644 Jane/css/base.min.css create mode 100644 Jane/css/base.scss create mode 100644 Jane/css/fonts/icomoon.eot create mode 100644 Jane/css/fonts/icomoon.svg create mode 100644 Jane/css/fonts/icomoon.ttf create mode 100644 Jane/css/fonts/icomoon.woff create mode 100644 Jane/dynamic.ftl create mode 100644 Jane/footer.ftl create mode 100644 Jane/header.ftl create mode 100644 Jane/images/code-bg.png create mode 100644 Jane/index.ftl create mode 100644 Jane/js/common.js create mode 100644 Jane/js/common.min.js create mode 100644 Jane/js/isotope.pkgd.js create mode 100644 Jane/js/isotope.pkgd.min.js create mode 100644 Jane/lang/lang_en_US.properties create mode 100644 Jane/lang/lang_zh_CN.properties create mode 100644 Jane/links.ftl create mode 100644 Jane/macro-comments.ftl create mode 100644 Jane/macro-head.ftl create mode 100644 Jane/page.ftl create mode 100644 Jane/preview.png create mode 100644 Jane/side.ftl create mode 100644 Jane/skin.properties create mode 100644 Jane/tag-articles.ftl create mode 100644 Jane/tags.ftl diff --git a/Jane/archive-articles.ftl b/Jane/archive-articles.ftl new file mode 100644 index 0000000..ee8abbb --- /dev/null +++ b/Jane/archive-articles.ftl @@ -0,0 +1,61 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2018, 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 "macro-head.ftl"> + + + +<@head title="${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} (${archiveDate.archiveDatePublishedArticleCount}) - ${blogTitle}"> + + + + + +<#include "header.ftl"> +
+
+ <#if pjax> +
+
+
+ + ${blogTitle} +   >   + + ${archiveLabel} +   >   + <#if "en" == localeString?substring(0, 2)> + ${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} + <#else> + ${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} + + - ${archiveDate.archiveDatePublishedArticleCount} ${articleLabel} +
+
+ <#include "article-list.ftl"> +
+ <#if pjax> +
+ <#include "side.ftl"> +
+<#include "footer.ftl"> + + diff --git a/Jane/archives.ftl b/Jane/archives.ftl new file mode 100644 index 0000000..6139979 --- /dev/null +++ b/Jane/archives.ftl @@ -0,0 +1,74 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2018, 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 "macro-head.ftl"> + + + +<@head title="${blogTitle}"> + + + + + +<#include "header.ftl"> +
+
+ <#if pjax> +
+
+
+ + ${blogTitle} +   >   + + ${statistic.statisticPublishedBlogArticleCount} ${archiveLabel}${articleLabel} +
+
+ +
+ <#if pjax> +
+ <#include "side.ftl"> +
+<#include "footer.ftl"> + + diff --git a/Jane/article-list.ftl b/Jane/article-list.ftl new file mode 100644 index 0000000..e8d526b --- /dev/null +++ b/Jane/article-list.ftl @@ -0,0 +1,98 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2018, 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> +
+ + +

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

+ +
+ + ${article.articleCreateDate?string("yyyy-MM-dd")} +
+ + +
+ + + <#list article.articleTags?split(",") as articleTag> + <#if articleTag_has_next>, + + + + ${article.articleCommentCount} ${commentLabel} + + + + ${article.articleViewCount} ${viewLabel} + +
+ +
+ ${article.articleAbstract} +
+
+ + + + <#if 0 != paginationPageCount> +
+ +
+ +
\ No newline at end of file diff --git a/Jane/article.ftl b/Jane/article.ftl new file mode 100644 index 0000000..dabe64f --- /dev/null +++ b/Jane/article.ftl @@ -0,0 +1,175 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2018, 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 "macro-head.ftl"> +<#include "macro-comments.ftl"> + + + + <@head title="${article.articleTitle} - ${blogTitle}"> + + + + <#if previousArticlePermalink??> + + + <#if nextArticlePermalink??> + + + + + + + + + + + + + + + + + + + + +<#include "header.ftl"> +
+
+ <#if pjax> +
+
+ + +

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

+ +
+ + ${article.articleCreateDate?string("yyyy-MM-dd")} +
+ +
+ + + <#list article.articleTags?split(",") as articleTag> + <#if articleTag_has_next>, + + + + ${article.articleCommentCount} ${commentLabel} + + + + ${article.articleViewCount} ${viewLabel} + +
+ +
+ ${article.articleContent} + <#if "" != article.articleSign.signHTML?trim> +
+ ${article.articleSign.signHTML} +
+ +
+
+ + <#if previousArticlePermalink?? || nextArticlePermalink??> +
+
+ <#if previousArticlePermalink??> + + + <#if nextArticlePermalink??> + + +
+
+ + + <@comments commentList=articleComments article=article> + +
+
+
+
+
+
+
       
+
+
+
+
+
+
       
+
+
+
+
+
+
+
+ <#if pjax> +
+ <#include "side.ftl"> +
+<#include "footer.ftl"> +<#if pjax> +<@comment_script oId=article.oId> +page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}"; + <#if 0 != randomArticlesDisplayCount> +page.loadRandomArticles('
${randomArticles1Label}
'); + + <#if 0 != externalRelevantArticlesDisplayCount> +page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>," + , "
${externalRelevantArticlesLabel}
"); + + <#if 0 != relevantArticlesDisplayCount> + page.loadRelevantArticles('${article.oId}', + '
${relevantArticlesLabel}
'); + + +<#if pjax> + + diff --git a/Jane/category-articles.ftl b/Jane/category-articles.ftl new file mode 100644 index 0000000..3880cb7 --- /dev/null +++ b/Jane/category-articles.ftl @@ -0,0 +1,56 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2018, 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 "macro-head.ftl"> + + + +<@head title="${category.categoryTitle} - ${blogTitle}"> + + + + + +<#include "header.ftl"> +
+
+ <#if pjax> +
+
+
+ + ${blogTitle} +   >   + + ${categoryLabel} +   >   + ${category.categoryTitle} +
+
+ <#include "article-list.ftl"> +
+ <#if pjax> +
+ <#include "side.ftl"> +
+<#include "footer.ftl"> + + diff --git a/Jane/common-comment.ftl b/Jane/common-comment.ftl new file mode 100644 index 0000000..1dac368 --- /dev/null +++ b/Jane/common-comment.ftl @@ -0,0 +1,48 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2018, 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> + @${comment.commentOriginalCommentName} + +
    + +
    +
    +
    +
    + ${comment.commentContent} +
    + <#if article?? && article.commentable> + ${replyLabel} + <#else> + ${viewLabel}» + +
    +
  • \ No newline at end of file diff --git a/Jane/css/_icon.scss b/Jane/css/_icon.scss new file mode 100644 index 0000000..c635b8a --- /dev/null +++ b/Jane/css/_icon.scss @@ -0,0 +1,111 @@ +/** + * Solo - A small and beautiful blogging system written in Java. + * Copyright (c) 2010-2018, 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 . + */ + +@font-face { + font-family: 'icomoon'; + src: url('fonts/icomoon.eot?oyqnlj'); + src: url('fonts/icomoon.eot?oyqnlj#iefix') format('embedded-opentype'), + url('fonts/icomoon.ttf?oyqnlj') format('truetype'), + url('fonts/icomoon.woff?oyqnlj') format('woff'), + url('fonts/icomoon.svg?oyqnlj#icomoon') format('svg'); + font-weight: normal; + font-style: normal; +} + +[class^="icon__"], [class*=" icon__"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'icomoon' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon__list:before { + content: "\f0ca"; +} + +.icon__home:before { + content: "\f015"; +} + +.icon__comments:before { + content: "\f0e6"; +} + +.icon__date:before { + content: "\f073"; +} + +.icon__search:before { + content: "\f002"; +} + +.icon__up:before { + content: "\f077"; +} + +.icon__inbox:before { + content: "\f01c"; +} + +.icon__tags:before { + content: "\f02c"; +} + +.icon__link:before { + content: "\f0c1"; +} + +.icon__refresh:before { + content: "\f021"; +} + +.icon__category:before { + content: "\e9bc"; +} + +.icon__logout:before { + content: "\ea14"; +} + +.icon__views:before { + content: "\e900"; +} + +.icon__register:before { + content: "\e973"; +} + +.icon__setting:before { + content: "\e994"; +} + +.icon__login:before { + content: "\ea13"; +} + +.icon__rss:before { + content: "\e901"; +} \ No newline at end of file diff --git a/Jane/css/base.css b/Jane/css/base.css new file mode 100644 index 0000000..90050cc --- /dev/null +++ b/Jane/css/base.css @@ -0,0 +1,1176 @@ +@charset "UTF-8"; +/** + * Solo - A small and beautiful blogging system written in Java. + * Copyright (c) 2010-2018, 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 0.1.0.0, Dec 6, 2018 +*/ +/* + * Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java. + * Copyright (C) 2012-2018, b3log.org & hacpai.com + * + * 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定 + */ +/** + * Common style for reset + * + * @author Liyuan Li + * @version 0.2.0.1, Arp 17, 2018 + */ +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; } + +/* + * Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java. + * Copyright (C) 2012-2018, b3log.org & hacpai.com + * + * 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定 + */ +/** + * Article reset style + * + * @author Liyuan Li + * @version 0.2.0.2, Jul 6, 2018 + */ +.content-reset { + word-wrap: break-word; + overflow: auto; + line-height: 1.65; + font-size: 16px; + word-break: break-word; } + .content-reset ul, + .content-reset ol { + padding-left: 2em; + margin-top: 0; + margin-bottom: 16px; } + .content-reset li { + margin-top: 0.25em; } + .content-reset img { + cursor: zoom-in; } + .content-reset img.emoji { + cursor: auto; + max-width: 18px; } + .content-reset h1, + .content-reset h2, + .content-reset h3, + .content-reset h4, + .content-reset h5, + .content-reset h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; } + .content-reset h1 { + padding-bottom: 0.3em; + font-size: 1.7em; + border-bottom: 1px solid #eee; } + .content-reset h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eee; } + .content-reset h3 { + font-size: 1.25em; } + .content-reset h4 { + font-size: 1em; } + .content-reset h5 { + font-size: 0.875em; } + .content-reset h6 { + font-size: 0.85em; } + .content-reset hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e7e7e7; + border: 0; } + .content-reset p { + margin-top: 0; + margin-bottom: 16px; } + .content-reset blockquote { + padding: 0 1em; + color: #777; + border-left: 0.25em solid #ddd; + margin-bottom: 16px; } + .content-reset blockquote p { + margin: 0; } + .content-reset iframe { + border: 1px solid rgba(0, 0, 0, 0.38); } + .content-reset table { + width: 100%; + border: 1px solid #dedede; + margin: 15px auto; + border-collapse: collapse; + empty-cells: show; } + .content-reset thead { + text-align: center; } + .content-reset td, + .content-reset th { + height: 35px; + border: 1px solid #dedede; + padding: 0 10px; } + .content-reset th { + font-weight: bold; + text-align: center !important; + background: rgba(158, 188, 226, 0.2); } + .content-reset tbody tr:nth-child(2n) { + background: rgba(158, 188, 226, 0.12); } + .content-reset tr:hover { + background: #efefef; } + .content-reset code { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: rgba(252, 41, 41, 0.12); + border-radius: 3px; + word-break: break-word; } + .content-reset pre { + position: relative; } + .content-reset pre textarea { + position: absolute; + top: -100000px; } + .content-reset pre > code { + padding: 0.5em; + background-color: rgba(0, 0, 0, 0.04); + background-size: 20px 20px; + border-radius: 5px; } + .content-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 rgba(0, 0, 0, 0.38); + border-bottom-color: #bbb; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #bbb; } + .content-reset li.task-list-item { + list-style: none; } + .content-reset li.task-list-item > input { + margin-left: -2em; + vertical-align: middle; } + +.img-preview { + width: 100%; + height: 100%; + top: 0; + z-index: 211; + overflow: auto; + cursor: zoom-out; + transition: background-color .2s ease-in-out; } + .img-preview img { + max-width: inherit; + transition: transform .3s ease-in-out; } + +/* + * Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java. + * Copyright (C) 2012-2018, b3log.org & hacpai.com + * + * 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定 + */ +/** + * Function and font text style + * + * @author Liyuan Li + * @version 0.2.0.0, Arp 29, 2018 + */ +.fn__flex { + display: flex; } + .fn__flex-center { + align-self: center; } + .fn__flex-inline { + display: inline-flex; + align-items: center; } + .fn__flex-1 { + flex: 1; + min-width: 1px; } + .fn__flex-column { + min-height: 100%; + display: flex; + flex-direction: column; } + +.fn__pointer { + cursor: pointer; } + +.fn__clear:before, .fn__clear:after { + display: table; + content: ""; } + +.fn__clear:after { + clear: both; } + +.fn__left { + float: left; } + +.fn__right { + float: right; } + +.fn__none { + display: none; } + +.fn__hidden { + visibility: hidden; } + +.fn__ellipsis { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + word-wrap: normal; } + +.ft__13 { + font-size: 13px; } + +.ft__smaller { + font-size: 12px; } + +.ft__center { + text-align: center; } + +.ft__nowrap { + white-space: nowrap; } + +/* + * Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java. + * Copyright (C) 2012-2018, b3log.org & hacpai.com + * + * 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定 + */ +/** + * tool tip. + * + * @author Liyuan Li + * @version 0.1.0.0, Apr 18, 2018 + */ +@-webkit-keyframes tooltip-appear { + from { + opacity: 0; } + to { + opacity: 1; } } + +@keyframes tooltip-appear { + from { + opacity: 0; } + to { + opacity: 1; } } + +.tooltipped { + position: relative; + cursor: pointer; } + .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; } + .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; } + .tooltipped--hover::before, .tooltipped--hover::after, .tooltipped:hover::before, .tooltipped:hover::after, .tooltipped:active::before, .tooltipped:active::after, .tooltipped:focus::before, .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; } + .tooltipped__s::after, .tooltipped__se::after, .tooltipped__sw::after { + top: 100%; + right: 50%; + margin-top: 5px; } + .tooltipped__s::before, .tooltipped__se::before, .tooltipped__sw::before { + top: auto; + right: 50%; + bottom: -5px; + margin-right: -5px; + border-bottom-color: rgba(0, 0, 0, 0.8); } + .tooltipped__se::after { + right: auto; + left: 50%; + margin-left: -15px; } + .tooltipped__sw::after { + margin-right: -15px; } + .tooltipped__n::after, .tooltipped__ne::after, .tooltipped__nw::after { + right: 50%; + bottom: 100%; + margin-bottom: 5px; } + .tooltipped__n::before, .tooltipped__ne::before, .tooltipped__nw::before { + top: -5px; + right: 50%; + bottom: auto; + margin-right: -5px; + border-top-color: rgba(0, 0, 0, 0.8); } + .tooltipped__ne::after { + right: auto; + left: 50%; + margin-left: -15px; } + .tooltipped__nw::after { + margin-right: -15px; } + .tooltipped__s::after, .tooltipped__n::after { + transform: translateX(50%); } + .tooltipped__w::after { + right: 100%; + bottom: 50%; + margin-right: 5px; + transform: translateY(50%); } + .tooltipped__w::before { + top: 50%; + bottom: 50%; + left: -5px; + margin-top: -5px; + border-left-color: rgba(0, 0, 0, 0.8); } + .tooltipped__e::after { + bottom: 50%; + left: 100%; + margin-left: 5px; + transform: translateY(50%); } + .tooltipped__e::before { + top: 50%; + right: -5px; + bottom: 50%; + margin-top: -5px; + border-right-color: rgba(0, 0, 0, 0.8); } + +/* + * Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java. + * Copyright (C) 2012-2018, b3log.org & hacpai.com + * + * 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定 + */ +/** + * comment + * + * @author Liyuan Li + * @version 0.2.0.0, Nov 12, 2018 + */ +.em00, .em01, .em02, .em03, .em04, .em05, .em06, .em07, .em08, .em09, .em10, .em11, .em12, .em13, .em14 { + cursor: pointer; + background-image: url(../../../images/emotions/emotions.png); + background-size: 120px; + float: left; + height: 24px; + margin-right: 5px; + width: 24px; + transition: all .2s ease-out; + -webkit-transition: all .2s ease-out; + -moz-transition: all .2s ease-out; } + +#emotions span:hover, +#emotionsReply span:hover { + transform: scale(1.2) rotate(360deg); + -webkit-transform: scale(1.2) rotate(360deg); + -moz-transform: scale(1.2) rotate(360deg); } + +.em01 { + background-position: -24px 0; } + +.em02 { + background-position: -48px 0; } + +.em03 { + background-position: -72px 0; } + +.em04 { + background-position: -96px 0; } + +.em05 { + background-position: 0 -24px; } + +.em06 { + background-position: -24px -24px; } + +.em07 { + background-position: -48px -24px; } + +.em08 { + background-position: -72px -24px; } + +.em09 { + background-position: -96px -24px; } + +.em10 { + background-position: 0 -48px; } + +.em11 { + background-position: -24px -48px; } + +.em12 { + background-position: -48px -48px; } + +.em13 { + background-position: -72px -48px; } + +.em14 { + background-position: -96px -48px; } + +/* Make clicks pass-through */ +#nprogress { + pointer-events: none; } + +#nprogress .bar { + background: #d23f31; + position: fixed; + z-index: 1031; + top: 0; + left: 0; + width: 100%; + height: 2px; } + +/* Fancy blur effect */ +#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); } + +/* Remove these to get rid of the spinner */ +#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); } } + +/** + * Solo - A small and beautiful blogging system written in Java. + * Copyright (c) 2010-2018, 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 . + */ +@font-face { + font-family: 'icomoon'; + src: url("fonts/icomoon.eot?oyqnlj"); + src: url("fonts/icomoon.eot?oyqnlj#iefix") format("embedded-opentype"), url("fonts/icomoon.ttf?oyqnlj") format("truetype"), url("fonts/icomoon.woff?oyqnlj") format("woff"), url("fonts/icomoon.svg?oyqnlj#icomoon") format("svg"); + font-weight: normal; + font-style: normal; } + +[class^="icon__"], [class*=" icon__"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'icomoon' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +.icon__list:before { + content: "\f0ca"; } + +.icon__home:before { + content: "\f015"; } + +.icon__comments:before { + content: "\f0e6"; } + +.icon__date:before { + content: "\f073"; } + +.icon__search:before { + content: "\f002"; } + +.icon__up:before { + content: "\f077"; } + +.icon__inbox:before { + content: "\f01c"; } + +.icon__tags:before { + content: "\f02c"; } + +.icon__link:before { + content: "\f0c1"; } + +.icon__refresh:before { + content: "\f021"; } + +.icon__category:before { + content: "\e9bc"; } + +.icon__logout:before { + content: "\ea14"; } + +.icon__views:before { + content: "\e900"; } + +.icon__register:before { + content: "\e973"; } + +.icon__setting:before { + content: "\e994"; } + +.icon__login:before { + content: "\ea13"; } + +.icon__rss:before { + content: "\e901"; } + +a { + transition: all .3s; } + +.ft__red { + color: #b94a48; } + +.module { + border-radius: 5px; + overflow: hidden; + margin-bottom: 30px; + box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2); + transition: all .3s; } + .module.item { + transform: translateY(30px); + transition: transform 2s cubic-bezier(0.175, 0.885, 0.32, 1.275); } + .module.item--active { + transform: translate(0); } + .module:hover { + box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8); } + .module__content { + background-color: rgba(255, 255, 255, 0.8); + padding: 15px; + color: #3d4450; + display: block; } + .module__content:hover { + background-color: #fff; } + .module__content--three { + padding-bottom: 0; } + .module__header { + background-color: rgba(10, 10, 0, 0.7); + padding: 15px; + color: #fff; } + .module__header a { + color: #fff; } + .module__header:hover { + background-color: rgba(10, 10, 0, 0.9); } + .module__list li { + border-bottom: 1px solid #ddd; + background-color: rgba(255, 255, 255, 0.8); + line-height: 20px; } + .module__list li a { + padding: 15px 15px; + display: block; + color: #3d4450; } + .module__list li a:hover { + text-decoration: none; + color: #b94a48; + background-color: #fff; } + +.form { + position: relative; } + .form__input { + border: 1px solid #7266BA; + height: 30px; + line-height: 30px; + padding: 0 15px; + border-radius: 15px; + width: 100%; + box-sizing: border-box; } + +.header { + background-color: #2a2a2a; + color: #fff; + position: fixed; + right: 0; + height: 100%; + width: 33px; } + .header a { + color: #fff; + padding: 0 15px; + display: inline-block; } + .header a.current, .header a:hover { + text-decoration: none; + background-color: rgba(102, 88, 184, 0.8); } + .header__logo { + position: absolute; + left: 30px; } + .header__nav { + text-align: center; } + .header__nav img { + float: left; + height: 20px; + width: 20px; + margin: 15px 5px 0 0; } + .header__login { + position: absolute; + right: 30px; + top: 0; } + +.main { + max-width: 1170px; + padding: 30px; + margin: auto; + display: flex; } + +.content { + flex: 1; + min-width: 1px; } + +.side { + width: 280px; + min-width: 280px; + margin-left: 30px; } + .side__btn { + background-color: transparent; + border: 0; + top: 5px; + position: absolute; + right: 10px; } + .side__avatar { + border-radius: 50%; + height: 100px; + width: 100px; + display: block; + margin: 0 auto; + margin-bottom: 15px; + transition: transform .3s; + margin-top: 10px; } + .side__avatar:hover { + transform: rotate(360deg) scale(1.2); + border: 5px solid rgba(114, 102, 186, 0.36); + margin-top: 0; } + +.tag { + float: left; + color: #fff; + padding: 2px 5px; + border: 1px solid transparent; + height: 20px; + white-space: nowrap; + word-wrap: normal; + background-color: rgba(10, 10, 0, 0.7); + border-radius: 3px 3px 3px 3px; + line-height: 21px; + margin: 0 15px 15px 0; } + .tag a { + color: #fff; } + .tag:hover { + background-color: #b94a48; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + text-decoration: none; } + +.breadcrumb { + color: #7266BA !important; } + .breadcrumb:hover { + color: #3d4450 !important; } + +.footer { + text-align: center; + color: #fff; + padding: 15px; + margin-bottom: 30px; } + .footer a { + color: #7266BA; } + +.article-list .item { + border-radius: 5px; + margin-bottom: 30px; + box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2); + padding: 15px; + background-color: rgba(255, 255, 255, 0.8); + position: relative; + transition: all 0.3s, transform 1s cubic-bezier(0.175, 0.885, 0.32, 1.275); + transform: perspective(2500px) rotateX(-100deg); } + .article-list .item--active { + transform: perspective(2500px) rotateX(0); } + .article-list .item:hover { + background-color: #fff; + box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8); } + .article-list .item .tag { + float: none; + display: inline-block; } + .article-list .item__title { + text-align: center; + font-size: 24px; + font-weight: 500; } + .article-list .item__title a { + color: rgba(10, 10, 0, 0.7); + padding: 0 15px; + border-radius: 5px; + display: inline-block; + margin-bottom: 15px; + line-height: 36px; } + .article-list .item__title a:hover { + color: #fff; + text-decoration: none; + background-color: #6658b8; } + .article-list .item__title > sup { + color: #b94a48; } + .article-list .item__date { + position: absolute; + background-color: #7266BA; + color: #fff; + height: 70px; + width: 70px; + font-size: 12px; + top: -20px; + border-radius: 35px; + left: -20px; + text-align: center; + padding-top: 9px; + box-sizing: border-box; } + .article-list .item__day { + font-size: 30px; + display: block; } + +.pagination__item { + color: #fff; + border-radius: 3px; + padding: 0 10px; + line-height: 24px; + display: inline-block; + margin: 0 0 10px 10px; + background-color: rgba(114, 102, 186, 0.58); } + .pagination__item--text { + background-color: rgba(255, 255, 255, 0.8); + color: #7266BA; } + .pagination__item--current { + background-color: #6658b8; } + +.pagination a.pagination__item:hover { + text-decoration: none; + background-color: #6658b8; } + +.comments { + position: relative; } + .comments__item { + border-radius: 5px; + list-style: none; + margin-bottom: 30px; + box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2); + transition: all .3s; } + .comments__item:hover { + box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8); } + .comments__item:hover .comments__avatar { + transform: rotate(720deg); + border-radius: 0; } + .comments__item:hover .comments__content { + background-color: #fff; } + .comments__item:hover .comments__meta { + background-color: #d9edf7; } + .comments__item:hover .comments__reply:after { + background-color: #d9edf7; } + .comments__meta { + border-radius: 5px 5px 0 0; + min-height: 37px; + line-height: 37px; + padding-left: 45px; + background: rgba(217, 237, 247, 0.6); + color: #3d4450; + padding-right: 15px; } + .comments__meta a { + font-weight: 700; + color: #3d4450; } + .comments__meta a:hover { + color: #b94a48; } + .comments__meta--only { + border-radius: 5px; } + .comments__content { + border-radius: 0 0 5px 5px; + background-color: rgba(255, 255, 255, 0.8); + padding: 15px 45px; + position: relative; } + .comments__content textarea { + margin: 15px 0; } + .comments__avatar { + position: absolute; + height: 54px; + width: 54px; + background-position: center center; + background-size: cover; + border: 2px solid #fff; + border-radius: 35px; + left: -29px; + top: -23px; + transition: all .8s ease; } + .comments__captcha { + height: 30px; } + .comments__reply { + border-radius: 5px; + margin: 15px auto 0; } + .comments__reply #cancelCommentButton { + line-height: 34px; } + .comments__reply:after { + content: " "; + position: absolute; + height: 15px; + width: 5px; + right: 60px; + top: -15px; + background-color: rgba(217, 237, 247, 0.6); } + +.comment-body-ref { + right: 0; + position: absolute; + left: 64px; } + .comment-body-ref .breadcrumb { + display: none; } + +.form { + width: 100%; } + .form input, + .form textarea { + border: 1px solid #d1d5da; + background-color: #fafafa; + border-radius: 3px; + box-shadow: inset 0 1px 2px rgba(27, 31, 35, 0.075); + padding: 7px 8px; + width: 100%; + line-height: 17px; + box-sizing: border-box; } + .form input:focus, + .form textarea:focus { + background-color: #fff; + box-shadow: inset 0 1px 2px rgba(27, 31, 35, 0.075), 0 0 0 0.2em #dbedff; + border: 1px solid #4285f4; } + .form .ft__red { + line-height: 34px; } + .form .btn { + float: right; + height: 34px; + margin: 0 0 0 10px; + padding: 0 15px; } + +.icon__up { + position: fixed; + bottom: 30px; + right: 30px; + color: #fff; + background-color: rgba(114, 102, 186, 0.8); + height: 30px; + width: 30px; + line-height: 28px; + border-radius: 15px; + cursor: pointer; + display: none; + text-align: center; } + .icon__up:hover { + background-color: #6658b8; } + +.content .b3-solo-list { + display: none !important; } + +.b3-solo-list { + margin: 0 !important; + font-size: 14px !important; } + +.b3-solo-list-h1 { + margin: 0 !important; } + +.b3-solo-list-h2 { + margin: 0 !important; } + .b3-solo-list-h2 a { + padding-left: 30px !important; } + +.b3-solo-list-h3 { + margin: 0 !important; } + .b3-solo-list-h3 a { + padding-left: 45px !important; } + +.b3-solo-list-h4 { + margin: 0 !important; } + .b3-solo-list-h4 a { + padding-left: 60px !important; } + +.b3-solo-list-h5 { + margin: 0 !important; } + .b3-solo-list-h5 a { + padding-left: 75px !important; } + +@media (max-width: 768px) { + .header__nav { + display: none; } + .main { + display: block; + margin: 15px; + padding: 0; } + .side { + margin: 0; + width: auto; } + .article-list { + overflow: hidden; } + .article-list .item__title { + font-size: 20px; } + .article-list .item__date--m { + text-align: center; + margin-bottom: 10px; + color: #3d4450; + display: block; } + .article-list .item__date { + display: none; } + .article-list .item, + .module, + .comments__item { + margin-bottom: 15px; } + .footer { + margin: 0 15px 15px; + background-color: rgba(255, 255, 255, 0.8); + border-radius: 5px; + color: #3d4450; + line-height: 20px; } + .footer a { + text-decoration: underline; } + .footer .fn__none--m { + display: none; } + .footer .fn__none { + display: block; } + .tag { + margin: 0 5px 10px 0; + font-size: 12px; } + .header__logo { + left: 0; } + .header__login { + display: none; } + .header__m { + display: block; + position: absolute; + width: 100%; + z-index: 1; } + .header__m img { + float: left; + height: 20px; + width: 20px; + margin: 0 5px 0 0; } + .header__m a.current { + color: #b94a48; } + .header__m .icon__list { + position: absolute; + top: -35px; + right: 15px; + font-size: 20px; + color: #fff; } + .header__m .module__list { + display: none; } + .header__m .module__list li { + background-color: #fff; } + .module__content.ft__center { + text-align: left; } + .comments__avatar { + height: 34px; + width: 34px; + left: -7px; } + .comments__content { + padding: 15px; } + .content-reset { + font-size: 14px; } } diff --git a/Jane/css/base.min.css b/Jane/css/base.min.css new file mode 100644 index 0000000..57e4769 --- /dev/null +++ b/Jane/css/base.min.css @@ -0,0 +1,18 @@ +/** + * Solo - A small and beautiful blogging system written in Java. + * Copyright (c) 2010-2018, 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 . + */ +@charset "UTF-8";body,button,input,select,textarea{margin:0;font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif}.content-reset pre,sub,sup{position:relative}.fn__ellipsis,.ft__nowrap{white-space:nowrap}.comments__item,.content-reset li.task-list-item{list-style:none}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;height:100%}body{font-size:14px;background-color:#fff;-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch}::-moz-selection{text-shadow:none;background:rgba(65,131,196,.4)}::selection{text-shadow:none;background:rgba(66,133,244,.4)}ol,ul{margin:0;padding:0}blockquote,dd,dl,h1,h2,h3,h4,h5,h6,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:hover{text-decoration:underline}sub,sup{font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.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{font-size:100%;vertical-align:middle;outline:0}button,input{line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}.content-reset h1,.content-reset h2{padding-bottom:.3em;border-bottom:1px solid #eee}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-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}svg{fill:currentColor;display:inline-block;stroke-width:0;stroke:currentColor;width:14px;height:14px}.content-reset{word-wrap:break-word;overflow:auto;line-height:1.65;font-size:16px;word-break:break-word}.content-reset ol,.content-reset ul{padding-left:2em;margin-top:0;margin-bottom:16px}.content-reset li{margin-top:.25em}.content-reset img{cursor:zoom-in}.content-reset img.emoji{cursor:auto;max-width:18px}.content-reset h1,.content-reset h2,.content-reset h3,.content-reset h4,.content-reset h5,.content-reset h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.content-reset h1{font-size:1.7em}.content-reset h2{font-size:1.5em}.content-reset h3{font-size:1.25em}.content-reset h4{font-size:1em}.content-reset h5{font-size:.875em}.content-reset h6{font-size:.85em}.content-reset hr{height:.25em;padding:0;margin:24px 0;background-color:#e7e7e7;border:0}.content-reset p{margin-top:0;margin-bottom:16px}.content-reset blockquote{padding:0 1em;color:#777;border-left:.25em solid #ddd;margin-bottom:16px}.content-reset blockquote p{margin:0}.content-reset iframe{border:1px solid rgba(0,0,0,.38)}.content-reset table{width:100%;border:1px solid #dedede;margin:15px auto;border-collapse:collapse;empty-cells:show}.content-reset thead{text-align:center}.content-reset td,.content-reset th{height:35px;border:1px solid #dedede;padding:0 10px}.content-reset th{font-weight:700;text-align:center!important;background:rgba(158,188,226,.2)}.article-list .item__date,.footer,.ft__center,.header__nav,.icon__up,.tooltipped::after{text-align:center}.content-reset tbody tr:nth-child(2n){background:rgba(158,188,226,.12)}.content-reset tr:hover{background:#efefef}.content-reset code{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(252,41,41,.12);border-radius:3px;word-break:break-word}.content-reset pre textarea{position:absolute;top:-100000px}.content-reset pre>code{padding:.5em;background-color:rgba(0,0,0,.04);background-size:20px 20px;border-radius:5px}.content-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:1px solid rgba(0,0,0,.38);border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.content-reset li.task-list-item>input{margin-left:-2em;vertical-align:middle}.img-preview{width:100%;height:100%;top:0;z-index:211;overflow:auto;cursor:zoom-out;transition:background-color .2s ease-in-out}.fn__pointer,.tooltipped{cursor:pointer}.img-preview img{max-width:inherit;transition:transform .3s ease-in-out}.fn__flex{display:flex}.fn__flex-center{align-self:center}.fn__flex-inline{display:inline-flex;align-items:center}.fn__flex-1{flex:1;min-width:1px}.fn__flex-column{min-height:100%;display:flex;flex-direction:column}.fn__clear:after,.fn__clear:before{display:table;content:""}.fn__clear:after{clear:both}.fn__left{float:left}.fn__right{float:right}.fn__none{display:none}.fn__hidden{visibility:hidden}.fn__ellipsis{overflow:hidden;text-overflow:ellipsis;word-wrap:normal}.ft__13{font-size:13px}.ft__smaller{font-size:12px}@-webkit-keyframes tooltip-appear{from{opacity:0}to{opacity:1}}@keyframes tooltip-appear{from{opacity:0}to{opacity:1}}.tooltipped{position:relative}.tooltipped::after,.tooltipped::before{position:absolute;display:none;opacity:0;pointer-events:none}.tooltipped::after{z-index:1000000;padding:5px 8px;font-size:11px;font-weight:400;-webkit-font-smoothing:subpixel-antialiased;color:#fff;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;content:attr(aria-label);background:rgba(0,0,0,.8);border-radius:3px;line-height:16px}.tooltipped::before{z-index:1000001;width:0;height:0;color:rgba(0,0,0,.8);content:"";border:5px solid transparent}.tooltipped--hover::after,.tooltipped--hover::before,.tooltipped:active::after,.tooltipped:active::before,.tooltipped:focus::after,.tooltipped:focus::before,.tooltipped:hover::after,.tooltipped:hover::before{display:inline-block;text-decoration:none;animation-name:tooltip-appear;animation-duration:.1s;animation-fill-mode:forwards;animation-timing-function:ease-in;animation-delay:.4s}.tooltipped__s::after,.tooltipped__se::after,.tooltipped__sw::after{top:100%;right:50%;margin-top:5px}.tooltipped__s::before,.tooltipped__se::before,.tooltipped__sw::before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.tooltipped__se::after{right:auto;left:50%;margin-left:-15px}.tooltipped__sw::after{margin-right:-15px}.tooltipped__n::after,.tooltipped__ne::after,.tooltipped__nw::after{right:50%;bottom:100%;margin-bottom:5px}.tooltipped__n::before,.tooltipped__ne::before,.tooltipped__nw::before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.tooltipped__ne::after{right:auto;left:50%;margin-left:-15px}.tooltipped__nw::after{margin-right:-15px}.tooltipped__n::after,.tooltipped__s::after{transform:translateX(50%)}.tooltipped__w::after{right:100%;bottom:50%;margin-right:5px;transform:translateY(50%)}.tooltipped__w::before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.tooltipped__e::after{bottom:50%;left:100%;margin-left:5px;transform:translateY(50%)}.tooltipped__e::before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.em00,.em01,.em02,.em03,.em04,.em05,.em06,.em07,.em08,.em09,.em10,.em11,.em12,.em13,.em14{cursor:pointer;background-image:url(../../../images/emotions/emotions.png);background-size:120px;float:left;height:24px;margin-right:5px;width:24px;transition:all .2s ease-out;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out}.module,a{transition:all .3s}#emotions span:hover,#emotionsReply span:hover{transform:scale(1.2) rotate(360deg);-webkit-transform:scale(1.2) rotate(360deg);-moz-transform:scale(1.2) rotate(360deg)}.em01{background-position:-24px 0}.em02{background-position:-48px 0}.em03{background-position:-72px 0}.em04{background-position:-96px 0}.em05{background-position:0 -24px}.em06{background-position:-24px -24px}.em07{background-position:-48px -24px}.em08{background-position:-72px -24px}.em09{background-position:-96px -24px}.em10{background-position:0 -48px}.em11{background-position:-24px -48px}.em12{background-position:-48px -48px}.em13{background-position:-72px -48px}.em14{background-position:-96px -48px}#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:0;width:100px;height:100%;box-shadow:0 0 10px #d23f31,0 0 5px #d23f31;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-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:2px solid transparent;border-top-color:#d23f31;border-left-color:#d23f31;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@font-face{font-family:icomoon;src:url(fonts/icomoon.eot?oyqnlj);src:url(fonts/icomoon.eot?oyqnlj#iefix) format("embedded-opentype"),url(fonts/icomoon.ttf?oyqnlj) format("truetype"),url(fonts/icomoon.woff?oyqnlj) format("woff"),url(fonts/icomoon.svg?oyqnlj#icomoon) format("svg");font-weight:400;font-style:normal}[class*=" icon__"],[class^=icon__]{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon__list:before{content:"\f0ca"}.icon__home:before{content:"\f015"}.icon__comments:before{content:"\f0e6"}.icon__date:before{content:"\f073"}.icon__search:before{content:"\f002"}.icon__up:before{content:"\f077"}.icon__inbox:before{content:"\f01c"}.icon__tags:before{content:"\f02c"}.icon__link:before{content:"\f0c1"}.icon__refresh:before{content:"\f021"}.icon__category:before{content:"\e9bc"}.icon__logout:before{content:"\ea14"}.icon__views:before{content:"\e900"}.icon__register:before{content:"\e973"}.icon__setting:before{content:"\e994"}.icon__login:before{content:"\ea13"}.icon__rss:before{content:"\e901"}body{cursor:url(../images/cursor.cur),url(../images/cursor.cur),auto}a{outline:0;text-decoration:none;cursor:url(../images/pointer.cur),url(../images/pointer.cur),auto}.content-reset img{vertical-align:sub}.ft__red{color:#b94a48}.module{border-radius:5px;overflow:hidden;margin-bottom:30px;box-shadow:1px 1px 3px 1px rgba(0,0,0,.2)}.module.item{transform:translateY(30px);transition:transform 2s cubic-bezier(.175,.885,.32,1.275)}.module.item--active{transform:translate(0)}.module:hover{box-shadow:0 0 20px 0 rgba(0,0,0,.8)}.module__content{background-color:rgba(255,255,255,.8);padding:15px;color:#3d4450;display:block}.module__content:hover{background-color:#fff}.module__content--three{padding-bottom:0}.module__header{background-color:rgba(10,10,0,.7);padding:15px;color:#fff}.module__header a{color:#fff}.module__header:hover{background-color:rgba(10,10,0,.9)}.module__list li{border-bottom:1px solid #ddd;background-color:rgba(255,255,255,.8);line-height:20px}.module__list li a{padding:15px;display:block;color:#3d4450}.module__list li a:hover{text-decoration:none;color:#b94a48;background-color:#fff}.header,.header a,.tag,.tag a{color:#fff}.form{position:relative}.form__input{border:1px solid #7266BA;height:30px;line-height:30px;padding:0 15px;border-radius:15px;width:100%;box-sizing:border-box}.bg{height:100%;width:100%;position:fixed;top:0;left:0;background-image:url(../images/background1.jpg);background-size:cover;background-position:center center;z-index:-1;animation:imageAnimation 36s linear infinite 0s;opacity:0}.bg--1{background-image:url(../images/background2.jpg);animation-delay:6s}.bg--2{background-image:url(../images/background3.jpg);animation-delay:12s}.bg--3{background-image:url(../images/background4.jpg);animation-delay:18s}.bg--4{background-image:url(../images/background5.jpg);animation-delay:24s}.bg--5{background-image:url(../images/background6.jpg);animation-delay:30s}@keyframes imageAnimation{0%{opacity:0;animation-timing-function:ease-in}8%{opacity:1;transform:scale(1.05);animation-timing-function:ease-out}17%{opacity:1;transform:scale(1.1) rotate(0)}25%{opacity:0;transform:scale(1.1) rotate(0)}100%{opacity:0}}.header{background-color:rgba(10,10,0,.7);height:50px;line-height:50px;transition:all .3s;box-shadow:0 0 8px #000}.header:hover{background-color:rgba(10,10,0,.9)}.header a{padding:0 15px;display:inline-block}.header a.current,.header a:hover{text-decoration:none;background-color:rgba(102,88,184,.8)}.header__logo{position:absolute;left:30px}.header__nav img{float:left;height:20px;width:20px;margin:15px 5px 0 0}.header__login{position:absolute;right:30px;top:0}.main{max-width:1170px;padding:30px;margin:auto;display:flex}.content{flex:1;min-width:1px}.side{width:280px;min-width:280px;margin-left:30px}.side__btn{background-color:transparent;border:0;top:5px;position:absolute;right:10px}.side__avatar{border-radius:50%;height:100px;width:100px;display:block;margin:10px auto 15px;transition:transform .3s}.side__avatar:hover{transform:rotate(360deg) scale(1.2);border:5px solid rgba(114,102,186,.36);margin-top:0}.tag{float:left;padding:2px 5px;border:1px solid transparent;height:20px;white-space:nowrap;word-wrap:normal;background-color:rgba(10,10,0,.7);border-radius:3px;line-height:21px;margin:0 15px 15px 0}.article-list .item,.footer{margin-bottom:30px;padding:15px}.tag:hover{background-color:#b94a48;box-shadow:0 1px 1px rgba(0,0,0,.2);text-decoration:none}.breadcrumb{color:#7266BA!important}.breadcrumb:hover{color:#3d4450!important}.footer{color:#fff}.footer a{color:#7266BA}.article-list .item{border-radius:5px;box-shadow:1px 1px 3px 1px rgba(0,0,0,.2);background-color:rgba(255,255,255,.8);position:relative;transition:all .3s,transform 1s cubic-bezier(.175,.885,.32,1.275);transform:perspective(2500px) rotateX(-100deg)}.article-list .item--active{transform:perspective(2500px) rotateX(0)}.article-list .item:hover{background-color:#fff;box-shadow:0 0 20px 0 rgba(0,0,0,.8)}.article-list .item .tag{float:none;display:inline-block}.article-list .item__title{text-align:center;font-size:24px;font-weight:500}.article-list .item__title a{color:rgba(10,10,0,.7);padding:0 15px;border-radius:5px;display:inline-block;margin-bottom:15px;line-height:36px}.article-list .item__title a:hover{color:#fff;text-decoration:none;background-color:#6658b8}.article-list .item__title>sup{color:#b94a48}.article-list .item__date{position:absolute;background-color:#7266BA;color:#fff;height:70px;width:70px;font-size:12px;top:-20px;border-radius:35px;left:-20px;padding-top:9px;box-sizing:border-box}.article-list .item__day{font-size:30px;display:block}.pagination__item{color:#fff;border-radius:3px;padding:0 10px;line-height:24px;display:inline-block;margin:0 0 10px 10px;background-color:rgba(114,102,186,.58)}.comment-body-ref .breadcrumb,.icon__up{display:none}.pagination__item--text{background-color:rgba(255,255,255,.8);color:#7266BA}.pagination__item--current{background-color:#6658b8}.pagination a.pagination__item:hover{text-decoration:none;background-color:#6658b8}.comments{position:relative}.comments__item{border-radius:5px;margin-bottom:30px;box-shadow:1px 1px 3px 1px rgba(0,0,0,.2);transition:all .3s}.comments__item:hover{box-shadow:0 0 20px 0 rgba(0,0,0,.8)}.comments__item:hover .comments__avatar{transform:rotate(720deg);border-radius:0}.comments__item:hover .comments__content{background-color:#fff}.comments__item:hover .comments__meta,.comments__item:hover .comments__reply:after{background-color:#d9edf7}.comments__meta{border-radius:5px 5px 0 0;min-height:37px;line-height:37px;padding-left:45px;background:rgba(217,237,247,.6);color:#3d4450;padding-right:15px}.comments__meta a{font-weight:700;color:#3d4450}.comments__meta a:hover{color:#b94a48}.comments__meta--only{border-radius:5px}.comments__content{border-radius:0 0 5px 5px;background-color:rgba(255,255,255,.8);padding:15px 45px;position:relative}.comments__content textarea{margin:15px 0}.comments__avatar{position:absolute;height:54px;width:54px;background-position:center center;background-size:cover;border:2px solid #fff;border-radius:35px;left:-29px;top:-23px;transition:all .8s ease}.comments__captcha{height:30px}.comments__reply{border-radius:5px;margin:15px auto 0}.comments__reply #cancelCommentButton{line-height:34px}.comments__reply:after{content:" ";position:absolute;height:15px;width:5px;right:60px;top:-15px;background-color:rgba(217,237,247,.6)}.comment-body-ref{right:0;position:absolute;left:64px}.form{width:100%}.form input,.form textarea{border:1px solid #d1d5da;background-color:#fafafa;border-radius:3px;box-shadow:inset 0 1px 2px rgba(27,31,35,.075);padding:7px 8px;width:100%;line-height:17px;box-sizing:border-box}.form input:focus,.form textarea:focus{background-color:#fff;box-shadow:inset 0 1px 2px rgba(27,31,35,.075),0 0 0 .2em #dbedff;border:1px solid #4285f4}.form .ft__red{line-height:34px}.form .btn{float:right;height:34px;margin:0 0 0 10px;padding:0 15px}.b3-solo-list,.b3-solo-list-h1,.b3-solo-list-h2,.b3-solo-list-h3,.b3-solo-list-h4,.b3-solo-list-h5{margin:0!important}.icon__up{position:fixed;bottom:30px;right:30px;color:#fff;background-color:rgba(114,102,186,.8);height:30px;width:30px;line-height:28px;border-radius:15px;cursor:pointer}.icon__up:hover{background-color:#6658b8}.content .b3-solo-list{display:none!important}.b3-solo-list{font-size:14px!important}.b3-solo-list-h2 a{padding-left:30px!important}.b3-solo-list-h3 a{padding-left:45px!important}.b3-solo-list-h4 a{padding-left:60px!important}.b3-solo-list-h5 a{padding-left:75px!important}@media (max-width:768px){.header__nav{display:none}.main{display:block;margin:15px;padding:0}.side{margin:0;width:auto}.article-list{overflow:hidden}.article-list .item__title{font-size:20px}.article-list .item__date--m{text-align:center;margin-bottom:10px;color:#3d4450;display:block}.article-list .item__date,.footer .fn__none--m{display:none}.article-list .item,.comments__item,.module{margin-bottom:15px}.footer{margin:0 15px 15px;background-color:rgba(255,255,255,.8);border-radius:5px;color:#3d4450;line-height:20px}.footer a{text-decoration:underline}.footer .fn__none{display:block}.tag{margin:0 5px 10px 0;font-size:12px}.header__logo{left:0}.header__login{display:none}.header__m{display:block;position:absolute;width:100%;z-index:1}.header__m img{float:left;height:20px;width:20px;margin:0 5px 0 0}.header__m a.current{color:#b94a48}.header__m .icon__list{position:absolute;top:-35px;right:15px;font-size:20px;color:#fff}.header__m .module__list{display:none}.header__m .module__list li{background-color:#fff}.module__content.ft__center{text-align:left}.comments__avatar{height:34px;width:34px;left:-7px}.comments__content{padding:15px}.content-reset{font-size:14px}} \ No newline at end of file diff --git a/Jane/css/base.scss b/Jane/css/base.scss new file mode 100644 index 0000000..d02097a --- /dev/null +++ b/Jane/css/base.scss @@ -0,0 +1,688 @@ +/** + * Solo - A small and beautiful blogging system written in Java. + * Copyright (c) 2010-2018, 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 0.1.0.0, Dec 6, 2018 +*/ +@import "../../../scss/reset"; +@import "../../../scss/reset-content"; +@import "../../../scss/function"; +@import "../../../scss/tooltipped"; +@import "../../../scss/comment"; +@import "../../../scss/nprogress"; +@import "icon"; + +$purple: #7266BA !default; +$purple-dark: #6658b8 !default; +$red: #b94a48 !default; +$black: #3d4450 !default; + +// reset +a { + transition: all .3s; +} + +.ft__red { + color: $red; +} + +// module +.module { + border-radius: 5px; + overflow: hidden; + margin-bottom: 30px; + box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2); + transition: all .3s; + + &.item { + transform: translateY(30px); + transition: transform 2s cubic-bezier(.175, .885, .32, 1.275); + &--active { + transform: translate(0); + } + } + + &:hover { + box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8); + } + + &__content { + background-color: rgba(255, 255, 255, 0.8); + padding: 15px; + color: $black; + display: block; + &:hover { + background-color: #fff; + } + + &--three { + padding-bottom: 0; + } + } + + &__header { + background-color: rgba(10, 10, 0, 0.7); + padding: 15px; + color: #fff; + + a { + color: #fff; + } + + &:hover { + background-color: rgba(10, 10, 0, 0.9); + } + } + + &__list { + li { + border-bottom: 1px solid #ddd; + background-color: rgba(255, 255, 255, 0.8); + line-height: 20px; + a { + padding: 15px 15px; + display: block; + color: $black; + + &:hover { + text-decoration: none; + color: $red; + background-color: #fff; + } + } + } + } +} + +// form +.form { + position: relative; + &__input { + border: 1px solid $purple; + height: 30px; + line-height: 30px; + padding: 0 15px; + border-radius: 15px; + width: 100%; + box-sizing: border-box; + } +} + +// header +.header { + background-color: #2a2a2a; + color: #fff; + position: fixed; + right: 0; + height: 100%; + width: 33px; + + a { + color: #fff; + padding: 0 15px; + display: inline-block; + + &.current, + &:hover { + text-decoration: none; + background-color: rgba($purple-dark, 0.8); + } + } + + &__logo { + position: absolute; + left: 30px; + } + + &__nav { + text-align: center; + + img { + float: left; + height: 20px; + width: 20px; + margin: 15px 5px 0 0; + } + } + + &__login { + position: absolute; + right: 30px; + top: 0; + } +} + +// framework +.main { + max-width: 1170px; + padding: 30px; + margin: auto; + display: flex; +} + +.content { + flex: 1; + min-width: 1px; +} + +// side +.side { + width: 280px; + min-width: 280px; + margin-left: 30px; + + &__btn { + background-color: transparent; + border: 0; + top: 5px; + position: absolute; + right: 10px; + } + + &__avatar { + border-radius: 50%; + height: 100px; + width: 100px; + display: block; + margin: 0 auto; + margin-bottom: 15px; + transition: transform .3s; + margin-top: 10px; + + &:hover { + transform: rotate(360deg) scale(1.2); + border: 5px solid rgba($purple, 0.36); + margin-top: 0; + } + } +} + +// tag +.tag { + float: left; + color: #fff; + padding: 2px 5px; + border: 1px solid transparent; + height: 20px; + white-space: nowrap; + word-wrap: normal; + background-color: rgba(10, 10, 0, 0.7); + border-radius: 3px 3px 3px 3px; + line-height: 21px; + margin: 0 15px 15px 0; + + a { + color: #fff; + } + + &:hover { + background-color: $red; + box-shadow: 0 1px 1px rgba(0, 0, 0, .2); + text-decoration: none; + } +} + +.breadcrumb { + color: $purple !important; + &:hover { + color: $black !important; + } +} + +// footer +.footer { + text-align: center; + color: #fff; + padding: 15px; + margin-bottom: 30px; + a { + color: $purple; + } +} + +// article list +.article-list { + .item { + border-radius: 5px; + margin-bottom: 30px; + box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2); + padding: 15px; + background-color: rgba(255, 255, 255, 0.8); + position: relative; + transition: all .3s, transform 1s cubic-bezier(.175, .885, .32, 1.275); + transform: perspective(2500px) rotateX(-100deg); + + &--active { + transform: perspective(2500px) rotateX(0); + } + + &:hover { + background-color: #fff; + box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8); + } + + .tag { + float: none; + display: inline-block; + } + + &__title { + text-align: center; + font-size: 24px; + font-weight: 500; + a { + color: rgba(10, 10, 0, 0.7); + padding: 0 15px; + border-radius: 5px; + display: inline-block; + margin-bottom: 15px; + line-height: 36px; + + &:hover { + color: #fff; + text-decoration: none; + background-color: $purple-dark; + } + } + + & > sup { + color: $red; + } + } + + &__date { + position: absolute; + background-color: $purple; + color: #fff; + height: 70px; + width: 70px; + font-size: 12px; + top: -20px; + border-radius: 35px; + left: -20px; + text-align: center; + padding-top: 9px; + box-sizing: border-box; + } + + &__day { + font-size: 30px; + display: block; + } + } +} + +// pagination +.pagination { + &__item { + color: #fff; + border-radius: 3px; + padding: 0 10px; + line-height: 24px; + display: inline-block; + margin: 0 0 10px 10px; + background-color: rgba($purple, 0.58); + + &--text { + background-color: rgba(255, 255, 255, 0.8); + color: $purple; + } + + &--current { + background-color: $purple-dark; + } + } + + a.pagination__item:hover { + text-decoration: none; + background-color: $purple-dark; + } +} + +// comment +.comments { + position: relative; + &__item { + border-radius: 5px; + list-style: none; + margin-bottom: 30px; + box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2); + transition: all .3s; + + &:hover { + box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.8); + + .comments__avatar { + transform: rotate(720deg); + border-radius: 0; + } + + .comments__content { + background-color: #fff; + } + + .comments__meta { + background-color: rgba(217, 237, 247, 1); + } + + .comments__reply:after { + background-color: #d9edf7; + } + + } + } + + &__meta { + border-radius: 5px 5px 0 0; + min-height: 37px; + line-height: 37px; + padding-left: 45px; + background: rgba(217, 237, 247, 0.6); + color: $black; + padding-right: 15px; + + a { + font-weight: 700; + color: $black; + &:hover { + color: $red; + } + } + + &--only { + border-radius: 5px; + } + } + + &__content { + border-radius: 0 0 5px 5px; + background-color: rgba(255, 255, 255, 0.8); + padding: 15px 45px; + position: relative; + + textarea { + margin: 15px 0; + } + } + + &__avatar { + position: absolute; + height: 54px; + width: 54px; + background-position: center center; + background-size: cover; + border: 2px solid #fff; + border-radius: 35px; + left: -29px; + top: -23px; + transition: all .8s ease; + } + + &__captcha { + height: 30px; + } + + &__reply { + border-radius: 5px; + margin: 15px auto 0; + + #cancelCommentButton { + line-height: 34px; + } + + &:after { + content: " "; + position: absolute; + height: 15px; + width: 5px; + right: 60px; + top: -15px; + background-color: rgba(217, 237, 247, 0.6); + } + } +} + +.comment-body-ref { + right: 0; + position: absolute; + left: 64px; + + .breadcrumb { + display: none; + } +} + +.form { + width: 100%; + input, + textarea { + border: 1px solid #d1d5da; + background-color: #fafafa; + border-radius: 3px; + box-shadow: inset 0 1px 2px rgba(27, 31, 35, .075); + padding: 7px 8px; + width: 100%; + line-height: 17px; + box-sizing: border-box; + + &:focus { + background-color: #fff; + box-shadow: inset 0 1px 2px rgba(27, 31, 35, .075), 0 0 0 0.2em #dbedff; + border: 1px solid #4285f4; + } + } + + .ft__red { + line-height: 34px; + } + + .btn { + float: right; + height: 34px; + margin: 0 0 0 10px; + padding: 0 15px; + } +} + +.icon__up { + position: fixed; + bottom: 30px; + right: 30px; + color: #fff; + background-color: rgba($purple, 0.8); + height: 30px; + width: 30px; + line-height: 28px; + border-radius: 15px; + cursor: pointer; + display: none; + text-align: center; + + &:hover { + background-color: $purple-dark; + } +} + +.content .b3-solo-list { + display: none !important; +} + +.b3-solo-list { + margin: 0 !important; + font-size: 14px !important; +} + +.b3-solo-list-h1 { + margin: 0 !important; +} + +.b3-solo-list-h2 { + margin: 0 !important; + a { + padding-left: 30px !important; + } +} + +.b3-solo-list-h3 { + margin: 0 !important; + a { + padding-left: 45px !important; + } +} + +.b3-solo-list-h4 { + margin: 0 !important; + a { + padding-left: 60px !important; + } +} + +.b3-solo-list-h5 { + margin: 0 !important; + a { + padding-left: 75px !important; + } +} + +@media (max-width: 768px) { + .header__nav { + display: none; + } + + .main { + display: block; + margin: 15px; + padding: 0; + } + + .side { + margin: 0; + width: auto; + } + + .article-list { + overflow: hidden; + .item { + &__title { + font-size: 20px; + } + &__date--m { + text-align: center; + margin-bottom: 10px; + color: $black; + display: block; + } + &__date { + display: none; + } + } + } + + .article-list .item, + .module, + .comments__item { + margin-bottom: 15px; + } + + .footer { + margin: 0 15px 15px; + background-color: rgba(255, 255, 255, 0.8); + border-radius: 5px; + color: $black; + line-height: 20px; + + a { + text-decoration: underline; + } + + .fn__none--m { + display: none; + } + + .fn__none { + display: block; + } + } + + .tag { + margin: 0 5px 10px 0; + font-size: 12px; + } + + .header__logo { + left: 0; + } + + .header__login { + display: none; + } + + .header__m { + display: block; + position: absolute; + width: 100%; + z-index: 1; + + img { + float: left; + height: 20px; + width: 20px; + margin: 0 5px 0 0; + } + + a.current { + color: #b94a48; + } + + .icon__list { + position: absolute; + top: -35px; + right: 15px; + font-size: 20px; + color: #fff; + } + + .module__list { + display: none; + + li { + background-color: #fff; + } + } + } + + .module__content.ft__center { + text-align: left; + } + + .comments__avatar { + height: 34px; + width: 34px; + left: -7px; + } + + .comments__content { + padding: 15px; + } + + .content-reset { + font-size: 14px; + } +} \ No newline at end of file diff --git a/Jane/css/fonts/icomoon.eot b/Jane/css/fonts/icomoon.eot new file mode 100644 index 0000000000000000000000000000000000000000..49c2fa89f8c8845d218e23665c5c727c88dfdd76 GIT binary patch literal 4772 zcma)ATW}lI89rxM+FfZStz~If@+GqFR^nK3Buh>vwxc9wae? z+e#*My3+3XZ|6Vf{O7-%-I;1a2yRL^0F@Ud&ryc=VaP!9XdUMwhH)lw9@FwbB}&}qjo#+&k3!>F#Cq^bEpJHG6BBs_^eE&^L;%fylioai z^ZA=^ec@i<7Sx6Mg}}o4h0_bu3s)9CSh%sYxU|F+LXMQ>T;D23mp=2Dw2Rtltxx@? z%A)*B`AYdx`Aqq_@`7@ol2ziEOXXY*#ozLvgkof+LLSc8w%O>us^fpt*vbngW&jsy zAWbk-(7|nN@o~vSC)zm22cxOhbTXl-Zh;R9s#{AY(y7)cM^3zXK9@WH=85GtH!+c8 zcdEBHg_|eCXNOn*Iw>)86EtJ6A;Ol0ftQLHzX(rVL)Kyb6=U#f!pC`hyqau{b0Mdi zFlp6*IT8*%wJDd|v^kf%(sE$mKrq-Ea=m-vjc=ZLl{WwNNAJF@f1#iM zFJ5(pQo&&VzJo2#eDlT$df@64*Y%HI{e(_Y?d8fj_(+0u5)x_cZ+=A%fqK%@DdVJJDMNcP9!i=z6x~-GbJZ*8>Xl9aFq``1I zIQ~~|i)%w@L`~GicBOpp+wE#+_wLY$7O}f6?l@!Ag3$nmyEEGt9#$iEeScH$X1{-P zZ&SIYheCbXPWNkeM?-4Y+M0wX6n9zNm+fIssIPmg`?8JEV>KH~^w(@*&saroLknRM zZ}>xj+)o}N2a)(jupc2fTqux&=XKE5XcG+zYp7e>Le&6+Ld)nfI~7p>51JYK#%>;) zM_Kz})%Li)Q01<#cfZ6QRr*4Fdj(3#y^-733I$qV7kd^zjBhWLH9$>ad;G&ytXTXO z7#+Dxp|F@S_BT_G34y5C-#{vm@`%)FP6eDvHQlE5Zie$ zl{(n9c5N4HcgAR>$*0s=uO_BC1}~0n-8y!0aPNh&OeA>KD%1JYp{`i0>(Fu!eZQ|s zmj4h6Z_QtTSbi(oz3o%UtCl*YG&dK?@-ut{t8K^JoNl3srVy=2XU^92Mhk7x)HcyU z;Y`s+3ntmf<{C}6(R88#p`YGD6WSUULn0s1l=+MEibiQS&CI`#Poc zoPP2#?)CH>J)kMKuPK@&JSF%PdQDjaz(Ox@W{%eDe?v2NK>t$FFf~_I%t6~7Zns0f z>WHC^vhfMV&*NBe7~{9Nk@?vEHNsY9@$&=g_Vn%Y^_cCVF&(0)g1J9-tgY|IF{@qVEJ9wgDw={S zr<%k_>0@z#eL{g2gI`ArZoY4K5{3zJ_({8hlOMBQ}fv4{M#G)LHaV&DZ3+ z<;!aHlEpSJTMdR*r%=091~#f@8ww3sm0q&S+?=n;(4l{dSb-n}=q0VY;TBYA`Z2lA zQKq{TYJ+}9olJkG`N}+;7RVBd**UCGA~xbgeAJ@yhe(WULZoaXT{vWZ4|O=13VCp= zjg1@YE)7c>>z42rP$LautGaWM^mJpPPGs`AKKz z=B~}n(Ye{#d5~o(%;E(PI%81gXJ@Nru|yQ*YfZk}^UO%ubTk}I&l}IIuZhg!f?DXB zS%fM&J2Rs{JR64MTQf}Ij3~=`&0J(=W+uNv5W|ZRri`2StxreOEC2OAxCG7$NBDQR z7g$D(h(Zu~LS$|oTdJj6pSoV#adv-e>;AJlSh3HHUD#Wj@P>0uHm{u%WXefqXGrN9WTyf8 zsS;EIJ~XS*1AaX1`v39=+vDQDv4NR7!H3scTs z8}YXOWVg0njXkz&=X8vjuKa!#y7J!Jhn4oPiELt2@@Gfk`f9s0hYC^zE|uykAoMfd zONpt2$>F*Brp5?_s3lD$gq354SKQTQIKx`xadx{Z4)BpO%mYrBVH4n~GHgaYRm-pddT$xFq6$3?ucRgmC=PH+Fb8*oIXtt*=b_!@&qHxo-H74UO}QKTFHm=IOaK4? literal 0 HcmV?d00001 diff --git a/Jane/css/fonts/icomoon.svg b/Jane/css/fonts/icomoon.svg new file mode 100644 index 0000000..19b377d --- /dev/null +++ b/Jane/css/fonts/icomoon.svg @@ -0,0 +1,27 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Jane/css/fonts/icomoon.ttf b/Jane/css/fonts/icomoon.ttf new file mode 100644 index 0000000000000000000000000000000000000000..13145f1259789c1fa579ef98b9f260c981b0c9d6 GIT binary patch literal 4608 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 literal 0 HcmV?d00001 diff --git a/Jane/css/fonts/icomoon.woff b/Jane/css/fonts/icomoon.woff new file mode 100644 index 0000000000000000000000000000000000000000..8da4cca24f759e25a5e56ed332d6130263079b73 GIT binary patch literal 4684 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. + +--> +<#include "macro-head.ftl"> + + + +<@head title="${blogTitle}"> + + + + + +<#include "header.ftl"> +
    +
    + <#if pjax> +
    +
    +
    + + ${blogTitle} +   >   + ${dynamicLabel} +
    +
    + <#if 0 != recentComments?size> +
      + <#list recentComments as comment> + <#include "common-comment.ftl"/> + +
    + +
    + <#if pjax> +
    +<#include "side.ftl"> +
    +<#include "footer.ftl"> + + + diff --git a/Jane/footer.ftl b/Jane/footer.ftl new file mode 100644 index 0000000..03deeb5 --- /dev/null +++ b/Jane/footer.ftl @@ -0,0 +1,68 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2018, 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 . + +--> +
    + +
    + + + + + +${plugins} diff --git a/Jane/header.ftl b/Jane/header.ftl new file mode 100644 index 0000000..5d84a7d --- /dev/null +++ b/Jane/header.ftl @@ -0,0 +1,132 @@ +<#-- + + Solo - A small and beautiful blogging system written in Java. + Copyright (c) 2010-2018, 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/Jane/images/code-bg.png b/Jane/images/code-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..ea1d136cb6c1285d6a250692dae86cd285491924 GIT binary patch literal 343 zcmV-d0jU0oP)b^_2t_{@)LXfd{vDJ(znna=?D+8=CSWyK9pFar;;{VveK2)20T_T;{g z_t390c#gQF{3Yu--T!(2Iq!Ercxd*gq3>qxOkC=dJu9%8Uh$gz)Z)a!on62F_1@*G zzU`@(=`?>X%v#v}ulr5ruk_nLJ*ltD;5Rld^F7{2vpx0YFi+0&p&MiMeHb5JJ%0w* z{+9dyVb$8d9B0#iH207EO{2bc*ca!i?qfUm?}b}omH9Z|i}#4{a~t&zrW}uYDbJTu pd>Yo8?-SE&@Z|XtEaBITzX7jsYbLNO$. + +--> +<#include "macro-head.ftl"> + + + + <@head title="${blogTitle}"> + <#if metaKeywords??> + + + <#if metaDescription??> + + + + + +<#include "header.ftl"> +
    +
    + <#if pjax> +
    + <#include "article-list.ftl"> +
    + <#if pjax> +
    +
    +<#include "footer.ftl"> + + \ No newline at end of file diff --git a/Jane/js/common.js b/Jane/js/common.js new file mode 100644 index 0000000..f311dad --- /dev/null +++ b/Jane/js/common.js @@ -0,0 +1,130 @@ +/* + * Solo - A small and beautiful blogging system written in Java. + * Copyright (c) 2010-2018, 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.2.1.0, Sep 30, 2018 + */ + +/** + * @description 皮肤脚本 + * @static + */ +var Skin = { + _initCommon: function ($goTop) { + $(window).scroll(function () { + if ($(window).scrollTop() > 125) { + $goTop.show() + } else { + $goTop.hide() + } + }) + }, + _initAnimation: function () { + if (!('IntersectionObserver' in window)) { + $('.item').addClass('item--active') + return false + } + + if (window.imageIntersectionObserver) { + window.imageIntersectionObserver.disconnect() + $('.item').each(function () { + window.imageIntersectionObserver.observe(this) + }) + } else { + window.imageIntersectionObserver = new IntersectionObserver( + function (entries) { + entries.forEach(function (entrie) { + if (typeof entrie.isIntersecting === 'undefined' + ? entrie.intersectionRatio !== 0 : entrie.isIntersecting) { + $(entrie.target).addClass('item--active') + } else { + if ($(entrie.target).closest('.side').length === 1 || + $(entrie.target).closest('.article-list').hasClass('content') || + $(entrie.target).outerHeight() > 768) { + return + } + $(entrie.target).removeClass('item--active') + } + }) + }) + $('.item').each(function () { + window.imageIntersectionObserver.observe(this) + }) + } + }, + init: function () { + Util.initPjax(function () { + Skin._initAnimation() + if ($('#articlePage').length === 0) { + $('.b3-solo-list').closest('.module').remove() + } + }) + + Skin._initAnimation() + + $('body').on('click', '.content-reset img', function () { + window.open(this.src) + }) + + this._initCommon($('.icon__up')) + + $('.header__nav a, .header__m a').each(function () { + if (this.href === location.href) { + this.className = 'current' + } + }).click(function () { + $('.header__nav a, .header__m a').removeClass('current') + this.className = 'current' + $('.header__m .module__list').hide() + }) + + $('.header__logo').click(function () { + $('.header__nav a, .header__m a').removeClass('current') + }) + }, + _initArticleCommon: function () { + if ($('.b3-solo-list li').length > 0 && $(window).width() > 1000) { + $('.side'). + prepend('
    ') + $('.side .module:eq(0) .module__list').html($('.b3-solo-list')) + } + }, + initArticle: function () { + this._initArticleCommon() + + setTimeout(function () { + if ($('#externalRelevantArticlesWrap li').length === 0) { + $('#externalRelevantArticlesWrap').next().remove() + $('#externalRelevantArticlesWrap').remove() + } + + if ($('#relevantArticlesWrap li').length === 0) { + $('#relevantArticlesWrap').prev().remove() + $('#relevantArticlesWrap').remove() + } + + if ($('#randomArticlesWrap li').length === 0) { + $('#randomArticlesWrap').prev().remove() + $('#randomArticlesWrap').remove() + } + }, 1000) + }, +} +Skin.init() \ No newline at end of file diff --git a/Jane/js/common.min.js b/Jane/js/common.min.js new file mode 100644 index 0000000..20a6c9a --- /dev/null +++ b/Jane/js/common.min.js @@ -0,0 +1,18 @@ +/* + * Solo - A small and beautiful blogging system written in Java. + * Copyright (c) 2010-2018, 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 . + */ +var Skin={_initCommon:function(e){$(window).scroll(function(){125<$(window).scrollTop()?e.show():e.hide()})},_initAnimation:function(){if(!("IntersectionObserver"in window))return $(".item").addClass("item--active"),!1;window.imageIntersectionObserver?window.imageIntersectionObserver.disconnect():window.imageIntersectionObserver=new IntersectionObserver(function(e){e.forEach(function(e){if(void 0===e.isIntersecting?0!==e.intersectionRatio:e.isIntersecting)$(e.target).addClass("item--active");else{if(1===$(e.target).closest(".side").length||$(e.target).closest(".article-list").hasClass("content")||768<$(e.target).outerHeight())return;$(e.target).removeClass("item--active")}})}),$(".item").each(function(){window.imageIntersectionObserver.observe(this)})},init:function(){Util.initPjax(function(){Skin._initAnimation(),0===$("#articlePage").length&&$(".b3-solo-list").closest(".module").remove()}),Skin._initAnimation(),$("body").on("click",".content-reset img",function(){window.open(this.src)}),this._initCommon($(".icon__up")),$(".header__nav a, .header__m a").each(function(){this.href===location.href&&(this.className="current")}).click(function(){$(".header__nav a, .header__m a").removeClass("current"),this.className="current",$(".header__m .module__list").hide()}),$(".header__logo").click(function(){$(".header__nav a, .header__m a").removeClass("current")})},_initArticleCommon:function(){0<$(".b3-solo-list li").length&&1e3<$(window).width()&&($(".side").prepend('
    '),$(".side .module:eq(0) .module__list").html($(".b3-solo-list")))},initArticle:function(){this._initArticleCommon(),setTimeout(function(){0===$("#externalRelevantArticlesWrap li").length&&($("#externalRelevantArticlesWrap").next().remove(),$("#externalRelevantArticlesWrap").remove()),0===$("#relevantArticlesWrap li").length&&($("#relevantArticlesWrap").prev().remove(),$("#relevantArticlesWrap").remove()),0===$("#randomArticlesWrap li").length&&($("#randomArticlesWrap").prev().remove(),$("#randomArticlesWrap").remove())},1e3)}};Skin.init(); \ No newline at end of file diff --git a/Jane/js/isotope.pkgd.js b/Jane/js/isotope.pkgd.js new file mode 100644 index 0000000..e536715 --- /dev/null +++ b/Jane/js/isotope.pkgd.js @@ -0,0 +1,19 @@ +/* + * Solo - A small and beautiful blogging system written in Java. + * Copyright (c) 2010-2018, 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 . + */ +!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,o){var n,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var d=h[e];if(!d||"_"==e.charAt(0))return void r(s+" is not a valid method");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var o=this._onceEvents&&this._onceEvents[t],n=0;n