diff --git a/back.go b/back.go
index 1112d92..48679a2 100644
--- a/back.go
+++ b/back.go
@@ -75,7 +75,7 @@ func HandleLoginPost(c *gin.Context) {
}
func GetBack() gin.H {
- return gin.H{"Author": Ei.Username}
+ return gin.H{"Author": Ei.Username, "Kodo": setting.Conf.Kodo}
}
// 个人配置
diff --git a/conf/app.yml b/conf/app.yml
index 29f4335..dcfbb90 100644
--- a/conf/app.yml
+++ b/conf/app.yml
@@ -1,7 +1,5 @@
# 运行模式 dev or prod
runmode: prod
-# 静态文件版本
-staticversion: 2
# 回收箱保留48小时
trash: -48
# 定时清理回收箱,%d小时
@@ -14,12 +12,8 @@ pagesize: 20
length: 400
# 截取预览标识
identifier:
-# favicon
-favicon: //st.deepzz.com/static/img/favicon.ico
# 起始ID,预留id不时之需, 不用管
startid: 11
-# cdn: //domain.com
-static: //st.deepzz.com
# elasticsearch url
searchurl: http://elasticsearch:9200
# superfeedr shortname
@@ -39,6 +33,14 @@ google:
tid: UA-77251712-1
v: "1"
t: pageview
+# 静态文件版本
+staticversion: 2
+# 七牛CDN
+kodo:
+ name: eiblog
+ domain: st.deepzz.com
+ accesskey:
+ secretkey:
# 运行模式
mode:
# you can fix certfile, keyfile, domain
diff --git a/disqus_test.go b/disqus_test.go
index e694948..f5d9a3f 100644
--- a/disqus_test.go
+++ b/disqus_test.go
@@ -5,5 +5,5 @@ import (
)
func TestDisqus(t *testing.T) {
- CommentsCount()
+ PostsCount()
}
diff --git a/elasticsearch_test.go b/elasticsearch_test.go
index 5461253..43b4bd6 100644
--- a/elasticsearch_test.go
+++ b/elasticsearch_test.go
@@ -61,13 +61,6 @@ func TestIndexDocument(t *testing.T) {
}
}
-func TestIndexQuerySimple(t *testing.T) {
- _, err := IndexQuerySimple(INDEX, TYPE, 10, 1, "JS")
- if err != nil {
- t.Error(err)
- }
-}
-
func TestIndexQueryDSL(t *testing.T) {
kw := "实现访问限制"
dsl := map[string]interface{}{
diff --git a/front.go b/front.go
index e05efc6..e795915 100644
--- a/front.go
+++ b/front.go
@@ -63,7 +63,7 @@ func GetBase() gin.H {
"BTitle": Ei.BTitle,
"BeiAn": Ei.BeiAn,
"Domain": setting.Conf.Mode.Domain,
- "Static": setting.Conf.Static,
+ "Kodo": setting.Conf.Kodo,
}
}
diff --git a/qiniu.go b/qiniu.go
new file mode 100644
index 0000000..3615c87
--- /dev/null
+++ b/qiniu.go
@@ -0,0 +1,97 @@
+package main
+
+import (
+ "crypto/md5"
+ "fmt"
+ "io/ioutil"
+ "os"
+ "path"
+
+ "github.com/eiblog/utils/logd"
+ "qiniupkg.com/api.v7/conf"
+ "qiniupkg.com/api.v7/kodo"
+ "qiniupkg.com/api.v7/kodocli"
+)
+
+type bucket struct {
+ name string
+ domain string
+ accessKey string
+ secretKey string
+}
+
+var buckets = map[string]*bucket{
+ "avatar": &bucket{name: "yooohome-avatar", domain: "o9gich2l7.bkt.clouddn.com",
+ accessKey: "porNOigaMUjIcO9I5ePPGJmO1fchhqnlSI0oBrpY", secretKey: "l0EawgePDmXzMYBvC_7WALUvD69iDzMgay7rX77b"},
+ "topic": &bucket{name: "yooohome-topic", domain: "o9gie1fqp.bkt.clouddn.com",
+ accessKey: "porNOigaMUjIcO9I5ePPGJmO1fchhqnlSI0oBrpY", secretKey: "l0EawgePDmXzMYBvC_7WALUvD69iDzMgay7rX77b"},
+}
+
+func getBucket(typ string) *bucket {
+ return buckets[typ]
+}
+
+type PutRet struct {
+ Hash string `json:"hash"`
+ Key string `json:"key"`
+}
+
+func onProgress(fsize, uploaded int64) {
+ d := int(float64(uploaded) / float64(fsize) * 100)
+ if fsize == uploaded {
+ fmt.Printf("\rUpload completed! ")
+ } else {
+ fmt.Printf("\r%02d%% uploaded ", int(d))
+ }
+}
+
+func upload(typ string, filepath string) {
+ bucket := getBucket(typ)
+ if bucket == nil {
+ logd.Debug("invalid type:", typ)
+ return
+ }
+
+ file, err := os.Open(filepath)
+ if err != nil {
+ logd.Debugf("%s", err.Error())
+ return
+ }
+ data, err := ioutil.ReadAll(file)
+ file.Close()
+ chksum := fmt.Sprintf("%x", md5.Sum(data))
+ ext := path.Ext(filepath)
+
+ conf.ACCESS_KEY = bucket.accessKey
+ conf.SECRET_KEY = bucket.secretKey
+ // 创建一个client
+ c := kodo.New(0, nil)
+
+ // 设置上传的策略
+ policy := &kodo.PutPolicy{
+ Scope: bucket.name,
+ Expires: 3600,
+ InsertOnly: 1,
+ }
+
+ // 生成一个上传token
+ token := c.MakeUptoken(policy)
+ // 构建一个uploader
+ zone := 0
+ uploader := kodocli.NewUploader(zone, nil)
+
+ var ret PutRet
+ key := fmt.Sprintf("%s-%s%s", typ, chksum, ext)
+
+ fmt.Printf("Uploading .....")
+ var extra = kodocli.PutExtra{OnProgress: onProgress}
+ res := uploader.PutFile(nil, &ret, token, key, filepath, &extra)
+ // 打印返回的信息
+ if res != nil {
+ logd.Debugf("failed to upload patch file: %v", res)
+ return
+ }
+
+ url := kodo.MakeBaseUrl(bucket.domain, key)
+ fmt.Printf("url: %s\n", url)
+}
diff --git a/setting/setting.go b/setting/setting.go
index f607db8..96507f9 100644
--- a/setting/setting.go
+++ b/setting/setting.go
@@ -48,6 +48,12 @@ type Config struct {
V string
T string
}
+ Kodo struct { // 七牛CDN
+ Name string
+ Domain string
+ AccessKey string
+ SecretKey string
+ }
Mode RunMode // 运行模式
Twitter string // twitter地址
Blogger struct { // 初始化数据
diff --git a/views/admin/post.html b/views/admin/post.html
index 810fc25..625b5b7 100644
--- a/views/admin/post.html
+++ b/views/admin/post.html
@@ -55,6 +55,15 @@
+
diff --git a/views/admin/profile.html b/views/admin/profile.html
index e88f164..57f8b56 100644
--- a/views/admin/profile.html
+++ b/views/admin/profile.html
@@ -7,7 +7,7 @@
-
+
{{.BlogName}}
{{.SubTitle}}
@@ -163,4 +163,4 @@
{{end}}
-{{end}}
\ No newline at end of file
+{{end}}
diff --git a/views/homeLayout.html b/views/homeLayout.html
index 921186e..f8dce11 100644
--- a/views/homeLayout.html
+++ b/views/homeLayout.html
@@ -1 +1 @@
-
{{.Title}}{{if .Version}}{{end}}
{{if .Version}}{{else}}{{end}}
{{if .Version}}{{else}}{{end}}{{if .Version}}{{else}}{{end}}{{if .Version}}{{else}}{{end}}{{if .Version}}{{else}}{{end}}
+
{{.Title}}{{if .Version}}{{end}}
{{if .Version}}{{else}}{{end}}
{{if .Version}}{{else}}{{end}}{{if .Version}}{{else}}{{end}}{{if .Version}}{{else}}{{end}}{{if .Version}}{{else}}{{end}}
diff --git a/views/st_blog_css.css b/views/st_blog_css.css
index bc93fad..69ce8f5 100644
--- a/views/st_blog_css.css
+++ b/views/st_blog_css.css
@@ -1,3 +1,3 @@
{{define "blog_css"}}
-*{margin:0;padding:0}html,body{height:100%}body{background:#ddd;color:#666;font-size:14px;font-family:"-apple-system","Open Sans","HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,sans-serif}::selection,::-moz-selection,::-webkit-selection{background-color:#2479CC;color:#eee}h1{font-size:2em}h3{font-size:1.3em}h4{font-size:1.1em}a{color:#2479CC;text-decoration:none}article{border-bottom:1px solid #ddd;border-top:1px solid #fff;padding:30px 0;position:relative}.container{max-width:1600px;min-height:100%;position:relative}.global-tips{display:none}.left-col{background-color:#50514c;background-image:url(//st.deepzz.com/static/img/bg04.jpg);background-size:cover;height:100%;position:fixed;width:270px}.mid-col{background:#fff;left:0;margin-left:270px;min-height:100%;position:absolute;right:0}article .meta{color:#555;float:right;font-size:.9em;line-height:2;position:relative;text-align:right;width:auto}article .meta a{color:#999}article h1.title{color:#333;font-size:2em;font-weight:300;line-height:35px;margin-bottom:25px}article h1.title a{color:#333;transition:color .3s}.mid-col .mid-col-container{padding:0 70px 0 40px}article .meta .date,article .meta .comment,article .meta .tags{position:relative}article .meta .date-modified{display:none}article h1.title a:hover{color:#2479CC}#header{border-bottom:none;height:auto;line-height:30px;margin-left:50px;padding:30px 0;width:100%}#main-nav{margin-left:0}#main-nav,#sub-nav{float:none;margin-top:15px}#sub-nav{position:relative}#content{margin:0 auto;width:100%}#header a{color:#efefef;text-shadow:0 1px #666;transition:color .3s}#header h1{float:none;font-weight:300;font-size:30px}#main-nav ul li{display:block;margin-left:0;position:relative}#header .subtitle{color:#ccc}#sub-nav .social{margin-bottom:10px}#header a:hover{color:#ccc}#header .profilepic a{background-image:url(//st.deepzz.com/static/img/deepzz.jpg);background-size:160px 160px;border-radius:50%;display:block;height:160px;margin:15px 0 20px -10px;width:160px}#sub-nav .social a{background-size:20px 20px;background-position:center center;background-repeat:no-repeat;border-radius:50%;display:inline-block;height:28px;margin:0 6px 15px;opacity:.75;text-indent:-9999px;transition:opacity .3s;vertical-align:middle;width:28px}#sub-nav .social a:hover{opacity:1}#sub-nav .social a:first-of-type{margin-left:0}#sub-nav .social a:last-of-type{margin-right:0}#sub-nav .social a.twitter{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAABOklEQVR4Ae3QM4DXYQCH8W+2m7Jt15Ztc8u29myba1O2NbXlmrJ11nP8+31/GO+uz/psj7z6jzYsZBPL6KogylBM3tCDS/wDkrjNIOWgC4MorgC2MlgWLCXSesZzCWinAEoA0FAG9MOsE1VorFw0AiCd/orBF2Klc4HT3KaDctGQgF2RY+iETTzlFUAx/hDwlfmhxFjMrigS6wmXwGnG0kCiO2aTFI17xPrES8zmKhzt2MRo3uPdGIWjOgDxeNdOkbiCH/EUVyTq48cZxWIQ3g2TCTXZwT/c/ZAJpbnOOeJwN01mrMaLZ7JjO+5qywljeMRHErEZL3cM4Cdmy+SGFhzCZobMqM5E1rCM/TzB5gXdZEMZ+vMYu7cslDuqMZcrfCUkleccoL+8ozHjWcsujnGIDcyjF2VV8GUCCH5vOpRoTxYAAAAASUVORK5CYII=");background-color:#55cff8;border:1px solid #55CFF8}#sub-nav .social a.search{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAB6klEQVR4Ac3RM4AdURSA4RPbto06tm3btm3b7GLbttOsjWdrPG9OdFejRZWv/a8vqDM2s46nNot7vSusA5KrQfYk13CvYt6IXvwtiIKBuuWYnJAXsia+hPcEqhBtrsVZ2bu96EFN3LufpUGPfwCivoDNVQG00I0wHfqVY4GtG93G3Ne9mY/CNLGgRYxFgjdYOkMG9tkSptbDoMY3JW2PpCKgYGuLqWy1QYk3/YsSx5UFVdxAJPxnQc7eEgl6HmjiXpAv9cTlliXnWvwnaCkMmhxDkTA0liX2PPnpH6AjujIStsGyFHzwL/hugQ5P/qCHXHSGLIl3/wXqLuhwFsQAecYpskSfJX8cDTri6iBh7C1LrnmpqZLOCeYgkVBTlpJqIcGdAU1iHDlnkkqkPyHB9wBVuB8J5zqVbG+FhIiGrqDg24gprP5CoIa/hancuxNKQCpDk8BdTOWcBuqYIpIXUwWpwBXHButSzw76OWZARX1sAOrYWpIdsyDIfq8D6gylqFc6E3kkJOp7I9DiGMeFoQL9JLkeVQVpTMF/bwLaTB08O9inQqgQzf6kb7pWmpqTr6yNPiQk7nNjyD6+NlJIiKKnGWQfVZO3IyG9h5z4VEFwkTP8gJz5UoWNQhQDTBvIqeS2zA77SPgv/AJ8KLqSzEcuZAAAAABJRU5ErkJggg==");background-color:#afb6ca;border:1px solid #afb6ca}#sub-nav .social a.rss{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAABd0lEQVR4Ae3UA+zXQRiA8Tfbtm3briHbtm03ZLuGbNsas227hvik27v7ffH33Gd+hvNJhCEbc5lCRyqTXMKCPnzlHRfYyhgqEUdCi3PYPrOeehIaHMTtLv0kpDiPt3s0lpCgFff5hLetxJeQICaZacBMbuL0mlISGpRgOU7NJXRIyyICdZDQohQ3sDUTP5RkNXPpRj5xYC22QuKNMxhcY3TgdWYKis9EFy8cxvaNMWJhBoqdwVxldZncotiKooq4MQov1UTxROsL8UI6qjDBNZNK1jajWos/anEBW3ox2KjtifhzbdptrSncM/PFUFCDta7WtkLcyEJj6ojBAjB+Ete1D5+IJoEYrj9ADlPugNFPDF5qKyc2qoF6RNS/rbKWS2KwWNtAsbEbW01TH2jJZkozLSvFxklsTV2voJ0pRbQcFRs9sCXRO2EwzZTUWm5KIPZi0ERbdm1rTImu5as40YFFTKd4QBvIcpazgFxamv0ty2ggf/33CwQ70ADWDdQbAAAAAElFTkSuQmCC");background-color:#ef7522;border:1px solid #ef7522}#sub-nav .social a.twitter:hover{border:1px solid #24c1f6}#sub-nav .social a.search:hover{border:1px solid #909ab6}#sub-nav .social a.rss:hover{border:1px solid #cf5d0f}article input.runcode,article button{-webkit-appearance:none;background:#12b0e6;border:none;border-radius:0;box-shadow:inset 0 -5px 20px rgba(0,0,0,.1);color:#fff;cursor:pointer;font-size:14px;line-height:1;margin-top:10px;padding:0.625em .5em}article button{margin-top:0}article input.runcode:hover,article input.runcode:focus,article input.runcode:active,article button:hover,article button:focus,article button:active{background:#f6ad08}article strong{font-weight:700}article em{font-style:italic}article blockquote{background-color:#f8f8f8;border-left:5px solid #2479CC;margin-top:10px;overflow:hidden;padding:15px 20px}article code{background-color:#eee;border-radius:5px;font-family:Consolas,Monaco,'Andale Mono',monospace;font-size:80%;margin:0 2px;padding:4px 5px;vertical-align:middle}article pre{background-color:#f8f8f8;border-left:5px solid #ccc;color:#5d6a6a;font-size:14px;line-height:1.6;overflow:hidden;padding:0.6em;position:relative;white-space:pre-wrap;word-break:break-word;word-wrap:break-word}article img{border:1px solid #ccc;display:block;margin:10px 0 5px;max-width:100%;padding:0}article table{border:0;border-collapse:collapse;border-spacing:0}article pre code{background-color:transparent;border-radius:0 0 0 0;border:0;display:block;font-size:100%;margin:0;padding:0;position:relative}article table th,article table td{border:0}article table th{border-bottom:2px solid #848484;padding:6px 20px;text-align:left}article table td{border-bottom:1px solid #d0d0d0;padding:6px 20px}article .copyright-info{font-size:14px}article .expire-tips{background-color:#ffffc0;border:1px solid #e2e2e2;border-left:5px solid #fff000;color:#333;font-size:15px;padding:5px 10px}article .post-info{font-size:14px}article .entry-content{color:#444;font-size:16px;font-family:Arial,'Hiragino Sans GB',冬青黑,'Microsoft YaHei',微软雅黑,SimSun,宋体,Helvetica,Tahoma,'Arial sans-serif';-webkit-font-smoothing:antialiased;line-height:1.8;word-wrap:break-word}article img.loaded{height:auto!important}article .entry-content p,article .entry-content blockquote,article .entry-content ul,article .entry-content ol,article .entry-content dl,article .entry-content table,article .entry-content iframe,article .entry-content h1,article .entry-content h2,article .entry-content h3,article .entry-content h4,article .entry-content h5,article .entry-content h6,article .entry-content p,article .entry-content pre{margin-top:15px}article pre b.name{color:#eee;font-family:"Consolas","Liberation Mono",Courier,monospace;font-size:60px;line-height:1;pointer-events:none;position:absolute;right:10px;top:10px}article .entry-content .date{color:#999;font-size:14px}article .entry-content a:hover{text-decoration:underline}article .entry-content ul ul,article .entry-content ul ol,article .entry-content ul dl,article .entry-content ol ul,article .entry-content ol ol,article .entry-content ol dl,article .entry-content dl ul,article .entry-content dl ol,article .entry-content dl dl,article .entry-content blockquote > p:first-of-type{margin-top:0}.page-navi{border-top:1px solid #fff;border-bottom:1px solid #ddd;line-height:20px;overflow:hidden;padding:20px 0;position:relative;width:100%}article.post-search{padding-bottom:0}article .entry-content ul,article .entry-content ol,article .entry-content dl{margin-left:25px}.page-navi .prev{float:left}.page-navi .next{float:right}.page-navi .center{margin:auto;text-align:center;width:80px}#comments{border-top:1px solid #fff;border-bottom:1px solid #ddd;min-height:350px;padding:20px 0}#switch_thread_mode{font-size:14px;font-weight:400;margin-left:8px}#disqus_thread,#simple_thread{line-height:1.6}#footer{border-top:1px solid #fff;font-size:.9em;line-height:2.2;padding:15px 70px 15px 40px;text-align:center;width:auto}#searchResult{min-height:350px}#toc-container,#toc{float:right}#toc{border:1px solid #e2e2e2;font-size:14px;margin:0 0 15px 20px;max-width:260px;min-width:120px;padding:6px}#search form{position:relative}#toc strong{border-bottom:1px solid #e2e2e2;display:block}#toc p{margin:0;padding:0 4px}#toc ul{margin:.5em .5em .5em 1.5em}#toc ul ul{margin-top:0;margin-bottom:0}#footer .beian{color:#666}#search .wrapper{margin-right:72px}#search .submit{-webkit-appearance:none;background-color:#e7e7e7;border:1px solid #bbb;border-left:0;border-radius:0;color:#222;display:block;font-size:16px;height:40px;outline:0;position:absolute;right:0;top:0;width:72px;cursor:pointer}#searchResult .info{border-bottom:1px solid #ddd;color:#676767;font-size:13px;padding:15px 0}#searchResult .no-result{background-color:#fff4c2;border:1px solid #fc3;font-size:13px;margin:15px 0;padding:5px}#searchResult .loading,#searchResult .hot-words{margin-top:20px}#searchResult .item{border-bottom:1px solid #ddd;padding:10px 0 20px}#comments h1.title{font-size:25px;font-weight:300;line-height:35px;margin-bottom:10px}#search .wrapper input{-webkit-appearance:none;border:1px solid #bbb;border-radius:0;box-sizing:border-box;display:block;font-size:16px;height:40px;outline:0;padding:4px 6px;width:100%}#searchResult .hot-words a{margin-right:20px}#searchResult .item:last-of-type{border-bottom:0}#searchResult .item .title{margin:5px 0}#searchResult .item .desc{font-size:14px;overflow:hidden}#searchResult .item .img{border:1px solid #ccc;float:left;height:81px;margin:4px 8px 0 0;width:108px}#searchResult .item .summary{-webkit-box-orient:vertical;display:block;display:-webkit-box;-webkit-line-clamp:4;line-height:22px;max-height:88px;text-overflow:ellipsis}#searchResult .item .title a{font-size:17px}#searchResult .item .img img{border:0;margin:0;width:100%}#searchResult .item .title b,#searchResult .item .desc b{color:#C00;font-weight:400}#searchResult .item .title .type{background-color:#eee;border-radius:3px;color:#888;display:inline-block;font-size:12px;margin-right:6px;padding:0 4px;position:relative;top:-1px}.hljs-comment,.diff .hljs-header,.hljs-doctype,.hljs-pi,.lisp .hljs-string,.hljs-javadoc{color:#999}.hljs-keyword,.hljs-winutils,.method,.hljs-addition,.css .hljs-tag,.hljs-request,.hljs-status,.nginx .hljs-title{color:#859900}.hljs-number,.hljs-command,.hljs-string,.hljs-tag .hljs-value,.hljs-rule .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula,.hljs-regexp,.hljs-hexcolor,.hljs-link_url{color:#2aa198}.hljs-title,.hljs-localvars,.hljs-chunk,.hljs-decorator,.hljs-built_in,.hljs-identifier,.vhdl .hljs-literal,.hljs-id,.css .hljs-function,.hljs-name{color:#268bd2}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.smalltalk .hljs-number,.hljs-constant,.hljs-class .hljs-title,.hljs-parent,.hljs-type,.hljs-link_reference{color:#b58900}.hljs-preprocessor,.hljs-preprocessor .hljs-keyword,.hljs-pragma,.hljs-shebang,.hljs-symbol,.hljs-symbol .hljs-string,.diff .hljs-change,.hljs-special,.hljs-attr_selector,.hljs-subst,.hljs-cdata,.css .hljs-pseudo,.hljs-header{color:#cb4b16}.hljs-deletion,.hljs-important{color:#dc322f}.hljs-link_label{color:#6c71c4}.goog-te-gadget-simple{background-color:rgba(0,0,0,.6)!important;border:none!important;border-radius:0 6px 0 0}.goog-te-gadget img{opacity:.8}.tex .hljs-formula{background:#eee8d5}.goog-te-gadget-simple .goog-te-menu-value{color:#ccc!important}#google_translate_element{bottom:-1px;left:0;margin:0;position:fixed}@media screen and (max-width:1024px){article{padding-bottom:15px}.left-col{width:210px}.mid-col{margin-left:210px}.mid-col .mid-col-container{padding:0 20px}#header{margin-left:30px}#footer{padding:15px 20px}article h1.title,article .entry-content{margin-left:0}}@media screen and (max-width:640px){#header{margin-left:0;padding:20px 0;text-align:center}#main-nav{margin-top:10px}#main-nav ul li{display:inline;margin:0 10px;text-align:center}#header .profilepic a{background-image:url(//st.deepzz.com/static/img/deepzz_small.jpg);background-size:100% 100%;height:56px;left:12px;margin:0;position:absolute;top:12px;width:56px}#sub-nav .social,#sub-nav .social a{margin-bottom:0}article{padding:20px 0}.left-col{background-image:none;position:relative;width:100%}.mid-col{float:none;margin-left:0;width:100%}article .meta{margin-bottom:10px;position:static;width:auto}.mid-col .mid-col-container{padding:0 10px}.mid-col article .meta{float:none;overflow:hidden}article .meta .date,article .meta .comment,article .meta .tags{display:inline;margin-right:5px;padding-left:0}article .meta .date{margin-right:30px}#footer{padding:15px 10px}#toc{margin:0}#toc,#toc-container{float:none}#sub-nav .social a{opacity:1}}#simple_thread ol,#simple_thread ul{list-style:none;list-style-type:none}#simple_thread > .thread{color:#2a2e2e;font-family:"Helvetica Neue",arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#simple_thread .thread-tips{background-color:#f0f8f4;border:1px solid #e2e2e2;border-left:5px solid #7cc4a0;color:#333;font-size:15px;margin-bottom:20px;padding:5px 10px}#simple_thread .avatar{float:left}#simple_thread .thread-tips a{font-weight:700;margin:0 3px}#simple_thread .publisher-anchor-color a{color:#2479cc!important}#simple_thread .clearfix:after,#simple_thread .clearfix:before{clear:both;content:"";display:table;line-height:0}#simple_thread .active .publisher-nav-color::after{background-color:#2479cc!important}#simple_thread .avatar .user,#simple_thread .avatar img{border-radius:3px;display:block}#simple_thread .nav{border-bottom:2px solid #e7e9ee;margin:0 0 20px;position:relative}#simple_thread .tab-conversation{float:left}#simple_thread .btn{background:#778289;background:rgba(29,47,58,.6);border:none;border-radius:3px;color:#fff;display:inline-block;font-weight:500;line-height:1.1;padding:10px 16px;text-shadow:none;transition:background .2s}#simple_thread .post-content{margin-bottom:24px;position:relative;transition:all .2s ease-in-out}#simple_thread .post-body{overflow:hidden}#simple_thread .post-header{font-size:13px;line-height:1;margin-bottom:3px;padding-right:46px}#simple_thread .post-meta{display:inline-block}#simple_thread .load-more{margin:0 0 24px}#simple_thread .avatar img{height:48px;width:48px}#simple_thread .nav-tab > a{color:#7f919e;display:block;font-weight:700;line-height:1;margin:0;padding:0;position:relative;transition:all .2s ease-in-out}#simple_thread .tab-conversation > a{font-size:15px;margin-right:15px;padding:12px 0;text-transform:capitalize}#simple_thread .post-body spoiler{background:#7f919e;color:transparent;display:inline;padding:0 .5em}#simple_thread .post-header a{color:#7f919e;line-height:1}#simple_thread .post-body-inner p{font-size:15px;line-height:21px;margin:0 0 15px;word-wrap:break-word}#simple_thread .media a{margin-right:10px}#simple_thread .avatar .user{background:#dbdfe4;padding:0;position:relative;z-index:100}#simple_thread .post .avatar{margin-right:12px}#simple_thread .btn:hover{background:#606d75;background:rgba(29,47,58,.7);color:#fff}#simple_thread .btn.active,#simple_thread .btn:active{background:#2e9fff;transition:none}#simple_thread .btn.busy{background:#ebeef2;color:#999;text-shadow:none}#simple_thread .post-content .indicator{border-radius:3px;height:48px;left:0;position:absolute;top:0;width:5px}#simple_thread .post-content.target{padding-left:12px}#simple_thread .post-header .author{color:#656c7a;font-weight:700}#simple_thread .post-header .time-ago{color:#7f919e;font-weight:500;font-size:12px}#simple_thread .post-meta .bullet{color:#c2c6cc;line-height:1.4;padding:0}#simple_thread .children .post{margin-left:60px}#simple_thread .load-more .btn{display:block;font-size:13px;font-weight:400;padding:11px 14px;text-align:center}#simple_thread.mobile .post-header{font-size:14px;line-height:18px;margin-bottom:4px;padding-right:0;position:relative;top:-4px}#simple_thread.mobile .post-body-inner{clear:left;overflow:visible;position:relative;top:-4px}#simple_thread.mobile .post-body{display:block;overflow:visible}#simple_thread .tab-conversation.active > a{color:#2a2e2e!important}#simple_thread .post-body a[data-dsq-mention]{font-weight:700}#simple_thread .post-body spoiler:hover,#simple_thread .post-body spoiler:focus{background:#e7e9ee;color:inherit}#simple_thread .post-body-inner p:last-child{margin:0}#simple_thread.mobile .avatar img{height:30px;width:30px}#simple_thread .btn.busy:active,#simple_thread .btn.busy:hover{background:#ebeef2;cursor:not-allowed;text-shadow:none}#simple_thread .post-content.target > .avatar{left:12px}#simple_thread .post-content.target .indicator{background:#ffc62e}#simple_thread .children .children .post{margin-left:48px}#simple_thread.mobile .post-header .post-byline{display:block;overflow:hidden;padding-right:15px;text-overflow:ellipsis;white-space:nowrap}#simple_thread.mobile .post-header .author{font-size:15px;line-height:18px}#simple_thread.mobile .post-meta .bullet{display:none}#simple_thread .tab-conversation.active > a:after{background:#2e9fff;bottom:-2px;content:" ";display:block;height:2px;left:0;position:absolute;right:0}#simple_thread .post-body a[data-dsq-mention]:before{content:'@'}#simple_thread.mobile .tab-conversation.active > a > span{display:none}#simple_thread.mobile .post-list .post .post-content{margin:0;padding:0;margin-bottom:16px;transition:none}#simple_thread.mobile .post-list .post .children{border-left:2px solid #e7e9ee;padding-left:17px}#simple_thread .children .post .avatar .user img{width:36px}#simple_thread .children .post .avatar .user img,#simple_thread .children .post .indicator{height:36px}#simple_thread .children .children .children .children .post{margin-left:0}#simple_thread.mobile .post-list .post .post-content .indicator{height:30px}#simple_thread.mobile .post-list .post .children .post,#simple_thread.mobile .post-list .post .children .post .post-content .post-body{margin-left:0}#simple_thread.mobile .post-list .post .post-content .avatar img{height:30px;width:30px}#simple_thread.mobile .post-list .post .children li:only-child{margin-bottom:20px}#simple_thread .children .children .children .children .post .post-body{margin-left:48px}#simple_thread .children .children .children .children .post .indicator{left:0}#simple_thread.mobile .post-list .post .post-content.target .avatar{margin-left:8px}#simple_thread.mobile .post-list .post .children .children .children{border-left:none;padding-left:0}
+*{margin:0;padding:0}html,body{height:100%}body{background:#ddd;color:#666;font-size:14px;font-family:"-apple-system","Open Sans","HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,sans-serif}::selection,::-moz-selection,::-webkit-selection{background-color:#2479CC;color:#eee}h1{font-size:2em}h3{font-size:1.3em}h4{font-size:1.1em}a{color:#2479CC;text-decoration:none}article{border-bottom:1px solid #ddd;border-top:1px solid #fff;padding:30px 0;position:relative}.container{max-width:1600px;min-height:100%;position:relative}.global-tips{display:none}.left-col{background-color:#50514c;background-image:url(//st.deepzz.com/static/img/bg04.jpg);background-size:cover;height:100%;position:fixed;width:270px}.mid-col{background:#fff;left:0;margin-left:270px;min-height:100%;position:absolute;right:0}article .meta{color:#555;float:right;font-size:.9em;line-height:2;position:relative;text-align:right;width:auto}article .meta a{color:#999}article h1.title{color:#333;font-size:2em;font-weight:300;line-height:35px;margin-bottom:25px}article h1.title a{color:#333;transition:color .3s}.mid-col .mid-col-container{padding:0 70px 0 40px}article .meta .date,article .meta .comment,article .meta .tags{position:relative}article .meta .date-modified{display:none}article h1.title a:hover{color:#2479CC}#header{border-bottom:none;height:auto;line-height:30px;margin-left:50px;padding:30px 0;width:100%}#main-nav{margin-left:0}#main-nav,#sub-nav{float:none;margin-top:15px}#sub-nav{position:relative}#content{margin:0 auto;width:100%}#header a{color:#efefef;text-shadow:0 1px #666;transition:color .3s}#header h1{float:none;font-weight:300;font-size:30px}#main-nav ul li{display:block;margin-left:0;position:relative}#header .subtitle{color:#ccc}#sub-nav .social{margin-bottom:10px}#header a:hover{color:#ccc}#header .profilepic a{background-image:url(//st.deepzz.com/static/img/avatar.jpg);background-size:160px 160px;border-radius:50%;display:block;height:160px;margin:15px 0 20px -10px;width:160px}#sub-nav .social a{background-size:20px 20px;background-position:center center;background-repeat:no-repeat;border-radius:50%;display:inline-block;height:28px;margin:0 6px 15px;opacity:.75;text-indent:-9999px;transition:opacity .3s;vertical-align:middle;width:28px}#sub-nav .social a:hover{opacity:1}#sub-nav .social a:first-of-type{margin-left:0}#sub-nav .social a:last-of-type{margin-right:0}#sub-nav .social a.twitter{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAABOklEQVR4Ae3QM4DXYQCH8W+2m7Jt15Ztc8u29myba1O2NbXlmrJ11nP8+31/GO+uz/psj7z6jzYsZBPL6KogylBM3tCDS/wDkrjNIOWgC4MorgC2MlgWLCXSesZzCWinAEoA0FAG9MOsE1VorFw0AiCd/orBF2Klc4HT3KaDctGQgF2RY+iETTzlFUAx/hDwlfmhxFjMrigS6wmXwGnG0kCiO2aTFI17xPrES8zmKhzt2MRo3uPdGIWjOgDxeNdOkbiCH/EUVyTq48cZxWIQ3g2TCTXZwT/c/ZAJpbnOOeJwN01mrMaLZ7JjO+5qywljeMRHErEZL3cM4Cdmy+SGFhzCZobMqM5E1rCM/TzB5gXdZEMZ+vMYu7cslDuqMZcrfCUkleccoL+8ozHjWcsujnGIDcyjF2VV8GUCCH5vOpRoTxYAAAAASUVORK5CYII=");background-color:#55cff8;border:1px solid #55CFF8}#sub-nav .social a.search{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAB6klEQVR4Ac3RM4AdURSA4RPbto06tm3btm3b7GLbttOsjWdrPG9OdFejRZWv/a8vqDM2s46nNot7vSusA5KrQfYk13CvYt6IXvwtiIKBuuWYnJAXsia+hPcEqhBtrsVZ2bu96EFN3LufpUGPfwCivoDNVQG00I0wHfqVY4GtG93G3Ne9mY/CNLGgRYxFgjdYOkMG9tkSptbDoMY3JW2PpCKgYGuLqWy1QYk3/YsSx5UFVdxAJPxnQc7eEgl6HmjiXpAv9cTlliXnWvwnaCkMmhxDkTA0liX2PPnpH6AjujIStsGyFHzwL/hugQ5P/qCHXHSGLIl3/wXqLuhwFsQAecYpskSfJX8cDTri6iBh7C1LrnmpqZLOCeYgkVBTlpJqIcGdAU1iHDlnkkqkPyHB9wBVuB8J5zqVbG+FhIiGrqDg24gprP5CoIa/hancuxNKQCpDk8BdTOWcBuqYIpIXUwWpwBXHButSzw76OWZARX1sAOrYWpIdsyDIfq8D6gylqFc6E3kkJOp7I9DiGMeFoQL9JLkeVQVpTMF/bwLaTB08O9inQqgQzf6kb7pWmpqTr6yNPiQk7nNjyD6+NlJIiKKnGWQfVZO3IyG9h5z4VEFwkTP8gJz5UoWNQhQDTBvIqeS2zA77SPgv/AJ8KLqSzEcuZAAAAABJRU5ErkJggg==");background-color:#afb6ca;border:1px solid #afb6ca}#sub-nav .social a.rss{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAABd0lEQVR4Ae3UA+zXQRiA8Tfbtm3briHbtm03ZLuGbNsas227hvik27v7ffH33Gd+hvNJhCEbc5lCRyqTXMKCPnzlHRfYyhgqEUdCi3PYPrOeehIaHMTtLv0kpDiPt3s0lpCgFff5hLetxJeQICaZacBMbuL0mlISGpRgOU7NJXRIyyICdZDQohQ3sDUTP5RkNXPpRj5xYC22QuKNMxhcY3TgdWYKis9EFy8cxvaNMWJhBoqdwVxldZncotiKooq4MQov1UTxROsL8UI6qjDBNZNK1jajWos/anEBW3ox2KjtifhzbdptrSncM/PFUFCDta7WtkLcyEJj6ojBAjB+Ete1D5+IJoEYrj9ADlPugNFPDF5qKyc2qoF6RNS/rbKWS2KwWNtAsbEbW01TH2jJZkozLSvFxklsTV2voJ0pRbQcFRs9sCXRO2EwzZTUWm5KIPZi0ERbdm1rTImu5as40YFFTKd4QBvIcpazgFxamv0ty2ggf/33CwQ70ADWDdQbAAAAAElFTkSuQmCC");background-color:#ef7522;border:1px solid #ef7522}#sub-nav .social a.twitter:hover{border:1px solid #24c1f6}#sub-nav .social a.search:hover{border:1px solid #909ab6}#sub-nav .social a.rss:hover{border:1px solid #cf5d0f}article input.runcode,article button{-webkit-appearance:none;background:#12b0e6;border:none;border-radius:0;box-shadow:inset 0 -5px 20px rgba(0,0,0,.1);color:#fff;cursor:pointer;font-size:14px;line-height:1;margin-top:10px;padding:0.625em .5em}article button{margin-top:0}article input.runcode:hover,article input.runcode:focus,article input.runcode:active,article button:hover,article button:focus,article button:active{background:#f6ad08}article strong{font-weight:700}article em{font-style:italic}article blockquote{background-color:#f8f8f8;border-left:5px solid #2479CC;margin-top:10px;overflow:hidden;padding:15px 20px}article code{background-color:#eee;border-radius:5px;font-family:Consolas,Monaco,'Andale Mono',monospace;font-size:80%;margin:0 2px;padding:4px 5px;vertical-align:middle}article pre{background-color:#f8f8f8;border-left:5px solid #ccc;color:#5d6a6a;font-size:14px;line-height:1.6;overflow:hidden;padding:0.6em;position:relative;white-space:pre-wrap;word-break:break-word;word-wrap:break-word}article img{border:1px solid #ccc;display:block;margin:10px 0 5px;max-width:100%;padding:0}article table{border:0;border-collapse:collapse;border-spacing:0}article pre code{background-color:transparent;border-radius:0 0 0 0;border:0;display:block;font-size:100%;margin:0;padding:0;position:relative}article table th,article table td{border:0}article table th{border-bottom:2px solid #848484;padding:6px 20px;text-align:left}article table td{border-bottom:1px solid #d0d0d0;padding:6px 20px}article .copyright-info{font-size:14px}article .expire-tips{background-color:#ffffc0;border:1px solid #e2e2e2;border-left:5px solid #fff000;color:#333;font-size:15px;padding:5px 10px}article .post-info{font-size:14px}article .entry-content{color:#444;font-size:16px;font-family:Arial,'Hiragino Sans GB',冬青黑,'Microsoft YaHei',微软雅黑,SimSun,宋体,Helvetica,Tahoma,'Arial sans-serif';-webkit-font-smoothing:antialiased;line-height:1.8;word-wrap:break-word}article img.loaded{height:auto!important}article .entry-content p,article .entry-content blockquote,article .entry-content ul,article .entry-content ol,article .entry-content dl,article .entry-content table,article .entry-content iframe,article .entry-content h1,article .entry-content h2,article .entry-content h3,article .entry-content h4,article .entry-content h5,article .entry-content h6,article .entry-content p,article .entry-content pre{margin-top:15px}article pre b.name{color:#eee;font-family:"Consolas","Liberation Mono",Courier,monospace;font-size:60px;line-height:1;pointer-events:none;position:absolute;right:10px;top:10px}article .entry-content .date{color:#999;font-size:14px}article .entry-content a:hover{text-decoration:underline}article .entry-content ul ul,article .entry-content ul ol,article .entry-content ul dl,article .entry-content ol ul,article .entry-content ol ol,article .entry-content ol dl,article .entry-content dl ul,article .entry-content dl ol,article .entry-content dl dl,article .entry-content blockquote > p:first-of-type{margin-top:0}.page-navi{border-top:1px solid #fff;border-bottom:1px solid #ddd;line-height:20px;overflow:hidden;padding:20px 0;position:relative;width:100%}article.post-search{padding-bottom:0}article .entry-content ul,article .entry-content ol,article .entry-content dl{margin-left:25px}.page-navi .prev{float:left}.page-navi .next{float:right}.page-navi .center{margin:auto;text-align:center;width:80px}#comments{border-top:1px solid #fff;border-bottom:1px solid #ddd;min-height:350px;padding:20px 0}#switch_thread_mode{font-size:14px;font-weight:400;margin-left:8px}#disqus_thread,#simple_thread{line-height:1.6}#footer{border-top:1px solid #fff;font-size:.9em;line-height:2.2;padding:15px 70px 15px 40px;text-align:center;width:auto}#searchResult{min-height:350px}#toc-container,#toc{float:right}#toc{border:1px solid #e2e2e2;font-size:14px;margin:0 0 15px 20px;max-width:260px;min-width:120px;padding:6px}#search form{position:relative}#toc strong{border-bottom:1px solid #e2e2e2;display:block}#toc p{margin:0;padding:0 4px}#toc ul{margin:.5em .5em .5em 1.5em}#toc ul ul{margin-top:0;margin-bottom:0}#footer .beian{color:#666}#search .wrapper{margin-right:72px}#search .submit{-webkit-appearance:none;background-color:#e7e7e7;border:1px solid #bbb;border-left:0;border-radius:0;color:#222;display:block;font-size:16px;height:40px;outline:0;position:absolute;right:0;top:0;width:72px;cursor:pointer}#searchResult .info{border-bottom:1px solid #ddd;color:#676767;font-size:13px;padding:15px 0}#searchResult .no-result{background-color:#fff4c2;border:1px solid #fc3;font-size:13px;margin:15px 0;padding:5px}#searchResult .loading,#searchResult .hot-words{margin-top:20px}#searchResult .item{border-bottom:1px solid #ddd;padding:10px 0 20px}#comments h1.title{font-size:25px;font-weight:300;line-height:35px;margin-bottom:10px}#search .wrapper input{-webkit-appearance:none;border:1px solid #bbb;border-radius:0;box-sizing:border-box;display:block;font-size:16px;height:40px;outline:0;padding:4px 6px;width:100%}#searchResult .hot-words a{margin-right:20px}#searchResult .item:last-of-type{border-bottom:0}#searchResult .item .title{margin:5px 0}#searchResult .item .desc{font-size:14px;overflow:hidden}#searchResult .item .img{border:1px solid #ccc;float:left;height:81px;margin:4px 8px 0 0;width:108px}#searchResult .item .summary{-webkit-box-orient:vertical;display:block;display:-webkit-box;-webkit-line-clamp:4;line-height:22px;max-height:88px;text-overflow:ellipsis}#searchResult .item .title a{font-size:17px}#searchResult .item .img img{border:0;margin:0;width:100%}#searchResult .item .title b,#searchResult .item .desc b{color:#C00;font-weight:400}#searchResult .item .title .type{background-color:#eee;border-radius:3px;color:#888;display:inline-block;font-size:12px;margin-right:6px;padding:0 4px;position:relative;top:-1px}.hljs-comment,.diff .hljs-header,.hljs-doctype,.hljs-pi,.lisp .hljs-string,.hljs-javadoc{color:#999}.hljs-keyword,.hljs-winutils,.method,.hljs-addition,.css .hljs-tag,.hljs-request,.hljs-status,.nginx .hljs-title{color:#859900}.hljs-number,.hljs-command,.hljs-string,.hljs-tag .hljs-value,.hljs-rule .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula,.hljs-regexp,.hljs-hexcolor,.hljs-link_url{color:#2aa198}.hljs-title,.hljs-localvars,.hljs-chunk,.hljs-decorator,.hljs-built_in,.hljs-identifier,.vhdl .hljs-literal,.hljs-id,.css .hljs-function,.hljs-name{color:#268bd2}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.smalltalk .hljs-number,.hljs-constant,.hljs-class .hljs-title,.hljs-parent,.hljs-type,.hljs-link_reference{color:#b58900}.hljs-preprocessor,.hljs-preprocessor .hljs-keyword,.hljs-pragma,.hljs-shebang,.hljs-symbol,.hljs-symbol .hljs-string,.diff .hljs-change,.hljs-special,.hljs-attr_selector,.hljs-subst,.hljs-cdata,.css .hljs-pseudo,.hljs-header{color:#cb4b16}.hljs-deletion,.hljs-important{color:#dc322f}.hljs-link_label{color:#6c71c4}.goog-te-gadget-simple{background-color:rgba(0,0,0,.6)!important;border:none!important;border-radius:0 6px 0 0}.goog-te-gadget img{opacity:.8}.tex .hljs-formula{background:#eee8d5}.goog-te-gadget-simple .goog-te-menu-value{color:#ccc!important}#google_translate_element{bottom:-1px;left:0;margin:0;position:fixed}@media screen and (max-width:1024px){article{padding-bottom:15px}.left-col{width:210px}.mid-col{margin-left:210px}.mid-col .mid-col-container{padding:0 20px}#header{margin-left:30px}#footer{padding:15px 20px}article h1.title,article .entry-content{margin-left:0}}@media screen and (max-width:640px){#header{margin-left:0;padding:20px 0;text-align:center}#main-nav{margin-top:10px}#main-nav ul li{display:inline;margin:0 10px;text-align:center}#header .profilepic a{background-image:url(//st.deepzz.com/static/img/avatar_small.jpg);background-size:100% 100%;height:56px;left:12px;margin:0;position:absolute;top:12px;width:56px}#sub-nav .social,#sub-nav .social a{margin-bottom:0}article{padding:20px 0}.left-col{background-image:none;position:relative;width:100%}.mid-col{float:none;margin-left:0;width:100%}article .meta{margin-bottom:10px;position:static;width:auto}.mid-col .mid-col-container{padding:0 10px}.mid-col article .meta{float:none;overflow:hidden}article .meta .date,article .meta .comment,article .meta .tags{display:inline;margin-right:5px;padding-left:0}article .meta .date{margin-right:30px}#footer{padding:15px 10px}#toc{margin:0}#toc,#toc-container{float:none}#sub-nav .social a{opacity:1}}#simple_thread ol,#simple_thread ul{list-style:none;list-style-type:none}#simple_thread > .thread{color:#2a2e2e;font-family:"Helvetica Neue",arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#simple_thread .thread-tips{background-color:#f0f8f4;border:1px solid #e2e2e2;border-left:5px solid #7cc4a0;color:#333;font-size:15px;margin-bottom:20px;padding:5px 10px}#simple_thread .avatar{float:left}#simple_thread .thread-tips a{font-weight:700;margin:0 3px}#simple_thread .publisher-anchor-color a{color:#2479cc!important}#simple_thread .clearfix:after,#simple_thread .clearfix:before{clear:both;content:"";display:table;line-height:0}#simple_thread .active .publisher-nav-color::after{background-color:#2479cc!important}#simple_thread .avatar .user,#simple_thread .avatar img{border-radius:3px;display:block}#simple_thread .nav{border-bottom:2px solid #e7e9ee;margin:0 0 20px;position:relative}#simple_thread .tab-conversation{float:left}#simple_thread .btn{background:#778289;background:rgba(29,47,58,.6);border:none;border-radius:3px;color:#fff;display:inline-block;font-weight:500;line-height:1.1;padding:10px 16px;text-shadow:none;transition:background .2s}#simple_thread .post-content{margin-bottom:24px;position:relative;transition:all .2s ease-in-out}#simple_thread .post-body{overflow:hidden}#simple_thread .post-header{font-size:13px;line-height:1;margin-bottom:3px;padding-right:46px}#simple_thread .post-meta{display:inline-block}#simple_thread .load-more{margin:0 0 24px}#simple_thread .avatar img{height:48px;width:48px}#simple_thread .nav-tab > a{color:#7f919e;display:block;font-weight:700;line-height:1;margin:0;padding:0;position:relative;transition:all .2s ease-in-out}#simple_thread .tab-conversation > a{font-size:15px;margin-right:15px;padding:12px 0;text-transform:capitalize}#simple_thread .post-body spoiler{background:#7f919e;color:transparent;display:inline;padding:0 .5em}#simple_thread .post-header a{color:#7f919e;line-height:1}#simple_thread .post-body-inner p{font-size:15px;line-height:21px;margin:0 0 15px;word-wrap:break-word}#simple_thread .media a{margin-right:10px}#simple_thread .avatar .user{background:#dbdfe4;padding:0;position:relative;z-index:100}#simple_thread .post .avatar{margin-right:12px}#simple_thread .btn:hover{background:#606d75;background:rgba(29,47,58,.7);color:#fff}#simple_thread .btn.active,#simple_thread .btn:active{background:#2e9fff;transition:none}#simple_thread .btn.busy{background:#ebeef2;color:#999;text-shadow:none}#simple_thread .post-content .indicator{border-radius:3px;height:48px;left:0;position:absolute;top:0;width:5px}#simple_thread .post-content.target{padding-left:12px}#simple_thread .post-header .author{color:#656c7a;font-weight:700}#simple_thread .post-header .time-ago{color:#7f919e;font-weight:500;font-size:12px}#simple_thread .post-meta .bullet{color:#c2c6cc;line-height:1.4;padding:0}#simple_thread .children .post{margin-left:60px}#simple_thread .load-more .btn{display:block;font-size:13px;font-weight:400;padding:11px 14px;text-align:center}#simple_thread.mobile .post-header{font-size:14px;line-height:18px;margin-bottom:4px;padding-right:0;position:relative;top:-4px}#simple_thread.mobile .post-body-inner{clear:left;overflow:visible;position:relative;top:-4px}#simple_thread.mobile .post-body{display:block;overflow:visible}#simple_thread .tab-conversation.active > a{color:#2a2e2e!important}#simple_thread .post-body a[data-dsq-mention]{font-weight:700}#simple_thread .post-body spoiler:hover,#simple_thread .post-body spoiler:focus{background:#e7e9ee;color:inherit}#simple_thread .post-body-inner p:last-child{margin:0}#simple_thread.mobile .avatar img{height:30px;width:30px}#simple_thread .btn.busy:active,#simple_thread .btn.busy:hover{background:#ebeef2;cursor:not-allowed;text-shadow:none}#simple_thread .post-content.target > .avatar{left:12px}#simple_thread .post-content.target .indicator{background:#ffc62e}#simple_thread .children .children .post{margin-left:48px}#simple_thread.mobile .post-header .post-byline{display:block;overflow:hidden;padding-right:15px;text-overflow:ellipsis;white-space:nowrap}#simple_thread.mobile .post-header .author{font-size:15px;line-height:18px}#simple_thread.mobile .post-meta .bullet{display:none}#simple_thread .tab-conversation.active > a:after{background:#2e9fff;bottom:-2px;content:" ";display:block;height:2px;left:0;position:absolute;right:0}#simple_thread .post-body a[data-dsq-mention]:before{content:'@'}#simple_thread.mobile .tab-conversation.active > a > span{display:none}#simple_thread.mobile .post-list .post .post-content{margin:0;padding:0;margin-bottom:16px;transition:none}#simple_thread.mobile .post-list .post .children{border-left:2px solid #e7e9ee;padding-left:17px}#simple_thread .children .post .avatar .user img{width:36px}#simple_thread .children .post .avatar .user img,#simple_thread .children .post .indicator{height:36px}#simple_thread .children .children .children .children .post{margin-left:0}#simple_thread.mobile .post-list .post .post-content .indicator{height:30px}#simple_thread.mobile .post-list .post .children .post,#simple_thread.mobile .post-list .post .children .post .post-content .post-body{margin-left:0}#simple_thread.mobile .post-list .post .post-content .avatar img{height:30px;width:30px}#simple_thread.mobile .post-list .post .children li:only-child{margin-bottom:20px}#simple_thread .children .children .children .children .post .post-body{margin-left:48px}#simple_thread .children .children .children .children .post .indicator{left:0}#simple_thread.mobile .post-list .post .post-content.target .avatar{margin-left:8px}#simple_thread.mobile .post-list .post .children .children .children{border-left:none;padding-left:0}
{{end}}