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 100755 index 0000000..49c2fa8 Binary files /dev/null and b/Jane/css/fonts/icomoon.eot differ diff --git a/Jane/css/fonts/icomoon.svg b/Jane/css/fonts/icomoon.svg new file mode 100755 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 100755 index 0000000..13145f1 Binary files /dev/null and b/Jane/css/fonts/icomoon.ttf differ diff --git a/Jane/css/fonts/icomoon.woff b/Jane/css/fonts/icomoon.woff new file mode 100755 index 0000000..8da4cca Binary files /dev/null and b/Jane/css/fonts/icomoon.woff differ diff --git a/Jane/dynamic.ftl b/Jane/dynamic.ftl new file mode 100644 index 0000000..31744e4 --- /dev/null +++ b/Jane/dynamic.ftl @@ -0,0 +1,64 @@ +<#-- + + 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} +   >   + ${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 0000000..ea1d136 Binary files /dev/null and b/Jane/images/code-bg.png differ diff --git a/Jane/index.ftl b/Jane/index.ftl new file mode 100644 index 0000000..2738b74 --- /dev/null +++ b/Jane/index.ftl @@ -0,0 +1,46 @@ +<#-- + + 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}"> + <#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