diff --git a/src/main/resources/lang_en_US.properties b/src/main/resources/lang_en_US.properties
index 7b9e2e36e..3b6f86366 100644
--- a/src/main/resources/lang_en_US.properties
+++ b/src/main/resources/lang_en_US.properties
@@ -18,13 +18,19 @@
#
# Description: Symphony default language configurations(en_US). \u57FA\u672C\u90FD\u767E\u5EA6\u7FFB\u8BD1\u800C\u6765\uFF0C\u4E0D\u5F53\u4E4B\u5904\u8BF7 PR \u5E2E\u5FD9\u4FEE\u6B63\u3002
-# Version: 3.147.0.0, Jun 12, 2018
+# Version: 3.148.0.0, Jun 12, 2018
# Author: Liang Ding
# Author: Liyuan Li
# Author: Zephyr
# Author: zonghua
#
+bindedLabel=Already bind
+vcSentLabel=Verifycode sent, please don't retry it in 10 minutes
+sendFailedLabel=Send failed
+imageCaptchaLabel=Please enter the right graphics verification code
+getEmailCaptchaLabel=Get Email Captcha
+emailCaptchaLabel=Email Captcha
adoptLabel=adopt
adoptTipLabel=confirm adopt this answer by {point}?
qnaOfferPointRuleLabel=Reward points are integers greater than 0
diff --git a/src/main/resources/lang_zh_CN.properties b/src/main/resources/lang_zh_CN.properties
index 878423b85..c805760c0 100644
--- a/src/main/resources/lang_zh_CN.properties
+++ b/src/main/resources/lang_zh_CN.properties
@@ -18,13 +18,19 @@
#
# Description: Symphony default language configurations(zh_CN).
-# Version: 3.147.0.0, Jun 12, 2018
+# Version: 3.148.0.0, Jun 12, 2018
# Author: Liang Ding
# Author: Liyuan Li
# Author: Zephyr
# Author: zonghua
#
+bindedLabel=\u5DF2\u7ED1\u5B9A
+vcSentLabel=\u9A8C\u8BC1\u7801\u5DF2\u7ECF\u53D1\u9001\uFF0C10 \u5206\u949F\u5185\u8BF7\u52FF\u91CD\u8BD5
+sendFailedLabel=\u53D1\u9001\u5931\u8D25
+imageCaptchaLabel=\u8BF7\u8F93\u5165\u53F3\u4FA7\u56FE\u5F62\u9A8C\u8BC1\u7801
+getEmailCaptchaLabel=\u83B7\u53D6\u90AE\u7BB1\u9A8C\u8BC1\u7801
+emailCaptchaLabel=\u90AE\u7BB1\u9A8C\u8BC1\u7801
adoptLabel=\u91C7\u7EB3
adoptTipLabel=\u786E\u5B9A\u4F7F\u7528 {point} \u79EF\u5206\u91C7\u7EB3\u6B64\u56DE\u7B54\uFF1F
qnaOfferPointRuleLabel=\u60AC\u8D4F\u79EF\u5206\u4E3A\u5927\u4E8E 0 \u7684\u6574\u6570
diff --git a/src/main/webapp/css/home.css b/src/main/webapp/css/home.css
index 8aadc0702..321ef02db 100644
--- a/src/main/webapp/css/home.css
+++ b/src/main/webapp/css/home.css
@@ -1 +1 @@
-.home-menu{list-style:none;background-color:#fff}.home-menu a{position:relative;display:block;padding:10px 15px;text-shadow:0 1px 0 #fff;border-bottom:1px solid #eee;color:#616161}.home-menu a:last-child{border-bottom:0}.home-menu a:hover{text-decoration:none;background-color:#f9f9f9}.home-menu a.current{font-weight:bold;color:#222;cursor:default;background-color:#fff}.home-menu a .todo{position:absolute;border-style:solid;right:0px;top:0px;border-width:10px 10px 10px 10px;border-color:#d23f31 #d23f31 transparent transparent}.home-menu a.current::before{position:absolute;top:0;bottom:0;left:0;width:2px;content:"";background-color:#d23f31}.home-side-read{color:#222}.home-menu a span:last-child:hover,.home-side-read:hover{color:#4285f4}#avatarURLDom{margin-top:30px}.user-name{font-size:20px;font-weight:300;line-height:26px;margin-bottom:20px;padding:20px 10px 25px 10px}.user-name #userNicknameDom{font-size:26px;line-height:30px}.user-name .online,.user-name .offline{background-color:#d23f31;color:#fff;font-size:12px;line-height:20px;border-radius:3px;height:20px;display:inline-block;padding:0 5px;vertical-align:middle;box-sizing:border-box}.user-name .offline{background-color:rgba(0,0,0,0.54)}.user-name button.follow{font-size:14px;width:100%;margin-top:20px}.user-details{margin:0 10px}.user-info{line-height:24px;font-size:12px;color:#616161}.user-intro{line-height:26px;margin-bottom:5px}.pre-post-wrap{background-color:#fff}.pre-post>div{width:25%;margin:100px 0px;text-align:center;font-size:30px}.pre-post>div>a{color:#404040;margin:0 10px;display:block}.pre-post a:hover{text-decoration:none;color:#4285f4}.pre-post a svg{height:50px;width:50px;margin-bottom:50px}.pre-post div.ft-gray{font-size:15px;margin:20px 30px 0;text-align:left}.tip-add-article{color:#777777;list-style:circle outside none;margin-left:20px;line-height:22px}.fn-right>.article-anonymous{margin:7px 15px 0 0;line-height:20px;float:left}.post{background-color:#FFF;padding-top:0}.post__info{float:left;margin:2px 5px 0 0}.post .cm-s-default.CodeMirror{border:0;margin-bottom:0}.post .wrapper{display:block}.post input[type=text],.post input[type=text]:focus,.post input[type=number],.post input[type=number]:focus{border:0;background-color:#FFF;box-shadow:0 0 0;border-radius:0}.post #articleTitle{font-size:26px;padding:20px 10px 10px}.post #articleTitleTip{position:absolute;top:10px;padding:10px;z-index:10;color:#999;margin-bottom:0;width:auto;right:10px;background-color:#f1f7fe}.post #articleContent{height:332px;margin:30px 0 20px 0;padding:4px}.post #articleRewardContent{height:102px;margin:30px 0 20px 0;padding:4px}.post #showReward{color:#999;width:75%;margin:20px auto 0;display:block}.post #articleAskPoint{border-bottom:1px solid #f2f2f2}.post #tip{position:inherit;white-space:pre-wrap}.post .tags-wrap{position:relative}.post .tags-input,.post #articleRewardPoint{background-color:#fff;padding:5px 10px;width:100%;line-height:20px;border-bottom:1px solid #f2f2f2;border-top:1px solid #f2f2f2;box-sizing:border-box}.post .tags-input span.tag{margin:0 5px 0 0px;padding:0 5px;background:#eee;color:#999;line-height:22px}.post .tags-input .tag>span.close{cursor:pointer;padding-left:5px;color:#616161}.post .tags-input .tag>span.close:hover{color:#d23f31}.post .tags-input span.tag.haved{color:rgba(0,0,0,0.87);background-color:#ccc;transition:background 0.5s ease-in,color 0.3s ease-out}.post .tags-input input{border:0;outline:none;box-shadow:0 0 0 transparent;border-radius:0;padding:2px}.post .tags-input input:focus{border:0;background-color:transparent;box-shadow:0 0 0 transparent}.post .domains-tags{display:none;position:absolute;background-color:#FFF;border:1px solid #eee;z-index:82;border-radius:0 0 3px 3px;width:50%;top:33px;box-sizing:border-box;padding:10px}.post .domain-tags{border-top:1px solid #eee;margin-top:10px;padding-top:10px}.post .domains-tags .tag{cursor:pointer;color:#999;margin:0 5px 5px 0;padding:2px 5px;border:1px solid #DDDDDD;background-color:#f7f7f7;border-radius:3px}.post .domains-tags .tag:hover{opacity:0.7}.home-invisible{padding:50px 0}.tabs{display:flex}.tabs a{line-height:18px;flex:1;padding:7px 10px 5px;color:#616161;border-bottom:2px solid transparent;text-decoration:none;text-align:center}.tabs a.selected{border-color:#d23f31;color:#212121}.tabs a:hover{background-color:rgba(0,0,0,0.02)}.tabs-sub>a>.count{transform:scale(0.8)}.notification .read{background-color:#FAFAFA;opacity:0.5;filter:alpha(opacity=50)}.notification li{background-color:#F8F8FF}.notification .content-reset>p{margin-bottom:0}.follow.list h2{margin-bottom:6px}.admin .form{padding:8px 15px}.admin .tags{display:inline-block;width:50%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:bottom}.admin .domains{display:inline-block;width:50%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:bottom}.admin .form input[type=text],.admin .form input[type=number]{width:50%;margin-right:10px}.admin #rolesTitle{width:150px}.admin #rolesDesc{width:250px}.points{border-collapse:collapse;border-spacing:0;width:100%}.points tr:last-child td{border-bottom:0}.points td{border-bottom:1px solid #eee}.points .date{width:75px;padding:15px 10px 15px 15px}.points .name{padding:15px 10px;word-break:break-all}.points .name a{color:#616161}.points .name a:hover{color:rgba(0,0,0,0.87)}.points .type{width:60px;padding:0 10px}.points .sum{text-align:center;width:35px;padding:0 10px;color:#d23f31;font-weight:700}.points .sum.plus{color:#569e3d}.points .balance{width:40px;padding:15px 15px 15px 10px}.top-ranking{border-top:1px solid #eee;padding-top:15px}#avatarUpload{overflow:hidden}#shareClipboard{position:absolute;right:15px;bottom:15px;border-radius:0 3px 3px 0}.settings-secret>div{float:left;width:50%}#homeSidePanel{margin-bottom:20px}#emojiGrid img{width:25px;height:25px;cursor:pointer}#emotionList{margin-bottom:15px}#pointBuyInvitecode{padding:0}
+.home-menu{list-style:none;background-color:#fff}.home-menu a{position:relative;display:block;padding:10px 15px;text-shadow:0 1px 0 #fff;border-bottom:1px solid #eee;color:#616161}.home-menu a:last-child{border-bottom:0}.home-menu a:hover{text-decoration:none;background-color:#f9f9f9}.home-menu a.current{font-weight:bold;color:#222;cursor:default;background-color:#fff}.home-menu a .todo{position:absolute;border-style:solid;right:0px;top:0px;border-width:10px 10px 10px 10px;border-color:#d23f31 #d23f31 transparent transparent}.home-menu a.current::before{position:absolute;top:0;bottom:0;left:0;width:2px;content:"";background-color:#d23f31}.home-side-read{color:#222}.home-menu a span:last-child:hover,.home-side-read:hover{color:#4285f4}#avatarURLDom{margin-top:30px}.user-name{font-size:20px;font-weight:300;line-height:26px;margin-bottom:20px;padding:20px 10px 25px 10px}.user-name #userNicknameDom{font-size:26px;line-height:30px}.user-name .online,.user-name .offline{background-color:#d23f31;color:#fff;font-size:12px;line-height:20px;border-radius:3px;height:20px;display:inline-block;padding:0 5px;vertical-align:middle;box-sizing:border-box}.user-name .offline{background-color:rgba(0,0,0,0.54)}.user-name button.follow{font-size:14px;width:100%;margin-top:20px}.user-details{margin:0 10px}.user-info{line-height:24px;font-size:12px;color:#616161}.user-intro{line-height:26px;margin-bottom:5px}.pre-post-wrap{background-color:#fff}.pre-post>div{width:25%;margin:100px 0px;text-align:center;font-size:30px}.pre-post>div>a{color:#404040;margin:0 10px;display:block}.pre-post a:hover{text-decoration:none;color:#4285f4}.pre-post a svg{height:50px;width:50px;margin-bottom:50px}.pre-post div.ft-gray{font-size:15px;margin:20px 30px 0;text-align:left}.tip-add-article{color:#777777;list-style:circle outside none;margin-left:20px;line-height:22px}.fn-right>.article-anonymous{margin:7px 15px 0 0;line-height:20px;float:left}.post{background-color:#FFF;padding-top:0}.post__info{float:left;margin:2px 5px 0 0}.post .cm-s-default.CodeMirror{border:0;margin-bottom:0}.post .wrapper{display:block}.post input[type=text],.post input[type=text]:focus,.post input[type=number],.post input[type=number]:focus{border:0;background-color:#FFF;box-shadow:0 0 0;border-radius:0}.post #articleTitle{font-size:26px;padding:20px 10px 10px}.post #articleTitleTip{position:absolute;top:10px;padding:10px;z-index:10;color:#999;margin-bottom:0;width:auto;right:10px;background-color:#f1f7fe}.post #articleContent{height:332px;margin:30px 0 20px 0;padding:4px}.post #articleRewardContent{height:102px;margin:30px 0 20px 0;padding:4px}.post #showReward{color:#999;width:75%;margin:20px auto 0;display:block}.post #articleAskPoint{border-bottom:1px solid #f2f2f2}.post #tip{position:inherit;white-space:pre-wrap}.post .tags-wrap{position:relative}.post .tags-input,.post #articleRewardPoint{background-color:#fff;padding:5px 10px;width:100%;line-height:20px;border-bottom:1px solid #f2f2f2;border-top:1px solid #f2f2f2;box-sizing:border-box}.post .tags-input span.tag{margin:0 5px 0 0px;padding:0 5px;background:#eee;color:#999;line-height:22px}.post .tags-input .tag>span.close{cursor:pointer;padding-left:5px;color:#616161}.post .tags-input .tag>span.close:hover{color:#d23f31}.post .tags-input span.tag.haved{color:rgba(0,0,0,0.87);background-color:#ccc;transition:background 0.5s ease-in,color 0.3s ease-out}.post .tags-input input{border:0;outline:none;box-shadow:0 0 0 transparent;border-radius:0;padding:2px}.post .tags-input input:focus{border:0;background-color:transparent;box-shadow:0 0 0 transparent}.post .domains-tags{display:none;position:absolute;background-color:#FFF;border:1px solid #eee;z-index:82;border-radius:0 0 3px 3px;width:50%;top:33px;box-sizing:border-box;padding:10px}.post .domain-tags{border-top:1px solid #eee;margin-top:10px;padding-top:10px}.post .domains-tags .tag{cursor:pointer;color:#999;margin:0 5px 5px 0;padding:2px 5px;border:1px solid #DDDDDD;background-color:#f7f7f7;border-radius:3px}.post .domains-tags .tag:hover{opacity:0.7}.home-invisible{padding:50px 0}.tabs{display:flex}.tabs a{line-height:18px;flex:1;padding:7px 10px 5px;color:#616161;border-bottom:2px solid transparent;text-decoration:none;text-align:center}.tabs a.selected{border-color:#d23f31;color:#212121}.tabs a:hover{background-color:rgba(0,0,0,0.02)}.tabs-sub>a>.count{transform:scale(0.8)}.home-account__captch{position:relative}.home-account__captch img{position:absolute;height:31px;top:42px;right:1px;border-radius:0 3px 3px 0}.notification .read{background-color:#FAFAFA;opacity:0.5;filter:alpha(opacity=50)}.notification li{background-color:#F8F8FF}.notification .content-reset>p{margin-bottom:0}.follow.list h2{margin-bottom:6px}.admin .form{padding:8px 15px}.admin .tags{display:inline-block;width:50%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:bottom}.admin .domains{display:inline-block;width:50%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:bottom}.admin .form input[type=text],.admin .form input[type=number]{width:50%;margin-right:10px}.admin #rolesTitle{width:150px}.admin #rolesDesc{width:250px}.points{border-collapse:collapse;border-spacing:0;width:100%}.points tr:last-child td{border-bottom:0}.points td{border-bottom:1px solid #eee}.points .date{width:75px;padding:15px 10px 15px 15px}.points .name{padding:15px 10px;word-break:break-all}.points .name a{color:#616161}.points .name a:hover{color:rgba(0,0,0,0.87)}.points .type{width:60px;padding:0 10px}.points .sum{text-align:center;width:35px;padding:0 10px;color:#d23f31;font-weight:700}.points .sum.plus{color:#569e3d}.points .balance{width:40px;padding:15px 15px 15px 10px}.top-ranking{border-top:1px solid #eee;padding-top:15px}#avatarUpload{overflow:hidden}#shareClipboard{position:absolute;right:15px;bottom:15px;border-radius:0 3px 3px 0}.settings-secret>div{float:left;width:50%}#homeSidePanel{margin-bottom:20px}#emojiGrid img{width:25px;height:25px;cursor:pointer}#emotionList{margin-bottom:15px}#pointBuyInvitecode{padding:0}
diff --git a/src/main/webapp/css/mobile-base.css b/src/main/webapp/css/mobile-base.css
index 32f33197c..5beb9b7fc 100644
--- a/src/main/webapp/css/mobile-base.css
+++ b/src/main/webapp/css/mobile-base.css
@@ -1 +1 @@
-html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;height:100%;background-color:#3b3e43}body{margin:0;font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif;font-size:14px;color:rgba(0,0,0,0.87);background-color:#fff}::-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}@-webkit-keyframes spaceboots{0%{-webkit-transform:translate(0px, 0);-moz-transform:translate(0px, 0);-o-transform:translate(0px, 0);-ms-transform:translate(0px, 0);transform:translate(0px, 0)}30%{-webkit-transform:translate(0px, 1px);-moz-transform:translate(0px, 1px);-o-transform:translate(0px, 1px);-ms-transform:translate(0px, 1px);transform:translate(0px, 1px)}45%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}60%{-webkit-transform:translate(0px, -1px);-moz-transform:translate(0px, -1px);-o-transform:translate(0px, -1px);-ms-transform:translate(0px, -1px);transform:translate(0px, -1px)}80%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}}@-o-keyframes spaceboots{0%{-webkit-transform:translate(0px, 0);-moz-transform:translate(0px, 0);-o-transform:translate(0px, 0);-ms-transform:translate(0px, 0);transform:translate(0px, 0)}30%{-webkit-transform:translate(0px, 1px);-moz-transform:translate(0px, 1px);-o-transform:translate(0px, 1px);-ms-transform:translate(0px, 1px);transform:translate(0px, 1px)}45%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}60%{-webkit-transform:translate(0px, -1px);-moz-transform:translate(0px, -1px);-o-transform:translate(0px, -1px);-ms-transform:translate(0px, -1px);transform:translate(0px, -1px)}80%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}}@-ms-keyframes spaceboots{0%{-webkit-transform:translate(0px, 0);-moz-transform:translate(0px, 0);-o-transform:translate(0px, 0);-ms-transform:translate(0px, 0);transform:translate(0px, 0)}30%{-webkit-transform:translate(0px, 1px);-moz-transform:translate(0px, 1px);-o-transform:translate(0px, 1px);-ms-transform:translate(0px, 1px);transform:translate(0px, 1px)}45%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}60%{-webkit-transform:translate(0px, -1px);-moz-transform:translate(0px, -1px);-o-transform:translate(0px, -1px);-ms-transform:translate(0px, -1px);transform:translate(0px, -1px)}80%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}}@keyframes spaceboots{0%{-webkit-transform:translate(0px, 0);-moz-transform:translate(0px, 0);-o-transform:translate(0px, 0);-ms-transform:translate(0px, 0);transform:translate(0px, 0)}30%{-webkit-transform:translate(0px, 1px);-moz-transform:translate(0px, 1px);-o-transform:translate(0px, 1px);-ms-transform:translate(0px, 1px);transform:translate(0px, 1px)}45%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}60%{-webkit-transform:translate(0px, -1px);-moz-transform:translate(0px, -1px);-o-transform:translate(0px, -1px);-ms-transform:translate(0px, -1px);transform:translate(0px, -1px)}80%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}}.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.65;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 img{cursor:zoom-in}.editor-panel .content-reset img,img.emoji{cursor:auto}.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 rgba(0,0,0,0.38)}.content-reset table{width:100%;border:1px solid #dedede;margin:15px auto;border-collapse:collapse;empty-cells:show}.content-reset thead{text-align:center}.content-reset td,.content-reset th{height:35px;border:1px solid #dedede;padding:0 10px}.content-reset th{font-weight:bold;text-align:center !important;background:rgba(158,188,226,0.2)}.content-reset tbody tr:nth-child(2n){background:rgba(158,188,226,0.12)}.content-reset tr:hover{background:#efefef}.content-reset code{padding:0.2em 0.4em;margin:0;font-size:85%;background-color:rgba(252,41,41,0.12);border-radius:3px;color:#d23f31;font-family:mononoki,Consolas,"Liberation Mono",Menlo,Courier,monospace;word-break:break-word}.content-reset pre>code{padding:0.5em;color:rgba(0,0,0,0.87);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 rgba(0,0,0,0.38);border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.content-reset li.task-list-item{list-style:none}.content-reset li.task-list-item>input{margin-left:-2em;vertical-align:middle}.fn-flex{display:flex}.fn-flex-1{flex:1;min-width:1px}.fn-pointer{cursor:pointer}.fn-sub{vertical-align:sub}.fn-clear:before,.fn-clear:after{display:table;content:""}.fn-clear:after{clear:both}.fn-left{float:left}.fn-right{float:right}.fn-none{display:none}.fn-hidden{visibility:hidden}.fn-oh{overflow:hidden}.fn-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.fn-hr5{display:block;height:5px}.fn-content{padding:15px}.fn-inline{display:inline-block}.fn-text-top{vertical-align:text-top}.ft-13{font-size:13px}.ft-smaller{font-size:12px}.ft-gray{color:rgba(0,0,0,0.54)}.ft-fade{color:rgba(0,0,0,0.38)}.ft-red{color:#d23f31}.ft-blue{color:#4285f4}.ft-green{color:#569e3d}.ft-a-title{color:#616161;text-decoration:none}.ft-a-title:hover{color:rgba(0,0,0,0.87)}.ft-center{text-align:center}.ft-nowrap{white-space:nowrap}.count{text-decoration:none;padding:2px 5px;font-size:12px;font-weight:600;line-height:1;color:#616161;background-color:#eee;border-radius:20px;display:inline-block}.count:hover{text-decoration:none}.sub-head{padding:15px;border-bottom:1px solid #eee;line-height:18px;font-size:18px}.wrapper .aplayer{margin:0;box-shadow:0 1px 2px rgba(0,0,0,0.2)}.wrapper .aplayer .aplayer-pic{background-size:cover}.wrapper .aplayer svg{height:16px;width:16px;float:left;margin:0px 0 0 2px}.fn-hr10{height:10px;display:block}.tag{padding:2px 3px;font-size:12px;border-radius:2px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.12);background-color:#f0f0f0;color:#999;white-space:nowrap;display:inline-block;margin:5px 0;line-height:16px}.tag:hover{text-decoration:none;color:rgba(0,0,0,0.87);background-color:#ccc}button,.btn{cursor:pointer;color:rgba(0,0,0,0.87);border-radius:3px;padding:6px 12px;background-color:rgba(0,0,0,0.02);border:1px solid #D5D5D5;border-bottom-color:#E1E1E1;box-sizing:border-box;line-height:19px;white-space:nowrap}button:hover,.btn:hover{text-decoration:none;border-color:rgba(0,0,0,0.38);background-color:#eee}button:active,.btn:active{background-color:rgba(0,0,0,0.38);box-shadow:0 2px 4px rgba(0,0,0,0.05) inset}button.green,.btn.green{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.15);background-color:#60b044;border-color:#5ca941}button.green:hover,.btn.green:hover{background-color:#569e3d}button.green:active{background-color:#569e3d;border-color:#418737;box-shadow:0 2px 4px rgba(0,0,0,0.25) inset}button.red,.btn.red{color:#d23f31}button.red:hover,.btn.red:hover,.btn.red-hover{color:#FFF;background-color:#d23f31;border-color:#c0372a}button.red:active,.btn.red:active{background-color:#d23f31;border-color:#c9320c;color:#FFF;box-shadow:0 2px 4px rgba(0,0,0,0.25) inset}button.small,.btn.small{padding:0 5px;font-size:12px;font-weight:normal;display:inline-block;line-height:19px;height:20px;text-shadow:initial}button.absolute{position:absolute;right:10px;top:10px}a[class^="icon-"],a[class*=" icon-"]{color:rgba(0,0,0,0.87)}a[class^="icon-"]:hover,a[class*=" icon-"]:hover{text-decoration:none;color:#4285f4}.tip.error{color:#d23f31;background-color:#fcdede;border:1px solid #d2b2b2}.tip ul{margin:10px 40px;text-align:left}.tip.succ{background-color:#D4F6FA;border:1px solid #1D2B3D;color:#1D2B3D}#registerTip,#loginTip,#addArticleTip,#profilesTip,#syncb3Tip,#passwordTip{white-space:normal;word-wrap:break-word}.avatar,.avatar-small,.avatar-mid,.avatar-big{border-radius:3px 3px 3px 3px;background-size:cover;background-repeat:no-repeat;background-position:center center;display:inline-block;vertical-align:middle}.avatar{height:30px;width:30px;margin-right:10px}.avatar-small{height:20px;width:20px}.avatar-big{border:1px solid #EEEEEE;height:210px;width:210px;border-radius:6px}.avatar-mid{border:1px solid #EEEEEE;height:118px;width:118px;border-radius:4px}.status{border-top:1px dotted #CCCCCC;list-style:none;padding:10px 0}.status>li{overflow:hidden;flex:1;-webkit-box-flex:1;text-align:center}.status>li>strong{font-size:20px}.form{position:relative}.form table{width:100%}.form input[type=text],.form input[type=datetime],.form input[type=datetime-local],.form input[type=password],.form input[type=number],.form select,.form textarea{border:1px solid #CCCCCC;background-color:#FAFAFA;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,0.075) inset;padding:7px 8px;width:100%;line-height:17px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.form input[type=text]:focus,.form input[type=password]:focus,.form textarea:focus{background-color:#FFF;box-shadow:0 1px 2px rgba(0,0,0,0.075) inset,0 0 5px rgba(81,167,232,0.5);border:1px solid #51A7E8}.form label{color:#616161;font-size:15px;margin:10px 0 5px;float:left}.form label.ft-red{color:#d23f31}.form label>a{font-weight:normal}.form label input[type=checkbox],.form label input[type=radio]{vertical-align:middle}.form input[type=file]{width:1px;opacity:0.001;height:16px}.pagination{background-color:#FFFFFF;background:linear-gradient(#fff, #EFEFEF);background:-ms-linear-gradient(#fff, #EFEFEF);background:-o-linear-gradient(#fff, #EFEFEF);background:-webkit-linear-gradient(#fff, #EFEFEF);border:1px solid #eaeaea;border-bottom:0;display:inline-block;margin:10px;border-radius:3px;font-size:12px;float:right}.pagination a,.pagination span{border-bottom:1px solid #DADADA;border-left:1px solid rgba(255,255,255,0.7);border-right:1px solid rgba(0,0,0,0.04);color:#777777;float:left;padding:5px 8px;text-decoration:none;text-shadow:0 1px 0 white}.pagination a{cursor:pointer}.pagination a:hover{color:#4285f4;border-bottom-color:#CFDCE8;background-color:#fafbfd;background:linear-gradient(#fafbfd, #dce6ef);background:-ms-linear-gradient(#fafbfd, #dce6ef);background:-o-linear-gradient(#fafbfd, #dce6ef);background:-webkit-linear-gradient(#fafbfd, #dce6ef)}.pagination span.current{background-color:#FCFCFC;background:linear-gradient(#FCFCFC, #EBEBEB);background:-ms-linear-gradient(#FCFCFC, #EBEBEB);background:-o-linear-gradient(#FCFCFC, #EBEBEB);background:-webkit-linear-gradient(#FCFCFC, #EBEBEB);border-bottom-color:#D26911;color:#000000}.pagination span.gap{color:#BBB}.pagination select{border:0;color:#777;padding:4px 5px;white-space:nowrap;float:left;border-bottom:1px solid #DADADA;border-radius:0;background:linear-gradient(#fff, #EFEFEF)}.dialog-background{background-color:#000000;display:none;height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%;z-index:200}.dialog-panel{display:none;position:fixed;z-index:201;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.25);border-radius:5px;box-shadow:0 0 18px rgba(0,0,0,0.4)}.dialog-header-bg{padding:10px;font-size:18px;font-weight:normal;border-bottom:1px solid #eee}.dialog-header-bg .icon-close{color:rgba(0,0,0,0.25);font-size:12px;float:right;font-weight:bold}.dialog-header-bg .icon-close:hover{color:rgba(0,0,0,0.87)}.dialog-main{min-width:200px;padding:10px;box-sizing:content-box}.completed-panel{padding:0;overflow:auto;left:0;display:none;position:absolute;background-color:#FFF;border:1px solid #eee;z-index:72;border-radius:0 0 3px 3px;width:50%;top:32px;box-sizing:border-box}.completed-panel a{display:block;padding:3px;text-decoration:none;line-height:18px;height:18px}.completed-panel a.selected,.completed-panel a:hover{background-color:#F7F7F7}.wrapper{margin:0 10px}.main{background-color:#FFF;padding-bottom:10px}.nav{height:28px;width:100%;padding:5px 0;z-index:99;background-color:#3b3e43}.nav .head-fn form{position:relative}.nav .head-fn h1 a svg{color:#fff;height:38px;width:38px;margin-top:-5px;float:left}.nav .user-nav{position:relative}.nav .user-nav a.unlogin{font-size:14px}.nav div>a{color:#fff;text-decoration:none;margin:0 3px;padding:4px 5px;float:right;font-size:20px;line-height:20px;height:20px}.nav div>a:hover{color:#4285f4}.nav div>a.current{border-bottom:2px solid #D26911;padding-bottom:7px}.nav div>a.last{margin-right:0}.nav .avatar-small{height:20px;width:20px;vertical-align:super}.nav .user-nav .no-msg,.nav .user-nav .msg{background-color:#777;border-radius:3px;color:#FFFFFF;font-size:14px;padding:0px 6px;margin:5px 10px;line-height:20px}.nav .user-nav .msg{-webkit-animation:spaceboots 1s infinite;-moz-animation:spaceboots 1s infinite;-o-animation:spaceboots 1s infinite;-ms-animation:spaceboots 1s infinite;animation:spaceboots 1s infinite;background-color:#d23f31;color:#FFFFFF}.nav .user-nav a.selected.no-msg,.nav .user-nav a.selected.msg{animation:none;background-color:#d23f31;border-bottom:0}.nav .form{background-color:#FFF;border:1px solid #CACACA;box-shadow:0 1px 0 rgba(255,255,255,0.4),0 0 10px rgba(0,0,0,0.1);padding:14px;position:absolute;right:0;top:33px;z-index:2;width:250px}.nav .form input[type="text"],.nav .form input[type="password"]{margin:10px 0}.nav input.search{background-color:#FFF;border:1px solid #DDDDDD;border-radius:3px 3px 3px 3px;padding:5px 8px;width:230px;margin:1px 0 0 20px;float:left;box-shadow:inset 0 1px 2px rgba(0,0,0,0.075)}.nav input.search:focus{border-color:#51A7E8;box-shadow:0 0 3px rgba(81,167,232,0.5),0 1px 1px rgba(0,0,0,0.2) inset}.footer{color:#7d8186;padding:10px 0;text-align:center;font-size:12px;background-color:#3b3e43}.footer a{color:#afb1b3}.list h2{font-size:14px;font-weight:normal}.list h2>a{color:#595959}.list h2>a:hover{color:rgba(0,0,0,0.87)}.list>ul{list-style:none}.list>ul>li{border-bottom:1px solid #eee;padding:10px;white-space:normal;word-wrap:break-word;position:relative}.list li.last{border-bottom-width:0}.list .comment>p{margin:0}.list>ul>li.cmt-perfect,.list>ul>li.cmt-perfect:hover{background-color:#f9f6f6}.has-view{margin-right:40px}#articltVia{white-space:nowrap}label.anonymous-check{margin:2px 15px 0 0}.cmts{position:absolute;right:10px;top:40%}.cmts a.count:visited{background-color:#f6f6f6;color:#999}.cm-s-default.CodeMirror{border-radius:0 0 3px 3px;box-shadow:0 1px 2px rgba(0,0,0,0.075) inset;border:1px solid #CCCCCC;margin-bottom:20px;border-top-width:0;height:330px}.CodeMirror-scroll{background-color:#FAFAFA;font-family:"Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif;box-shadow:0 1px 2px rgba(0,0,0,0.075) inset;line-height:17px}.cm-s-default.CodeMirror-fullscreen.CodeMirror{margin:0}.CodeMirror,ul.CodeMirror-hints{font-family:"Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif}.CodeMirror-hints .ico{margin:-1px 2px 0 -1px}.CodeMirror-focused .cm-matchhighlight{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVQI12NgYGBgkKzc8x9CMDAwAAAmhwSbidEoSQAAAABJRU5ErkJggg==);background-position:bottom;background-repeat:repeat-x}.CodeMirror-hint{padding-right:18px;max-width:none}.CodeMirror-hint:hover{background:#08f;color:white}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:transparent}.CodeMirror-empty.CodeMirror-focused{outline:none}.CodeMirror pre.CodeMirror-placeholder{color:#999}#revision .revisions{margin:5px 0 15px;text-align:center}#revision .revisions a{color:#616161;vertical-align:middle}#revision .revisions a:hover{color:rgba(0,0,0,0.87)}#revision .revisions a.disabled{color:rgba(0,0,0,0.38);cursor:default}#revision .revisions span{margin:0 10px 0 10px}.module{margin-bottom:10px;background-color:#FFF;border-radius:3px;width:100%;word-wrap:break-word;box-sizing:border-box}.module-header{border-radius:3px 3px 0 0;background-color:#F7F7F7;border-bottom:1px solid #eee;padding:9px 10px 10px;text-shadow:0 1px 0 #fff;font-size:14px;line-height:17px}.module-header h2{display:inline;font-size:15px;font-weight:normal}.module-panel{border-radius:0 0 5px 5px}.module-panel strong{display:inline-block;margin-top:14px}.module-panel .module-list li{border-bottom:1px dotted #CCCCCC;list-style:none outside none;padding:5px 10px;position:relative}.module-panel .module-list li.last,.module-panel .module-list li:last-child{border-bottom-width:0}.module .comment-content{color:#999999;float:left;margin-left:5px;width:210px}.module-panel.form{padding:0 10px 10px}#killBrowser .module{height:235px;width:520px}#killBrowser p{margin:10px 0}#killBrowser ul{margin-left:30px}#killBrowser img{position:absolute;right:36px;top:58px}.emoji{width:1.3em;height:1.3em;display:inline-block;margin-bottom:.25em;background-size:contain;vertical-align:text-top}.person-info{position:relative}.person-info .info{position:relative;left:-1px;top:-1px;overflow:hidden;height:35px}.person-info .info button.red{position:absolute;border-radius:3px 0 0 0;min-width:35%;color:#FFF;padding:5px 0;background-color:#b33630;background-image:linear-gradient(#dc5f59, #b33630);border-color:#cd504a;letter-spacing:1px}.person-info .info button.red:hover{letter-spacing:2px}.person-info .info .fn-right{margin:9px 10px 0 0}.person-info .status{border-bottom:1px dotted #ccc;border-top-width:0;margin-top:-20px;margin-bottom:15px}.person-info .status .fn-pointer:hover span{color:rgba(0,0,0,0.87)}.person-info .module-panel{padding:0 10px 10px 10px}.person-info .activity-board{position:absolute;height:2px;background-color:#b33630;top:-1px}.person-info .right{width:2px;right:-1px;left:auto}.person-info .left{width:2px;right:0;left:-1px}.person-info .bottom{top:auto;bottom:-1px}.painter-point{background-image:-webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.25, rgba(255,255,255,0.9)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.9)), color-stop(0.75, rgba(255,255,255,0.9)), color-stop(0.75, transparent), to(transparent));background-image:-o-linear-gradient(-45deg, rgba(255,255,255,0.9) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255,255,255,0.9) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 75%, transparent 75%, transparent);background-size:8px 8px;height:17px;width:38px;display:inline-block;vertical-align:sub}.top .has-view{line-height:21px}.responsive-show{display:none}.algolia-autocomplete .aa-dropdown-menu{background-color:#fff;border:1px solid #eee;margin:0 0 5px 19px}.algolia-autocomplete .aa-dropdown-menu img{height:20px}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion{cursor:pointer;padding:5px 4px;border-bottom:1px solid #eee}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor{background-color:#F7F7F7}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion em{font-weight:bold;color:#d23f31;font-style:normal}.algolia-autocomplete .aa-dropdown-menu .fn-right{margin:5px}.ranking{text-align:center;margin:10px}.ranking-title{font-size:18px;text-align:center}.more-article{display:block;text-align:center;padding:5px;background-color:#f6f6f6;margin-bottom:10px;border-bottom:1px solid #eee}.module-list .slogan{position:absolute;top:50%;margin-top:-12px}.module-list .title{color:#767676;margin:5px 0 5px 30px;display:block;line-height:20px}.module-list.open-source .title{margin-left:60px}.module-list.open-source .slogan{margin-top:-11px}.module-list.domain .slogan{text-align:center;margin-top:-10px;width:30px}.module-list.domain .title{margin-left:50px}.module-list.domain .tag{margin-right:10px}.module-panel.ad{padding:10px;text-align:center}.module-panel.ad .header{color:rgba(0,0,0,0.87)}.module-panel.ad img{margin-bottom:5px}.article-actions .fn-right>a,.article-actions .fn-right>span{padding:4px 8px;border-radius:2px;display:inline-block;line-height:16px;float:left;text-decoration:none;margin-top:10px}.article-info{position:relative;margin-bottom:10px}.article-info>div.article-params{position:absolute;top:-2px;left:40px;font-size:12px;min-height:30px;line-height:15px}#heatBar{position:fixed;top:2px;right:0px;width:100%}h1.article-title{word-break:break-all;font-size:16px;font-weight:normal;margin:10px 0}h1.article-title>a{color:#595959}h1.article-title>a:hover{color:rgba(0,0,0,0.87)}#thoughtProgress{height:2px;position:relative;margin-bottom:6px;left:-7px}#thoughtProgress .bar{position:absolute;background-color:#e0e0e0;height:2px}#thoughtProgress .icon-video{position:absolute;top:-8px;left:0;cursor:pointer;color:#d23f31}.comment-submit{margin-top:10px}label.cmt-anonymous{margin:7px 15px 0 0}#shareClipboard.tooltipped-hover{color:#4285f4}.comments>.comments-header{border-bottom:1px solid #CCCCCC;margin:20px 0 0;padding:10px 5px 5px 10px}.comments>div.comments-header svg{margin:3px 10px 0 0}.comments>div.comments-header a{text-decoration:none;color:rgba(0,0,0,0.87)}.comments li.shield{background-image:-webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.25, rgba(255,255,255,0.9)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.9)), color-stop(0.75, rgba(255,255,255,0.9)), color-stop(0.75, transparent), to(transparent));background-image:-o-linear-gradient(-45deg, rgba(255,255,255,0.9) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255,255,255,0.9) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 75%, transparent 75%, transparent);background-color:#f7f7f7;background-size:45px 45px}.comments.list>ul>li.perfect,.comments.list>ul>li.perfect:hover{background-color:#f9f6f6}.comments>ul>li:hover .hover-show{visibility:visible}.comments>ul>li:hover .comment-action,.comments>ul>li.selected .comment-action{display:block}.comment-get-comment.list>ul>li{margin-bottom:10px;padding-top:0}.comment-replies.list>ul{margin-top:10px}.comment-replies.list>ul>li{border-bottom-width:0;border-top:1px solid #eee}.comment-replies.list>ul>li{background-color:transparent}.comments li .fn-pointer:hover{color:#999}.comments .comment>p{margin-top:10px;margin-bottom:0}.comments.nice ul{margin-top:5px;border:1px solid #eee;border-radius:3px}.comments.nice>ul>li:last-child{border-bottom-width:0}.comment-login{border:1px solid #D9D9D9;border-top-color:#C0C0C0;border-left-color:#C0C0C0;box-sizing:border-box;margin:10px;background-color:#fafafa}.comment-login>a{text-align:center;display:block;padding:21px 0px 21px}#articleRewardContent{margin-top:20px;padding:10px;background-image:-webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.25, rgba(255,255,255,0.9)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.9)), color-stop(0.75, rgba(255,255,255,0.9)), color-stop(0.75, transparent), to(transparent));background-image:-o-linear-gradient(-45deg, rgba(255,255,255,0.9) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255,255,255,0.9) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 75%, transparent 75%, transparent);background-color:#f7f7f7;background-size:45px 45px}#articleRewardContent>p{margin:0}#articleRewardContent.reward{text-align:center}#articleRewardContent.reward>span{margin:20px;display:inline-block}#commentContent,#chatContent{background-color:#FAFAFA;margin:51px 0 0 0;overflow:hidden;padding:4px;height:88px;width:100%}.article-tags .tag{margin:0;padding:0 3px}.share{margin:10px 0;position:relative}.share svg{height:16px;width:16px}.share #qrCode{position:absolute;bottom:30px;right:0;border:5px solid #eee;z-index:1;height:90px;border-radius:3px;width:90px}.share [class^="icon-"]{cursor:pointer;transition:all 0.2s ease-out 0s;-webkit-transition:all 0.2s ease-out 0s;display:inline-block;font-size:16px}.share [class^="icon-"]:hover{color:#4285f4}.cm-s-default.CodeMirror{height:auto !important}.CodeMirror-scroll{min-height:88px}#replyUseName{visibility:hidden;line-height:18px;height:18px;margin:5px 0}#articleToC{top:21px;z-index:10}.article-toc li{list-style-type:none}.article-toc li a{padding:5px 10px 5px 20px;border-left:2px solid transparent;display:block;line-height:20px;color:#767676}.article-toc li a:last-child{border-bottom-width:0}.article-toc li a:hover{border-left:1px solid #4285f4;background-color:#F7F7F7;padding-left:21px;color:#4285f4;text-decoration:none}.article-toc li.current a{border-left:2px solid #4285f4;background-color:#f0f0f0;color:#4285f4}.article-toc li.toc-h2 a,.article-toc li.toc-h2.current a:hover{padding-left:34px}.article-toc li.toc-h3 a,.article-toc li.toc-h3.current a:hover{padding-left:48px}.article-toc li.toc-h4 a,.article-toc li.toc-h4.current a:hover{padding-left:62px}.article-toc li.toc-h5 a,.article-toc li.toc-h5.current a:hover{padding-left:86px}.article-toc li.toc-h2 a:hover{padding-left:35px}.article-toc li.toc-h3 a:hover{padding-left:49px}.article-toc li.toc-h4 a:hover{padding-left:63px}.article-toc li.toc-h5 a:hover{padding-left:87px}.domains{border-bottom:2px solid #d23f31}.domains svg{vertical-align:sub}.domains a{height:17px;text-align:center;padding:10px 2px;color:#999;text-decoration:none;line-height:16px;display:block;flex:1;font-size:12px}.domains a.selected{color:#4285f4}.domains-count{padding:10px 18px;font-size:18px;line-height:26px;color:#1b3650;text-align:center;background-image:linear-gradient(#f5fbff, #e4f0ff);border:1px solid #cee0e7;border-radius:3px;width:100%;box-sizing:border-box;margin:10px 0 10px}.article-list li.stick{background-color:#f9f6f6}.article-list li.stick .stick-remains{vertical-align:top}.article-list li.stick:hover .stick-remains{display:inline}.article-list li .commenters{display:none;top:32%;position:absolute;right:10px}.article-list li .commenters>a{float:left;margin-left:4px;width:25px;text-decoration:none;color:#999}.article-list li .commenters>a:hover{color:#4285f4}.article-list li:hover .commenters{display:block}.article-list .preview{position:absolute;left:65px;z-index:1;top:40px;background-color:#FFF;border:1px solid #DDDDDD;border-radius:3px 3px 3px 3px;padding:5px 10px;opacity:0.9;width:70%;min-width:130px;min-height:36px}.article-list .preview .ico-arrow{width:0px;height:0px;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid rgba(255,255,255,0.9);position:absolute;top:-10px;z-index:1;left:11px}.article-list .preview .ico-arrowborder{width:0px;height:0px;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #DDDDDD;position:absolute;top:-11px;left:10px}.heat{position:absolute;height:5px;background-color:#d23f31;z-index:1;bottom:-3px;right:0}.point,.point-remove{position:absolute;height:5px;background-color:#d23f31;z-index:1;bottom:-3px;right:0px;width:5px;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:slideInRight;animation-name:slideInRight}.point-remove{animation-name:slideInLeft;-webkit-animation-name:slideInLeft}@keyframes slideInLeft{0%{right:0}100%{right:100%}}@-webkit-keyframes slideInLeft{0%{right:0}100%{right:100%}}@keyframes slideInRight{0%{right:100%}100%{right:0}}@-webkit-keyframes slideInRight{0%{right:100%}100%{right:0}}.article-level0{color:rgba(0,0,0,0.38)}.article-level1{color:#ffcc00}.article-level2{color:#ffc1cc}.article-level3{color:#ff6633}.article-level4{color:#d23f31}.guide .intro.content-reset{padding:10px;line-height:24px}.guide .guide-tab,.guide .step-btn{margin:10px}.guide .form{margin:0;width:auto}.guide #avatarUpload label{margin-top:0}.guide .tag-desc>li:hover>a{border-bottom-style:solid;border-radius:3px}.guide .tag-desc li.current>a{background-color:rgba(0,0,0,0.38);color:#fff;border-color:#bbb}.guide .intro dt.current{color:#ffac45}.guide .fn-flex>div{padding:10px;box-sizing:border-content;width:50%}.guide .md{background-color:#f1f7fe}.guide .md pre{white-space:pre-wrap;word-wrap:break-word}.verify .intro{padding:30px;background-color:#f1f7fe;color:#616161}.verify .form{font-size:14px;line-height:1.6}.verify .form>svg{margin:0 auto;height:50px;width:50px;display:block}.verify .form input[type="text"],.verify .form input[type="password"]{margin:10px 0;width:100%;padding-left:36px;background-color:#FFF}.verify .form button{margin:10px 0;width:100%}.verify .form .input-wrap{position:relative}.verify .form .input-wrap svg{color:#999;position:absolute;top:19px;left:10px}.verify .form .captcha-img{top:11px;position:absolute;height:31px;left:1px;border-radius:3px 0 0 3px}.verify .form input.captcha-input{padding-left:91px}.module-panel .tags li{float:left;list-style:none;line-height:19px;margin:10px 10px 0 0}.module-panel .tags{margin:0 0 10px 10px}.tag-desc.fn-clear{margin:10px 0 0px 10px}.tag-desc>li{float:left;position:relative;list-style:none;margin:0 10px 10px 0;font-size:12px}.tag-desc>li:hover>div{display:block}.tag-desc>li>a{float:left;color:#999;padding:2px 5px;border:1px solid #DDDDDD;position:relative;height:20px;white-space:nowrap;word-wrap:normal;background-color:#F7F7F7;border-radius:3px 3px 3px 3px;line-height:21px}.tag-desc>li>a:hover{text-decoration:none}.tag-desc>li:hover>a{border-bottom-style:dotted;border-radius:3px 3px 0 0;opacity:0.7;z-index:3}.tag-desc>li>a>span{text-decoration:none;color:#999}.tag-desc>li>a>img{border-radius:2px 2px 2px 2px;height:16px;width:16px;margin:-2px 2px 0 0}.tag-desc>li>div{background-color:#F7F7F7;border:1px solid #DDDDDD;border-radius:3px 0 3px 3px;display:none;right:0;margin-left:3px;padding:5px 10px;position:absolute;top:25px;z-index:2;opacity:0.9;width:200px;min-width:150px}.tag-articles-tag-desc.tag-desc>li>div{left:-3px;right:auto;border-radius:0 3px 3px 3px}.tag-articles .content{padding-top:10px}.tag-articles h1.fn-inline{line-height:28px;font-size:20px}.tag-articles .btn.red{vertical-align:super}.tag-articles .article-actions .fn-right{margin-top:-8px}.tags-cold li h2,.tags-trend li h2{display:inline-block}.list>ul.tags-trend>li,.list>ul.tags-cold>li{padding:5px}.tag-artile-user{border-bottom:1px dotted #CCCCCC;padding:0 0px 10px 10px}code.prettyprint{display:inline;border:none;background-color:initial;border-radius:initial;padding:initial}code .str{color:initial}code .kwd{color:initial}code .com{color:initial;font-style:italic}code .typ{color:initial}code .lit{color:initial}code .pun{color:initial}code .pln{color:initial}code .tag{color:initial}code .atn{color:initial}code .atv{color:initial}code .dec{color:initial}.activity{min-height:300px}.activity-char-btns{margin-top:10px}#charCanvas{border:1px solid #eee;border-radius:5px;background-color:#fff;display:block;margin:20px auto;background-image:url(../images/m-char.png);background-size:cover}.chat-room .online-cnt{margin-top:11px}.chat-room .list{height:200px;overflow:auto}.index .index-wrap{background-color:#fafafa;border-bottom:1px solid #eee;border-top:1px solid #eee}.index>.slogan{padding:10px;color:#767676;border-top:1px solid #eee;background-color:#fafafa}.index>.slogan a:hover svg{color:#4285f4}.index .tag-desc>li:hover>span{border-bottom-style:solid;border-radius:3px;opacity:0.7;z-index:3}.index a.count{position:absolute;right:10px;top:50%;margin-top:-8px}.index a.count:visited{background-color:#f6f6f6;color:#999}.index .module-list .title{margin-right:30px}.index .module-header{margin:-1px;text-align:right;text-shadow:0 0 0}.index .module-header a{color:#fff}.user-name{font-size:20px;font-weight:300;line-height:26px;border-bottom:1px dotted #CCC;margin-bottom:20px;padding:20px 10px 25px 10px}.user-name #userNicknameDom{font-size:26px;line-height:30px}.user-name .online,.user-name .offline{background-color:#d23f31;color:#fff;font-size:12px;line-height:20px;border-radius:3px;height:20px;display:inline-block;padding:0 5px 0 3px;vertical-align:middle}.user-name .offline{background-color:rgba(0,0,0,0.54)}.user-name button.follow{font-size:14px;width:100%;margin:10px 0}.user-info{line-height:26px;font-size:12px;color:#616161}.user-intro{line-height:26px}.pre-post>div{font-size:30px;border-bottom:1px solid #eee;padding:20px 10px;text-align:center}.pre-post>div:last-child{border-bottom-width:0}.pre-post>div>a{color:#404040;display:block;margin-bottom:20px}.pre-post a:hover{text-decoration:none;color:#4285f4}.pre-post a svg{height:30px;width:30px;vertical-align:middle;margin-right:20px}.pre-post div.ft-fade{font-size:15px}#articleContent{height:332px;margin:30px 0 20px 0;padding:4px}#articleRewardContent{margin-top:10px;padding:5px}#tip{position:inherit;white-space:pre-wrap}.tip-add-article{color:#777777;list-style:circle outside none;margin-left:20px;line-height:22px}.article-content{width:100%;position:relative}.article-content#articleAudio{width:auto;margin-bottom:10px}#showReward{color:#999;width:100%;display:block}.post .tags-wrap{position:relative}.post .tags-input{border:1px solid #CCCCCC;background-color:#FAFAFA;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,0.075) inset;padding:5px 5px 3px 5px;width:100%;line-height:17px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;height:33px}.post .tags-input span.tag{margin:2px 5px 0 0px;color:#4285f4}.post .tags-input .tag>span.close{cursor:pointer;margin-left:5px;color:#999}.post .tags-input span.tag.haved{color:rgba(0,0,0,0.87);background-color:#ccc;transition:background 0.5s ease-in, color 0.3s ease-out}.post .tags-input input{border:0;outline:none;border-radius:0;padding:2px;box-shadow:0 0 0;background-color:transparent}.post .tags-input input:focus{border:0;background-color:transparent;box-shadow:0 0 0}.post .domains-tags,.post .completed-panel{display:none;position:absolute;background-color:#FFF;border:1px solid #eee;z-index:10;padding:10px;border-radius:0 0 3px 3px;width:100%;box-sizing:border-box;top:32px}.post .domains-tags .tag{cursor:pointer;color:#4285f4}.post .domains-tags>span.current{color:#FFF;background-color:#2c5d8d;background-image:linear-gradient(#7ba9d6, #2c5d8d);border-color:#689cd0}.post .completed-panel{padding:0;overflow:auto;left:0}.post .completed-panel a{display:block;padding:3px;text-decoration:none;line-height:18px;height:18px}.post .completed-panel a.selected,.post .completed-panel a:hover{background-color:#F7F7F7}.tab-current{background-color:#fafafa;border-bottom:1px solid #eee;padding:5px 10px;font-size:14px;font-weight:bold}.tab-current>span{color:#767676}.tab{list-style:none}.tab>li a{padding:5px 0;display:block}.home-invisible{margin:10px 0;border-bottom:1px dotted #ccc;padding-bottom:10px}.notification-tab a:hover{text-decoration:none}.notification .read{background-color:#FAFAFA;opacity:0.5}.notification li{background-color:#F8F8FF;line-height:21px}.notification li:last-child{border-bottom-width:0}.follow li{position:relative;border-bottom:1px solid #EEEEEE;padding:10px;list-style:none;box-sizing:border-box}.follow .user-online{position:absolute;left:45px;top:45px}.admin .avatar{height:17px;width:17px}.admin .tags{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:bottom}.admin .form input[type=text],.admin .form input[type=number]{width:30%;margin-right:10px}.points{border-collapse:collapse;border-spacing:0;width:100%}.points td{border-bottom:1px solid #CCCCCC}.points .even{background-color:#F7F7F7}.points .date{width:75px;padding:10px}.points .name{word-break:break-all}.points .type{width:60px;padding:0 10px}.points .sum{text-align:center;width:35px;padding:0 10px;color:#f37800;font-weight:700}.points .sum.plus{color:#53a000}.points .balance{width:40px;padding:0 10px}#avatarUpload{overflow:hidden}.settings-avatar .btn{margin-top:0}.settings-avatar .avatar-big{display:block;margin-bottom:10px}.settings-avatar li{margin-left:20px}.error-403>.slogan{padding-top:20px;background-color:#fafafa;border-bottom:1px solid #eee}.error-403 .slogan-border{margin:20px 0 20px;color:#767676;background-color:#fff;border:1px solid #eee;border-radius:3px;border-bottom:1px solid #eee;width:100%}.error-403 .slogan-register{padding-top:20px;text-align:center}.error-403 .slogan-text{margin:20px 10px}.module.editor-toolbar-emoji{position:absolute;bottom:14px;height:111px;overflow:auto;z-index:124;background-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,0.2);width:50%}.module.editor-toolbar-emoji .emoji{cursor:pointer;padding:5px;border-radius:2px;margin-bottom:0}.module.editor-toolbar-emoji .emoji:hover{background-color:rgba(0,0,0,0.38)}.wrapper .editor-toolbar{border:1px solid #ccc}.wrapper .editor-toolbar>a:last-child{display:none}.link-forge .link-forge-upload{margin:10px 0}.link-forge .link-forge-upload input[type=text]{width:74%;margin-right:20px}.link-forge .module-panel{max-height:409px;overflow:hidden}#breezemoonList button.absolute{right:0;top:0}
+html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;height:100%;background-color:#3b3e43}body{margin:0;font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif;font-size:14px;color:rgba(0,0,0,0.87);background-color:#fff}::-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}@-webkit-keyframes spaceboots{0%{-webkit-transform:translate(0px, 0);-moz-transform:translate(0px, 0);-o-transform:translate(0px, 0);-ms-transform:translate(0px, 0);transform:translate(0px, 0)}30%{-webkit-transform:translate(0px, 1px);-moz-transform:translate(0px, 1px);-o-transform:translate(0px, 1px);-ms-transform:translate(0px, 1px);transform:translate(0px, 1px)}45%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}60%{-webkit-transform:translate(0px, -1px);-moz-transform:translate(0px, -1px);-o-transform:translate(0px, -1px);-ms-transform:translate(0px, -1px);transform:translate(0px, -1px)}80%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}}@-o-keyframes spaceboots{0%{-webkit-transform:translate(0px, 0);-moz-transform:translate(0px, 0);-o-transform:translate(0px, 0);-ms-transform:translate(0px, 0);transform:translate(0px, 0)}30%{-webkit-transform:translate(0px, 1px);-moz-transform:translate(0px, 1px);-o-transform:translate(0px, 1px);-ms-transform:translate(0px, 1px);transform:translate(0px, 1px)}45%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}60%{-webkit-transform:translate(0px, -1px);-moz-transform:translate(0px, -1px);-o-transform:translate(0px, -1px);-ms-transform:translate(0px, -1px);transform:translate(0px, -1px)}80%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}}@-ms-keyframes spaceboots{0%{-webkit-transform:translate(0px, 0);-moz-transform:translate(0px, 0);-o-transform:translate(0px, 0);-ms-transform:translate(0px, 0);transform:translate(0px, 0)}30%{-webkit-transform:translate(0px, 1px);-moz-transform:translate(0px, 1px);-o-transform:translate(0px, 1px);-ms-transform:translate(0px, 1px);transform:translate(0px, 1px)}45%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}60%{-webkit-transform:translate(0px, -1px);-moz-transform:translate(0px, -1px);-o-transform:translate(0px, -1px);-ms-transform:translate(0px, -1px);transform:translate(0px, -1px)}80%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}}@keyframes spaceboots{0%{-webkit-transform:translate(0px, 0);-moz-transform:translate(0px, 0);-o-transform:translate(0px, 0);-ms-transform:translate(0px, 0);transform:translate(0px, 0)}30%{-webkit-transform:translate(0px, 1px);-moz-transform:translate(0px, 1px);-o-transform:translate(0px, 1px);-ms-transform:translate(0px, 1px);transform:translate(0px, 1px)}45%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}60%{-webkit-transform:translate(0px, -1px);-moz-transform:translate(0px, -1px);-o-transform:translate(0px, -1px);-ms-transform:translate(0px, -1px);transform:translate(0px, -1px)}80%{-webkit-transform:translate(0px, 0px);-moz-transform:translate(0px, 0px);-o-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px)}}.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.65;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 img{cursor:zoom-in}.editor-panel .content-reset img,img.emoji{cursor:auto}.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 rgba(0,0,0,0.38)}.content-reset table{width:100%;border:1px solid #dedede;margin:15px auto;border-collapse:collapse;empty-cells:show}.content-reset thead{text-align:center}.content-reset td,.content-reset th{height:35px;border:1px solid #dedede;padding:0 10px}.content-reset th{font-weight:bold;text-align:center !important;background:rgba(158,188,226,0.2)}.content-reset tbody tr:nth-child(2n){background:rgba(158,188,226,0.12)}.content-reset tr:hover{background:#efefef}.content-reset code{padding:0.2em 0.4em;margin:0;font-size:85%;background-color:rgba(252,41,41,0.12);border-radius:3px;color:#d23f31;font-family:mononoki,Consolas,"Liberation Mono",Menlo,Courier,monospace;word-break:break-word}.content-reset pre>code{padding:0.5em;color:rgba(0,0,0,0.87);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 rgba(0,0,0,0.38);border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.content-reset li.task-list-item{list-style:none}.content-reset li.task-list-item>input{margin-left:-2em;vertical-align:middle}.fn-flex{display:flex}.fn-flex-1{flex:1;min-width:1px}.fn-pointer{cursor:pointer}.fn-sub{vertical-align:sub}.fn-clear:before,.fn-clear:after{display:table;content:""}.fn-clear:after{clear:both}.fn-left{float:left}.fn-right{float:right}.fn-none{display:none}.fn-hidden{visibility:hidden}.fn-oh{overflow:hidden}.fn-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.fn-hr5{display:block;height:5px}.fn-content{padding:15px}.fn-inline{display:inline-block}.fn-text-top{vertical-align:text-top}.ft-13{font-size:13px}.ft-smaller{font-size:12px}.ft-gray{color:rgba(0,0,0,0.54)}.ft-fade{color:rgba(0,0,0,0.38)}.ft-red{color:#d23f31}.ft-blue{color:#4285f4}.ft-green{color:#569e3d}.ft-a-title{color:#616161;text-decoration:none}.ft-a-title:hover{color:rgba(0,0,0,0.87)}.ft-center{text-align:center}.ft-nowrap{white-space:nowrap}.count{text-decoration:none;padding:2px 5px;font-size:12px;font-weight:600;line-height:1;color:#616161;background-color:#eee;border-radius:20px;display:inline-block}.count:hover{text-decoration:none}.sub-head{padding:15px;border-bottom:1px solid #eee;line-height:18px;font-size:18px}.wrapper .aplayer{margin:0;box-shadow:0 1px 2px rgba(0,0,0,0.2)}.wrapper .aplayer .aplayer-pic{background-size:cover}.wrapper .aplayer svg{height:16px;width:16px;float:left;margin:0px 0 0 2px}.fn-hr10{height:10px;display:block}.tag{padding:2px 3px;font-size:12px;border-radius:2px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.12);background-color:#f0f0f0;color:#999;white-space:nowrap;display:inline-block;margin:5px 0;line-height:16px}.tag:hover{text-decoration:none;color:rgba(0,0,0,0.87);background-color:#ccc}button,.btn{cursor:pointer;color:rgba(0,0,0,0.87);border-radius:3px;padding:6px 12px;background-color:rgba(0,0,0,0.02);border:1px solid #D5D5D5;border-bottom-color:#E1E1E1;box-sizing:border-box;line-height:19px;white-space:nowrap}button:hover,.btn:hover{text-decoration:none;border-color:rgba(0,0,0,0.38);background-color:#eee}button:active,.btn:active{background-color:rgba(0,0,0,0.38);box-shadow:0 2px 4px rgba(0,0,0,0.05) inset}button.green,.btn.green{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.15);background-color:#60b044;border-color:#5ca941}button.green:hover,.btn.green:hover{background-color:#569e3d}button.green:active{background-color:#569e3d;border-color:#418737;box-shadow:0 2px 4px rgba(0,0,0,0.25) inset}button.red,.btn.red{color:#d23f31}button.red:hover,.btn.red:hover,.btn.red-hover{color:#FFF;background-color:#d23f31;border-color:#c0372a}button.red:active,.btn.red:active{background-color:#d23f31;border-color:#c9320c;color:#FFF;box-shadow:0 2px 4px rgba(0,0,0,0.25) inset}button.small,.btn.small{padding:0 5px;font-size:12px;font-weight:normal;display:inline-block;line-height:19px;height:20px;text-shadow:initial}button.absolute{position:absolute;right:10px;top:10px}a[class^="icon-"],a[class*=" icon-"]{color:rgba(0,0,0,0.87)}a[class^="icon-"]:hover,a[class*=" icon-"]:hover{text-decoration:none;color:#4285f4}.tip.error{color:#d23f31;background-color:#fcdede;border:1px solid #d2b2b2}.tip ul{margin:10px 40px;text-align:left}.tip.succ{background-color:#D4F6FA;border:1px solid #1D2B3D;color:#1D2B3D}#registerTip,#loginTip,#addArticleTip,#profilesTip,#syncb3Tip,#passwordTip{white-space:normal;word-wrap:break-word}.avatar,.avatar-small,.avatar-mid,.avatar-big{border-radius:3px 3px 3px 3px;background-size:cover;background-repeat:no-repeat;background-position:center center;display:inline-block;vertical-align:middle}.avatar{height:30px;width:30px;margin-right:10px}.avatar-small{height:20px;width:20px}.avatar-big{border:1px solid #EEEEEE;height:210px;width:210px;border-radius:6px}.avatar-mid{border:1px solid #EEEEEE;height:118px;width:118px;border-radius:4px}.status{border-top:1px dotted #CCCCCC;list-style:none;padding:10px 0}.status>li{overflow:hidden;flex:1;-webkit-box-flex:1;text-align:center}.status>li>strong{font-size:20px}.form{position:relative}.form table{width:100%}.form input[type=text],.form input[type=datetime],.form input[type=datetime-local],.form input[type=password],.form input[type=number],.form select,.form textarea{border:1px solid #CCCCCC;background-color:#FAFAFA;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,0.075) inset;padding:7px 8px;width:100%;line-height:17px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.form input[type=text]:focus,.form input[type=password]:focus,.form textarea:focus{background-color:#FFF;box-shadow:0 1px 2px rgba(0,0,0,0.075) inset,0 0 5px rgba(81,167,232,0.5);border:1px solid #51A7E8}.form label{color:#616161;font-size:15px;margin:10px 0 5px;float:left}.form label.ft-red{color:#d23f31}.form label>a{font-weight:normal}.form label input[type=checkbox],.form label input[type=radio]{vertical-align:middle}.form input[type=file]{width:1px;opacity:0.001;height:16px}.pagination{background-color:#FFFFFF;background:linear-gradient(#fff, #EFEFEF);background:-ms-linear-gradient(#fff, #EFEFEF);background:-o-linear-gradient(#fff, #EFEFEF);background:-webkit-linear-gradient(#fff, #EFEFEF);border:1px solid #eaeaea;border-bottom:0;display:inline-block;margin:10px;border-radius:3px;font-size:12px;float:right}.pagination a,.pagination span{border-bottom:1px solid #DADADA;border-left:1px solid rgba(255,255,255,0.7);border-right:1px solid rgba(0,0,0,0.04);color:#777777;float:left;padding:5px 8px;text-decoration:none;text-shadow:0 1px 0 white}.pagination a{cursor:pointer}.pagination a:hover{color:#4285f4;border-bottom-color:#CFDCE8;background-color:#fafbfd;background:linear-gradient(#fafbfd, #dce6ef);background:-ms-linear-gradient(#fafbfd, #dce6ef);background:-o-linear-gradient(#fafbfd, #dce6ef);background:-webkit-linear-gradient(#fafbfd, #dce6ef)}.pagination span.current{background-color:#FCFCFC;background:linear-gradient(#FCFCFC, #EBEBEB);background:-ms-linear-gradient(#FCFCFC, #EBEBEB);background:-o-linear-gradient(#FCFCFC, #EBEBEB);background:-webkit-linear-gradient(#FCFCFC, #EBEBEB);border-bottom-color:#D26911;color:#000000}.pagination span.gap{color:#BBB}.pagination select{border:0;color:#777;padding:4px 5px;white-space:nowrap;float:left;border-bottom:1px solid #DADADA;border-radius:0;background:linear-gradient(#fff, #EFEFEF)}.dialog-background{background-color:#000000;display:none;height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%;z-index:200}.dialog-panel{display:none;position:fixed;z-index:201;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.25);border-radius:5px;box-shadow:0 0 18px rgba(0,0,0,0.4)}.dialog-header-bg{padding:10px;font-size:18px;font-weight:normal;border-bottom:1px solid #eee}.dialog-header-bg .icon-close{color:rgba(0,0,0,0.25);font-size:12px;float:right;font-weight:bold}.dialog-header-bg .icon-close:hover{color:rgba(0,0,0,0.87)}.dialog-main{min-width:200px;padding:10px;box-sizing:content-box}.completed-panel{padding:0;overflow:auto;left:0;display:none;position:absolute;background-color:#FFF;border:1px solid #eee;z-index:72;border-radius:0 0 3px 3px;width:50%;top:32px;box-sizing:border-box}.completed-panel a{display:block;padding:3px;text-decoration:none;line-height:18px;height:18px}.completed-panel a.selected,.completed-panel a:hover{background-color:#F7F7F7}.wrapper{margin:0 10px}.main{background-color:#FFF;padding-bottom:10px}.nav{height:28px;width:100%;padding:5px 0;z-index:99;background-color:#3b3e43}.nav .head-fn form{position:relative}.nav .head-fn h1 a svg{color:#fff;height:38px;width:38px;margin-top:-5px;float:left}.nav .user-nav{position:relative}.nav .user-nav a.unlogin{font-size:14px}.nav div>a{color:#fff;text-decoration:none;margin:0 3px;padding:4px 5px;float:right;font-size:20px;line-height:20px;height:20px}.nav div>a:hover{color:#4285f4}.nav div>a.current{border-bottom:2px solid #D26911;padding-bottom:7px}.nav div>a.last{margin-right:0}.nav .avatar-small{height:20px;width:20px;vertical-align:super}.nav .user-nav .no-msg,.nav .user-nav .msg{background-color:#777;border-radius:3px;color:#FFFFFF;font-size:14px;padding:0px 6px;margin:5px 10px;line-height:20px}.nav .user-nav .msg{-webkit-animation:spaceboots 1s infinite;-moz-animation:spaceboots 1s infinite;-o-animation:spaceboots 1s infinite;-ms-animation:spaceboots 1s infinite;animation:spaceboots 1s infinite;background-color:#d23f31;color:#FFFFFF}.nav .user-nav a.selected.no-msg,.nav .user-nav a.selected.msg{animation:none;background-color:#d23f31;border-bottom:0}.nav .form{background-color:#FFF;border:1px solid #CACACA;box-shadow:0 1px 0 rgba(255,255,255,0.4),0 0 10px rgba(0,0,0,0.1);padding:14px;position:absolute;right:0;top:33px;z-index:2;width:250px}.nav .form input[type="text"],.nav .form input[type="password"]{margin:10px 0}.nav input.search{background-color:#FFF;border:1px solid #DDDDDD;border-radius:3px 3px 3px 3px;padding:5px 8px;width:230px;margin:1px 0 0 20px;float:left;box-shadow:inset 0 1px 2px rgba(0,0,0,0.075)}.nav input.search:focus{border-color:#51A7E8;box-shadow:0 0 3px rgba(81,167,232,0.5),0 1px 1px rgba(0,0,0,0.2) inset}.footer{color:#7d8186;padding:10px 0;text-align:center;font-size:12px;background-color:#3b3e43}.footer a{color:#afb1b3}.list h2{font-size:14px;font-weight:normal}.list h2>a{color:#595959}.list h2>a:hover{color:rgba(0,0,0,0.87)}.list>ul{list-style:none}.list>ul>li{border-bottom:1px solid #eee;padding:10px;white-space:normal;word-wrap:break-word;position:relative}.list li.last{border-bottom-width:0}.list .comment>p{margin:0}.list>ul>li.cmt-perfect,.list>ul>li.cmt-perfect:hover{background-color:#f9f6f6}.has-view{margin-right:40px}#articltVia{white-space:nowrap}label.anonymous-check{margin:2px 15px 0 0}.cmts{position:absolute;right:10px;top:40%}.cmts a.count:visited{background-color:#f6f6f6;color:#999}.cm-s-default.CodeMirror{border-radius:0 0 3px 3px;box-shadow:0 1px 2px rgba(0,0,0,0.075) inset;border:1px solid #CCCCCC;margin-bottom:20px;border-top-width:0;height:330px}.CodeMirror-scroll{background-color:#FAFAFA;font-family:"Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif;box-shadow:0 1px 2px rgba(0,0,0,0.075) inset;line-height:17px}.cm-s-default.CodeMirror-fullscreen.CodeMirror{margin:0}.CodeMirror,ul.CodeMirror-hints{font-family:"Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif}.CodeMirror-hints .ico{margin:-1px 2px 0 -1px}.CodeMirror-focused .cm-matchhighlight{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVQI12NgYGBgkKzc8x9CMDAwAAAmhwSbidEoSQAAAABJRU5ErkJggg==);background-position:bottom;background-repeat:repeat-x}.CodeMirror-hint{padding-right:18px;max-width:none}.CodeMirror-hint:hover{background:#08f;color:white}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:transparent}.CodeMirror-empty.CodeMirror-focused{outline:none}.CodeMirror pre.CodeMirror-placeholder{color:#999}#revision .revisions{margin:5px 0 15px;text-align:center}#revision .revisions a{color:#616161;vertical-align:middle}#revision .revisions a:hover{color:rgba(0,0,0,0.87)}#revision .revisions a.disabled{color:rgba(0,0,0,0.38);cursor:default}#revision .revisions span{margin:0 10px 0 10px}.module{margin-bottom:10px;background-color:#FFF;border-radius:3px;width:100%;word-wrap:break-word;box-sizing:border-box}.module-header{border-radius:3px 3px 0 0;background-color:#F7F7F7;border-bottom:1px solid #eee;padding:9px 10px 10px;text-shadow:0 1px 0 #fff;font-size:14px;line-height:17px}.module-header h2{display:inline;font-size:15px;font-weight:normal}.module-panel{border-radius:0 0 5px 5px}.module-panel strong{display:inline-block;margin-top:14px}.module-panel .module-list li{border-bottom:1px dotted #CCCCCC;list-style:none outside none;padding:5px 10px;position:relative}.module-panel .module-list li.last,.module-panel .module-list li:last-child{border-bottom-width:0}.module .comment-content{color:#999999;float:left;margin-left:5px;width:210px}.module-panel.form{padding:0 10px 10px}#killBrowser .module{height:235px;width:520px}#killBrowser p{margin:10px 0}#killBrowser ul{margin-left:30px}#killBrowser img{position:absolute;right:36px;top:58px}.emoji{width:1.3em;height:1.3em;display:inline-block;margin-bottom:.25em;background-size:contain;vertical-align:text-top}.person-info{position:relative}.person-info .info{position:relative;left:-1px;top:-1px;overflow:hidden;height:35px}.person-info .info button.red{position:absolute;border-radius:3px 0 0 0;min-width:35%;color:#FFF;padding:5px 0;background-color:#b33630;background-image:linear-gradient(#dc5f59, #b33630);border-color:#cd504a;letter-spacing:1px}.person-info .info button.red:hover{letter-spacing:2px}.person-info .info .fn-right{margin:9px 10px 0 0}.person-info .status{border-bottom:1px dotted #ccc;border-top-width:0;margin-top:-20px;margin-bottom:15px}.person-info .status .fn-pointer:hover span{color:rgba(0,0,0,0.87)}.person-info .module-panel{padding:0 10px 10px 10px}.person-info .activity-board{position:absolute;height:2px;background-color:#b33630;top:-1px}.person-info .right{width:2px;right:-1px;left:auto}.person-info .left{width:2px;right:0;left:-1px}.person-info .bottom{top:auto;bottom:-1px}.painter-point{background-image:-webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.25, rgba(255,255,255,0.9)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.9)), color-stop(0.75, rgba(255,255,255,0.9)), color-stop(0.75, transparent), to(transparent));background-image:-o-linear-gradient(-45deg, rgba(255,255,255,0.9) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255,255,255,0.9) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 75%, transparent 75%, transparent);background-size:8px 8px;height:17px;width:38px;display:inline-block;vertical-align:sub}.top .has-view{line-height:21px}.responsive-show{display:none}.algolia-autocomplete .aa-dropdown-menu{background-color:#fff;border:1px solid #eee;margin:0 0 5px 19px}.algolia-autocomplete .aa-dropdown-menu img{height:20px}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion{cursor:pointer;padding:5px 4px;border-bottom:1px solid #eee}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor{background-color:#F7F7F7}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion em{font-weight:bold;color:#d23f31;font-style:normal}.algolia-autocomplete .aa-dropdown-menu .fn-right{margin:5px}.ranking{text-align:center;margin:10px}.ranking-title{font-size:18px;text-align:center}.more-article{display:block;text-align:center;padding:5px;background-color:#f6f6f6;margin-bottom:10px;border-bottom:1px solid #eee}.module-list .slogan{position:absolute;top:50%;margin-top:-12px}.module-list .title{color:#767676;margin:5px 0 5px 30px;display:block;line-height:20px}.module-list.open-source .title{margin-left:60px}.module-list.open-source .slogan{margin-top:-11px}.module-list.domain .slogan{text-align:center;margin-top:-10px;width:30px}.module-list.domain .title{margin-left:50px}.module-list.domain .tag{margin-right:10px}.module-panel.ad{padding:10px;text-align:center}.module-panel.ad .header{color:rgba(0,0,0,0.87)}.module-panel.ad img{margin-bottom:5px}.article-actions .fn-right>a,.article-actions .fn-right>span{padding:4px 8px;border-radius:2px;display:inline-block;line-height:16px;float:left;text-decoration:none;margin-top:10px}.article-info{position:relative;margin-bottom:10px}.article-info>div.article-params{position:absolute;top:-2px;left:40px;font-size:12px;min-height:30px;line-height:15px}#heatBar{position:fixed;top:2px;right:0px;width:100%}h1.article-title{word-break:break-all;font-size:16px;font-weight:normal;margin:10px 0}h1.article-title>a{color:#595959}h1.article-title>a:hover{color:rgba(0,0,0,0.87)}#thoughtProgress{height:2px;position:relative;margin-bottom:6px;left:-7px}#thoughtProgress .bar{position:absolute;background-color:#e0e0e0;height:2px}#thoughtProgress .icon-video{position:absolute;top:-8px;left:0;cursor:pointer;color:#d23f31}.comment-submit{margin-top:10px}label.cmt-anonymous{margin:7px 15px 0 0}#shareClipboard.tooltipped-hover{color:#4285f4}.comments>.comments-header{border-bottom:1px solid #CCCCCC;margin:20px 0 0;padding:10px 5px 5px 10px}.comments>div.comments-header svg{margin:3px 10px 0 0}.comments>div.comments-header a{text-decoration:none;color:rgba(0,0,0,0.87)}.comments li.shield{background-image:-webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.25, rgba(255,255,255,0.9)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.9)), color-stop(0.75, rgba(255,255,255,0.9)), color-stop(0.75, transparent), to(transparent));background-image:-o-linear-gradient(-45deg, rgba(255,255,255,0.9) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255,255,255,0.9) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 75%, transparent 75%, transparent);background-color:#f7f7f7;background-size:45px 45px}.comments.list>ul>li.perfect,.comments.list>ul>li.perfect:hover{background-color:#f9f6f6}.comments>ul>li:hover .hover-show{visibility:visible}.comments>ul>li:hover .comment-action,.comments>ul>li.selected .comment-action{display:block}.comment-get-comment.list>ul>li{margin-bottom:10px;padding-top:0}.comment-replies.list>ul{margin-top:10px}.comment-replies.list>ul>li{border-bottom-width:0;border-top:1px solid #eee}.comment-replies.list>ul>li{background-color:transparent}.comments li .fn-pointer:hover{color:#999}.comments .comment>p{margin-top:10px;margin-bottom:0}.comments.nice ul{margin-top:5px;border:1px solid #eee;border-radius:3px}.comments.nice>ul>li:last-child{border-bottom-width:0}.comment-login{border:1px solid #D9D9D9;border-top-color:#C0C0C0;border-left-color:#C0C0C0;box-sizing:border-box;margin:10px;background-color:#fafafa}.comment-login>a{text-align:center;display:block;padding:21px 0px 21px}#articleRewardContent{margin-top:20px;padding:10px;background-image:-webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.25, rgba(255,255,255,0.9)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.9)), color-stop(0.75, rgba(255,255,255,0.9)), color-stop(0.75, transparent), to(transparent));background-image:-o-linear-gradient(-45deg, rgba(255,255,255,0.9) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255,255,255,0.9) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 75%, transparent 75%, transparent);background-color:#f7f7f7;background-size:45px 45px}#articleRewardContent>p{margin:0}#articleRewardContent.reward{text-align:center}#articleRewardContent.reward>span{margin:20px;display:inline-block}#commentContent,#chatContent{background-color:#FAFAFA;margin:51px 0 0 0;overflow:hidden;padding:4px;height:88px;width:100%}.article-tags .tag{margin:0;padding:0 3px}.share{margin:10px 0;position:relative}.share svg{height:16px;width:16px}.share #qrCode{position:absolute;bottom:30px;right:0;border:5px solid #eee;z-index:1;height:90px;border-radius:3px;width:90px}.share [class^="icon-"]{cursor:pointer;transition:all 0.2s ease-out 0s;-webkit-transition:all 0.2s ease-out 0s;display:inline-block;font-size:16px}.share [class^="icon-"]:hover{color:#4285f4}.cm-s-default.CodeMirror{height:auto !important}.CodeMirror-scroll{min-height:88px}#replyUseName{visibility:hidden;line-height:18px;height:18px;margin:5px 0}#articleToC{top:21px;z-index:10}.article-toc li{list-style-type:none}.article-toc li a{padding:5px 10px 5px 20px;border-left:2px solid transparent;display:block;line-height:20px;color:#767676}.article-toc li a:last-child{border-bottom-width:0}.article-toc li a:hover{border-left:1px solid #4285f4;background-color:#F7F7F7;padding-left:21px;color:#4285f4;text-decoration:none}.article-toc li.current a{border-left:2px solid #4285f4;background-color:#f0f0f0;color:#4285f4}.article-toc li.toc-h2 a,.article-toc li.toc-h2.current a:hover{padding-left:34px}.article-toc li.toc-h3 a,.article-toc li.toc-h3.current a:hover{padding-left:48px}.article-toc li.toc-h4 a,.article-toc li.toc-h4.current a:hover{padding-left:62px}.article-toc li.toc-h5 a,.article-toc li.toc-h5.current a:hover{padding-left:86px}.article-toc li.toc-h2 a:hover{padding-left:35px}.article-toc li.toc-h3 a:hover{padding-left:49px}.article-toc li.toc-h4 a:hover{padding-left:63px}.article-toc li.toc-h5 a:hover{padding-left:87px}.domains{border-bottom:2px solid #d23f31}.domains svg{vertical-align:sub}.domains a{height:17px;text-align:center;padding:10px 2px;color:#999;text-decoration:none;line-height:16px;display:block;flex:1;font-size:12px}.domains a.selected{color:#4285f4}.domains-count{padding:10px 18px;font-size:18px;line-height:26px;color:#1b3650;text-align:center;background-image:linear-gradient(#f5fbff, #e4f0ff);border:1px solid #cee0e7;border-radius:3px;width:100%;box-sizing:border-box;margin:10px 0 10px}.article-list li.stick{background-color:#f9f6f6}.article-list li.stick .stick-remains{vertical-align:top}.article-list li.stick:hover .stick-remains{display:inline}.article-list li .commenters{display:none;top:32%;position:absolute;right:10px}.article-list li .commenters>a{float:left;margin-left:4px;width:25px;text-decoration:none;color:#999}.article-list li .commenters>a:hover{color:#4285f4}.article-list li:hover .commenters{display:block}.article-list .preview{position:absolute;left:65px;z-index:1;top:40px;background-color:#FFF;border:1px solid #DDDDDD;border-radius:3px 3px 3px 3px;padding:5px 10px;opacity:0.9;width:70%;min-width:130px;min-height:36px}.article-list .preview .ico-arrow{width:0px;height:0px;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid rgba(255,255,255,0.9);position:absolute;top:-10px;z-index:1;left:11px}.article-list .preview .ico-arrowborder{width:0px;height:0px;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #DDDDDD;position:absolute;top:-11px;left:10px}.heat{position:absolute;height:5px;background-color:#d23f31;z-index:1;bottom:-3px;right:0}.point,.point-remove{position:absolute;height:5px;background-color:#d23f31;z-index:1;bottom:-3px;right:0px;width:5px;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:slideInRight;animation-name:slideInRight}.point-remove{animation-name:slideInLeft;-webkit-animation-name:slideInLeft}@keyframes slideInLeft{0%{right:0}100%{right:100%}}@-webkit-keyframes slideInLeft{0%{right:0}100%{right:100%}}@keyframes slideInRight{0%{right:100%}100%{right:0}}@-webkit-keyframes slideInRight{0%{right:100%}100%{right:0}}.article-level0{color:rgba(0,0,0,0.38)}.article-level1{color:#ffcc00}.article-level2{color:#ffc1cc}.article-level3{color:#ff6633}.article-level4{color:#d23f31}.guide .intro.content-reset{padding:10px;line-height:24px}.guide .guide-tab,.guide .step-btn{margin:10px}.guide .form{margin:0;width:auto}.guide #avatarUpload label{margin-top:0}.guide .tag-desc>li:hover>a{border-bottom-style:solid;border-radius:3px}.guide .tag-desc li.current>a{background-color:rgba(0,0,0,0.38);color:#fff;border-color:#bbb}.guide .intro dt.current{color:#ffac45}.guide .fn-flex>div{padding:10px;box-sizing:border-content;width:50%}.guide .md{background-color:#f1f7fe}.guide .md pre{white-space:pre-wrap;word-wrap:break-word}.verify .intro{padding:30px;background-color:#f1f7fe;color:#616161}.verify .form{font-size:14px;line-height:1.6}.verify .form>svg{margin:0 auto;height:50px;width:50px;display:block}.verify .form input[type="text"],.verify .form input[type="password"]{margin:10px 0;width:100%;padding-left:36px;background-color:#FFF}.verify .form button{margin:10px 0;width:100%}.verify .form .input-wrap{position:relative}.verify .form .input-wrap svg{color:#999;position:absolute;top:19px;left:10px}.verify .form .captcha-img{top:11px;position:absolute;height:31px;left:1px;border-radius:3px 0 0 3px}.verify .form input.captcha-input{padding-left:91px}.module-panel .tags li{float:left;list-style:none;line-height:19px;margin:10px 10px 0 0}.module-panel .tags{margin:0 0 10px 10px}.tag-desc.fn-clear{margin:10px 0 0px 10px}.tag-desc>li{float:left;position:relative;list-style:none;margin:0 10px 10px 0;font-size:12px}.tag-desc>li:hover>div{display:block}.tag-desc>li>a{float:left;color:#999;padding:2px 5px;border:1px solid #DDDDDD;position:relative;height:20px;white-space:nowrap;word-wrap:normal;background-color:#F7F7F7;border-radius:3px 3px 3px 3px;line-height:21px}.tag-desc>li>a:hover{text-decoration:none}.tag-desc>li:hover>a{border-bottom-style:dotted;border-radius:3px 3px 0 0;opacity:0.7;z-index:3}.tag-desc>li>a>span{text-decoration:none;color:#999}.tag-desc>li>a>img{border-radius:2px 2px 2px 2px;height:16px;width:16px;margin:-2px 2px 0 0}.tag-desc>li>div{background-color:#F7F7F7;border:1px solid #DDDDDD;border-radius:3px 0 3px 3px;display:none;right:0;margin-left:3px;padding:5px 10px;position:absolute;top:25px;z-index:2;opacity:0.9;width:200px;min-width:150px}.tag-articles-tag-desc.tag-desc>li>div{left:-3px;right:auto;border-radius:0 3px 3px 3px}.tag-articles .content{padding-top:10px}.tag-articles h1.fn-inline{line-height:28px;font-size:20px}.tag-articles .btn.red{vertical-align:super}.tag-articles .article-actions .fn-right{margin-top:-8px}.tags-cold li h2,.tags-trend li h2{display:inline-block}.list>ul.tags-trend>li,.list>ul.tags-cold>li{padding:5px}.tag-artile-user{border-bottom:1px dotted #CCCCCC;padding:0 0px 10px 10px}code.prettyprint{display:inline;border:none;background-color:initial;border-radius:initial;padding:initial}code .str{color:initial}code .kwd{color:initial}code .com{color:initial;font-style:italic}code .typ{color:initial}code .lit{color:initial}code .pun{color:initial}code .pln{color:initial}code .tag{color:initial}code .atn{color:initial}code .atv{color:initial}code .dec{color:initial}.activity{min-height:300px}.activity-char-btns{margin-top:10px}#charCanvas{border:1px solid #eee;border-radius:5px;background-color:#fff;display:block;margin:20px auto;background-image:url(../images/m-char.png);background-size:cover}.chat-room .online-cnt{margin-top:11px}.chat-room .list{height:200px;overflow:auto}.index .index-wrap{background-color:#fafafa;border-bottom:1px solid #eee;border-top:1px solid #eee}.index>.slogan{padding:10px;color:#767676;border-top:1px solid #eee;background-color:#fafafa}.index>.slogan a:hover svg{color:#4285f4}.index .tag-desc>li:hover>span{border-bottom-style:solid;border-radius:3px;opacity:0.7;z-index:3}.index a.count{position:absolute;right:10px;top:50%;margin-top:-8px}.index a.count:visited{background-color:#f6f6f6;color:#999}.index .module-list .title{margin-right:30px}.index .module-header{margin:-1px;text-align:right;text-shadow:0 0 0}.index .module-header a{color:#fff}.user-name{font-size:20px;font-weight:300;line-height:26px;border-bottom:1px dotted #CCC;margin-bottom:20px;padding:20px 10px 25px 10px}.user-name #userNicknameDom{font-size:26px;line-height:30px}.user-name .online,.user-name .offline{background-color:#d23f31;color:#fff;font-size:12px;line-height:20px;border-radius:3px;height:20px;display:inline-block;padding:0 5px 0 3px;vertical-align:middle}.user-name .offline{background-color:rgba(0,0,0,0.54)}.user-name button.follow{font-size:14px;width:100%;margin:10px 0}.user-info{line-height:26px;font-size:12px;color:#616161}.user-intro{line-height:26px}.pre-post>div{font-size:30px;border-bottom:1px solid #eee;padding:20px 10px;text-align:center}.pre-post>div:last-child{border-bottom-width:0}.pre-post>div>a{color:#404040;display:block;margin-bottom:20px}.pre-post a:hover{text-decoration:none;color:#4285f4}.pre-post a svg{height:30px;width:30px;vertical-align:middle;margin-right:20px}.pre-post div.ft-fade{font-size:15px}#articleContent{height:332px;margin:30px 0 20px 0;padding:4px}#articleRewardContent{margin-top:10px;padding:5px}#tip{position:inherit;white-space:pre-wrap}.tip-add-article{color:#777777;list-style:circle outside none;margin-left:20px;line-height:22px}.article-content{width:100%;position:relative}.article-content#articleAudio{width:auto;margin-bottom:10px}#showReward{color:#999;width:100%;display:block}.post .tags-wrap{position:relative}.post .tags-input{border:1px solid #CCCCCC;background-color:#FAFAFA;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,0.075) inset;padding:5px 5px 3px 5px;width:100%;line-height:17px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;height:33px}.post .tags-input span.tag{margin:2px 5px 0 0px;color:#4285f4}.post .tags-input .tag>span.close{cursor:pointer;margin-left:5px;color:#999}.post .tags-input span.tag.haved{color:rgba(0,0,0,0.87);background-color:#ccc;transition:background 0.5s ease-in, color 0.3s ease-out}.post .tags-input input{border:0;outline:none;border-radius:0;padding:2px;box-shadow:0 0 0;background-color:transparent}.post .tags-input input:focus{border:0;background-color:transparent;box-shadow:0 0 0}.post .domains-tags,.post .completed-panel{display:none;position:absolute;background-color:#FFF;border:1px solid #eee;z-index:10;padding:10px;border-radius:0 0 3px 3px;width:100%;box-sizing:border-box;top:32px}.post .domains-tags .tag{cursor:pointer;color:#4285f4}.post .domains-tags>span.current{color:#FFF;background-color:#2c5d8d;background-image:linear-gradient(#7ba9d6, #2c5d8d);border-color:#689cd0}.post .completed-panel{padding:0;overflow:auto;left:0}.post .completed-panel a{display:block;padding:3px;text-decoration:none;line-height:18px;height:18px}.post .completed-panel a.selected,.post .completed-panel a:hover{background-color:#F7F7F7}.tab-current{background-color:#fafafa;border-bottom:1px solid #eee;padding:5px 10px;font-size:14px;font-weight:bold}.tab-current>span{color:#767676}.tab{list-style:none}.tab>li a{padding:5px 0;display:block}.home-invisible{margin:10px 0;border-bottom:1px dotted #ccc;padding-bottom:10px}.home-account__captch{position:relative}.home-account__captch img{position:absolute;height:31px;top:39px;right:1px;border-radius:0 3px 3px 0}.notification-tab a:hover{text-decoration:none}.notification .read{background-color:#FAFAFA;opacity:0.5}.notification li{background-color:#F8F8FF;line-height:21px}.notification li:last-child{border-bottom-width:0}.follow li{position:relative;border-bottom:1px solid #EEEEEE;padding:10px;list-style:none;box-sizing:border-box}.follow .user-online{position:absolute;left:45px;top:45px}.admin .avatar{height:17px;width:17px}.admin .tags{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:bottom}.admin .form input[type=text],.admin .form input[type=number]{width:30%;margin-right:10px}.points{border-collapse:collapse;border-spacing:0;width:100%}.points td{border-bottom:1px solid #CCCCCC}.points .even{background-color:#F7F7F7}.points .date{width:75px;padding:10px}.points .name{word-break:break-all}.points .type{width:60px;padding:0 10px}.points .sum{text-align:center;width:35px;padding:0 10px;color:#f37800;font-weight:700}.points .sum.plus{color:#53a000}.points .balance{width:40px;padding:0 10px}#avatarUpload{overflow:hidden}.settings-avatar .btn{margin-top:0}.settings-avatar .avatar-big{display:block;margin-bottom:10px}.settings-avatar li{margin-left:20px}.error-403>.slogan{padding-top:20px;background-color:#fafafa;border-bottom:1px solid #eee}.error-403 .slogan-border{margin:20px 0 20px;color:#767676;background-color:#fff;border:1px solid #eee;border-radius:3px;border-bottom:1px solid #eee;width:100%}.error-403 .slogan-register{padding-top:20px;text-align:center}.error-403 .slogan-text{margin:20px 10px}.module.editor-toolbar-emoji{position:absolute;bottom:14px;height:111px;overflow:auto;z-index:124;background-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,0.2);width:50%}.module.editor-toolbar-emoji .emoji{cursor:pointer;padding:5px;border-radius:2px;margin-bottom:0}.module.editor-toolbar-emoji .emoji:hover{background-color:rgba(0,0,0,0.38)}.wrapper .editor-toolbar{border:1px solid #ccc}.wrapper .editor-toolbar>a:last-child{display:none}.link-forge .link-forge-upload{margin:10px 0}.link-forge .link-forge-upload input[type=text]{width:74%;margin-right:20px}.link-forge .module-panel{max-height:409px;overflow:hidden}#breezemoonList button.absolute{right:0;top:0}
diff --git a/src/main/webapp/js/add-article.min.js b/src/main/webapp/js/add-article.min.js
index 445808921..bf337c646 100644
--- a/src/main/webapp/js/add-article.min.js
+++ b/src/main/webapp/js/add-article.min.js
@@ -1 +1 @@
-var AddArticle={editor:void 0,rewardEditor:void 0,remove:function(e,a){confirm(Label.confirmRemoveLabel)&&$.ajax({url:Label.servePath+"/article/"+Label.articleOId+"/remove",type:"POST",headers:{csrfToken:e},cache:!1,beforeSend:function(){$(a).attr("disabled","disabled").css("opacity","0.3")},error:function(e,t,a){$("#addArticleTip").addClass("error").html("
")},success:function(e,t){$(a).removeAttr("disabled").css("opacity","1"),0===e.sc?window.location.href=Label.servePath+"/member/"+Label.userName:$("#addArticleTip").addClass("error").html("")},complete:function(){$(a).removeAttr("disabled").css("opacity","1")}})},add:function(e,a){if(Validate.goValidate({target:$("#addArticleTip"),data:[{type:"string",max:256,msg:Label.articleTitleErrorLabel,target:$("#articleTitle")},{type:"editor",target:this.editor,max:1048576,min:4,msg:Label.articleContentErrorLabel}]})){if($("#articleRewardPoint").data("orval")&&!/^\+?[1-9][0-9]*$/.test($("#articleRewardPoint").val()))return $("#addArticleTip").addClass("error").html(""+Label.articleRewardPointErrorLabel+" "),!1;var t="";$(".tags-input .tag .text").each(function(){t+=$(this).text()+","});var i={articleTitle:$("#articleTitle").val().replace(/(^\s*)|(\s*$)/g,""),articleContent:this.editor.getValue(),articleTags:t,articleCommentable:!0,articleType:$("input[type='radio'][name='articleType']:checked").val(),articleRewardContent:this.rewardEditor.getValue(),articleRewardPoint:$("#articleRewardPoint").val().replace(/(^\s*)|(\s*$)/g,""),articleAnonymous:$("#articleAnonymous").prop("checked"),syncWithSymphonyClient:$("#syncWithSymphonyClient").prop("checked")},r=Label.servePath+"/article",l="POST";3===parseInt(i.articleType)&&(i.articleContent=JSON.parse(window.localStorage.postData).thoughtContent),Label.articleOId&&(r=r+"/"+Label.articleOId,l="PUT"),$.ajax({url:r,type:l,headers:{csrfToken:e},cache:!1,data:JSON.stringify(i),beforeSend:function(){$(a).attr("disabled","disabled").css("opacity","0.3")},error:function(e,t,a){$("#addArticleTip").addClass("error").html("")},success:function(e,t){$(a).removeAttr("disabled").css("opacity","1"),0===e.sc?(window.location.href=Label.servePath+"/article/"+e.articleId,localStorage.removeItem("postData")):$("#addArticleTip").addClass("error").html("")},complete:function(){$(a).removeAttr("disabled").css("opacity","1")}})}},init:function(){$.ua.set(navigator.userAgent),-1'},{name:"unordered-list"},{name:"ordered-list"},{name:"view"},{name:"fullscreen"},{name:"question",action:"https://hacpai.com/guide/markdown"}],status:!1});t.render(),AddArticle.editor=t.codemirror}else AddArticle.editor=Util.initTextarea("articleContent",function(e){var t=JSON.parse(localStorage.postData);t.content=e.getValue(),localStorage.postData=JSON.stringify(t)}),$("#articleContent").before('').css("margin-top",0);if($(".post-article-content .editor-toolbar .icon-view:eq(0)").parent().click(),-1!==location.href.indexOf("at=")){if(""==e.content){var a=AddArticle.editor.getValue();AddArticle.editor.setValue("\n\n\n"+a),AddArticle.editor.setCursor(CodeMirror.Pos(0,0)),AddArticle.editor.focus()}if(""==e.title){var i=Util.getParameterByName("at");$("#articleTitle").val("Hi, "+i)}if(""!==e.tags){var r=Label.discussionLabel,l=Util.getParameterByName("tags");""!==l&&(r+=","+l),$("#articleTags").val(r)}}if(""==e.title){var o=Util.getParameterByName("title");o&&0'+e.msg+"")}})}),$("#articleTags, #articleRewardPoint").keypress(function(e){if(e.ctrlKey&&10===e.charCode)return AddArticle.add(),!1}),0<$("#articleRewardPoint").val().replace(/(^\s*)|(\s*$)/g,"")&&$("#showReward").click(),"mobile"!==$.ua.device.type||"Apple"!==$.ua.device.vendor&&"Nokia"!==$.ua.device.vendor){var n=new Editor({element:document.getElementById("articleRewardContent"),dragDrop:!1,lineWrapping:!0,htmlURL:Label.servePath+"/markdown",toolbar:[{name:"emoji"},{name:"bold"},{name:"italic"},{name:"quote"},{name:"link"},{name:"image",html:'
'},{name:"unordered-list"},{name:"ordered-list"},{name:"view"},{name:"fullscreen"},{name:"question",action:"https://hacpai.com/guide/markdown"}],extraKeys:{"Alt-/":"autocompleteUserName","Ctrl-/":"autocompleteEmoji","Cmd-/":"autocompleteEmoji","Alt-S":"startAudioRecord","Alt-R":"endAudioRecord"},status:!1});n.render(),AddArticle.rewardEditor=n.codemirror,AddArticle.rewardEditor.on("keydown",function(e,t){if(8===t.keyCode){var a=e.getCursor(),i=e.getTokenAt(a),r=CodeMirror.Pos(a.line,a.ch);i=e.getTokenAt(r),/^:\S+:$/.test(i.string)&&e.replaceRange("",CodeMirror.Pos(a.line,i.start),CodeMirror.Pos(a.line,i.end-1))}}),AddArticle.rewardEditor.on("changes",function(e){var t=e.getCursor();if(0===e.getTokenAt(t).string.indexOf("@"))return e.showHint({hint:CodeMirror.hint.userName,completeSingle:!1}),CodeMirror.Pass;var a=JSON.parse(localStorage.postData);if(a.rewardContent=e.getValue(),localStorage.postData=JSON.stringify(a),0===$(".article-reward-content .editor-preview-active").length)return!1;$.ajax({url:Label.servePath+"/markdown",type:"POST",cache:!1,data:{markdownText:e.getValue()},success:function(e,t){$(".article-reward-content .editor-preview-active").html(e.html),hljs.initHighlighting.called=!1,hljs.initHighlighting(),Util.parseMarkdown()}})})}else AddArticle.rewardEditor=Util.initTextarea("articleRewardContent",function(e){var t=JSON.parse(localStorage.postData);t.rewardContent=e.getValue(),localStorage.postData=JSON.stringify(t)}),$("#articleRewardContent").before('').css("margin-top",0);$("#articleContent").next().next().height(330),""!==e.rewardContent&&($("#showReward").click(),AddArticle.rewardEditor.setValue(e.rewardContent)),""!==e.rewardPoint&&($("#showReward").click(),$("#articleRewardPoint").val(e.rewardPoint)),$("#articleRewardPoint").keyup(function(){var e=JSON.parse(localStorage.postData);e.rewardPoint=$(this).val(),localStorage.postData=JSON.stringify(e)})},_initTag:function(){$.ua.set(navigator.userAgent);var a=function(t){if(""===t.replace(/\s/g,""))return!1;var a=!1;if(t=t.replace(/\s/g,"").replace(/,/g,""),$("#articleTags").val(""),$(".tags-input .text").each(function(){var e=$(this);t===e.text()&&(e.parent().addClass("haved"),setTimeout(function(){e.parent().removeClass("haved")},900),a=!0)}),a)return!1;if(4<=$(".tags-input .tag").length)return $("#articleTags").val("").data("val",""),!1;if($(".post .tags-selected").append(''+t+' x '),$("#articleTags").width($(".tags-input").width()-$(".post .tags-selected").width()-10),-1===location.search.indexOf("?id=")){var e="";$(".tags-input .tag .text").each(function(){e+=$(this).text()+","});var i=JSON.parse(localStorage.postData);i.tags=e,localStorage.postData=JSON.stringify(i)}4<=$(".tags-input .tag").length&&$("#articleTags").val("").data("val","")};$(".domains-tags .btn").click(function(){$(".domains-tags .btn.current").removeClass("current green"),$(this).addClass("current").addClass("green"),$(".domains-tags .domain-tags").hide(),$("#tags"+$(this).data("id")).show()});for(var e=$("#articleTags").val().split(","),t=0,i=e.length;t span.close",function(){if($(this).parent().remove(),$("#articleTags").width($(".tags-input").width()-$(".post .tags-selected").width()-10),-1===location.search.indexOf("?id=")){var e="";$(".tags-input .tag .text").each(function(){e+=$(this).text()+","});var t=JSON.parse(localStorage.postData);t.tags=e,localStorage.postData=JSON.stringify(t)}}),$("#articleTags").click(function(){$(".post .domains-tags").show(),"mobile"!==$.ua.device.type&&$(".post .domains-tags").css("left",$(".post .tags-selected").width()+10+"px"),$("#articleTagsSelectedPanel").hide()}).blur(function(){if("block"===$("#articleTagsSelectedPanel").css("display"))return!1;a($(this).val())}),$("body").click(function(e){1===$(e.target).closest(".tags-input").length||1===$(e.target).closest(".domains-tags").length||$(".post .domains-tags").hide()}),$("#articleTags").completed({height:170,onlySelect:!0,data:[],afterSelected:function(e){a(e.text())},afterKeyup:function(e){if($(".post .domains-tags").hide(),","===e.key||","===e.key||"、"===e.key||";"===e.key||";"===e.key){var t=$("#articleTags").val();return a(t.substr(0,t.length-1)),!1}return 13===e.keyCode?(a($("#articleTags").val()),!1):37!==e.keyCode&&39!==e.keyCode&&38!==e.keyCode&&40!==e.keyCode&&(27===e.keyCode?($("#articleTagsSelectedPanel").hide(),!1):8===e.keyCode&&8===e.data.settings.chinese&&""===e.data.settings.keydownVal.replace(/\s/g,"")?($(".tags-input .tag .close:last").click(),!1):""!==$("#articleTags").val().replace(/\s/g,"")&&void $.ajax({url:Label.servePath+"/tags/query?title="+$("#articleTags").val(),error:function(e,t,a){$("#addArticleTip").addClass("error").html("")},success:function(e,t){e.sc?("mobile"!==$.ua.device.type&&$("#articleTagsSelectedPanel").css("left",$(".post .tags-selected").width()+10+"px"),$("#articleTags").completed("updateData",e.tags)):console.log(e)}}))}})}};AddArticle.init();
\ No newline at end of file
+var AddArticle={editor:void 0,rewardEditor:void 0,remove:function(e,a){confirm(Label.confirmRemoveLabel)&&$.ajax({url:Label.servePath+"/article/"+Label.articleOId+"/remove",type:"POST",headers:{csrfToken:e},cache:!1,beforeSend:function(){$(a).attr("disabled","disabled").css("opacity","0.3")},error:function(e,t,a){$("#addArticleTip").addClass("error").html("")},success:function(e,t){$(a).removeAttr("disabled").css("opacity","1"),0===e.sc?window.location.href=Label.servePath+"/member/"+Label.userName:$("#addArticleTip").addClass("error").html("")},complete:function(){$(a).removeAttr("disabled").css("opacity","1")}})},add:function(e,a){if(Validate.goValidate({target:$("#addArticleTip"),data:[{type:"string",max:256,msg:Label.articleTitleErrorLabel,target:$("#articleTitle")},{type:"editor",target:this.editor,max:1048576,min:4,msg:Label.articleContentErrorLabel}]})){var t=parseInt($("input[type='radio'][name='articleType']:checked").val());if(5!==t&&$("#articleRewardPoint").data("orval")&&!/^\+?[1-9][0-9]*$/.test($("#articleRewardPoint").val()))return $("#addArticleTip").addClass("error").html(""+Label.articleRewardPointErrorLabel+" "),!1;var i="";$(".tags-input .tag .text").each(function(){i+=$(this).text()+","});var r={articleTitle:$("#articleTitle").val().replace(/(^\s*)|(\s*$)/g,""),articleContent:this.editor.getValue(),articleTags:i,articleCommentable:!0,articleType:t,syncWithSymphonyClient:$("#syncWithSymphonyClient").prop("checked")};5!==t?(r.articleRewardContent=this.rewardEditor.getValue(),r.articleRewardPoint=$("#articleRewardPoint").val().replace(/(^\s*)|(\s*$)/g,""),r.articleAnonymous=$("#articleAnonymous").prop("checked")):r.articleQnAOfferPoint=$("#articleAskPoint").val().replace(/(^\s*)|(\s*$)/g,"");var l=Label.servePath+"/article",o="POST";3===parseInt(r.articleType)&&(r.articleContent=JSON.parse(window.localStorage.postData).thoughtContent),Label.articleOId&&(l=l+"/"+Label.articleOId,o="PUT"),$.ajax({url:l,type:o,headers:{csrfToken:e},cache:!1,data:JSON.stringify(r),beforeSend:function(){$(a).attr("disabled","disabled").css("opacity","0.3")},error:function(e,t,a){$("#addArticleTip").addClass("error").html("")},success:function(e,t){$(a).removeAttr("disabled").css("opacity","1"),0===e.sc?(window.location.href=Label.servePath+"/article/"+e.articleId,localStorage.removeItem("postData")):$("#addArticleTip").addClass("error").html("")},complete:function(){$(a).removeAttr("disabled").css("opacity","1")}})}},init:function(){$.ua.set(navigator.userAgent),-1'},{name:"unordered-list"},{name:"ordered-list"},{name:"view"},{name:"fullscreen"},{name:"question",action:"https://hacpai.com/guide/markdown"}],status:!1});t.render(),AddArticle.editor=t.codemirror}else AddArticle.editor=Util.initTextarea("articleContent",function(e){var t=JSON.parse(localStorage.postData);t.content=e.getValue(),localStorage.postData=JSON.stringify(t)}),$("#articleContent").before('').css("margin-top",0);if($(".post-article-content .editor-toolbar .icon-view:eq(0)").parent().click(),-1!==location.href.indexOf("at=")){if(""==e.content){var a=AddArticle.editor.getValue();AddArticle.editor.setValue("\n\n\n"+a),AddArticle.editor.setCursor(CodeMirror.Pos(0,0)),AddArticle.editor.focus()}if(""==e.title){var i=Util.getParameterByName("at");$("#articleTitle").val("Hi, "+i)}if(""!==e.tags){var r=Label.discussionLabel,l=Util.getParameterByName("tags");""!==l&&(r+=","+l),$("#articleTags").val(r)}}if(""==e.title){var o=Util.getParameterByName("title");o&&0'+e.msg+"")}})}),$("#articleTags, #articleRewardPoint, #articleAskPoint").keypress(function(e){if(e.ctrlKey&&10===e.charCode)return AddArticle.add(),!1}),0===$("#articleAskPoint").length)if(0<$("#articleRewardPoint").val().replace(/(^\s*)|(\s*$)/g,"")&&$("#showReward").click(),"mobile"!==$.ua.device.type||"Apple"!==$.ua.device.vendor&&"Nokia"!==$.ua.device.vendor){var n=new Editor({element:document.getElementById("articleRewardContent"),dragDrop:!1,lineWrapping:!0,htmlURL:Label.servePath+"/markdown",toolbar:[{name:"emoji"},{name:"bold"},{name:"italic"},{name:"quote"},{name:"link"},{name:"image",html:'
'},{name:"unordered-list"},{name:"ordered-list"},{name:"view"},{name:"fullscreen"},{name:"question",action:"https://hacpai.com/guide/markdown"}],extraKeys:{"Alt-/":"autocompleteUserName","Ctrl-/":"autocompleteEmoji","Cmd-/":"autocompleteEmoji","Alt-S":"startAudioRecord","Alt-R":"endAudioRecord"},status:!1});n.render(),AddArticle.rewardEditor=n.codemirror,AddArticle.rewardEditor.on("keydown",function(e,t){if(8===t.keyCode){var a=e.getCursor(),i=e.getTokenAt(a),r=CodeMirror.Pos(a.line,a.ch);i=e.getTokenAt(r),/^:\S+:$/.test(i.string)&&e.replaceRange("",CodeMirror.Pos(a.line,i.start),CodeMirror.Pos(a.line,i.end-1))}}),AddArticle.rewardEditor.on("changes",function(e){var t=e.getCursor();if(0===e.getTokenAt(t).string.indexOf("@"))return e.showHint({hint:CodeMirror.hint.userName,completeSingle:!1}),CodeMirror.Pass;var a=JSON.parse(localStorage.postData);if(a.rewardContent=e.getValue(),localStorage.postData=JSON.stringify(a),0===$(".article-reward-content .editor-preview-active").length)return!1;$.ajax({url:Label.servePath+"/markdown",type:"POST",cache:!1,data:{markdownText:e.getValue()},success:function(e,t){$(".article-reward-content .editor-preview-active").html(e.html),hljs.initHighlighting.called=!1,hljs.initHighlighting(),Util.parseMarkdown()}})})}else AddArticle.rewardEditor=Util.initTextarea("articleRewardContent",function(e){var t=JSON.parse(localStorage.postData);t.rewardContent=e.getValue(),localStorage.postData=JSON.stringify(t)}),$("#articleRewardContent").before('').css("margin-top",0);$("#articleContent").next().next().height(330),0===$("#articleAskPoint").length?(""!==e.rewardContent&&($("#showReward").click(),AddArticle.rewardEditor.setValue(e.rewardContent)),""!==e.rewardPoint&&($("#showReward").click(),$("#articleRewardPoint").val(e.rewardPoint)),$("#articleRewardPoint").keyup(function(){var e=JSON.parse(localStorage.postData);e.rewardPoint=$(this).val(),localStorage.postData=JSON.stringify(e)})):($("#articleAskPoint").keyup(function(){var e=JSON.parse(localStorage.postData);e.QnAOfferPoint=$(this).val(),localStorage.postData=JSON.stringify(e)}),""!==e.QnAOfferPoint&&""===$("#articleAskPoint").val()&&$("#articleAskPoint").val(e.QnAOfferPoint))},_initTag:function(){$.ua.set(navigator.userAgent);var a=function(t){if(""===t.replace(/\s/g,""))return!1;var a=!1;if(t=t.replace(/\s/g,"").replace(/,/g,""),$("#articleTags").val(""),$(".tags-input .text").each(function(){var e=$(this);t===e.text()&&(e.parent().addClass("haved"),setTimeout(function(){e.parent().removeClass("haved")},900),a=!0)}),a)return!1;if(4<=$(".tags-input .tag").length)return $("#articleTags").val("").data("val",""),!1;if($(".post .tags-selected").append(''+t+' x '),$("#articleTags").width($(".tags-input").width()-$(".post .tags-selected").width()-10),-1===location.search.indexOf("?id=")){var e="";$(".tags-input .tag .text").each(function(){e+=$(this).text()+","});var i=JSON.parse(localStorage.postData);i.tags=e,localStorage.postData=JSON.stringify(i)}4<=$(".tags-input .tag").length&&$("#articleTags").val("").data("val","")};$(".domains-tags .btn").click(function(){$(".domains-tags .btn.current").removeClass("current green"),$(this).addClass("current").addClass("green"),$(".domains-tags .domain-tags").hide(),$("#tags"+$(this).data("id")).show()});for(var e=$("#articleTags").val().split(","),t=0,i=e.length;t span.close",function(){if($(this).parent().remove(),$("#articleTags").width($(".tags-input").width()-$(".post .tags-selected").width()-10),-1===location.search.indexOf("?id=")){var e="";$(".tags-input .tag .text").each(function(){e+=$(this).text()+","});var t=JSON.parse(localStorage.postData);t.tags=e,localStorage.postData=JSON.stringify(t)}}),$("#articleTags").click(function(){$(".post .domains-tags").show(),"mobile"!==$.ua.device.type&&$(".post .domains-tags").css("left",$(".post .tags-selected").width()+10+"px"),$("#articleTagsSelectedPanel").hide()}).blur(function(){if("block"===$("#articleTagsSelectedPanel").css("display"))return!1;a($(this).val())}),$("body").click(function(e){1===$(e.target).closest(".tags-input").length||1===$(e.target).closest(".domains-tags").length||$(".post .domains-tags").hide()}),$("#articleTags").completed({height:170,onlySelect:!0,data:[],afterSelected:function(e){a(e.text())},afterKeyup:function(e){if($(".post .domains-tags").hide(),","===e.key||","===e.key||"、"===e.key||";"===e.key||";"===e.key){var t=$("#articleTags").val();return a(t.substr(0,t.length-1)),!1}return 13===e.keyCode?(a($("#articleTags").val()),!1):37!==e.keyCode&&39!==e.keyCode&&38!==e.keyCode&&40!==e.keyCode&&(27===e.keyCode?($("#articleTagsSelectedPanel").hide(),!1):8===e.keyCode&&8===e.data.settings.chinese&&""===e.data.settings.keydownVal.replace(/\s/g,"")?($(".tags-input .tag .close:last").click(),!1):""!==$("#articleTags").val().replace(/\s/g,"")&&void $.ajax({url:Label.servePath+"/tags/query?title="+$("#articleTags").val(),error:function(e,t,a){$("#addArticleTip").addClass("error").html("")},success:function(e,t){e.sc?("mobile"!==$.ua.device.type&&$("#articleTagsSelectedPanel").css("left",$(".post .tags-selected").width()+10+"px"),$("#articleTags").completed("updateData",e.tags)):console.log(e)}}))}})}};AddArticle.init();
\ No newline at end of file
diff --git a/src/main/webapp/js/article.min.js b/src/main/webapp/js/article.min.js
index 3d5c30055..1e9d56169 100644
--- a/src/main/webapp/js/article.min.js
+++ b/src/main/webapp/js/article.min.js
@@ -1 +1 @@
-var Comment={editor:void 0,remove:function(i){if(!confirm(Label.confirmRemoveLabel))return!1;$.ajax({url:Label.servePath+"/comment/"+i+"/remove",type:"POST",cache:!1,success:function(e,t){0===e.sc?$("#"+i).remove():alert(e.msg)}})},exchangeCmtSort:function(e){e=0===e?1:0,window.location.href=window.location.pathname+"?m="+e},_bgFade:function(e){return 0!==e.length&&($(window).scrollTop(e[0].offsetTop-48),"comments"!==e.attr("id")&&(e.css({"background-color":"#9bbee0"}),setTimeout(function(){e.css({"background-color":"#FFF",transition:"all 3s cubic-bezier(0.56, -0.36, 0.58, 1)"})},100),void setTimeout(function(){e.removeAttr("style")},3100)))},edit:function(e){Comment._toggleReply(),$(".cmt-anonymous").hide(),$.ajax({url:Label.servePath+"/comment/"+e+"/content",type:"GET",cache:!1,success:function(e,t){0===e.sc&&Comment.editor.setValue(e.commentContent)}}),$("#replyUseName").html(' '+Label.commonUpdateCommentPermissionLabel+" ").data("commentId",e)},goComment:function(e){if(0===$(e.substr(e.length-14,14)).length)return window.location=e,!1;$("#comments .list > ul > li").removeAttr("style"),Comment._bgFade($(e.substr(e.length-14,14)))},_setCmtVia:function(){$(".cmt-via").each(function(){var e=$(this).data("ua"),t=Util.getDeviceByUa(e);""!==t&&$(this).html("via "+t)})},_toggleReply:function(e){return Label.isLoggedIn?0===$("#commentContent").length?(alert(Label.notAllowCmtLabel),!1):"false"===$(this).data("hasPermission")?(Article.permissionTip(Label.noPermissionLabel),!1):$(".footer").attr("style")?($(".editor-panel .wrapper").slideUp(function(){$(".editor-panel").hide(),$(".footer").removeAttr("style")}),!1):($(".cmt-anonymous").show(),$(".footer").css("margin-bottom",$(".editor-panel > .wrapper").outerHeight()+"px"),$("#replyUseName").html(' '+$(".article-title").text()+" ").removeData(),"0px"!==$(".editor-panel").css("bottom")&&($(".editor-panel .wrapper").hide(),$(".editor-panel").css("bottom",0)),$(".editor-panel").show(),void $(".editor-panel .wrapper").slideDown(function(){Comment.editor.focus(),e&&e()})):(Util.needLogin(),!1)},_initHotKey:function(){if(!Label.userKeyboardShortcutsStatus||"1"===Label.userKeyboardShortcutsStatus)return!1;$(document).bind("keyup","x",function(){return Util.prevKey="x",setTimeout(function(){Util.prevKey=void 0},1e3),!1}).bind("keyup","v",function(){return Util.prevKey="v",setTimeout(function(){Util.prevKey=void 0},1e3),!1}).bind("keydown","r",function(e){return Util.prevKey?"v"===Util.prevKey?$("#articleRewardContent .icon-points").click():1===$("#comments .list > ul > li.focus").length&&"x"===Util.prevKey&&$("#comments .list > ul > li.focus .icon-reply").parent().click():Comment._toggleReply(),!1}).bind("keyup","h",function(){return 1===$("#comments .list > ul > li.focus").length&&"x"===Util.prevKey&&$("#comments .list > ul > li.focus .icon-heart").parent().click(),!1}).bind("keyup","t",function(){return 1===$("#comments .list > ul > li.focus").length&&"x"===Util.prevKey&&$("#comments .list > ul > li.focus .icon-thumbs-up").parent().click(),!1}).bind("keyup","d",function(){return 1===$("#comments .list > ul > li.focus").length&&"x"===Util.prevKey&&$("#comments .list > ul > li.focus .icon-thumbs-down").parent().click(),!1}).bind("keyup","c",function(){return 1===$("#comments .list > ul > li.focus .comment-info .icon-reply-to").length&&"x"===Util.prevKey&&$("#comments .list > ul > li.focus .comment-info .icon-reply-to").parent().click(),!1}).bind("keyup","m",function(){return 1===$("#comments .list > ul > li.focus .comment-action > .ft-fade > .fn-pointer").length&&"x"===Util.prevKey&&$("#comments .list > ul > li.focus .comment-action > .ft-fade > .fn-pointer").click(),!1}).bind("keyup","a",function(){return"x"===Util.prevKey&&1===$("#comments .list > ul > li.focus .icon-setting").parent().length&&(window.location=$("#comments .list > ul > li.focus .icon-setting").parent().attr("href")),!1}).bind("keyup","m",function(){return"v"===Util.prevKey&&Article.toggleToc(),!1}).bind("keyup","h",function(){return"v"===Util.prevKey&&$("#thankArticle").click(),!1}).bind("keyup","t",function(){return"v"===Util.prevKey&&$(".article-header .icon-thumbs-up").parent().click(),!1}).bind("keyup","d",function(){return"v"===Util.prevKey&&$(".article-header .icon-thumbs-down").parent().click(),!1}).bind("keyup","i",function(){return"v"===Util.prevKey&&$(".article-header .icon-view").parent().click(),!1}).bind("keyup","c",function(){return"v"===Util.prevKey&&$(".article-header .icon-star").parent().click(),!1}).bind("keyup","l",function(){return"v"===Util.prevKey&&$(".article-header .icon-history").parent().click(),!1}).bind("keyup","e",function(){return"v"===Util.prevKey&&1===$(".article-actions .icon-edit").parent().length&&(window.location=$(".article-actions .icon-edit").parent().attr("href")),!1}).bind("keyup","s",function(){return"v"===Util.prevKey&&1===$(".article-actions .icon-chevron-up").length&&Article.stick(Label.articleOId),!1}).bind("keyup","a",function(){return"v"===Util.prevKey&&1===$(".article-actions .icon-setting").parent().length&&(window.location=$(".article-actions .icon-setting").parent().attr("href")),!1}).bind("keyup","p",function(){return"v"===Util.prevKey&&1===$(".article-header a[rel=prev]").length&&(window.location=$(".article-header a[rel=prev]").attr("href")),!1}).bind("keyup","n",function(){return"v"===Util.prevKey&&1===$(".article-header a[rel=next]").length&&(window.location=$(".article-header a[rel=next]").attr("href")),!1})},init:function(){if(1===$(window.location.hash).length&&Comment._bgFade($(window.location.hash)),this._setCmtVia(),this._initHotKey(),$.pjax({selector:"#comments .pagination a",container:"#comments",show:"",cache:!1,storage:!0,titleSuffix:"",callback:function(){Util.parseMarkdown()}}),NProgress.configure({showSpinner:!1}),$("#comments").bind("pjax.start",function(){NProgress.start()}),$("#comments").bind("pjax.end",function(){NProgress.done()}),!Label.isLoggedIn||!document.getElementById("commentContent"))return!1;Util.initCodeMirror();var e=new Editor({element:document.getElementById("commentContent"),dragDrop:!1,lineWrapping:!0,htmlURL:Label.servePath+"/markdown",toolbar:[{name:"emoji"},{name:"bold"},{name:"italic"},{name:"quote"},{name:"link"},{name:"image",html:'
'},{name:"unordered-list"},{name:"ordered-list"},{name:"view"},{name:"fullscreen"},{name:"question",action:"https://hacpai.com/guide/markdown"}],extraKeys:{"Alt-/":"autocompleteUserName","Cmd-/":"autocompleteEmoji","Ctrl-/":"autocompleteEmoji","Alt-S":"startAudioRecord","Alt-R":"endAudioRecord",Esc:function(){$(".editor-hide").click()}},status:!1});if(e.render(),e.codemirror.for="comment",Comment.editor=e.codemirror,window.localStorage&&window.localStorage[Label.articleOId]){var t=null;try{t=JSON.parse(window.localStorage[Label.articleOId])}catch(e){var i={commentContent:""};window.localStorage[Label.articleOId]=JSON.stringify(i),t=JSON.parse(window.localStorage[Label.articleOId])}""!==t.commentContent.replace(/(^\s*)|(\s*$)/g,"")&&Comment.editor.setValue(t.commentContent)}Comment.editor.on("changes",function(e){$("#addCommentTip").removeClass("error succ").html(""),window.localStorage&&(window.localStorage[Label.articleOId]=JSON.stringify({commentContent:e.getValue()}));var t=e.getCursor();if(0!==e.getTokenAt(t).string.indexOf("@"))return 0!==$(".editor-preview-active").length&&void $.ajax({url:Label.servePath+"/markdown",type:"POST",cache:!1,data:{markdownText:e.getValue()},success:function(e,t){$(".article-comment-content .editor-preview-active").html(e.html),hljs.initHighlighting.called=!1,hljs.initHighlighting(),Util.parseMarkdown()}});e.showHint({hint:CodeMirror.hint.userName,completeSingle:!1})}),Comment.editor.on("keypress",function(e,t){if(t.ctrlKey&&10===t.charCode)return Comment.add(Label.articleOId,Label.csrfToken),!1}),Comment.editor.on("keydown",function(e,t){if($.ua.set(navigator.userAgent),-1<$.ua.os.name.indexOf("Mac OS")&&t.metaKey&&13===t.keyCode)return Comment.add(Label.articleOId,Label.csrfToken),!1;if(8===t.keyCode){var i=e.getCursor(),n=e.getTokenAt(i),o=CodeMirror.Pos(i.line,i.ch);n=e.getTokenAt(o),/^:\S+:$/.test(n.string)&&e.replaceRange("",CodeMirror.Pos(i.line,n.start),CodeMirror.Pos(i.line,n.end-1))}})},thank:function(e,t,i,n,r){if(!Label.isLoggedIn)return Util.needLogin(),!1;if(0===n&&!confirm(i))return!1;var o={commentId:e};$.ajax({url:Label.servePath+"/comment/thank",type:"POST",headers:{csrfToken:t},cache:!1,data:JSON.stringify(o),error:function(e,t,i){alert(i)},success:function(e,t){if(e.sc){$(r).removeAttr("onclick");var i=$(' '),n=$(r).offset().top,o=$(r).offset().left;i.css({"z-index":9999,top:n,left:o,position:"absolute","font-size":16,"-moz-user-select":"none","-webkit-user-select":"none","-ms-user-select":"none"}),$("body").append(i),i.animate({left:o-150,top:n-60,opacity:0},1e3,function(){var e=parseInt($(r).text());$(r).html(' '+(e+1)).addClass("ft-red"),i.remove()})}else alert(e.msg)}})},showReply:function(e,a,t){var s=$(a).closest("li").find("."+t);if("comment-get-comment"===t){if(0!==s.find("li").length)return s.html(""),!1}else if(0===$(a).find(".icon-chevron-down").length)return $(a).find(".icon-chevron-up").removeClass("icon-chevron-up").addClass("icon-chevron-down").find("use").attr("xlink:href","#chevron-down"),s.html(""),!1;if("0.3"===$(a).css("opacity"))return!1;var i="/comment/replies";"comment-get-comment"===t&&(i="/comment/original"),$.ajax({url:Label.servePath+i,type:"POST",data:JSON.stringify({commentId:e,userCommentViewMode:Label.userCommentViewMode}),beforeSend:function(){$(a).css("opacity","0.3")},success:function(e,t){if(!e.sc)return alert(e.msg),!1;var i=e.commentReplies,n="";i instanceof Array||(i=[i]),0===i.length&&(n=''+Label.removedLabel+" ");for(var o=0;o"}s.html(""),Article.parseLanguage(),$(a).find(".icon-chevron-down").removeClass("icon-chevron-down").addClass("icon-chevron-up").find("use").attr("xlink:href","#chevron-up")},error:function(e){alert(e.statusText)},complete:function(){$(a).css("opacity","1")}})},add:function(e,t,i){if(!Validate.goValidate({target:$("#addCommentTip"),data:[{target:Comment.editor,type:"editor",max:2e3,msg:Label.commentErrorLabel}]}))return!1;var n={articleId:e,commentAnonymous:$("#commentAnonymous").prop("checked"),commentContent:Comment.editor.getValue(),userCommentViewMode:Label.userCommentViewMode};$("#replyUseName").data("commentOriginalCommentId")&&(n.commentOriginalCommentId=$("#replyUseName").data("commentOriginalCommentId"));var o=Label.servePath+"/comment",r="POST",a=$("#replyUseName").data("commentId");a&&(o=Label.servePath+"/comment/"+a,r="PUT"),$.ajax({url:o,type:r,headers:{csrfToken:t},cache:!1,data:JSON.stringify(n),beforeSend:function(){$(i).attr("disabled","disabled").css("opacity","0.3"),Comment.editor.setOption("readOnly","nocursor")},success:function(e,t){if($(i).removeAttr("disabled").css("opacity","1"),0===e.sc){if(a&&($("#"+a+" > .fn-flex > .fn-flex-1 > .content-reset").html(e.commentContent),$("#"+a+" .icon-history").parent().show()),n.commentOriginalCommentId&&Util.setUnreadNotificationCount(),Comment.editor.setValue(""),$(".editor-preview").html(""),$(".icon-view").parent().hasClass("active")&&$(".icon-view").click(),$(".editor-hide").click(),$("#replyUseName").text("").removeData(),window.localStorage){window.localStorage[Label.articleOId]=JSON.stringify({commentContent:""})}1===Label.userCommentViewMode?Comment._bgFade($("#comments")):Comment._bgFade($("#bottomComment"))}else $("#addCommentTip").addClass("error").html("")},error:function(e){$("#addCommentTip").addClass("error").html("")},complete:function(){$(i).removeAttr("disabled").css("opacity","1"),Comment.editor.setOption("readOnly",!1)}})},reply:function(e,t){Comment._toggleReply(function(){$(window).height()-($("#"+t)[0].offsetTop-$(window).scrollTop()+$("#"+t).outerHeight())<$(".editor-panel .wrapper").outerHeight()&&$(window).scrollTop($("#"+t)[0].offsetTop-($(window).height()-$(".editor-panel .wrapper").outerHeight()-$("#"+t).outerHeight()))});var i="",n=$("#"+t).find(">.fn-flex>div>a").clone();0===n.length?((n=$("#"+t).find(">.fn-flex .avatar").clone()).removeClass("avatar").addClass("avatar-small"),i=' '+n[0].outerHTML+" "+e+" "):(n.addClass("ft-a-title").attr("href","#"+t).attr("onclick",'Comment._bgFade($("#'+t+'"))'),n.find("div").removeClass("avatar").addClass("avatar-small").after(" "+e).before(' '),i=n[0].outerHTML),$("#replyUseName").html(i).data("commentOriginalCommentId",t)}},Article={initAudio:function(){$(".content-audio").each(function(){var e=$(this);new APlayer({element:this,narrow:!1,autoplay:!1,mutex:!0,theme:"#4285f4",preload:"none",mode:"circulation",music:{title:e.data("title"),author:'音乐分享 ',url:e.data("url"),pic:Label.staticServePath+"/images/music.png"}})});var e=$("#articleAudio");if(0===e.length)return!1;new APlayer({element:document.getElementById("articleAudio"),narrow:!1,autoplay:!1,mutex:!0,theme:"#4285f4",mode:"order",preload:"none",music:{title:"语音预览",author:'小薇 ',url:e.data("url"),pic:Label.staticServePath+"/images/blank.png"}})},permissionTip:function(e){Label.isLoggedIn?Util.alert(e):Util.needLogin()},voteUp:function(e,t,i){if(!Label.isLoggedIn)return Util.needLogin(),!1;var o=$(i),r=o.next();if(o.hasClass("disabled"))return!1;var n={dataId:e};o.addClass("disabled"),$.ajax({url:Label.servePath+"/vote/up/"+t,type:"POST",cache:!1,data:JSON.stringify(n),success:function(e,t){o.removeClass("disabled");var i=parseInt(o.text()),n=parseInt(r.text());e.sc?0===e.type?o.html(' '+(i-1)).removeClass("ft-red"):(o.html(' '+(i+1)).addClass("ft-red"),r.hasClass("ft-red")&&r.html(' '+(n-1)).removeClass("ft-red")):alert(e.msg)}})},voteDown:function(e,t,i){if(!Label.isLoggedIn)return Util.needLogin(),!1;var o=$(i),r=o.prev();if(o.hasClass("disabled"))return!1;var n={dataId:e};o.addClass("disabled"),$.ajax({url:Label.servePath+"/vote/down/"+t,type:"POST",cache:!1,data:JSON.stringify(n),success:function(e,t){o.removeClass("disabled");var i=parseInt(r.text()),n=parseInt(o.text());if(e.sc)return 1===e.type?o.html(' '+(n-1)).removeClass("ft-red"):(o.html(' '+(n+1)).addClass("ft-red"),r.hasClass("ft-red")&&r.html(' '+(i-1)).removeClass("ft-red")),!1;alert(e.msg)}})},previewImgAfterLoading:function(){$(".img-preview img").css("transform","translate3d("+Math.max(0,$(window).width()-$(".img-preview img").width())/2+"px, "+Math.max(0,$(window).height()-$(".img-preview img").height())/2+"px, 0)"),setTimeout(function(){$(".img-preview").width($(window).width())},300)},init:function(){this.initToc(),this.share(),this.parseLanguage();var t=null;$(".article").on("dblclick",".content-reset img",function(){clearTimeout(t),$(this).hasClass("emoji")||1===$(this).closest(".editor-panel").length||1===$(this).closest(".ad").length||window.open($(this).attr("src"))}).on("click",".content-reset img",function(e){if(clearTimeout(t),!$(this).hasClass("emoji")&&1!==$(this).closest(".editor-panel").length&&1!==$(this).closest(".ad").length){var i=$(this),n=this;t=setTimeout(function(){var e=n.offsetTop,t=n.offsetLeft;1===i.closest(".comments").length&&(e+=i.closest("li")[0].offsetTop,t=t+$(".comments")[0].offsetLeft+15),$("body").append(' '),$(".img-preview").css({"background-color":"#fff",position:"fixed"})},100)}});var e=$("#articltVia").data("ua"),i=Util.getDeviceByUa(e);""!==i&&$("#articltVia").text("via "+i),$("#revision").dialog({width:$(window).width()-50,height:$(window).height()-50,modal:!0,hideFooter:!0}),this.initAudio(),$(window).scroll(function(){var e=$(window).scrollTop();-1 .module-panel").height($(window).height()-48),$(window).width()<1024)return $(".article-header > h2").removeAttr("style"),0===$("#articleToC").length||$(".article-body .wrapper, #articleCommentsPanel, .article-footer").css("margin-right","auto"),!1;if(1===$("#articleToC").length){var t=$("#articleToC").width(),i=($(window).width()-t-$(".article-info").width()-30)/3+t;$(".article-body .wrapper, #articleCommentsPanel, .article-footer").css("margin-right",i+"px")}$(".article-header > h2").css("margin-left",Math.max(20,$(".article-footer").offset().left-58)+"px")});var n=location.search.split("r=")[1];n&&sessionStorage.setItem("r",n.split("&")[0])},revision:function(e,n){if(!Label.isLoggedIn)return Util.needLogin(),!1;n||(n="article"),$.ajax({url:Label.servePath+"/"+n+"/"+e+"/revisions",cache:!1,success:function(e,t){if(e.sc){if(0===e.revisions.length||1===e.revisions.length)return $("#revision > .revisions").remove(),$("#revisions").html(""+Label.noRevisionLabel+" "),!1;$("#revisions").html("").prev().remove(),$("#revisions").data("revisions",e.revisions).before(''+(e.revisions.length-1)+"~"+e.revisions.length+"/"+e.revisions.length+' '),e.revisions.length<=2&&$("#revision a").first().addClass("disabled");var i=JsDiff.createPatch("",e.revisions[e.revisions.length-2].revisionData.articleContent||e.revisions[e.revisions.length-2].revisionData.commentContent,e.revisions[e.revisions.length-1].revisionData.articleContent||e.revisions[e.revisions.length-1].revisionData.commentContent,e.revisions[e.revisions.length-2].revisionData.articleTitle||"",e.revisions[e.revisions.length-1].revisionData.articleTitle||"");return new Diff2HtmlUI({diff:i}).draw("#revisions",{matching:"lines",outputFormat:"side-by-side",synchronisedScroll:!0}),Article._revisionsControls(n),!1}alert(e.msg)}}),$("#revision").dialog("open")},_revisionsControls:function(e){var i=$("#revisions").data("revisions");$("#revision a.first").click(function(){if(!$(this).hasClass("disabled")){var e=parseInt($("#revision .revisions").text().split("~")[0]);e<=2?$(this).addClass("disabled"):$(this).removeClass("disabled"),2 span").html(e-1+"~"+e+"/"+i.length);var t=JsDiff.createPatch("",i[e-2].revisionData.articleContent||i[e-2].revisionData.commentContent,i[e-1].revisionData.articleContent||i[e-1].revisionData.commentContent,i[e-2].revisionData.articleTitle||"",i[e-1].revisionData.articleTitle||"");new Diff2HtmlUI({diff:t}).draw("#revisions",{matching:"lines",outputFormat:"side-by-side",synchronisedScroll:!0})}}),$("#revision a.last").click(function(){if(!$(this).hasClass("disabled")){var e=parseInt($("#revision .revisions span").text().split("~")[0]);e>i.length-3?$(this).addClass("disabled"):$(this).removeClass("disabled"),2 span").html(e+1+"~"+(e+2)+"/"+i.length);var t=JsDiff.createPatch("",i[e].revisionData.articleContent||i[e].revisionData.commentContent,i[e+1].revisionData.articleContent||i[e+1].revisionData.commentContent,i[e].revisionData.articleTitle||"",i[e+1].revisionData.articleTitle||"");new Diff2HtmlUI({diff:t}).draw("#revisions",{matching:"lines",outputFormat:"side-by-side",synchronisedScroll:!0})}})},share:function(){var e=parseInt($(".article-footer").css("margin-left"))/2-15;$(".share").css("left",(e<20?20:e)+"px");var r=$("#qrCode").data("shareurl");$("#qrCode").qrcode({width:90,height:90,text:r}),$("body").click(function(){$("#qrCode").slideUp()}),$(".share > span").click(function(){var e=$(this).data("type");if(!e)return!1;if("wechat"===e)return $("#qrCode").slideToggle(),!1;if("copy"===e)return!1;var t=encodeURIComponent(Label.articleTitle+" - "+Label.symphonyLabel),i=encodeURIComponent(r),n=$(".article-info .avatar-mid").css("background-image");pic=n.substring(5,n.length-2);var o={};o.tencent="http://share.v.t.qq.com/index.php?c=share&a=index&title="+t+"&url="+i+"&pic="+pic,o.weibo="http://v.t.sina.com.cn/share/share.php?title="+t+"&url="+i+"&pic="+pic,o.google="https://plus.google.com/share?url="+i,o.twitter="https://twitter.com/intent/tweet?status="+t+" "+i,window.open(o[e],"_blank","top=100,left=200,width=648,height=618")}),$("#qrCode").click(function(){$(this).hide()}),$("#shareClipboard").mouseover(function(){$(this).attr("aria-label",Label.copyLabel)}),Util.clipboard($("#shareClipboard"),$("#shareClipboard").next(),function(){$("#shareClipboard").attr("aria-label",Label.copiedLabel)})},parseLanguage:function(){$("pre code").each(function(e,t){$(this).css("max-height",$(window).height()-68),hljs.highlightBlock(t)})},reward:function(e){confirm(Label.rewardConfirmLabel)&&$.ajax({url:Label.servePath+"/article/reward?articleId="+e,type:"POST",cache:!1,success:function(e,t){if(e.sc){$("#articleRewardContent .content-reset").html(e.articleRewardContent),Article.parseLanguage();var i=$("#articleRewardContent > span"),n=parseInt(i.text());i.addClass("ft-red").removeClass("ft-blue").html(n+1+" "+Label.rewardLabel).removeAttr("onclick")}else alert(e.msg)},error:function(e){Util.needLogin()}})},thankArticle:function(e,t){return Label.isLoggedIn?!(0===t&&!confirm(Label.thankArticleConfirmLabel))&&(Label.currentUserName===Label.articleAuthorName?(alert(Label.thankSelfLabel),!1):void $.ajax({url:Label.servePath+"/article/thank?articleId="+e,type:"POST",cache:!1,success:function(e,t){if(e.sc){var i=parseInt($("#thankArticle").text());$("#thankArticle").removeAttr("onclick").html(''+(i+1)+" ").addClass("ft-red").removeClass("ft-blue");var n=$(' '),o=$("#thankArticle").offset().top,r=$("#thankArticle").offset().left;return n.css({"z-index":9999,top:o-20,left:r,position:"absolute","font-size":16,"-moz-user-select":"none","-webkit-user-select":"none","-ms-user-select":"none"}),$("body").append(n),n.animate({top:o-180,opacity:0},1500,function(){n.remove()}),!1}alert(e.msg)}})):(Util.needLogin(),!1)},stick:function(e){confirm(Label.stickConfirmLabel)&&$.ajax({url:Label.servePath+"/article/stick?articleId="+e,type:"POST",cache:!1,success:function(e,t){alert(e.msg),window.location.href=Label.servePath+"/recent"}})},playThought:function(e){var i=function(e,t){var i=e.split("");3===i.length&&i.splice(0,0,"");var n=i[0],o=i[2].split("-"),r=i[3].split("-");if(o[0]=parseInt(o[0]),o[1]=parseInt(o[1]),r[0]=parseInt(r[0]),r[1]=parseInt(r[1]),""===n){for(var a=[],s=o[1],l=0;r[1],s").replace(/ /g," ").replace(/ /g," ");$(".article-content").data("text",e).html(t)},parseInt(n[t].split("")[1])/2);for(var r=0,a=parseInt(n[t-1].split("")[1])/2+120,s=setInterval(function(){a<=r?($("#thoughtProgress .bar").width("100%"),$("#thoughtProgress .icon-video").css("left","100%"),clearInterval(s)):(r+=20,$("#thoughtProgress .icon-video").css("left",100*r/a+"%"),$("#thoughtProgress .bar").width(100*r/a+"%"))},20),l=0,c=0;l").replace(/ /g," ").replace(/ /g," ");$("#thoughtProgressPreview").data("text",d).html(m)}$("#thoughtProgressPreview").dialog({modal:!0,hideFooter:!0}),$("#thoughtProgress .icon-video").click(function(){$("#thoughtProgressPreview").dialog("open")}),$(".article-content").html(m).height($(".article-content").height()).html("")},initToc:function(){if(0===$("#articleToC").length)return $(".article-header > h2").css("margin-left",Math.max(20,$(".article-footer").offset().left-58)+"px"),$(".article-body .wrapper, #articleCommentsPanel, .article-footer").css("margin-right","auto"),!1;var e=$("#articleToC").width(),t=($(window).width()-e-$(".article-info").width()-30)/3+e;$(".article-body .wrapper, #articleCommentsPanel, .article-footer").css("margin-right",t+"px"),$(".article-header > h2").css("margin-left",Math.max(20,$(".article-footer").offset().left-58)+"px"),$("#articleToC > .module-panel").height($(window).height()-48);var a=$("#articleToC"),s=$(".article-toc"),l=$(".article-content [id^=toc]"),c=!1;a.offset().top;toc=[],a.find("li").click(function(){var e=$(this);setTimeout(function(){a.find("li").removeClass("current"),e.addClass("current")},50)}),$(window).scroll(function(e){if(parseInt($("#articleToC").css("right"))<0)return!1;$("#articleToC > .module-panel").height($(window).height()-49),toc=[],l.each(function(e){toc.push({id:this.id,offsetTop:this.offsetTop})});for(var t=$(window).scrollTop(),i=0,n=toc.length;i=toc[toc.length-1].offsetTop-53&&(a.find("li").removeClass("current"),a.find("li:last").addClass("current"));var r=a.find("li.current")[0].offsetTop;c||(s.scrollTop()r-30&&s.scrollTop(r)),setTimeout(function(){c=!1},600)}),$(window).scroll(),s.scrollTop(a.find("li.current")[0].offsetTop).scroll(function(){c=!0})},toggleToc:function(){var e=$("#articleToC");if(0===e.length)return!1;var t=$(".article-header .icon-unordered-list");t.hasClass("ft-red")?(e.animate({right:"-"+$("#articleToC").outerWidth()+"px"}),t.removeClass("ft-red"),$(".article-actions .icon-unordered-list").removeClass("ft-red")):(e.animate({right:0}),t.addClass("ft-red"),$(".article-actions .icon-unordered-list").addClass("ft-red"))},makeNotificationRead:function(e,t){var i={articleId:e,commentIds:t};$.ajax({url:Label.servePath+"/notification/read",type:"POST",cache:!1,data:JSON.stringify(i)})}};Article.init(),$(document).ready(function(){Comment.init(),Util.uploadFile({type:"img",id:"fileUpload",pasteZone:$(".CodeMirror"),qiniuUploadToken:Label.qiniuUploadToken,editor:Comment.editor,uploadingLabel:Label.uploadingLabel,qiniuDomain:Label.qiniuDomain,imgMaxSize:Label.imgMaxSize,fileMaxSize:Label.fileMaxSize}),ArticleChannel.init(Label.articleChannel),Label.isLoggedIn&&(Article.makeNotificationRead(Label.articleOId,Label.notificationCmtIds),setTimeout(function(){Util.setUnreadNotificationCount()},1e3))});
\ No newline at end of file
+var Comment={editor:void 0,accept:function(e,t,i){confirm(e)&&$.ajax({url:Label.servePath+"/comment/accept",type:"POST",headers:{csrfToken:Label.csrfToken},cache:!1,data:JSON.stringify({commentId:t}),success:function(e){e.sc?($(i).closest("li").addClass("cmt-perfect"),$(i).remove()):alert(e.msg)}})},remove:function(i){if(!confirm(Label.confirmRemoveLabel))return!1;$.ajax({url:Label.servePath+"/comment/"+i+"/remove",type:"POST",cache:!1,success:function(e,t){0===e.sc?$("#"+i).remove():alert(e.msg)}})},exchangeCmtSort:function(e){e=0===e?1:0,window.location.href=window.location.pathname+"?m="+e},_bgFade:function(e){return 0!==e.length&&($(window).scrollTop(e[0].offsetTop-48),"comments"!==e.attr("id")&&(e.css({"background-color":"#9bbee0"}),setTimeout(function(){e.css({"background-color":"#FFF",transition:"all 3s cubic-bezier(0.56, -0.36, 0.58, 1)"})},100),void setTimeout(function(){e.removeAttr("style")},3100)))},edit:function(e){Comment._toggleReply(),$(".cmt-anonymous").hide(),$.ajax({url:Label.servePath+"/comment/"+e+"/content",type:"GET",cache:!1,success:function(e,t){0===e.sc&&Comment.editor.setValue(e.commentContent)}}),$("#replyUseName").html(' '+Label.commonUpdateCommentPermissionLabel+" ").data("commentId",e)},goComment:function(e){if(0===$(e.substr(e.length-14,14)).length)return window.location=e,!1;$("#comments .list > ul > li").removeAttr("style"),Comment._bgFade($(e.substr(e.length-14,14)))},_setCmtVia:function(){$(".cmt-via").each(function(){var e=$(this).data("ua"),t=Util.getDeviceByUa(e);""!==t&&$(this).html("via "+t)})},_toggleReply:function(e){return Label.isLoggedIn?0===$("#commentContent").length?(alert(Label.notAllowCmtLabel),!1):"false"===$(this).data("hasPermission")?(Article.permissionTip(Label.noPermissionLabel),!1):$(".footer").attr("style")?($(".editor-panel .wrapper").slideUp(function(){$(".editor-panel").hide(),$(".footer").removeAttr("style")}),!1):($(".cmt-anonymous").show(),$(".footer").css("margin-bottom",$(".editor-panel > .wrapper").outerHeight()+"px"),$("#replyUseName").html(' '+$(".article-title").text()+" ").removeData(),"0px"!==$(".editor-panel").css("bottom")&&($(".editor-panel .wrapper").hide(),$(".editor-panel").css("bottom",0)),$(".editor-panel").show(),void $(".editor-panel .wrapper").slideDown(function(){Comment.editor.focus(),e&&e()})):(Util.needLogin(),!1)},_initHotKey:function(){if(!Label.userKeyboardShortcutsStatus||"1"===Label.userKeyboardShortcutsStatus)return!1;$(document).bind("keyup","x",function(){return Util.prevKey="x",setTimeout(function(){Util.prevKey=void 0},1e3),!1}).bind("keyup","v",function(){return Util.prevKey="v",setTimeout(function(){Util.prevKey=void 0},1e3),!1}).bind("keydown","r",function(e){return Util.prevKey?"v"===Util.prevKey?$("#articleRewardContent .icon-points").click():1===$("#comments .list > ul > li.focus").length&&"x"===Util.prevKey&&$("#comments .list > ul > li.focus .icon-reply").parent().click():Comment._toggleReply(),!1}).bind("keyup","h",function(){return 1===$("#comments .list > ul > li.focus").length&&"x"===Util.prevKey&&$("#comments .list > ul > li.focus .icon-heart").parent().click(),!1}).bind("keyup","t",function(){return 1===$("#comments .list > ul > li.focus").length&&"x"===Util.prevKey&&$("#comments .list > ul > li.focus .icon-thumbs-up").parent().click(),!1}).bind("keyup","d",function(){return 1===$("#comments .list > ul > li.focus").length&&"x"===Util.prevKey&&$("#comments .list > ul > li.focus .icon-thumbs-down").parent().click(),!1}).bind("keyup","c",function(){return 1===$("#comments .list > ul > li.focus .comment-info .icon-reply-to").length&&"x"===Util.prevKey&&$("#comments .list > ul > li.focus .comment-info .icon-reply-to").parent().click(),!1}).bind("keyup","m",function(){return 1===$("#comments .list > ul > li.focus .comment-action > .ft-fade > .fn-pointer").length&&"x"===Util.prevKey&&$("#comments .list > ul > li.focus .comment-action > .ft-fade > .fn-pointer").click(),!1}).bind("keyup","a",function(){return"x"===Util.prevKey&&1===$("#comments .list > ul > li.focus .icon-setting").parent().length&&(window.location=$("#comments .list > ul > li.focus .icon-setting").parent().attr("href")),!1}).bind("keyup","m",function(){return"v"===Util.prevKey&&Article.toggleToc(),!1}).bind("keyup","h",function(){return"v"===Util.prevKey&&$("#thankArticle").click(),!1}).bind("keyup","t",function(){return"v"===Util.prevKey&&$(".article-header .icon-thumbs-up").parent().click(),!1}).bind("keyup","d",function(){return"v"===Util.prevKey&&$(".article-header .icon-thumbs-down").parent().click(),!1}).bind("keyup","i",function(){return"v"===Util.prevKey&&$(".article-header .icon-view").parent().click(),!1}).bind("keyup","c",function(){return"v"===Util.prevKey&&$(".article-header .icon-star").parent().click(),!1}).bind("keyup","l",function(){return"v"===Util.prevKey&&$(".article-header .icon-history").parent().click(),!1}).bind("keyup","e",function(){return"v"===Util.prevKey&&1===$(".article-actions .icon-edit").parent().length&&(window.location=$(".article-actions .icon-edit").parent().attr("href")),!1}).bind("keyup","s",function(){return"v"===Util.prevKey&&1===$(".article-actions .icon-chevron-up").length&&Article.stick(Label.articleOId),!1}).bind("keyup","a",function(){return"v"===Util.prevKey&&1===$(".article-actions .icon-setting").parent().length&&(window.location=$(".article-actions .icon-setting").parent().attr("href")),!1}).bind("keyup","p",function(){return"v"===Util.prevKey&&1===$(".article-header a[rel=prev]").length&&(window.location=$(".article-header a[rel=prev]").attr("href")),!1}).bind("keyup","n",function(){return"v"===Util.prevKey&&1===$(".article-header a[rel=next]").length&&(window.location=$(".article-header a[rel=next]").attr("href")),!1})},init:function(){if(1===$(window.location.hash).length&&Comment._bgFade($(window.location.hash)),this._setCmtVia(),this._initHotKey(),$.pjax({selector:"#comments .pagination a",container:"#comments",show:"",cache:!1,storage:!0,titleSuffix:"",callback:function(){Util.parseMarkdown()}}),NProgress.configure({showSpinner:!1}),$("#comments").bind("pjax.start",function(){NProgress.start()}),$("#comments").bind("pjax.end",function(){NProgress.done()}),!Label.isLoggedIn||!document.getElementById("commentContent"))return!1;Util.initCodeMirror();var e=new Editor({element:document.getElementById("commentContent"),dragDrop:!1,lineWrapping:!0,htmlURL:Label.servePath+"/markdown",toolbar:[{name:"emoji"},{name:"bold"},{name:"italic"},{name:"quote"},{name:"link"},{name:"image",html:'
'},{name:"unordered-list"},{name:"ordered-list"},{name:"view"},{name:"fullscreen"},{name:"question",action:"https://hacpai.com/guide/markdown"}],extraKeys:{"Alt-/":"autocompleteUserName","Cmd-/":"autocompleteEmoji","Ctrl-/":"autocompleteEmoji","Alt-S":"startAudioRecord","Alt-R":"endAudioRecord",Esc:function(){$(".editor-hide").click()}},status:!1});if(e.render(),e.codemirror.for="comment",Comment.editor=e.codemirror,window.localStorage&&window.localStorage[Label.articleOId]){var t=null;try{t=JSON.parse(window.localStorage[Label.articleOId])}catch(e){var i={commentContent:""};window.localStorage[Label.articleOId]=JSON.stringify(i),t=JSON.parse(window.localStorage[Label.articleOId])}""!==t.commentContent.replace(/(^\s*)|(\s*$)/g,"")&&Comment.editor.setValue(t.commentContent)}Comment.editor.on("changes",function(e){$("#addCommentTip").removeClass("error succ").html(""),window.localStorage&&(window.localStorage[Label.articleOId]=JSON.stringify({commentContent:e.getValue()}));var t=e.getCursor();if(0!==e.getTokenAt(t).string.indexOf("@"))return 0!==$(".editor-preview-active").length&&void $.ajax({url:Label.servePath+"/markdown",type:"POST",cache:!1,data:{markdownText:e.getValue()},success:function(e,t){$(".article-comment-content .editor-preview-active").html(e.html),hljs.initHighlighting.called=!1,hljs.initHighlighting(),Util.parseMarkdown()}});e.showHint({hint:CodeMirror.hint.userName,completeSingle:!1})}),Comment.editor.on("keypress",function(e,t){if(t.ctrlKey&&10===t.charCode)return Comment.add(Label.articleOId,Label.csrfToken),!1}),Comment.editor.on("keydown",function(e,t){if($.ua.set(navigator.userAgent),-1<$.ua.os.name.indexOf("Mac OS")&&t.metaKey&&13===t.keyCode)return Comment.add(Label.articleOId,Label.csrfToken),!1;if(8===t.keyCode){var i=e.getCursor(),n=e.getTokenAt(i),o=CodeMirror.Pos(i.line,i.ch);n=e.getTokenAt(o),/^:\S+:$/.test(n.string)&&e.replaceRange("",CodeMirror.Pos(i.line,n.start),CodeMirror.Pos(i.line,n.end-1))}})},thank:function(e,t,i,n,r){if(!Label.isLoggedIn)return Util.needLogin(),!1;if(0===n&&!confirm(i))return!1;var o={commentId:e};$.ajax({url:Label.servePath+"/comment/thank",type:"POST",headers:{csrfToken:t},cache:!1,data:JSON.stringify(o),error:function(e,t,i){alert(i)},success:function(e,t){if(e.sc){$(r).removeAttr("onclick");var i=$(' '),n=$(r).offset().top,o=$(r).offset().left;i.css({"z-index":9999,top:n,left:o,position:"absolute","font-size":16,"-moz-user-select":"none","-webkit-user-select":"none","-ms-user-select":"none"}),$("body").append(i),i.animate({left:o-150,top:n-60,opacity:0},1e3,function(){var e=parseInt($(r).text());$(r).html(' '+(e+1)).addClass("ft-red"),i.remove()})}else alert(e.msg)}})},showReply:function(e,a,t){var s=$(a).closest("li").find("."+t);if("comment-get-comment"===t){if(0!==s.find("li").length)return s.html(""),!1}else if(0===$(a).find(".icon-chevron-down").length)return $(a).find(".icon-chevron-up").removeClass("icon-chevron-up").addClass("icon-chevron-down").find("use").attr("xlink:href","#chevron-down"),s.html(""),!1;if("0.3"===$(a).css("opacity"))return!1;var i="/comment/replies";"comment-get-comment"===t&&(i="/comment/original"),$.ajax({url:Label.servePath+i,type:"POST",data:JSON.stringify({commentId:e,userCommentViewMode:Label.userCommentViewMode}),beforeSend:function(){$(a).css("opacity","0.3")},success:function(e,t){if(!e.sc)return alert(e.msg),!1;var i=e.commentReplies,n="";i instanceof Array||(i=[i]),0===i.length&&(n=''+Label.removedLabel+" ");for(var o=0;o"}s.html(""),Article.parseLanguage(),$(a).find(".icon-chevron-down").removeClass("icon-chevron-down").addClass("icon-chevron-up").find("use").attr("xlink:href","#chevron-up")},error:function(e){alert(e.statusText)},complete:function(){$(a).css("opacity","1")}})},add:function(e,t,i){if(!Validate.goValidate({target:$("#addCommentTip"),data:[{target:Comment.editor,type:"editor",max:2e3,msg:Label.commentErrorLabel}]}))return!1;var n={articleId:e,commentAnonymous:$("#commentAnonymous").prop("checked"),commentContent:Comment.editor.getValue(),userCommentViewMode:Label.userCommentViewMode};$("#replyUseName").data("commentOriginalCommentId")&&(n.commentOriginalCommentId=$("#replyUseName").data("commentOriginalCommentId"));var o=Label.servePath+"/comment",r="POST",a=$("#replyUseName").data("commentId");a&&(o=Label.servePath+"/comment/"+a,r="PUT"),$.ajax({url:o,type:r,headers:{csrfToken:t},cache:!1,data:JSON.stringify(n),beforeSend:function(){$(i).attr("disabled","disabled").css("opacity","0.3"),Comment.editor.setOption("readOnly","nocursor")},success:function(e,t){if($(i).removeAttr("disabled").css("opacity","1"),0===e.sc){if(a&&($("#"+a+" > .fn-flex > .fn-flex-1 > .content-reset").html(e.commentContent),$("#"+a+" .icon-history").parent().show()),n.commentOriginalCommentId&&Util.setUnreadNotificationCount(),Comment.editor.setValue(""),$(".editor-preview").html(""),$(".icon-view").parent().hasClass("active")&&$(".icon-view").click(),$(".editor-hide").click(),$("#replyUseName").text("").removeData(),window.localStorage){window.localStorage[Label.articleOId]=JSON.stringify({commentContent:""})}1===Label.userCommentViewMode?Comment._bgFade($("#comments")):Comment._bgFade($("#bottomComment"))}else $("#addCommentTip").addClass("error").html("")},error:function(e){$("#addCommentTip").addClass("error").html("")},complete:function(){$(i).removeAttr("disabled").css("opacity","1"),Comment.editor.setOption("readOnly",!1)}})},reply:function(e,t){Comment._toggleReply(function(){$(window).height()-($("#"+t)[0].offsetTop-$(window).scrollTop()+$("#"+t).outerHeight())<$(".editor-panel .wrapper").outerHeight()&&$(window).scrollTop($("#"+t)[0].offsetTop-($(window).height()-$(".editor-panel .wrapper").outerHeight()-$("#"+t).outerHeight()))});var i="",n=$("#"+t).find(">.fn-flex>div>a").clone();0===n.length?((n=$("#"+t).find(">.fn-flex .avatar").clone()).removeClass("avatar").addClass("avatar-small"),i=' '+n[0].outerHTML+" "+e+" "):(n.addClass("ft-a-title").attr("href","#"+t).attr("onclick",'Comment._bgFade($("#'+t+'"))'),n.find("div").removeClass("avatar").addClass("avatar-small").after(" "+e).before(' '),i=n[0].outerHTML),$("#replyUseName").html(i).data("commentOriginalCommentId",t)}},Article={initAudio:function(){$(".content-audio").each(function(){var e=$(this);new APlayer({element:this,narrow:!1,autoplay:!1,mutex:!0,theme:"#4285f4",preload:"none",mode:"circulation",music:{title:e.data("title"),author:'音乐分享 ',url:e.data("url"),pic:Label.staticServePath+"/images/music.png"}})});var e=$("#articleAudio");if(0===e.length)return!1;new APlayer({element:document.getElementById("articleAudio"),narrow:!1,autoplay:!1,mutex:!0,theme:"#4285f4",mode:"order",preload:"none",music:{title:"语音预览",author:'小薇 ',url:e.data("url"),pic:Label.staticServePath+"/images/blank.png"}})},permissionTip:function(e){Label.isLoggedIn?Util.alert(e):Util.needLogin()},voteUp:function(e,t,i){if(!Label.isLoggedIn)return Util.needLogin(),!1;var o=$(i),r=o.next();if(o.hasClass("disabled"))return!1;var n={dataId:e};o.addClass("disabled"),$.ajax({url:Label.servePath+"/vote/up/"+t,type:"POST",cache:!1,data:JSON.stringify(n),success:function(e,t){o.removeClass("disabled");var i=parseInt(o.text()),n=parseInt(r.text());e.sc?0===e.type?o.html(' '+(i-1)).removeClass("ft-red"):(o.html(' '+(i+1)).addClass("ft-red"),r.hasClass("ft-red")&&r.html(' '+(n-1)).removeClass("ft-red")):alert(e.msg)}})},voteDown:function(e,t,i){if(!Label.isLoggedIn)return Util.needLogin(),!1;var o=$(i),r=o.prev();if(o.hasClass("disabled"))return!1;var n={dataId:e};o.addClass("disabled"),$.ajax({url:Label.servePath+"/vote/down/"+t,type:"POST",cache:!1,data:JSON.stringify(n),success:function(e,t){o.removeClass("disabled");var i=parseInt(r.text()),n=parseInt(o.text());if(e.sc)return 1===e.type?o.html(' '+(n-1)).removeClass("ft-red"):(o.html(' '+(n+1)).addClass("ft-red"),r.hasClass("ft-red")&&r.html(' '+(i-1)).removeClass("ft-red")),!1;alert(e.msg)}})},previewImgAfterLoading:function(){$(".img-preview img").css("transform","translate3d("+Math.max(0,$(window).width()-$(".img-preview img").width())/2+"px, "+Math.max(0,$(window).height()-$(".img-preview img").height())/2+"px, 0)"),setTimeout(function(){$(".img-preview").width($(window).width())},300)},init:function(){this.initToc(),this.share(),this.parseLanguage();var t=null;$(".article").on("dblclick",".content-reset img",function(){clearTimeout(t),$(this).hasClass("emoji")||1===$(this).closest(".editor-panel").length||1===$(this).closest(".ad").length||window.open($(this).attr("src"))}).on("click",".content-reset img",function(e){if(clearTimeout(t),!$(this).hasClass("emoji")&&1!==$(this).closest(".editor-panel").length&&1!==$(this).closest(".ad").length){var i=$(this),n=this;t=setTimeout(function(){var e=n.offsetTop,t=n.offsetLeft;1===i.closest(".comments").length&&(e+=i.closest("li")[0].offsetTop,t=t+$(".comments")[0].offsetLeft+15),$("body").append(' '),$(".img-preview").css({"background-color":"#fff",position:"fixed"})},100)}});var e=$("#articltVia").data("ua"),i=Util.getDeviceByUa(e);""!==i&&$("#articltVia").text("via "+i),$("#revision").dialog({width:$(window).width()-50,height:$(window).height()-50,modal:!0,hideFooter:!0}),this.initAudio(),$(window).scroll(function(){var e=$(window).scrollTop();-1 .module-panel").height($(window).height()-48),$(window).width()<1024)return $(".article-header > h2").removeAttr("style"),0===$("#articleToC").length||$(".article-body .wrapper, #articleCommentsPanel, .article-footer").css("margin-right","auto"),!1;if(1===$("#articleToC").length){var t=$("#articleToC").width(),i=($(window).width()-t-$(".article-info").width()-30)/3+t;$(".article-body .wrapper, #articleCommentsPanel, .article-footer").css("margin-right",i+"px")}$(".article-header > h2").css("margin-left",Math.max(20,$(".article-footer").offset().left-58)+"px")});var n=location.search.split("r=")[1];n&&sessionStorage.setItem("r",n.split("&")[0])},revision:function(e,n){if(!Label.isLoggedIn)return Util.needLogin(),!1;n||(n="article"),$.ajax({url:Label.servePath+"/"+n+"/"+e+"/revisions",cache:!1,success:function(e,t){if(e.sc){if(0===e.revisions.length||1===e.revisions.length)return $("#revision > .revisions").remove(),$("#revisions").html(""+Label.noRevisionLabel+" "),!1;$("#revisions").html("").prev().remove(),$("#revisions").data("revisions",e.revisions).before(''+(e.revisions.length-1)+"~"+e.revisions.length+"/"+e.revisions.length+' '),e.revisions.length<=2&&$("#revision a").first().addClass("disabled");var i=JsDiff.createPatch("",e.revisions[e.revisions.length-2].revisionData.articleContent||e.revisions[e.revisions.length-2].revisionData.commentContent,e.revisions[e.revisions.length-1].revisionData.articleContent||e.revisions[e.revisions.length-1].revisionData.commentContent,e.revisions[e.revisions.length-2].revisionData.articleTitle||"",e.revisions[e.revisions.length-1].revisionData.articleTitle||"");return new Diff2HtmlUI({diff:i}).draw("#revisions",{matching:"lines",outputFormat:"side-by-side",synchronisedScroll:!0}),Article._revisionsControls(n),!1}alert(e.msg)}}),$("#revision").dialog("open")},_revisionsControls:function(e){var i=$("#revisions").data("revisions");$("#revision a.first").click(function(){if(!$(this).hasClass("disabled")){var e=parseInt($("#revision .revisions").text().split("~")[0]);e<=2?$(this).addClass("disabled"):$(this).removeClass("disabled"),2 span").html(e-1+"~"+e+"/"+i.length);var t=JsDiff.createPatch("",i[e-2].revisionData.articleContent||i[e-2].revisionData.commentContent,i[e-1].revisionData.articleContent||i[e-1].revisionData.commentContent,i[e-2].revisionData.articleTitle||"",i[e-1].revisionData.articleTitle||"");new Diff2HtmlUI({diff:t}).draw("#revisions",{matching:"lines",outputFormat:"side-by-side",synchronisedScroll:!0})}}),$("#revision a.last").click(function(){if(!$(this).hasClass("disabled")){var e=parseInt($("#revision .revisions span").text().split("~")[0]);e>i.length-3?$(this).addClass("disabled"):$(this).removeClass("disabled"),2 span").html(e+1+"~"+(e+2)+"/"+i.length);var t=JsDiff.createPatch("",i[e].revisionData.articleContent||i[e].revisionData.commentContent,i[e+1].revisionData.articleContent||i[e+1].revisionData.commentContent,i[e].revisionData.articleTitle||"",i[e+1].revisionData.articleTitle||"");new Diff2HtmlUI({diff:t}).draw("#revisions",{matching:"lines",outputFormat:"side-by-side",synchronisedScroll:!0})}})},share:function(){var e=parseInt($(".article-footer").css("margin-left"))/2-15;$(".share").css("left",(e<20?20:e)+"px");var r=$("#qrCode").data("shareurl");$("#qrCode").qrcode({width:90,height:90,text:r}),$("body").click(function(){$("#qrCode").slideUp()}),$(".share > span").click(function(){var e=$(this).data("type");if(!e)return!1;if("wechat"===e)return $("#qrCode").slideToggle(),!1;if("copy"===e)return!1;var t=encodeURIComponent(Label.articleTitle+" - "+Label.symphonyLabel),i=encodeURIComponent(r),n=$(".article-info .avatar-mid").css("background-image");pic=n.substring(5,n.length-2);var o={};o.tencent="http://share.v.t.qq.com/index.php?c=share&a=index&title="+t+"&url="+i+"&pic="+pic,o.weibo="http://v.t.sina.com.cn/share/share.php?title="+t+"&url="+i+"&pic="+pic,o.google="https://plus.google.com/share?url="+i,o.twitter="https://twitter.com/intent/tweet?status="+t+" "+i,window.open(o[e],"_blank","top=100,left=200,width=648,height=618")}),$("#qrCode").click(function(){$(this).hide()}),$("#shareClipboard").mouseover(function(){$(this).attr("aria-label",Label.copyLabel)}),Util.clipboard($("#shareClipboard"),$("#shareClipboard").next(),function(){$("#shareClipboard").attr("aria-label",Label.copiedLabel)})},parseLanguage:function(){$("pre code").each(function(e,t){$(this).css("max-height",$(window).height()-68),hljs.highlightBlock(t)})},reward:function(e){confirm(Label.rewardConfirmLabel)&&$.ajax({url:Label.servePath+"/article/reward?articleId="+e,type:"POST",cache:!1,success:function(e,t){if(e.sc){$("#articleRewardContent .content-reset").html(e.articleRewardContent),Article.parseLanguage();var i=$("#articleRewardContent > span"),n=parseInt(i.text());i.addClass("ft-red").removeClass("ft-blue").html(n+1+" "+Label.rewardLabel).removeAttr("onclick")}else alert(e.msg)},error:function(e){Util.needLogin()}})},thankArticle:function(e,t){return Label.isLoggedIn?!(0===t&&!confirm(Label.thankArticleConfirmLabel))&&(Label.currentUserName===Label.articleAuthorName?(alert(Label.thankSelfLabel),!1):void $.ajax({url:Label.servePath+"/article/thank?articleId="+e,type:"POST",cache:!1,success:function(e,t){if(e.sc){var i=parseInt($("#thankArticle").text());$("#thankArticle").removeAttr("onclick").html(''+(i+1)+" ").addClass("ft-red").removeClass("ft-blue");var n=$(' '),o=$("#thankArticle").offset().top,r=$("#thankArticle").offset().left;return n.css({"z-index":9999,top:o-20,left:r,position:"absolute","font-size":16,"-moz-user-select":"none","-webkit-user-select":"none","-ms-user-select":"none"}),$("body").append(n),n.animate({top:o-180,opacity:0},1500,function(){n.remove()}),!1}alert(e.msg)}})):(Util.needLogin(),!1)},stick:function(e){confirm(Label.stickConfirmLabel)&&$.ajax({url:Label.servePath+"/article/stick?articleId="+e,type:"POST",cache:!1,success:function(e,t){alert(e.msg),window.location.href=Label.servePath+"/recent"}})},playThought:function(e){var i=function(e,t){var i=e.split("");3===i.length&&i.splice(0,0,"");var n=i[0],o=i[2].split("-"),r=i[3].split("-");if(o[0]=parseInt(o[0]),o[1]=parseInt(o[1]),r[0]=parseInt(r[0]),r[1]=parseInt(r[1]),""===n){for(var a=[],s=o[1],l=0;r[1],s").replace(/ /g," ").replace(/ /g," ");$(".article-content").data("text",e).html(t)},parseInt(n[t].split("")[1])/2);for(var r=0,a=parseInt(n[t-1].split("")[1])/2+120,s=setInterval(function(){a<=r?($("#thoughtProgress .bar").width("100%"),$("#thoughtProgress .icon-video").css("left","100%"),clearInterval(s)):(r+=20,$("#thoughtProgress .icon-video").css("left",100*r/a+"%"),$("#thoughtProgress .bar").width(100*r/a+"%"))},20),l=0,c=0;l").replace(/ /g," ").replace(/ /g," ");$("#thoughtProgressPreview").data("text",d).html(m)}$("#thoughtProgressPreview").dialog({modal:!0,hideFooter:!0}),$("#thoughtProgress .icon-video").click(function(){$("#thoughtProgressPreview").dialog("open")}),$(".article-content").html(m).height($(".article-content").height()).html("")},initToc:function(){if(0===$("#articleToC").length)return $(".article-header > h2").css("margin-left",Math.max(20,$(".article-footer").offset().left-58)+"px"),$(".article-body .wrapper, #articleCommentsPanel, .article-footer").css("margin-right","auto"),!1;var e=$("#articleToC").width(),t=($(window).width()-e-$(".article-info").width()-30)/3+e;$(".article-body .wrapper, #articleCommentsPanel, .article-footer").css("margin-right",t+"px"),$(".article-header > h2").css("margin-left",Math.max(20,$(".article-footer").offset().left-58)+"px"),$("#articleToC > .module-panel").height($(window).height()-48);var a=$("#articleToC"),s=$(".article-toc"),l=$(".article-content [id^=toc]"),c=!1;a.offset().top;toc=[],a.find("li").click(function(){var e=$(this);setTimeout(function(){a.find("li").removeClass("current"),e.addClass("current")},50)}),$(window).scroll(function(e){if(parseInt($("#articleToC").css("right"))<0)return!1;$("#articleToC > .module-panel").height($(window).height()-49),toc=[],l.each(function(e){toc.push({id:this.id,offsetTop:this.offsetTop})});for(var t=$(window).scrollTop(),i=0,n=toc.length;i=toc[toc.length-1].offsetTop-53&&(a.find("li").removeClass("current"),a.find("li:last").addClass("current"));var r=a.find("li.current")[0].offsetTop;c||(s.scrollTop()r-30&&s.scrollTop(r)),setTimeout(function(){c=!1},600)}),$(window).scroll(),s.scrollTop(a.find("li.current")[0].offsetTop).scroll(function(){c=!0})},toggleToc:function(){var e=$("#articleToC");if(0===e.length)return!1;var t=$(".article-header .icon-unordered-list");t.hasClass("ft-red")?(e.animate({right:"-"+$("#articleToC").outerWidth()+"px"}),t.removeClass("ft-red"),$(".article-actions .icon-unordered-list").removeClass("ft-red")):(e.animate({right:0}),t.addClass("ft-red"),$(".article-actions .icon-unordered-list").addClass("ft-red"))},makeNotificationRead:function(e,t){var i={articleId:e,commentIds:t};$.ajax({url:Label.servePath+"/notification/read",type:"POST",cache:!1,data:JSON.stringify(i)})}};Article.init(),$(document).ready(function(){Comment.init(),Util.uploadFile({type:"img",id:"fileUpload",pasteZone:$(".CodeMirror"),qiniuUploadToken:Label.qiniuUploadToken,editor:Comment.editor,uploadingLabel:Label.uploadingLabel,qiniuDomain:Label.qiniuDomain,imgMaxSize:Label.imgMaxSize,fileMaxSize:Label.fileMaxSize}),ArticleChannel.init(Label.articleChannel),Label.isLoggedIn&&(Article.makeNotificationRead(Label.articleOId,Label.notificationCmtIds),setTimeout(function(){Util.setUnreadNotificationCount()},1e3))});
\ No newline at end of file
diff --git a/src/main/webapp/js/channel.min.js b/src/main/webapp/js/channel.min.js
index c5719dbcc..3fc03bd97 100644
--- a/src/main/webapp/js/channel.min.js
+++ b/src/main/webapp/js/channel.min.js
@@ -1 +1 @@
-var ArticleChannel={ws:void 0,init:function(e){ArticleChannel.ws=new ReconnectingWebSocket(e),ArticleChannel.ws.reconnectInterval=1e4,ArticleChannel.ws.onopen=function(){setInterval(function(){ArticleChannel.ws.send("-hb-")},18e4)},ArticleChannel.ws.onmessage=function(e){var n=JSON.parse(e.data);if(Label.articleOId===n.articleId)switch(n.type){case"comment":var t=parseInt($(".comments-header .article-cmt-cnt").text())+1;if($(".comments-header .article-cmt-cnt").text(t+" "+Label.cmtLabel),0===$("#comments .list > ul > li").length&&($(".comment-header > .fn-none").show(),$(".comments-header > .fn-none").show(),$("#articleCommentsPanel").parent().show()),0===Label.userCommentViewMode?$("#comments > .list > ul").append(n.cmtTpl):$("#comments > .list > ul").prepend(n.cmtTpl),$("#"+n.commentId+" .cmt-via").text(Util.getDeviceByUa(n.commentUA)),Label.currentUserName===n.commentAuthorName&&Comment._bgFade($("#"+n.commentId)),hljs.initHighlighting.called=!1,hljs.initHighlighting(),""!==n.commentOriginalCommentId){var o=$("#"+n.commentOriginalCommentId),a=o.find(".comment-action > .ft-fade > .fn-pointer");1===a.length?(a.html(" "+(parseInt($.trim(a.text()))+1)+" "+Label.replyLabel+' '),"icon-chevron-up"===a.find("svg").attr("class")&&(a.find("svg").removeClass("icon-chevron-up").addClass("icon-chevron-down").find("use").attr("xlink:href","#chevron-down"),a.click())):o.find(".comment-action > .ft-fade").prepend(' 1 "+Label.replyLabel+' ')}Util.parseMarkdown();break;case"articleHeat":var i=$("#heatBar"),l=$(".heat");"+"===n.operation?(i.append(' '),setTimeout(function(){l.width($(".heat").width()+3),i.find(".point").remove()},2e3)):(l.width($(".heat").width()-3),i.append(' '),setTimeout(function(){i.find(".point-remove").remove()},2e3));break;default:console.error("Wrong data [type="+n.type+"]")}},ArticleChannel.ws.onclose=function(){},ArticleChannel.ws.onerror=function(e){console.log(e)}}},ArticleListChannel={ws:void 0,init:function(e){ArticleListChannel.ws=new ReconnectingWebSocket(e),ArticleListChannel.ws.reconnectInterval=1e4,ArticleListChannel.ws.onopen=function(){setInterval(function(){ArticleListChannel.ws.send("-hb-")},18e4)},ArticleListChannel.ws.onmessage=function(e){var o=JSON.parse(e.data);$(".article-list h2 > a[rel=bookmark]").each(function(){var e=$(this).data("id").toString();if(o.articleId===e){var n=$(this).closest("li"),t=n.find(".heat");"+"===o.operation?(n.append(' '),setTimeout(function(){t.width(t.width()+3),n.find(".point").remove()},2e3)):(t.width(t.width()-3),n.append(' '),setTimeout(function(){n.find(".point-remove").remove()},2e3))}})},ArticleListChannel.ws.onclose=function(){ArticleListChannel.ws.close()},ArticleListChannel.ws.onerror=function(e){console.log("ERROR",e)}}},ChatRoomChannel={ws:void 0,init:function(e){ChatRoomChannel.ws=new ReconnectingWebSocket(e),ChatRoomChannel.ws.reconnectInterval=1e4,ChatRoomChannel.ws.onopen=function(){setInterval(function(){ChatRoomChannel.ws.send("-hb-")},18e4)},ChatRoomChannel.ws.onmessage=function(e){var n=JSON.parse(e.data);switch(n.type){case"online":$("#onlineCnt").text(n.onlineChatCnt);break;case"msg":var t=n.userAvatarURL.indexOf("user-thumbnail.png")<0,o='
';t||(o='
');var a=''+n.userName+" ";t||(a=n.userName);var i=' ";0===$(".list ul li").length?$(".list ul").html(i):$(".list ul li:first").before(i),$(".list").scrollTop()<2*$("li").outerHeight()&&$(".list").animate({scrollTop:0},500),$(".list li:first").fadeIn(2e3)}},ChatRoomChannel.ws.onclose=function(){ChatRoomChannel.ws.close()},ChatRoomChannel.ws.onerror=function(e){console.log("ERROR",e)}}},GobangChannel={ws:void 0,init:function(e){GobangChannel.ws=new ReconnectingWebSocket(e),GobangChannel.ws.reconnectInterval=1e4,GobangChannel.ws.onopen=function(){setInterval(function(){GobangChannel.ws.send("zephyr test")},18e4)},GobangChannel.ws.onmessage=function(e){switch(JSON.parse(e.data).type){case"gobangPlayer":console.log("data.type:>gobangPlayer");break;case"msg":console.log("data.type:>msg")}},GobangChannel.ws.onclose=function(){GobangChannel.ws.close()},GobangChannel.ws.onerror=function(e){console.log("ERROR",e)}}};
\ No newline at end of file
+var ArticleChannel={ws:void 0,init:function(e){ArticleChannel.ws=new ReconnectingWebSocket(e),ArticleChannel.ws.reconnectInterval=1e4,ArticleChannel.ws.onopen=function(){setInterval(function(){ArticleChannel.ws.send("-hb-")},18e4)},ArticleChannel.ws.onmessage=function(e){var n=JSON.parse(e.data);if(Label.articleOId===n.articleId)switch(n.type){case"comment":var t=parseInt($(".comments-header .article-cmt-cnt").text())+1;if($(".comments-header .article-cmt-cnt").text(t+" "+Label.cmtLabel),0===$("#comments .list > ul > li").length&&($(".comment-header > .fn-none").show(),$(".comments-header > .fn-none").show(),$("#articleCommentsPanel").parent().show()),0===Label.userCommentViewMode?$("#comments > .list > ul").append(n.cmtTpl):$("#comments > .list > ul").prepend(n.cmtTpl),$("#"+n.commentId+" .cmt-via").text("via "+Util.getDeviceByUa(n.commentUA)),Label.currentUserName===n.commentAuthorName&&Comment._bgFade($("#"+n.commentId)),hljs.initHighlighting.called=!1,hljs.initHighlighting(),""!==n.commentOriginalCommentId){var a=$("#"+n.commentOriginalCommentId),o=a.find(".comment-action > .ft-fade > .fn-pointer");1===o.length?(o.html(" "+(parseInt($.trim(o.text()))+1)+" "+Label.replyLabel+' '),"icon-chevron-up"===o.find("svg").attr("class")&&(o.find("svg").removeClass("icon-chevron-up").addClass("icon-chevron-down").find("use").attr("xlink:href","#chevron-down"),o.click())):a.find(".comment-action > .ft-fade").prepend(' 1 "+Label.replyLabel+' ')}Util.parseMarkdown();break;case"articleHeat":var i=$("#heatBar"),l=$(".heat");"+"===n.operation?(i.append(' '),setTimeout(function(){l.width($(".heat").width()+3),i.find(".point").remove()},2e3)):(l.width($(".heat").width()-3),i.append(' '),setTimeout(function(){i.find(".point-remove").remove()},2e3));break;default:console.error("Wrong data [type="+n.type+"]")}},ArticleChannel.ws.onclose=function(){},ArticleChannel.ws.onerror=function(e){console.log(e)}}},ArticleListChannel={ws:void 0,init:function(e){ArticleListChannel.ws=new ReconnectingWebSocket(e),ArticleListChannel.ws.reconnectInterval=1e4,ArticleListChannel.ws.onopen=function(){setInterval(function(){ArticleListChannel.ws.send("-hb-")},18e4)},ArticleListChannel.ws.onmessage=function(e){var a=JSON.parse(e.data);$(".article-list h2 > a[rel=bookmark]").each(function(){var e=$(this).data("id").toString();if(a.articleId===e){var n=$(this).closest("li"),t=n.find(".heat");"+"===a.operation?(n.append(' '),setTimeout(function(){t.width(t.width()+3),n.find(".point").remove()},2e3)):(t.width(t.width()-3),n.append(' '),setTimeout(function(){n.find(".point-remove").remove()},2e3))}})},ArticleListChannel.ws.onclose=function(){ArticleListChannel.ws.close()},ArticleListChannel.ws.onerror=function(e){console.log("ERROR",e)}}},ChatRoomChannel={ws:void 0,init:function(e){ChatRoomChannel.ws=new ReconnectingWebSocket(e),ChatRoomChannel.ws.reconnectInterval=1e4,ChatRoomChannel.ws.onopen=function(){setInterval(function(){ChatRoomChannel.ws.send("-hb-")},18e4)},ChatRoomChannel.ws.onmessage=function(e){var n=JSON.parse(e.data);switch(n.type){case"online":$("#onlineCnt").text(n.onlineChatCnt);break;case"msg":var t=n.userAvatarURL.indexOf("user-thumbnail.png")<0,a='
';t||(a='
');var o=''+n.userName+" ";t||(o=n.userName);var i=' ";0===$(".list ul li").length?$(".list ul").html(i):$(".list ul li:first").before(i),$(".list").scrollTop()<2*$("li").outerHeight()&&$(".list").animate({scrollTop:0},500),$(".list li:first").fadeIn(2e3)}},ChatRoomChannel.ws.onclose=function(){ChatRoomChannel.ws.close()},ChatRoomChannel.ws.onerror=function(e){console.log("ERROR",e)}}},GobangChannel={ws:void 0,init:function(e){GobangChannel.ws=new ReconnectingWebSocket(e),GobangChannel.ws.reconnectInterval=1e4,GobangChannel.ws.onopen=function(){setInterval(function(){GobangChannel.ws.send("zephyr test")},18e4)},GobangChannel.ws.onmessage=function(e){switch(JSON.parse(e.data).type){case"gobangPlayer":console.log("data.type:>gobangPlayer");break;case"msg":console.log("data.type:>msg")}},GobangChannel.ws.onclose=function(){GobangChannel.ws.close()},GobangChannel.ws.onerror=function(e){console.log("ERROR",e)}}};
\ No newline at end of file
diff --git a/src/main/webapp/js/m-article.min.js b/src/main/webapp/js/m-article.min.js
index 84c93f2c9..2935d48b8 100644
--- a/src/main/webapp/js/m-article.min.js
+++ b/src/main/webapp/js/m-article.min.js
@@ -1 +1 @@
-var Comment={editor:void 0,remove:function(i){if(!confirm(Label.confirmRemoveLabel))return!1;$.ajax({url:Label.servePath+"/comment/"+i+"/remove",type:"POST",cache:!1,success:function(e,t){0===e.sc?$("#"+i).remove():alert(e.msg)}})},exchangeCmtSort:function(e){e=0===e?1:0,window.location.href=window.location.pathname+"?m="+e},edit:function(e){Comment._toggleReply(),$(".anonymous-check").hide(),$.ajax({url:Label.servePath+"/comment/"+e+"/content",type:"GET",cache:!1,success:function(e,t){0===e.sc&&Comment.editor.setValue(e.commentContent)}}),$("#replyUseName").html(' '+Label.commonUpdateCommentPermissionLabel+" ").data("commentId",e)},_bgFade:function(e){return 0!==e.length&&($(window).scrollTop(e[0].offsetTop-48),"comments"!==e.attr("id")&&(e.css({"background-color":"#9bbee0"}),setTimeout(function(){e.css({"background-color":"#FFF",transition:"all 3s cubic-bezier(0.56, -0.36, 0.58, 1)"})},100),void setTimeout(function(){e.removeAttr("style")},3100)))},goComment:function(e){if(0===$(e.substr(e.length-14,14)).length)return window.location=e,!1;$("#comments .list > ul > li").removeAttr("style"),Comment._bgFade($(e.substr(e.length-14,14)))},_setCmtVia:function(){$(".cmt-via").each(function(){var e=$(this).data("ua"),t=Util.getDeviceByUa(e);""!==t&&$(this).html("via "+t)})},_toggleReply:function(e){return Label.isLoggedIn?"false"===$(this).data("hasPermission")?(Article.permissionTip(Label.noPermissionLabel),!1):$(".footer").attr("style")?($(".editor-panel .wrapper").slideUp(function(){$(".editor-panel").hide(),$(".footer").removeAttr("style")}),!1):($(".anonymous-check").show(),$(".footer").css("margin-bottom",$(".editor-panel").outerHeight()+"px"),$("#replyUseName").html(' '+$(".article-title").text()+" ").removeData(),"0px"!==$(".editor-panel").css("bottom")&&($(".editor-panel .wrapper").hide(),$(".editor-panel").css("bottom",0)),$(".editor-panel").show(),void $(".editor-panel .wrapper").slideDown(function(){Comment.editor.focus(),e&&e()})):(Util.needLogin(),!1)},_initEditorPanel:function(){$("#replyBtn").click(function(){Comment._toggleReply()}),$(".editor-panel .editor-hide").click(function(){$("#replyBtn").click()})},init:function(){if(1===$(window.location.hash).length&&Comment._bgFade($(window.location.hash)),this._setCmtVia(),this._initEditorPanel(),$.ua.set(navigator.userAgent),$.pjax({selector:".pagination a",container:"#comments",show:"",cache:!1,storage:!0,titleSuffix:"",callback:function(){Util.parseMarkdown()}}),NProgress.configure({showSpinner:!1}),$("#comments").bind("pjax.start",function(){NProgress.start()}),$("#comments").bind("pjax.end",function(){NProgress.done()}),!Label.isLoggedIn)return!1;if("mobile"!==$.ua.device.type||"Apple"!==$.ua.device.vendor&&"Nokia"!==$.ua.device.vendor){Util.initCodeMirror();var e=new Editor({element:document.getElementById("commentContent"),dragDrop:!1,lineWrapping:!0,htmlURL:Label.servePath+"/markdown",toolbar:[{name:"emoji"},{name:"bold"},{name:"italic"},{name:"quote"},{name:"link"},{name:"image",html:'
'},{name:"unordered-list"},{name:"ordered-list"},{name:"question",action:"https://hacpai.com/guide/markdown"}],extraKeys:{"Alt-/":"autocompleteUserName","Cmd-/":"autocompleteEmoji","Ctrl-/":"autocompleteEmoji","Alt-S":"startAudioRecord","Alt-R":"endAudioRecord",Esc:function(){$(".editor-hide").click()}},status:!1});e.render(),e.codemirror.for="comment",Comment.editor=e.codemirror}else $("#commentContent").before('').css("margin",0),Comment.editor=Util.initTextarea("commentContent",function(e){window.localStorage&&(window.localStorage[Label.articleOId]=JSON.stringify({commentContent:e.$it.val()}))});if(window.localStorage&&window.localStorage[Label.articleOId]){var t=null;try{t=JSON.parse(window.localStorage[Label.articleOId])}catch(e){var i={commentContent:""};window.localStorage[Label.articleOId]=JSON.stringify(i),t=JSON.parse(window.localStorage[Label.articleOId])}""!==t.commentContent.replace(/(^\s*)|(\s*$)/g,"")&&Comment.editor.setValue(t.commentContent)}if("mobile"===$.ua.device.type&&("Apple"===$.ua.device.vendor||"Nokia"===$.ua.device.vendor))return!1;Comment.editor.on("changes",function(e){$("#addCommentTip").removeClass("error succ").html(""),window.localStorage&&(window.localStorage[Label.articleOId]=JSON.stringify({commentContent:e.getValue()}));var t=e.getCursor();return 0===e.getTokenAt(t).string.indexOf("@")?(e.showHint({hint:CodeMirror.hint.userName,completeSingle:!1}),CodeMirror.Pass):0!==$(".editor-preview-active").length&&void $.ajax({url:Label.servePath+"/markdown",type:"POST",cache:!1,data:{markdownText:e.getValue()},success:function(e,t){$(".article-comment-content .editor-preview-active").html(e.html),hljs.initHighlighting.called=!1,hljs.initHighlighting(),Util.parseMarkdown()}})}),Comment.editor.on("keypress",function(e,t){if(t.ctrlKey&&10===t.charCode)return Comment.add(Label.articleOId,Label.csrfToken),!1}),Comment.editor.on("keydown",function(e,t){if($.ua.set(navigator.userAgent),-1<$.ua.os.name.indexOf("Mac OS")&&t.metaKey&&13===t.keyCode)return Comment.add(Label.articleOId,Label.csrfToken),!1;if(8===t.keyCode){var i=e.getCursor(),a=e.getTokenAt(i),n=CodeMirror.Pos(i.line,i.ch);a=e.getTokenAt(n),/^:\S+:$/.test(a.string)&&e.replaceRange("",CodeMirror.Pos(i.line,a.start),CodeMirror.Pos(i.line,a.end-1))}})},thank:function(e,t,i,a,o){if(!Label.isLoggedIn)return Util.needLogin(),!1;if(0===a&&!confirm(i))return!1;var n={commentId:e};$.ajax({url:Label.servePath+"/comment/thank",type:"POST",headers:{csrfToken:t},cache:!1,data:JSON.stringify(n),error:function(e,t,i){alert(i)},success:function(e,t){if(e.sc){$(o).removeAttr("onclick");var i=$(' '),a=$(o).offset().top,n=$(o).offset().left;i.css({"z-index":9999,top:a,left:n,position:"absolute","font-size":16,"-moz-user-select":"none","-webkit-user-select":"none","-ms-user-select":"none"}),$("body").append(i),i.animate({left:n-150,top:a-60,opacity:0},1e3,function(){var e=parseInt($(o).text());$(o).html(' '+(e+1)).addClass("ft-red"),i.remove()})}else alert(e.msg)}})},showReply:function(e,r,t){var s=$(r).closest("li").find("."+t);if("comment-get-comment"===t){if(0!==s.find("li").length)return s.html(""),!1}else if(0===$(r).find(".icon-chevron-down").length)return $(r).find(".icon-chevron-up").removeClass("icon-chevron-up").addClass("icon-chevron-down").find("use").attr("xlink:href","#chevron-down"),s.html(""),!1;if("0.3"===$(r).css("opacity"))return!1;var i="/comment/replies";"comment-get-comment"===t&&(i="/comment/original"),$.ajax({url:Label.servePath+i,type:"POST",data:JSON.stringify({commentId:e,userCommentViewMode:Label.userCommentViewMode}),beforeSend:function(){$(r).css("opacity","0.3")},success:function(e,t){if(!e.sc)return alert(e.msg),!1;var i=e.commentReplies,a="";i instanceof Array||(i=[i]),0===i.length&&(a=''+Label.removedLabel+" ");for(var n=0;n"}s.html(""),Article.parseLanguage(),$(r).find(".icon-chevron-down").removeClass("icon-chevron-down").addClass("icon-chevron-up").find("use").attr("xlink:href","#chevron-up")},error:function(e){alert(e.statusText)},complete:function(){$(r).css("opacity","1")}})},add:function(e,t){if(!Validate.goValidate({target:$("#addCommentTip"),data:[{target:Comment.editor,type:"editor",max:2e3,msg:Label.commentErrorLabel}]}))return!1;var i={articleId:e,commentAnonymous:$("#commentAnonymous").prop("checked"),commentContent:Comment.editor.getValue(),userCommentViewMode:Label.userCommentViewMode};$("#replyUseName").data("commentOriginalCommentId")&&(i.commentOriginalCommentId=$("#replyUseName").data("commentOriginalCommentId"));var a=Label.servePath+"/comment",n="POST",o=$("#replyUseName").data("commentId");o&&(a=Label.servePath+"/comment/"+o,n="PUT"),$.ajax({url:a,type:n,headers:{csrfToken:t},cache:!1,data:JSON.stringify(i),beforeSend:function(){$(".form button.red").attr("disabled","disabled").css("opacity","0.3"),Comment.editor.setOption("readOnly","nocursor")},success:function(e,t){if($(".form button.red").removeAttr("disabled").css("opacity","1"),0===e.sc){if(o&&$("#"+o+" > .fn-flex > .fn-flex-1 > .content-reset").html(e.commentContent),Comment.editor.setValue(""),$(".editor-preview").html(""),$(".icon-view").parent().hasClass("active")&&$(".icon-view").click(),$(".editor-hide").click(),$("#replyUseName").text("").removeData(),window.localStorage){window.localStorage[Label.articleOId]=JSON.stringify({commentContent:""})}1===Label.userCommentViewMode?Comment._bgFade($("#comments")):Comment._bgFade($("#bottomComment"))}else $("#addCommentTip").addClass("error").html("")},error:function(e){$("#addCommentTip").addClass("error").html("")},complete:function(){$(".form button.red").removeAttr("disabled").css("opacity","1"),Comment.editor.setOption("readOnly",!1)}})},reply:function(e,t){$("#replyUseName").data("commentOriginalCommentId",t),Comment.editor.focus()}},Article={initAudio:function(){$(".content-audio").each(function(){var e=$(this);new APlayer({element:this,narrow:!1,autoplay:!1,mutex:!0,theme:"#4285f4",preload:"none",mode:"circulation",music:{title:e.data("title"),author:'音乐分享 ',url:e.data("url"),pic:Label.staticServePath+"/images/music.png"}})});var e=$("#articleAudio");if(0===e.length)return!1;new APlayer({element:document.getElementById("articleAudio"),narrow:!1,autoplay:!1,mutex:!0,theme:"#4285f4",mode:"order",preload:"none",music:{title:"语音预览",author:'小薇 ',url:e.data("url"),pic:Label.staticServePath+"/images/blank.png"}})},permissionTip:function(e){Label.isLoggedIn?Util.alert(e):Util.needLogin()},voteUp:function(e,t,i){if(!Label.isLoggedIn)return Util.needLogin(),!1;var n=$(i),o=n.next();if(n.hasClass("disabled"))return!1;var a={dataId:e};n.addClass("disabled"),$.ajax({url:Label.servePath+"/vote/up/"+t,type:"POST",cache:!1,data:JSON.stringify(a),success:function(e,t){n.removeClass("disabled");var i=parseInt(n.text()),a=parseInt(o.text());e.sc?0===e.type?n.html(' '+(i-1)).removeClass("ft-red"):(n.html(' '+(i+1)).addClass("ft-red"),o.hasClass("ft-red")&&o.html(' '+(a-1)).removeClass("ft-red")):alert(e.msg)}})},voteDown:function(e,t,i){if(!Label.isLoggedIn)return Util.needLogin(),!1;var n=$(i),o=n.prev();if(n.hasClass("disabled"))return!1;var a={dataId:e};n.addClass("disabled"),$.ajax({url:Label.servePath+"/vote/down/"+t,type:"POST",cache:!1,data:JSON.stringify(a),success:function(e,t){n.removeClass("disabled");var i=parseInt(o.text()),a=parseInt(n.text());if(e.sc)return 1===e.type?n.html(' '+(a-1)).removeClass("ft-red"):(n.html(' '+(a+1)).addClass("ft-red"),o.hasClass("ft-red")&&o.html(' '+(i-1)).removeClass("ft-red")),!1;alert(e.msg)}})},previewImgAfterLoading:function(){$(".img-preview img").css("transform","translate3d("+Math.max(0,$(window).width()-$(".img-preview img").width())/2+"px, "+Math.max(0,$(window).height()-$(".img-preview img").height())/2+"px, 0)"),setTimeout(function(){$(".img-preview").width($(window).width())},300)},init:function(){this.share(),this.parseLanguage();var t=null;$(".article").on("dblclick",".content-reset img",function(){clearTimeout(t),$(this).hasClass("emoji")||1===$(this).closest(".editor-panel").length||1===$(this).closest(".ad").length||window.open($(this).attr("src"))}).on("click",".content-reset img",function(e){if(clearTimeout(t),!$(this).hasClass("emoji")&&1!==$(this).closest(".editor-panel").length&&1!==$(this).closest(".ad").length){var i=$(this),a=this;t=setTimeout(function(){var e=a.offsetTop,t=a.offsetLeft;1===i.closest(".comments").length&&(e+=i.closest("li")[0].offsetTop,t=t+$(".comments")[0].offsetLeft+15),$("body").append(''),$(".img-preview").css({"background-color":"#fff",position:"fixed"})},100)}});var e=$("#articltVia").data("ua"),i=Util.getDeviceByUa(e);""!==i&&$("#articltVia").text("via "+i),$("#revision").dialog({width:$(window).width()-50,height:$(window).height()-50,modal:!0,hideFooter:!0}),this.initAudio()},revision:function(e,a){if(!Label.isLoggedIn)return Util.needLogin(),!1;a||(a="article"),$.ajax({url:Label.servePath+"/"+a+"/"+e+"/revisions",cache:!1,success:function(e,t){if(e.sc){if(0===e.revisions.length||1===e.revisions.length)return $("#revision > .revisions").remove(),$("#revisions").html(""+Label.noRevisionLabel+" "),!1;$("#revisions").html("").prev().remove(),$("#revisions").data("revisions",e.revisions).before(''+(e.revisions.length-1)+"~"+e.revisions.length+"/"+e.revisions.length+' '),e.revisions.length<=2&&$("#revision a").first().addClass("disabled");var i=JsDiff.createPatch("",e.revisions[e.revisions.length-2].revisionData.articleContent||e.revisions[e.revisions.length-2].revisionData.commentContent,e.revisions[e.revisions.length-1].revisionData.articleContent||e.revisions[e.revisions.length-1].revisionData.commentContent,e.revisions[e.revisions.length-2].revisionData.articleTitle||"",e.revisions[e.revisions.length-1].revisionData.articleTitle||"");return new Diff2HtmlUI({diff:i}).draw("#revisions",{matching:"lines",outputFormat:"side-by-side",synchronisedScroll:!0}),Article._revisionsControls(a),!1}alert(e.msg)}}),$("#revision").dialog("open")},_revisionsControls:function(e){var i=$("#revisions").data("revisions");$("#revision a.first").click(function(){if(!$(this).hasClass("disabled")){var e=parseInt($("#revision .revisions").text().split("~")[0]);e<=2?$(this).addClass("disabled"):$(this).removeClass("disabled"),2 span").html(e-1+"~"+e+"/"+i.length);var t=JsDiff.createPatch("",i[e-2].revisionData.articleContent||i[e-2].revisionData.commentContent,i[e-1].revisionData.articleContent||i[e-1].revisionData.commentContent,i[e-2].revisionData.articleTitle||"",i[e-1].revisionData.articleTitle||"");new Diff2HtmlUI({diff:t}).draw("#revisions",{matching:"lines",outputFormat:"side-by-side",synchronisedScroll:!0})}}),$("#revision a.last").click(function(){if(!$(this).hasClass("disabled")){var e=parseInt($("#revision .revisions span").text().split("~")[0]);e>i.length-3?$(this).addClass("disabled"):$(this).removeClass("disabled"),2 span").html(e+1+"~"+(e+2)+"/"+i.length);var t=JsDiff.createPatch("",i[e].revisionData.articleContent||i[e].revisionData.commentContent,i[e+1].revisionData.articleContent||i[e+1].revisionData.commentContent,i[e].revisionData.articleTitle||"",i[e+1].revisionData.articleTitle||"");new Diff2HtmlUI({diff:t}).draw("#revisions",{matching:"lines",outputFormat:"side-by-side",synchronisedScroll:!0})}})},share:function(){if("mobile"!==$.ua.device.type){var e=$(".article-content").offset().left/2-15;$(".share").css("left",(e<20?20:e)+"px")}var o=$("#qrCode").data("shareurl");$("#qrCode").qrcode({width:90,height:90,text:o}),$("body").click(function(){$("#qrCode").slideUp()}),$(".share > span").click(function(){var e=$(this).data("type");if(!e)return!1;if("wechat"===e)return $("#qrCode").slideToggle(),!1;if("copy"===e)return!1;var t=encodeURIComponent(Label.articleTitle+" - "+Label.symphonyLabel),i=encodeURIComponent(o),a=$(".article-info .avatar").css("background-image");pic=a.substring(5,a.length-2);var n={};n.tencent="http://share.v.t.qq.com/index.php?c=share&a=index&title="+t+"&url="+i+"&pic="+pic,n.weibo="http://v.t.sina.com.cn/share/share.php?title="+t+"&url="+i+"&pic="+pic,n.google="https://plus.google.com/share?url="+i,n.twitter="https://twitter.com/intent/tweet?status="+t+" "+i,window.open(n[e],"_blank","top=100,left=200,width=648,height=618")}),$("#qrCode").click(function(){$(this).hide()}),$("#shareClipboard").mouseover(function(){$(this).attr("aria-label",Label.copyLabel)}),Util.clipboard($("#shareClipboard"),$("#shareClipboard").next(),function(){$("#shareClipboard").attr("aria-label",Label.copiedLabel)})},parseLanguage:function(){$("pre code").each(function(e,t){hljs.highlightBlock(t)})},reward:function(e){confirm(Label.rewardConfirmLabel)&&$.ajax({url:Label.servePath+"/article/reward?articleId="+e,type:"POST",cache:!1,success:function(e,t){if(e.sc){$("#articleRewardContent").html(e.articleRewardContent),Article.parseLanguage();var i=parseInt($(".article-actions .icon-points").parent().text());$(".article-actions .icon-points").parent().addClass("ft-red").html(' '+(i+1)).removeAttr("onclick")}else alert(e.msg)},error:function(e){Util.needLogin()}})},thankArticle:function(e,t){return Label.isLoggedIn?!(0===t&&!confirm(Label.thankArticleConfirmLabel))&&(Label.currentUserName===Label.articleAuthorName?(alert(Label.thankSelfLabel),!1):void $.ajax({url:Label.servePath+"/article/thank?articleId="+e,type:"POST",cache:!1,success:function(e,t){if(e.sc){var i=parseInt($("#thankArticle").text());$("#thankArticle").removeAttr("onclick").html(' '+(i+1)+" ").addClass("ft-red").removeClass("ft-blue");var a=$(' '),n=$("#thankArticle").offset().top,o=$("#thankArticle").offset().left;return a.css({"z-index":9999,top:n-20,left:o,position:"absolute","font-size":16,"-moz-user-select":"none","-webkit-user-select":"none","-ms-user-select":"none"}),$("body").append(a),a.animate({top:n-180,opacity:0},1500,function(){a.remove()}),!1}alert(e.msg)}})):(Util.needLogin(),!1)},stick:function(e){confirm(Label.stickConfirmLabel)&&$.ajax({url:Label.servePath+"/article/stick?articleId="+e,type:"POST",cache:!1,success:function(e,t){alert(e.msg),window.location.href=Label.servePath+"/recent"}})},playThought:function(e){var i=function(e,t){var i=e.split("");3===i.length&&i.splice(0,0,"");var a=i[0],n=i[2].split("-"),o=i[3].split("-");if(n[0]=parseInt(n[0]),n[1]=parseInt(n[1]),o[0]=parseInt(o[0]),o[1]=parseInt(o[1]),""===a){for(var r=[],s=n[1],l=0;s<=o[1];s++,l++){if(n[1]===o[1]){t[s]=t[s].substring(0,n[0])+t[s].substr(o[0]);break}s===n[1]?t[s]=t[s].substr(0,n[0]):s===o[1]?(t[n[1]]+=t[s].substr(o[0]),t.splice(s,1)):r.push(s)}for(var c=0;c").replace(/ /g," ").replace(/ /g," ");$(".article-content").data("text",e).html(t)},parseInt(a[t].split("")[1])/2);for(var o=0,r=parseInt(a[t-1].split("")[1])/2+120,s=setInterval(function(){r<=o?($("#thoughtProgress .bar").width("100%"),$("#thoughtProgress .icon-video").css("left","100%"),clearInterval(s)):(o+=20,$("#thoughtProgress .icon-video").css("left",100*o/r+"%"),$("#thoughtProgress .bar").width(100*o/r+"%"))},20),l=0,c=0;l").replace(/ /g," ").replace(/ /g," ");$("#thoughtProgressPreview").data("text",d).html(m)}$("#thoughtProgressPreview").dialog({modal:!0,hideFooter:!0}),$("#thoughtProgress .icon-video").click(function(){$("#thoughtProgressPreview").dialog("open")}),$(".article-content").html(m).height($(".article-content").height()).html("")},makeNotificationRead:function(e,t){var i={articleId:e,commentIds:t};$.ajax({url:Label.servePath+"/notification/read",type:"POST",cache:!1,data:JSON.stringify(i)})}};Article.init(),$(document).ready(function(){Comment.init(),Util.uploadFile({type:"img",id:"fileUpload",pasteZone:$(".CodeMirror"),qiniuUploadToken:Label.qiniuUploadToken,editor:Comment.editor,uploadingLabel:Label.uploadingLabel,qiniuDomain:Label.qiniuDomain,imgMaxSize:Label.imgMaxSize,fileMaxSize:Label.fileMaxSize}),ArticleChannel.init(Label.articleChannel),Label.isLoggedIn&&(Article.makeNotificationRead(Label.articleOId,Label.notificationCmtIds),setTimeout(function(){Util.setUnreadNotificationCount()},1e3))});
\ No newline at end of file
+var Comment={editor:void 0,accept:function(e,t,i){confirm(e)&&$.ajax({url:Label.servePath+"/comment/accept",type:"POST",headers:{csrfToken:Label.csrfToken},cache:!1,data:JSON.stringify({commentId:t}),success:function(e){e.sc?($(i).closest("li").addClass("cmt-perfect"),$(i).remove()):alert(e.msg)}})},remove:function(i){if(!confirm(Label.confirmRemoveLabel))return!1;$.ajax({url:Label.servePath+"/comment/"+i+"/remove",type:"POST",cache:!1,success:function(e,t){0===e.sc?$("#"+i).remove():alert(e.msg)}})},exchangeCmtSort:function(e){e=0===e?1:0,window.location.href=window.location.pathname+"?m="+e},edit:function(e){Comment._toggleReply(),$(".anonymous-check").hide(),$.ajax({url:Label.servePath+"/comment/"+e+"/content",type:"GET",cache:!1,success:function(e,t){0===e.sc&&Comment.editor.setValue(e.commentContent)}}),$("#replyUseName").html(' '+Label.commonUpdateCommentPermissionLabel+" ").data("commentId",e)},_bgFade:function(e){return 0!==e.length&&($(window).scrollTop(e[0].offsetTop-48),"comments"!==e.attr("id")&&(e.css({"background-color":"#9bbee0"}),setTimeout(function(){e.css({"background-color":"#FFF",transition:"all 3s cubic-bezier(0.56, -0.36, 0.58, 1)"})},100),void setTimeout(function(){e.removeAttr("style")},3100)))},goComment:function(e){if(0===$(e.substr(e.length-14,14)).length)return window.location=e,!1;$("#comments .list > ul > li").removeAttr("style"),Comment._bgFade($(e.substr(e.length-14,14)))},_setCmtVia:function(){$(".cmt-via").each(function(){var e=$(this).data("ua"),t=Util.getDeviceByUa(e);""!==t&&$(this).html("via "+t)})},_toggleReply:function(e){return Label.isLoggedIn?"false"===$(this).data("hasPermission")?(Article.permissionTip(Label.noPermissionLabel),!1):$(".footer").attr("style")?($(".editor-panel .wrapper").slideUp(function(){$(".editor-panel").hide(),$(".footer").removeAttr("style")}),!1):($(".anonymous-check").show(),$(".footer").css("margin-bottom",$(".editor-panel").outerHeight()+"px"),$("#replyUseName").html(' '+$(".article-title").text()+" ").removeData(),"0px"!==$(".editor-panel").css("bottom")&&($(".editor-panel .wrapper").hide(),$(".editor-panel").css("bottom",0)),$(".editor-panel").show(),void $(".editor-panel .wrapper").slideDown(function(){Comment.editor.focus(),e&&e()})):(Util.needLogin(),!1)},_initEditorPanel:function(){$("#replyBtn").click(function(){Comment._toggleReply()}),$(".editor-panel .editor-hide").click(function(){$("#replyBtn").click()})},init:function(){if(1===$(window.location.hash).length&&Comment._bgFade($(window.location.hash)),this._setCmtVia(),this._initEditorPanel(),$.ua.set(navigator.userAgent),$.pjax({selector:".pagination a",container:"#comments",show:"",cache:!1,storage:!0,titleSuffix:"",callback:function(){Util.parseMarkdown()}}),NProgress.configure({showSpinner:!1}),$("#comments").bind("pjax.start",function(){NProgress.start()}),$("#comments").bind("pjax.end",function(){NProgress.done()}),!Label.isLoggedIn)return!1;if("mobile"!==$.ua.device.type||"Apple"!==$.ua.device.vendor&&"Nokia"!==$.ua.device.vendor){Util.initCodeMirror();var e=new Editor({element:document.getElementById("commentContent"),dragDrop:!1,lineWrapping:!0,htmlURL:Label.servePath+"/markdown",toolbar:[{name:"emoji"},{name:"bold"},{name:"italic"},{name:"quote"},{name:"link"},{name:"image",html:'
'},{name:"unordered-list"},{name:"ordered-list"},{name:"question",action:"https://hacpai.com/guide/markdown"}],extraKeys:{"Alt-/":"autocompleteUserName","Cmd-/":"autocompleteEmoji","Ctrl-/":"autocompleteEmoji","Alt-S":"startAudioRecord","Alt-R":"endAudioRecord",Esc:function(){$(".editor-hide").click()}},status:!1});e.render(),e.codemirror.for="comment",Comment.editor=e.codemirror}else $("#commentContent").before('').css("margin",0),Comment.editor=Util.initTextarea("commentContent",function(e){window.localStorage&&(window.localStorage[Label.articleOId]=JSON.stringify({commentContent:e.$it.val()}))});if(window.localStorage&&window.localStorage[Label.articleOId]){var t=null;try{t=JSON.parse(window.localStorage[Label.articleOId])}catch(e){var i={commentContent:""};window.localStorage[Label.articleOId]=JSON.stringify(i),t=JSON.parse(window.localStorage[Label.articleOId])}""!==t.commentContent.replace(/(^\s*)|(\s*$)/g,"")&&Comment.editor.setValue(t.commentContent)}if("mobile"===$.ua.device.type&&("Apple"===$.ua.device.vendor||"Nokia"===$.ua.device.vendor))return!1;Comment.editor.on("changes",function(e){$("#addCommentTip").removeClass("error succ").html(""),window.localStorage&&(window.localStorage[Label.articleOId]=JSON.stringify({commentContent:e.getValue()}));var t=e.getCursor();return 0===e.getTokenAt(t).string.indexOf("@")?(e.showHint({hint:CodeMirror.hint.userName,completeSingle:!1}),CodeMirror.Pass):0!==$(".editor-preview-active").length&&void $.ajax({url:Label.servePath+"/markdown",type:"POST",cache:!1,data:{markdownText:e.getValue()},success:function(e,t){$(".article-comment-content .editor-preview-active").html(e.html),hljs.initHighlighting.called=!1,hljs.initHighlighting(),Util.parseMarkdown()}})}),Comment.editor.on("keypress",function(e,t){if(t.ctrlKey&&10===t.charCode)return Comment.add(Label.articleOId,Label.csrfToken),!1}),Comment.editor.on("keydown",function(e,t){if($.ua.set(navigator.userAgent),-1<$.ua.os.name.indexOf("Mac OS")&&t.metaKey&&13===t.keyCode)return Comment.add(Label.articleOId,Label.csrfToken),!1;if(8===t.keyCode){var i=e.getCursor(),a=e.getTokenAt(i),n=CodeMirror.Pos(i.line,i.ch);a=e.getTokenAt(n),/^:\S+:$/.test(a.string)&&e.replaceRange("",CodeMirror.Pos(i.line,a.start),CodeMirror.Pos(i.line,a.end-1))}})},thank:function(e,t,i,a,o){if(!Label.isLoggedIn)return Util.needLogin(),!1;if(0===a&&!confirm(i))return!1;var n={commentId:e};$.ajax({url:Label.servePath+"/comment/thank",type:"POST",headers:{csrfToken:t},cache:!1,data:JSON.stringify(n),error:function(e,t,i){alert(i)},success:function(e,t){if(e.sc){$(o).removeAttr("onclick");var i=$(' '),a=$(o).offset().top,n=$(o).offset().left;i.css({"z-index":9999,top:a,left:n,position:"absolute","font-size":16,"-moz-user-select":"none","-webkit-user-select":"none","-ms-user-select":"none"}),$("body").append(i),i.animate({left:n-150,top:a-60,opacity:0},1e3,function(){var e=parseInt($(o).text());$(o).html(' '+(e+1)).addClass("ft-red"),i.remove()})}else alert(e.msg)}})},showReply:function(e,r,t){var s=$(r).closest("li").find("."+t);if("comment-get-comment"===t){if(0!==s.find("li").length)return s.html(""),!1}else if(0===$(r).find(".icon-chevron-down").length)return $(r).find(".icon-chevron-up").removeClass("icon-chevron-up").addClass("icon-chevron-down").find("use").attr("xlink:href","#chevron-down"),s.html(""),!1;if("0.3"===$(r).css("opacity"))return!1;var i="/comment/replies";"comment-get-comment"===t&&(i="/comment/original"),$.ajax({url:Label.servePath+i,type:"POST",data:JSON.stringify({commentId:e,userCommentViewMode:Label.userCommentViewMode}),beforeSend:function(){$(r).css("opacity","0.3")},success:function(e,t){if(!e.sc)return alert(e.msg),!1;var i=e.commentReplies,a="";i instanceof Array||(i=[i]),0===i.length&&(a=''+Label.removedLabel+" ");for(var n=0;n"}s.html(""),Article.parseLanguage(),$(r).find(".icon-chevron-down").removeClass("icon-chevron-down").addClass("icon-chevron-up").find("use").attr("xlink:href","#chevron-up")},error:function(e){alert(e.statusText)},complete:function(){$(r).css("opacity","1")}})},add:function(e,t){if(!Validate.goValidate({target:$("#addCommentTip"),data:[{target:Comment.editor,type:"editor",max:2e3,msg:Label.commentErrorLabel}]}))return!1;var i={articleId:e,commentAnonymous:$("#commentAnonymous").prop("checked"),commentContent:Comment.editor.getValue(),userCommentViewMode:Label.userCommentViewMode};$("#replyUseName").data("commentOriginalCommentId")&&(i.commentOriginalCommentId=$("#replyUseName").data("commentOriginalCommentId"));var a=Label.servePath+"/comment",n="POST",o=$("#replyUseName").data("commentId");o&&(a=Label.servePath+"/comment/"+o,n="PUT"),$.ajax({url:a,type:n,headers:{csrfToken:t},cache:!1,data:JSON.stringify(i),beforeSend:function(){$(".form button.red").attr("disabled","disabled").css("opacity","0.3"),Comment.editor.setOption("readOnly","nocursor")},success:function(e,t){if($(".form button.red").removeAttr("disabled").css("opacity","1"),0===e.sc){if(o&&$("#"+o+" > .fn-flex > .fn-flex-1 > .content-reset").html(e.commentContent),Comment.editor.setValue(""),$(".editor-preview").html(""),$(".icon-view").parent().hasClass("active")&&$(".icon-view").click(),$(".editor-hide").click(),$("#replyUseName").text("").removeData(),window.localStorage){window.localStorage[Label.articleOId]=JSON.stringify({commentContent:""})}1===Label.userCommentViewMode?Comment._bgFade($("#comments")):Comment._bgFade($("#bottomComment"))}else $("#addCommentTip").addClass("error").html("")},error:function(e){$("#addCommentTip").addClass("error").html("")},complete:function(){$(".form button.red").removeAttr("disabled").css("opacity","1"),Comment.editor.setOption("readOnly",!1)}})},reply:function(e,t){$("#replyUseName").data("commentOriginalCommentId",t),Comment.editor.focus()}},Article={initAudio:function(){$(".content-audio").each(function(){var e=$(this);new APlayer({element:this,narrow:!1,autoplay:!1,mutex:!0,theme:"#4285f4",preload:"none",mode:"circulation",music:{title:e.data("title"),author:'音乐分享 ',url:e.data("url"),pic:Label.staticServePath+"/images/music.png"}})});var e=$("#articleAudio");if(0===e.length)return!1;new APlayer({element:document.getElementById("articleAudio"),narrow:!1,autoplay:!1,mutex:!0,theme:"#4285f4",mode:"order",preload:"none",music:{title:"语音预览",author:'小薇 ',url:e.data("url"),pic:Label.staticServePath+"/images/blank.png"}})},permissionTip:function(e){Label.isLoggedIn?Util.alert(e):Util.needLogin()},voteUp:function(e,t,i){if(!Label.isLoggedIn)return Util.needLogin(),!1;var n=$(i),o=n.next();if(n.hasClass("disabled"))return!1;var a={dataId:e};n.addClass("disabled"),$.ajax({url:Label.servePath+"/vote/up/"+t,type:"POST",cache:!1,data:JSON.stringify(a),success:function(e,t){n.removeClass("disabled");var i=parseInt(n.text()),a=parseInt(o.text());e.sc?0===e.type?n.html(' '+(i-1)).removeClass("ft-red"):(n.html(' '+(i+1)).addClass("ft-red"),o.hasClass("ft-red")&&o.html(' '+(a-1)).removeClass("ft-red")):alert(e.msg)}})},voteDown:function(e,t,i){if(!Label.isLoggedIn)return Util.needLogin(),!1;var n=$(i),o=n.prev();if(n.hasClass("disabled"))return!1;var a={dataId:e};n.addClass("disabled"),$.ajax({url:Label.servePath+"/vote/down/"+t,type:"POST",cache:!1,data:JSON.stringify(a),success:function(e,t){n.removeClass("disabled");var i=parseInt(o.text()),a=parseInt(n.text());if(e.sc)return 1===e.type?n.html(' '+(a-1)).removeClass("ft-red"):(n.html(' '+(a+1)).addClass("ft-red"),o.hasClass("ft-red")&&o.html(' '+(i-1)).removeClass("ft-red")),!1;alert(e.msg)}})},previewImgAfterLoading:function(){$(".img-preview img").css("transform","translate3d("+Math.max(0,$(window).width()-$(".img-preview img").width())/2+"px, "+Math.max(0,$(window).height()-$(".img-preview img").height())/2+"px, 0)"),setTimeout(function(){$(".img-preview").width($(window).width())},300)},init:function(){this.share(),this.parseLanguage();var t=null;$(".article").on("dblclick",".content-reset img",function(){clearTimeout(t),$(this).hasClass("emoji")||1===$(this).closest(".editor-panel").length||1===$(this).closest(".ad").length||window.open($(this).attr("src"))}).on("click",".content-reset img",function(e){if(clearTimeout(t),!$(this).hasClass("emoji")&&1!==$(this).closest(".editor-panel").length&&1!==$(this).closest(".ad").length){var i=$(this),a=this;t=setTimeout(function(){var e=a.offsetTop,t=a.offsetLeft;1===i.closest(".comments").length&&(e+=i.closest("li")[0].offsetTop,t=t+$(".comments")[0].offsetLeft+15),$("body").append(''),$(".img-preview").css({"background-color":"#fff",position:"fixed"})},100)}});var e=$("#articltVia").data("ua"),i=Util.getDeviceByUa(e);""!==i&&$("#articltVia").text("via "+i),$("#revision").dialog({width:$(window).width()-50,height:$(window).height()-50,modal:!0,hideFooter:!0}),this.initAudio()},revision:function(e,a){if(!Label.isLoggedIn)return Util.needLogin(),!1;a||(a="article"),$.ajax({url:Label.servePath+"/"+a+"/"+e+"/revisions",cache:!1,success:function(e,t){if(e.sc){if(0===e.revisions.length||1===e.revisions.length)return $("#revision > .revisions").remove(),$("#revisions").html(""+Label.noRevisionLabel+" "),!1;$("#revisions").html("").prev().remove(),$("#revisions").data("revisions",e.revisions).before(''+(e.revisions.length-1)+"~"+e.revisions.length+"/"+e.revisions.length+' '),e.revisions.length<=2&&$("#revision a").first().addClass("disabled");var i=JsDiff.createPatch("",e.revisions[e.revisions.length-2].revisionData.articleContent||e.revisions[e.revisions.length-2].revisionData.commentContent,e.revisions[e.revisions.length-1].revisionData.articleContent||e.revisions[e.revisions.length-1].revisionData.commentContent,e.revisions[e.revisions.length-2].revisionData.articleTitle||"",e.revisions[e.revisions.length-1].revisionData.articleTitle||"");return new Diff2HtmlUI({diff:i}).draw("#revisions",{matching:"lines",outputFormat:"side-by-side",synchronisedScroll:!0}),Article._revisionsControls(a),!1}alert(e.msg)}}),$("#revision").dialog("open")},_revisionsControls:function(e){var i=$("#revisions").data("revisions");$("#revision a.first").click(function(){if(!$(this).hasClass("disabled")){var e=parseInt($("#revision .revisions").text().split("~")[0]);e<=2?$(this).addClass("disabled"):$(this).removeClass("disabled"),2 span").html(e-1+"~"+e+"/"+i.length);var t=JsDiff.createPatch("",i[e-2].revisionData.articleContent||i[e-2].revisionData.commentContent,i[e-1].revisionData.articleContent||i[e-1].revisionData.commentContent,i[e-2].revisionData.articleTitle||"",i[e-1].revisionData.articleTitle||"");new Diff2HtmlUI({diff:t}).draw("#revisions",{matching:"lines",outputFormat:"side-by-side",synchronisedScroll:!0})}}),$("#revision a.last").click(function(){if(!$(this).hasClass("disabled")){var e=parseInt($("#revision .revisions span").text().split("~")[0]);e>i.length-3?$(this).addClass("disabled"):$(this).removeClass("disabled"),2 span").html(e+1+"~"+(e+2)+"/"+i.length);var t=JsDiff.createPatch("",i[e].revisionData.articleContent||i[e].revisionData.commentContent,i[e+1].revisionData.articleContent||i[e+1].revisionData.commentContent,i[e].revisionData.articleTitle||"",i[e+1].revisionData.articleTitle||"");new Diff2HtmlUI({diff:t}).draw("#revisions",{matching:"lines",outputFormat:"side-by-side",synchronisedScroll:!0})}})},share:function(){if("mobile"!==$.ua.device.type){var e=$(".article-content").offset().left/2-15;$(".share").css("left",(e<20?20:e)+"px")}var o=$("#qrCode").data("shareurl");$("#qrCode").qrcode({width:90,height:90,text:o}),$("body").click(function(){$("#qrCode").slideUp()}),$(".share > span").click(function(){var e=$(this).data("type");if(!e)return!1;if("wechat"===e)return $("#qrCode").slideToggle(),!1;if("copy"===e)return!1;var t=encodeURIComponent(Label.articleTitle+" - "+Label.symphonyLabel),i=encodeURIComponent(o),a=$(".article-info .avatar").css("background-image");pic=a.substring(5,a.length-2);var n={};n.tencent="http://share.v.t.qq.com/index.php?c=share&a=index&title="+t+"&url="+i+"&pic="+pic,n.weibo="http://v.t.sina.com.cn/share/share.php?title="+t+"&url="+i+"&pic="+pic,n.google="https://plus.google.com/share?url="+i,n.twitter="https://twitter.com/intent/tweet?status="+t+" "+i,window.open(n[e],"_blank","top=100,left=200,width=648,height=618")}),$("#qrCode").click(function(){$(this).hide()}),$("#shareClipboard").mouseover(function(){$(this).attr("aria-label",Label.copyLabel)}),Util.clipboard($("#shareClipboard"),$("#shareClipboard").next(),function(){$("#shareClipboard").attr("aria-label",Label.copiedLabel)})},parseLanguage:function(){$("pre code").each(function(e,t){hljs.highlightBlock(t)})},reward:function(e){confirm(Label.rewardConfirmLabel)&&$.ajax({url:Label.servePath+"/article/reward?articleId="+e,type:"POST",cache:!1,success:function(e,t){if(e.sc){$("#articleRewardContent").html(e.articleRewardContent),Article.parseLanguage();var i=parseInt($(".article-actions .icon-points").parent().text());$(".article-actions .icon-points").parent().addClass("ft-red").html(' '+(i+1)).removeAttr("onclick")}else alert(e.msg)},error:function(e){Util.needLogin()}})},thankArticle:function(e,t){return Label.isLoggedIn?!(0===t&&!confirm(Label.thankArticleConfirmLabel))&&(Label.currentUserName===Label.articleAuthorName?(alert(Label.thankSelfLabel),!1):void $.ajax({url:Label.servePath+"/article/thank?articleId="+e,type:"POST",cache:!1,success:function(e,t){if(e.sc){var i=parseInt($("#thankArticle").text());$("#thankArticle").removeAttr("onclick").html(' '+(i+1)+" ").addClass("ft-red").removeClass("ft-blue");var a=$(' '),n=$("#thankArticle").offset().top,o=$("#thankArticle").offset().left;return a.css({"z-index":9999,top:n-20,left:o,position:"absolute","font-size":16,"-moz-user-select":"none","-webkit-user-select":"none","-ms-user-select":"none"}),$("body").append(a),a.animate({top:n-180,opacity:0},1500,function(){a.remove()}),!1}alert(e.msg)}})):(Util.needLogin(),!1)},stick:function(e){confirm(Label.stickConfirmLabel)&&$.ajax({url:Label.servePath+"/article/stick?articleId="+e,type:"POST",cache:!1,success:function(e,t){alert(e.msg),window.location.href=Label.servePath+"/recent"}})},playThought:function(e){var i=function(e,t){var i=e.split("");3===i.length&&i.splice(0,0,"");var a=i[0],n=i[2].split("-"),o=i[3].split("-");if(n[0]=parseInt(n[0]),n[1]=parseInt(n[1]),o[0]=parseInt(o[0]),o[1]=parseInt(o[1]),""===a){for(var r=[],s=n[1],l=0;s<=o[1];s++,l++){if(n[1]===o[1]){t[s]=t[s].substring(0,n[0])+t[s].substr(o[0]);break}s===n[1]?t[s]=t[s].substr(0,n[0]):s===o[1]?(t[n[1]]+=t[s].substr(o[0]),t.splice(s,1)):r.push(s)}for(var c=0;c").replace(/ /g," ").replace(/ /g," ");$(".article-content").data("text",e).html(t)},parseInt(a[t].split("")[1])/2);for(var o=0,r=parseInt(a[t-1].split("")[1])/2+120,s=setInterval(function(){r<=o?($("#thoughtProgress .bar").width("100%"),$("#thoughtProgress .icon-video").css("left","100%"),clearInterval(s)):(o+=20,$("#thoughtProgress .icon-video").css("left",100*o/r+"%"),$("#thoughtProgress .bar").width(100*o/r+"%"))},20),l=0,c=0;l").replace(/ /g," ").replace(/ /g," ");$("#thoughtProgressPreview").data("text",d).html(m)}$("#thoughtProgressPreview").dialog({modal:!0,hideFooter:!0}),$("#thoughtProgress .icon-video").click(function(){$("#thoughtProgressPreview").dialog("open")}),$(".article-content").html(m).height($(".article-content").height()).html("")},makeNotificationRead:function(e,t){var i={articleId:e,commentIds:t};$.ajax({url:Label.servePath+"/notification/read",type:"POST",cache:!1,data:JSON.stringify(i)})}};Article.init(),$(document).ready(function(){Comment.init(),Util.uploadFile({type:"img",id:"fileUpload",pasteZone:$(".CodeMirror"),qiniuUploadToken:Label.qiniuUploadToken,editor:Comment.editor,uploadingLabel:Label.uploadingLabel,qiniuDomain:Label.qiniuDomain,imgMaxSize:Label.imgMaxSize,fileMaxSize:Label.fileMaxSize}),ArticleChannel.init(Label.articleChannel),Label.isLoggedIn&&(Article.makeNotificationRead(Label.articleOId,Label.notificationCmtIds),setTimeout(function(){Util.setUnreadNotificationCount()},1e3))});
\ No newline at end of file
diff --git a/src/main/webapp/js/settings.js b/src/main/webapp/js/settings.js
index 0f044ba4c..2cae1d946 100644
--- a/src/main/webapp/js/settings.js
+++ b/src/main/webapp/js/settings.js
@@ -21,7 +21,7 @@
* @author Liyuan Li
* @author Liang Ding
* @author Zephyr
- * @version 1.22.1.2, Apr 6, 2018
+ * @version 1.25.0.0, Jun 12, 2018
*/
/**
@@ -29,6 +29,75 @@
* @static
*/
var Settings = {
+ /**
+ * 获取邮箱验证码
+ * @param csrfToken
+ */
+ getEmailCaptcha: function (csrfToken) {
+ $('#emailGetBtn').attr('disabled', 'disabled').css('opacity', '0.3')
+ $.ajax({
+ url: Label.servePath + '/settings/email/vc',
+ type: 'POST',
+ headers: {'csrfToken': csrfToken},
+ data: JSON.stringify({
+ userEmail: $('#emailInput').val(),
+ captcha: $('#emailVerify').val(),
+ }),
+ success: function (result) {
+ if (result.sc) {
+ $('#emailInput').prop('disabled', true)
+ $('.home-account__captch').hide()
+ $('#emailCodePanel').show()
+ $('#emailCode').show().focus()
+ $('#emailSubmitBtn').show()
+ $('#emailGetBtn').hide()
+ }
+ alert(result.msg)
+ $('#emailGetBtn').removeAttr('disabled').css('opacity', '1')
+ },
+ })
+ },
+ /**
+ * 更新邮箱
+ */
+ updateEmail: function (csrfToken) {
+ $('#emailSubmitBtn').attr('disabled', 'disabled').css('opacity', '0.3')
+ $.ajax({
+ url: Label.servePath + '/settings/email',
+ type: 'POST',
+ headers: {'csrfToken': csrfToken},
+ data: JSON.stringify({
+ userEmail: $('#emailInput').val(),
+ captcha: $('#emailCode').val(),
+ }),
+ success: function (result) {
+ if (result.sc) {
+ $('.home-account__captch').show()
+ $('#emailVerify').val('')
+ $('#emailCodePanel').hide()
+ $('#emailCode').val('')
+ $('#emailSubmitBtn').hide()
+ $('#emailGetBtn').show()
+ $('#emailInput').prop('disabled', false)
+ $('.home-account__captch img').click()
+ alert(Label.updateSuccLabel)
+ } else {
+ if (result.code === 1) {
+ $('.home-account__captch').show()
+ $('#emailVerify').val('')
+ $('#emailCodePanel').hide()
+ $('#emailCodePanel').hide()
+ $('#emailSubmitBtn').hide()
+ $('#emailGetBtn').show()
+ $('#emailInput').prop('disabled', false)
+ $('.home-account__captch img').click()
+ }
+ alert(result.msg)
+ }
+ $('#emailSubmitBtn').removeAttr('disabled').css('opacity', '1')
+ },
+ })
+ },
/**
* 个人主页滚动固定
*/
diff --git a/src/main/webapp/js/settings.min.js b/src/main/webapp/js/settings.min.js
index 29c8bdff1..1eca2046c 100644
--- a/src/main/webapp/js/settings.min.js
+++ b/src/main/webapp/js/settings.min.js
@@ -1 +1 @@
-var Settings={homeScroll:function(){$(".nav-tabs").html($(".home-menu").html()),$(".nav").css({position:"fixed","box-shadow":"0 1px 2px rgba(0,0,0,.2)"}),$(".main").css("paddingTop","68px")},notiScroll:function(){var e=$("#side"),a=e.width(),t=1===$(".small-tips").closest(".module").length?109+$(".small-tips").closest(".module").height():89;$(".side.fn-none").height(e.height()),$(window).scroll(function(){$(window).scrollTop()>t?(e.css({position:"fixed",width:a+"px",top:0,right:$(".wrapper").css("margin-right")}),$(".side.fn-none").show(),$(".small-tips").closest(".module").hide()):(e.removeAttr("style"),$(".side.fn-none").hide(),$(".small-tips").closest(".module").show())})},initHljs:function(){if(0===$("pre code").length)return!1;$.ajax({method:"GET",url:Label.servePath+"/js/lib/highlight.js-9.6.0/highlight.pack.js",dataType:"script"}).done(function(){$("pre code").each(function(e,a){hljs.highlightBlock(a),$(this).css("max-height",$(window).height()-68)})})},preview:function(e){"block"===$("#homeSidePanel").css("display")?($("#homeSidePanel").hide(),$(e).text(Label.previewLabel)):($("#homeSidePanel").show(),$("#userNicknameDom").text($("#userNickname").val()),$("#userTagsDom").text($("#userTags").val()),$("#userURLDom").text($("#userURL").val()).attr("href",$("#userURL").val()),$("#userIntroDom").text($("#userIntro").val()),$(e).text(Label.unPreviewLabel))},initUploadAvatar:function(t,r,s){var i="";""===t.qiniuUploadToken?$("#"+t.id).fileupload({acceptFileTypes:/(\.|\/)(gif|jpe?g|png)$/i,maxFileSize:parseInt(t.maxSize),multipart:!0,pasteZone:null,dropZone:null,url:Label.servePath+"/upload",add:function(e,t){if(i=t.files[0].type.split("/")[1],window.File&&window.FileReader&&window.FileList&&window.Blob){var a=new FileReader;a.readAsArrayBuffer(t.files[0]),a.onload=function(e){var a=new Uint8Array(e.target.result.slice(0,11));isImage(a)?1048576"+Label.transferSuccLabel+" "),$("#pointTransferUserName").val(""),$("#pointTransferAmount").val("")):$("#pointTransferTip").addClass("error").removeClass("succ").html(""),$("#pointTransferTip").show(),setTimeout(function(){$("#pointTransferTip").hide()},2e3)}})}},pointBuyInvitecode:function(e){$.ajax({url:Label.servePath+"/point/buy-invitecode",type:"POST",headers:{csrfToken:e},cache:!1,data:JSON.stringify({}),beforeSend:function(){$("#pointBuyInvitecodeTip").removeClass("succ").removeClass("error").html("")},error:function(e,a,t){alert(t)},success:function(e,a){e.sc?$(".list ul").prepend(''+e.msg.split(" ")[0]+"
"+e.msg.substr(16)+" "):$("#pointBuyInvitecodeTip").addClass("error").removeClass("succ").html(""),$("#pointBuyInvitecodeTip").show()}})},queryInvitecode:function(e){var a={invitecode:$("#invitecode").val()};$.ajax({url:Label.servePath+"/invitecode/state",type:"POST",headers:{csrfToken:e},cache:!1,data:JSON.stringify(a),beforeSend:function(){$("#invitecodeStateTip").removeClass("succ").removeClass("error").html("")},error:function(e,a,t){alert(t)},success:function(e,a){switch(e.sc){case-1:case 0:case 2:$("#invitecodeStateTip").addClass("error").removeClass("succ").html("");break;case 1:$("#invitecodeStateTip").addClass("succ").removeClass("error").html("");break;default:$("#invitecodeStateTip").addClass("error").removeClass("succ").html("")}S,$("#invitecodeStateTip").show()}})},update:function(t,e){var r={};switch(t){case"profiles":r=this._validateProfiles();break;case"sync/b3":r=this._validateSyncB3();break;case"password":r=this._validatePassword();break;case"privacy":r={userArticleStatus:$("#userArticleStatus").prop("checked"),userCommentStatus:$("#userCommentStatus").prop("checked"),userFollowingUserStatus:$("#userFollowingUserStatus").prop("checked"),userFollowingTagStatus:$("#userFollowingTagStatus").prop("checked"),userFollowingArticleStatus:$("#userFollowingArticleStatus").prop("checked"),userWatchingArticleStatus:$("#userWatchingArticleStatus").prop("checked"),userFollowerStatus:$("#userFollowerStatus").prop("checked"),userBreezemoonStatus:$("#userBreezemoonStatus").prop("checked"),userPointStatus:$("#userPointStatus").prop("checked"),userOnlineStatus:$("#userOnlineStatus").prop("checked"),userJoinPointRank:$("#joinPointRank").prop("checked"),userJoinUsedPointRank:$("#joinUsedPointRank").prop("checked"),userUAStatus:$("#userUAStatus").prop("checked"),userForgeLinkStatus:$("#userForgeLinkStatus").prop("checked")};break;case"function":r={userListPageSize:$("#userListPageSize").val(),userCommentViewMode:$("#userCommentViewMode").val(),userAvatarViewMode:$("#userAvatarViewMode").val(),userListViewMode:$("#userListViewMode").val(),userNotifyStatus:$("#userNotifyStatus").prop("checked"),userSubMailStatus:$("#userSubMailStatus").prop("checked"),userKeyboardShortcutsStatus:$("#userKeyboardShortcutsStatus").prop("checked"),userReplyWatchArticleStatus:$("#userReplyWatchArticleStatus").prop("checked")};break;case"emotionList":r=this._validateEmotionList();break;case"i18n":r={userLanguage:$("#userLanguage").val(),userTimezone:$("#userTimezone").val()};break;default:console.log("update settings has no type")}if(!r)return!1;$.ajax({url:Label.servePath+"/settings/"+t,type:"POST",headers:{csrfToken:e},cache:!1,data:JSON.stringify(r),beforeSend:function(){$("#"+t.replace(/\//g,"")+"Tip").removeClass("succ").removeClass("error").html("")},error:function(e,a,t){alert(t)},success:function(e,a){if(e.sc){if($("#"+t.replace(/\//g,"")+"Tip").addClass("succ").removeClass("error").html(""+Label.updateSuccLabel+" ").show(),"profiles"===t)return $("#userNicknameDom").text(r.userNickname),$("#userTagsDom").text(r.userTags),$("#userURLDom").text(r.userURL).attr("href",r.userURL),void $("#userIntroDom").text(r.userIntro)}else $("#"+t.replace(/\//g,"")+"Tip").addClass("error").removeClass("succ").html("");$("#"+t.replace(/\//g,"")+"Tip").show(),setTimeout(function(){$("#"+t.replace(/\//g,"")+"Tip").hide(),"i18n"===t&&window.location.reload()},5e3)}})},updateAvatar:function(e){var t={userAvatarURL:$("#avatarURL").data("imageurl")};$.ajax({url:Label.servePath+"/settings/avatar",type:"POST",headers:{csrfToken:e},cache:!1,data:JSON.stringify(t),beforeSend:function(){},error:function(e,a,t){alert(t)},success:function(e,a){e.sc&&$("#avatarURLDom, .user-nav .avatar-small").attr("style","background-image:url("+t.userAvatarURL+")")}})},_validateProfiles:function(){return!!Validate.goValidate({target:$("#profilesTip"),data:[{target:$("#userNickname"),type:"string",min:0,max:20,msg:Label.invalidUserNicknameLabel},{target:$("#userTags"),type:"string",min:0,max:255,msg:Label.tagsErrorLabel},{target:$("#userURL"),type:"string",min:0,max:255,msg:Label.invalidUserURLLabel},{target:$("#userIntro"),type:"string",min:0,max:255,msg:Label.invalidUserIntroLabel}]})&&{userNickname:$("#userNickname").val().replace(/(^\s*)|(\s*$)/g,""),userTags:$("#userTags").val().replace(/(^\s*)|(\s*$)/g,""),userURL:$("#userURL").val().replace(/(^\s*)|(\s*$)/g,""),userIntro:$("#userIntro").val().replace(/(^\s*)|(\s*$)/g,"")}},_validateSyncB3:function(){return!!Validate.goValidate({target:$("#syncb3Tip"),data:[{target:$("#soloKey"),type:"string",max:20,msg:Label.invalidUserB3KeyLabel},{target:$("#soloPostURL"),type:"url",msg:Label.invalidUserB3ClientURLLabel},{target:$("#soloUpdateURL"),type:"url",msg:Label.invalidUserB3ClientURLLabel},{target:$("#soloCmtURL"),type:"url",msg:Label.invalidUserB3ClientURLLabel}]})&&{userB3Key:$("#soloKey").val().replace(/(^\s*)|(\s*$)/g,""),userB3ClientAddArticleURL:$("#soloPostURL").val().replace(/(^\s*)|(\s*$)/g,""),userB3ClientUpdateArticleURL:$("#soloUpdateURL").val().replace(/(^\s*)|(\s*$)/g,""),userB3ClientAddCommentURL:$("#soloCmtURL").val().replace(/(^\s*)|(\s*$)/g,""),syncWithSymphonyClient:$("#syncWithSymphonyClient").prop("checked")}},_validatePassword:function(){var e=$("#pwdOld").val(),a=$("#pwdNew").val();if(Validate.goValidate({target:$("#passwordTip"),data:[{target:$("#pwdNew"),type:"password",msg:Label.invalidPasswordLabel},{target:$("#pwdRepeat"),type:"password",oranginal:$("#pwdNew"),msg:Label.confirmPwdErrorLabel}]})){if(a!==$("#pwdRepeat").val())return!1;var t={};return t.userPassword=calcMD5(e),t.userNewPassword=calcMD5(a),t}return!1},_validateEmotionList:function(){return{emotions:$("#emotionList").val()}},makeAllNotificationsRead:function(){$.ajax({url:Label.servePath+"/notification/all-read",type:"GET",cache:!1,success:function(e,a){e.sc&&window.location.reload()}})},initFunction:function(){$("#emojiGrid img").click(function(){var e=$(this).attr("alt");-1===$("#emotionList").val().indexOf(e)&&(""!==$("#emotionList").val()?$("#emotionList").val($("#emotionList").val()+","+e):$("#emotionList").val(e))})},initHome:function(){"commentsAnonymous"!==Label.type&&"comments"!==Label.type||Settings.initHljs(),"linkForge"===Label.type&&Util.linkForge(),"mobile"!==$.ua.device.type&&(Settings.homeScroll(),$.pjax({selector:"a",container:"#home-pjax-container",show:"",cache:!1,storage:!0,titleSuffix:"",filter:function(e){return e.indexOf(Label.servePath+"/member/"+Label.userName)<0},callback:function(e){switch(e.type){case"success":case"cache":switch($(".home-menu a").removeClass("current"),location.pathname){case"/member/"+Label.userName:case"/member/"+Label.userName+"/comments":Settings.initHljs();case"/member/"+Label.userName+"/articles/anonymous":case"/member/"+Label.userName+"/comments/anonymous":Settings.initHljs(),$(".home-menu a:eq(0)").addClass("current");break;case"/member/"+Label.userName+"/watching/articles":case"/member/"+Label.userName+"/following/users":case"/member/"+Label.userName+"/following/tags":case"/member/"+Label.userName+"/following/articles":case"/member/"+Label.userName+"/followers":$(".home-menu a:eq(1)").addClass("current");break;case"/member/"+Label.userName+"/breezemoons":$(".home-menu a:eq(1)").addClass("current"),Breezemoon.init();break;case"/member/"+Label.userName+"/points":$(".home-menu a:eq(2)").addClass("current");break;case"/member/"+Label.userName+"/forge/link":$(".home-menu a:eq(3)").addClass("current"),Util.linkForge()}}$(".nav-tabs").html($(".home-menu").html()),Util.parseMarkdown()}}),NProgress.configure({showSpinner:!1}),$("#home-pjax-container").bind("pjax.start",function(){NProgress.start()}),$("#home-pjax-container").bind("pjax.end",function(){NProgress.done()}))}};
\ No newline at end of file
+var Settings={getEmailCaptcha:function(e){$("#emailGetBtn").attr("disabled","disabled").css("opacity","0.3"),$.ajax({url:Label.servePath+"/settings/email/vc",type:"POST",headers:{csrfToken:e},data:JSON.stringify({userEmail:$("#emailInput").val(),captcha:$("#emailVerify").val()}),success:function(e){e.sc&&($("#emailInput").prop("disabled",!0),$(".home-account__captch").hide(),$("#emailCodePanel").show(),$("#emailCode").show().focus(),$("#emailSubmitBtn").show(),$("#emailGetBtn").hide()),alert(e.msg),$("#emailGetBtn").removeAttr("disabled").css("opacity","1")}})},updateEmail:function(e){$("#emailSubmitBtn").attr("disabled","disabled").css("opacity","0.3"),$.ajax({url:Label.servePath+"/settings/email",type:"POST",headers:{csrfToken:e},data:JSON.stringify({userEmail:$("#emailInput").val(),captcha:$("#emailCode").val()}),success:function(e){e.sc?($(".home-account__captch").show(),$("#emailVerify").val(""),$("#emailCodePanel").hide(),$("#emailCode").val(""),$("#emailSubmitBtn").hide(),$("#emailGetBtn").show(),$("#emailInput").prop("disabled",!1),$(".home-account__captch img").click(),alert(Label.updateSuccLabel)):(1===e.code&&($(".home-account__captch").show(),$("#emailVerify").val(""),$("#emailCodePanel").hide(),$("#emailCodePanel").hide(),$("#emailSubmitBtn").hide(),$("#emailGetBtn").show(),$("#emailInput").prop("disabled",!1),$(".home-account__captch img").click()),alert(e.msg)),$("#emailSubmitBtn").removeAttr("disabled").css("opacity","1")}})},homeScroll:function(){$(".nav-tabs").html($(".home-menu").html()),$(".nav").css({position:"fixed","box-shadow":"0 1px 2px rgba(0,0,0,.2)"}),$(".main").css("paddingTop","68px")},notiScroll:function(){var e=$("#side"),a=e.width(),t=1===$(".small-tips").closest(".module").length?109+$(".small-tips").closest(".module").height():89;$(".side.fn-none").height(e.height()),$(window).scroll(function(){$(window).scrollTop()>t?(e.css({position:"fixed",width:a+"px",top:0,right:$(".wrapper").css("margin-right")}),$(".side.fn-none").show(),$(".small-tips").closest(".module").hide()):(e.removeAttr("style"),$(".side.fn-none").hide(),$(".small-tips").closest(".module").show())})},initHljs:function(){if(0===$("pre code").length)return!1;$.ajax({method:"GET",url:Label.servePath+"/js/lib/highlight.js-9.6.0/highlight.pack.js",dataType:"script"}).done(function(){$("pre code").each(function(e,a){hljs.highlightBlock(a),$(this).css("max-height",$(window).height()-68)})})},preview:function(e){"block"===$("#homeSidePanel").css("display")?($("#homeSidePanel").hide(),$(e).text(Label.previewLabel)):($("#homeSidePanel").show(),$("#userNicknameDom").text($("#userNickname").val()),$("#userTagsDom").text($("#userTags").val()),$("#userURLDom").text($("#userURL").val()).attr("href",$("#userURL").val()),$("#userIntroDom").text($("#userIntro").val()),$(e).text(Label.unPreviewLabel))},initUploadAvatar:function(t,s,r){var i="";""===t.qiniuUploadToken?$("#"+t.id).fileupload({acceptFileTypes:/(\.|\/)(gif|jpe?g|png)$/i,maxFileSize:parseInt(t.maxSize),multipart:!0,pasteZone:null,dropZone:null,url:Label.servePath+"/upload",add:function(e,t){if(i=t.files[0].type.split("/")[1],window.File&&window.FileReader&&window.FileList&&window.Blob){var a=new FileReader;a.readAsArrayBuffer(t.files[0]),a.onload=function(e){var a=new Uint8Array(e.target.result.slice(0,11));isImage(a)?1048576"+Label.transferSuccLabel+" "),$("#pointTransferUserName").val(""),$("#pointTransferAmount").val("")):$("#pointTransferTip").addClass("error").removeClass("succ").html(""),$("#pointTransferTip").show(),setTimeout(function(){$("#pointTransferTip").hide()},2e3)}})}},pointBuyInvitecode:function(e){$.ajax({url:Label.servePath+"/point/buy-invitecode",type:"POST",headers:{csrfToken:e},cache:!1,data:JSON.stringify({}),beforeSend:function(){$("#pointBuyInvitecodeTip").removeClass("succ").removeClass("error").html("")},error:function(e,a,t){alert(t)},success:function(e,a){e.sc?$(".list ul").prepend(''+e.msg.split(" ")[0]+"
"+e.msg.substr(16)+" "):$("#pointBuyInvitecodeTip").addClass("error").removeClass("succ").html(""),$("#pointBuyInvitecodeTip").show()}})},queryInvitecode:function(e){var a={invitecode:$("#invitecode").val()};$.ajax({url:Label.servePath+"/invitecode/state",type:"POST",headers:{csrfToken:e},cache:!1,data:JSON.stringify(a),beforeSend:function(){$("#invitecodeStateTip").removeClass("succ").removeClass("error").html("")},error:function(e,a,t){alert(t)},success:function(e,a){switch(e.sc){case-1:case 0:case 2:$("#invitecodeStateTip").addClass("error").removeClass("succ").html("");break;case 1:$("#invitecodeStateTip").addClass("succ").removeClass("error").html("");break;default:$("#invitecodeStateTip").addClass("error").removeClass("succ").html("")}S,$("#invitecodeStateTip").show()}})},update:function(t,e){var s={};switch(t){case"profiles":s=this._validateProfiles();break;case"sync/b3":s=this._validateSyncB3();break;case"password":s=this._validatePassword();break;case"privacy":s={userArticleStatus:$("#userArticleStatus").prop("checked"),userCommentStatus:$("#userCommentStatus").prop("checked"),userFollowingUserStatus:$("#userFollowingUserStatus").prop("checked"),userFollowingTagStatus:$("#userFollowingTagStatus").prop("checked"),userFollowingArticleStatus:$("#userFollowingArticleStatus").prop("checked"),userWatchingArticleStatus:$("#userWatchingArticleStatus").prop("checked"),userFollowerStatus:$("#userFollowerStatus").prop("checked"),userBreezemoonStatus:$("#userBreezemoonStatus").prop("checked"),userPointStatus:$("#userPointStatus").prop("checked"),userOnlineStatus:$("#userOnlineStatus").prop("checked"),userJoinPointRank:$("#joinPointRank").prop("checked"),userJoinUsedPointRank:$("#joinUsedPointRank").prop("checked"),userUAStatus:$("#userUAStatus").prop("checked"),userForgeLinkStatus:$("#userForgeLinkStatus").prop("checked")};break;case"function":s={userListPageSize:$("#userListPageSize").val(),userCommentViewMode:$("#userCommentViewMode").val(),userAvatarViewMode:$("#userAvatarViewMode").val(),userListViewMode:$("#userListViewMode").val(),userNotifyStatus:$("#userNotifyStatus").prop("checked"),userSubMailStatus:$("#userSubMailStatus").prop("checked"),userKeyboardShortcutsStatus:$("#userKeyboardShortcutsStatus").prop("checked"),userReplyWatchArticleStatus:$("#userReplyWatchArticleStatus").prop("checked")};break;case"emotionList":s=this._validateEmotionList();break;case"i18n":s={userLanguage:$("#userLanguage").val(),userTimezone:$("#userTimezone").val()};break;default:console.log("update settings has no type")}if(!s)return!1;$.ajax({url:Label.servePath+"/settings/"+t,type:"POST",headers:{csrfToken:e},cache:!1,data:JSON.stringify(s),beforeSend:function(){$("#"+t.replace(/\//g,"")+"Tip").removeClass("succ").removeClass("error").html("")},error:function(e,a,t){alert(t)},success:function(e,a){if(e.sc){if($("#"+t.replace(/\//g,"")+"Tip").addClass("succ").removeClass("error").html(""+Label.updateSuccLabel+" ").show(),"profiles"===t)return $("#userNicknameDom").text(s.userNickname),$("#userTagsDom").text(s.userTags),$("#userURLDom").text(s.userURL).attr("href",s.userURL),void $("#userIntroDom").text(s.userIntro)}else $("#"+t.replace(/\//g,"")+"Tip").addClass("error").removeClass("succ").html("");$("#"+t.replace(/\//g,"")+"Tip").show(),setTimeout(function(){$("#"+t.replace(/\//g,"")+"Tip").hide(),"i18n"===t&&window.location.reload()},5e3)}})},updateAvatar:function(e){var t={userAvatarURL:$("#avatarURL").data("imageurl")};$.ajax({url:Label.servePath+"/settings/avatar",type:"POST",headers:{csrfToken:e},cache:!1,data:JSON.stringify(t),beforeSend:function(){},error:function(e,a,t){alert(t)},success:function(e,a){e.sc&&$("#avatarURLDom, .user-nav .avatar-small").attr("style","background-image:url("+t.userAvatarURL+")")}})},_validateProfiles:function(){return!!Validate.goValidate({target:$("#profilesTip"),data:[{target:$("#userNickname"),type:"string",min:0,max:20,msg:Label.invalidUserNicknameLabel},{target:$("#userTags"),type:"string",min:0,max:255,msg:Label.tagsErrorLabel},{target:$("#userURL"),type:"string",min:0,max:255,msg:Label.invalidUserURLLabel},{target:$("#userIntro"),type:"string",min:0,max:255,msg:Label.invalidUserIntroLabel}]})&&{userNickname:$("#userNickname").val().replace(/(^\s*)|(\s*$)/g,""),userTags:$("#userTags").val().replace(/(^\s*)|(\s*$)/g,""),userURL:$("#userURL").val().replace(/(^\s*)|(\s*$)/g,""),userIntro:$("#userIntro").val().replace(/(^\s*)|(\s*$)/g,"")}},_validateSyncB3:function(){return!!Validate.goValidate({target:$("#syncb3Tip"),data:[{target:$("#soloKey"),type:"string",max:20,msg:Label.invalidUserB3KeyLabel},{target:$("#soloPostURL"),type:"url",msg:Label.invalidUserB3ClientURLLabel},{target:$("#soloUpdateURL"),type:"url",msg:Label.invalidUserB3ClientURLLabel},{target:$("#soloCmtURL"),type:"url",msg:Label.invalidUserB3ClientURLLabel}]})&&{userB3Key:$("#soloKey").val().replace(/(^\s*)|(\s*$)/g,""),userB3ClientAddArticleURL:$("#soloPostURL").val().replace(/(^\s*)|(\s*$)/g,""),userB3ClientUpdateArticleURL:$("#soloUpdateURL").val().replace(/(^\s*)|(\s*$)/g,""),userB3ClientAddCommentURL:$("#soloCmtURL").val().replace(/(^\s*)|(\s*$)/g,""),syncWithSymphonyClient:$("#syncWithSymphonyClient").prop("checked")}},_validatePassword:function(){var e=$("#pwdOld").val(),a=$("#pwdNew").val();if(Validate.goValidate({target:$("#passwordTip"),data:[{target:$("#pwdNew"),type:"password",msg:Label.invalidPasswordLabel},{target:$("#pwdRepeat"),type:"password",oranginal:$("#pwdNew"),msg:Label.confirmPwdErrorLabel}]})){if(a!==$("#pwdRepeat").val())return!1;var t={};return t.userPassword=calcMD5(e),t.userNewPassword=calcMD5(a),t}return!1},_validateEmotionList:function(){return{emotions:$("#emotionList").val()}},makeAllNotificationsRead:function(){$.ajax({url:Label.servePath+"/notification/all-read",type:"GET",cache:!1,success:function(e,a){e.sc&&window.location.reload()}})},initFunction:function(){$("#emojiGrid img").click(function(){var e=$(this).attr("alt");-1===$("#emotionList").val().indexOf(e)&&(""!==$("#emotionList").val()?$("#emotionList").val($("#emotionList").val()+","+e):$("#emotionList").val(e))})},initHome:function(){"commentsAnonymous"!==Label.type&&"comments"!==Label.type||Settings.initHljs(),"linkForge"===Label.type&&Util.linkForge(),"mobile"!==$.ua.device.type&&(Settings.homeScroll(),$.pjax({selector:"a",container:"#home-pjax-container",show:"",cache:!1,storage:!0,titleSuffix:"",filter:function(e){return e.indexOf(Label.servePath+"/member/"+Label.userName)<0},callback:function(e){switch(e.type){case"success":case"cache":switch($(".home-menu a").removeClass("current"),location.pathname){case"/member/"+Label.userName:case"/member/"+Label.userName+"/comments":Settings.initHljs();case"/member/"+Label.userName+"/articles/anonymous":case"/member/"+Label.userName+"/comments/anonymous":Settings.initHljs(),$(".home-menu a:eq(0)").addClass("current");break;case"/member/"+Label.userName+"/watching/articles":case"/member/"+Label.userName+"/following/users":case"/member/"+Label.userName+"/following/tags":case"/member/"+Label.userName+"/following/articles":case"/member/"+Label.userName+"/followers":$(".home-menu a:eq(1)").addClass("current");break;case"/member/"+Label.userName+"/breezemoons":$(".home-menu a:eq(1)").addClass("current"),Breezemoon.init();break;case"/member/"+Label.userName+"/points":$(".home-menu a:eq(2)").addClass("current");break;case"/member/"+Label.userName+"/forge/link":$(".home-menu a:eq(3)").addClass("current"),Util.linkForge()}}$(".nav-tabs").html($(".home-menu").html()),Util.parseMarkdown()}}),NProgress.configure({showSpinner:!1}),$("#home-pjax-container").bind("pjax.start",function(){NProgress.start()}),$("#home-pjax-container").bind("pjax.end",function(){NProgress.done()}))}};
\ No newline at end of file
diff --git a/src/main/webapp/js/symbol-defs.min.js b/src/main/webapp/js/symbol-defs.min.js
index b61bca6ae..ad6ace029 100755
--- a/src/main/webapp/js/symbol-defs.min.js
+++ b/src/main/webapp/js/symbol-defs.min.js
@@ -1 +1 @@
-var svg=' ';svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',document.body.insertAdjacentHTML("afterBegin",svg+" ");
\ No newline at end of file
+var svg=' ';svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',svg+=' ',document.body.insertAdjacentHTML("afterBegin",svg+" ");
\ No newline at end of file
diff --git a/src/main/webapp/scss/home.scss b/src/main/webapp/scss/home.scss
index c9e505873..932fd59de 100644
--- a/src/main/webapp/scss/home.scss
+++ b/src/main/webapp/scss/home.scss
@@ -20,7 +20,7 @@
*
* @author Liyuan Li
* @author Liang Ding
- * @version 2.11.14.33, May 22, 2017
+ * @version 2.12.0.0, Jun 12, 2018
*/
@import "variables";
@@ -382,6 +382,19 @@
.tabs-sub > a > .count {
transform: scale(0.8);
}
+
+.home-account {
+ &__captch {
+ position: relative;
+ img {
+ position: absolute;
+ height: 31px;
+ top: 42px;
+ right: 1px;
+ border-radius: 0 3px 3px 0;
+ }
+ }
+}
/* end home */
/* start notifications */
diff --git a/src/main/webapp/scss/mobile-base.scss b/src/main/webapp/scss/mobile-base.scss
index dab8a08ee..33875df39 100644
--- a/src/main/webapp/scss/mobile-base.scss
+++ b/src/main/webapp/scss/mobile-base.scss
@@ -20,7 +20,7 @@
*
* @author Liyuan Li
* @author Liang Ding
- * @version 1.8.0.2, Apr 6, 2018
+ * @version 1.9.0.0, Jun 12, 2018
*/
@import "variables";
@import "common";
@@ -2242,6 +2242,19 @@ code .dec {
padding-bottom: 10px;
}
+
+.home-account {
+ &__captch {
+ position: relative;
+ img {
+ position: absolute;
+ height: 31px;
+ top: 39px;
+ right: 1px;
+ border-radius: 0 3px 3px 0;
+ }
+ }
+}
/* end home */
/* start notifications */
diff --git a/src/main/webapp/skins/classic/home/settings/password.ftl b/src/main/webapp/skins/classic/home/settings/account.ftl
similarity index 55%
rename from src/main/webapp/skins/classic/home/settings/password.ftl
rename to src/main/webapp/skins/classic/home/settings/account.ftl
index 322e2c3e3..945757a51 100644
--- a/src/main/webapp/skins/classic/home/settings/password.ftl
+++ b/src/main/webapp/skins/classic/home/settings/account.ftl
@@ -18,7 +18,7 @@
-->
<#include "macro-settings.ftl">
-<@home "password">
+<@home "account">
+
+
@home>
\ No newline at end of file
diff --git a/src/main/webapp/skins/classic/home/settings/macro-settings.ftl b/src/main/webapp/skins/classic/home/settings/macro-settings.ftl
index fa291166e..ceebb25f1 100644
--- a/src/main/webapp/skins/classic/home/settings/macro-settings.ftl
+++ b/src/main/webapp/skins/classic/home/settings/macro-settings.ftl
@@ -45,6 +45,7 @@