diff --git a/skins/9IPHP/article.ftl b/skins/9IPHP/article.ftl
index 9f5de6a..8c87b27 100644
--- a/skins/9IPHP/article.ftl
+++ b/skins/9IPHP/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<#include "header.ftl">
diff --git a/skins/Andrea/article.ftl b/skins/Andrea/article.ftl
index a8b2a2a..edad678 100644
--- a/skins/Andrea/article.ftl
+++ b/skins/Andrea/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
diff --git a/skins/Medium/archive-articles.ftl b/skins/Medium/archive-articles.ftl
new file mode 100644
index 0000000..4493008
--- /dev/null
+++ b/skins/Medium/archive-articles.ftl
@@ -0,0 +1,40 @@
+<#include "macro-head.ftl">
+
+
+
+<@head title="${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} (${archiveDate.archiveDatePublishedArticleCount}) - ${blogTitle}">
+
+
+@head>
+
+
+<#include "header.ftl">
+<#include "nav.ftl">
+
+<#if noticeBoard??>
+
+ ${noticeBoard}
+
+#if>
+
+
+
+ <#if "en" == localeString?substring(0, 2)>
+ ${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear}
+ <#else>
+ ${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}
+ #if>
+
+ ${archiveDate.archiveDatePublishedArticleCount}
+ ${cntArticleLabel}
+
+
+
+ <#include "article-list.ftl">
+
+<#include "bottom2.ftl">
+
+<#include "footer.ftl">
+
+
diff --git a/skins/Medium/archives.ftl b/skins/Medium/archives.ftl
new file mode 100644
index 0000000..c2f3f06
--- /dev/null
+++ b/skins/Medium/archives.ftl
@@ -0,0 +1,53 @@
+<#include "macro-head.ftl">
+
+
+
+<@head title="${blogTitle}">
+
+
+@head>
+
+
+<#include "header.ftl">
+<#include "nav.ftl">
+
+<#if noticeBoard??>
+
+ ${noticeBoard}
+
+#if>
+
+
+
+ ${archiveDates?size}
+ ${cntMonthLabel}
+ ${statistic.statisticPublishedBlogArticleCount}
+ ${cntArticleLabel}
+
+
+ <#if 0 != archiveDates?size>
+ <#list archiveDates as archiveDate>
+
+ #list>
+ #if>
+
+<#include "bottom.ftl">
+
+<#include "footer.ftl">
+
+
diff --git a/skins/Medium/article-list.ftl b/skins/Medium/article-list.ftl
new file mode 100644
index 0000000..5a24bcf
--- /dev/null
+++ b/skins/Medium/article-list.ftl
@@ -0,0 +1,71 @@
+
+<#list articles as article>
+
+
+
+
+
+ ${article.articleTitle}
+
+ <#if article.articlePutTop>
+
+ ${topArticleLabel}
+
+ #if>
+ <#if article.hasUpdated>
+
+ ${updatedLabel}
+
+ #if>
+
+
+ ${article.articleAbstract}
+
+
+
+
+
+
+#list>
+
+
+<#if 0 != paginationPageCount>
+
+#if>
\ No newline at end of file
diff --git a/skins/Medium/article.ftl b/skins/Medium/article.ftl
new file mode 100644
index 0000000..e698b89
--- /dev/null
+++ b/skins/Medium/article.ftl
@@ -0,0 +1,249 @@
+<#include "macro-head.ftl">
+<#include "macro-comments.ftl">
+
+
+
+<@head title="${article.articleTitle} - ${blogTitle}">
+
+
+@head>
+<#if previousArticlePermalink??>
+
+#if>
+<#if nextArticlePermalink??>
+
+#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<#include "header.ftl">
+
+<#if noticeBoard??>
+
+ ${noticeBoard}
+
+#if>
+
+
+
+
+ ${article.articleTitle}
+ <#if article.articlePutTop>
+
+ ${topArticleLabel}
+
+ #if>
+ <#if article.hasUpdated>
+
+ ${updatedLabel}
+
+ #if>
+
+
+
+ ${article.articleContent}
+ <#if "" != article.articleSign.signHTML?trim>
+
+ ${article.articleSign.signHTML}
+
+ #if>
+
+
+ <#list article.articleTags?split(",") as articleTag>
+
+ ${articleTag}
+ #list>
+
+
+
+ ${article.articleCreateDate?string("yyyy-MM-dd")} •
+
+
+ ${article.articleViewCount} ${viewLabel}
+
+
+
+
+
+ ${article.articleCommentCount}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <@comments commentList=articleComments article=article>@comments>
+
+
+
+
+
+
+
+ ${article.articleCommentCount}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<@comment_script oId=article.oId>
+ page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}";
+ <#if 0 != randomArticlesDisplayCount>
+ page.loadRandomArticles("
${randomArticlesLabel}
");
+ #if>
+ <#if 0 != externalRelevantArticlesDisplayCount>
+ page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,#if>#list>"
+ , "
${externalRelevantArticlesLabel}
");
+ #if>
+ <#if 0 != relevantArticlesDisplayCount>
+ page.loadRelevantArticles('${article.oId}', '
${relevantArticlesLabel}
');
+ #if>
+@comment_script>
+${plugins}
+
+
diff --git a/skins/Medium/bottom.ftl b/skins/Medium/bottom.ftl
new file mode 100644
index 0000000..9912ecc
--- /dev/null
+++ b/skins/Medium/bottom.ftl
@@ -0,0 +1,31 @@
+
diff --git a/skins/Medium/bottom2.ftl b/skins/Medium/bottom2.ftl
new file mode 100644
index 0000000..a20c54c
--- /dev/null
+++ b/skins/Medium/bottom2.ftl
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/skins/Medium/category-articles.ftl b/skins/Medium/category-articles.ftl
new file mode 100644
index 0000000..8fc7929
--- /dev/null
+++ b/skins/Medium/category-articles.ftl
@@ -0,0 +1,35 @@
+<#include "macro-head.ftl">
+
+
+
+<@head title="${category.categoryTitle} - ${blogTitle}">
+
+
+@head>
+
+
+<#include "header.ftl">
+<#include "nav.ftl">
+
+<#if noticeBoard??>
+
+ ${noticeBoard}
+
+#if>
+
+
+
+ ${category.categoryTitle}
+
+ ${category.categoryDescription}
+
+
+
+ <#include "article-list.ftl">
+
+<#include "bottom2.ftl">
+
+<#include "footer.ftl">
+
+
diff --git a/skins/Medium/common-comment.ftl b/skins/Medium/common-comment.ftl
new file mode 100644
index 0000000..43faf05
--- /dev/null
+++ b/skins/Medium/common-comment.ftl
@@ -0,0 +1,35 @@
+
\ No newline at end of file
diff --git a/skins/Medium/css/base.css b/skins/Medium/css/base.css
new file mode 100644
index 0000000..b21b3fc
--- /dev/null
+++ b/skins/Medium/css/base.css
@@ -0,0 +1,1357 @@
+/**
+ * Copyright (c) 2010-2018, b3log.org & hacpai.com
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * skin style
+ *
+ * @author
Liyuan Li
+ * @version 0.1.0.0, Jan 29, 2018
+*/
+/* start common */
+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;
+ -webkit-font-smoothing: antialiased
+}
+
+::-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;
+ color: #4285f4
+}
+
+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
+}
+
+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"] {
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ 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
+}
+
+.content-reset {
+ font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif;
+ word-wrap: break-word;
+ overflow: auto;
+ line-height: 1.5;
+ font-size: 16px;
+ word-break: break-all
+}
+
+.content-reset ul,
+.content-reset ol {
+ padding-left: 2em;
+ margin-top: 0;
+ margin-bottom: 16px
+}
+
+.content-reset li {
+ margin-top: 0.25em
+}
+
+.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: 2em;
+ 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 #ccc
+}
+
+.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;
+ color: #d23f31;
+ font-family: mononoki, Consolas, "Liberation Mono", Menlo, Courier, monospace
+}
+
+.content-reset pre > code {
+ padding: 0.5em;
+ border-radius: 0;
+ color: #333;
+ background-color: rgba(0, 0, 0, 0.04);
+ background-image: url(../images/code-bg.png);
+ 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 #ccc;
+ border-bottom-color: #bbb;
+ border-radius: 3px;
+ box-shadow: inset 0 -1px 0 #bbb
+}
+
+.fn-flex {
+ display: flex
+}
+
+.fn-flex-1 {
+ flex: 1;
+ min-width: 1px
+}
+
+.fn-clear:before, .fn-clear:after {
+ display: table;
+ content: ""
+}
+
+.fn-clear:after {
+ clear: both
+}
+
+.fn-left {
+ float: left
+}
+
+.fn-right {
+ float: right
+}
+
+.ft-12 {
+ font-size: 12px;
+ font-weight: normal;
+}
+
+.ft-gray {
+ color: rgba(0, 0, 0, 0.54);
+}
+
+.ft-fade {
+ color: rgba(0, 0, 0, 0.38);
+}
+
+.ft-green {
+ color: #03a87c !important;
+ transition: all 0.1s
+}
+
+.ft-green:hover {
+ color: #018f69 !important
+}
+
+.pipe-tooltipped {
+ position: relative;
+ cursor: pointer
+}
+
+.pipe-tooltipped::after {
+ position: absolute;
+ z-index: 1000;
+ display: none;
+ padding: 5px 8px;
+ font-size: 11px;
+ font-weight: normal;
+ 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
+}
+
+.pipe-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
+}
+
+@keyframes tooltip-appear {
+ from {
+ opacity: 0
+ }
+
+ to {
+ opacity: 1
+ }
+}
+
+.pipe-tooltipped:hover::before, .pipe-tooltipped:hover::after, .pipe-tooltipped:active::before, .pipe-tooltipped:active::after, .pipe-tooltipped:focus::before, .pipe-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
+}
+
+.pipe-tooltipped--s::after, .pipe-tooltipped--se::after, .pipe-tooltipped--sw::after {
+ top: 100%;
+ right: 50%;
+ margin-top: 5px
+}
+
+.pipe-tooltipped--s::before, .pipe-tooltipped--se::before, .pipe-tooltipped--sw::before {
+ top: auto;
+ right: 50%;
+ bottom: -5px;
+ margin-right: -5px;
+ border-bottom-color: rgba(0, 0, 0, 0.8)
+}
+
+.pipe-tooltipped--se::after {
+ right: auto;
+ left: 50%;
+ margin-left: -15px
+}
+
+.pipe-tooltipped--sw::after {
+ margin-right: -15px
+}
+
+.pipe-tooltipped--n::after, .pipe-tooltipped--ne::after, .pipe-tooltipped--nw::after {
+ right: 50%;
+ bottom: 100%;
+ margin-bottom: 5px
+}
+
+.pipe-tooltipped--n::before, .pipe-tooltipped--ne::before, .pipe-tooltipped--nw::before {
+ top: -5px;
+ right: 50%;
+ bottom: auto;
+ margin-right: -5px;
+ border-top-color: rgba(0, 0, 0, 0.8)
+}
+
+.pipe-tooltipped--ne::after {
+ right: auto;
+ left: 50%;
+ margin-left: -15px
+}
+
+.pipe-tooltipped--nw::after {
+ margin-right: -15px
+}
+
+.pipe-tooltipped--s::after, .pipe-tooltipped--n::after {
+ transform: translateX(50%)
+}
+
+.pipe-tooltipped--w::after {
+ right: 100%;
+ bottom: 50%;
+ margin-right: 5px;
+ transform: translateY(50%)
+}
+
+.pipe-tooltipped--w::before {
+ top: 50%;
+ bottom: 50%;
+ left: -5px;
+ margin-top: -5px;
+ border-left-color: rgba(0, 0, 0, 0.8)
+}
+
+.pipe-tooltipped--e::after {
+ bottom: 50%;
+ left: 100%;
+ margin-left: 5px;
+ transform: translateY(50%)
+}
+
+.pipe-tooltipped--e::before {
+ top: 50%;
+ right: -5px;
+ bottom: 50%;
+ margin-top: -5px;
+ border-right-color: rgba(0, 0, 0, 0.8)
+}
+
+.tag {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: rgba(0, 0, 0, 0.68);
+ padding: 5px 10px;
+ line-height: 22px;
+ font-weight: 400;
+ border-radius: 3px;
+ white-space: nowrap;
+ display: inline-block;
+ transition: all 0.1s;
+ margin: 0 8px 8px 0;
+ font-size: 15px
+}
+
+.tag:hover {
+ text-decoration: none;
+ background: rgba(0, 0, 0, 0.1);
+ color: rgba(0, 0, 0, 0.68)
+}
+
+.tag__level0 {
+ line-height: inherit;
+ font-size: 12px;
+ color: rgba(0, 0, 0, 0.38)
+}
+
+.tag__level1 {
+ line-height: inherit;
+ font-size: 16px;
+ color: rgba(0, 0, 0, 0.54)
+}
+
+.tag__level2 {
+ line-height: inherit;
+ font-size: 21px;
+ color: #6f6f6f
+}
+
+.tag__level3 {
+ line-height: inherit;
+ font-size: 24px;
+ color: #3b3e43
+}
+
+.tag__level4 {
+ line-height: inherit;
+ font-size: 30px;
+ color: #000
+}
+
+.module__title {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.15);
+ margin-bottom: 25px;
+ line-height: 26px;
+ font-size: 22px;
+ position: relative;
+ height: 46px
+}
+
+.module__title > span {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.54);
+ position: absolute;
+ padding-bottom: 20px;
+ height: 26px
+}
+
+/* star framework */
+.wrapper {
+ max-width: 1000px;
+ margin: 0 auto;
+ box-sizing: border-box
+}
+
+.header {
+ padding: 0 20px;
+ box-sizing: border-box;
+ height: 64px;
+ text-align: center;
+ transition: all 0.1s;
+ z-index: 11;
+}
+
+.header h1 {
+ display: inline-block;
+ line-height: 61px;
+}
+
+.header--fixed {
+ position: fixed;
+ width: 100%;
+ top: -64px;
+ background-color: #fff;
+ box-shadow: 0 2px 2px -2px rgba(0, 0, 0, 0.15)
+}
+
+.header__logo {
+ float: left;
+ height: 32px;
+ width: 32px;
+ margin: 16px 0;
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center center
+}
+
+.header__title {
+ font-size: 26px;
+ color: rgba(0, 0, 0, 0.84)
+}
+
+.header__title:hover {
+ text-decoration: none
+}
+
+.header__icon {
+ transition: all 0.1s;
+ color: rgba(0, 0, 0, 0.54);
+ text-decoration: none;
+ width: 25px;
+ margin-left: 10px;
+ float: left;
+ margin-top: 25px
+}
+
+.header__icon:hover {
+ text-decoration: none;
+ color: rgba(0, 0, 0, 0.68)
+}
+
+.header__icon svg {
+ height: 16px;
+ width: 16px
+}
+
+.header__icon.avatar {
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center center;
+ display: inline-block;
+ height: 32px;
+ width: 32px;
+ border-radius: 16px;
+ margin-top: 16px;
+ margin-left: 14px
+}
+
+.header__a {
+ color: #03a87c;
+ font-size: 16px;
+ float: left;
+ margin: 16px 0 0 16px;
+ transition: all 0.1s;
+ line-height: 32px;
+}
+
+.header__a:hover {
+ text-decoration: none;
+ color: #018f69;
+ border-color: #018f69
+}
+
+.header__nav {
+ height: 50px;
+ padding: 0 20px;
+ box-sizing: border-box
+}
+
+.header__nav .wrapper {
+ overflow: auto;
+ word-wrap: normal;
+ white-space: nowrap
+}
+
+.header__nav .wrapper::-webkit-scrollbar {
+ display: none
+}
+
+.header__nav a {
+ color: rgba(0, 0, 0, 0.76);
+ font-size: 15px;
+ padding: 0 10px;
+ line-height: 50px;
+ text-decoration: none
+}
+
+.header__nav a img {
+ height: 16px;
+ width: 16px;
+ vertical-align: text-top
+}
+
+.header__nav a:first-child {
+ padding-left: 0
+}
+
+.header__nav--fixed {
+ z-index: 11;
+ position: fixed;
+ width: 100%;
+ top: 0;
+ background-color: #fff;
+ box-shadow: 0 2px 2px -2px rgba(0, 0, 0, 0.15)
+}
+
+.footer {
+ margin-top: 50px;
+ padding: 10px 20px 25px;
+ font-size: 14px;
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+ color: rgba(0, 0, 0, 0.38)
+}
+
+.footer a {
+ color: rgba(0, 0, 0, 0.54)
+}
+
+.footer__tag {
+ margin-top: 50px
+}
+
+.footer__tag > div {
+ margin-right: 20px
+}
+
+.footer__tag > div:last-child {
+ margin-right: 0
+}
+
+.footer__tag li {
+ list-style: none;
+}
+
+.footer__tag li a {
+ color: rgba(0, 0, 0, 0.54);
+ display: block;
+ line-height: 30px;
+ word-break: keep-all;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ padding: 0 25px;
+}
+
+.footer__tag li a:hover {
+ color: rgba(0, 0, 0, 0.68);
+}
+
+.main {
+ margin: 50px 20px 0
+}
+
+.main .content {
+ margin-top: 50px
+}
+
+.board {
+ padding: 12px 0;
+ text-align: center
+}
+
+/* star article */
+.article__wrap {
+ margin-right: -20px
+}
+
+.article__item {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-radius: 2px;
+ margin-bottom: 20px;
+ float: left
+}
+
+.article__item--big {
+ width: 318px;
+ margin-right: 20px
+}
+
+.article__item--big .article__main {
+ height: 275px;
+ overflow: hidden;
+ margin-bottom: 10px
+}
+
+.article__item--small {
+ width: 318px;
+ margin-right: 20px
+}
+
+.article__item--small .article__main {
+ height: 94px;
+ overflow: hidden;
+ margin-bottom: 10px
+}
+
+.article__item--mid {
+ width: 488px;
+ margin-right: 20px
+}
+
+.article__item--mid .article__main {
+ height: 195px;
+ overflow: hidden;
+ margin-bottom: 10px
+}
+
+.article__panel {
+ padding: 16px
+}
+
+.article__title {
+ overflow: hidden;
+ line-height: 24px;
+ font-size: 21px;
+ font-weight: 600;
+ word-break: break-all
+}
+
+.article__title a {
+ color: rgba(0, 0, 0, 0.84)
+}
+
+.article__title a:hover {
+ text-decoration: none
+}
+
+.article__title sup {
+ top: -6px;
+ font-size: 12px;
+ color: #03a87c;
+}
+
+.article__content {
+ margin-top: 4px;
+ font-size: 16px;
+ color: rgba(0, 0, 0, 0.54);
+ overflow: hidden;
+ line-height: 23px;
+ word-break: break-all;
+}
+
+.article__meta {
+ font-size: 15px;
+ line-height: 23px;
+}
+
+/* end article list */
+
+/* start article */
+.b3-solo-list {
+ display: none;
+}
+
+.post {
+ max-width: 740px;
+ margin: 50px auto 20px;
+ position: relative
+}
+
+.post__main {
+ margin: 20px 0 0 0
+}
+
+.post__title {
+ font-weight: 700;
+ font-size: 42px;
+ margin: 0 -20px 10px;
+ word-break: break-all
+}
+
+.post__title sup {
+ font-size: 16px;
+ top: -20px;
+ color: #03a87c;
+}
+
+.post__tags {
+ padding: 4px 0 22px;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05)
+}
+
+.post__share {
+ padding: 20px 0;
+ margin-bottom: 20px;
+ font-size: 16px;
+}
+
+.post__share svg {
+ height: 20px;
+ width: 20px;
+ vertical-align: bottom
+}
+
+.post__share #articleShare {
+ position: relative
+}
+
+.post__share #articleShare .article__code {
+ position: absolute;
+ height: 130px;
+ width: 130px;
+ left: -2px;
+ top: 22px
+}
+
+.post__share-icon {
+ color: rgba(0, 0, 0, 0.54);
+ cursor: pointer;
+}
+
+.post__share-icon:hover {
+ color: rgba(0, 0, 0, 0.68);
+}
+
+.post__view {
+ color: #03a87c;
+ transition: all 0.1s
+}
+
+.post__view:hover {
+ color: #018f69;
+ text-decoration: none
+}
+
+.post__side {
+ position: fixed;
+ top: 50%;
+ left: 10%;
+ width: 55px;
+ text-align: center;
+ font-size: 16px;
+ margin-top: -125px;
+ transition: opacity .1s;
+ opacity: 0
+}
+
+.post__side svg {
+ height: 25px;
+ width: 25px
+}
+
+.post__side .ft-green svg {
+ height: 55px;
+ width: 55px;
+ vertical-align: bottom;
+ margin-bottom: 10px
+}
+
+.post__side .article__code {
+ position: absolute;
+ height: 130px;
+ width: 130px;
+ left: 45px;
+ top: 90px
+}
+
+#articleSideShare {
+ width: 26px;
+ margin: 0 auto;
+}
+
+.article__bottom {
+ background-color: #fafafa;
+ padding: 40px 20px
+}
+
+.article__bottom .footer__tag {
+ margin-bottom: 50px;
+}
+
+.article__comment {
+ width: 640px;
+ margin: 45px auto 0;
+ position: relative;
+}
+
+.article__comment .comment__title {
+ font-size: 16px;
+ margin-bottom: 15px;
+ color: rgba(0, 0, 0, 0.68)
+}
+
+.article__comment .comment__item {
+ background-color: rgb(255, 255, 255);
+ box-shadow: rgba(0, 0, 0, 0.04) 0px 1px 4px;
+ border: 1px solid rgba(0, 0, 0, 0.09);
+ border-radius: 3px;
+ padding: 10px 20px;
+ margin: 0 0 20px;
+}
+
+.article__comment .comment__avatar {
+ position: absolute;
+ height: 57px;
+ width: 57px;
+ display: inline-block;
+ z-index: 10;
+ border: 2px solid rgb(255, 255, 255);
+ border-radius: 50%;
+}
+
+.article__comment .comment__body {
+ padding-left: 81px;
+}
+
+.article__comment .comment__body svg.ft-gray {
+ height: 12px;
+ width: 12px;
+ vertical-align: text-top;
+ margin-left: 5px;
+}
+
+.article__comment .comment__user,
+.article__comment .comment__user a {
+ color: rgb(3, 168, 124);
+}
+
+.article__comment .comment__user a:hover {
+ color: rgb(1, 143, 105);
+ text-decoration: none;
+}
+
+.comment-body-ref {
+ position: absolute;
+ width: 559px;
+ box-sizing: border-box;
+ left: 101px;
+}
+
+.comment-body-ref .ft-green {
+ display: none;
+}
+
+.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: 10px;
+ margin-bottom: 5px;
+ width: 24px;
+ transition: all .2s ease-out;
+ -webkit-transition: all .2s ease-out;
+ -moz-transition: all .2s ease-out
+}
+
+#emotions 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
+}
+
+#commentForm,
+#replyForm {
+ width: 100%;
+}
+
+#replyForm {
+ margin-top: 20px;
+}
+
+.comment__textarea {
+ background-color: rgb(255, 255, 255);
+ box-shadow: rgba(0, 0, 0, 0.04) 0px 1px 4px;
+ border: 1px solid rgba(0, 0, 0, 0.09);
+ border-radius: 3px;
+ padding: 10px;
+ margin: 0 0 5px;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.captcha {
+ height: 35px;
+ margin: -5px 0 0 7px;
+ border: 1px solid rgba(0, 0, 0, 0.04);
+ border-radius: 3px;
+}
+
+#submitCommentButton,
+#submitCommentButtonReply {
+ background-color: #fff;
+ border: 1px solid #03a87c;
+ color: #03a87c;
+ border-radius: 3px;
+ padding: 5px 10px;
+ transition: all 0.1s;
+}
+
+#submitCommentButton:hover,
+#submitCommentButtonReply:hover {
+ background-color: #fff;
+ border-color: #018f69;
+ color: #018f69;
+}
+
+.article__toolbar {
+ box-shadow: 0 0 1px rgba(0, 0, 0, 0.54);
+ position: fixed;
+ bottom: -44px;
+ width: 100%;
+ background-color: #fff;
+ height: 44px;
+ font-size: 16px;
+ line-height: 44px;
+ transition: all 0.1s;
+ opacity: 0
+}
+
+.article__toolbar .wrapper {
+ max-width: 740px
+}
+
+.article__toolbar svg {
+ height: 20px;
+ width: 20px;
+ vertical-align: middle
+}
+
+.article__toolbar .fn-right {
+ position: absolute;
+ top: 0;
+ right: 20px
+}
+
+.article__toolbar .article__code {
+ position: absolute;
+ height: 130px;
+ width: 130px;
+ left: 50px;
+ bottom: 30px
+}
+
+.article__next {
+ border-left: 1px solid rgba(0, 0, 0, 0.38);
+ line-height: 14px;
+ margin-top: 7px;
+ color: rgba(0, 0, 0, 0.84);
+ font-size: 18px;
+ display: inline-block;
+ padding-left: 20px;
+ margin-left: 20px;
+ transition: all .2s;
+ float: right;
+}
+
+.article__next:hover {
+ text-decoration: none;
+ color: rgba(0, 0, 0, 0.54);
+}
+
+.pagination {
+ margin-top: 30px;
+ font-size: 16px;
+ border-top: 1px solid rgba(0, 0, 0, 0.15)
+}
+
+.pagination__item {
+ text-align: center;
+ border-top: 1px solid transparent;
+ transition: all 0.1s;
+ display: inline-block;
+ position: relative;
+ top: -1px;
+ margin: 0 10px;
+ padding: 0 10px;
+ line-height: 30px;
+ color: rgba(0, 0, 0, 0.54)
+}
+
+.pagination__item:hover {
+ border-top-color: rgba(0, 0, 0, 0.54);
+ color: rgba(0, 0, 0, 0.84);
+ text-decoration: none
+}
+
+.pagination__item--active {
+ background: rgba(0, 0, 0, 0.05);
+ border-top-color: rgba(0, 0, 0, 0.54)
+}
+
+.pagination__item--active:hover {
+ color: rgba(0, 0, 0, 0.54);
+ border-top-color: rgba(0, 0, 0, 0.54)
+}
+
+.pagination__item:first-child {
+ margin-left: 0
+}
+
+.pagination__item:last-child {
+ margin-right: 0
+}
+
+.pagination__omit {
+ top: -5px;
+ margin: 0;
+ border: 0;
+ padding: 0;
+ color: #ccc
+}
+
+.page__item {
+ display: block;
+ border-bottom: 1px solid rgba(0,0,0,0.05);
+ padding: 40px 0 35px
+}
+
+
+@media (max-width: 768px) {
+ .header {
+ text-align:left
+ }
+
+ .header__logo,
+ .post__side,.article__next,#articleBottomShare,#articleShare,
+ .article__comment .comment__avatar {
+ display: none
+ }
+
+ .post {
+ margin: 50px 20px 20px
+ }
+
+ .article__toolbar {
+ padding-left: 20px;
+ box-sizing: border-box
+ }
+
+ .article__item {
+ width: 100%;
+ margin-bottom: 20px
+ }
+
+ .article__wrap {
+ margin: 0
+ }
+
+ .article__comment {
+ width: 100%
+ }
+
+ .article__main {
+ height: auto !important
+ }
+
+ .footer .fn-right {
+ float: none
+ }
+
+ .footer__tag {
+ display: block
+ }
+
+ .footer__tag>div {
+ margin: 0 0 50px
+ }
+
+ .footer__tag>div:last-child {
+ margin: 0
+ }
+
+ .pagination__item {
+ margin: 0
+ }
+
+ .emotions span {
+ margin: 0;
+ transform: scale(0.7);
+ }
+
+ .article__comment .comment__body {
+ padding-left: 0;
+ }
+}
diff --git a/skins/Medium/css/base.min.css b/skins/Medium/css/base.min.css
new file mode 100644
index 0000000..2c8c537
--- /dev/null
+++ b/skins/Medium/css/base.min.css
@@ -0,0 +1,16 @@
+/**
+ * Copyright (c) 2010-2018, b3log.org & hacpai.com
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+blockquote,body,dd,dl,h1,h2,h3,h4,h5,h6,ol,p,ul{margin:0}.content-reset,body,button,input,select,textarea{font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif}.ft-green,.header,.header__a,.header__icon,.post__view,.tag{transition:all .1s}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;height:100%}body{-webkit-font-smoothing:antialiased}::-moz-selection{text-shadow:none;background:rgba(65,131,196,.4)}::selection{text-shadow:none;background:rgba(66,133,244,.4)}ol,ul{padding: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;color:#4285f4}a:hover{text-decoration:underline}sub,sup{position:relative;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}button,input,select,textarea{margin:0;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]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;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.5;font-size:16px;word-break:break-all}.content-reset ol,.content-reset ul{padding-left:2em;margin-top:0;margin-bottom:16px}.content-reset li{margin-top:.25em}.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:2em}.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 #ccc}.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)}.board,.header,.pagination__item,.post__side{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;color:#d23f31;font-family:mononoki,Consolas,"Liberation Mono",Menlo,Courier,monospace}.content-reset pre>code{padding:.5em;color:#333;background-color:rgba(0,0,0,.04);background-image:url(../images/code-bg.png);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 #ccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.ft-12,.tag{font-weight:400}.fn-flex{display:flex}.fn-flex-1{flex:1;min-width:1px}.fn-clear:after,.fn-clear:before{display:table;content:""}.fn-clear:after{clear:both}.fn-left{float:left}.fn-right{float:right}.ft-12{font-size:12px}.ft-gray{color:rgba(0,0,0,.54)}.ft-fade{color:rgba(0,0,0,.38)}.ft-green{color:#03a87c!important}.ft-green:hover{color:#018f69!important}.pipe-tooltipped{position:relative;cursor:pointer}.pipe-tooltipped::after,.pipe-tooltipped::before{position:absolute;display:none;pointer-events:none;opacity:0}.pipe-tooltipped::after{z-index:1000;padding:5px 8px;font-size:11px;font-weight:400;color:#fff;text-align:center;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}.pipe-tooltipped::before{z-index:1000001;width:0;height:0;color:rgba(0,0,0,.8);content:"";border:5px solid transparent}.header h1,.header__icon.avatar,.tag{display:inline-block}.tag,.tag:hover{color:rgba(0,0,0,.68)}@keyframes tooltip-appear{from{opacity:0}to{opacity:1}}.pipe-tooltipped:active::after,.pipe-tooltipped:active::before,.pipe-tooltipped:focus::after,.pipe-tooltipped:focus::before,.pipe-tooltipped:hover::after,.pipe-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}.pipe-tooltipped--s::after,.pipe-tooltipped--se::after,.pipe-tooltipped--sw::after{top:100%;right:50%;margin-top:5px}.pipe-tooltipped--s::before,.pipe-tooltipped--se::before,.pipe-tooltipped--sw::before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.pipe-tooltipped--se::after{right:auto;left:50%;margin-left:-15px}.pipe-tooltipped--sw::after{margin-right:-15px}.pipe-tooltipped--n::after,.pipe-tooltipped--ne::after,.pipe-tooltipped--nw::after{right:50%;bottom:100%;margin-bottom:5px}.pipe-tooltipped--n::before,.pipe-tooltipped--ne::before,.pipe-tooltipped--nw::before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.pipe-tooltipped--ne::after{right:auto;left:50%;margin-left:-15px}.pipe-tooltipped--nw::after{margin-right:-15px}.pipe-tooltipped--n::after,.pipe-tooltipped--s::after{transform:translateX(50%)}.pipe-tooltipped--w::after{right:100%;bottom:50%;margin-right:5px;transform:translateY(50%)}.pipe-tooltipped--w::before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.pipe-tooltipped--e::after{bottom:50%;left:100%;margin-left:5px;transform:translateY(50%)}.pipe-tooltipped--e::before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.tag{background-color:rgba(0,0,0,.05);padding:5px 10px;line-height:22px;border-radius:3px;white-space:nowrap;margin:0 8px 8px 0;font-size:15px}.tag__level0,.tag__level1,.tag__level2,.tag__level3,.tag__level4{line-height:inherit}.tag:hover{text-decoration:none;background:rgba(0,0,0,.1)}.header__icon.avatar,.header__logo{background-size:cover;background-repeat:no-repeat;background-position:center center}.tag__level0{font-size:12px;color:rgba(0,0,0,.38)}.tag__level1{font-size:16px;color:rgba(0,0,0,.54)}.tag__level2{font-size:21px;color:#6f6f6f}.tag__level3{font-size:24px;color:#3b3e43}.tag__level4{font-size:30px;color:#000}.module__title{border-bottom:1px solid rgba(0,0,0,.15);margin-bottom:25px;line-height:26px;font-size:22px;position:relative;height:46px}.module__title>span{border-bottom:1px solid rgba(0,0,0,.54);position:absolute;padding-bottom:20px;height:26px}.header--fixed,.header__nav--fixed{position:fixed;background-color:#fff;box-shadow:0 2px 2px -2px rgba(0,0,0,.15)}.header,.header__nav{padding:0 20px;box-sizing:border-box}.wrapper{max-width:1000px;margin:0 auto;box-sizing:border-box}.article__toolbar .wrapper,.post{max-width:740px}.header{height:64px;z-index:11}.header h1{line-height:61px}.header--fixed{width:100%;top:-64px}.header__logo{float:left;height:32px;width:32px;margin:16px 0}.header__title{font-size:26px;color:rgba(0,0,0,.84)}.header__title:hover{text-decoration:none}.header__icon{color:rgba(0,0,0,.54);text-decoration:none;width:25px;margin-left:10px;float:left;margin-top:25px}.header__icon:hover{text-decoration:none;color:rgba(0,0,0,.68)}.header__icon svg{height:16px;width:16px}.header__icon.avatar{height:32px;width:32px;border-radius:16px;margin-top:16px;margin-left:14px}.header__a{color:#03a87c;font-size:16px;float:left;margin:16px 0 0 16px;line-height:32px}.footer,.footer__tag{margin-top:50px}.header__a:hover{text-decoration:none;color:#018f69;border-color:#018f69}.header__nav{height:50px}.header__nav .wrapper{overflow:auto;word-wrap:normal;white-space:nowrap}.header__nav .wrapper::-webkit-scrollbar{display:none}.header__nav a{color:rgba(0,0,0,.76);font-size:15px;padding:0 10px;line-height:50px;text-decoration:none}.header__nav a img{height:16px;width:16px;vertical-align:text-top}.header__nav a:first-child{padding-left:0}.header__nav--fixed{z-index:11;width:100%;top:0}.post,.post__share #articleShare{position:relative}.article__item--big,.article__item--small{width:318px;margin-right:20px}.footer{padding:10px 20px 25px;font-size:14px;border-top:1px solid rgba(0,0,0,.05);color:rgba(0,0,0,.38)}.footer a,.footer__tag li a{color:rgba(0,0,0,.54)}.footer__tag>div{margin-right:20px}.footer__tag>div:last-child{margin-right:0}.footer__tag li{list-style:none}.footer__tag li a{display:block;line-height:30px;word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 25px}.footer__tag li a:hover{color:rgba(0,0,0,.68)}.main{margin:50px 20px 0}.main .content{margin-top:50px}.board{padding:12px 0}.article__wrap{margin-right:-20px}.article__item{border:1px solid rgba(0,0,0,.1);border-radius:2px;margin-bottom:20px;float:left}.article__item--big .article__main{height:275px;overflow:hidden;margin-bottom:10px}.article__item--small .article__main{height:94px;overflow:hidden;margin-bottom:10px}.article__item--mid{width:488px;margin-right:20px}.article__item--mid .article__main{height:195px;overflow:hidden;margin-bottom:10px}.article__panel{padding:16px}.article__title{overflow:hidden;line-height:24px;font-size:21px;font-weight:600;word-break:break-all}.article__title a{color:rgba(0,0,0,.84)}.article__title a:hover{text-decoration:none}.article__title sup{top:-6px;font-size:12px;color:#03a87c}.article__content{margin-top:4px;font-size:16px;color:rgba(0,0,0,.54);overflow:hidden;line-height:23px;word-break:break-all}.article__meta{font-size:15px;line-height:23px}.b3-solo-list{display:none}.post{margin:50px auto 20px}.post__main{margin:20px 0 0}.post__title{font-weight:700;font-size:42px;margin:0 -20px 10px;word-break:break-all}.post__title sup{font-size:16px;top:-20px;color:#03a87c}.post__tags{padding:4px 0 22px;border-bottom:1px solid rgba(0,0,0,.05)}.post__share{padding:20px 0;margin-bottom:20px;font-size:16px}.post__share svg{height:20px;width:20px;vertical-align:bottom}.post__share #articleShare .article__code{position:absolute;height:130px;width:130px;left:-2px;top:22px}.post__share-icon{color:rgba(0,0,0,.54);cursor:pointer}.post__share-icon:hover{color:rgba(0,0,0,.68)}.post__view{color:#03a87c}.post__view:hover{color:#018f69;text-decoration:none}.post__side{position:fixed;top:50%;left:10%;width:55px;font-size:16px;margin-top:-125px;transition:opacity .1s;opacity:0}.post__side svg{height:25px;width:25px}.post__side .ft-green svg{height:55px;width:55px;vertical-align:bottom;margin-bottom:10px}.post__side .article__code{position:absolute;height:130px;width:130px;left:45px;top:90px}#articleSideShare{width:26px;margin:0 auto}.article__bottom{background-color:#fafafa;padding:40px 20px}.article__bottom .footer__tag{margin-bottom:50px}.article__comment{width:640px;margin:45px auto 0;position:relative}.article__comment .comment__title{font-size:16px;margin-bottom:15px;color:rgba(0,0,0,.68)}.article__comment .comment__item{background-color:#fff;box-shadow:rgba(0,0,0,.04) 0 1px 4px;border:1px solid rgba(0,0,0,.09);border-radius:3px;padding:10px 20px;margin:0 0 20px}.article__comment .comment__avatar{position:absolute;height:57px;width:57px;display:inline-block;z-index:10;border:2px solid #fff;border-radius:50%}.article__comment .comment__body{padding-left:81px}.article__comment .comment__body svg.ft-gray{height:12px;width:12px;vertical-align:text-top;margin-left:5px}.article__comment .comment__user,.article__comment .comment__user a{color:#03a87c}.article__comment .comment__user a:hover{color:#018f69;text-decoration:none}.comment-body-ref{position:absolute;width:559px;box-sizing:border-box;left:101px}.comment-body-ref .ft-green{display:none}.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:10px;margin-bottom:5px;width:24px;transition:all .2s ease-out;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out}#emotions 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}#commentForm,#replyForm{width:100%}#replyForm{margin-top:20px}.comment__textarea{background-color:#fff;box-shadow:rgba(0,0,0,.04) 0 1px 4px;border:1px solid rgba(0,0,0,.09);border-radius:3px;padding:10px;margin:0 0 5px;width:100%;box-sizing:border-box}.captcha{height:35px;margin:-5px 0 0 7px;border:1px solid rgba(0,0,0,.04);border-radius:3px}#submitCommentButton,#submitCommentButtonReply{background-color:#fff;border:1px solid #03a87c;color:#03a87c;border-radius:3px;padding:5px 10px;transition:all .1s}#submitCommentButton:hover,#submitCommentButtonReply:hover{background-color:#fff;border-color:#018f69;color:#018f69}.article__toolbar{box-shadow:0 0 1px rgba(0,0,0,.54);position:fixed;bottom:-44px;width:100%;background-color:#fff;height:44px;font-size:16px;line-height:44px;transition:all .1s;opacity:0}.article__toolbar svg{height:20px;width:20px;vertical-align:middle}.article__toolbar .fn-right{position:absolute;top:0;right:20px}.article__toolbar .article__code{position:absolute;height:130px;width:130px;left:50px;bottom:30px}.article__next{border-left:1px solid rgba(0,0,0,.38);line-height:14px;margin-top:7px;color:rgba(0,0,0,.84);font-size:18px;display:inline-block;padding-left:20px;margin-left:20px;transition:all .2s;float:right}.article__next:hover{text-decoration:none;color:rgba(0,0,0,.54)}.pagination{margin-top:30px;font-size:16px;border-top:1px solid rgba(0,0,0,.15)}.pagination__item{border-top:1px solid transparent;transition:all .1s;display:inline-block;position:relative;top:-1px;margin:0 10px;padding:0 10px;line-height:30px;color:rgba(0,0,0,.54)}.pagination__item:hover{border-top-color:rgba(0,0,0,.54);color:rgba(0,0,0,.84);text-decoration:none}.pagination__item--active{background:rgba(0,0,0,.05);border-top-color:rgba(0,0,0,.54)}.pagination__item--active:hover{color:rgba(0,0,0,.54);border-top-color:rgba(0,0,0,.54)}.pagination__item:first-child{margin-left:0}.pagination__item:last-child{margin-right:0}.pagination__omit{top:-5px;margin:0;border:0;padding:0;color:#ccc}.page__item{display:block;border-bottom:1px solid rgba(0,0,0,.05);padding:40px 0 35px}@media (max-width:768px){.header{text-align:left}#articleBottomShare,#articleShare,.article__comment .comment__avatar,.article__next,.header__logo,.post__side{display:none}.post{margin:50px 20px 20px}.article__toolbar{padding-left:20px;box-sizing:border-box}.article__item{width:100%;margin-bottom:20px}.article__wrap{margin:0}.article__comment{width:100%}.article__main{height:auto!important}.footer .fn-right{float:none}.footer__tag{display:block}.footer__tag>div{margin:0 0 50px}.footer__tag>div:last-child,.pagination__item{margin:0}.emotions span{margin:0;transform:scale(.7)}.article__comment .comment__body{padding-left:0}}
\ No newline at end of file
diff --git a/skins/Medium/css/selection.json b/skins/Medium/css/selection.json
new file mode 100755
index 0000000..8f73557
--- /dev/null
+++ b/skins/Medium/css/selection.json
@@ -0,0 +1,524 @@
+{
+ "IcoMoonType": "selection",
+ "icons": [
+ {
+ "icon": {
+ "paths": [
+ "M219.429 804.571c0 60.571-49.143 109.714-109.714 109.714s-109.714-49.143-109.714-109.714 49.143-109.714 109.714-109.714 109.714 49.143 109.714 109.714zM219.429 512c0 60.571-49.143 109.714-109.714 109.714s-109.714-49.143-109.714-109.714 49.143-109.714 109.714-109.714 109.714 49.143 109.714 109.714zM1024 749.714v109.714c0 9.714-8.571 18.286-18.286 18.286h-694.857c-9.714 0-18.286-8.571-18.286-18.286v-109.714c0-9.714 8.571-18.286 18.286-18.286h694.857c9.714 0 18.286 8.571 18.286 18.286zM219.429 219.429c0 60.571-49.143 109.714-109.714 109.714s-109.714-49.143-109.714-109.714 49.143-109.714 109.714-109.714 109.714 49.143 109.714 109.714zM1024 457.143v109.714c0 9.714-8.571 18.286-18.286 18.286h-694.857c-9.714 0-18.286-8.571-18.286-18.286v-109.714c0-9.714 8.571-18.286 18.286-18.286h694.857c9.714 0 18.286 8.571 18.286 18.286zM1024 164.571v109.714c0 9.714-8.571 18.286-18.286 18.286h-694.857c-9.714 0-18.286-8.571-18.286-18.286v-109.714c0-9.714 8.571-18.286 18.286-18.286h694.857c9.714 0 18.286 8.571 18.286 18.286z"
+ ],
+ "width": 1024,
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "list-ul"
+ ],
+ "defaultCode": 61642,
+ "grid": 14
+ },
+ "attrs": [],
+ "properties": {
+ "name": "list",
+ "id": 6,
+ "order": 3,
+ "prevSize": 28,
+ "code": 61642
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 0
+ },
+ {
+ "icon": {
+ "paths": [
+ "M804.571 566.857v274.286c0 20-16.571 36.571-36.571 36.571h-219.429v-219.429h-146.286v219.429h-219.429c-20 0-36.571-16.571-36.571-36.571v-274.286c0-1.143 0.571-2.286 0.571-3.429l328.571-270.857 328.571 270.857c0.571 1.143 0.571 2.286 0.571 3.429zM932 527.429l-35.429 42.286c-2.857 3.429-7.429 5.714-12 6.286h-1.714c-4.571 0-8.571-1.143-12-4l-395.429-329.714-395.429 329.714c-4 2.857-8.571 4.571-13.714 4-4.571-0.571-9.143-2.857-12-6.286l-35.429-42.286c-6.286-7.429-5.143-19.429 2.286-25.714l410.857-342.286c24-20 62.857-20 86.857 0l139.429 116.571v-111.429c0-10.286 8-18.286 18.286-18.286h109.714c10.286 0 18.286 8 18.286 18.286v233.143l125.143 104c7.429 6.286 8.571 18.286 2.286 25.714z"
+ ],
+ "width": 950.8571428571428,
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "home"
+ ],
+ "defaultCode": 61461,
+ "grid": 14
+ },
+ "attrs": [],
+ "properties": {
+ "name": "home",
+ "id": 7,
+ "order": 4,
+ "prevSize": 28,
+ "code": 61461
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 1
+ },
+ {
+ "icon": {
+ "paths": [
+ "M402.286 219.429c-178.286 0-329.143 100.571-329.143 219.429 0 62.857 42.286 123.429 115.429 165.714l55.429 32-20 48c12-6.857 24-14.286 35.429-22.286l25.143-17.714 30.286 5.714c28.571 5.143 57.714 8 87.429 8 178.286 0 329.143-100.571 329.143-219.429s-150.857-219.429-329.143-219.429zM402.286 146.286c222.286 0 402.286 130.857 402.286 292.571s-180 292.571-402.286 292.571c-34.857 0-68.571-3.429-100.571-9.143-47.429 33.714-101.143 58.286-158.857 73.143-15.429 4-32 6.857-49.143 9.143h-1.714c-8.571 0-16.571-6.857-18.286-16.571v0c-2.286-10.857 5.143-17.714 11.429-25.143 22.286-25.143 47.429-47.429 66.857-94.857-92.571-53.714-152-136.571-152-229.143 0-161.714 180-292.571 402.286-292.571zM872 814.286c19.429 47.429 44.571 69.714 66.857 94.857 6.286 7.429 13.714 14.286 11.429 25.143v0c-2.286 10.286-10.857 17.714-20 16.571-17.143-2.286-33.714-5.143-49.143-9.143-57.714-14.857-111.429-39.429-158.857-73.143-32 5.714-65.714 9.143-100.571 9.143-103.429 0-198.286-28.571-269.714-75.429 16.571 1.143 33.714 2.286 50.286 2.286 122.857 0 238.857-35.429 327.429-99.429 95.429-69.714 148-164 148-266.286 0-29.714-4.571-58.857-13.143-86.857 96.571 53.143 159.429 137.714 159.429 233.143 0 93.143-59.429 175.429-152 229.143z"
+ ],
+ "width": 1024,
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "comments-o"
+ ],
+ "defaultCode": 61670,
+ "grid": 14
+ },
+ "attrs": [],
+ "properties": {
+ "name": "comments",
+ "id": 8,
+ "order": 5,
+ "prevSize": 28,
+ "code": 61670
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 2
+ },
+ {
+ "icon": {
+ "paths": [
+ "M73.143 950.857h164.571v-164.571h-164.571v164.571zM274.286 950.857h182.857v-164.571h-182.857v164.571zM73.143 749.714h164.571v-182.857h-164.571v182.857zM274.286 749.714h182.857v-182.857h-182.857v182.857zM73.143 530.286h164.571v-164.571h-164.571v164.571zM493.714 950.857h182.857v-164.571h-182.857v164.571zM274.286 530.286h182.857v-164.571h-182.857v164.571zM713.143 950.857h164.571v-164.571h-164.571v164.571zM493.714 749.714h182.857v-182.857h-182.857v182.857zM292.571 256v-164.571c0-9.714-8.571-18.286-18.286-18.286h-36.571c-9.714 0-18.286 8.571-18.286 18.286v164.571c0 9.714 8.571 18.286 18.286 18.286h36.571c9.714 0 18.286-8.571 18.286-18.286zM713.143 749.714h164.571v-182.857h-164.571v182.857zM493.714 530.286h182.857v-164.571h-182.857v164.571zM713.143 530.286h164.571v-164.571h-164.571v164.571zM731.429 256v-164.571c0-9.714-8.571-18.286-18.286-18.286h-36.571c-9.714 0-18.286 8.571-18.286 18.286v164.571c0 9.714 8.571 18.286 18.286 18.286h36.571c9.714 0 18.286-8.571 18.286-18.286zM950.857 219.429v731.429c0 40-33.143 73.143-73.143 73.143h-804.571c-40 0-73.143-33.143-73.143-73.143v-731.429c0-40 33.143-73.143 73.143-73.143h73.143v-54.857c0-50.286 41.143-91.429 91.429-91.429h36.571c50.286 0 91.429 41.143 91.429 91.429v54.857h219.429v-54.857c0-50.286 41.143-91.429 91.429-91.429h36.571c50.286 0 91.429 41.143 91.429 91.429v54.857h73.143c40 0 73.143 33.143 73.143 73.143z"
+ ],
+ "width": 950.8571428571428,
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "calendar"
+ ],
+ "defaultCode": 61555,
+ "grid": 14
+ },
+ "attrs": [],
+ "properties": {
+ "name": "date",
+ "id": 9,
+ "order": 6,
+ "prevSize": 28,
+ "code": 61555
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 3
+ },
+ {
+ "icon": {
+ "paths": [
+ "M658.286 475.429c0-141.143-114.857-256-256-256s-256 114.857-256 256 114.857 256 256 256 256-114.857 256-256zM950.857 950.857c0 40-33.143 73.143-73.143 73.143-19.429 0-38.286-8-51.429-21.714l-196-195.429c-66.857 46.286-146.857 70.857-228 70.857-222.286 0-402.286-180-402.286-402.286s180-402.286 402.286-402.286 402.286 180 402.286 402.286c0 81.143-24.571 161.143-70.857 228l196 196c13.143 13.143 21.143 32 21.143 51.429z"
+ ],
+ "width": 950.8571428571428,
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "search"
+ ],
+ "defaultCode": 61442,
+ "grid": 14
+ },
+ "attrs": [],
+ "properties": {
+ "name": "search",
+ "id": 10,
+ "order": 7,
+ "prevSize": 28,
+ "code": 61442
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 4
+ },
+ {
+ "icon": {
+ "paths": [
+ "M961.714 760.571l-94.857 94.286c-14.286 14.286-37.143 14.286-51.429 0l-303.429-303.429-303.429 303.429c-14.286 14.286-37.143 14.286-51.429 0l-94.857-94.286c-14.286-14.286-14.286-37.714 0-52l424-423.429c14.286-14.286 37.143-14.286 51.429 0l424 423.429c14.286 14.286 14.286 37.714 0 52z"
+ ],
+ "width": 1024,
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "chevron-up"
+ ],
+ "defaultCode": 61559,
+ "grid": 14
+ },
+ "attrs": [],
+ "properties": {
+ "name": "up",
+ "id": 11,
+ "order": 8,
+ "prevSize": 28,
+ "code": 61559
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 5
+ },
+ {
+ "icon": {
+ "paths": [
+ "M584.571 548.571h180.571c-1.143-2.857-1.714-6.286-2.857-9.143l-121.143-283.429h-404.571l-121.143 283.429c-1.143 2.857-1.714 6.286-2.857 9.143h180.571l54.286 109.714h182.857zM877.714 565.714v275.429c0 20-16.571 36.571-36.571 36.571h-804.571c-20 0-36.571-16.571-36.571-36.571v-275.429c0-20.571 6.286-50.857 14.286-70.286l136-315.429c8-18.857 30.857-33.714 50.857-33.714h475.429c20 0 42.857 14.857 50.857 33.714l136 315.429c8 19.429 14.286 49.714 14.286 70.286z"
+ ],
+ "width": 877.7142857142857,
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "inbox"
+ ],
+ "defaultCode": 61468,
+ "grid": 14
+ },
+ "attrs": [],
+ "properties": {
+ "name": "inbox",
+ "id": 12,
+ "order": 9,
+ "prevSize": 28,
+ "code": 61468
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 6
+ },
+ {
+ "icon": {
+ "paths": [
+ "M256 256c0-40.571-32.571-73.143-73.143-73.143s-73.143 32.571-73.143 73.143 32.571 73.143 73.143 73.143 73.143-32.571 73.143-73.143zM865.714 585.143c0 19.429-8 38.286-21.143 51.429l-280.571 281.143c-13.714 13.143-32.571 21.143-52 21.143s-38.286-8-51.429-21.143l-408.571-409.143c-29.143-28.571-52-84-52-124.571v-237.714c0-40 33.143-73.143 73.143-73.143h237.714c40.571 0 96 22.857 125.143 52l408.571 408c13.143 13.714 21.143 32.571 21.143 52zM1085.143 585.143c0 19.429-8 38.286-21.143 51.429l-280.571 281.143c-13.714 13.143-32.571 21.143-52 21.143-29.714 0-44.571-13.714-64-33.714l268.571-268.571c13.143-13.143 21.143-32 21.143-51.429s-8-38.286-21.143-52l-408.571-408c-29.143-29.143-84.571-52-125.143-52h128c40.571 0 96 22.857 125.143 52l408.571 408c13.143 13.714 21.143 32.571 21.143 52z"
+ ],
+ "width": 1085.1474285714285,
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "tags"
+ ],
+ "defaultCode": 61484,
+ "grid": 14
+ },
+ "attrs": [],
+ "properties": {
+ "name": "tags",
+ "id": 13,
+ "order": 10,
+ "prevSize": 28,
+ "code": 61484
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 7
+ },
+ {
+ "icon": {
+ "paths": [
+ "M832 694.857c0-14.857-5.714-28.571-16-38.857l-118.857-118.857c-10.286-10.286-24.571-16-38.857-16-16.571 0-29.714 6.286-41.143 18.286 18.857 18.857 41.143 34.857 41.143 64 0 30.286-24.571 54.857-54.857 54.857-29.143 0-45.143-22.286-64-41.143-12 11.429-18.857 24.571-18.857 41.714 0 14.286 5.714 28.571 16 38.857l117.714 118.286c10.286 10.286 24.571 15.429 38.857 15.429s28.571-5.143 38.857-14.857l84-83.429c10.286-10.286 16-24 16-38.286zM430.286 292c0-14.286-5.714-28.571-16-38.857l-117.714-118.286c-10.286-10.286-24.571-16-38.857-16s-28.571 5.714-38.857 15.429l-84 83.429c-10.286 10.286-16 24-16 38.286 0 14.857 5.714 28.571 16 38.857l118.857 118.857c10.286 10.286 24.571 15.429 38.857 15.429 16.571 0 29.714-5.714 41.143-17.714-18.857-18.857-41.143-34.857-41.143-64 0-30.286 24.571-54.857 54.857-54.857 29.143 0 45.143 22.286 64 41.143 12-11.429 18.857-24.571 18.857-41.714zM941.714 694.857c0 43.429-17.714 85.714-48.571 116l-84 83.429c-30.857 30.857-72.571 47.429-116 47.429-44 0-85.714-17.143-116.571-48.571l-117.714-118.286c-30.857-30.857-47.429-72.571-47.429-116 0-45.143 18.286-88 50.286-119.429l-50.286-50.286c-31.429 32-73.714 50.286-118.857 50.286-43.429 0-85.714-17.143-116.571-48l-118.857-118.857c-31.429-31.429-48-72.571-48-116.571 0-43.429 17.714-85.714 48.571-116l84-83.429c30.857-30.857 72.571-47.429 116-47.429 44 0 85.714 17.143 116.571 48.571l117.714 118.286c30.857 30.857 47.429 72.571 47.429 116 0 45.143-18.286 88-50.286 119.429l50.286 50.286c31.429-32 73.714-50.286 118.857-50.286 43.429 0 85.714 17.143 116.571 48l118.857 118.857c31.429 31.429 48 72.571 48 116.571z"
+ ],
+ "width": 950.8571428571428,
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "chain",
+ "link"
+ ],
+ "defaultCode": 61633,
+ "grid": 14
+ },
+ "attrs": [],
+ "properties": {
+ "name": "link",
+ "id": 14,
+ "order": 11,
+ "prevSize": 28,
+ "code": 61633
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 8
+ },
+ {
+ "icon": {
+ "paths": [
+ "M863.429 603.429c0 1.143 0 2.857-0.571 4-48.571 202.286-215.429 343.429-426.286 343.429-111.429 0-219.429-44-300.571-121.143l-73.714 73.714c-6.857 6.857-16 10.857-25.714 10.857-20 0-36.571-16.571-36.571-36.571v-256c0-20 16.571-36.571 36.571-36.571h256c20 0 36.571 16.571 36.571 36.571 0 9.714-4 18.857-10.857 25.714l-78.286 78.286c53.714 50.286 125.143 78.857 198.857 78.857 101.714 0 196-52.571 249.143-139.429 13.714-22.286 20.571-44 30.286-66.857 2.857-8 8.571-13.143 17.143-13.143h109.714c10.286 0 18.286 8.571 18.286 18.286zM877.714 146.286v256c0 20-16.571 36.571-36.571 36.571h-256c-20 0-36.571-16.571-36.571-36.571 0-9.714 4-18.857 10.857-25.714l78.857-78.857c-54.286-50.286-125.714-78.286-199.429-78.286-101.714 0-196 52.571-249.143 139.429-13.714 22.286-20.571 44-30.286 66.857-2.857 8-8.571 13.143-17.143 13.143h-113.714c-10.286 0-18.286-8.571-18.286-18.286v-4c49.143-202.857 217.714-343.429 428.571-343.429 112 0 221.143 44.571 302.286 121.143l74.286-73.714c6.857-6.857 16-10.857 25.714-10.857 20 0 36.571 16.571 36.571 36.571z"
+ ],
+ "width": 877.7142857142857,
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "refresh"
+ ],
+ "defaultCode": 61473,
+ "grid": 14
+ },
+ "attrs": [],
+ "properties": {
+ "name": "refresh",
+ "id": 15,
+ "order": 12,
+ "prevSize": 28,
+ "code": 61473
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 9
+ },
+ {
+ "icon": {
+ "paths": [
+ "M976 768h-16v-208c0-61.756-50.242-112-112-112h-272v-128h16c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-160c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h16v128h-272c-61.756 0-112 50.244-112 112v208h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h160c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-16v-192h256v192h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h160c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48h-16v-192h256v192h-16c-26.4 0-48 21.6-48 48v160c0 26.4 21.6 48 48 48h160c26.4 0 48-21.6 48-48v-160c0-26.4-21.6-48-48-48zM192 960h-128v-128h128v128zM576 960h-128v-128h128v128zM448 256v-128h128v128h-128zM960 960h-128v-128h128v128z"
+ ],
+ "tags": [
+ "tree",
+ "branches",
+ "inheritance"
+ ],
+ "defaultCode": 59836,
+ "grid": 16,
+ "attrs": []
+ },
+ "attrs": [],
+ "properties": {
+ "ligatures": "tree, branches",
+ "name": "category",
+ "order": 13,
+ "id": 16,
+ "prevSize": 32,
+ "code": 59836
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 10
+ },
+ {
+ "icon": {
+ "paths": [
+ "M768 640v-128h-320v-128h320v-128l192 192zM704 576v256h-320v192l-384-192v-832h704v320h-64v-256h-512l256 128v576h256v-192z"
+ ],
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "exit",
+ "signout",
+ "logout",
+ "quit",
+ "close"
+ ],
+ "defaultCode": 59924,
+ "grid": 16
+ },
+ "attrs": [],
+ "properties": {
+ "ligatures": "exit, signout",
+ "name": "logout",
+ "id": 0,
+ "order": 14,
+ "prevSize": 32,
+ "code": 59924
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 11
+ },
+ {
+ "icon": {
+ "paths": [
+ "M512 192c-282.784 0-512 320-512 320s229.216 320 512 320 512-320 512-320-229.216-320-512-320zM512 704c-106.016 0-192-85.984-192-192s85.984-192 192-192 192 85.984 192 192-85.984 192-192 192zM512 384c-70.688 0-128 57.312-128 128s57.312 128 128 128 128-57.312 128-128-57.312-128-128-128z"
+ ],
+ "attrs": [
+ {}
+ ],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "eye",
+ "views"
+ ],
+ "grid": 16
+ },
+ "attrs": [
+ {}
+ ],
+ "properties": {
+ "order": 15,
+ "id": 1,
+ "name": "views",
+ "prevSize": 32,
+ "code": 59648
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 12
+ },
+ {
+ "icon": {
+ "paths": [
+ "M384 736c0-151.234 95.874-280.486 230.032-330.2 16.28-36.538 25.968-77.164 25.968-117.8 0-159.058 0-288-192-288s-192 128.942-192 288c0 99.060 57.502 198.104 128 237.832v52.78c-217.102 17.748-384 124.42-384 253.388h397.306c-8.664-30.53-13.306-62.732-13.306-96z",
+ "M736 448c-159.058 0-288 128.942-288 288s128.942 288 288 288c159.056 0 288-128.942 288-288s-128.942-288-288-288zM896 768h-128v128h-64v-128h-128v-64h128v-128h64v128h128v64z"
+ ],
+ "width": 1024,
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "user-plus",
+ "user",
+ "user-add",
+ "profile",
+ "avatar",
+ "person",
+ "member"
+ ],
+ "defaultCode": 59763,
+ "grid": 16
+ },
+ "attrs": [],
+ "properties": {
+ "ligatures": "user-plus, user2",
+ "name": "register",
+ "id": 2,
+ "order": 16,
+ "prevSize": 32,
+ "code": 59763
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 13
+ },
+ {
+ "icon": {
+ "paths": [
+ "M933.79 610.25c-53.726-93.054-21.416-212.304 72.152-266.488l-100.626-174.292c-28.75 16.854-62.176 26.518-97.846 26.518-107.536 0-194.708-87.746-194.708-195.99h-201.258c0.266 33.41-8.074 67.282-25.958 98.252-53.724 93.056-173.156 124.702-266.862 70.758l-100.624 174.292c28.97 16.472 54.050 40.588 71.886 71.478 53.638 92.908 21.512 211.92-71.708 266.224l100.626 174.292c28.65-16.696 61.916-26.254 97.4-26.254 107.196 0 194.144 87.192 194.7 194.958h201.254c-0.086-33.074 8.272-66.57 25.966-97.218 53.636-92.906 172.776-124.594 266.414-71.012l100.626-174.29c-28.78-16.466-53.692-40.498-71.434-71.228zM512 719.332c-114.508 0-207.336-92.824-207.336-207.334 0-114.508 92.826-207.334 207.336-207.334 114.508 0 207.332 92.826 207.332 207.334-0.002 114.51-92.824 207.334-207.332 207.334z"
+ ],
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "cog",
+ "gear",
+ "preferences",
+ "settings",
+ "generate",
+ "control",
+ "options"
+ ],
+ "defaultCode": 59796,
+ "grid": 16
+ },
+ "attrs": [],
+ "properties": {
+ "ligatures": "cog, gear",
+ "name": "setting",
+ "id": 3,
+ "order": 17,
+ "prevSize": 32,
+ "code": 59796
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 14
+ },
+ {
+ "icon": {
+ "paths": [
+ "M384 512h-320v-128h320v-128l192 192-192 192zM1024 0v832l-384 192v-192h-384v-256h64v192h320v-576l256-128h-576v256h-64v-320z"
+ ],
+ "attrs": [],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "enter",
+ "signin",
+ "login"
+ ],
+ "defaultCode": 59923,
+ "grid": 16
+ },
+ "attrs": [],
+ "properties": {
+ "ligatures": "enter, signin",
+ "name": "login",
+ "id": 4,
+ "order": 18,
+ "prevSize": 32,
+ "code": 59923
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 15
+ },
+ {
+ "icon": {
+ "paths": [
+ "M136.294 750.93c-75.196 0-136.292 61.334-136.292 136.076 0 75.154 61.1 135.802 136.292 135.802 75.466 0 136.494-60.648 136.494-135.802-0.002-74.742-61.024-136.076-136.494-136.076zM0.156 347.93v196.258c127.784 0 247.958 49.972 338.458 140.512 90.384 90.318 140.282 211.036 140.282 339.3h197.122c-0.002-372.82-303.282-676.070-675.862-676.070zM0.388 0v196.356c455.782 0 826.756 371.334 826.756 827.644h196.856c0-564.47-459.254-1024-1023.612-1024z"
+ ],
+ "attrs": [
+ {}
+ ],
+ "isMulticolor": false,
+ "isMulticolor2": false,
+ "tags": [
+ "feed",
+ "rss",
+ "social"
+ ],
+ "grid": 16
+ },
+ "attrs": [
+ {}
+ ],
+ "properties": {
+ "order": 19,
+ "id": 5,
+ "prevSize": 32,
+ "code": 59649,
+ "name": "rss"
+ },
+ "setIdx": 0,
+ "setId": 3,
+ "iconIdx": 16
+ }
+ ],
+ "height": 1024,
+ "metadata": {
+ "name": "icomoon"
+ },
+ "preferences": {
+ "showGlyphs": true,
+ "showQuickUse": true,
+ "showQuickUse2": true,
+ "showSVGs": true,
+ "fontPref": {
+ "prefix": "icon-",
+ "metadata": {
+ "fontFamily": "icomoon"
+ },
+ "metrics": {
+ "emSize": 1024,
+ "baseline": 6.25,
+ "whitespace": 50
+ },
+ "embed": false
+ },
+ "imagePref": {
+ "prefix": "icon-",
+ "png": true,
+ "useClassSelector": true,
+ "color": 4473924,
+ "bgColor": 16777215
+ },
+ "historySize": 100,
+ "showCodes": false,
+ "gridSize": 16
+ }
+}
\ No newline at end of file
diff --git a/skins/Medium/footer.ftl b/skins/Medium/footer.ftl
new file mode 100644
index 0000000..5c21178
--- /dev/null
+++ b/skins/Medium/footer.ftl
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+${plugins}
diff --git a/skins/Medium/header.ftl b/skins/Medium/header.ftl
new file mode 100644
index 0000000..8aa5055
--- /dev/null
+++ b/skins/Medium/header.ftl
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Medium/images/code-bg.png b/skins/Medium/images/code-bg.png
new file mode 100644
index 0000000..ea1d136
Binary files /dev/null and b/skins/Medium/images/code-bg.png differ
diff --git a/skins/Medium/images/logo.png b/skins/Medium/images/logo.png
new file mode 100644
index 0000000..13d6701
Binary files /dev/null and b/skins/Medium/images/logo.png differ
diff --git a/skins/Medium/index.ftl b/skins/Medium/index.ftl
new file mode 100644
index 0000000..2a3c349
--- /dev/null
+++ b/skins/Medium/index.ftl
@@ -0,0 +1,30 @@
+<#include "macro-head.ftl">
+
+
+
+<@head title="${blogTitle}">
+ <#if metaKeywords??>
+
+ #if>
+ <#if metaDescription??>
+
+ #if>
+@head>
+
+
+<#include "header.ftl">
+<#include "nav.ftl">
+
+ <#if noticeBoard??>
+
+ ${noticeBoard}
+
+ #if>
+
+ <#include "article-list.ftl">
+
+ <#include "bottom2.ftl">
+
+<#include "footer.ftl">
+
+
\ No newline at end of file
diff --git a/skins/Medium/js/common.js b/skins/Medium/js/common.js
new file mode 100644
index 0000000..1280d8a
--- /dev/null
+++ b/skins/Medium/js/common.js
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2010-2018, b3log.org & hacpai.com
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @fileoverview util and every page should be used.
+ *
+ * @author
Liyuan Li
+ * @version 0.1.0.0, Jan 29, 2018
+ */
+
+/**
+ * @description 皮肤脚本
+ * @static
+ */
+var Skin = {
+ init: function () {
+ $('body').on('click', '.content-reset img', function () {
+ window.open(this.src);
+ });
+
+ $(window).scroll(function () {
+ if ($('#headerNav').length === 0) {
+ return
+ }
+ if ($(window).scrollTop() > 64) {
+ $('#headerNav').addClass('header__nav--fixed');
+ $('.main').css('margin-top', '100px');
+ } else {
+ $('#headerNav').removeClass('header__nav--fixed');
+ $('.main').css('margin-top', '50px');
+ }
+ });
+ $(window).scroll();
+ },
+ initArticle: function () {
+ Skin._share('#articleShare')
+ Skin._share('#articleSideShare')
+ Skin._share('#articleBottomShare')
+
+ var $postSide = $('.post__side')
+ if ($(window).height() >= $('.post').height()) {
+ $postSide.css('opacity', 1)
+ }
+ $postSide.css('left', (($('.post').offset().left - 20) / 2 - 27) + 'px')
+
+ var sideAbsoluteTop = ($(window).height() - 249) / 2 + 125
+ var beforScrollTop = $(window).scrollTop()
+ $(window).scroll(function () {
+ var scrollTop = $(window).scrollTop()
+ var bottomTop = $('.article__bottom').offset().top
+ if (scrollTop > 65) {
+ $postSide.css('opacity', 1)
+
+ if (beforScrollTop - scrollTop > 0) {
+ // up
+ $('.header').addClass('header--fixed').css({'top': '0'})
+ $('.main').css('padding-top', '64px')
+ if ($(window).height() <= $('.post').height() && scrollTop < bottomTop - $(window).height()) {
+ $('.article__toolbar').css({
+ 'bottom': 0,
+ 'opacity': 1
+ })
+ }
+ } else if (beforScrollTop - scrollTop < 0) {
+ // down
+ $('.header').css({'top': '-64px'}).removeClass('header--fixed')
+ $('.main').css('padding-top', '0')
+ $('.article__toolbar').css({
+ 'bottom': '-44px',
+ 'opacity': 0
+ })
+ }
+
+ } else {
+ if ($(window).height() <= $('.post').height()) {
+ $postSide.css('opacity', 0)
+ }
+
+ $('.header').removeClass('header--fixed').css('top', '-64px')
+ $('.main').css('padding-top', '0')
+ }
+
+ if (scrollTop > bottomTop - $(window).height()) {
+ if (bottomTop < $(window).height()) {
+ $postSide.css({
+ 'position': 'absolute',
+ 'top': (bottomTop - 125) + 'px'
+ })
+ } else {
+ $postSide.css({
+ 'position': 'absolute',
+ 'top': (bottomTop - sideAbsoluteTop) + 'px'
+ })
+ }
+ } else {
+ $postSide.css({
+ 'position': 'fixed',
+ 'top': '50%'
+ })
+ }
+
+ beforScrollTop = scrollTop
+ })
+
+ $(window).scroll()
+ },
+ _share: function (id) {
+ var $this = $(id)
+ var $qrCode = $this.find('.article__code')
+ var shareURL = $qrCode.data('url')
+ var avatarURL = $qrCode.data('avatar')
+ var title = encodeURIComponent($qrCode.data('title') + ' - ' + $qrCode.data('blogtitle')),
+ url = encodeURIComponent(shareURL)
+
+ var urls = {}
+ urls.tencent = 'http://share.v.t.qq.com/index.php?c=share&a=index&title=' + title +
+ '&url=' + url + '&pic=' + avatarURL
+ urls.weibo = 'http://v.t.sina.com.cn/share/share.php?title=' +
+ title + '&url=' + url + '&pic=' + avatarURL
+ urls.google = 'https://plus.google.com/share?url=' + url
+ urls.twitter = 'https://twitter.com/intent/tweet?status=' + title + ' ' + url
+
+ $this.find('span').click(function () {
+ var key = $(this).data('type')
+
+ if (!key) {
+ return
+ }
+
+ if (key === 'wechat') {
+ if ($qrCode.find('canvas').length === 0) {
+ $qrCode.qrcode({
+ width: 128,
+ height: 128,
+ text: shareURL
+ });
+ } else {
+ $qrCode.slideToggle();
+ }
+ return false;
+ }
+
+ window.open(urls[key], '_blank', 'top=100,left=200,width=648,height=618')
+ })
+ }
+};
+Skin.init();
\ No newline at end of file
diff --git a/skins/Medium/js/common.min.js b/skins/Medium/js/common.min.js
new file mode 100644
index 0000000..ec7b472
--- /dev/null
+++ b/skins/Medium/js/common.min.js
@@ -0,0 +1,16 @@
+/*
+ * Copyright (c) 2010-2018, b3log.org & hacpai.com
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var Skin={init:function(){$("body").on("click",".content-reset img",function(){window.open(this.src)}),$(window).scroll(function(){0!==$("#headerNav").length&&($(window).scrollTop()>64?($("#headerNav").addClass("header__nav--fixed"),$(".main").css("margin-top","100px")):($("#headerNav").removeClass("header__nav--fixed"),$(".main").css("margin-top","50px")))}),$(window).scroll()},initArticle:function(){Skin._share("#articleShare"),Skin._share("#articleSideShare"),Skin._share("#articleBottomShare");var t=$(".post__side");$(window).height()>=$(".post").height()&&t.css("opacity",1),t.css("left",($(".post").offset().left-20)/2-27+"px");var e=($(window).height()-249)/2+125,i=$(window).scrollTop();$(window).scroll(function(){var o=$(window).scrollTop(),a=$(".article__bottom").offset().top;o>65?(t.css("opacity",1),i-o>0?($(".header").addClass("header--fixed").css({top:"0"}),$(".main").css("padding-top","64px"),$(window).height()<=$(".post").height()&&o
a-$(window).height()?a<$(window).height()?t.css({position:"absolute",top:a-125+"px"}):t.css({position:"absolute",top:a-e+"px"}):t.css({position:"fixed",top:"50%"}),i=o}),$(window).scroll()},_share:function(t){var e=$(t),i=e.find(".article__code"),o=i.data("url"),a=i.data("avatar"),s=encodeURIComponent(i.data("title")+" - "+i.data("blogtitle")),n=encodeURIComponent(o),c={};c.tencent="http://share.v.t.qq.com/index.php?c=share&a=index&title="+s+"&url="+n+"&pic="+a,c.weibo="http://v.t.sina.com.cn/share/share.php?title="+s+"&url="+n+"&pic="+a,c.google="https://plus.google.com/share?url="+n,c.twitter="https://twitter.com/intent/tweet?status="+s+" "+n,e.find("span").click(function(){var t=$(this).data("type");if(t)return"wechat"===t?(0===i.find("canvas").length?i.qrcode({width:128,height:128,text:o}):i.slideToggle(),!1):void window.open(c[t],"_blank","top=100,left=200,width=648,height=618")})}};Skin.init();
\ No newline at end of file
diff --git a/skins/Medium/js/jquery.qrcode.js b/skins/Medium/js/jquery.qrcode.js
new file mode 100644
index 0000000..fe9680e
--- /dev/null
+++ b/skins/Medium/js/jquery.qrcode.js
@@ -0,0 +1,28 @@
+(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=0;this.dataCache=null;this.dataList=[]}function q(a,c){if(void 0==a.length)throw Error(a.length+"/"+c);for(var d=0;da||this.moduleCount<=a||0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var a=1,a=1;40>a;a++){for(var c=p.getRSBlocks(a,this.errorCorrectLevel),d=new t,b=0,e=0;e=d;d++)if(!(-1>=a+d||this.moduleCount<=a+d))for(var b=-1;7>=b;b++)-1>=c+b||this.moduleCount<=c+b||(this.modules[a+d][c+b]=
+0<=d&&6>=d&&(0==b||6==b)||0<=b&&6>=b&&(0==d||6==d)||2<=d&&4>=d&&2<=b&&4>=b?!0:!1)},getBestMaskPattern:function(){for(var a=0,c=0,d=0;8>d;d++){this.makeImpl(!0,d);var b=j.getLostPoint(this);if(0==d||a>b)a=b,c=d}return c},createMovieClip:function(a,c,d){a=a.createEmptyMovieClip(c,d);this.make();for(c=0;c=f;f++)for(var i=-2;2>=i;i++)this.modules[b+f][e+i]=-2==f||2==f||-2==i||2==i||0==f&&0==i?!0:!1}},setupTypeNumber:function(a){for(var c=
+j.getBCHTypeNumber(this.typeNumber),d=0;18>d;d++){var b=!a&&1==(c>>d&1);this.modules[Math.floor(d/3)][d%3+this.moduleCount-8-3]=b}for(d=0;18>d;d++)b=!a&&1==(c>>d&1),this.modules[d%3+this.moduleCount-8-3][Math.floor(d/3)]=b},setupTypeInfo:function(a,c){for(var d=j.getBCHTypeInfo(this.errorCorrectLevel<<3|c),b=0;15>b;b++){var e=!a&&1==(d>>b&1);6>b?this.modules[b][8]=e:8>b?this.modules[b+1][8]=e:this.modules[this.moduleCount-15+b][8]=e}for(b=0;15>b;b++)e=!a&&1==(d>>b&1),8>b?this.modules[8][this.moduleCount-
+b-1]=e:9>b?this.modules[8][15-b-1+1]=e:this.modules[8][15-b-1]=e;this.modules[this.moduleCount-8][8]=!a},mapData:function(a,c){for(var d=-1,b=this.moduleCount-1,e=7,f=0,i=this.moduleCount-1;0g;g++)if(null==this.modules[b][i-g]){var n=!1;f>>e&1));j.getMask(c,b,i-g)&&(n=!n);this.modules[b][i-g]=n;e--; -1==e&&(f++,e=7)}b+=d;if(0>b||this.moduleCount<=b){b-=d;d=-d;break}}}};o.PAD0=236;o.PAD1=17;o.createData=function(a,c,d){for(var c=p.getRSBlocks(a,
+c),b=new t,e=0;e8*a)throw Error("code length overflow. ("+b.getLengthInBits()+">"+8*a+")");for(b.getLengthInBits()+4<=8*a&&b.put(0,4);0!=b.getLengthInBits()%8;)b.putBit(!1);for(;!(b.getLengthInBits()>=8*a);){b.put(o.PAD0,8);if(b.getLengthInBits()>=8*a)break;b.put(o.PAD1,8)}return o.createBytes(b,c)};o.createBytes=function(a,c){for(var d=
+0,b=0,e=0,f=Array(c.length),i=Array(c.length),g=0;g>>=1;return c},getPatternPosition:function(a){return j.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,c,d){switch(a){case 0:return 0==(c+d)%2;case 1:return 0==c%2;case 2:return 0==d%3;case 3:return 0==(c+d)%3;case 4:return 0==(Math.floor(c/2)+Math.floor(d/3))%2;case 5:return 0==c*d%2+c*d%3;case 6:return 0==(c*d%2+c*d%3)%2;case 7:return 0==(c*d%3+(c+d)%2)%2;default:throw Error("bad maskPattern:"+
+a);}},getErrorCorrectPolynomial:function(a){for(var c=new q([1],0),d=0;dc)switch(a){case 1:return 10;case 2:return 9;case s:return 8;case 8:return 8;default:throw Error("mode:"+a);}else if(27>c)switch(a){case 1:return 12;case 2:return 11;case s:return 16;case 8:return 10;default:throw Error("mode:"+a);}else if(41>c)switch(a){case 1:return 14;case 2:return 13;case s:return 16;case 8:return 12;default:throw Error("mode:"+
+a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),d=0,b=0;b=g;g++)if(!(0>b+g||c<=b+g))for(var h=-1;1>=h;h++)0>e+h||c<=e+h||0==g&&0==h||i==a.isDark(b+g,e+h)&&f++;5a)throw Error("glog("+a+")");return l.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;256<=a;)a-=255;return l.EXP_TABLE[a]},EXP_TABLE:Array(256),
+LOG_TABLE:Array(256)},m=0;8>m;m++)l.EXP_TABLE[m]=1<m;m++)l.EXP_TABLE[m]=l.EXP_TABLE[m-4]^l.EXP_TABLE[m-5]^l.EXP_TABLE[m-6]^l.EXP_TABLE[m-8];for(m=0;255>m;m++)l.LOG_TABLE[l.EXP_TABLE[m]]=m;q.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-1),d=0;d
+this.getLength()-a.getLength())return this;for(var c=l.glog(this.get(0))-l.glog(a.get(0)),d=Array(this.getLength()),b=0;b>>7-a%8&1)},put:function(a,c){for(var d=0;d>>c-d-1&1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/8);this.buffer.length<=c&&this.buffer.push(0);a&&(this.buffer[c]|=128>>>this.length%8);this.length++}};"string"===typeof h&&(h={text:h});h=r.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,
+correctLevel:2,background:"#ffffff",foreground:"#000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=0;f").css("width",h.width+"px").css("height",h.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",h.background);d=h.width/a.getModuleCount();b=h.height/a.getModuleCount();for(e=0;e").css("height",b+"px").appendTo(c);for(i=0;i").css("width",
+d+"px").css("background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;jQuery(a).appendTo(this)})}})(jQuery);
diff --git a/skins/Medium/js/jquery.qrcode.min.js b/skins/Medium/js/jquery.qrcode.min.js
new file mode 100644
index 0000000..33854fa
--- /dev/null
+++ b/skins/Medium/js/jquery.qrcode.min.js
@@ -0,0 +1 @@
+!function(t){t.fn.qrcode=function(e){function r(t){this.mode=u,this.data=t}function o(t,e){this.typeNumber=t,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function n(t,e){if(void 0==t.length)throw Error(t.length+"/"+e);for(var r=0;rt||this.moduleCount<=t||0>e||this.moduleCount<=e)throw Error(t+","+e);return this.modules[t][e]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var t=1,t=1;40>t;t++){for(var e=i.getRSBlocks(t,this.errorCorrectLevel),r=new s,o=0,n=0;n=r;r++)if(!(-1>=t+r||this.moduleCount<=t+r))for(var o=-1;7>=o;o++)-1>=e+o||this.moduleCount<=e+o||(this.modules[t+r][e+o]=0<=r&&6>=r&&(0==o||6==o)||0<=o&&6>=o&&(0==r||6==r)||2<=r&&4>=r&&2<=o&&4>=o)},getBestMaskPattern:function(){for(var t=0,e=0,r=0;8>r;r++){this.makeImpl(!0,r);var o=a.getLostPoint(this);(0==r||t>o)&&(t=o,e=r)}return e},createMovieClip:function(t,e,r){for(t=t.createEmptyMovieClip(e,r),this.make(),e=0;e=i;i++)for(var s=-2;2>=s;s++)this.modules[o+i][n+s]=-2==i||2==i||-2==s||2==s||0==i&&0==s}},setupTypeNumber:function(t){for(var e=a.getBCHTypeNumber(this.typeNumber),r=0;18>r;r++){var o=!t&&1==(e>>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=o}for(r=0;18>r;r++)o=!t&&1==(e>>r&1),this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=o},setupTypeInfo:function(t,e){for(var r=a.getBCHTypeInfo(this.errorCorrectLevel<<3|e),o=0;15>o;o++){var n=!t&&1==(r>>o&1);6>o?this.modules[o][8]=n:8>o?this.modules[o+1][8]=n:this.modules[this.moduleCount-15+o][8]=n}for(o=0;15>o;o++)n=!t&&1==(r>>o&1),8>o?this.modules[8][this.moduleCount-o-1]=n:9>o?this.modules[8][15-o-1+1]=n:this.modules[8][15-o-1]=n;this.modules[this.moduleCount-8][8]=!t},mapData:function(t,e){for(var r=-1,o=this.moduleCount-1,n=7,i=0,s=this.moduleCount-1;0u;u++)if(null==this.modules[o][s-u]){var h=!1;i>>n&1)),a.getMask(e,o,s-u)&&(h=!h),this.modules[o][s-u]=h,n--,-1==n&&(i++,n=7)}if(0>(o+=r)||this.moduleCount<=o){o-=r,r=-r;break}}}},o.PAD0=236,o.PAD1=17,o.createData=function(t,e,r){for(var e=i.getRSBlocks(t,e),n=new s,u=0;u8*t)throw Error("code length overflow. ("+n.getLengthInBits()+">"+8*t+")");for(n.getLengthInBits()+4<=8*t&&n.put(0,4);0!=n.getLengthInBits()%8;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*t)&&(n.put(o.PAD0,8),!(n.getLengthInBits()>=8*t));)n.put(o.PAD1,8);return o.createBytes(n,e)},o.createBytes=function(t,e){for(var r=0,o=0,i=0,s=Array(e.length),u=Array(e.length),h=0;h>>=1;return e},getPatternPosition:function(t){return a.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,r){switch(t){case 0:return 0==(e+r)%2;case 1:return 0==e%2;case 2:return 0==r%3;case 3:return 0==(e+r)%3;case 4:return 0==(Math.floor(e/2)+Math.floor(r/3))%2;case 5:return 0==e*r%2+e*r%3;case 6:return 0==(e*r%2+e*r%3)%2;case 7:return 0==(e*r%3+(e+r)%2)%2;default:throw Error("bad maskPattern:"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new n([1],0),r=0;re)switch(t){case 1:return 10;case 2:return 9;case u:case 8:return 8;default:throw Error("mode:"+t)}else if(27>e)switch(t){case 1:return 12;case 2:return 11;case u:return 16;case 8:return 10;default:throw Error("mode:"+t)}else{if(!(41>e))throw Error("type:"+e);switch(t){case 1:return 14;case 2:return 13;case u:return 16;case 8:return 12;default:throw Error("mode:"+t)}}},getLostPoint:function(t){for(var e=t.getModuleCount(),r=0,o=0;o=u;u++)if(!(0>o+u||e<=o+u))for(var a=-1;1>=a;a++)0>n+a||e<=n+a||0==u&&0==a||s==t.isDark(o+u,n+a)&&i++;5t)throw Error("glog("+t+")");return h.LOG_TABLE[t]},gexp:function(t){for(;0>t;)t+=255;for(;256<=t;)t-=255;return h.EXP_TABLE[t]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)},l=0;8>l;l++)h.EXP_TABLE[l]=1<l;l++)h.EXP_TABLE[l]=h.EXP_TABLE[l-4]^h.EXP_TABLE[l-5]^h.EXP_TABLE[l-6]^h.EXP_TABLE[l-8];for(l=0;255>l;l++)h.LOG_TABLE[h.EXP_TABLE[l]]=l;return n.prototype={get:function(t){return this.num[t]},getLength:function(){return this.num.length},multiply:function(t){for(var e=Array(this.getLength()+t.getLength()-1),r=0;rthis.getLength()-t.getLength())return this;for(var e=h.glog(this.get(0))-h.glog(t.get(0)),r=Array(this.getLength()),o=0;o>>7-t%8&1)},put:function(t,e){for(var r=0;r>>e-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},"string"==typeof e&&(e={text:e}),e=t.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,correctLevel:2,background:"#ffffff",foreground:"#000000"},e),this.each(function(){var r;if("canvas"==e.render){r=new o(e.typeNumber,e.correctLevel),r.addData(e.text),r.make();var n=document.createElement("canvas");n.width=e.width,n.height=e.height;for(var i=n.getContext("2d"),s=e.width/r.getModuleCount(),u=e.height/r.getModuleCount(),a=0;a").css("width",e.width+"px").css("height",e.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",e.background),i=e.width/r.getModuleCount(),s=e.height/r.getModuleCount(),u=0;u").css("height",s+"px").appendTo(n),h=0;h").css("width",i+"px").css("background-color",r.isDark(u,h)?e.foreground:e.background).appendTo(a);r=n,jQuery(r).appendTo(this)})}}(jQuery);
\ No newline at end of file
diff --git a/skins/Medium/lang/lang_en_US.properties b/skins/Medium/lang/lang_en_US.properties
new file mode 100644
index 0000000..997740d
--- /dev/null
+++ b/skins/Medium/lang/lang_en_US.properties
@@ -0,0 +1,28 @@
+#
+# Copyright (c) 2010-2018, b3log.org & hacpai.com
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# Description: Solo language configurations(en_US).
+# Version: 0.1.0.0, Jan 29, 2018
+# Author: Liyuan Li
+#
+
+reply1Label=Reply
+cntLabel=
+nextArticleLabel=Next Article
+onlineVisitorLabel=Online
+cntMonthLabel=Month
+cntArticleLabel=Article
\ No newline at end of file
diff --git a/skins/Medium/lang/lang_zh_CN.properties b/skins/Medium/lang/lang_zh_CN.properties
new file mode 100644
index 0000000..7e4d8c1
--- /dev/null
+++ b/skins/Medium/lang/lang_zh_CN.properties
@@ -0,0 +1,28 @@
+#
+# Copyright (c) 2010-2018, b3log.org & hacpai.com
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# Description: Solo default language configurations(zh_CN).
+# Version: 0.1.0.0, Jan 29, 2018
+# Author: Liyuan Li
+#
+
+cntLabel=\u4E2A
+reply1Label=\u56DE\u590D
+nextArticleLabel=\u4E0B\u4E00\u7BC7
+onlineVisitorLabel=\u5F53\u524D\u8BBF\u5BA2
+cntMonthLabel=\u4E2A\u6708
+cntArticleLabel=\u7BC7\u6587\u7AE0
\ No newline at end of file
diff --git a/skins/Medium/links.ftl b/skins/Medium/links.ftl
new file mode 100644
index 0000000..c8d4732
--- /dev/null
+++ b/skins/Medium/links.ftl
@@ -0,0 +1,44 @@
+<#include "macro-head.ftl">
+
+
+
+<@head title="${blogTitle}">
+
+
+@head>
+
+
+<#include "header.ftl">
+<#include "nav.ftl">
+
+<#if noticeBoard??>
+
+ ${noticeBoard}
+
+#if>
+
+
+
+ ${links?size}
+ ${linkLabel}
+
+
+ <#if 0 != links?size>
+ <#list links as link>
+
+ #list>
+ #if>
+
+<#include "bottom.ftl">
+
+<#include "footer.ftl">
+
+
diff --git a/skins/Medium/macro-comments.ftl b/skins/Medium/macro-comments.ftl
new file mode 100644
index 0000000..b1aa9c1
--- /dev/null
+++ b/skins/Medium/macro-comments.ftl
@@ -0,0 +1,103 @@
+<#macro comments commentList article>
+
+
+
+ <#if article.commentable>
+
+ #if>
+
+#macro>
+
+<#macro comment_script oId>
+
+
+#macro>
\ No newline at end of file
diff --git a/skins/Medium/macro-head.ftl b/skins/Medium/macro-head.ftl
new file mode 100644
index 0000000..1e8429f
--- /dev/null
+++ b/skins/Medium/macro-head.ftl
@@ -0,0 +1,16 @@
+<#macro head title>
+
+${title}
+<#nested>
+
+
+
+
+
+
+
+
+
+
+${htmlHead}
+#macro>
\ No newline at end of file
diff --git a/skins/Medium/nav.ftl b/skins/Medium/nav.ftl
new file mode 100644
index 0000000..9ee3968
--- /dev/null
+++ b/skins/Medium/nav.ftl
@@ -0,0 +1,53 @@
+
\ No newline at end of file
diff --git a/skins/Medium/page.ftl b/skins/Medium/page.ftl
new file mode 100644
index 0000000..a2cefd9
--- /dev/null
+++ b/skins/Medium/page.ftl
@@ -0,0 +1,38 @@
+<#include "macro-head.ftl">
+<#include "macro-comments.ftl">
+
+
+
+<@head title="${page.pageTitle} - ${blogTitle}">
+
+
+@head>
+
+
+<#include "header.ftl">
+<#include "nav.ftl">
+
+<#if noticeBoard??>
+
+ ${noticeBoard}
+
+#if>
+
+
+
+<@comments commentList=pageComments article=page>@comments>
+
+
+<#include "bottom.ftl">
+<#include "footer.ftl">
+
+<@comment_script oId=page.oId>@comment_script>
+
+
diff --git a/skins/Medium/preview.png b/skins/Medium/preview.png
new file mode 100644
index 0000000..cd53e4e
Binary files /dev/null and b/skins/Medium/preview.png differ
diff --git a/skins/Medium/skin.properties b/skins/Medium/skin.properties
new file mode 100644
index 0000000..f287963
--- /dev/null
+++ b/skins/Medium/skin.properties
@@ -0,0 +1,24 @@
+#
+# Copyright (c) 2010-2018, b3log.org & hacpai.com
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# Description: Medium skin.
+# Version: 0.1.0.0, Jan 29, 2018
+# Author: Liyuan Li
+#
+
+name=Medium
+memo=https://medium.com
diff --git a/skins/Medium/tag-articles.ftl b/skins/Medium/tag-articles.ftl
new file mode 100644
index 0000000..b92994a
--- /dev/null
+++ b/skins/Medium/tag-articles.ftl
@@ -0,0 +1,36 @@
+<#include "macro-head.ftl">
+
+
+
+<@head title="${tag.tagTitle} - ${blogTitle}">
+
+
+@head>
+
+
+<#include "header.ftl">
+<#include "nav.ftl">
+
+<#if noticeBoard??>
+
+ ${noticeBoard}
+
+#if>
+
+
+
+ ${tag.tagTitle}
+
+ ${tag.tagPublishedRefCount}
+ ${tagLabel}
+
+
+
+ <#include "article-list.ftl">
+
+<#include "bottom2.ftl">
+
+<#include "footer.ftl">
+
+
diff --git a/skins/Medium/tags.ftl b/skins/Medium/tags.ftl
new file mode 100644
index 0000000..0b90f89
--- /dev/null
+++ b/skins/Medium/tags.ftl
@@ -0,0 +1,67 @@
+<#include "macro-head.ftl">
+
+
+
+<@head title="${allTagsLabel} - ${blogTitle}">
+
+
+@head>
+
+
+<#include "header.ftl">
+<#include "nav.ftl">
+
+<#if noticeBoard??>
+
+ ${noticeBoard}
+
+#if>
+
+
+
+ ${tags?size}
+ ${tagLabel}
+
+
+
+
+<#include "bottom.ftl">
+
+<#include "footer.ftl">
+
+
+
diff --git a/skins/NeoEase/article.ftl b/skins/NeoEase/article.ftl
index ac98668..0aa8fb9 100644
--- a/skins/NeoEase/article.ftl
+++ b/skins/NeoEase/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
${topBarReplacement}
diff --git a/skins/classic/article.ftl b/skins/classic/article.ftl
index 5386297..d9124cd 100644
--- a/skins/classic/article.ftl
+++ b/skins/classic/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
${topBarReplacement}
diff --git a/skins/ease/article.ftl b/skins/ease/article.ftl
index 7ae6bda..323120b 100644
--- a/skins/ease/article.ftl
+++ b/skins/ease/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
${topBarReplacement}
diff --git a/skins/favourite/article.ftl b/skins/favourite/article.ftl
index fad14b4..7349752 100644
--- a/skins/favourite/article.ftl
+++ b/skins/favourite/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
${topBarReplacement}
diff --git a/skins/i-nove/article.ftl b/skins/i-nove/article.ftl
index 4b06f06..0dd8bc4 100644
--- a/skins/i-nove/article.ftl
+++ b/skins/i-nove/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
${topBarReplacement}
diff --git a/skins/metro-hot/article.ftl b/skins/metro-hot/article.ftl
index 139d7f8..6b6897a 100644
--- a/skins/metro-hot/article.ftl
+++ b/skins/metro-hot/article.ftl
@@ -14,6 +14,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
${topBarReplacement}
diff --git a/skins/mobile/article.ftl b/skins/mobile/article.ftl
index d491866..4c91db6 100644
--- a/skins/mobile/article.ftl
+++ b/skins/mobile/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<#include "header.ftl">
diff --git a/skins/next/article.ftl b/skins/next/article.ftl
index c83f2ff..9010978 100644
--- a/skins/next/article.ftl
+++ b/skins/next/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<#include "header.ftl">
diff --git a/skins/owmx-3.0/article.ftl b/skins/owmx-3.0/article.ftl
index fd91593..969c8fd 100644
--- a/skins/owmx-3.0/article.ftl
+++ b/skins/owmx-3.0/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
${topBarReplacement}
diff --git a/skins/timeline/article.ftl b/skins/timeline/article.ftl
index 4cc0e93..161d16f 100644
--- a/skins/timeline/article.ftl
+++ b/skins/timeline/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
${topBarReplacement}
diff --git a/skins/tree-house/article.ftl b/skins/tree-house/article.ftl
index ead78be..2aed695 100644
--- a/skins/tree-house/article.ftl
+++ b/skins/tree-house/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/yilia/article.ftl b/skins/yilia/article.ftl
index 10e81e1..4faecd7 100644
--- a/skins/yilia/article.ftl
+++ b/skins/yilia/article.ftl
@@ -13,6 +13,22 @@
<#if nextArticlePermalink??>
#if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<#include "side.ftl">