elements) {
+ this.elements = elements;
+ }
+}
diff --git a/ace-auth/ace-auth-server/src/main/resources/application.yml b/ace-auth/ace-auth-server/src/main/resources/application.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bc5d37c9215b9b09961b784cc63cb53828aa8446
--- /dev/null
+++ b/ace-auth/ace-auth-server/src/main/resources/application.yml
@@ -0,0 +1,112 @@
+spring:
+ application:
+ name: ace-auth
+ jackson:
+ date-format: yyyy-MM-dd HH:mm:ss
+ time-zone: GMT+8
+ default-property-inclusion: non_null
+ redis:
+ database: 1
+ host: ${REDIS_HOST:localhost}
+ port: ${REDIS_PORT:6379}
+ pool:
+ max-active: 20
+ datasource:
+ name: test
+ url: jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:3306}/ag_auth_v1?useUnicode=true&characterEncoding=UTF8
+ username: root
+ password: 123456
+ # 使用druid数据源
+ type: com.alibaba.druid.pool.DruidDataSource
+ driver-class-name: com.mysql.jdbc.Driver
+ filters: stat
+ maxActive: 20
+ initialSize: 1
+ maxWait: 60000
+ minIdle: 1
+ timeBetweenEvictionRunsMillis: 60000
+ minEvictableIdleTimeMillis: 300000
+ validationQuery: select 'x'
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ poolPreparedStatements: true
+ maxOpenPreparedStatements: 20
+ rabbitmq:
+ host: ${RABBIT_MQ_HOST:localhost}
+ port: ${RABBIT_MQ_PORT:5672}
+ username: guest
+ password: guest
+ sleuth:
+ enabled: true
+ http:
+ legacy:
+ enabled: true
+
+mybatis:
+ basepackage: com.github.wxiaoqi.security.auth.mapper
+ xmlLocation: classpath:mapper/**/*.xml
+ mapper-locations: "classpath*:mapper/*.xml"
+
+server:
+ port: 9777 #启动端口
+
+feign:
+ httpclient:
+ enabled: false
+ okhttp:
+ enabled: true
+
+ribbon:
+ eureka:
+ enabled: true
+ ReadTimeout: 60000
+ ConnectTimeout: 60000
+ MaxAutoRetries: 0
+ MaxAutoRetriesNextServer: 1
+ OkToRetryOnAllOperations: false
+
+hystrix:
+ threadpool:
+ default:
+ coreSize: 1000 ##并发执行的最大线程数,默认10
+ maxQueueSize: 1000 ##BlockingQueue的最大队列数
+ queueSizeRejectionThreshold: 500 ##即使maxQueueSize没有达到,达到queueSizeRejectionThreshold该值后,请求也会被拒绝
+ command:
+ default:
+ execution:
+ isolation:
+ thread:
+ timeoutInMilliseconds: 10000
+
+eureka:
+ instance:
+ statusPageUrlPath: /actuator/info
+ healthCheckUrlPath: /actuator/health
+ # docker 部署开启
+ prefer-ip-address: true
+ ip-address: 127.0.0.1
+ client:
+ serviceUrl:
+# defaultZone: http://localhost:8761/eureka/
+ # docker 部署开启
+ defaultZone: http://${EUREKA_HOST:localhost}:${EUREKA_PORT:8761}/eureka/
+
+
+
+jwt:
+ token-header: Authorization
+ expire: 14400
+ rsa-secret: xx1WET12^%3^(WE45
+
+client:
+ id: ace-auth
+ secret: 123456
+ token-header: x-client-token
+ expire: 14400
+ rsa-secret: x2318^^(*WRYQWR(QW&T
+
+logging:
+ level:
+# tk.mybatis: DEBUG
+ com.github.wxiaoqi.security.auth: DEBUG
\ No newline at end of file
diff --git a/ace-auth/ace-auth-server/src/main/resources/mapper/ClientMapper.xml b/ace-auth/ace-auth-server/src/main/resources/mapper/ClientMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7f479049ce3c5bcf0d94a3b80c55b5b3cd702c94
--- /dev/null
+++ b/ace-auth/ace-auth-server/src/main/resources/mapper/ClientMapper.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ace-auth/ace-auth-server/src/main/resources/mapper/ClientServiceMapper.xml b/ace-auth/ace-auth-server/src/main/resources/mapper/ClientServiceMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1bb1b7795f37fd8789e896ab4d5876d8bc7982af
--- /dev/null
+++ b/ace-auth/ace-auth-server/src/main/resources/mapper/ClientServiceMapper.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ delete from auth_client_service where client_id = #{id}
+
+
+
\ No newline at end of file
diff --git a/ace-auth/pom.xml b/ace-auth/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..df6a095b9f8f541d6a2ad92b49781c9badc53979
--- /dev/null
+++ b/ace-auth/pom.xml
@@ -0,0 +1,21 @@
+
+
+
+ ace-security
+ com.github.wxiaoqi
+ 2.0-SNAPSHOT
+
+ 4.0.0
+
+ ace-auth
+ pom
+
+
+ ace-auth-client
+ ace-auth-server
+ ace-auth-common
+
+
+
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-admin/db/init.sql b/ace-blog-parent/ace-blog-admin/db/init.sql
deleted file mode 100644
index 68189de24f78f678e871a0d8e553d73968ec239d..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-admin/db/init.sql
+++ /dev/null
@@ -1,62 +0,0 @@
-
-CREATE DATABASE ag_blog DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-Use ag_blog;
-/*
- Navicat Premium Data Transfer
-
- Source Server : ag-admin
- Source Server Type : MySQL
- Source Server Version : 50718
- Source Host : localhost
- Source Database : ag_blog
-
- Target Server Type : MySQL
- Target Server Version : 50718
- File Encoding : utf-8
-
- Date: 07/19/2017 09:03:12 AM
-*/
-
-SET NAMES utf8;
-SET FOREIGN_KEY_CHECKS = 0;
-
--- ----------------------------
--- Table structure for `blog_article`
--- ----------------------------
-DROP TABLE IF EXISTS `blog_article`;
-CREATE TABLE `blog_article` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `title` varchar(255) DEFAULT NULL,
- `content` longtext,
- `remark` varchar(1000) DEFAULT NULL,
- `tag` varchar(255) DEFAULT NULL,
- `is_del` char(1) DEFAULT NULL,
- `page_view` int(11) DEFAULT '1',
- `cover` varchar(255) DEFAULT NULL,
- `crt_time` datetime DEFAULT NULL,
- `crt_user` varchar(255) DEFAULT NULL,
- `crt_name` varchar(255) DEFAULT NULL,
- `crt_host` varchar(255) DEFAULT NULL,
- `upd_time` datetime DEFAULT NULL,
- `upd_user` varchar(255) DEFAULT NULL,
- `upd_name` varchar(255) DEFAULT NULL,
- `upd_host` varchar(255) DEFAULT NULL,
- `attr1` varchar(255) DEFAULT NULL,
- `attr2` varchar(255) DEFAULT NULL,
- `attr3` varchar(255) DEFAULT NULL,
- `attr4` varchar(255) DEFAULT NULL,
- `attr5` varchar(255) DEFAULT NULL,
- `attr6` varchar(255) DEFAULT NULL,
- `attr7` varchar(255) DEFAULT NULL,
- `attr8` varchar(255) DEFAULT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=utf8mb4;
-
--- ----------------------------
--- Records of `blog_article`
--- ----------------------------
-BEGIN;
-INSERT INTO `blog_article` VALUES ('44', 'Hello World', '# Hello World', 'Hello World', null, null, '1', null, '2017-07-16 17:11:29', '4', 'blog', '0:0:0:0:0:0:0:1', null, null, null, null, null, null, null, null, null, null, null, null), ('45', 'Spring cloud实战-Zuul如何动态负载和服务发现扩容', '# Zuul、Fegin、Rebbion、Eureka一条龙
很多人都自然而然把zuul当成nginx那样来在配置写死节点配置来。实际上zuul和eureka的是可以完美配合,完全可以基于`服务名`的注册和发现,来动态的实现服务的`动态负载`和`动态注册`,从而达到`不需要重启zuul即可达到动态扩容的`。下文将介绍静态配置路由表和从Eureka发现服务的方式来加强Zuul的使用。
# 项目地址:
AG-Admin:http://git.oschina.net/geek_qi/ace-security
# GateWay搭建

## Maven依赖
```
<dpendency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
<version>1.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
```
## 基于Eureka的application.yml(关键)
```
spring:
application:
name: ace-gate
thymeleaf:
mode: LEGACYHTML5
cache: false
redis:
database: 1
host: 127.0.0.1
pool:
max-active: 20
server:
port: 8765 #启动端口
#开启动态网关服务发现
ribbon:
eureka:
enabled: true
#配置zuul路由表,静态路由
#zuul:
# #prefix: /techouse #为zuul设置一个公共的前缀
# #ignoredServices: \'*\'
# routes:
# ace-admin: #随便定义,当不存在serviceId时,默认该值为serviceId(就是注册服务的名称,属性spring.application.name)
# path: /test/** #匹配/test/** 均路由到cloud-client
#基于静态路由节点的ribbon负载均衡配置
#ace-admin:
# ribbon:
# listOfServers: 127.0.0.1:8767
eureka:
instance:
statusPageUrlPath: ${management.context-path}/info
healthCheckUrlPath: ${management.context-path}/health
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
security:
user:
name: admin
password: admin
role: USER
#避免第一次调用失败
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 5000
#请求和响应GZIP压缩支持
feign:
compression:
request:
enabled: true
mime-types: text/xml,application/xml,application/json
min-request-size: 2048
response:
enabled: true
```
## 启用Zuul、Fegin、Eureka注解
```
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
@EnableFeignClients
@EnableZuulProxy
@EnableRedisHttpSession(redisFlushMode = RedisFlushMode.IMMEDIATE)
public class GateBootstrap {
public static void main(String[] args) {
SpringApplication.run(GateBootstrap.class, args);
}
}
```
## Zuul filter拦截示例代码
```
@Component
public class SessionAccessFilter extends ZuulFilter {
private final Logger log = LoggerFactory.getLogger(SessionAccessFilter.class);
@Autowired
private SessionRepository<?> repository;
@Autowired
private IUserService userService;
@Override
public String filterType() {
return \"pre\";
}
@Override
public int filterOrder() {
return 1;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
HttpSession httpSession = ctx.getRequest().getSession();
if (不符合权限){
setFailedRequest(\"<h1>Forbidden!</h1>\",403);
}
return null;
}
/**
* 路由重定向
*
* @param body
* @param code
*/
private void setFailedRequest(String body, int code) {
log.debug(\"Reporting error ({}): {}\", code, body);
RequestContext ctx = RequestContext.getCurrentContext();
ctx.setResponseStatusCode(code);
if (ctx.getResponseBody() == null) {
ctx.setResponseBody(body);
ctx.setSendZuulResponse(false);
throw new RuntimeException(\"Code: \" + code + \", \" + body); //optional
}
}
}
```
## 访问网关地址示例
```
[ip]:[zuul port]/[Eureak 注册服务]/[资源路径]
```
# Zuul兼容动态注册和静态路由表
## 核心思路
基于Eureka上注册另一个zuul,通过主的zuul gate way来分流到另外一个zuul,从而兼容静态路由的情况。

', '很多人都自然而然把zuul当成nginx那样来在配置写死节点配置来。实际上zuul和eureka的是可以完美配合,完全可以基于`服务名`的注册和发现,来动态的实现服务的`动态负载`和`动态注册`,从而达到`不需要重启zuul即可达到动态扩容的`。下文将介绍静态配置路由表和从Eureka发现服务的方式来加强Zuul的使用。', null, null, '1', null, '2017-07-17 08:29:20', '4', 'Mr.AG', '0:0:0:0:0:0:0:1', '2017-07-17 12:08:03', '4', 'Mr.AG', '0:0:0:0:0:0:0:1', null, null, null, null, null, null, null, null);
-COMMIT;
-
-SET FOREIGN_KEY_CHECKS = 1;
diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/api/ArticleRest.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/api/ArticleRest.java
deleted file mode 100644
index a86006073f85308a2b35040ae51c0db87997b214..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/api/ArticleRest.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.github.wxiaoqi.blog.admin.api;
-
-import com.fasterxml.jackson.databind.util.JSONPObject;
-import com.github.pagehelper.Page;
-import com.github.pagehelper.PageHelper;
-import com.github.wxiaoqi.blog.admin.biz.ArticleBiz;
-import com.github.wxiaoqi.blog.admin.entity.Article;
-import com.github.wxiaoqi.security.common.msg.ListRestResponse;
-import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
-import com.github.wxiaoqi.security.common.msg.TableResultResponse;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * Created by ace on 2017/7/16.
- */
-@RestController
-@RequestMapping("api/article")
-public class ArticleRest {
- @Autowired
- private ArticleBiz articleBiz;
- @RequestMapping(value = "/{id}",method = RequestMethod.GET)
- public JSONPObject get(@PathVariable int id, String callback){
- return new JSONPObject(callback,new ObjectRestResponse().rel(true).result(articleBiz.selectById(id)));
- }
- @RequestMapping(value = "/page",method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
- public JSONPObject get(int pageIndex, int pageSize, String callback){
- Page objects = PageHelper.startPage(pageIndex, pageSize);
- articleBiz.selectListAll();
- return new JSONPObject(callback, new ListRestResponse().rel(true).count(objects.getTotal()).result(objects.getResult()));
- }
-}
diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/biz/ArticleBiz.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/biz/ArticleBiz.java
deleted file mode 100644
index 06b8d04595400d8392eef9af75d644ef00989e88..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/biz/ArticleBiz.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.github.wxiaoqi.blog.admin.biz;
-
-import com.github.wxiaoqi.blog.admin.entity.Article;
-import com.github.wxiaoqi.blog.admin.mapper.ArticleMapper;
-import com.github.wxiaoqi.security.common.biz.BaseBiz;
-import org.springframework.stereotype.Service;
-
-/**
- * ${DESCRIPTION}
- *
- * @author wanghaobin
- * @create 2017-06-12 8:48
- */
-@Service
-public class ArticleBiz extends BaseBiz {
-}
diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MapperConfiguration.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MapperConfiguration.java
deleted file mode 100644
index 86a3fcf8f4f44f1d8830931365dc5a1635270ff6..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MapperConfiguration.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.github.wxiaoqi.blog.admin.config;
-
-
-import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
-import org.springframework.context.EnvironmentAware;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.env.Environment;
-import tk.mybatis.spring.mapper.MapperScannerConfigurer;
-
-/**
- * mybatis mapper 扫描配置类
- *
- * @author wanghaobin
- * @date 2016年12月15日
- * @since 1.7
- */
-@Configuration
-@AutoConfigureAfter(MybatisConfiguration.class)
-public class MapperConfiguration implements EnvironmentAware {
-
- private RelaxedPropertyResolver propertyResolver;
-
- private String basePackage;
-
- @Bean
- public MapperScannerConfigurer mapperScannerConfigurer(Environment environment){
-
- MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
- mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
- mapperScannerConfigurer.setBasePackage(basePackage);
- return mapperScannerConfigurer;
- }
-
-
- public void setEnvironment(Environment environment) {
- this.propertyResolver = new RelaxedPropertyResolver(environment, null);
- this.basePackage = propertyResolver.getProperty("mybatis.basepackage");
- }
-}
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MybatisConfiguration.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MybatisConfiguration.java
deleted file mode 100644
index a458a1bcb51cdcb09a9cd6df9b53965b0f727a0d..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/MybatisConfiguration.java
+++ /dev/null
@@ -1,152 +0,0 @@
-package com.github.wxiaoqi.blog.admin.config;
-
-
-import com.alibaba.druid.pool.DruidDataSource;
-import com.github.pagehelper.PageHelper;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.ibatis.plugin.Interceptor;
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.SqlSessionFactoryBean;
-import org.mybatis.spring.SqlSessionTemplate;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
-import org.springframework.context.EnvironmentAware;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.env.Environment;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-import org.springframework.core.io.support.ResourcePatternResolver;
-import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-import javax.sql.DataSource;
-import java.sql.SQLException;
-import java.util.Properties;
-
-/**
- * mybatis 配置数据源类
- *
- * @author wanghaobin
- * @date 2016年12月15日
- * @since 1.7
- */
-@Configuration
-@EnableTransactionManagement
-public class MybatisConfiguration implements EnvironmentAware {
-
-
- private RelaxedPropertyResolver propertyResolver;
-
- private String driveClassName;
- private String url;
- private String userName;
- private String password;
- private String xmlLocation;
- private String typeAliasesPackage;
- /////////////////////druid参数///////////////////////////////////////////////////
- private String filters;
- private String maxActive;
- private String initialSize;
- private String maxWait;
- private String minIdle;
- private String timeBetweenEvictionRunsMillis;
- private String minEvictableIdleTimeMillis;
- private String validationQuery;
- private String testWhileIdle;
- private String testOnBorrow;
- private String testOnReturn;
- private String poolPreparedStatements;
- private String maxOpenPreparedStatements;
- //////////////////////////////////////////////////////////////////////////
-
- @Bean
- public DataSource druidDataSource() {
- DruidDataSource druidDataSource = new DruidDataSource();
- druidDataSource.setUrl(url);
- druidDataSource.setUsername(userName);
- druidDataSource.setPassword(password);
- druidDataSource.setDriverClassName(StringUtils.isNotBlank(driveClassName)?driveClassName:"com.mysql.jdbc.Driver");
- druidDataSource.setMaxActive(StringUtils.isNotBlank(maxActive)? Integer.parseInt(maxActive):10);
- druidDataSource.setInitialSize(StringUtils.isNotBlank(initialSize)? Integer.parseInt(initialSize):1);
- druidDataSource.setMaxWait(StringUtils.isNotBlank(maxWait)? Integer.parseInt(maxWait):60000);
- druidDataSource.setMinIdle(StringUtils.isNotBlank(minIdle)? Integer.parseInt(minIdle):3);
- druidDataSource.setTimeBetweenEvictionRunsMillis(StringUtils.isNotBlank(timeBetweenEvictionRunsMillis)?
- Integer.parseInt(timeBetweenEvictionRunsMillis):60000);
- druidDataSource.setMinEvictableIdleTimeMillis(StringUtils.isNotBlank(minEvictableIdleTimeMillis)?
- Integer.parseInt(minEvictableIdleTimeMillis):300000);
- druidDataSource.setValidationQuery(StringUtils.isNotBlank(validationQuery)?validationQuery:"select 'x'");
- druidDataSource.setTestWhileIdle(StringUtils.isNotBlank(testWhileIdle)? Boolean.parseBoolean(testWhileIdle):true);
- druidDataSource.setTestOnBorrow(StringUtils.isNotBlank(testOnBorrow)? Boolean.parseBoolean(testOnBorrow):false);
- druidDataSource.setTestOnReturn(StringUtils.isNotBlank(testOnReturn)? Boolean.parseBoolean(testOnReturn):false);
- druidDataSource.setPoolPreparedStatements(StringUtils.isNotBlank(poolPreparedStatements)? Boolean.parseBoolean(poolPreparedStatements):true);
- druidDataSource.setMaxOpenPreparedStatements(StringUtils.isNotBlank(maxOpenPreparedStatements)? Integer.parseInt(maxOpenPreparedStatements):20);
-
- try {
- druidDataSource.setFilters(StringUtils.isNotBlank(filters)?filters:"stat, wall");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return druidDataSource;
- }
-
- @Bean(name = "sqlSessionFactory")
- public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) {
- SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
- bean.setDataSource(dataSource);
- if(StringUtils.isNotBlank(typeAliasesPackage)){
- bean.setTypeAliasesPackage(typeAliasesPackage);
- }
- //分页插件
- PageHelper pageHelper = new PageHelper();
- Properties properties = new Properties();
- properties.setProperty("reasonable", "true");
- properties.setProperty("supportMethodsArguments", "true");
- properties.setProperty("returnPageInfo", "check");
- properties.setProperty("params", "count=countSql");
- pageHelper.setProperties(properties);
- //添加XML目录
- ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
- Interceptor[] plugins = new Interceptor[]{pageHelper};
- bean.setPlugins(plugins);
- try {
- bean.setMapperLocations(resolver.getResources(xmlLocation));
- return bean.getObject();
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
-
- @Bean
- public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
- return new SqlSessionTemplate(sqlSessionFactory);
- }
-
- public void setEnvironment(Environment environment) {
- this.propertyResolver = new RelaxedPropertyResolver(environment, null);
- this.url = propertyResolver.getProperty("spring.datasource.url");
- this.userName= propertyResolver.getProperty("spring.datasource.username");
- this.password = propertyResolver.getProperty("spring.datasource.password");
- this.driveClassName = propertyResolver.getProperty("spring.datasource.driver-class-name");
- this.filters = propertyResolver.getProperty("spring.datasource.filters");
- this.maxActive = propertyResolver.getProperty("spring.datasource.maxActive");
- this.initialSize = propertyResolver.getProperty("spring.datasource.initialSize");
- this.maxWait = propertyResolver.getProperty("spring.datasource.maxWait");
- this.minIdle = propertyResolver.getProperty("spring.datasource.minIdle");
- this.timeBetweenEvictionRunsMillis = propertyResolver.getProperty("spring.datasource.timeBetweenEvictionRunsMillis");
- this.minEvictableIdleTimeMillis = propertyResolver.getProperty("spring.datasource.minEvictableIdleTimeMillis");
- this.validationQuery = propertyResolver.getProperty("spring.datasource.validationQuery");
- this.testWhileIdle = propertyResolver.getProperty("spring.datasource.testWhileIdle");
- this.testOnBorrow = propertyResolver.getProperty("spring.datasource.testOnBorrow");
- this.testOnReturn = propertyResolver.getProperty("spring.datasource.testOnReturn");
- this.poolPreparedStatements = propertyResolver.getProperty("spring.datasource.poolPreparedStatements");
- this.maxOpenPreparedStatements = propertyResolver.getProperty("spring.datasource.maxOpenPreparedStatements");
- this.typeAliasesPackage = propertyResolver.getProperty("mybatis.typeAliasesPackage");
- this.xmlLocation = propertyResolver.getProperty("mybatis.xmlLocation");
- }
-
- @Bean
- public DataSourceTransactionManager transactionManager(DataSource dataSource) {
- return new DataSourceTransactionManager(dataSource);
- }
-
-}
diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/SwaggerConfiguration.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/SwaggerConfiguration.java
deleted file mode 100644
index 3b4b00e1f45b7b0146474b3a7e61896dbad4fc48..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/config/SwaggerConfiguration.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.github.wxiaoqi.blog.admin.config;
-
-import org.springframework.boot.bind.RelaxedPropertyResolver;
-import org.springframework.context.EnvironmentAware;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.env.Environment;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-/**
- * swagger配置项
- *
- * @description
- * @author wanghaobin
- * @date 2017年6月20日
- * @since 1.7
- */
-@Configuration
-@EnableSwagger2
-public class SwaggerConfiguration extends WebMvcConfigurerAdapter implements EnvironmentAware {
- private String basePackage;
- private String creatName;
- private String serviceName;
- private RelaxedPropertyResolver propertyResolver;
- private String description;
- /**
- * 这个地方要重新注入一下资源文件,不然不会注入资源的,也没有注入requestHandlerMappping,相当于xml配置的
- *
- *
- *
- * 不知道为什么,这也是spring boot的一个缺点(菜鸟觉得的)
- * @param registry
- */
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- registry.addResourceHandler("swagger-ui.html")
- .addResourceLocations("classpath:/META-INF/resources/");
- registry.addResourceHandler("/webjars*")
- .addResourceLocations("classpath:/META-INF/resources/webjars/");
- }
-
-
-
- @Bean
- public Docket createRestApi() {
- return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
- .select()
- .apis(RequestHandlerSelectors.basePackage(this.basePackage))
- .paths(PathSelectors.any()).build();
- }
-
- private ApiInfo apiInfo() {
- return new ApiInfoBuilder()
- .title(this.serviceName+" Restful APIs")
- .description(this.description)
- .contact(this.creatName).version("1.0").build();
- }
-
- @Override
- public void setEnvironment(Environment environment) {
- this.propertyResolver = new RelaxedPropertyResolver(environment, null);
- this.basePackage = propertyResolver.getProperty("swagger.basepackage");
- this.creatName = propertyResolver.getProperty("swagger.service.developer");
- this.serviceName = propertyResolver.getProperty("swagger.service.name");
- this.description = propertyResolver.getProperty("swagger.service.description");
- }
-}
diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/mapper/ArticleMapper.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/mapper/ArticleMapper.java
deleted file mode 100644
index fab5e35a6cb7bd9e3ed4c6cee50a2378cdc9911c..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/mapper/ArticleMapper.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.github.wxiaoqi.blog.admin.mapper;
-
-import com.github.wxiaoqi.blog.admin.entity.Article;
-import tk.mybatis.mapper.common.Mapper;
-
-public interface ArticleMapper extends Mapper {
-}
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/rest/ArticleController.java b/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/rest/ArticleController.java
deleted file mode 100644
index a360c2604768c6920cb9da99b578d6886aac95fe..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-admin/src/main/java/com/github/wxiaoqi/blog/admin/rest/ArticleController.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.github.wxiaoqi.blog.admin.rest;
-
-import com.github.pagehelper.PageHelper;
-import com.github.wxiaoqi.blog.admin.biz.ArticleBiz;
-import com.github.wxiaoqi.blog.admin.entity.Article;
-import com.github.wxiaoqi.security.common.msg.TableResultResponse;
-import com.github.wxiaoqi.security.common.rest.BaseController;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.ResponseBody;
-import tk.mybatis.mapper.entity.Example;
-
-/**
- * ${DESCRIPTION}
- *
- * @author wanghaobin
- * @create 2017-06-08 11:51
- */
-@Controller
-@RequestMapping("article")
-public class ArticleController extends BaseController {
-
- @RequestMapping(value = "/page",method = RequestMethod.GET)
- @ResponseBody
- public TableResultResponse page(int limit, int offset, String title){
- Example example = new Example(Article.class);
- if(StringUtils.isNotBlank(title))
- example.createCriteria().andLike("title", "%" + title + "%");
- int count = baseBiz.selectCountByExample(example);
- PageHelper.startPage(offset, limit);
- return new TableResultResponse(count,baseBiz.selectByExample(example));
- }
-
-}
diff --git a/ace-blog-parent/ace-blog-admin/src/main/resources/application.yml b/ace-blog-parent/ace-blog-admin/src/main/resources/application.yml
deleted file mode 100644
index a1e7dbcd80eefcd35bee3884361b3d59f8043ee6..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-admin/src/main/resources/application.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-logging:
- level:
- tk.mybatis: DEBUG
- com.github.wxiaoqi.blog.admin: DEBUG
- # config: classpath:logback.xml
- # path: /ag/admin
-spring:
- application:
- name: blog-admin
- jackson:
- date-format: yyyy-MM-dd HH:mm:ss
- time-zone: GMT+8
- default-property-inclusion: non_null
-# boot:
-# admin:
-# url: http://localhost:8764
- datasource:
- name: test
- url: jdbc:mysql://localhost:3306/ag_blog?useUnicode=true&characterEncoding=UTF8
- username: root
- password: 123456
- # 使用druid数据源
- type: com.alibaba.druid.pool.DruidDataSource
- driver-class-name: com.mysql.jdbc.Driver
- filters: stat
- maxActive: 20
- initialSize: 1
- maxWait: 60000
- minIdle: 1
- timeBetweenEvictionRunsMillis: 60000
- minEvictableIdleTimeMillis: 300000
- validationQuery: select 'x'
- testWhileIdle: true
- testOnBorrow: false
- testOnReturn: false
- poolPreparedStatements: true
- maxOpenPreparedStatements: 20
-mybatis:
- basepackage: com.github.wxiaoqi.blog.admin.mapper
- xmlLocation: classpath:mapper/**/*.xml
-
-server:
- port: 9701
-
-eureka:
- instance:
- statusPageUrlPath: /info
- healthCheckUrlPath: /health
- client:
- serviceUrl:
- defaultZone: http://localhost:8761/eureka/
-swagger:
- basepackage: com.github.wxiaoqi.blog.admin
- service:
- name: Blog Admin
- description: Blog Admin后端服务
- developer: 老A
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-admin/src/main/resources/mapper/ArticleMapper.xml b/ace-blog-parent/ace-blog-admin/src/main/resources/mapper/ArticleMapper.xml
deleted file mode 100644
index 6eab0b0f30a88891c707368a3cabaa4fb5042d86..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-admin/src/main/resources/mapper/ArticleMapper.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-ui/src/main/java/com/github/wxiaoqi/blog/ui/controller/HomeController.java b/ace-blog-parent/ace-blog-ui/src/main/java/com/github/wxiaoqi/blog/ui/controller/HomeController.java
deleted file mode 100644
index 6179f66c3b2277146f4d1e36eb35a5a2234c6d61..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/java/com/github/wxiaoqi/blog/ui/controller/HomeController.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.github.wxiaoqi.blog.ui.controller;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import java.util.Map;
-
-/**
- * Created by ace on 2017/7/15.
- */
-@Controller
-public class HomeController {
- @RequestMapping("/home")
- public String home(){
- return "home";
- }
- @RequestMapping("/about")
- public String about(){
- return "about";
- }
- @RequestMapping("/article")
- public String article(){
- return "article";
- }
- @RequestMapping("/detail/{id}")
- public String detail(@PathVariable String id, Map map){
- map.put("articleId",id);
- return "detail";
- }
- @RequestMapping("/resource")
- public String resource(){
- return "resource";
- }
- @RequestMapping("/timeline")
- public String timeline(){
- return "timeline";
- }
-
-}
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/application.yml b/ace-blog-parent/ace-blog-ui/src/main/resources/application.yml
deleted file mode 100644
index ed6b841e15ade7f8822189a27c505e83394c10e2..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/application.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-spring:
- application:
- name: blog-ui
- thymeleaf:
- mode: LEGACYHTML5
- cache: false
-
-server:
- port: 9700
-
-#eureka:
-# instance:
-# statusPageUrlPath: /info
-# healthCheckUrlPath: /health
-# client:
-# serviceUrl:
-# defaultZone: http://localhost:8761/eureka/
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/about.css b/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/about.css
deleted file mode 100644
index 5a967ae2b3542f7bbec9229015d33c1463e5d278..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/about.css
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
-
-@Name:不落阁整站模板源码
-@Author:Absolutely
-@Site:http://www.lyblogs.cn
-
-*/
-.layui-tab-brief {
- background: #fff;
- min-height: 100vh;
-}
-
- .layui-tab-brief .layui-tab-title {
- text-align: center;
- border-bottom: 1px solid #5FB878;
- }
-
- .layui-tab-brief .layui-tab-title li {
- font-size: 12px;
- }
-
- .layui-tab-brief .layui-tab-content {
- padding: 0;
- }
-
-.aboutinfo {
- text-align: center;
- padding: 0 15px;
-}
-
-.aboutinfo-figure {
- display: inline-block;
- margin: 20px auto;
-}
-
- .aboutinfo-figure img {
- border-radius: 50px;
- }
-
-.aboutinfo-nickname {
- font-size: 32px;
- font-weight: bold;
- margin: 0 0 15px 0;
-}
-
-.aboutinfo-introduce {
- margin: 20px auto;
- font-size: 18px;
- width: 90%;
-}
-
-.aboutinfo-location {
- color: #808080;
- margin: 15px;
-}
-
-.aboutinfo-contact {
- margin: 15px;
-}
-
- .aboutinfo-contact > a {
- padding: 0 10px;
- }
-
-.aboutinfo-abstract {
- width: 90%;
- margin: 0 auto;
-}
-
- .aboutinfo-abstract > h1 {
- font-weight: bold;
- font-size: 16px;
- text-align: left;
- margin-top: 25px;
- }
-
- .aboutinfo-abstract > p {
- margin: 5px 0;
- font-size: 14px;
- text-align: left;
- text-indent: 2em;
- }
-
-#frinedlink {
- display: none; /*手机端不显示友情链接,样式没写好,会乱*/
-}
-
-.friendlink {
- padding: 0 15px;
-}
-
- .friendlink li {
- width: 30%;
- margin: 0 1%;
- margin-top: 10px;
- float: left;
- }
-
-.friendlink-item {
- box-shadow: inset 0 0 2px #5FB878;
- width: 100%;
- display: block;
- padding: 10px 0;
- text-align: left;
- min-height: 45px;
- position: relative;
-}
-
- .friendlink-item:hover {
- box-shadow: 0 0 2px #5FB878;
- }
-
-.friendlink-item-pic {
- display: inline-block;
- position: absolute;
- left: 10%;
- margin: 0 10px;
-}
-
- .friendlink-item-pic img {
- width: 45px;
- height: 45px;
- position: relative;
- left: 0px;
- border-radius: 50px;
- }
-
-.friendlink-item-title {
- font-size: 17px;
- margin-left: 65px;
- text-align: center;
- line-height: 20px;
-}
-
-.friendlink-item-domain {
- font-size: 13px;
- margin-left: 65px;
- text-align: center;
- line-height: 20px;
- margin-top: 5px;
-}
-
-.leavemessage .blog-comment li:first-child {
- border-top: 1px dotted #01AAED;
-}
-
-/* 小屏幕(平板,大于等于 768px) */
-@media (min-width: 768px) {
- .layui-tab-brief .layui-tab-title li {
- font-size: 14px;
- }
-
- #frinedlink {
- display: inline-block;
- }
-}
-
-/* 中等屏幕(桌面显示器,大于等于 992px) */
-@media (min-width: 992px) {
- .blog-container {
- width: 962px;
- }
-}
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/animate.min.css b/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/animate.min.css
deleted file mode 100644
index b84c3c1296905bcfdcac1b5341bade5399976a5e..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/animate.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-@charset "UTF-8";/*!
-Animate.css - http://daneden.me/animate
-Licensed under the MIT license - http://opensource.org/licenses/MIT
-
-Copyright (c) 2013 Daniel Eden
-*/.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);-ms-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);-ms-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);-ms-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);-ms-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);-ms-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);-ms-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);-ms-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);-ms-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);-ms-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);-ms-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);-ms-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);-ms-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);-ms-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);-ms-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;-ms-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);-ms-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);-ms-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);-ms-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);-ms-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);-ms-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);-ms-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);-ms-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);-ms-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);-ms-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);-ms-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);-ms-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);-ms-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);-ms-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);-ms-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);-ms-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);-ms-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);-ms-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);-ms-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);-ms-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);-ms-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);-ms-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);-ms-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;-ms-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);-ms-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);-ms-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);-ms-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);-ms-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);-ms-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);-ms-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);-ms-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);-ms-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);-ms-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);-ms-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);-ms-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);-ms-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);-ms-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);-ms-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);-ms-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);-ms-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;-ms-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);-ms-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;-ms-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/article.css b/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/article.css
deleted file mode 100644
index 36b18b0aecd80812f4f95243443f1aba19ba95ea..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/article.css
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-
-@Name:不落阁整站模板源码
-@Author:Absolutely
-@Site:http://www.lyblogs.cn
-
-*/
-
-/*搜索(移动端不提供此功能)*/
-.search-keywords,
-.search-submit {
- display: none;
-}
-
-@media (min-width: 992px) {
- .blog-search {
- margin-bottom: 15px;
- }
-
- .search-keywords,
- .search-submit {
- display: inline-block;
- }
-
- .search-keywords {
- width: 85%;
- float: left;
- }
-
- .search-keywords > input {
- border-radius: 0;
- }
-
- .search-submit {
- width: 14%;
- float: right;
- }
-
- .search-submit > .search-btn {
- display: block;
- width: 100%;
- height: 36px;
- background: #fff;
- cursor: pointer;
- float: right;
- border-radius: 1px;
- border: 1px solid #e2e2e2;
- }
-
- .search-submit > .search-btn:hover {
- border: 1px solid #d2d2d2;
- }
-
- .search-submit > .search-btn i {
- width: 13px;
- line-height: 38px;
- display: block;
- margin: 0 auto;
- }
-}
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/detail.css b/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/detail.css
deleted file mode 100644
index df1d575efdc898819f98c4bdea8ddbd74005f95c..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/detail.css
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-@Name:不落阁整站模板源码
-@Author:Absolutely
-@Site:http://www.lyblogs.cn
-
-*/
-
-.article-detail {
- background: #fff;
- padding: 15px;
- box-shadow: 0 1px 8px #a6a6a6;
- margin-bottom: 15px;
-}
-
-.article-detail-title {
- text-align: center;
- margin: 20px 0px;
- color: #1AA094;
- font-weight: 700;
- text-shadow: 0 0 8px white;
- font-size: 28px;
-}
-
-.article-detail-info {
- border: 1px dashed #808080;
- font-size: 13px;
- color: #808080;
- padding: 5px 0;
- font-family: SimSun;
- text-align: center;
- margin: 0 0 10px;
-}
-
-.article-detail-info span {
- margin: 0 5px;
-}
-
-.article-detail-content {
- padding: 10px 5px;
-}
-
-/*代码区域*/
-pre {
- background-color: #f5f5f5 !important;
- border-radius: 0px !important;
- border: 1px solid #ccc !important;
- font-size: 13px !important;
-}
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/global.css b/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/global.css
deleted file mode 100644
index 0ccec77c302fa239de40924226b26fd0836f61a1..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/global.css
+++ /dev/null
@@ -1,1119 +0,0 @@
-/*
-
-@Name:不落阁整站模板源码
-@Author:Absolutely
-@Site:http://www.lyblogs.cn
-
-*/
-
-/*全局样式*/
-body {
- background: #eee;
- color: #444;
-}
-
-.shadow {
- box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);
-}
-
-.clear {
- clear: both;
-}
-
-.blog-body {
- margin-top: 65px;
-}
-
-.blog-container {
- margin: 0 15px;
- position: relative;
-}
-
-.blog-main {
- margin-top: 15px;
- width: 100%;
- position: relative;
- min-height: 100vh;
-}
-
- .blog-main > .home-tips {
- padding: 10px 10px;
- background: #fff;
- font-size: 13px;
- margin-bottom: 15px;
- }
-
- .blog-main > .home-tips > i {
- color: #009688;
- font-size: 15px;
- }
-
- .blog-main > .home-tips > .home-tips-container {
- margin-left: 20px;
- height: 17px;
- overflow: hidden;
- }
-
- .blog-main > .home-tips > .home-tips-container > span {
- display: block;
- }
-
- .blog-main > .blog-main-left {
- width: 100%;
- float: left;
- }
-
- .blog-main > .blog-main-right {
- width: 100%;
- float: right;
- }
-
-/* 小屏幕(平板,大于等于 768px) */
-@media (min-width: 768px) {
- .blog-container {
- width: 738px;
- margin: 0 auto;
- }
-
- .blog-main > .blog-main-right > .blog-module {
- width: 45%;
- margin-bottom: 15px;
- }
-
- .blog-main > .blog-main-right > .blog-module:nth-child(odd) {
- float: left;
- clear: left;
- }
-
- .blog-main > .blog-main-right > .blog-module:nth-child(odd).blog-module:last-child {
- width: auto;
- float: none;
- clear: both;
- }
-
- .blog-main > .blog-main-right > .blog-module:nth-child(even) {
- float: right;
- clear: right;
- }
-}
-
-/* 中等屏幕(桌面显示器,大于等于 992px) */
-@media (min-width: 992px) {
- .blog-container {
- width: 962px;
- }
-
- .blog-main > .blog-main-left {
- width: 66%;
- }
-
- .blog-main > .blog-main-right {
- width: 32%;
- }
-
- .blog-main > .blog-main-right > .blog-module {
- width: auto;
- float: none !important;
- }
-}
-
-/* 大屏幕(大桌面显示器,大于等于 1200px) */
-@media (min-width: 1200px) {
- .blog-container {
- width: 1170px;
- }
-}
-/*全局样式END*/
-
-/*面包屑导航*/
-.sitemap {
- background: #fff;
- margin-top: 79px;
- padding: 5px 15px;
- line-height: normal;
- border-radius: 0 !important;
-}
-
- .sitemap a {
- font-size: 12px;
- }
-
-@media (min-width: 768px) {
- .sitemap {
- padding: 6px 15px;
- }
-
- .sitemap a {
- font-size: 13px;
- }
-}
-
-@media (min-width: 992px) {
- .sitemap {
- padding: 8px 15px;
- }
-
- .sitemap a {
- font-size: 14px;
- }
-}
-/*面包屑导航END*/
-
-/*顶部导航*/
-.blog-nav {
- width: 100%;
- height: 64px;
- position: fixed;
- top: 0;
- background-color: #393D49;
- border-bottom: 1px solid #5FB878;
-}
-
- .blog-nav .layui-nav {
- position: absolute;
- top: 0;
- left: 15%;
- width: 85%;
- background: none;
- display: none;
- text-align: center;
- }
-
- .blog-nav .layui-nav .layui-nav-item {
- line-height: 64px;
- margin: 0 5px;
- }
-
- .blog-nav .layui-nav .layui-nav-item a {
- padding: 0 15px;
- }
-
- .blog-nav .blog-user {
- line-height: 64px;
- position: absolute;
- z-index: 10;
- }
-
- .blog-nav .blog-user img {
- width: 40px;
- height: 40px;
- border-radius: 50px;
- }
-
- .blog-nav .blog-user img:hover {
- opacity: .5;
- }
-
- .blog-nav .blog-user .fa-qq {
- line-height: 64px;
- font-size: 24px;
- color: #c2c2c2;
- }
-
- .blog-nav .blog-user .fa-qq:hover {
- color: #fff;
- }
-
-
- .blog-nav .blog-logo {
- position: absolute;
- top: 0px;
- left: 25%;
- width: 50%;
- text-align: center;
- margin: 0 auto;
- line-height: 64px;
- font-size: 30px;
- color: white;
- font-weight: bold;
- font-family: KaiTi;
- display: inline-block;
- z-index: 10;
- }
-
- .blog-nav .blog-navicon {
- position: absolute;
- right: 0;
- padding: 10px 12px;
- color: white;
- border: 1px solid #009688;
- margin-top: 13px;
- }
-
- .blog-nav .blog-navicon:hover {
- border: 1px solid #5FB878;
- }
-
-@media (min-width: 992px) {
- .blog-nav .layui-nav {
- display: block;
- }
-
- .blog-nav .blog-user {
- right: 0;
- }
-
- .blog-nav .blog-logo {
- position: absolute;
- left: 10%;
- width: auto;
- }
-
- .blog-nav .blog-navicon {
- display: none;
- }
-
- .blog-nav-left {
- display: none !important;
- }
-}
-/* 顶部导航End */
-
-/*网站底部*/
-.blog-footer {
- text-align: center;
- border-top: 1px solid #009688;
- margin-top: 15px;
- background: #2F4056;
- padding: 5px 0;
- color: #d3d2d2;
-}
-
- .blog-footer a {
- color: #d2d2d2;
- }
-
- .blog-footer a:hover {
- color: #fbfbfb;
- }
-
- .blog-footer > p {
- margin: 2px 0;
- }
-
- .blog-footer > p a,
- .blog-footer > p span {
- padding-left: 7px;
- }
-/*网站底部END*/
-
-/*子栏目导航*/
-.child-nav {
- margin: 15px 0;
- text-align: center;
- height: 39px;
- background: #fff;
- border-bottom: 1px solid #5FB878;
-}
-
-.child-nav-btn {
- padding: 0 20px;
- width: auto;
- font-size: 14px;
- line-height: 40px;
- display: inline-block;
- cursor: pointer;
-}
-
-.child-nav-btn-this {
- background: #5FB878;
- color: #fff;
-}
-/*子栏目导航END*/
-
-/*侧边导航*/
-.blog-nav-left {
- top: 65px;
- border-radius: 0;
- border-top: 1px solid #5FB878;
- box-shadow: 0 0 8px #fff;
-}
-
-.leftIn {
- -moz-animation: leftIn 0.5s;
- -o-animation: leftIn 0.5s;
- -webkit-animation: leftIn 0.5s;
- animation: leftIn 0.5s;
-}
-
-.leftOut {
- -moz-animation: leftOut 0.5s;
- -o-animation: leftOut 0.5s;
- -webkit-animation: leftOut 0.5s;
- animation: leftOut 0.5s;
-}
-
-@media (min-width: 992px) {
- .blog-nav-left {
- display: none !important;
- }
-}
-/*侧边导航END*/
-
-/*侧边导航遮罩*/
-.blog-mask {
- position: fixed;
- left: 0;
- right: 0;
- top: 65px;
- bottom: 0;
- background: rgba(0, 0, 0, 0.7);
- z-index: 998;
-}
-
-.maskIn {
- -moz-animation: maskFadeIn 0.5s;
- -o-animation: maskFadeIn 0.5s;
- -webkit-animation: maskFadeIn 0.5s;
- animation: maskFadeIn 0.5s;
-}
-
-.maskOut {
- -moz-animation: maskFadeOut 0.5s;
- -o-animation: maskFadeOut 0.5s;
- -webkit-animation: maskFadeOut 0.5s;
- animation: maskFadeOut 0.5s;
-}
-
-@media (min-width: 992px) {
- .blog-mask {
- display: none;
- }
-}
-/*侧边导航遮罩END*/
-
-/*百度分享*/
-.blog-share {
- box-shadow: 0 0 8px #fff;
- position: fixed;
- right: 80px;
- bottom: 15px;
- background: #393D49;
- z-index: 999;
- margin-bottom: 1px;
- height: 50px;
-}
-
- .blog-share .blog-share-body {
- width: 100%;
- height: 100%;
- }
-
-.bdsharebuttonbox {
- height: 100%;
-}
-
- .bdsharebuttonbox a {
- float: left;
- margin: 9px !important;
- background-position: 0 !important;
- }
-
- .bdsharebuttonbox .bds_qzone {
- background: url(../images/qzone_32.png) no-repeat;
- }
-
- .bdsharebuttonbox .bds_tsina {
- background: url(../images/weibo_32.png) no-repeat;
- }
-
- .bdsharebuttonbox .bds_weixin {
- background: url(../images/wechat_32.png) no-repeat;
- }
-
- .bdsharebuttonbox .bds_sqq {
- background: url(../images/qq_32.png) no-repeat;
- }
-
-.shareIn {
- -moz-animation: shareIn 0.5s;
- -o-animation: shareIn 0.5s;
- -webkit-animation: shareIn 0.5s;
- animation: shareIn 0.5s;
-}
-
-.shareOut {
- -moz-animation: shareOut 0.5s;
- -o-animation: shareOut 0.5s;
- -webkit-animation: shareOut 0.5s;
- animation: shareOut 0.5s;
-}
-/*百度分享END*/
-
-/*文章列表(网站首页和文章专栏共用)*/
-.article {
- padding: 15px;
- margin-bottom: 10px;
- background: #fff;
- border-left: 5px solid #fff;
- -moz-transition: all 0.3s linear;
- -o-transition: all 0.3s linear;
- -webkit-transition: all 0.3s linear;
- transition: all 0.3s linear;
-}
-
- .article:hover {
- border-left: 5px solid #009688;
- -moz-transition: all 0.3s linear;
- -o-transition: all 0.3s linear;
- -webkit-transition: all 0.3s linear;
- transition: all 0.3s linear;
- }
-
- .article > .article-left {
- width: 25%;
- float: left;
- }
-
- .article > .article-left > img {
- width: 100%;
- height: auto;
- }
-
- .article > .article-right {
- width: 73%;
- float: right;
- padding-left: 2%;
- }
-
- .article > .article-right > .article-title a {
- font-size: 14px;
- }
-
- .article > .article-right > .article-title a:hover {
- color: #009688;
- }
-
- .article > .article-right > .article-abstract {
- display: none;
- }
-
- .article > .article-footer {
- margin-top: 5px;
- font-size: 11px;
- padding: 2px;
- color: #a6a6a6;
- }
-
- .article > .article-footer > span {
- padding-right: 3%;
- }
-
- .article > .article-footer a {
- color: #009688;
- }
-
- .article > .article-footer .article-viewinfo,
- .article > .article-footer .article-author {
- display: none;
- }
-
-.icon-stick {
- border: 1px solid #FF5722;
- color: #FF5722;
- padding: 0 2px 0 0;
- font-family: SimHei;
- display: inline-block;
- margin-right: 3px;
- position: relative;
- top: -1px;
- font-size: 13px;
-}
-
-@media (min-width: 768px) {
- .article > .article-right > .article-title a {
- font-size: 17px;
- }
-
- .article > .article-right > .article-abstract {
- font-size: 14px;
- display: block;
- margin-top: 10px;
- text-indent: 2em;
- }
-
- .article > .article-footer {
- margin-top: 10px;
- font-size: 13px;
- }
-
- .article > .article-footer .article-viewinfo {
- display: inline;
- float: right;
- }
-
- .article > .article-footer .article-author {
- display: inline;
- }
-
- .icon-stick {
- font-size: 14px;
- }
-}
-
-@media (min-width: 992px) {
- .article > .article-right > .article-title a {
- font-size: 18px;
- }
-
- .icon-stick {
- font-size: 15px;
- }
-}
-/*文章列表END*/
-
-/*右侧模块(网站首页和文章列表以及文章详细共用)*/
-.blog-module {
- margin-bottom: 10px;
- padding: 15px;
- background: #fff;
- height: 100%;
-}
-
- .blog-module > .blog-module-title {
- border-bottom: 1px solid #009688;
- font-size: 15px;
- font-weight: 500;
- padding: 0 0 5px 0;
- margin-bottom: 5px;
- }
-
-.blog-module-ul li,
-.blog-module-ul .fa {
- margin: 3px 0;
-}
-
- .blog-module-ul li .fa {
- color: #009688;
- }
-/*右侧模块END*/
-
-/*文章分类导航*/
-.article-category {
- position: fixed;
- top: 64px;
- right: 0;
- bottom: 0;
- background: #393D49;
- color: #eee;
- width: 130px;
- font-size: 11px;
- padding: 10px;
- display: none;
- margin: 0;
- z-index: 999;
-}
-
- .article-category > .article-category-title {
- text-align: center;
- border-bottom: 1px solid #009688;
- font-size: 15px;
- font-weight: 500;
- padding: 0 0 5px 0;
- margin-bottom: 5px;
- }
-
- .article-category > a {
- display: block;
- color: #eee;
- padding: 5px 1%;
- margin: 4px 0;
- background: #009688;
- width: 98%;
- text-align: center;
- line-height: 19px;
- word-break: keep-all; /* 不换行 */
- white-space: nowrap; /* 不换行 */
- overflow: hidden; /* 内容超出宽度时隐藏超出部分的内容 */
- text-overflow: ellipsis; /* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用。*/
- float: left;
- }
-
- .article-category > a:hover {
- color: #fff;
- background: #5FB878;
- }
-
-.category-toggle {
- position: fixed;
- right: 0;
- top: 40%;
- width: 15px;
- background: #009688;
- color: #fff;
- font-size: 16px;
- padding: 30px 0;
- z-index: 9999;
-}
-
- .category-toggle > i {
- display: block;
- height: 16px;
- }
-
-.categoryIn {
- -moz-animation: categoryIn 0.5s;
- -o-animation: categoryIn 0.5s;
- -webkit-animation: categoryIn 0.5s;
- animation: categoryIn 0.5s;
-}
-
-.categoryOut {
- -moz-animation: categoryOut 0.5s;
- -o-animation: categoryOut 0.5s;
- -webkit-animation: categoryOut 0.5s;
- animation: categoryOut 0.5s;
-}
-
-/*分类导航In动画*/
-@keyframes categoryIn {
- from {
- right: -140px;
- }
-
- to {
- right: 0;
- }
-}
-
-@-moz-keyframes categoryIn {
- from {
- right: -140px;
- }
-
- to {
- right: 0;
- }
-}
-
-@-webkit-keyframes categoryIn {
- from {
- right: -140px;
- }
-
- to {
- right: 0;
- }
-}
-
-/*分类导航Out动画*/
-@keyframes categoryOut {
- from {
- right: 0;
- }
-
- to {
- right: -140px;
- }
-}
-
-@-moz-keyframes categoryOut {
- from {
- right: 0;
- }
-
- to {
- right: -140px;
- }
-}
-
-@-webkit-keyframes categoryOut {
- from {
- right: 0;
- }
-
- to {
- right: -140px;
- }
-}
-
-@media (min-width: 768px) {
- .article-category {
- font-size: 13px;
- width: 260px !important;
- }
-
- .article-category > .blog-module-title {
- text-align: start;
- }
-
- .article-category > a {
- padding: 7px 1%;
- margin: 5px 0;
- width: 46%;
- }
-
- .article-category > a:nth-child(odd) {
- float: right;
- }
-
- .article-category > a:nth-child(even) {
- float: left;
- }
-
- @keyframes categoryIn {
- from {
- right: -280px;
- }
-
- to {
- right: 0;
- }
- }
-
- @-moz-keyframes categoryIn {
- from {
- right: -280px;
- }
-
- to {
- right: 0;
- }
- }
-
- @-webkit-keyframes categoryIn {
- from {
- right: -280px;
- }
-
- to {
- right: 0;
- }
- }
-
- @keyframes categoryOut {
- from {
- right: 0;
- }
-
- to {
- right: -280px;
- }
- }
-
- @-moz-keyframes categoryOut {
- from {
- right: 0;
- }
-
- to {
- right: -280px;
- }
- }
-
- @-webkit-keyframes categoryOut {
- from {
- right: 0;
- }
-
- to {
- right: -280px;
- }
- }
-}
-
-@media (min-width: 992px) {
- .article-category {
- display: block;
- position: initial;
- background: #fff;
- color: #333;
- width: auto !important;
- font-size: 14px;
- margin: 0 0 15px 0;
- }
-
- .article-category a {
- background: inherit;
- border: 1px solid #d2d2d2;
- color: #444;
- }
-
- .article-category a:hover {
- border: 1px solid #5FB878;
- background: inherit;
- color: #5FB878;
- }
-
- .category-toggle {
- display: none;
- }
-}
-/*文章分类导航END*/
-
-/*评论与留言*/
-.blog-comment {
- position: relative;
- margin-bottom: 10px;
-}
-
- .blog-comment li {
- border-bottom: 1px dotted #01AAED;
- padding: 15px 0 10px 0;
- }
-
- .blog-comment .content,
- .blog-comment .info,
- .blog-comment .replycontainer {
- margin-left: 53px;
- }
-
- .blog-comment .info-footer {
- font-size: 13px;
- }
-
- .blog-comment .info,
- .blog-comment .replycontainer {
- padding-top: 5px;
- }
-
- .blog-comment .replycontainer .layui-form-item {
- margin-bottom: 5px;
- }
-
- .blog-comment .info span {
- padding-right: 5px;
- }
-
- .blog-comment .info .username {
- color: #01AAED;
- }
-
- .blog-comment .info .btn-reply {
- color: #009688;
- }
-
- .blog-comment .content {
- padding: 2px 0 5px 0;
- min-height: 30px;
- font-size: 13px;
- }
-
- .blog-comment hr {
- margin-left: 53px;
- }
-
-.comment-parent > img {
- width: 45px;
- height: 45px;
- margin: 5px 5px 5px 0;
- position: absolute;
- border-radius: 50px;
-}
-
-.comment-child img {
- width: 40px;
- height: 40px;
- margin: 5px 5px 5px 0;
- position: absolute;
- border-radius: 50px;
-}
-
-.comment-child {
- margin-left: 53px;
- min-height: 50px;
-}
-
- .comment-child .info {
- margin-left: 48px;
- font-size: 12px;
- line-height: 20px;
- }
-/*评论与留言END*/
-
-
-
-
-
-
-
-
-
-
-
-/***********************************************动画定义*************************************************/
-/*侧边导航In动画*/
-@keyframes leftIn {
- from {
- left: -200px;
- }
-
- to {
- left: 0;
- }
-}
-
-@-moz-keyframes leftIn {
- from {
- left: -200px;
- }
-
- to {
- left: 0;
- }
-}
-
-@-webkit-keyframes leftIn {
- from {
- left: -200px;
- }
-
- to {
- left: 0;
- }
-}
-
-/*侧边导航Out动画*/
-@keyframes leftOut {
- from {
- left: 0;
- }
-
- to {
- left: -200px;
- }
-}
-
-@-moz-keyframes leftOut {
- from {
- left: 0;
- }
-
- to {
- left: -200px;
- }
-}
-
-@-webkit-keyframes leftOut {
- from {
- left: 0;
- }
-
- to {
- left: -200px;
- }
-}
-
-/*分享In动画*/
-@keyframes shareIn {
- from {
- right: -200px;
- }
-
- to {
- right: 80px;
- }
-}
-
-@-moz-keyframes shareIn {
- from {
- right: -200px;
- }
-
- to {
- right: 80px;
- }
-}
-
-@-webkit-keyframes shareIn {
- from {
- right: -200px;
- }
-
- to {
- right: 80px;
- }
-}
-
-/*分享Out动画*/
-@keyframes shareOut {
- from {
- right: 80px;
- }
-
- to {
- right: -200px;
- }
-}
-
-@-moz-keyframes shareOut {
- from {
- right: 80px;
- }
-
- to {
- right: -200px;
- }
-}
-
-@-webkit-keyframes shareOut {
- from {
- right: 80px;
- }
-
- to {
- right: -200px;
- }
-}
-
-/*淡入动画*/
-@keyframes maskFadeIn {
- from {
- opacity: 0;
- }
-
- to {
- opacity: 1;
- }
-}
-
-@-moz-keyframes maskFadeIn {
- from {
- opacity: 0;
- }
-
- to {
- opacity: 1;
- }
-}
-
-@-webkit-keyframes maskFadeIn {
- from {
- opacity: 0;
- }
-
- to {
- opacity: 1;
- }
-}
-
-/*淡出动画*/
-@keyframes maskFadeOut {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- }
-}
-
-@-moz-keyframes maskFadeOut {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- }
-}
-
-@-webkit-keyframes maskFadeOut {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- }
-}
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/home.css b/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/home.css
deleted file mode 100644
index a4f2ddded7b0e6febd747aaca2d6af452c84423c..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/home.css
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-
-@Name:不落阁整站模板源码
-@Author:Absolutely
-@Site:http://www.lyblogs.cn
-
-*/
-
-/*博主信息*/
-.blogerinfo {
- text-align: center;
- padding: 0 15px;
- background: #fff;
- margin-bottom: 15px;
-}
-
-.blogerinfo-figure {
- display: inline-block;
- margin: 20px auto;
-}
-
- .blogerinfo-figure img {
- border-radius: 50px;
- }
-
-.blogerinfo-nickname {
- font-size: 32px;
- font-weight: bold;
- margin: 0 0 15px 0;
-}
-
-.blogerinfo-introduce {
- margin: 15px auto;
- font-size: 18px;
- width: 90%;
-}
-
-.blogerinfo-location {
- color: #808080;
- margin: 15px;
-}
-
-.blogerinfo-contact {
- padding: 15px;
- padding-top: 5px;
-}
-
- .blogerinfo-contact > a {
- padding: 0 10px;
- }
-/*博主信息END*/
-
-/*友情链接*/
-.blogroll > li {
- display: inline-block;
- vertical-align: middle;
- padding: 2px 5px;
-}
-/*友情链接END*/
-
-/*一路走来和后台记录*/
-.footprint > dt {
- color: #01AAED;
-}
-
-.footprint > dd {
- text-indent: 1.3em;
- padding: 2px 0;
-}
-/*一路走来和后台记录END*/
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/markdown.css b/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/markdown.css
deleted file mode 100755
index 77924aab993f8f10b9f619678dba3390ebdf59ee..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/markdown.css
+++ /dev/null
@@ -1,175 +0,0 @@
-.layui-markdown {
-
-}
-.layui-markdown ul,
-.layui-markdown ol {
- padding: 0;
-}
-
-.layui-markdown p {
- line-height: 200%;
- color: #636363;
-}
-.layui-markdown a {
- color: #B34E22;
-}
-.layui-markdown a:hover {
- color: #009688;
-}
-
-.layui-markdown h1,
-.layui-markdown h2,
-.layui-markdown h3,
-.layui-markdown h4,
-.layui-markdown h5,
-.layui-markdown h6 {
- color: #0B8CD6;
- font-weight: 500;
-}
-
-.layui-markdown h1 {
- color: #0B8CD6;
- margin: 35px 0 15px;
- font-size: 30px;
-}
-
-.layui-markdown h2 {
- margin: 30px 0 15px;
- font-size: 26px;
-}
-
-.layui-markdown h3 {
- margin-top: 20px;
- font-size: 21px;
- font-weight: 200;
- line-height: 1.5;
-}
-
-.layui-markdown h4 {
- margin-top: 10px;
- font-size: 18px;
- line-height: 1.5;
-}
-.layui-markdown h5,
-.layui-markdown h6 {
- font-size: 16px;
-}
-.layui-markdown h5 {
- margin-top: 10px;
-}
-.layui-markdown h6 {
- margin-top: 5px;
-}
-
-.layui-markdown ul li {
- list-style: disc;
- margin-left: 30px;
- color: #009688;
-}
-.layui-markdown ol li {
- list-style: decimal;
- margin-left: 30px;
- color: #009688;
-}
-
-.layui-markdown hr {
- border: 0;
- border-bottom: 1px dashed #cfcfcf;
- background: none;
- margin: 30px 0;
- clear: none;
-}
-
-.layui-markdown blockquote {
- padding: 8px 5px 8px 15px;
- color: #777;
- background: rgba(102,128,153,.05);
- border-left: 4px solid #009688;
- margin-top: 10px;
- margin-bottom: 20px;
-}
-.layui-markdown pre {
- padding: 16px;
- overflow: auto;
- font-size: 85%;
- line-height: 1.5;
- background-color: #F2F2F2;
- border: 0;
- border-radius: 3px;
- font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
- margin-bottom: 5px;
- margin-top: 10px;
-}
-
-.layui-markdown p code {
- padding: 3px 6px 4px;
- font-size: 90%;
- background-color: rgb(251, 220, 182);
- border: 0;
- border-radius: 3px;
- font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
-}
-
-.layui-markdown code {
- font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
-}
-
-
-.layui-markdown img {
- max-width: 100%;
- border: 1px solid #fefefe;
- box-shadow: rgba(0,0,0,0.35) 0px 0px 10px;
- margin-top: 10px;
- margin-bottom: 10px;
-}
-.article-show .layui-markdown img {
- cursor: url("/public/img/zoom-in.ico"), default;
-}
-img.zoom-out {
- max-width: 100%;
-}
-.layui-markdown img.face {
- border: none;
- box-shadow: none;
- margin: 0 1px;
-}
-
-.layui-markdown .footnote-ref {
- vertical-align: baseline;
- top: -2px;
- font-size: 75%;
- line-height: 0;
- position: relative;
-}
-
-/* table */
-.layui-markdown table {
- border-collapse: collapse;
- border-spacing: 0;
- display: block;
- width: 100%;
- overflow: auto;
- word-break: keep-all;
- margin-top: 20px;
-}
-.layui-markdown table thead tr{
- background: #F2F2F2;
-}
-.layui-markdown table th,
-.layui-markdown table td {
- padding: 5px 15px;
- border: 1px solid #ddd;
-}
-.layui-markdown table th {
- font-weight: bold;
-}
-.layui-markdown table > tbody > tr:nth-child(odd) {
- background: #fff;
-}
-.layui-markdown table > tbody > tr:nth-child(even) {
- background: #F2F2F2;
-}
-
-.layui-markdown .hljs-tag{
- color: #5f5f2b;
-}
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/prettify.css b/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/prettify.css
deleted file mode 100644
index f61520d0345e243c31bdc88844b9364a911c63a0..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/prettify.css
+++ /dev/null
@@ -1,32 +0,0 @@
-.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
-
-pre.prettyprint {
- border: 1px solid #f2f2f2;
- border-radius:5px;
- margin-left: 2em;
- padding: 0.5em;
- font-size: 110%;
- display: block;
- font-family: "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace;
- margin: 1em 0px;
- /*white-space: pre;*/
- background:#f7f7f7;
-}
-
-/*li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:decimal !important;}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
-
-.prettyprint.linenums {
- -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
- -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
- box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
-}
-
-ol.linenums {
- padding: 0 0 0 33px;
-}
-ol.linenums li {
- padding-left: 12px;
- color: #bebec5;
- line-height: 18px;
- text-shadow: 0 1px 0 #fff;
-}*/
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/resource.css b/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/resource.css
deleted file mode 100644
index 7308469e521f8765c68f5be36de2effd9a0bfd64..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/resource.css
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
-
-@Name:不落阁整站模板源码
-@Author:Absolutely
-@Site:http://www.lyblogs.cn
-
-*/
-
-.resource {
- width: 49%;
- margin: 0 1%;
- margin-bottom: 10px;
- background: #fff;
- height: 270px;
- float: left;
- padding: 8px 8px;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- position: relative;
-}
-
-.resource-main .resource:nth-child(odd) {
- margin-left: 0;
-}
-
-.resource-main .resource:nth-child(even) {
- margin-right: 0;
-}
-
-.resource-cover {
- width: 100%;
- height: 92px;
- text-align: center;
-}
-
- .resource-cover a {
- display: inline-block;
- width: 100%;
- height: 100%;
- border: 1px solid #ddd;
- -moz-transition: all 1s;
- -o-transition: all 1s;
- -webkit-transition: all 1s;
- transition: all 1s;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- }
-
- .resource-cover a:hover {
- opacity: .7;
- border: 1px solid #5FB878;
- }
-
- .resource-cover img {
- width: 100%;
- height: 100%;
- }
-
-.resource-title {
- text-align: center;
- padding: 5px 0;
- margin-top: 7px;
- margin-bottom: 5px;
-}
-
- .resource-title > a {
- font-size: 16px;
- font-weight: bold;
- line-height: 18px;
- color: #01AAED;
- }
-
- .resource-title > a:hover {
- color: #1E9FFF;
- }
-
-.resource-abstract {
- padding: 3px;
- text-align: center;
- font-size: smaller;
- color: #838383;
- height: 50px;
- overflow: hidden;
-}
-
-.resource-info {
- font-size: smaller;
- position: absolute;
- bottom: 50px;
- left: 0;
- right: 0;
- padding: 2px 10px;
-}
-
- .resource-info .category {
- float: left;
- }
-
- .resource-info .author {
- float: right;
- }
-
-.resource-footer {
- font-size: small;
- border-top: 1px solid #e7e7e7;
- box-shadow: 0 1px 0 0 #fff inset;
- color: #8B8B8C;
- height: 50px;
- position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
- padding: 0 10px;
- line-height: 50px;
- text-align: center;
-}
-
- .resource-footer a:nth-child(2) {
- display: none;
- }
-
- .resource-footer i {
- font-size: 12px !important;
- }
-
-
-/* 小屏幕(平板,大于等于 768px) */
-@media (min-width: 768px) {
- .resource {
- width: 32%;
- margin: 0 1%;
- margin-bottom: 10px;
- height: 320px;
- }
-
- .resource-main .resource:nth-child(odd) {
- margin-left: 1%;
- }
-
- .resource-main .resource:nth-child(even) {
- margin-right: 1%;
- }
-
- .resource-main .resource:nth-child(3n+1) {
- margin-left: 0;
- }
-
- .resource-main .resource:nth-child(3n+3) {
- margin-right: 0;
- }
-
- .resource-cover {
- width: 100%;
- height: 150px;
- text-align: center;
- }
-
- .resource-footer a:nth-child(2) {
- display: inline-block;
- }
-}
-
-/* 中等屏幕(桌面显示器,大于等于 992px) */
-@media (min-width: 992px) {
- .resource {
- width: 23.5%;
- margin: 0 1%;
- margin-bottom: 10px;
- }
-
- .resource-main .resource:nth-child(odd) {
- margin-left: 1%;
- }
-
- .resource-main .resource:nth-child(even) {
- margin-right: 1%;
- }
-
- .resource-main .resource:nth-child(3n+1) {
- margin-left: 1%;
- }
-
- .resource-main .resource:nth-child(3n+3) {
- margin-right: 1%;
- }
-
- .resource-main .resource:nth-child(4n+1) {
- margin-left: 0;
- }
-
- .resource-main .resource:nth-child(4n) {
- margin-right: 0;
- }
-}
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/timeline.css b/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/timeline.css
deleted file mode 100644
index df778d4019e369258c59bb66ef42d5beee578277..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/css/timeline.css
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
-
-@Name:不落阁整站模板源码
-@Author:Absolutely
-@Site:http://www.lyblogs.cn
-
-*/
-
-.timeline-box {
- background: #fff;
- padding: 8px;
- position: relative;
- min-height: 90vh;
-}
-
-.timeline-main {
- position: relative;
- min-height: 85vh;
-}
-
- .timeline-main > h1 {
- font-size: 18px;
- background: #fff;
- z-index: 1;
- position: relative;
- color: #009688;
- margin-left: 33%; /*写给不支持calc()的浏览器*/
- margin-left: -moz-calc(35% - 7px);
- margin-left: -webkit-calc(35% - 7px);
- margin-left: calc(35% - 7px);
- }
-
- .timeline-main > h1 > i {
- padding-right: 10px;
- font-size: 20px;
- }
-
- .timeline-main > h1 > span {
- display: none;
- }
-
- .timeline-main h2,
- .timeline-main h3 {
- width: 31%;
- text-align: right;
- }
-
- .timeline-main h2,
- .timeline-main h2 > a {
- font-size: 16px;
- margin: 5px 0;
- color: #1E9FFF;
- }
-
- .timeline-main h3,
- .timeline-main h3 > a {
- font-size: 14px;
- margin: 2px 0;
- color: #FF5722;
- }
-
-.timeline-month > ul > li {
- padding: 10px 0;
-}
-
- .timeline-month > ul > li .h4 {
- display: inline-block;
- width: 31%;
- text-align: right;
- float: left;
- }
-
-.date {
- display: inline-block;
- padding: 2px 5px;
- color: #009688;
-}
-
-.dot-circle {
- color: #009688;
- width: 8%;
- text-align: center;
- font-size: 22px;
- z-index: 1;
- position: relative;
- background: #fff;
- float: left;
-}
-
-.content {
- max-width: 50%;
- float: left;
- padding: 10px;
- margin-left: 10px;
- position: relative;
- z-index: 1;
- background: #009688;
- color: #fff;
-}
-
- .content::before {
- position: absolute;
- left: -20px;
- top: 6px;
- height: 0;
- width: 0;
- content: '';
- border: 10px solid rgba(255, 255, 255, 0.00);
- border-top: 6px solid rgba(255, 255, 255, 0.00);
- border-bottom: 6px solid rgba(255, 255, 255, 0.00);
- border-right-color: #009688;
- }
-
-.timeline-line {
- position: absolute;
- left: 35%;
- top: 0;
- height: 100%;
- width: 2px;
- background: #009688;
- z-index: 0;
-}
-
-.timeline-year {
- margin: 10px 0;
-}
-
-
-
-/* 小屏幕(平板,大于等于 768px) */
-@media (min-width: 768px) {
- .timeline-box {
- background: #fff;
- padding: 15px;
- position: relative;
- min-height: 90vh;
- }
-
- .timeline-main > h1 {
- font-size: 26px;
- margin-left: 16%; /*写给不支持calc()的浏览器*/
- margin-left: -moz-calc(18% - 13px);
- margin-left: -webkit-calc(18% - 13px);
- margin-left: calc(18% -13px);
- }
-
- .timeline-main > h1 > i {
- font-size: 30px;
- }
-
- .timeline-main > h1 > span {
- display: inline;
- }
-
- .timeline-main h2,
- .timeline-main h3 {
- width: 16%;
- }
-
- .timeline-main h2,
- .timeline-main h2 > a {
- font-size: 24px;
- }
-
- .timeline-main h3,
- .timeline-main h3 > a {
- font-size: 20px;
- }
-
- .timeline-month > ul > li .h4 {
- width: 16%;
- }
-
- .dot-circle {
- width: 4%;
- font-size: 22px;
- }
-
- .content {
- max-width: 70%;
- }
-
- .timeline-line {
- left: 18%;
- }
-}
-
-/* 中等屏幕(桌面显示器,大于等于 992px) */
-@media (min-width: 992px) {
- .blog-container {
- /*width: 962px;*/
- /*width:1050px;*/
- }
-
- .timeline-main > h1 {
- font-size: 34px;
- background: #fff;
- z-index: 1;
- position: relative;
- color: #009688;
- margin-left: 17%; /*写给不支持calc()的浏览器*/
- margin-left: -moz-calc(18% - 16px);
- margin-left: -webkit-calc(18% - 16px);
- margin-left: calc(18% - 16px);
- }
-
- .timeline-main > h1 > i {
- font-size: 36px;
- }
-
- .timeline-main h2,
- .timeline-main h2 > a {
- font-size: 30px;
- }
-
- .timeline-main h3,
- .timeline-main h3 > a {
- font-size: 24px;
- }
-}
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/datas/articles.json b/ace-blog-parent/ace-blog-ui/src/main/resources/static/datas/articles.json
deleted file mode 100644
index 79a2b82f3e90544881a75039dc415b8cc9e95344..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/datas/articles.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "rel": true,
- "msg": "获取成功",
- "count": 10,
- "list": [
- {
- "title": "Hello World",
- "remark": "该模块主要是针对当前版本laypage没有页容量控制功能而制作,使用该模块后即可实现每页显示多少条数据的控制!本人原创,但是可能有可能只对本人的分页写法有用!",
- "pageView": 1,
- "crtTime": "2017-01-10 10:42:36",
- "cover":"../images/cover/201703181909057125.jpg",
- "commentCount":12,
- "crtUser":"Mr.AG",
- "tag":"Spring Cloud",
- "url":"http://localhost:8765/blog/api/article/42"
- }, {
- "title": "Hello World",
- "remark": "该模块主要是针对当前版本laypage没有页容量控制功能而制作,使用该模块后即可实现每页显示多少条数据的控制!本人原创,但是可能有可能只对本人的分页写法有用!",
- "pageView": 1,
- "crtTime": "2017-01-10 10:42:36",
- "cover":"../images/cover/201703181909057125.jpg",
- "commentCount":12,
- "crtUser":"Mr.AG",
- "tag":"Spring Cloud",
- "url":"http://localhost:8765/blog/api/article/42"
- }
- ]
-}
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/Absolutely.jpg b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/Absolutely.jpg
deleted file mode 100644
index dfd6a12e02528bb2fdbf1feb123c7c9ddfe444e6..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/Absolutely.jpg and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/Logo_100.png b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/Logo_100.png
deleted file mode 100644
index 39f276fb9136d528eec554875b4cc35187c38d9c..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/Logo_100.png and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/Logo_40.png b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/Logo_40.png
deleted file mode 100644
index 170ff813e40476de430a381e5867fe48ece11c3d..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/Logo_40.png and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703051349045432.jpg b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703051349045432.jpg
deleted file mode 100644
index e0551b885b1b4ea1cd6fc55e7331b0110d06b72d..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703051349045432.jpg and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703051847567306.jpg b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703051847567306.jpg
deleted file mode 100644
index 820643b225fb50f74dcf9f599d0f1bc4a19aade8..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703051847567306.jpg and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703142313157316.jpg b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703142313157316.jpg
deleted file mode 100644
index 96ca4fea52f93a5a5e9305612fa45c6538f55a81..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703142313157316.jpg and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703152314519971.jpg b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703152314519971.jpg
deleted file mode 100644
index 5aa8afa1ac3e7bff73db0cab31edd1630c87ccd4..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703152314519971.jpg and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703162101115908.jpg b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703162101115908.jpg
deleted file mode 100644
index 5aa8afa1ac3e7bff73db0cab31edd1630c87ccd4..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703162101115908.jpg and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703181708141811.jpg b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703181708141811.jpg
deleted file mode 100644
index d0bb54d98c1ba1c65aba3915d86b68e9848cac84..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703181708141811.jpg and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703181740098218.jpg b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703181740098218.jpg
deleted file mode 100644
index c0ba48c5bc3d503f33fc2a152181061123828343..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703181740098218.jpg and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703181909057125.jpg b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703181909057125.jpg
deleted file mode 100644
index 16a4438351c386631d58c85f113de7e32e10b5b3..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/201703181909057125.jpg and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/cover.jpg b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/cover.jpg
deleted file mode 100644
index 2f223a4f4bba821ce9bbde8b6ef7b698e23793a3..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/cover.jpg and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/cover_default.jpg b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/cover_default.jpg
deleted file mode 100644
index f934dbec17afef74675e658ce030ec9f62c95a43..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/cover/cover_default.jpg and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/handshake.png b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/handshake.png
deleted file mode 100644
index fc06b7d4669f3f34583c720cf32543dcbab5d280..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/handshake.png and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/messagewall.png b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/messagewall.png
deleted file mode 100644
index 8a7eed5e97d2cdbfd6d5ca33ae27a1733bfb1371..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/messagewall.png and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/qq_32.png b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/qq_32.png
deleted file mode 100644
index 4968fe567df70f8c84dba64130c0f1e1747b5c3f..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/qq_32.png and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/qzone_32.png b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/qzone_32.png
deleted file mode 100644
index 8d83011c71821aa51609490661d14403dbecd5b1..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/qzone_32.png and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/wechat_32.png b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/wechat_32.png
deleted file mode 100644
index 499ff265f22c93f16feeee0dc0ec9a974c1eb369..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/wechat_32.png and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/weibo_32.png b/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/weibo_32.png
deleted file mode 100644
index d2a1ee71f68e3919f5e89c4a8bb265c8c30b005e..0000000000000000000000000000000000000000
Binary files a/ace-blog-parent/ace-blog-ui/src/main/resources/static/images/weibo_32.png and /dev/null differ
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/about.js b/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/about.js
deleted file mode 100644
index d8d3d6d4ffac43d3a68f34304a193ed861186669..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/about.js
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
-
-@Name:不落阁整站模板源码
-@Author:Absolutely
-@Site:http://www.lyblogs.cn
-
-*/
-
-layui.use(['element', 'jquery', 'form', 'layedit'], function () {
- var element = layui.element();
- var form = layui.form();
- var $ = layui.jquery;
- var layedit = layui.layedit;
-
- //评论和留言的编辑器
- var editIndex = layedit.build('remarkEditor', {
- height: 150,
- tool: ['face', '|', 'left', 'center', 'right', '|', 'link'],
- });
- //评论和留言的编辑器的验证
- layui.form().verify({
- content: function (value) {
- value = $.trim(layedit.getText(editIndex));
- if (value == "") return "自少得有一个字吧";
- layedit.sync(editIndex);
- }
- });
-
- //Hash地址的定位
- var layid = location.hash.replace(/^#tabIndex=/, '');
- if (layid == "") {
- element.tabChange('tabAbout', 1);
- }
- element.tabChange('tabAbout', layid);
-
- element.on('tab(tabAbout)', function (elem) {
- location.hash = 'tabIndex=' + $(this).attr('lay-id');
- });
-
- //监听留言提交
- form.on('submit(formLeaveMessage)', function (data) {
- var index = layer.load(1);
- //模拟留言提交
- setTimeout(function () {
- layer.close(index);
- var content = data.field.editorContent;
- var html = '';
- $('.blog-comment').append(html);
- $('#remarkEditor').val('');
- editIndex = layui.layedit.build('remarkEditor', {
- height: 150,
- tool: ['face', '|', 'left', 'center', 'right', '|', 'link'],
- });
- layer.msg("留言成功", { icon: 1 });
- }, 500);
- return false;
- });
-
- //监听留言回复提交
- form.on('submit(formReply)', function (data) {
- var index = layer.load(1);
- //模拟留言回复
- setTimeout(function () {
- layer.close(index);
- var content = data.field.replyContent;
- var html = '';
- $(data.form).find('textarea').val('');
- $(data.form).parent('.replycontainer').before(html).siblings('.comment-parent').children('p').children('a').click();
- layer.msg("回复成功", { icon: 1 });
- }, 500);
- return false;
- });
-});
-function btnReplyClick(elem) {
- var $ = layui.jquery;
- $(elem).parent('p').parent('.comment-parent').siblings('.replycontainer').toggleClass('layui-hide');
- if ($(elem).text() == '回复') {
- $(elem).text('收起')
- } else {
- $(elem).text('回复')
- }
-}
-systemTime();
-
-function systemTime() {
- //获取系统时间。
- var dateTime = new Date();
- var year = dateTime.getFullYear();
- var month = dateTime.getMonth() + 1;
- var day = dateTime.getDate();
- var hh = dateTime.getHours();
- var mm = dateTime.getMinutes();
- var ss = dateTime.getSeconds();
-
- //分秒时间是一位数字,在数字前补0。
- mm = extra(mm);
- ss = extra(ss);
-
- //将时间显示到ID为time的位置,时间格式形如:19:18:02
- document.getElementById("time").innerHTML = year + "-" + month + "-" + day + " " + hh + ":" + mm + ":" + ss;
- //每隔1000ms执行方法systemTime()。
- setTimeout("systemTime()", 1000);
-}
-
-//补位函数。
-function extra(x) {
- //如果传入数字小于10,数字前补一位0。
- if (x < 10) {
- return "0" + x;
- }
- else {
- return x;
- }
-}
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/detail.js b/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/detail.js
deleted file mode 100644
index c2e5ac1f98640b4802fd040df6654d374f1c7c4b..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/detail.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-
-@Name:不落阁整站模板源码
-@Author:Absolutely
-@Site:http://www.lyblogs.cn
-
-*/
-
-prettyPrint();
-layui.use(['form', 'layedit'], function () {
- var form = layui.form();
- var $ = layui.jquery;
- var layedit = layui.layedit;
-
- //评论和留言的编辑器
- var editIndex = layedit.build('remarkEditor', {
- height: 150,
- tool: ['face', '|', 'left', 'center', 'right', '|', 'link'],
- });
- //评论和留言的编辑器的验证
- layui.form().verify({
- content: function (value) {
- value = $.trim(layedit.getText(editIndex));
- if (value == "") return "自少得有一个字吧";
- layedit.sync(editIndex);
- }
- });
-
- //监听评论提交
- form.on('submit(formRemark)', function (data) {
- var index = layer.load(1);
- //模拟评论提交
- setTimeout(function () {
- layer.close(index);
- var content = data.field.editorContent;
- var html = '';
- $('.blog-comment').append(html);
- $('#remarkEditor').val('');
- editIndex = layui.layedit.build('remarkEditor', {
- height: 150,
- tool: ['face', '|', 'left', 'center', 'right', '|', 'link'],
- });
- layer.msg("评论成功", { icon: 1 });
- }, 500);
- return false;
- });
-});
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/global.js b/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/global.js
deleted file mode 100644
index 12fecf910a0502674a1aa3ccfdf026c9bbc921aa..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/global.js
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-
-@Name:不落阁整站模板源码
-@Author:Absolutely
-@Site:http://www.lyblogs.cn
-
-*/
-
-layui.use(['element', 'layer', 'util', 'form'], function () {
- var $ = layui.jquery;
- //模拟QQ登陆
- $('.blog-user').click(function () {
- var user = this;
- var index = layer.load(1);
- setTimeout(function () {
- layer.close(index);
- $(user).toggleClass('layui-hide').siblings('a.blog-user').toggleClass('layui-hide');
- }, 800);
- });
- //分享工具
- layui.util.fixbar({
- bar1: '',
- click: function (type) {
- if (type === 'bar1') {
- var sear = new RegExp('layui-hide');
- if (sear.test($('.blog-share').attr('class'))) {
- shareIn();
- } else {
- shareOut();
- }
- }
- }
- });
-
- //子栏目导航点击事件
- $('.child-nav span').click(function () {
- layer.msg('切换到相应栏目');
- $(this).addClass('child-nav-btn-this').siblings().removeClass('child-nav-btn-this');
- });
-
- //侧边导航开关点击事件
- $('.blog-navicon').click(function () {
- var sear = new RegExp('layui-hide');
- if (sear.test($('.blog-nav-left').attr('class'))) {
- leftIn();
- } else {
- leftOut();
- }
- });
- //侧边导航遮罩点击事件
- $('.blog-mask').click(function () {
- leftOut();
- });
- //blog-body和blog-footer点击事件,用来关闭百度分享和类别导航
- $('.blog-body,.blog-footer').click(function () {
- shareOut();
- categoryOut();
- });
- //类别导航开关点击事件
- $('.category-toggle').click(function (e) {
- e.stopPropagation(); //阻止事件冒泡
- categroyIn();
- });
- //类别导航点击事件,用来关闭类别导航
- $('.article-category').click(function () {
- categoryOut();
- });
- //具体类别点击事件
- $('.article-category > a').click(function (e) {
- e.stopPropagation(); //阻止事件冒泡
- });
-
- //显示百度分享
- function shareIn() {
- $('.blog-share').unbind('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');
- $('.blog-share').removeClass('shareOut');
- $('.blog-share').addClass('shareIn');
- $('.blog-share').removeClass('layui-hide');
- $('.blog-share').addClass('layui-show');
- }
- //隐藏百度分享
- function shareOut() {
- $('.blog-share').on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
- $('.blog-share').addClass('layui-hide');
- });
- $('.blog-share').removeClass('shareIn');
- $('.blog-share').addClass('shareOut');
- $('.blog-share').removeClass('layui-show');
- }
- //显示侧边导航
- function leftIn() {
- $('.blog-mask').unbind('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');
- $('.blog-nav-left').unbind('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');
-
- $('.blog-mask').removeClass('maskOut');
- $('.blog-mask').addClass('maskIn');
- $('.blog-mask').removeClass('layui-hide');
- $('.blog-mask').addClass('layui-show');
-
- $('.blog-nav-left').removeClass('leftOut');
- $('.blog-nav-left').addClass('leftIn');
- $('.blog-nav-left').removeClass('layui-hide');
- $('.blog-nav-left').addClass('layui-show');
- }
- //隐藏侧边导航
- function leftOut() {
- $('.blog-mask').on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
- $('.blog-mask').addClass('layui-hide');
- });
- $('.blog-nav-left').on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
- $('.blog-nav-left').addClass('layui-hide');
- });
-
- $('.blog-mask').removeClass('maskIn');
- $('.blog-mask').addClass('maskOut');
- $('.blog-mask').removeClass('layui-show');
-
- $('.blog-nav-left').removeClass('leftIn');
- $('.blog-nav-left').addClass('leftOut');
- $('.blog-nav-left').removeClass('layui-show');
- }
- //显示类别导航
- function categroyIn() {
- $('.category-toggle').addClass('layui-hide');
- $('.article-category').unbind('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');
-
- $('.article-category').removeClass('categoryOut');
- $('.article-category').addClass('categoryIn');
- $('.article-category').addClass('layui-show');
- }
- //隐藏类别导航
- function categoryOut() {
- $('.article-category').on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
- $('.article-category').removeClass('layui-show');
- $('.category-toggle').removeClass('layui-hide');
- });
-
- $('.article-category').removeClass('categoryIn');
- $('.article-category').addClass('categoryOut');
- }
-
-});
-
-var base = {};
-base.url = "http://localhost:8765";
-//百度分享插件
-window._bd_share_config = {
- "common": {
- "bdSnsKey": {},
- "bdText": "",
- "bdStyle": "0",
- "bdSize": "32"
- },
- "share": {}
-};
-with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/home.js b/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/home.js
deleted file mode 100644
index 72cd8c22a73d25ddf3d7e92cab82da4617bc2eb6..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/home.js
+++ /dev/null
@@ -1,20 +0,0 @@
-
-layui.use('jquery', function () {
- var $ = layui.jquery;
- $(function () {
- //播放公告
- playAnnouncement(3000);
- });
- function playAnnouncement(interval) {
- var index = 0;
- var $announcement = $('.home-tips-container>span');
- //自动轮换
- setInterval(function () {
- index++; //下标更新
- if (index >= $announcement.length) {
- index = 0;
- }
- $announcement.eq(index).stop(true, true).fadeIn().siblings('span').fadeOut(); //下标对应的图片显示,同辈元素隐藏
- }, interval);
- }
-});
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/paging.js b/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/paging.js
deleted file mode 100644
index 2e8c049973411402d095415919e0bbf28d2e0b2c..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/paging.js
+++ /dev/null
@@ -1,196 +0,0 @@
-/**
- * Paging 组件
- * @description 基于laytpl 、laypage、layer 封装的组件
- * @author Van zheng_jinfan@126.com
- * @link http://m.zhengjinfan.cn
- * @license MIT
- * @version 1.0.1
- */
-layui.define(['layer', 'laypage', 'laytpl'], function (exports) {
- "use strict";
- var $ = layui.jquery,
- layer = parent.layui.layer === undefined ? layui.layer : parent.layui.layer,
- laytpl = layui.laytpl;
-
- var Paging = function () {
- this.config = {
- url: undefined, //数据远程地址
- type: 'POST', //数据的获取方式 get or post
- elem: undefined, //内容容器
- params: {}, //获取数据时传递的额外参数
- openWait: false, //加载数据时是否显示等待框
- tempElem: undefined, //模板容器
- tempType: 0, //如果等于0则需要设置模板容器,1为提供模板内容
- paged: true,//是否显示分页组件
- pageConfig: { //参数应该为object类型
- elem: undefined,
- pageSize: 15 //分页大小
- },
- success: undefined, //type:function
- fail: function (res) {
- console.log(res.msg);
- //layer.msg(res.msg, { icon: 2 });
- }, //type:function
- complate: undefined, //type:function
- serverError: function (xhr, status, error) { //ajax的服务错误
- throwError("错误提示: " + xhr.status + " " + xhr.statusText);
- }
- };
- };
- /**
- * 版本号
- */
- Paging.prototype.v = '1.0.3';
-
- /**
- * 设置
- * @param {Object} options
- */
- Paging.prototype.set = function (options) {
- var that = this;
- $.extend(true, that.config, options);
- return that;
- };
- /**
- * 初始化
- * @param {Object} options
- */
- Paging.prototype.init = function (options) {
- var that = this;
- $.extend(true, that.config, options);
- var _config = that.config;
- if (_config.url === undefined) {
- throwError('Paging Error:请配置远程URL!');
- }
- if (_config.elem === undefined) {
- throwError('Paging Error:请配置参数elem!');
- }
- if ($(_config.elem).length === 0) {
- throwError('Paging Error:找不到配置的容器elem!');
- }
- if (_config.tempType === 0) {
- if (_config.tempElem === undefined) {
- throwError('Paging Error:请配置参数tempElem!');
- }
- if ($(_config.tempElem).length === 0) {
- throwError('Paging Error:找不到配置的容器tempElem!');
- }
- }
- if (_config.paged) {
- var _pageConfig = _config.pageConfig;
- if (_pageConfig.elem === undefined) {
- throwError('Paging Error:请配置参数pageConfig.elem!');
- }
- }
- if (_config.type.toUpperCase() !== 'GET' && _config.type.toUpperCase() !== 'POST') {
- throwError('Paging Error:type参数配置出错,只支持GET或都POST');
- }
- that.get({
- pageIndex: 1,
- pageSize: _config.pageConfig.pageSize
- });
-
- return that;
- };
- /**
- * 获取数据
- * @param {Object} options
- */
- Paging.prototype.get = function (options) {
- var that = this;
- var _config = that.config;
- var loadIndex = undefined;
- if (_config.openWait) {
- loadIndex = layer.load(2);
- }
- //默认参数
- var df = {
- pageIndex: 1,
- pageSize: _config.pageConfig.pageSize
- };
- $.extend(true, _config.params, df, options);
- $.ajax({
- type: _config.type,
- url: _config.url,
- data: _config.params,
- contentType: "application/json; charset=utf-8",
- dataType: 'jsonp',
- jsonp: 'callback',
- success: function (result, status, xhr) {
- if (loadIndex !== undefined)
- layer.close(loadIndex); //关闭等待层
- if (result.rel) {
- //获取模板
- var tpl = _config.tempType === 0 ? $(_config.tempElem).html() : _config.tempElem;
- //渲染数据
- laytpl(tpl).render(result, function (html) {
- if (_config.renderBefore) {
- _config.renderBefore(html, function (formatHtml) {
- $(_config.elem).html(formatHtml);
- }, result.list);
- }
- else {
- $(_config.elem).html(html);
- }
- });
- if (_config.paged) {
- if (result.count === null || result.count === undefined) {
- throwError('Paging Error:请返回数据总数!');
- return;
- }
- var _pageConfig = _config.pageConfig;
- var pageSize = _pageConfig.pageSize;
- var pages = result.count % pageSize == 0 ?
- (result.count / pageSize) : (result.count / pageSize + 1);
- var defaults = {
- cont: $(_pageConfig.elem),
- curr: _config.params.pageIndex,
- pages: pages,
- jump: function (obj, first) {
- //得到了当前页,用于向服务端请求对应数据
- var curr = obj.curr;
- if (!first) {
- that.get({
- pageIndex: curr,
- pageSize: pageSize
- });
- }
- }
- };
- $.extend(defaults, _pageConfig); //参数合并
- layui.laypage(defaults); //调用laypage组件渲染分页
- }
- if (_config.success) {
- _config.success(); //渲染成功
- }
- } else {
- var thLength = $(_config.elem).siblings('thead').find('th').length;
- $(_config.elem).html('' + result.msg + ' |
');
- if (_config.fail) {
- _config.fail(result); //获取数据失败
- }
- }
- if (_config.complate) {
- _config.complate(); //渲染完成
- }
- },
- error: function (xhr, status, error) {
- if (loadIndex !== undefined)
- layer.close(loadIndex); //关闭等待层
- _config.serverError(xhr, status, error); //服务器错误
- }
- });
- };
- /**
- * 抛出一个异常错误信息
- * @param {String} msg
- */
- function throwError(msg) {
- throw new Error(msg);
- };
-
- var paging = new Paging();
- exports('paging', function (options) {
- return paging.set(options);
- });
-});
\ No newline at end of file
diff --git a/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/prettify.js b/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/prettify.js
deleted file mode 100644
index eef5ad7e6a07676b3919146d583d1c190bf1e163..0000000000000000000000000000000000000000
--- a/ace-blog-parent/ace-blog-ui/src/main/resources/static/js/prettify.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
-(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
-[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
-l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
-q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
-q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
-"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
-a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
-for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
-"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
-H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
-J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
-I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]+/],["dec",/^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^
-
-
-
-
-
2017-03-18 18:09回复