Commit 5f6ecbff authored by D's avatar D Committed by GitHub

Merge pull request #12139 from b3log/1.5.0-dev

1.5.0 dev
parents f61bd1d3 3bcdb8d2
...@@ -16,3 +16,4 @@ src/main/webapp/skins/* ...@@ -16,3 +16,4 @@ src/main/webapp/skins/*
!src/main/webapp/skins/mobile !src/main/webapp/skins/mobile
!src/main/webapp/skins/yilia !src/main/webapp/skins/yilia
!src/main/webapp/skins/next !src/main/webapp/skins/next
**/.DS_Store
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- <!--
Description: Solo POM. Description: Solo POM.
Version: 3.11.1.23, Jul 7, 2016 Version: 3.12.1.25, Aug 10, 2016
Author: <a href="http://88250.b3log.org">Liang Ding</a> Author: <a href="http://88250.b3log.org">Liang Ding</a>
Author: <a href="http://www.annpeter.cn">Ann Peter</a> Author: <a href="http://www.annpeter.cn">Ann Peter</a>
--> -->
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.b3log.latke.version>2.2.6</org.b3log.latke.version> <org.b3log.latke.version>2.2.10</org.b3log.latke.version>
<servlet.version>3.1.0</servlet.version> <servlet.version>3.1.0</servlet.version>
<slf4j.version>1.7.5</slf4j.version> <slf4j.version>1.7.5</slf4j.version>
...@@ -116,6 +116,7 @@ ...@@ -116,6 +116,7 @@
<jetty.version>9.2.13.v20150730</jetty.version> <jetty.version>9.2.13.v20150730</jetty.version>
<commons-cli.version>1.3.1</commons-cli.version> <commons-cli.version>1.3.1</commons-cli.version>
<emoji-java.version>3.0.0</emoji-java.version> <emoji-java.version>3.0.0</emoji-java.version>
<jodd.version>3.6.6</jodd.version>
<!-- maven plugin --> <!-- maven plugin -->
<maven-compiler-plugin.version>3.3</maven-compiler-plugin.version> <maven-compiler-plugin.version>3.3</maven-compiler-plugin.version>
...@@ -215,6 +216,12 @@ ...@@ -215,6 +216,12 @@
<artifactId>commons-cli</artifactId> <artifactId>commons-cli</artifactId>
<version>${commons-cli.version}</version> <version>${commons-cli.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.jodd</groupId>
<artifactId>jodd-http</artifactId>
<version>${jodd.version}</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -16,15 +16,25 @@ ...@@ -16,15 +16,25 @@
package org.b3log.solo.processor.console; package org.b3log.solo.processor.console;
import com.qiniu.util.Auth; import com.qiniu.util.Auth;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Calendar; import java.util.Calendar;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.TimeZone; import java.util.TimeZone;
import java.util.UUID;
import javax.inject.Inject; import javax.inject.Inject;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jodd.io.ZipUtil;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.RuntimeDatabase;
import org.b3log.latke.event.Event; import org.b3log.latke.event.Event;
import org.b3log.latke.event.EventException; import org.b3log.latke.event.EventException;
import org.b3log.latke.event.EventManager; import org.b3log.latke.event.EventManager;
...@@ -40,6 +50,7 @@ import org.b3log.latke.servlet.HTTPRequestMethod; ...@@ -40,6 +50,7 @@ import org.b3log.latke.servlet.HTTPRequestMethod;
import org.b3log.latke.servlet.annotation.RequestProcessing; import org.b3log.latke.servlet.annotation.RequestProcessing;
import org.b3log.latke.servlet.annotation.RequestProcessor; import org.b3log.latke.servlet.annotation.RequestProcessor;
import org.b3log.latke.servlet.renderer.freemarker.AbstractFreeMarkerRenderer; import org.b3log.latke.servlet.renderer.freemarker.AbstractFreeMarkerRenderer;
import org.b3log.latke.util.Execs;
import org.b3log.latke.util.Strings; import org.b3log.latke.util.Strings;
import org.b3log.solo.SoloServletListener; import org.b3log.solo.SoloServletListener;
import org.b3log.solo.model.Common; import org.b3log.solo.model.Common;
...@@ -58,7 +69,7 @@ import org.json.JSONObject; ...@@ -58,7 +69,7 @@ import org.json.JSONObject;
* Admin console render processing. * Admin console render processing.
* *
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.2.1.8, Nov 20, 2015 * @version 1.3.1.9, Jul 28, 2016
* @since 0.4.1 * @since 0.4.1
*/ */
@RequestProcessor @RequestProcessor
...@@ -222,6 +233,8 @@ public class AdminConsole { ...@@ -222,6 +233,8 @@ public class AdminConsole {
final Map<String, String> langs = langPropsService.getAll(locale); final Map<String, String> langs = langPropsService.getAll(locale);
final Map<String, Object> dataModel = renderer.getDataModel(); final Map<String, Object> dataModel = renderer.getDataModel();
dataModel.put("isMySQL", RuntimeDatabase.MYSQL == Latkes.getRuntimeDatabase());
dataModel.putAll(langs); dataModel.putAll(langs);
Keys.fillRuntime(dataModel); Keys.fillRuntime(dataModel);
...@@ -283,6 +296,82 @@ public class AdminConsole { ...@@ -283,6 +296,82 @@ public class AdminConsole {
fireFreeMarkerActionEvent(templateName, dataModel); fireFreeMarkerActionEvent(templateName, dataModel);
} }
/**
* Exports data as SQL file.
*
* @param request the specified HTTP servlet request
* @param response the specified HTTP servlet response
* @param context the specified HTTP request context
* @throws Exception exception
*/
@RequestProcessing(value = "/console/export/sql", method = HTTPRequestMethod.GET)
public void exportSQL(final HttpServletRequest request, final HttpServletResponse response, final HTTPRequestContext context)
throws Exception {
if (!userQueryService.isAdminLoggedIn(request)) {
response.sendError(HttpServletResponse.SC_FORBIDDEN);
return;
}
if (!Latkes.runsWithJDBCDatabase() || RuntimeDatabase.MYSQL != Latkes.getRuntimeDatabase()) {
context.renderJSON().renderMsg("Just support MySQL export now");
return;
}
final String dbUser = Latkes.getLocalProperty("jdbc.username");
final String dbPwd = Latkes.getLocalProperty("jdbc.password");
final String dbURL = Latkes.getLocalProperty("jdbc.URL");
String db = StringUtils.substringAfterLast(dbURL, "/");
db = StringUtils.substringBefore(db, "?");
String sql;
try {
if (StringUtils.isNotBlank(dbPwd)) {
sql = Execs.exec("mysqldump -u" + dbUser + " -p" + dbPwd + " --database " + db);
} else {
sql = Execs.exec("mysqldump -u" + dbUser + " --database " + db);
}
} catch (final Exception e) {
LOGGER.log(Level.ERROR, "Export failed", e);
context.renderJSON().renderMsg("Export failed, please check log");
return;
}
final String tmpDir = System.getProperty("java.io.tmpdir");
String localFilePath = tmpDir + "/b3_solo_" + UUID.randomUUID().toString() + ".sql";
LOGGER.info(localFilePath);
final File localFile = new File(localFilePath);
try {
final byte[] data = sql.getBytes("UTF-8");
OutputStream output = new FileOutputStream(localFile);
IOUtils.write(data, output);
IOUtils.closeQuietly(output);
final File zipFile = ZipUtil.zip(localFile);
final FileInputStream inputStream = new FileInputStream(zipFile);
final byte[] zipData = IOUtils.toByteArray(inputStream);
IOUtils.closeQuietly(inputStream);
response.setContentType("application/zip");
response.setHeader("Content-Disposition", "attachment; filename=\"solo.sql.zip\"");
final ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(zipData);
outputStream.flush();
outputStream.close();
} catch (final Exception e) {
LOGGER.log(Level.ERROR, "Export failed", e);
context.renderJSON().renderMsg("Export failed, please check log");
return;
}
}
/** /**
* Fires FreeMarker action event with the host template name and data model. * Fires FreeMarker action event with the host template name and data model.
* *
......
...@@ -16,12 +16,13 @@ ...@@ -16,12 +16,13 @@
# #
# Description: Solo language configurations(en_US). # Description: Solo language configurations(en_US).
# Version: 2.5.2.10, Feb 20, 2016 # Version: 2.6.2.10, Jul 27, 2016
# Author: Liang Ding # Author: Liang Ding
# Author: Liyuan Li # Author: Liyuan Li
# Author: Dongxu Wang # Author: Dongxu Wang
# #
exportSQLLabel=Export SQL file
notAllowRegisterLabel=Not allow register notAllowRegisterLabel=Not allow register
allowRegister1Label=Allow Register: allowRegister1Label=Allow Register:
footerContent1Label=Footer: footerContent1Label=Footer:
......
...@@ -16,12 +16,13 @@ ...@@ -16,12 +16,13 @@
# #
# Description: Solo default language configurations(zh_CN). # Description: Solo default language configurations(zh_CN).
# Version: 2.5.4.17, Feb 20, 2016 # Version: 2.6.4.17, Jul 27, 2016
# Author: Liang Ding # Author: Liang Ding
# Author: Liyuan Li # Author: Liyuan Li
# Author: Dongxu Wang # Author: Dongxu Wang
# #
exportSQLLabel=\u5bfc\u51fa SQL \u6587\u4ef6
notAllowRegisterLabel=\u6682\u4e0d\u5f00\u653e\u6ce8\u518c\uff01 notAllowRegisterLabel=\u6682\u4e0d\u5f00\u653e\u6ce8\u518c\uff01
allowRegister1Label=\u5141\u8bb8\u6ce8\u518c\uff1a allowRegister1Label=\u5141\u8bb8\u6ce8\u518c\uff1a
footerContent1Label=\u9875\u811a\uff1a footerContent1Label=\u9875\u811a\uff1a
......
...@@ -21,20 +21,20 @@ ...@@ -21,20 +21,20 @@
# #
#### H2 runtime #### #### H2 runtime ####
runtimeDatabase=H2 #runtimeDatabase=H2
jdbc.username=root
jdbc.password=
jdbc.driver=org.h2.Driver
jdbc.URL=jdbc:h2:~/b3log_solo_h2/db
jdbc.pool=h2
#### MySQL runtime ####
#runtimeDatabase=MYSQL
#jdbc.username=root #jdbc.username=root
#jdbc.password= #jdbc.password=
#jdbc.driver=com.mysql.jdbc.Driver #jdbc.driver=org.h2.Driver
#jdbc.URL=jdbc:mysql://localhost:3306/b3log?useUnicode=yes&characterEncoding=utf8 #jdbc.URL=jdbc:h2:~/b3log_solo_h2/db
#jdbc.pool=druid #jdbc.pool=h2
#### MySQL runtime ####
runtimeDatabase=MYSQL
jdbc.username=root
jdbc.password=
jdbc.driver=com.mysql.jdbc.Driver
jdbc.URL=jdbc:mysql://localhost:3306/b3log?useUnicode=yes&characterEncoding=utf8
jdbc.pool=druid
# The minConnCnt MUST larger or equal to 3 # The minConnCnt MUST larger or equal to 3
jdbc.minConnCnt=5 jdbc.minConnCnt=5
......
...@@ -47,6 +47,9 @@ ...@@ -47,6 +47,9 @@
</div> </div>
<div id="tabOthersPanel_other" class="none"> <div id="tabOthersPanel_other" class="none">
<button class="margin12" onclick="admin.others.removeUnusedTags();">${removeUnusedTagsLabel}</button> <button class="margin12" onclick="admin.others.removeUnusedTags();">${removeUnusedTagsLabel}</button>
<#if isMySQL>
<button class="margin12" onclick="admin.others.exportSQL();">${exportSQLLabel}</button>
</#if>
</div> </div>
</div> </div>
${plugins} ${plugins}
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
* *
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a> * @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.8, May 28, 2013 * @version 1.1.0.8, Jul 27, 2016
*/ */
/* oterhs 相关操作 */ /* oterhs 相关操作 */
...@@ -33,7 +33,7 @@ admin.others = { ...@@ -33,7 +33,7 @@ admin.others = {
url: latkeConfig.servePath + "/console/reply/notification/template", url: latkeConfig.servePath + "/console/reply/notification/template",
type: "GET", type: "GET",
cache: false, cache: false,
success: function(result, textStatus){ success: function (result, textStatus) {
$("#tipMsg").text(result.msg); $("#tipMsg").text(result.msg);
if (!result.sc) { if (!result.sc) {
$("#loadMsg").text(""); $("#loadMsg").text("");
...@@ -47,7 +47,6 @@ admin.others = { ...@@ -47,7 +47,6 @@ admin.others = {
} }
}); });
}, },
/* /*
* @description 移除未使用的标签。 * @description 移除未使用的标签。
*/ */
...@@ -58,12 +57,32 @@ admin.others = { ...@@ -58,12 +57,32 @@ admin.others = {
url: latkeConfig.servePath + "/console/tag/unused", url: latkeConfig.servePath + "/console/tag/unused",
type: "DELETE", type: "DELETE",
cache: false, cache: false,
success: function(result, textStatus){ success: function (result, textStatus) {
$("#tipMsg").text(result.msg); $("#tipMsg").text(result.msg);
} }
}); });
}, },
/*
* @description 移除未使用的标签。
*/
exportSQL: function () {
$("#tipMsg").text("");
$.ajax({
url: latkeConfig.servePath + "/console/export/sql",
type: "GET",
cache: false,
success: function (result, textStatus) {
// AJAX 下载文件的话这里会发两次请求,用 sc 来判断是否是文件,如果没有 sc 说明文件可以下载(实际上就是 result)
if (!result.sc) {
// 再发一次请求进行正式下载
window.location = latkeConfig.servePath + "/console/export/sql";
} else {
$("#tipMsg").text(result.msg);
}
}
});
},
/* /*
* 获取未使用的标签。 * 获取未使用的标签。
* XXX: Not used this function yet. * XXX: Not used this function yet.
...@@ -73,7 +92,7 @@ admin.others = { ...@@ -73,7 +92,7 @@ admin.others = {
url: latkeConfig.servePath + "/console/tag/unused", url: latkeConfig.servePath + "/console/tag/unused",
type: "GET", type: "GET",
cache: false, cache: false,
success: function(result, textStatus){ success: function (result, textStatus) {
$("#tipMsg").text(result.msg); $("#tipMsg").text(result.msg);
if (!result.sc) { if (!result.sc) {
$("#loadMsg").text(""); $("#loadMsg").text("");
...@@ -87,7 +106,6 @@ admin.others = { ...@@ -87,7 +106,6 @@ admin.others = {
} }
}); });
}, },
/* /*
* @description 跟新回复提醒邮件模版 * @description 跟新回复提醒邮件模版
*/ */
...@@ -120,7 +138,7 @@ admin.others = { ...@@ -120,7 +138,7 @@ admin.others = {
*/ */
admin.register.others = { admin.register.others = {
"obj": admin.others, "obj": admin.others,
"init":admin.others.init, "init": admin.others.init,
"refresh": function () { "refresh": function () {
admin.clearTip(); admin.clearTip();
} }
......
<#include "macro-head.ftl">
<!DOCTYPE html>
<html>
<head>
<@head title="${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} (${archiveDate.archiveDatePublishedArticleCount}) - ${blogTitle}">
<meta name="keywords" content="${metaKeywords},${archiveDate.archiveDateYear}${archiveDate.archiveDateMonth}"/>
<meta name="description" content="<#list articles as article>${article.articleTitle}<#if article_has_next>,</#if></#list>"/>
</@head>
</head>
<body>
<#include "header.ftl">
<main class="main wrapper">
<div class="content page-archive">
<section class="posts-collapse">
<span class="archive-move-on"></span>
<span class="archive-page-counter">
${ohLabel}..!
<#if "en" == localeString?substring(0, 2)>
${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear}
<#else>
${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel}
</#if>
${sumLabel} ${archiveDate.archiveDatePublishedArticleCount} ${fightLabel}
</span>
</section>
<#include "article-list.ftl">
</div>
<#include "side.ftl">
</main>
<#include "footer.ftl">
</body>
</html>
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<section class="posts-collapse"> <section class="posts-collapse">
<span class="archive-move-on"></span> <span class="archive-move-on"></span>
<span class="archive-page-counter"> <span class="archive-page-counter">
嗯..! 目前共计 ${statistic.statisticPublishedBlogArticleCount} 篇日志。 继续努力。 ${ohLabel}..! ${sumLabel} ${statistic.statisticPublishedBlogArticleCount} ${fightLabel}
</span> </span>
<#if 0 != archiveDates?size> <#if 0 != archiveDates?size>
<#list archiveDates as archiveDate> <#list archiveDates as archiveDate>
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<div class="post-meta"> <div class="post-meta">
<span> <span>
发表于 ${postTimeLabel}
<time> <time>
${article.articleCreateDate?string("yyyy-MM-dd")} ${article.articleCreateDate?string("yyyy-MM-dd")}
</time> </time>
...@@ -28,15 +28,15 @@ ...@@ -28,15 +28,15 @@
<span> <span>
&nbsp; | &nbsp; &nbsp; | &nbsp;
<a href="${servePath}${article.articlePermalink}#comments"> <a href="${servePath}${article.articlePermalink}#comments">
${article.articleCommentCount}条评论</a> ${article.articleCommentCount} ${cmtLabel}</a>
</span> </span>
&nbsp; | &nbsp;热度 ${article.articleViewCount}°C &nbsp; | &nbsp;${viewsLabel} ${article.articleViewCount}°C
</div> </div>
</header> </header>
${article.articleAbstract} ${article.articleAbstract}
<div class="post-more-link"> <div class="post-more-link">
<a href="${servePath}${article.articlePermalink}/#more" rel="contents"> <a href="${servePath}${article.articlePermalink}/#more" rel="contents">
阅读全文 &raquo; ${readLabel} &raquo;
</a> </a>
</div> </div>
</article> </article>
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
</h1> </h1>
<div class="post-meta"> <div class="post-meta">
<span class="post-time"> <span class="post-time">
发表于 ${postTimeLabel}
<time> <time>
${article.articleCreateDate?string("yyyy-MM-dd")} ${article.articleCreateDate?string("yyyy-MM-dd")}
</time> </time>
...@@ -37,14 +37,14 @@ ...@@ -37,14 +37,14 @@
<span class="post-comments-count"> <span class="post-comments-count">
&nbsp; | &nbsp; &nbsp; | &nbsp;
<a href="${servePath}${article.articlePermalink}#comments"> <a href="${servePath}${article.articlePermalink}#comments">
${article.articleCommentCount}条评论</a> ${article.articleCommentCount} ${cmtLabel}</a>
</span> </span>
&nbsp; | &nbsp;热度 &nbsp; | &nbsp; ${viewsLabel}
${article.articleViewCount}°C ${article.articleViewCount}°C
</div> </div>
</header> </header>
<div class="post-body"> <div class="post-body article-body">
${article.articleContent} ${article.articleContent}
<#if "" != article.articleSign.signHTML?trim> <#if "" != article.articleSign.signHTML?trim>
<div> <div>
...@@ -61,16 +61,16 @@ ...@@ -61,16 +61,16 @@
</div> </div>
<div class="post-nav fn-clear"> <div class="post-nav fn-clear">
<#if previousArticlePermalink??> <#if previousArticlePermalink??>
<div class="post-nav-prev post-nav-item fn-left"> <div class="post-nav-prev post-nav-item fn-right">
<a href="${servePath}${previousArticlePermalink}" rel="next" title="${previousArticleTitle}"> <a href="${servePath}${previousArticlePermalink}" rel="next" title="${previousArticleTitle}">
< ${previousArticleTitle} ${previousArticleTitle} >
</a> </a>
</div> </div>
</#if> </#if>
<#if nextArticlePermalink??> <#if nextArticlePermalink??>
<div class="post-nav-next post-nav-item fn-right"> <div class="post-nav-next post-nav-item fn-left">
<a href="${servePath}${nextArticlePermalink}" rel="prev" title="${nextArticleTitle}"> <a href="${servePath}${nextArticlePermalink}" rel="prev" title="${nextArticleTitle}">
${nextArticleTitle} > < ${nextArticleTitle}
</a> </a>
</div> </div>
</#if> </#if>
......
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : Jul 3, 2016, Jul 3, 2016 11:35:17 PM
Author : Vanessa
*/
/* latin-ext */
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 300;
src: local('Lato Light'), local('Lato-Light'), url(http://fontstatic.useso.com/s/lato/v11/dPJ5r9gl3kK6ijoeP1IRsvY6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 300;
src: local('Lato Light'), local('Lato-Light'), url(http://fontstatic.useso.com/s/lato/v11/EsvMC5un3kjyUhB9ZEPPwg.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin-ext */
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 400;
src: local('Lato Regular'), local('Lato-Regular'), url(http://fontstatic.useso.com/s/lato/v11/UyBMtLsHKBKXelqf4x7VRQ.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 400;
src: local('Lato Regular'), local('Lato-Regular'), url(http://fontstatic.useso.com/s/lato/v11/1YwB1sO8YE1Lyjf12WNiUA.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin-ext */
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 700;
src: local('Lato Bold'), local('Lato-Bold'), url(http://fontstatic.useso.com/s/lato/v11/ObQr5XYcoH0WBoUxiaYK3_Y6323mHUZFJMgTvxaG2iE.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 700;
src: local('Lato Bold'), local('Lato-Bold'), url(http://fontstatic.useso.com/s/lato/v11/H2DMvhDLycM56KNuAtbJYA.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin-ext */
@font-face {
font-family: 'Lato';
font-style: italic;
font-weight: 400;
src: local('Lato Italic'), local('Lato-Italic'), url(http://fontstatic.useso.com/s/lato/v11/YMOYVM-eg6Qs9YzV9OSqZfesZW2xOQ-xsNqO47m55DA.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Lato';
font-style: italic;
font-weight: 400;
src: local('Lato Italic'), local('Lato-Italic'), url(http://fontstatic.useso.com/s/lato/v11/PLygLKRVCQnA5fhu3qk5fQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/*!
* Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.4.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}
/* normalize.css v3.0.2 | MIT License | git.io/normalize */
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
body {
margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
audio:not([controls]) {
display: none;
height: 0;
}
[hidden],
template {
display: none;
}
a {
background-color: transparent;
}
a:active,
a:hover {
outline: 0;
}
abbr[title] {
border-bottom: 1px dotted;
}
b,
strong {
font-weight: bold;
}
dfn {
font-style: italic;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
mark {
background: #ff0;
color: #000;
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
border: 0;
}
svg:not(:root) {
overflow: hidden;
}
figure {
margin: 1em 40px;
}
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
pre {
overflow: auto;
}
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
color: inherit; /* 1 */
font: inherit; /* 2 */
margin: 0; /* 3 */
}
button {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
button[disabled],
html input[disabled] {
cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
input {
line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
textarea {
overflow: auto;
}
optgroup {
font-weight: bold;
}
::selection {
background: #262a30;
color: #fff;
}
body {
position: relative;
font-family: Lato, "PingFang SC", "Microsoft YaHei", sans-serif;
font-size: 14px;
line-height: 2;
color: #555;
background: #fff;
}
@media (max-width: 767px) {
body {
padding-right: 0 !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
body {
padding-right: 0 !important;
}
}
@media (min-width: 1600px) {
body {
font-size: 16px;
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 0;
padding: 0;
font-weight: bold;
line-height: 1;
font-family: Lato, "PingFang SC", "Microsoft YaHei", sans-serif;
}
h1 {
font-size: 24px;
}
@media (max-width: 767px) {
h1 {
font-size: 20px;
}
}
h2 {
font-size: 22px;
}
@media (max-width: 767px) {
h2 {
font-size: 18px;
}
}
h3 {
font-size: 20px;
}
@media (max-width: 767px) {
h3 {
font-size: 16px;
}
}
h4 {
font-size: 18px;
}
@media (max-width: 767px) {
h4 {
font-size: 14px;
}
}
h5 {
font-size: 16px;
}
@media (max-width: 767px) {
h5 {
font-size: 12px;
}
}
h6 {
font-size: 14px;
}
@media (max-width: 767px) {
h6 {
font-size: 10px;
}
}
p {
margin: 0 0 25px 0;
}
a {
color: #555;
text-decoration: none;
border-bottom: 1px solid #999;
}
a:hover {
color: #222;
border-bottom-color: #222;
}
ul {
list-style: none;
}
blockquote {
margin: 0;
padding: 0;
}
img {
max-width: 100%;
height: auto;
}
h2,
h3,
h4,
h5,
h6 {
margin: 20px 0 15px;
}
ul {
list-style: square;
}
a {
word-wrap: break-word;
}
hr {
margin: 40px 0;
height: 3px;
border: none;
background-color: #ddd;
background-image: repeating-linear-gradient(-45deg, #fff, #fff 4px, transparent 4px, transparent 8px);
}
blockquote {
padding: 0 15px;
color: #666;
border-left: 4px solid #ddd;
}
blockquote cite::before {
content: "-";
padding: 0 5px;
}
dt {
font-weight: 700;
}
dd {
margin: 0;
padding: 0;
}
.pullquote {
width: 45%;
}
.pullquote.left {
float: left;
margin-left: 5px;
margin-right: 10px;
}
.pullquote.right {
float: right;
margin-left: 10px;
margin-right: 5px;
}
.highlight table,
.gist table {
width: auto;
}
.highlight table td,
.gist table td {
border: none;
}
.highlight a,
.gist a {
color: #222 !important;
text-decoration: none !important;
}
.video-container {
position: relative;
padding-top: 60%;
height: 0;
overflow: hidden;
}
.video-container iframe,
.video-container object,
.video-container embed {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.text-left {
text-align: left;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.text-justify {
text-align: justify;
}
.text-nowrap {
white-space: nowrap;
}
.text-lowercase {
text-transform: lowercase;
}
.text-uppercase {
text-transform: uppercase;
}
.text-capitalize {
text-transform: capitalize;
}
.center-block {
display: block;
margin-left: auto;
margin-right: auto;
}
.clearfix:before,
.clearfix:after {
content: " ";
display: table;
}
.clearfix:after {
clear: both;
}
.full-image.full-image.full-image {
border: none;
max-width: 100%;
width: auto;
margin: 0;
}
@media (min-width: 992px) {
.full-image.full-image.full-image {
max-width: none;
width: 126%;
margin: 0 -13%;
}
}
.use-motion .motion-element {
opacity: 0;
}
pre,
.highlight {
background: #f7f7f7;
margin: 20px 0;
padding: 15px;
overflow: auto;
font-size: 13px;
color: #4d4d4c;
line-height: 1.6;
}
.highlight .gutter pre,
.gist .gist-file .gist-data .line-numbers {
color: #666;
}
pre,
code {
font-family: "Input Mono", "PT Mono", Consolas, Monaco, Menlo, monospace;
}
code {
word-break: break-all;
background: #eee;
text-shadow: 0 1px #fff;
padding: 0 0.3em;
}
pre code {
background: none;
text-shadow: none;
padding: 0;
}
.highlight pre {
border: none;
margin: 0;
padding: 1px;
}
.highlight table {
margin: 0;
width: auto;
border: none;
}
.highlight td {
border: none;
padding: 0;
}
.highlight figcaption {
font-size: 0.85em;
color: #8e908c;
line-height: 1em;
margin-bottom: 1em;
}
.highlight figcaption:before,
.highlight figcaption:after {
content: " ";
display: table;
}
.highlight figcaption:after {
clear: both;
}
.highlight figcaption a {
float: right;
}
.highlight .gutter pre {
text-align: right;
padding-right: 20px;
}
.highlight .line {
height: 20px;
}
.gist {
margin: 20px 0;
border-style: solid;
border-color: #ccc;
border-width: 1px 0;
background: #f7f7f7;
padding: 15px 40px 15px 15px;
}
.gist .gist-file {
border: none;
font-family: "Input Mono", "PT Mono", Consolas, Monaco, Menlo, monospace;
margin: 0;
}
.gist .gist-file .gist-data {
background: none;
border: none;
}
.gist .gist-file .gist-data .line-numbers {
background: none;
border: none;
padding: 0 20px 0 0;
}
.gist .gist-file .gist-data .line-data {
padding: 0 !important;
}
.gist .gist-file .highlight {
margin: 0;
padding: 0;
border: none;
}
.gist .gist-file .gist-meta {
background: #f7f7f7;
color: #8e908c;
font: 13px Lato, "PingFang SC", "Microsoft YaHei", sans-serif;
text-shadow: 0 0;
padding: 0;
margin-top: 1em;
margin-left: 40px;
}
.gist .gist-file .gist-meta a {
color: color-link;
font-weight: normal;
}
.gist .gist-file .gist-meta a:hover {
text-decoration: underline;
}
pre .comment {
color: #8e908c;
}
pre .variable,
pre .attribute,
pre .tag,
pre .regexp,
pre .ruby .constant,
pre .xml .tag .title,
pre .xml .pi,
pre .xml .doctype,
pre .html .doctype,
pre .css .id,
pre .css .class,
pre .css .pseudo {
color: #c82829;
}
pre .number,
pre .preprocessor,
pre .built_in,
pre .literal,
pre .params,
pre .constant {
color: #f5871f;
}
pre .ruby .class .title,
pre .css .rules .attribute {
color: #718c00;
}
pre .string,
pre .value,
pre .inheritance,
pre .header,
pre .ruby .symbol,
pre .xml .cdata {
color: #718c00;
}
pre .title,
pre .css .hexcolor {
color: #3e999f;
}
pre .function,
pre .python .decorator,
pre .python .title,
pre .ruby .function .title,
pre .ruby .title .keyword,
pre .perl .sub,
pre .javascript .title,
pre .coffeescript .title {
color: #4271ae;
}
pre .keyword,
pre .javascript .function {
color: #8959a8;
}
html,
body {
height: 100%;
}
.container {
position: relative;
min-height: 100%;
}
.header-inner {
margin: 0 auto;
padding: 100px 0 70px;
width: 1200px;
}
.one-column .header-inner {
width: 700px;
}
@media (min-width: 1600px) {
.one-column .header-inner {
width: 900px;
}
}
.main {
padding-bottom: 150px;
}
.main-inner {
margin: 0 auto;
width: 1200px;
}
.one-column .main-inner {
width: 700px;
}
@media (min-width: 1600px) {
.one-column .main-inner {
width: 900px;
}
}
.footer {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
min-height: 50px;
}
.footer-inner {
margin: 20px auto;
width: 1200px;
}
.one-column .footer-inner {
width: 700px;
}
@media (min-width: 1600px) {
.one-column .footer-inner {
width: 900px;
}
}
.headband {
height: 3px;
background: #222;
}
.header {
background: #fff;
}
.header-inner {
position: relative;
}
.site-meta {
margin: 0;
text-align: left;
}
@media (max-width: 767px) {
.site-meta {
text-align: center;
}
}
.brand {
position: relative;
display: inline-block;
padding: 0 40px;
color: #222;
background: #222;
border-bottom: none;
font-family: Lato, "PingFang SC", "Microsoft YaHei", sans-serif;
}
.brand:hover {
color: #222;
}
.logo {
display: inline-block;
margin-right: 5px;
line-height: 36px;
vertical-align: top;
}
.site-title {
display: inline-block;
vertical-align: top;
line-height: 36px;
font-size: 20px;
font-weight: normal;
}
.site-subtitle {
margin-top: 10px;
font-size: 13px;
color: #999;
}
.use-motion .brand {
opacity: 0;
}
.use-motion .logo,
.use-motion .site-title,
.use-motion .site-subtitle {
opacity: 0;
position: relative;
top: -10px;
}
.site-nav-toggle {
display: none;
position: absolute;
top: 10px;
left: 10px;
}
@media (max-width: 767px) {
.site-nav-toggle {
display: block;
}
}
.site-nav-toggle button {
margin-top: 2px;
padding: 9px 10px;
background: transparent;
border: none;
}
@media (max-width: 767px) {
.site-nav {
display: none;
margin: 0 -10px;
clear: both;
border-top: 1px solid #ddd;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.site-nav {
display: block !important;
}
}
@media (min-width: 992px) {
.site-nav {
display: block !important;
}
}
.menu {
margin-top: 20px;
padding-left: 0;
text-align: center;
}
@media (max-width: 767px) {
.menu {
padding-left: 10px;
}
}
.menu .menu-item {
display: inline-block;
margin: 0 10px;
}
@media screen and (max-width: 767px) {
.menu .menu-item {
margin-top: 10px;
}
}
.menu .menu-item a {
display: block;
font-size: 13px;
text-transform: capitalize;
line-height: 1.5;
border-bottom: 1px solid transparent;
transition-property: border-color;
transition-duration: 0.2s;
transition-timing-function: ease-in-out;
transition-delay: 0s;
}
.menu .menu-item a:hover {
border-bottom-color: #222;
}
.use-motion .menu-item {
opacity: 0;
}
.translation {
margin-top: -20px;
font-size: 14px;
color: #999;
}
.post:last-child .post-eof.post-eof.post-eof {
display: none;
}
.sidebar-toggle {
position: fixed;
right: 50px;
bottom: 45px;
width: 15px;
height: 15px;
padding: 5px;
background: #222;
line-height: 0;
z-index: 1050;
cursor: pointer;
-webkit-transform: translateZ(0);
}
@media (min-width: 768px) and (max-width: 991px) {
.sidebar-toggle {
display: none;
}
}
@media (max-width: 767px) {
.sidebar-toggle {
display: none;
}
}
.sidebar-toggle-line {
position: relative;
display: inline-block;
vertical-align: top;
height: 2px;
width: 100%;
background: #fff;
margin-top: 3px;
}
.sidebar-toggle-line:first-child {
margin-top: 0;
}
.sidebar {
width: 0;
position: fixed;
right: 0;
top: 0;
bottom: 0;
z-index: 1040;
box-shadow: inset 0 2px 6px #000;
background: #222;
-webkit-transform: translateZ(0);
}
.sidebar a {
color: #999;
border-bottom-color: #555;
}
.sidebar a:hover {
color: #eee;
}
@media (min-width: 768px) and (max-width: 991px) {
.sidebar {
display: none !important;
}
}
@media (max-width: 767px) {
.sidebar {
display: none !important;
}
}
.sidebar-inner {
position: relative;
padding: 20px 10px;
color: #999;
text-align: center;
}
.site-author-image {
display: block;
margin: 0 auto;
max-width: 96px;
height: auto;
border: 2px solid #333;
padding: 2px;
}
.site-author-name {
margin: 5px 0 0;
color: #f5f5f5;
}
.site-description {
margin-top: 5px;
font-size: 14px;
color: #555;
}
.site-state {
overflow: hidden;
line-height: 1.4;
}
.site-state-item {
display: inline-block;
padding: 0 15px;
border-left: 1px solid #333;
}
.site-state-item:first-child {
border-left: none;
}
.site-state-item a {
border-bottom: none;
}
.site-state-item-count {
display: block;
text-align: center;
font-size: 18px;
}
.site-state-item-name {
font-size: 13px;
}
.feed-link {
margin-top: 20px;
}
.feed-link a {
display: inline-block;
padding: 0 15px;
color: #fc6423;
border: 1px solid #fc6423;
border-radius: 4px;
}
.feed-link a i {
color: #fc6423;
font-size: 14px;
}
.feed-link a:hover {
color: #fff;
background: #fc6423;
}
.feed-link a:hover i {
color: #fff;
}
.links-of-author {
margin-top: 20px;
}
.links-of-author a {
display: inline-block;
vertical-align: middle;
margin-right: 10px;
margin-bottom: 10px;
border-bottom-color: #555;
font-size: 13px;
}
.links-of-author a:before {
display: inline-block;
vertical-align: middle;
margin-right: 3px;
content: " ";
width: 4px;
height: 4px;
border-radius: 50%;
background: #0dd5ff;
}
.sidebar-nav {
margin: 0 0 20px;
padding-left: 0;
}
.sidebar-nav li {
display: inline-block;
cursor: pointer;
border-bottom: 1px solid transparent;
font-size: 15px;
}
.sidebar-nav li:hover {
color: #f5f5f5;
}
.page-post-detail .sidebar-nav-toc {
padding: 0 5px;
}
.page-post-detail .sidebar-nav-overview {
margin-left: 10px;
}
.sidebar-nav .sidebar-nav-active {
color: #87daff;
border-bottom-color: #87daff;
}
.sidebar-nav .sidebar-nav-active:hover {
color: #87daff;
}
.sidebar-panel {
display: none;
}
.sidebar-panel-active {
display: block;
}
ul.b3-solo-list {
overflow: auto;
margin: 20px 0;
padding: 0 10px 10px;
text-align: left;
list-style: none;
font-size: 14px;
text-align: left;
}
.b3-solo-list li {
list-style: none;
}
.b3-solo-list ul a {
color: #999;
}
.b3-solo-list ul a:hover {
color: #ccc;
}
.post-toc .nav .active > a {
color: #ccc;
}
.post-toc .nav .active-current > a {
color: #87daff;
}
.post-toc .nav .active-current > a:hover {
color: #87daff;
}
.footer {
font-size: 14px;
color: #999;
}
.footer img {
border: none;
}
.footer-inner {
text-align: center;
}
.with-love {
display: inline-block;
margin: 0 5px;
}
.powered-by,
.theme-info {
display: inline-block;
}
.powered-by {
margin-right: 10px;
}
.powered-by::after {
content: "|";
padding-left: 10px;
}
.cc-license {
margin-top: 10px;
text-align: center;
}
.cc-license .cc-opacity {
opacity: 0.7;
border-bottom: none;
}
.cc-license .cc-opacity:hover {
opacity: 0.9;
}
.cc-license img {
display: inline-block;
}
@media (max-width: 767px) {
body {
font-size: 14px;
}
.header-inner,
.one-column .header-inner,
.main-inner,
.one-column .main-inner,
.main-inner .content,
.footer-inner,
.one-column .footer-inner {
width: auto;
}
.main-inner {
margin: 20px auto 0;
}
.footer-inner {
padding: 0 10px;
}
}
.blockquote-center,
.page-home .post-type-quote blockquote,
.page-post-detail .post-type-quote blockquote {
position: relative;
margin: 40px 0;
padding: 0;
border-left: none;
text-align: center;
}
.blockquote-center::before,
.page-home .post-type-quote blockquote::before,
.page-post-detail .post-type-quote blockquote::before,
.blockquote-center::after,
.page-home .post-type-quote blockquote::after,
.page-post-detail .post-type-quote blockquote::after {
position: absolute;
content: ' ';
display: block;
width: 100%;
height: 24px;
opacity: 0.2;
background-repeat: no-repeat;
background-position: 0 -6px;
background-size: 22px 22px;
}
.blockquote-center::before,
.page-home .post-type-quote blockquote::before,
.page-post-detail .post-type-quote blockquote::before {
top: -20px;
background-image: url("../images/quote-l.svg");
border-top: 1px solid #ccc;
}
.blockquote-center::after,
.page-home .post-type-quote blockquote::after,
.page-post-detail .post-type-quote blockquote::after {
bottom: -20px;
background-image: url("../images/quote-r.svg");
border-bottom: 1px solid #ccc;
background-position: 100% 8px;
}
.blockquote-center p,
.page-home .post-type-quote blockquote p,
.page-post-detail .post-type-quote blockquote p,
.blockquote-center div,
.page-home .post-type-quote blockquote div,
.page-post-detail .post-type-quote blockquote div {
text-align: center;
}
.btn {
display: inline-block;
padding: 0 20px;
font-size: 15px;
color: #fff;
background: #222;
border: 2px solid #222;
text-decoration: none;
transition-property: background-color;
transition-duration: 0.2s;
transition-timing-function: ease-in-out;
transition-delay: 0s;
}
.btn:hover {
border-color: #222;
color: #222;
background: #fff;
}
.btn-bar {
display: block;
width: 22px;
height: 2px;
background: #555;
border-radius: 1px;
}
.btn-bar+.btn-bar {
margin-top: 4px;
}
.post-body .fancybox img {
display: block !important;
margin: 0 auto;
cursor: pointer;
cursor: zoom-out;
cursor: -webkit-zoom-in;
}
.post-body .image-caption,
.post-body .figure .caption {
margin: 10px auto 15px;
text-align: center;
font-size: 14px;
color: #999;
font-weight: bold;
line-height: 1;
}
.post-sticky-flag {
display: inline-block;
font-size: 16px;
-ms-transform: rotate(30deg);
transform: rotate(30deg);
}
.posts-expand {
padding-top: 40px;
}
@media (max-width: 767px) {
.posts-expand {
margin: 0 20px;
}
.post-body pre,
.post-body .highlight {
margin: 0 -20px;
padding: 10px 20px;
}
.post-body pre .gutter pre,
.post-body .highlight .gutter pre {
padding-right: 10px;
}
}
.posts-expand .post-title {
font-size: 26px;
text-align: center;
word-break: break-word;
}
@media (max-width: 767px) {
.posts-expand .post-title {
font-size: 22px;
}
}
.posts-expand .post-title-link {
display: inline-block;
position: relative;
color: #555;
border-bottom: none;
line-height: 1.2;
vertical-align: top;
}
.posts-expand .post-title-link::before {
content: "";
position: absolute;
width: 100%;
height: 2px;
bottom: 0;
left: 0;
background-color: #000;
visibility: hidden;
transform: scaleX(0);
transition-duration: 0.2s;
transition-timing-function: ease-in-out;
transition-delay: 0s;
}
.posts-expand .post-title-link:hover::before {
visibility: visible;
transform: scaleX(1);
}
.posts-expand .post-title-link .fa {
font-size: 16px;
}
.posts-expand .post-meta {
margin: 3px 0 60px 0;
color: #999;
font-size: 12px;
text-align: center;
}
.posts-expand .post-meta .post-category-list {
display: inline-block;
margin: 0;
padding: 3px;
}
.posts-expand .post-meta .post-category-list-link {
color: #999;
}
@media (max-width: 767px) {
.posts-expand .post-comments-count {
display: none;
}
}
@media (min-width: 992px) {
.posts-expand .post-body {
text-align: justify;
}
}
.posts-expand .post-body h2,
.posts-expand .post-body h3,
.posts-expand .post-body h4,
.posts-expand .post-body h5,
.posts-expand .post-body h6 {
padding-top: 10px;
}
.posts-expand .post-body h2 .header-anchor,
.posts-expand .post-body h3 .header-anchor,
.posts-expand .post-body h4 .header-anchor,
.posts-expand .post-body h5 .header-anchor,
.posts-expand .post-body h6 .header-anchor {
float: right;
margin-left: 10px;
color: #ccc;
border-bottom-style: none;
visibility: hidden;
}
.posts-expand .post-body h2 .header-anchor:hover,
.posts-expand .post-body h3 .header-anchor:hover,
.posts-expand .post-body h4 .header-anchor:hover,
.posts-expand .post-body h5 .header-anchor:hover,
.posts-expand .post-body h6 .header-anchor:hover {
color: inherit;
}
.posts-expand .post-body h2:hover .header-anchor,
.posts-expand .post-body h3:hover .header-anchor,
.posts-expand .post-body h4:hover .header-anchor,
.posts-expand .post-body h5:hover .header-anchor,
.posts-expand .post-body h6:hover .header-anchor {
visibility: visible;
}
.posts-expand .post-body img {
box-sizing: border-box;
margin: auto;
padding: 3px;
border: 1px solid #ddd;
}
.posts-expand .post-tags {
margin-top: 40px;
text-align: center;
}
.posts-expand .post-tags a {
display: inline-block;
margin-right: 10px;
font-size: 13px;
}
.post-nav {
overflow: hidden;
margin-top: 60px;
padding: 10px;
white-space: nowrap;
border-top: 1px solid #eee;
}
.post-nav-item {
display: inline-block;
width: 50%;
white-space: normal;
}
.post-nav-item a {
position: relative;
display: inline-block;
line-height: 25px;
font-size: 14px;
color: #555;
border-bottom: none;
}
.post-nav-item a:hover {
color: #222;
border-bottom: none;
}
.post-nav-item a:active {
top: 2px;
}
.post-nav-item a i {
font-size: 12px;
}
.post-nav-prev {
text-align: right;
}
.posts-expand .post-eof {
display: block;
margin: $post-eof-margin-top auto $post-eof-margin-bottom;
width: 8%;
height: 1px;
background: #ccc;
text-align: center;
}
.post-more-link {
margin-top: 50px;
}
.posts-expand .post-body .fancybox img {
margin: 0 auto;
}
@media (max-width: 767px) {
.posts-collapse {
margin: 0 20px;
}
.posts-collapse .post-title,
.posts-collapse .post-meta {
display: block;
width: auto;
text-align: left;
}
}
.posts-collapse {
margin-left: 0;
}
@media (max-width: 767px) {
.posts-collapse {
margin: 0 20px;
}
}
.posts-collapse .collection-title {
position: relative;
margin: 60px 0;
}
.posts-collapse .collection-title h2 {
margin-left: 20px;
}
.posts-collapse .collection-title small {
color: #bbb;
}
.posts-collapse .collection-title::before {
content: " ";
position: absolute;
left: 0;
top: 50%;
margin-left: -4px;
margin-top: -4px;
width: 8px;
height: 8px;
background: #bbb;
border-radius: 50%;
}
.posts-collapse .post {
margin: 30px 0;
}
.posts-collapse .post-header {
position: relative;
transition-duration: 0.2s;
transition-timing-function: ease-in-out;
transition-delay: 0s;
transition-property: border;
border-bottom: 1px dashed #ccc;
}
.posts-collapse .post-header::before {
content: " ";
position: absolute;
left: 0;
top: 12px;
width: 6px;
height: 6px;
margin-left: -4px;
background: #bbb;
border-radius: 50%;
border: 1px solid #fff;
transition-duration: 0.2s;
transition-timing-function: ease-in-out;
transition-delay: 0s;
transition-property: background;
}
.posts-collapse .post-header:hover {
border-bottom-color: #666;
}
.posts-collapse .post-header:hover::before {
background: #222;
}
.posts-collapse .post-meta {
position: absolute;
font-size: 12px;
left: 20px;
top: 5px;
}
.posts-collapse .post-comments-count {
display: none;
}
.posts-collapse .post-title {
margin-left: 60px;
font-size: 16px;
font-weight: normal;
font-family: Lato, "PingFang SC", "Microsoft YaHei", sans-serif;
line-height: inherit;
}
.posts-collapse .post-title::after {
margin-left: 3px;
opacity: 0.6;
}
.posts-collapse .post-title a {
color: #666;
border-bottom: none;
}
.page-home .post-type-quote .post-header,
.page-post-detail .post-type-quote .post-header,
.page-home .post-type-quote .post-tags,
.page-post-detail .post-type-quote .post-tags {
display: none;
}
.
@media (max-width: 767px) {
.pagination {
border-top: none;
}
.pagination .prev,
.pagination .next,
.pagination .page-number {
margin-bottom: 10px;
border-top: 0;
border-bottom: 1px solid #eee;
}
.pagination .prev:hover,
.pagination .next:hover,
.pagination .page-number:hover {
border-bottom-color: #222;
}
}
.tag-cloud {
text-align: center;
}
.tag-cloud a {
display: inline-block;
margin: 10px;
}
.post-gallery {
display: table;
table-layout: fixed;
width: 100%;
border-collapse: separate;
}
.post-gallery-row {
display: table-row;
}
.post-gallery .post-gallery-img {
display: table-cell;
text-align: center;
vertical-align: middle;
border: none;
}
.post-gallery .post-gallery-img img {
max-width: 100%;
max-height: 100%;
border: none;
}
.fancybox-close,
.fancybox-close:hover {
border: none;
}
.post .group-picture img {
box-sizing: border-box;
padding: 0 3px;
border: none;
}
.post .group-picture-row {
overflow: hidden;
margin-top: 6px;
}
.post .group-picture-row:first-child {
margin-top: 0;
}
.post .group-picture-column {
float: left;
}
.page-post-detail .post-body .group-picture-column {
float: none;
margin-top: 10px;
width: auto !important;
}
.page-post-detail .post-body .group-picture-column img {
margin: 0 auto;
}
.page-archive .group-picture-container {
overflow: hidden;
}
.page-archive .group-picture-row {
float: left;
}
.page-archive .group-picture-row:first-child {
margin-top: 6px;
}
.page-archive .group-picture-column {
max-width: 150px;
max-height: 150px;
}
.back-to-top {
position: fixed;
bottom: 19px;
right: 50px;
z-index: 1050;
width: 15px;
height: 13px;
padding: 5px;
background: #222;
color: #fff;
cursor: pointer;
-webkit-transform: translateZ(0);
}
@media (max-width: 767px) {
.back-to-top {
display: none;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.back-to-top {
display: none;
}
}
.back-to-top:before {
display: block;
content: " ";
margin-top: 2px;
width: 0;
height: 0;
border-width: 0 7px 8px 7px;
border-color: transparent transparent #fff transparent;
border-style: solid;
}
.theme-next #ds-thread #ds-reset {
color: #555;
}
.theme-next #ds-thread #ds-reset .ds-replybox {
margin-bottom: 30px;
}
.theme-next #ds-thread #ds-reset .ds-replybox .ds-avatar,
.theme-next #ds-reset .ds-avatar img {
box-shadow: none;
}
.theme-next #ds-thread #ds-reset .ds-textarea-wrapper {
border-color: #c7d4e1;
background: none;
border-top-right-radius: 3px;
border-top-left-radius: 3px;
}
.theme-next #ds-thread #ds-reset .ds-textarea-wrapper textarea {
height: 60px;
}
.theme-next #ds-reset .ds-rounded-top {
border-radius: 0;
}
.theme-next #ds-thread #ds-reset .ds-post-toolbar {
box-sizing: border-box;
border: 1px solid #c7d4e1;
background: #f6f8fa;
}
.theme-next #ds-thread #ds-reset .ds-post-options {
height: 40px;
border: none;
background: none;
}
.theme-next #ds-thread #ds-reset .ds-toolbar-buttons {
top: 11px;
}
.theme-next #ds-thread #ds-reset .ds-sync {
top: 5px;
}
.theme-next #ds-thread #ds-reset .ds-post-button {
top: 4px;
right: 5px;
width: 90px;
height: 30px;
border: 1px solid #c5ced7;
border-radius: 3px;
background-image: linear-gradient(#fbfbfc, #f5f7f9);
color: #60676d;
}
.theme-next #ds-thread #ds-reset .ds-post-button:hover {
background-position: 0 -30px;
color: #60676d;
}
.theme-next #ds-thread #ds-reset .ds-comments-info {
padding: 10px 0;
}
.theme-next #ds-thread #ds-reset .ds-sort {
display: none;
}
.theme-next #ds-thread #ds-reset li.ds-tab a.ds-current {
border: none;
background: #f6f8fa;
color: #60676d;
}
.theme-next #ds-thread #ds-reset li.ds-tab a.ds-current:hover {
background-color: #e9f0f7;
color: #60676d;
}
.theme-next #ds-thread #ds-reset li.ds-tab a {
border-radius: 2px;
padding: 5px;
}
.theme-next #ds-thread #ds-reset .ds-login-buttons p {
color: #999;
line-height: 36px;
}
.theme-next #ds-thread #ds-reset .ds-login-buttons .ds-service-list li {
height: 28px;
}
.theme-next #ds-thread #ds-reset .ds-service-list a {
background: none;
padding: 5px;
border: 1px solid;
border-radius: 3px;
text-align: center;
}
.theme-next #ds-thread #ds-reset .ds-service-list a:hover {
color: #fff;
background: #666;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-weibo {
color: #fc9b00;
border-color: #fc9b00;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-weibo:hover {
background: #fc9b00;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-qq {
color: #60a3ec;
border-color: #60a3ec;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-qq:hover {
background: #60a3ec;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-renren {
color: #2e7ac4;
border-color: #2e7ac4;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-renren:hover {
background: #2e7ac4;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-douban {
color: #37994c;
border-color: #37994c;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-douban:hover {
background: #37994c;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-kaixin {
color: #fef20d;
border-color: #fef20d;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-kaixin:hover {
background: #fef20d;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-netease {
color: #f00;
border-color: #f00;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-netease:hover {
background: #f00;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-sohu {
color: #ffcb05;
border-color: #ffcb05;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-sohu:hover {
background: #ffcb05;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-baidu {
color: #2831e0;
border-color: #2831e0;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-baidu:hover {
background: #2831e0;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-google {
color: #166bec;
border-color: #166bec;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-google:hover {
background: #166bec;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-weixin {
color: #00ce0d;
border-color: #00ce0d;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-weixin:hover {
background: #00ce0d;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-more-services {
border: none;
}
.theme-next #ds-thread #ds-reset .ds-service-list .ds-more-services:hover {
background: none;
}
.theme-next .this_ua {
background-color: #ccc !important;
border-radius: 4px;
padding: 0 5px !important;
margin: 1px 1px !important;
border: 1px solid #bbb !important;
color: #fff;
display: inline-block !important;
}
.theme-next .this_ua.admin {
background-color: #d9534f !important;
border-color: #d9534f !important;
}
.theme-next .this_ua.platform.iOS,
.theme-next .this_ua.platform.Mac,
.theme-next .this_ua.platform.Windows {
background-color: #39b3d7 !important;
border-color: #46b8da !important;
}
.theme-next .this_ua.platform.Linux {
background-color: #3a3a3a !important;
border-color: #1f1f1f !important;
}
.theme-next .this_ua.platform.Android {
background-color: #00c47d !important;
border-color: #01b171 !important;
}
.theme-next .this_ua.browser.Mobile,
.theme-next .this_ua.browser.Chrome {
background-color: #5cb85c !important;
border-color: #4cae4c !important;
}
.theme-next .this_ua.browser.Firefox {
background-color: #f0ad4e !important;
border-color: #eea236 !important;
}
.theme-next .this_ua.browser.Maxthon,
.theme-next .this_ua.browser.IE {
background-color: #428bca !important;
border-color: #357ebd !important;
}
.theme-next .this_ua.browser.baidu,
.theme-next .this_ua.browser.UCBrowser,
.theme-next .this_ua.browser.Opera {
background-color: #d9534f !important;
border-color: #d43f3a !important;
}
.theme-next .this_ua.browser.Android,
.theme-next .this_ua.browser.QQBrowser {
background-color: #78ace9 !important;
border-color: #4cae4c !important;
}
.post-spread {
margin-top: 20px;
text-align: center;
}
.jiathis_style {
display: inline-block;
}
.jiathis_style a {
border: none;
}
.use-motion .post {
opacity: 0;
}
.page-archive .archive-page-counter {
position: relative;
top: 3px;
left: 20px;
}
@media (max-width: 767px) {
.page-archive .archive-page-counter {
top: 5px;
}
}
.page-archive .posts-collapse {
position: relative;
}
.page-archive .posts-collapse::after {
top: 20px;
left: 0;
margin-left: -2px;
width: 4px;
height: 100%;
background: #f5f5f5;
z-index: -1;
}
.page-archive .posts-collapse .archive-move-on {
position: absolute;
top: 11px;
left: 0;
margin-left: -6px;
width: 10px;
height: 10px;
opacity: 0.5;
background: #555;
border: 1px solid #fff;
border-radius: 50%;
}
.page-archive .posts-collapse::before,
.page-archive .posts-collapse::after {
content: " ";
position: absolute;
}
.page-post-detail .sidebar-toggle-line {
background: #87daff;
}
.page-post-detail .comments {
overflow: hidden;
}
.category-all-page .category-all-title {
text-align: center;
}
.category-all-page .category-all {
margin-top: 20px;
}
.category-all-page .category-list {
margin: 0;
padding: 0;
list-style: none;
}
.category-all-page .category-list-item {
display: inline-block;
margin: 10px;
}
.category-all-page .category-list-count {
color: #bbb;
}
.category-all-page .category-list-count:before {
display: inline;
content: " (";
}
.category-all-page .category-list-count:after {
display: inline;
content: ") ";
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 20px 0 10px;
}
p {
margin: 0 0 25px 0;
}
a {
border-bottom-color: #ccc;
}
hr {
margin: 20px 0;
height: 2px;
}
ul li {
list-style: circle;
}
.header {
background: #f5f5f5;
}
.header-inner {
margin-bottom: 80px;
padding: 40px 0;
}
.header-inner:before,
.header-inner:after {
content: " ";
display: table;
}
.header-inner:after {
clear: both;
}
@media (max-width: 767px) {
.header-inner {
margin-bottom: 50px;
padding: 10px;
}
}
.site-meta {
float: left;
margin-left: -20px;
}
@media (max-width: 767px) {
.site-meta {
margin-left: 10px;
}
}
.site-meta .brand {
padding: 2px 1px;
background: none;
}
@media (max-width: 767px) {
.site-meta .brand {
display: block;
}
}
.site-meta .logo {
display: none;
}
.site-meta .site-title {
font-size: 22px;
font-weight: bolder;
}
@media (max-width: 767px) {
.site-meta .site-title {
line-height: 34px;
}
}
.logo-line-before,
.logo-line-after {
display: block;
overflow: hidden;
margin: 0 auto;
width: 75%;
}
@media (max-width: 767px) {
.logo-line-before,
.logo-line-after {
display: none;
}
}
.logo-line-before i,
.logo-line-after i {
position: relative;
display: block;
height: 2px;
background: #222;
}
@media (max-width: 767px) {
.logo-line-before i,
.logo-line-after i {
height: 3px;
}
}
.use-motion .logo-line-before i {
left: -100%;
}
.use-motion .logo-line-after i {
right: -100%;
}
.site-subtitle {
display: none;
}
.site-nav-toggle {
position: static;
float: right;
}
.menu {
float: right;
margin: 8px 0 0 20px;
padding: 0 20px;
}
@media (max-width: 767px) {
.menu {
margin: 0;
padding: 0;
}
}
.menu br {
display: none;
}
.menu .menu-item {
margin: 0;
}
@media (max-width: 767px) {
.menu .menu-item {
display: block;
}
}
.menu .menu-item a {
padding: 5px 10px;
background: none;
border: none;
transition-property: background;
}
@media (max-width: 767px) {
.menu .menu-item a {
text-align: left;
}
}
.menu .menu-item a:hover {
background: #e1e1e1;
}
.menu a::before {
display: none;
}
@media (max-width: 767px) {
.menu a::before {
display: block;
}
}
@media (max-width: 767px) {
.menu {
float: none;
}
}
.menu-left {
float: left;
}
@media (max-width: 767px) {
.menu-left {
float: none;
}
}
.menu-item-icon {
display: none;
}
.posts-expand {
padding-top: 0;
}
.posts-expand .post-title,
.posts-expand .post-meta {
text-align: left;
}
@media (max-width: 767px) {
.posts-expand .post-title,
.posts-expand .post-meta {
text-align: center;
}
}
.posts-expand .post-eof {
display: none;
}
.posts-expand .post {
margin-top: 120px;
}
.posts-expand .post:first-child {
margin-top: 0;
}
.posts-expand .post-meta {
margin-top: 5px;
margin-bottom: 20px;
}
.posts-expand .post-title {
position: relative;
font-size: 26px;
font-weight: 400;
}
@media (max-width: 767px) {
.posts-expand .post-title {
font-size: 20px;
}
}
@media (min-width: 1600px) {
.posts-expand .post-title {
font-size: 26px;
}
}
.posts-expand .post-title:hover:before {
background: #222;
}
.posts-expand .post-body img {
margin: 0;
}
.posts-expand .post-tags {
text-align: left;
}
.posts-expand .post-tags a {
padding: 1px 5px;
background: #f5f5f5;
border-bottom: none;
}
.posts-expand .post-tags a:hover {
background: #ccc;
}
.posts-expand .post-nav {
margin-top: 40px;
}
.post-more-link {
margin-top: 20px;
text-align: left;
}
.post-more-link a {
padding: 0;
font-size: 14px;
color: #666;
background: none;
border: none;
border-bottom: 2px solid #666;
transition-property: border;
}
@media (max-width: 767px) {
.post-more-link a {
font-size: 12px;
}
}
@media (min-width: 1600px) {
.post-more-link a {
font-size: 16px;
}
}
.post-more-link a:hover {
border-bottom-color: #222;
}
.btn {
padding: 0 10px;
border-width: 2px;
border-radius: 0;
}
.headband {
display: none;
}
.site-search {
float: right;
margin-top: 8px;
}
@media (max-width: 767px) {
.site-search {
float: none;
padding: 0 10px;
}
}
.site-search input {
padding: 3px;
border: none;
padding-left: 18px;
border-radius: 0;
width: 140px;
background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjwhRE9DVFlQRSBzdmcgIFBVQkxJQyAnLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4nICAnaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkJz48c3ZnIGhlaWdodD0iMTZweCIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE2IDE2OyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNnB4IiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48cGF0aCBkPSJNMTUuNywxNC4zbC0zLjEwNS0zLjEwNUMxMy40NzMsMTAuMDI0LDE0LDguNTc2LDE0LDdjMC0zLjg2Ni0zLjEzNC03LTctN1MwLDMuMTM0LDAsN3MzLjEzNCw3LDcsNyAgYzEuNTc2LDAsMy4wMjQtMC41MjcsNC4xOTQtMS40MDVMMTQuMywxNS43YzAuMTg0LDAuMTg0LDAuMzgsMC4zLDAuNywwLjNjMC41NTMsMCwxLTAuNDQ3LDEtMUMxNiwxNC43ODEsMTUuOTQ2LDE0LjU0NiwxNS43LDE0LjN6ICAgTTIsN2MwLTIuNzYyLDIuMjM4LTUsNS01czUsMi4yMzgsNSw1cy0yLjIzOCw1LTUsNVMyLDkuNzYyLDIsN3oiLz48L3N2Zz4=") no-repeat 0 50%;
background-size: 12px 12px;
outline: none;
border-bottom: 1px solid #999;
opacity: 0.5;
}
.site-search input:focus {
opacity: 1;
}
.page-post-detail .post-title,
.page-post-detail .post-meta {
text-align: center;
}
.page-post-detail .post-title:before {
display: none;
}
.page-post-detail .post-meta {
margin-bottom: 60px;
}
.pagination {
margin: 120px 0 0;
text-align: left;
}
@media (max-width: 767px) {
.pagination {
margin: 80px 10px 0;
text-align: center;
}
}
.footer {
margin-top: 80px;
padding: 10px 0;
background: #f5f5f5;
color: #666;
}
.footer-inner {
margin: 0 auto;
text-align: left;
}
@media (max-width: 767px) {
.footer-inner {
text-align: center;
}
}
\ No newline at end of file
...@@ -664,11 +664,13 @@ img { ...@@ -664,11 +664,13 @@ img {
text-align: center; text-align: center;
} }
.post-body {
word-wrap: break-word;
}
.post-body img { .post-body img {
box-sizing: border-box; box-sizing: border-box;
margin: auto; margin: auto;
padding: 3px;
border: 1px solid #ddd;
} }
.posts-expand .post-tags { .posts-expand .post-tags {
margin-top: 40px; margin-top: 40px;
...@@ -734,6 +736,7 @@ ul.comments .avatar-48 { ...@@ -734,6 +736,7 @@ ul.comments .avatar-48 {
ul.comments .comment-body { ul.comments .comment-body {
margin: 8px 0 0 60px; margin: 8px 0 0 60px;
min-height: 50px;
} }
ul.comments li.comment-body-ref { ul.comments li.comment-body-ref {
...@@ -925,7 +928,33 @@ ul.comments .comment-meta time { ...@@ -925,7 +928,33 @@ ul.comments .comment-meta time {
/* end archives */ /* end archives */
/* start responsive */ /* start responsive */
@media (max-width: 700px) {
.b3-solo-list {
margin: 0;
padding: 0;
}
.page-archive .posts-collapse .archive-move-on {
margin-left: 5px;
}
.posts-collapse {
margin-left: 10px;
}
}
@media (max-width: 500px) { @media (max-width: 500px) {
pre {
word-wrap: break-word;
word-break: break-all;
white-space: normal;
}
.page-archive .archive-page-counter {
margin-right: 10px;
}
.site-nav-toggle { .site-nav-toggle {
display: block; display: block;
margin-top: 16px; margin-top: 16px;
......
@charset "utf-8";a,body{color:#555}.post-body,ul.comments li{word-wrap:break-word}html{background-color:#f5f5f5}body{margin:0;font-family:Lato,"PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;background:#fff}a{text-decoration:none;border-bottom:1px solid #999}a:active,a:hover{outline:0}a:hover{color:#222;border-bottom-color:#222}hr{margin:40px 0;height:3px;border:none;background-color:#ddd;background-image:repeating-linear-gradient(-45deg,#fff,#fff 4px,transparent 4px,transparent 8px)}blockquote{padding:0 15px;color:#666;border-left:4px solid #ddd}img{max-width:100%;height:auto}.fn-clear:after,.fn-clear:before{display:table;content:"";line-height:0}.fn-clear:after{clear:both;line-height:0}.fn-left{float:left}.fn-right{float:right}.fn-none{display:none}@font-face{font-family:icomoon;src:url(fonts/icomoon.eot?a0psdo);src:url(fonts/icomoon.eot?a0psdo#iefix) format('embedded-opentype'),url(fonts/icomoon.ttf?a0psdo) format('truetype'),url(fonts/icomoon.woff?a0psdo) format('woff'),url(fonts/icomoon.svg?a0psdo#icomoon) format('svg');font-weight:400;font-style:normal}[class*=" icon-"],[class^=icon-]{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-register:before{content:"\e973"}.icon-setting:before{content:"\e994"}.icon-login:before{content:"\ea13"}.icon-logout:before{content:"\ea14"}.icon-rss:before{content:"\e901"}.form{width:100%;margin-top:50px}.form button,.form input,.form textarea{border:1px solid #CCC;background-color:#FAFAFA;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.075) inset;padding:7px 8px;width:100%;box-sizing:border-box;outline:0}.form button{width:auto}.form input:focus,.form textarea:focus{background-color:#FFF;box-shadow:0 1px 2px rgba(0,0,0,.075) inset,0 0 5px rgba(81,167,232,.5);border:1px solid #51A7E8}.error-msg{color:#9EABB3;margin-right:10px}.em00,.em01,.em02,.em03,.em04,.em05,.em06,.em07,.em08,.em09,.em10,.em11,.em12,.em13,.em14{cursor:pointer;background-image:url(../images/emotions/emotions-ease.png);float:left;height:24px;margin-right:5px;width:24px;transition:all .2s ease-out;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out}.menu .menu-item a,.pagination .next,.pagination .page-number,.post-title-link::before,.posts-collapse .post-header,.posts-collapse .post-header::before,.sidebar-toggle-line{transition-duration:.2s;transition-timing-function:ease-in-out;transition-delay:0s}#emotions span:hover{transform:scale(1.2) rotate(360deg);-webkit-transform:scale(1.2) rotate(360deg);-moz-transform:scale(1.2) rotate(360deg)}.em01{background-position:-24px 0}.em02{background-position:-48px 0}.em03{background-position:-72px 0}.em04{background-position:-96px 0}.em05{background-position:0 -24px}.em06{background-position:-24px -24px}.em07{background-position:-48px -24px}.em08{background-position:-72px -24px}.em09{background-position:-96px -24px}.em10{background-position:0 -48px}.em11{background-position:-24px -48px}.em12{background-position:-48px -48px}.em13{background-position:-72px -48px}.em14{background-position:-96px -48px}.wrapper{width:700px;margin:0 auto}.main{position:relative;top:-50px;opacity:0}.header{background:#f5f5f5;margin-bottom:80px;padding:40px 45px}.logo-wrap{float:left;margin-left:-20px;overflow:hidden;top:0;opacity:0}.logo-line-after,.logo-line-before{display:block;overflow:hidden;margin:0 auto;width:75%}.logo-line-after i,.logo-line-before i{position:relative;display:block;height:2px;background:#222;left:-100%}.logo-line-after i{left:auto;right:-100%}.logo-wrap .site-title{font-size:22px;font-weight:bolder;opacity:0;top:-10px;position:relative}.logo-wrap>a{position:relative;display:inline-block;padding:2px 1px;color:#222;line-height:2;border-bottom:none;font-family:Lato,"PingFang SC","Microsoft YaHei",sans-serif}.site-nav-toggle{display:none}.menu .menu-item,.sidebar-toggle-line{display:inline-block}.menu{float:left;margin:5px 0 0 20px;padding:0 20px;opacity:0}.menu .menu-item a{padding:5px 10px;border:none;transition-property:background}.menu .menu-item a:hover{background:#e1e1e1}.site-search{float:right;margin-top:15px}.site-search input{padding:3px 3px 3px 18px;border:none;border-radius:0;width:140px;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjwhRE9DVFlQRSBzdmcgIFBVQkxJQyAnLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4nICAnaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkJz48c3ZnIGhlaWdodD0iMTZweCIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE2IDE2OyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNnB4IiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48cGF0aCBkPSJNMTUuNywxNC4zbC0zLjEwNS0zLjEwNUMxMy40NzMsMTAuMDI0LDE0LDguNTc2LDE0LDdjMC0zLjg2Ni0zLjEzNC03LTctN1MwLDMuMTM0LDAsN3MzLjEzNCw3LDcsNyAgYzEuNTc2LDAsMy4wMjQtMC41MjcsNC4xOTQtMS40MDVMMTQuMywxNS43YzAuMTg0LDAuMTg0LDAuMzgsMC4zLDAuNywwLjNjMC41NTMsMCwxLTAuNDQ3LDEtMUMxNiwxNC43ODEsMTUuOTQ2LDE0LjU0NiwxNS43LDE0LjN6ICAgTTIsN2MwLTIuNzYyLDIuMjM4LTUsNS01czUsMi4yMzgsNSw1cy0yLjIzOCw1LTUsNVMyLDkuNzYyLDIsN3oiLz48L3N2Zz4=) 0 50% no-repeat;background-size:12px 12px;outline:0;border-bottom:1px solid #999;opacity:.5}.site-search input:focus{opacity:1}.footer{margin-top:80px;padding:10px 20px;background:#f5f5f5;color:#666;line-height:2}.back-to-top,.sidebar-toggle{right:50px;z-index:1050;padding:5px;cursor:pointer}.sidebar-toggle{position:fixed;bottom:45px;width:15px;height:15px;background:#222;line-height:0;-webkit-transform:translateZ(0)}.sidebar-toggle-line{position:relative;vertical-align:top;height:2px;width:100%;background:#fff;margin-top:4px}.sidebar-toggle-line:first-child{margin-top:0}.sidebar-toggle:hover .sidebar-toggle-line-first{width:50%;transform:rotateZ(-45deg);top:3px}.sidebar-toggle:hover .sidebar-toggle-line-middle{width:90%}.sidebar-toggle:hover .sidebar-toggle-line-last{width:50%;transform:rotateZ(45deg);top:-3px}.sidebar-toggle.sidebar-active .sidebar-toggle-line-first{width:100%;transform:rotateZ(-45deg);top:6px}.sidebar-toggle.sidebar-active .sidebar-toggle-line-middle{opacity:0}.sidebar-toggle.sidebar-active .sidebar-toggle-line-last{width:100%;transform:rotateZ(45deg);top:-6px}.back-to-top,.sidebar{position:fixed;background:#222;-webkit-transform:translateZ(0)}.back-to-top{bottom:19px;width:15px;height:13px;color:#fff}.back-to-top:before{display:block;content:" ";margin-top:2px;width:0;height:0;border-width:0 7px 8px;border-color:transparent transparent #fff;border-style:solid}.sidebar{width:320px;right:-320px;top:0;bottom:0;z-index:1040;box-shadow:inset 0 2px 6px #000;padding:20px 10px;color:#999;text-align:center;box-sizing:border-box}.sidebar a{color:#999;border-bottom-color:#555}.sidebar a:hover{color:#eee}.sidebar .site-author-image{display:block;margin:20px auto 0;max-width:96px;height:auto;border:2px solid #333;padding:2px}.sidebar .site-author-name{margin:5px 0 0;color:#f5f5f5}.sidebar .site-description{margin-top:5px;font-size:14px;color:#555}.sidebar .feed-link,.sidebar .links-of-author{margin-top:20px}.sidebar .site-state-item{display:inline-block;padding:0 15px;border-left:1px solid #333}.sidebar .site-state-item:first-child{border-left:none}.sidebar .site-state-item a{border-bottom:none}.sidebar .site-state-item-count{display:block;text-align:center;font-size:18px}.sidebar .site-state-item-name{font-size:13px}.sidebar .feed-link a{display:inline-block;padding:3px 15px;color:#fc6423;border:1px solid #fc6423;border-radius:4px}.sidebar .feed-link a:hover{color:#fff;background:#fc6423}.sidebar .links-of-author a{display:inline-block;vertical-align:middle;margin-right:10px;margin-bottom:10px;border-bottom-color:#555;font-size:13px}.sidebar .links-of-author a:before{display:inline-block;vertical-align:middle;margin-right:3px;content:" ";width:4px;height:4px;border-radius:50%;background:#0dd5ff}.sidebar .b3-solo-list{margin:20px;list-style:none;text-align:left;padding:0;font-size:14px;line-height:2}.posts-expand .post-item{margin-top:120px}.posts-expand .post-item:first-child{margin-top:0}.post-title-link{display:inline-block;position:relative;color:#555;border-bottom:none;line-height:1.2;vertical-align:top;font-size:26px;font-weight:400}.post-title-link::before{content:"";position:absolute;width:100%;height:2px;bottom:0;left:0;background-color:#000;visibility:hidden;transform:scaleX(0)}.post-title-link:hover::before{visibility:visible;transform:scaleX(1)}.posts-expand .post-meta{margin:3px 0 60px;color:#999;font-size:12px}.post-more-link a{color:#666;border:none;border-bottom:2px solid #666;transition-property:border}.post-more-link a:hover{border-bottom-color:#222}.pagination{border-top:1px solid #eee;margin:120px 0 0;text-align:left}.post-header,.tag-cloud{text-align:center}.pagination .next,.pagination .page-number{display:inline-block;position:relative;top:-1px;margin:0 5px;padding:0 10px;line-height:30px;border-bottom:0;border-top:1px solid #eee;transition-property:border-color}.pagination .next:hover,.pagination .page-number:hover{border-top-color:#222}.pagination .page-number.current{color:#fff;background:#ccc;border-top-color:#ccc}.post-body img{box-sizing:border-box;margin:auto}.posts-expand .post-tags{margin-top:40px}.posts-expand .post-tags a{padding:1px 5px;background:#f5f5f5;border-bottom:none}.posts-expand .post-tags a:hover{background:#ccc}.posts-expand .post-nav{margin-top:40px;overflow:hidden;padding:10px;white-space:nowrap;border-top:1px solid #eee}.post-nav-item a:hover{color:#222;border-bottom:none}.post-nav-item a{position:relative;display:inline-block;line-height:25px;font-size:14px;color:#555;border-bottom:none;width:50%}ul.comments{padding:0;list-style:none;margin-top:50px;position:relative}ul.comments li{padding:10px;white-space:normal;position:relative;border-bottom:#EBF2F6 1px solid}ul.comments li:hover{background-color:#F7F7F7}ul.comments .avatar-48{position:absolute;box-shadow:0 0 2px #ddd;height:48px;width:48px;margin:8px 10px 0 0;border-radius:24px}ul.comments .comment-body{margin:8px 0 0 60px;min-height:50px}ul.comments li.comment-body-ref{position:absolute;z-index:10;background-color:#EBF2F6;border:1px solid #d5dbde;width:80%;left:69px}.posts-collapse .collection-title::before,.posts-collapse .post-header::before{left:0;background:#bbb;border-radius:50%;content:" "}ul.comments .comment-meta{font-family:"Open Sans","Microsoft Yahei",Helvetica;color:#9eabb3;font-size:13px}ul.comments .comment-meta a{color:#9EABB3;text-decoration:none;border-bottom-width:0}ul.comments .post-meta a:hover{text-decoration:underline}ul.comments .comment-meta time{border-left:1px solid #d5dbde;margin-left:8px;padding-left:12px}#captcha,#captchaReply{height:27px;vertical-align:inherit}.tag-cloud ul.tag-cloud-tags{padding-left:0}#tags li{list-style:none;display:inline-block;margin:10px}#tags .tags1{font-size:12px;color:#CCC}#tags .tags2{font-size:16px;color:#999}#tags .tags3{font-size:21px;color:#6f6f6f}#tags .tags4{font-size:24px;color:#333}#tags .tags5{font-size:30px;color:#111}.posts-collapse .collection-title::before{position:absolute;top:50%;margin-left:-4px;margin-top:-4px;width:8px;height:8px}.posts-collapse .collection-title{position:relative;margin:60px 0}.posts-collapse .collection-title h2{margin-left:20px}.posts-collapse .collection-title small{color:#bbb}.posts-collapse .post-header::before{position:absolute;top:12px;width:6px;height:6px;margin-left:-4px;border:1px solid #fff;transition-property:background}.posts-collapse .post-header{position:relative;transition-property:border;border-bottom:1px dashed #ccc;text-align:left}.posts-collapse .post-header:hover{border-bottom-color:#666}.posts-collapse .post-header:hover::before{background:#222}.posts-collapse .post-time{position:absolute;font-size:12px;left:20px;top:8px}.posts-collapse .post-title{margin-left:70px;font-size:16px;font-weight:400;font-family:Lato,"PingFang SC","Microsoft YaHei",sans-serif;line-height:inherit;text-decoration:none;border-bottom:0;color:#666}.page-archive .archive-page-counter{position:relative;top:7px;left:20px;margin-bottom:50px;display:block}.page-archive .posts-collapse .archive-move-on{position:absolute;top:11px;left:0;margin-left:-6px;width:10px;height:10px;opacity:.5;background:#555;border:1px solid #fff;border-radius:50%}.page-archive .post-title{margin-left:20px}.page-archive .posts-collapse .post-header::before{top:8px}.page-archive .posts-collapse::after{top:20px;left:0;margin-left:-2px;width:4px;height:100%;background:#f5f5f5;z-index:-1;content:" ";position:absolute}@media (max-width:700px){.b3-solo-list{margin:0;padding:0}.page-archive .posts-collapse .archive-move-on{margin-left:5px}.posts-collapse{margin-left:10px}}@media (max-width:500px){pre{word-wrap:break-word;word-break:break-all;white-space:normal}.page-archive .archive-page-counter{margin-right:10px}.site-nav-toggle{display:block;margin-top:16px}.back-to-top,.header-line,.logo-line-after,.logo-line-before,.menu,.sidebar-toggle,.site-search{display:none}.header{margin-bottom:50px;padding:5px 0}.header-line{position:relative;top:52px;height:1px;width:100%;background-color:#ddd}.btn-bar,.menu .menu-item{display:block}.header .wrapper{padding:0 10px}.logo-wrap .site-title{margin-left:10px}.wrapper{width:auto;margin:0 10px}.btn-bar{width:22px;height:2px;background:#555;border-radius:1px}.btn-bar+.btn-bar{margin-top:4px}.menu{width:100%;margin:0 0 0 -20px;padding:0 5px;line-height:26px}.footer{text-align:center}}
\ No newline at end of file
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
</span> </span>
<a class="fn-right" href="${servePath}${comment.commentSharpURL}">${viewLabel}»</a> <a class="fn-right" href="${servePath}${comment.commentSharpURL}">${viewLabel}»</a>
</div> </div>
<div class="comment-content"> <div class="comment-content post-body article-body">
${comment.commentContent} ${comment.commentContent}
</div> </div>
</div> </div>
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
* @fileoverview util and every page should be used. * @fileoverview util and every page should be used.
* *
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a> * @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 0.1.0.0, Jan 11, 2016 * @version 0.1.1.0, Jul 30, 2016
*/ */
/** /**
...@@ -79,7 +79,7 @@ var NexT = { ...@@ -79,7 +79,7 @@ var NexT = {
}); });
}, },
initArticle: function () { initArticle: function () {
if ($('.b3-solo-list li').length > 0) { if ($('.b3-solo-list li').length > 0 && $(window).width() > 700) {
$('.sidebar').html($('.b3-solo-list')); $('.sidebar').html($('.b3-solo-list'));
$('.sidebar-toggle').click(); $('.sidebar-toggle').click();
} }
......
var NexT={init:function(){$(".sidebar-toggle").click(function(){var i=$(".sidebar");$(this).hasClass("sidebar-active")?($(this).removeClass("sidebar-active"),$("body").animate({"padding-right":0}),i.animate({right:-320})):($(this).addClass("sidebar-active"),$("body").animate({"padding-right":320}),i.animate({right:0}))}),$(".site-nav-toggle").click(function(){$(".site-nav").slideToggle()}),$(document).ready(function(){setTimeout(function(){$(".logo-wrap").css("opacity",1),$(".logo-line-before i").animate({left:"0"},function(){$(".site-title").css("opacity",1).animate({top:0},function(){$(".menu").css("opacity",1).animate({"margin-top":"15px"}),$(".main").css("opacity",1).animate({top:"0"})})}),$(".logo-line-after i").animate({right:"0"})},500)})},initArticle:function(){$(".b3-solo-list li").length>0&&$(window).width()>700&&($(".sidebar").html($(".b3-solo-list")),$(".sidebar-toggle").click())}};NexT.init();
\ No newline at end of file
...@@ -16,10 +16,16 @@ ...@@ -16,10 +16,16 @@
# #
# Description: B3log Solo language configurations(en_US). # Description: B3log Solo language configurations(en_US).
# Version: 1.0.0.1, Jun 19, 2015 # Version: 1.0.0.2, Jun 30, 2015
# Author: Liyuan Li # Author: Liyuan Li
# #
viewsLabel=Heat
cmtLabel\uff1d
postTimeLabel=Post At
readLabel=Read More
fightLabel=articles, fighting!
ohLabel=Oh
subscribeLabel=Subscribe subscribeLabel=Subscribe
dynamicLabel=Dynamic dynamicLabel=Dynamic
adminConsoleLabel=Admin adminConsoleLabel=Admin
......
...@@ -16,17 +16,23 @@ ...@@ -16,17 +16,23 @@
# #
# Description: B3log Solo default language configurations(zh_CN). # Description: B3log Solo default language configurations(zh_CN).
# Version: 0.1.0.0, Jun 29, 2016 # Version: 1.0.0.1, Jul 30, 2016
# Author: Liyuan Li # Author: Liyuan Li
# #
viewsLabel=\u70ed\u5ea6
cmtLabel=\u6761\u8bc4\u8bba
postTimeLabel=\u53d1\u8868\u4e8e
readLabel=\u9605\u8bfb\u5168\u6587
fightLabel=\u7bc7\u65e5\u5fd7\u3002 \u7ee7\u7eed\u52aa\u529b\u3002
ohLabel=\u55ef
searchLabel=\u641c\u7d22 searchLabel=\u641c\u7d22
subscribeLabel=\u8ba2\u9605 subscribeLabel=\u8ba2\u9605
dynamicLabel=\u52a8\u6001 dynamicLabel=\u52a8\u6001
adminConsoleLabel=\u540e\u53f0\u7ba1\u7406 adminConsoleLabel=\u540e\u53f0\u7ba1\u7406
adminIndexLabel=\u540e\u53f0\u9996\u9875 adminIndexLabel=\u540e\u53f0\u9996\u9875
postArticleLabel=\u53d1\u5e03\u6587\u7ae0 postArticleLabel=\u53d1\u5e03\u65e5\u5fd7
articleListLabel=\u6587\u7ae0\u7ba1\u7406 articleListLabel=\u65e5\u5fd7\u7ba1\u7406
commentListLabel=\u8bc4\u8bba\u7ba1\u7406 commentListLabel=\u8bc4\u8bba\u7ba1\u7406
draftListLabel=\u8349\u7a3f\u5939 draftListLabel=\u8349\u7a3f\u5939
userManageLabel=\u7528\u6237\u7ba1\u7406 userManageLabel=\u7528\u6237\u7ba1\u7406
...@@ -53,11 +59,11 @@ initLabel=\u521d\u59cb\u5316 ...@@ -53,11 +59,11 @@ initLabel=\u521d\u59cb\u5316
popTagsLabel=\u5206\u7c7b\u6807\u7b7e popTagsLabel=\u5206\u7c7b\u6807\u7b7e
tag1Label=\u6807\u7b7e\uff1a tag1Label=\u6807\u7b7e\uff1a
tags1Label=\u6807\u7b7e\uff1a tags1Label=\u6807\u7b7e\uff1a
recentArticlesLabel=\u6700\u65b0\u6587\u7ae0 recentArticlesLabel=\u6700\u65b0\u65e5\u5fd7
recentCommentsLabel=\u6700\u65b0\u8bc4\u8bba recentCommentsLabel=\u6700\u65b0\u8bc4\u8bba
postCommentsLabel=\u53d1\u8868\u8bc4\u8bba postCommentsLabel=\u53d1\u8868\u8bc4\u8bba
mostCommentArticlesLabel=\u8bc4\u8bba\u6700\u591a\u7684\u6587\u7ae0 mostCommentArticlesLabel=\u8bc4\u8bba\u6700\u591a\u7684\u65e5\u5fd7
mostViewCountArticlesLabel=\u8bbf\u95ee\u6700\u591a\u7684\u6587\u7ae0 mostViewCountArticlesLabel=\u8bbf\u95ee\u6700\u591a\u7684\u65e5\u5fd7
em00Label=\u5fae\u7b11 em00Label=\u5fae\u7b11
em01Label=\u5927\u7b11 em01Label=\u5927\u7b11
em02Label=\u9ad8\u5174 em02Label=\u9ad8\u5174
...@@ -121,7 +127,7 @@ statisticLabel=\u535a\u5ba2\u7edf\u8ba1 ...@@ -121,7 +127,7 @@ statisticLabel=\u535a\u5ba2\u7edf\u8ba1
viewLabel=\u6d4f\u89c8 viewLabel=\u6d4f\u89c8
countLabel=\u7bc7 countLabel=\u7bc7
viewCount1Label=\u6d4f\u89c8\u6b21\u6570\uff1a viewCount1Label=\u6d4f\u89c8\u6b21\u6570\uff1a
articleCount1Label=\u6587\u7ae0\u603b\u6570\uff1a articleCount1Label=\u65e5\u5fd7\u603b\u6570\uff1a
commentCountLabel=\u8bc4\u8bba\u6570 commentCountLabel=\u8bc4\u8bba\u6570
commentCount1Label=\u8bc4\u8bba\u603b\u6570\uff1a commentCount1Label=\u8bc4\u8bba\u603b\u6570\uff1a
commentEmotions1Label=\u8868\u60c5\uff1a commentEmotions1Label=\u8868\u60c5\uff1a
...@@ -135,12 +141,12 @@ commentURLLabel=URL ...@@ -135,12 +141,12 @@ commentURLLabel=URL
commentContent1Label=\u8bc4\u8bba\u5185\u5bb9\uff1a commentContent1Label=\u8bc4\u8bba\u5185\u5bb9\uff1a
commentContentLabel=\u8bc4\u8bba\u5185\u5bb9 commentContentLabel=\u8bc4\u8bba\u5185\u5bb9
getDateLabel=\u83b7\u53d6\u65e5\u671f getDateLabel=\u83b7\u53d6\u65e5\u671f
getArticleLabel=\u83b7\u53d6\u6587\u7ae0 getArticleLabel=\u83b7\u53d6\u65e5\u5fd7
selectDateLabel=\u9009\u62e9\u65e5\u671f selectDateLabel=\u9009\u62e9\u65e5\u671f
selectDate1Label=\u9009\u62e9\u65e5\u671f\uff1a selectDate1Label=\u9009\u62e9\u65e5\u671f\uff1a
importLabel=\u5bfc\u5165 importLabel=\u5bfc\u5165
chooseBlog1Label=\u8bf7\u9009\u62e9\u9700\u8981\u7ba1\u7406\u7684\u535a\u5ba2\uff1a chooseBlog1Label=\u8bf7\u9009\u62e9\u9700\u8981\u7ba1\u7406\u7684\u535a\u5ba2\uff1a
blogArticleImportLabel=\u6587\u7ae0\u5bfc\u5165 blogArticleImportLabel=\u65e5\u5fd7\u5bfc\u5165
blogSyncMgmtLabel=\u535a\u5ba2\u540c\u6b65\u7ba1\u7406 blogSyncMgmtLabel=\u535a\u5ba2\u540c\u6b65\u7ba1\u7406
syncMgmtLabel=\u540c\u6b65\u7ba1\u7406\u535a\u5ba2 syncMgmtLabel=\u540c\u6b65\u7ba1\u7406\u535a\u5ba2
userName1Label=\u7528\u6237\u540d\uff1a userName1Label=\u7528\u6237\u540d\uff1a
...@@ -153,15 +159,15 @@ noticeBoard1Label=\u516c\u544a\uff1a ...@@ -153,15 +159,15 @@ noticeBoard1Label=\u516c\u544a\uff1a
noticeBoardLabel=\u516c\u544a noticeBoardLabel=\u516c\u544a
htmlhead1Label=HTML head\uff1a htmlhead1Label=HTML head\uff1a
indexTagDisplayCnt1Label= \u9996\u9875\u6807\u7b7e\u663e\u793a\u6570\uff1a indexTagDisplayCnt1Label= \u9996\u9875\u6807\u7b7e\u663e\u793a\u6570\uff1a
indexRecentArticleDisplayCnt1Label=\u6700\u65b0\u6587\u7ae0\u663e\u793a\u6570\u76ee\uff1a indexRecentArticleDisplayCnt1Label=\u6700\u65b0\u65e5\u5fd7\u663e\u793a\u6570\u76ee\uff1a
indexRecentCommentDisplayCnt1Label=\u6700\u65b0\u8bc4\u8bba\u663e\u793a\u6570\u76ee\uff1a indexRecentCommentDisplayCnt1Label=\u6700\u65b0\u8bc4\u8bba\u663e\u793a\u6570\u76ee\uff1a
indexMostCommentArticleDisplayCnt1Label=\u8bc4\u8bba\u6700\u591a\u6587\u7ae0\u663e\u793a\u6570\u76ee\uff1a indexMostCommentArticleDisplayCnt1Label=\u8bc4\u8bba\u6700\u591a\u65e5\u5fd7\u663e\u793a\u6570\u76ee\uff1a
indexMostViewArticleDisplayCnt1Label=\u8bbf\u95ee\u6700\u591a\u6700\u591a\u6587\u7ae0\u663e\u793a\u6570\u76ee\uff1a indexMostViewArticleDisplayCnt1Label=\u8bbf\u95ee\u6700\u591a\u6700\u591a\u65e5\u5fd7\u663e\u793a\u6570\u76ee\uff1a
relevantArticlesDisplayCnt1Label=\u76f8\u5173\u9605\u8bfb\u663e\u793a\u6570\u76ee\uff1a relevantArticlesDisplayCnt1Label=\u76f8\u5173\u9605\u8bfb\u663e\u793a\u6570\u76ee\uff1a
randomArticlesDisplayCnt1Label=\u968f\u673a\u9605\u8bfb\u663e\u793a\u6570\u76ee\uff1a randomArticlesDisplayCnt1Label=\u968f\u673a\u9605\u8bfb\u663e\u793a\u6570\u76ee\uff1a
externalRelevantArticlesDisplayCnt1Label=\u7ad9\u5916\u76f8\u5173\u9605\u8bfb\u663e\u793a\u6570\u76ee\uff1a externalRelevantArticlesDisplayCnt1Label=\u7ad9\u5916\u76f8\u5173\u9605\u8bfb\u663e\u793a\u6570\u76ee\uff1a
windowSize1Label=\u5206\u9875\u9875\u7801\u6700\u5927\u5bbd\u5ea6\uff1a windowSize1Label=\u5206\u9875\u9875\u7801\u6700\u5927\u5bbd\u5ea6\uff1a
pageSize1Label=\u5206\u9875\u6bcf\u9875\u663e\u793a\u6587\u7ae0\u6570\uff1a pageSize1Label=\u5206\u9875\u6bcf\u9875\u663e\u793a\u65e5\u5fd7\u6570\uff1a
blogTitle1Label=\u535a\u5ba2\u6807\u9898\uff1a blogTitle1Label=\u535a\u5ba2\u6807\u9898\uff1a
blogSubtitle1Label=\u535a\u5ba2\u5b50\u6807\u9898\uff1a blogSubtitle1Label=\u535a\u5ba2\u5b50\u6807\u9898\uff1a
blogHost1Label=\u535a\u5ba2\u5730\u5740\uff1a blogHost1Label=\u535a\u5ba2\u5730\u5740\uff1a
...@@ -188,7 +194,7 @@ returnTo1Label=\u8fd4\u56de\uff1a ...@@ -188,7 +194,7 @@ returnTo1Label=\u8fd4\u56de\uff1a
tencentLabel=\u817e\u8baf tencentLabel=\u817e\u8baf
appKey1Label=App Key: appKey1Label=App Key:
appSecret1Label=App Secret: appSecret1Label=App Secret:
postToTencentMicroblogWhilePublishArticleLabel=\u53d1\u6587\u7ae0\u65f6\u540c\u6b65\u5230\u817e\u8baf\u5fae\u535a\uff1a postToTencentMicroblogWhilePublishArticleLabel=\u53d1\u65e5\u5fd7\u65f6\u540c\u6b65\u5230\u817e\u8baf\u5fae\u535a\uff1a
postToCommunityLabel=\u53d1\u5e03\u5230\u793e\u533a\uff1a postToCommunityLabel=\u53d1\u5e03\u5230\u793e\u533a\uff1a
authorizeTencentMicroblog1Label=\u70b9\u51fb\u56fe\u6807\u8fdb\u884c\u6388\u6743: authorizeTencentMicroblog1Label=\u70b9\u51fb\u56fe\u6807\u8fdb\u884c\u6388\u6743:
googleLabel=Google googleLabel=Google
...@@ -209,16 +215,16 @@ readmoreLabel=\u9605\u8bfb\u66f4\u591a\u00bb ...@@ -209,16 +215,16 @@ readmoreLabel=\u9605\u8bfb\u66f4\u591a\u00bb
readmore2Label=\u9605\u8bfb\u66f4\u591a readmore2Label=\u9605\u8bfb\u66f4\u591a
replyLabel=\u56de\u590d\u00bb replyLabel=\u56de\u590d\u00bb
homeLabel=\u9996\u9875 homeLabel=\u9996\u9875
enableArticleUpdateHint1Label=\u542f\u7528\u6587\u7ae0\u66f4\u65b0\u63d0\u793a\uff1a enableArticleUpdateHint1Label=\u542f\u7528\u65e5\u5fd7\u66f4\u65b0\u63d0\u793a\uff1a
allowVisitDraftViaPermalink1Label=\u5141\u8bb8\u901a\u8fc7\u94fe\u63a5\u8bbf\u95ee\u8349\u7a3f\uff1a allowVisitDraftViaPermalink1Label=\u5141\u8bb8\u901a\u8fc7\u94fe\u63a5\u8bbf\u95ee\u8349\u7a3f\uff1a
author1Label=\u4f5c\u8005\uff1a author1Label=\u4f5c\u8005\uff1a
authorLabel=\u4f5c\u8005 authorLabel=\u4f5c\u8005
keyOfSolo1Label=Solo Key\uff1a keyOfSolo1Label=Solo Key\uff1a
articleLabel=\u6587\u7ae0 articleLabel=\u65e5\u5fd7
tagArticlesLabel=\u6807\u7b7e\u6587\u7ae0\u5217\u8868 tagArticlesLabel=\u6807\u7b7e\u65e5\u5fd7\u5217\u8868
dateArticlesLabel=\u5b58\u6863\u6587\u7ae0\u5217\u8868 dateArticlesLabel=\u5b58\u6863\u65e5\u5fd7\u5217\u8868
authorArticlesLabel=\u4f5c\u8005\u6587\u7ae0\u5217\u8868 authorArticlesLabel=\u4f5c\u8005\u65e5\u5fd7\u5217\u8868
indexArticleLabel=\u9996\u9875\u6587\u7ae0\u5217\u8868 indexArticleLabel=\u9996\u9875\u65e5\u5fd7\u5217\u8868
allTagsLabel=\u6807\u7b7e\u5899 allTagsLabel=\u6807\u7b7e\u5899
customizedPageLabel=\u81ea\u5b9a\u4e49\u9875\u9762 customizedPageLabel=\u81ea\u5b9a\u4e49\u9875\u9762
killBrowserPageLabel=Kill Browser Page killBrowserPageLabel=Kill Browser Page
...@@ -255,7 +261,7 @@ gotoLabel=\u8df3\u8f6c ...@@ -255,7 +261,7 @@ gotoLabel=\u8df3\u8f6c
nameEmptyLabel=\u59d3\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01 nameEmptyLabel=\u59d3\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01
passwordEmptyLabel=\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a\uff01 passwordEmptyLabel=\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a\uff01
blogEmptyLabel=\u8bf7\u9009\u62e9\u535a\u5ba2\u670d\u52a1\uff01 blogEmptyLabel=\u8bf7\u9009\u62e9\u535a\u5ba2\u670d\u52a1\uff01
blogArticleEmptyLabel=\u8bf7\u9009\u62e9\u9700\u8981\u5bfc\u5165\u7684\u6587\u7ae0 blogArticleEmptyLabel=\u8bf7\u9009\u62e9\u9700\u8981\u5bfc\u5165\u7684\u65e5\u5fd7
nameTooLongLabel=\u59d3\u540d\u53ea\u80fd\u4e3a 2 \u5230 20 \u4e2a\u5b57\u7b26\uff01 nameTooLongLabel=\u59d3\u540d\u53ea\u80fd\u4e3a 2 \u5230 20 \u4e2a\u5b57\u7b26\uff01
mailCannotEmptyLabel=\u90ae\u7bb1\u4e0d\u80fd\u4e3a\u7a7a\uff01 mailCannotEmptyLabel=\u90ae\u7bb1\u4e0d\u80fd\u4e3a\u7a7a\uff01
mailInvalidLabel=\u90ae\u7bb1\u683c\u5f0f\u4e0d\u6b63\u786e\uff01 mailInvalidLabel=\u90ae\u7bb1\u683c\u5f0f\u4e0d\u6b63\u786e\uff01
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
<a class="fn-right" href="javascript:replyTo('${comment.oId}')">${replyLabel}</a> <a class="fn-right" href="javascript:replyTo('${comment.oId}')">${replyLabel}</a>
</#if> </#if>
</div> </div>
<div class="comment-content"> <div class="comment-content post-body article-body">
${comment.commentContent} ${comment.commentContent}
</div> </div>
</div> </div>
......
src/main/webapp/skins/next/preview.png

12.3 KB | W: | H:

src/main/webapp/skins/next/preview.png

7.24 KB | W: | H:

src/main/webapp/skins/next/preview.png
src/main/webapp/skins/next/preview.png
src/main/webapp/skins/next/preview.png
src/main/webapp/skins/next/preview.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -15,19 +15,19 @@ ...@@ -15,19 +15,19 @@
<div class="site-state-item"> <div class="site-state-item">
<a href="/archives"> <a href="/archives">
<span class="site-state-item-count">${statistic.statisticPublishedBlogArticleCount}</span> <span class="site-state-item-count">${statistic.statisticPublishedBlogArticleCount}</span>
<span class="site-state-item-name">日志</span> <span class="site-state-item-name">${articleLabel}</span>
</a> </a>
</div> </div>
<div class="site-state-item site-state-categories"> <div class="site-state-item site-state-categories">
<span class="site-state-item-count">${statistic.statisticBlogViewCount}</span> <span class="site-state-item-count">${statistic.statisticBlogViewCount}</span>
<span class="site-state-item-name">浏览</span> <span class="site-state-item-name">${viewLabel}</span>
</div> </div>
<div class="site-state-item site-state-tags"> <div class="site-state-item site-state-tags">
<a href="/tags"> <a href="/tags">
<span class="site-state-item-count">${statistic.statisticPublishedBlogCommentCount}</span> <span class="site-state-item-count">${statistic.statisticPublishedBlogCommentCount}</span>
<span class="site-state-item-name">评论</span> <span class="site-state-item-name">${commentLabel}</span>
</a> </a>
</div> </div>
</nav> </nav>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<main class="main wrapper"> <main class="main wrapper">
<div class="content"> <div class="content">
<div class="tag-cloud"> <div class="tag-cloud">
目前共计 ${tags?size} 个标签 ${sumLabel} ${tags?size} ${tagLabel}
<ul class="tag-cloud-tags fn-clear" id="tags"> <ul class="tag-cloud-tags fn-clear" id="tags">
<#list tags as tag> <#list tags as tag>
<li> <li>
......
src/main/webapp/skins/yilia/preview.png

12.3 KB | W: | H:

src/main/webapp/skins/yilia/preview.png

24.9 KB | W: | H:

src/main/webapp/skins/yilia/preview.png
src/main/webapp/skins/yilia/preview.png
src/main/webapp/skins/yilia/preview.png
src/main/webapp/skins/yilia/preview.png
  • 2-up
  • Swipe
  • Onion skin
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment