Showing preview only (926K chars total). Download the full file or copy to clipboard to get everything.
Repository: jhao104/django-blog
Branch: master
Commit: bb7b8349b32a
Files: 84
Total size: 884.8 KB
Directory structure:
gitextract_0wolcq7b/
├── LICENSE
├── README.md
├── docs/
│ └── install.md
├── my_uwsgi.ini
├── requirements.txt
├── src/
│ ├── blog/
│ │ ├── __init__.py
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── context_processors.py
│ │ ├── models.py
│ │ ├── templatetags/
│ │ │ ├── __init__.py
│ │ │ └── custom_filter.py
│ │ ├── tests.py
│ │ ├── urls.py
│ │ └── views.py
│ ├── django_blog/
│ │ ├── __init__.py
│ │ ├── blogroll.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ ├── util.py
│ │ └── wsgi.py
│ ├── manage.py
│ ├── static/
│ │ ├── 404/
│ │ │ ├── css
│ │ │ └── style.css
│ │ ├── css/
│ │ │ ├── animation.css
│ │ │ ├── default.css
│ │ │ ├── flexslider.css
│ │ │ ├── font-icon.css
│ │ │ ├── lightbox.css
│ │ │ ├── login.css
│ │ │ ├── markdown.css
│ │ │ ├── public.css
│ │ │ ├── skin_1.css
│ │ │ ├── skin_2.css
│ │ │ └── skin_3.css
│ │ ├── cur/
│ │ │ ├── default.cur
│ │ │ └── link.cur
│ │ ├── js/
│ │ │ ├── album.js
│ │ │ ├── jquery.flexslider-min.js
│ │ │ ├── layer/
│ │ │ │ ├── extend/
│ │ │ │ │ └── layer.ext.js
│ │ │ │ ├── layer.js
│ │ │ │ └── skin/
│ │ │ │ ├── layer.css
│ │ │ │ └── layer.ext.css
│ │ │ ├── lightbox.js
│ │ │ ├── load.js
│ │ │ ├── my.js
│ │ │ ├── skin.js
│ │ │ ├── superbg-custom.js
│ │ │ └── tooltip.js
│ │ ├── layui/
│ │ │ ├── css/
│ │ │ │ ├── layui.css
│ │ │ │ ├── layui.mobile.css
│ │ │ │ └── modules/
│ │ │ │ ├── code.css
│ │ │ │ └── layer/
│ │ │ │ └── default/
│ │ │ │ └── layer.css
│ │ │ ├── lay/
│ │ │ │ └── modules/
│ │ │ │ ├── jquery.js
│ │ │ │ ├── layer.js
│ │ │ │ └── mobile.js
│ │ │ ├── layui.all.js
│ │ │ └── layui.js
│ │ └── prism/
│ │ ├── prism.css
│ │ └── prism.js
│ └── templates/
│ ├── 404.html
│ ├── blog/
│ │ ├── about.html
│ │ ├── archive.html
│ │ ├── base.html
│ │ ├── blogroll.html
│ │ ├── category.html
│ │ ├── component/
│ │ │ ├── auto_push_baidu.html
│ │ │ ├── blog_list.html
│ │ │ ├── changyan.html
│ │ │ └── pagination.html
│ │ ├── detail.html
│ │ ├── footer.html
│ │ ├── header.html
│ │ ├── index.html
│ │ ├── link.html
│ │ ├── list.html
│ │ ├── message.html
│ │ ├── message_board.html
│ │ ├── right.html
│ │ ├── search.html
│ │ └── tag.html
│ ├── robots.txt
│ └── sitemap.txt
└── uwsgi_params
================================================
FILE CONTENTS
================================================
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2020 J_hao104
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
## Django搭建博客


[](http://www.spiderpy.cn/blog/)
使用Django快速搭建博客
### 要求
* Python: 3.5
* Django: 2.2.0
### 示例博客:<http://www.spiderpy.cn/blog>
### 特点
* markdown 渲染,代码高亮
* 三方社会化评论系统支持(畅言)
* 三种皮肤自由切换
* 阅读排行榜/最新评论
* 多目标源博文分享
* 博文归档
* 友情链接
### 下载
```
wget https://github.com/jhao104/django-blog/archive/master.zip
or
git clone git@github.com:jhao104/django-blog.git
```
### 安装
```
pip install -r requirements.txt # 安装所有依赖
修改setting.py配置数据库
配置畅言:到http://changyan.kuaizhan.com/注册站点,将templates/blog/component/changyan.html中js部分换成你在畅言中生成的js。
畅言js位置: 畅言管理后台-》安装畅言-》通用代码安装-》自适应安装代码
python manage.py makemigrations blog
python manage.py migrate
python manage.py runserver
```
[文档](docs/install.md)
### 使用
```python
# 初始化用户名密码
python manage.py createsuperuser
# 按照提示输入用户名、邮箱、密码即可
# 登录后台 编辑类型、标签、发布文章等
http://ip:port/admin
```
浏览器中打开<http://127.0.0.1:8000/>即可访问
## Screen Shots
* 首页

* 文章列表

* 文章内容

## 历史版本
* [v2.0](https://github.com/jhao104/django-blog/tree/v2.0)
* [v1.0](https://github.com/jhao104/django-blog/tree/v1.0)
================================================
FILE: docs/install.md
================================================
## 安装文档
### 源码安装
* 下载代码
```shell script
git clone https://github.com/jhao104/django-blog.git
```
* 安装依赖
```shell script
pip install -r requirements.txt
```
* 配置
* 修改数据库配置
```shell script
django_blog.settings.py
```
* 配置畅言(评论需要)
登录畅言http://changyan.kuaizhan.com/, 注册你的站点并配置完毕,
修改 `templates/blog/component/changyan.html` 内容,替换在畅言中生成的js。
畅言js位置: 畅言管理后台-》安装畅言-》通用代码安装-》自适应安装代码, 替换现有代码
* 初始化
```shell script
python manage.py makemigrations blog
python manage.py migrate
```
* 启动
```shell script
python manage.py runserver
```
生产部署和一般Django应用无异,可自行搜索。
================================================
FILE: my_uwsgi.ini
================================================
[uwsgi]
# Django-related settings
socket = :8001
# the base directory (full path)
chdir = /home/ubuntu/web_blog
# Django s wsgi file
module = django_blog.wsgi
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 8
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = false
daemonize = /var/log/web_blog.log
================================================
FILE: requirements.txt
================================================
Django==2.2.18
Markdown==3.3
PyMySQL==0.10.1
================================================
FILE: src/blog/__init__.py
================================================
import pymysql
pymysql.install_as_MySQLdb()
================================================
FILE: src/blog/admin.py
================================================
from django.contrib import admin
# Register your models here.
from blog.models import Tag, Article, Category
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
date_hierarchy = 'date_time'
list_display = ('title', 'category', 'author', 'date_time', 'view')
list_filter = ('category', 'author')
filter_horizontal = ('tag',)
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
pass
@admin.register(Tag)
class TagAdmin(admin.ModelAdmin):
pass
================================================
FILE: src/blog/apps.py
================================================
from __future__ import unicode_literals
from django.apps import AppConfig
class BlogConfig(AppConfig):
name = 'blog'
================================================
FILE: src/blog/context_processors.py
================================================
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: context_processors.py
Description :
Author : JHao
date: 2017/4/14
-------------------------------------------------
Change Activity:
2017/4/14:
-------------------------------------------------
"""
__author__ = 'JHao'
import importlib
from django_blog import blogroll
from blog.models import Category, Article, Tag, Comment
def sidebar(request):
category_list = Category.objects.all()
# 所有类型
blog_top = Article.objects.all().values("id", "title", "view").order_by('-view')[0:6]
# 文章排行
tag_list = Tag.objects.all()
# 标签
comment = Comment.objects.all().order_by('-create_time')[0:6]
# 评论
importlib.reload(blogroll)
# 友链
return {
'category_list': category_list,
'blog_top': blog_top,
'tag_list': tag_list,
'comment_list': comment,
'blogroll': blogroll.sites
}
if __name__ == '__main__':
pass
================================================
FILE: src/blog/models.py
================================================
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: models.py
Description :
Author : JHao
date: 2016/11/18
-------------------------------------------------
Change Activity:
2016/11/18:
-------------------------------------------------
"""
from django.db import models
from django.conf import settings
# Create your models here.
class Tag(models.Model):
tag_name = models.CharField('标签名称', max_length=30)
def __str__(self):
return self.tag_name
class Article(models.Model):
title = models.CharField(max_length=200) # 博客标题
category = models.ForeignKey('Category', verbose_name='文章类型', on_delete=models.CASCADE)
date_time = models.DateField(auto_now_add=True) # 博客日期
content = models.TextField(blank=True, null=True) # 文章正文
digest = models.TextField(blank=True, null=True) # 文章摘要
author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='作者', on_delete=models.CASCADE)
view = models.BigIntegerField(default=0) # 阅读数
comment = models.BigIntegerField(default=0) # 评论数
picture = models.CharField(max_length=200) # 标题图片地址
tag = models.ManyToManyField(Tag) # 标签
def __str__(self):
return self.title
def sourceUrl(self):
source_url = settings.HOST + '/blog/detail/{id}'.format(id=self.pk)
return source_url # 给网易云跟帖使用
def viewed(self):
"""
增加阅读数
:return:
"""
self.view += 1
self.save(update_fields=['view'])
def commenced(self):
"""
增加评论数
:return:
"""
self.comment += 1
self.save(update_fields=['comment'])
class Meta: # 按时间降序
ordering = ['-date_time']
class Category(models.Model):
name = models.CharField('文章类型', max_length=30)
created_time = models.DateTimeField('创建时间', auto_now_add=True)
last_mod_time = models.DateTimeField('修改时间', auto_now=True)
class Meta:
ordering = ['name']
verbose_name = "文章类型"
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class Comment(models.Model):
title = models.CharField("标题", max_length=100)
source_id = models.CharField('文章id或source名称', max_length=25)
create_time = models.DateTimeField('评论时间', auto_now=True)
user_name = models.CharField('评论用户', max_length=25)
url = models.CharField('链接', max_length=100)
comment = models.CharField('评论内容', max_length=500)
================================================
FILE: src/blog/templatetags/__init__.py
================================================
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: __init__.py
Description :
Author : JHao
date: 2017/4/14
-------------------------------------------------
Change Activity:
2017/4/14:
-------------------------------------------------
"""
__author__ = 'JHao'
================================================
FILE: src/blog/templatetags/custom_filter.py
================================================
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: custom_filter.py
Description :
Author : JHao
date: 2017/4/14
-------------------------------------------------
Change Activity:
2017/4/14:
-------------------------------------------------
"""
__author__ = 'JHao'
import markdown
from django import template
from django.utils.safestring import mark_safe
from django.template.defaultfilters import stringfilter
register = template.Library()
@register.filter
def slice_list(value, index):
return value[index]
@register.filter(is_safe=True)
@stringfilter
def custom_markdown(value):
content = mark_safe(markdown.markdown(value,
output_format='html5',
extensions=[
'markdown.extensions.extra',
'markdown.extensions.fenced_code',
'markdown.extensions.tables',
],
safe_mode=True,
enable_attributes=False))
return content
@register.filter
def tag2string(value):
"""
将Tag转换成string >'python,爬虫'
:param value:
:return:
"""
return ','.join([each.get('tag_name', '') for each in value])
if __name__ == '__main__':
pass
================================================
FILE: src/blog/tests.py
================================================
from django.test import TestCase
# Create your tests here.
================================================
FILE: src/blog/urls.py
================================================
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: urls.py
Description :
Author : JHao
date: 2017/4/13
-------------------------------------------------
Change Activity:
2017/4/13:
-------------------------------------------------
"""
__author__ = 'JHao'
from blog import views
from django.urls import path
urlpatterns = [
path('', views.index, name='index'),
path('list/', views.blog_list, name='list'),
path('tag/<str:name>/', views.tag, name='tag'),
path('category/<str:name>/', views.category, name='category'),
path('detail/<int:pk>/', views.detail, name='detail'),
path('archive/', views.archive, name='archive'),
path('search/', views.search, name='search'),
path('message/', views.message, name='message'),
path('getComment/', views.get_comment, name='get_comment'),
]
================================================
FILE: src/blog/views.py
================================================
# -*- coding: utf-8 -*-
# Create your views here.
import json
from django.http import JsonResponse
from django_blog.util import PageInfo
from blog.models import Article, Comment
from django.views.decorators.csrf import csrf_exempt
from django.shortcuts import render, get_object_or_404
def get_page(request):
page_number = request.GET.get("page")
return 1 if not page_number or not page_number.isdigit() else int(page_number)
def index(request):
_blog_list = Article.objects.all().order_by('-date_time')[0:5]
_blog_hot = Article.objects.all().order_by('-view')[0:6]
return render(request, 'blog/index.html', {"blog_list": _blog_list, "blog_hot": _blog_hot})
def blog_list(request):
"""
列表
:param request:
:return:
"""
page_number = get_page(request)
blog_count = Article.objects.count()
page_info = PageInfo(page_number, blog_count)
_blog_list = Article.objects.all()[page_info.index_start: page_info.index_end]
return render(request, 'blog/list.html', {"blog_list": _blog_list, "page_info": page_info})
def category(request, name):
"""
分类
:param request:
:param name:
:return:
"""
page_number = get_page(request)
blog_count = Article.objects.filter(category__name=name).count()
page_info = PageInfo(page_number, blog_count)
_blog_list = Article.objects.filter(category__name=name)[page_info.index_start: page_info.index_end]
return render(request, 'blog/category.html', {"blog_list": _blog_list, "page_info": page_info,
"category": name})
def tag(request, name):
"""
标签
:param request:
:param name
:return:
"""
page_number = get_page(request)
blog_count = Article.objects.filter(tag__tag_name=name).count()
page_info = PageInfo(page_number, blog_count)
_blog_list = Article.objects.filter(tag__tag_name=name)[page_info.index_start: page_info.index_end]
return render(request, 'blog/tag.html', {"blog_list": _blog_list,
"tag": name,
"page_info": page_info})
def archive(request):
"""
文章归档
:param request:
:return:
"""
_blog_list = Article.objects.values("id", "title", "date_time").order_by('-date_time')
archive_dict = {}
for blog in _blog_list:
pub_month = blog.get("date_time").strftime("%Y年%m月")
if pub_month in archive_dict:
archive_dict[pub_month].append(blog)
else:
archive_dict[pub_month] = [blog]
data = sorted([{"date": _[0], "blogs": _[1]} for _ in archive_dict.items()], key=lambda item: item["date"],
reverse=True)
return render(request, 'blog/archive.html', {"data": data})
def message(request):
return render(request, 'blog/message_board.html', {"source_id": "message"})
@csrf_exempt
def get_comment(request):
"""
接收畅言的评论回推, post方式回推
:param request:
:return:
"""
arg = request.POST
data = arg.get('data')
data = json.loads(data)
title = data.get('title')
url = data.get('url')
source_id = data.get('sourceid')
if source_id not in ['message']:
article = Article.objects.get(pk=source_id)
article.commenced()
comments = data.get('comments')[0]
content = comments.get('content')
user = comments.get('user').get('nickname')
Comment(title=title, source_id=source_id, user_name=user, url=url, comment=content).save()
return JsonResponse({"status": "ok"})
def detail(request, pk):
"""
博文详情
:param request:
:param pk:
:return:
"""
blog = get_object_or_404(Article, pk=pk)
blog.viewed()
return render(request, 'blog/detail.html', {"blog": blog})
def search(request):
"""
搜索
:param request:
:return:
"""
key = request.GET['key']
page_number = get_page(request)
blog_count = Article.objects.filter(title__icontains=key).count()
page_info = PageInfo(page_number, blog_count)
_blog_list = Article.objects.filter(title__icontains=key)[page_info.index_start: page_info.index_end]
return render(request, 'blog/search.html', {"blog_list": _blog_list, "pages": page_info, "key": key})
def page_not_found_error(request, exception):
return render(request, "404.html", status=404)
def page_error(request):
return render(request, "404.html", status=500)
================================================
FILE: src/django_blog/__init__.py
================================================
================================================
FILE: src/django_blog/blogroll.py
================================================
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: blogroll
Description :
Author : JHao
date: 2020/10/9
-------------------------------------------------
Change Activity:
2020/10/9:
-------------------------------------------------
"""
__author__ = 'JHao'
sites = [
{"url": "https://www.zaoshu.io/", "name": "造数", "desc": "智能云爬虫"},
{"url": "http://brucedone.com/", "name": "大鱼的鱼塘", "desc": "大鱼的鱼塘 - 一个总会有收获的地方"},
{"url": "http://www.songluyi.com/", "name": "灯塔水母", "desc": "灯塔水母"},
{"url": "http://blog.topspeedsnail.com/", "name": "斗大的熊猫", "desc": "本博客专注于技术,Linux,编程,Python,C,Ubuntu、开源软件、Github等"},
{"url": "https://www.urlteam.org/", "name": "URL-team", "desc": "URL-team"},
]
================================================
FILE: src/django_blog/settings.py
================================================
"""
Django settings for django_blog project.
Generated by 'django-admin startproject' using Django 1.10.2.
For more information on this file, see
https://docs.djangoproject.com/en/1.10/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.10/ref/settings/
"""
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.10/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '85bus3!*+_3t1ks)&&o(u-liuhucshja!-44a1squ93=#+v+4r'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['*']
# HOST = "http://www.spiderpy.cn"
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog.apps.BlogConfig'
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'django_blog.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'blog.context_processors.sidebar'
],
},
},
]
WSGI_APPLICATION = 'django_blog.wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'blog',
'USER': 'root',
'PASSWORD': 'jccfc',
'HOST': '19.19.9.231',
'PORT': '3306'
}
}
# Password validation
# https://docs.djangoproject.com/en/1.10/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/1.10/topics/i18n/
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
================================================
FILE: src/django_blog/urls.py
================================================
"""django_blog URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.10/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.urls import path, include
from django.contrib import admin
from blog import views
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include(('blog.urls', 'blog'), namespace='blog')),
path('', views.index, name='index'),
]
handler404 = views.page_not_found_error
handler500 = views.page_error
================================================
FILE: src/django_blog/util.py
================================================
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: util
Description :
Author : JHao
date: 2020/9/30
-------------------------------------------------
Change Activity:
2020/9/30:
-------------------------------------------------
"""
__author__ = 'JHao'
from math import ceil
class PageInfo(object):
def __init__(self, page, total, limit=8):
"""
:param page: 页数
:param total: 总条数
:param limit: 每页条数
"""
self._limit = limit
self._total = total
self._page = page
self._index_start = (int(page) - 1) * int(limit)
self._index_end = int(page) * int(limit)
@property
def index_start(self):
return self._index_start
@property
def index_end(self):
return self._index_end
@property
def current_page(self):
return self._page
@property
def total_page(self):
return ceil(self._total / self._limit)
@property
def total_number(self):
return self._total
================================================
FILE: src/django_blog/wsgi.py
================================================
"""
WSGI config for django_blog project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_blog.settings")
application = get_wsgi_application()
================================================
FILE: src/manage.py
================================================
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_blog.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)
================================================
FILE: src/static/404/css
================================================
/* cyrillic-ext */
@font-face {
font-family: 'Ubuntu';
font-style: italic;
font-weight: 300;
src: local('Ubuntu Light Italic'), local('Ubuntu-LightItalic'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCp6KVjbNBYlgoKejZftVyCN4Ffgg.woff2) format('woff2');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Ubuntu';
font-style: italic;
font-weight: 300;
src: local('Ubuntu Light Italic'), local('Ubuntu-LightItalic'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCp6KVjbNBYlgoKejZftVyLN4Ffgg.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Ubuntu';
font-style: italic;
font-weight: 300;
src: local('Ubuntu Light Italic'), local('Ubuntu-LightItalic'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCp6KVjbNBYlgoKejZftVyDN4Ffgg.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Ubuntu';
font-style: italic;
font-weight: 300;
src: local('Ubuntu Light Italic'), local('Ubuntu-LightItalic'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCp6KVjbNBYlgoKejZftVyMN4Ffgg.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* latin-ext */
@font-face {
font-family: 'Ubuntu';
font-style: italic;
font-weight: 300;
src: local('Ubuntu Light Italic'), local('Ubuntu-LightItalic'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCp6KVjbNBYlgoKejZftVyBN4Ffgg.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Ubuntu';
font-style: italic;
font-weight: 300;
src: local('Ubuntu Light Italic'), local('Ubuntu-LightItalic'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCp6KVjbNBYlgoKejZftVyPN4E.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
}
/* cyrillic-ext */
@font-face {
font-family: 'Ubuntu';
font-style: italic;
font-weight: 500;
src: local('Ubuntu Medium Italic'), local('Ubuntu-MediumItalic'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCp6KVjbNBYlgoKejYHtFyCN4Ffgg.woff2) format('woff2');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Ubuntu';
font-style: italic;
font-weight: 500;
src: local('Ubuntu Medium Italic'), local('Ubuntu-MediumItalic'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCp6KVjbNBYlgoKejYHtFyLN4Ffgg.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Ubuntu';
font-style: italic;
font-weight: 500;
src: local('Ubuntu Medium Italic'), local('Ubuntu-MediumItalic'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCp6KVjbNBYlgoKejYHtFyDN4Ffgg.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Ubuntu';
font-style: italic;
font-weight: 500;
src: local('Ubuntu Medium Italic'), local('Ubuntu-MediumItalic'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCp6KVjbNBYlgoKejYHtFyMN4Ffgg.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* latin-ext */
@font-face {
font-family: 'Ubuntu';
font-style: italic;
font-weight: 500;
src: local('Ubuntu Medium Italic'), local('Ubuntu-MediumItalic'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCp6KVjbNBYlgoKejYHtFyBN4Ffgg.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Ubuntu';
font-style: italic;
font-weight: 500;
src: local('Ubuntu Medium Italic'), local('Ubuntu-MediumItalic'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCp6KVjbNBYlgoKejYHtFyPN4E.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
}
/* cyrillic-ext */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 300;
src: local('Ubuntu Light'), local('Ubuntu-Light'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoC1CzjvWyNL4U.woff2) format('woff2');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 300;
src: local('Ubuntu Light'), local('Ubuntu-Light'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoC1CzjtGyNL4U.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 300;
src: local('Ubuntu Light'), local('Ubuntu-Light'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoC1CzjvGyNL4U.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 300;
src: local('Ubuntu Light'), local('Ubuntu-Light'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoC1Czjs2yNL4U.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* latin-ext */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 300;
src: local('Ubuntu Light'), local('Ubuntu-Light'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoC1CzjvmyNL4U.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 300;
src: local('Ubuntu Light'), local('Ubuntu-Light'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoC1CzjsGyN.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
}
/* cyrillic-ext */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 500;
src: local('Ubuntu Medium'), local('Ubuntu-Medium'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoCjC3jvWyNL4U.woff2) format('woff2');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 500;
src: local('Ubuntu Medium'), local('Ubuntu-Medium'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoCjC3jtGyNL4U.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 500;
src: local('Ubuntu Medium'), local('Ubuntu-Medium'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoCjC3jvGyNL4U.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 500;
src: local('Ubuntu Medium'), local('Ubuntu-Medium'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoCjC3js2yNL4U.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* latin-ext */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 500;
src: local('Ubuntu Medium'), local('Ubuntu-Medium'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoCjC3jvmyNL4U.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 500;
src: local('Ubuntu Medium'), local('Ubuntu-Medium'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoCjC3jsGyN.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
}
/* cyrillic-ext */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 700;
src: local('Ubuntu Bold'), local('Ubuntu-Bold'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2) format('woff2');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 700;
src: local('Ubuntu Bold'), local('Ubuntu-Bold'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 700;
src: local('Ubuntu Bold'), local('Ubuntu-Bold'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 700;
src: local('Ubuntu Bold'), local('Ubuntu-Bold'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* latin-ext */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 700;
src: local('Ubuntu Bold'), local('Ubuntu-Bold'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Ubuntu';
font-style: normal;
font-weight: 700;
src: local('Ubuntu Bold'), local('Ubuntu-Bold'), url(http://fonts.gstatic.com/s/ubuntu/v10/4iCv6KVjbNBYlgoCxCvjsGyN.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
}
================================================
FILE: src/static/404/style.css
================================================
/* === RESET === */
*, html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, label, fieldset, input, p, blockquote, th, td { margin: 0; padding: 0; }
table { border-collapse: collapse; border-spacing: 0; }
fieldset, img { border: 0 none; }
address, caption, cite, code, dfn, em, strong, th, var { font-style: normal; font-weight: normal; }
ol, ul, li { list-style: none outside none; }
caption, th { text-align: left; }
table p { display: inline; }
h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: normal; }
q:before, q:after { content: ""; }
a img { border: medium none; }
img { border: medium none; }
a { color: #696969; text-decoration: none; }
p { color: #888888; font-size: 15px; font-weight: 400; line-height: 20px; }
strong { font-weight: bold; }
.last { margin-right: 0 !important; }
.fl {float: left}
.fr {float: right}
.no-margin { margin: 0!important; }
.text-align-center { text-align: center;}
.clearfix:after { clear: both; content: ""; display: block; height: 0; }
.clearfix { display: inline-block; }
.clearfix { display: block; }
/* === CSS === */
html {
height: 100%;
background-color: #86dbeb;
background: -webkit-linear-gradient(top, #c8f6ff 0%, #5fcbdf 80%, #00b3d4 100%); /* For Safari */
background: -o-linear-gradient(top, #c8f6ff 0%, #5fcbdf 80%, #00b3d4 100%); /* For Opera 11.1 to 12.0 */
background: -moz-linear-gradient(top, #c8f6ff 0%, #5fcbdf 80%, #00b3d4 100%); /* For Firefox 3.6 to 15 */
background: linear-gradient(to top, #c8f6ff 0%, #5fcbdf 80%, #00b3d4 100%); /* Standard syntax */
}
body {
font-family: 'Ubuntu', sans-serif;
font-weight: 300;
overflow: hidden;
}
a {
text-decoration: none;
-webkit-transition: all .3s;
-moz-transition: all .3s;
transition: all .3s;
}
strong {
font-weight: 700;
}
.container {
position: absolute;
width: 100%;
height: 700px;
background: url(images/main-bg.png) center top no-repeat;
bottom: 0px;
}
.centerContent {
width: 960px;
margin: 0 auto;
}
/* === Airplane === */
#plane {
display: block;
position: relative;
width: 900px;
height: 70px;
top: 120px;
}
#plane span {
float: left;
}
#plane .tail {
height: 70px;
background: url(images/tail.png) repeat-x;
padding: 26px 40px;
font-size: 18px;
font-style: italic;
color: #fff;
}
/* === Search === */
.search {
position: relative;
display: block;
margin-top: 230px;
width: 100%;
height: 30px;
}
.searchbox {
width: 650px;
border: 1px solid #e5aa4b;
box-shadow: inset 0px 2px 2px #9e7534;
-webkit-border-radius: 50px;
-moz-border-radius: 50px;
border-radius: 50px;
padding: 7px 15px;
}
::-webkit-input-placeholder {
color:#bfa379;
}
::-moz-placeholder {
color:#bfa379;
}
:-ms-input-placeholder {
color:#bfa379;
}
input:-moz-placeholder {
color:#bfa379;
}
form {
width: 100%;
}
input:focus {
outline: 0;
box-shadow: 0 0 6px #bc8a3c;
}
.searchbox-submit {
position: absolute;
cursor: pointer;
display: block;
border: none;
width: 16px;
height: 16px;
background: url(images/search.png) center no-repeat;
top: 8px;
left: 655px;
}
/* === Menu === */
.menu {
width: 100%;
display: block;
margin-top: 240px;
}
.menu a {
font-size: 12px;
color: #8d7856;
font-weight: 300;
margin-right: 24px;
text-transform: uppercase;
transition: all .3s;
}
.menu a:hover {
color: #473a24;
}
/* === Footer === */
.footer {
display: block;
margin-top: 50px;
color: #b38e53;
font-size: 12px;
}
/* === Social Icons === */
.social a {
margin-right: 3px;
opacity: 0.7;
transition: opacity .5s ease-in-out;
-moz-transition: opacity .5s ease-in-out;
-webkit-transition: opacity .5s ease-in-out;
}
.social a:hover {
opacity: 1.0;
transition: opacity .3s ease-in-out;
-moz-transition: opacity .3s ease-in-out;
-webkit-transition: opacity .3s ease-in-out;
}
/* === Credits === */
.credits {
float: left;
padding: 5px 0 0 30px;
}
================================================
FILE: src/static/css/animation.css
================================================
@-webkit-keyframes fuzuo{
0%{transform:translateX(-300px);-webkit-transform:translateX(-300px);opacity:0;}
20%{opacity:0;}
100%{transform:translateX(0px);-webkit-transform:translateX(0px);opacity:1;}
}
@keyframes fuzuo{
0%{transform:translateX(-300px);-webkit-transform:translateX(-300px);opacity:0;}
20%{opacity:0;}
100%{transform:translateX(0px);-webkit-transform:translateX(0px);opacity:1;}
}
@-webkit-keyframes fushang{
0%{transform:translateY(-300px);-webkit-transform:translateY(-300px);opacity:0;}
10%{opacity:0;}
100%{transform:translateY(0px);-webkit-transform:translateY(0px);opacity:1;}
}
@keyframes fushang{
0%{transform:translateY(-300px);-webkit-transform:translateY(-300px);opacity:0;}
10%{opacity:0;}
100%{transform:translateY(0px);-webkit-transform:translateY(0px);opacity:1;}
}
@-webkit-keyframes zhengshang{
0%{transform:translateY(300px);-webkit-transform:translateY(300px);opacity:0;}
10%{opacity:0;}
100%{transform:translateY(0px);-webkit-transform:translateY(0px);opacity:1;}
}
@keyframes zhengshang{
0%{transform:translateY(300px);-webkit-transform:translateY(300px);opacity:0;}
10%{opacity:0;}
100%{transform:translateY(0px);-webkit-transform:translateY(0px);opacity:1;}
}
@-webkit-keyframes zhuan{
0%{transform:rotateY(75deg);-webkit-transform:rotateY(75deg);opacity:0;}
100%{transform:rotateY(0deg);-webkit-transform:rotateY(0deg);opacity:1;}
}
@keyframes zhuan{
0%{transform:rotateY(75deg);-webkit-transform:rotateY(75deg);opacity:0;}
100%{transform:rotateY(0deg);-webkit-transform:rotateY(0deg);opacity:1;}
}
@-webkit-keyframes zuo{
0%{transform:translateX(300px);-webkit-transform:translateX(300px);opacity:0;}
30%{opacity:0;}
100%{transform:translateX(0px);-webkit-transform:translateX(0px);opacity:1;}
}
@keyframes zuo{
0%{transform:translateX(300px);-webkit-transform:translateX(300px);opacity:0;}
30%{opacity:0;}
100%{transform:translateX(0px);-webkit-transform:translateX(0px);opacity:1;}
}
@-webkit-keyframes fuxia{
0%{transform:translateY(300px);-webkit-transform:translateY(300px);opacity:0;}
30%{opacity:0;}
100%{transform:translateY(0px);-webkit-transform:translateY(0px);opacity:1;}
}
@keyframes fuxia{
0%{transform:translateY(300px);-webkit-transform:translateY(300px);opacity:0;}
30%{opacity:0;}
100%{transform:translateY(0px);-webkit-transform:translateY(0px);opacity:1;}
}
@-webkit-keyframes fuxiasuo{
0%{-webkit-transform:translateY(300px);transform:translateY(300px);opacity:0;}
20%{opacity:0;}
100%{-webkit-transform:translateY(0px);transform:translateY(0px);opacity:1;}
}
@keyframes fuxiasuo{
0%{-webkit-transform:translateY(300px);transform:translateY(300px);opacity:0;}
20%{opacity:0;}
100%{-webkit-transform:translateY(0px);transform:translateY(0px);opacity:1;}
}
@-webkit-keyframes suoxiao{
0%{-webkit-transform:scale(0.1,0.1);transform:scale(0.1,0.1);opacity:0;}
20%{opacity:0;}
100%{-webkit-transform:scale(1,1);transform:scale(1,1);opacity:1;}
}
@keyframes suoxiao{
0%{-webkit-transform:scale(0.1,0.1);transform:scale(1,1);opacity:0;}
20%{opacity:0;}
100%{-webkit-transform:scale(1,1);transform:scale(1,1);opacity:1;}
}
@-webkit-keyframes zuo1{
0%{transform:translateX(-300px);-webkit-transform:translateX(-300px);opacity:0;}
100%{transform:translateX(0px);-webkit-transform:translateX(0px);opacity:1;}
}
@keyframes zuo1{
0%{transform:translateX(-300px);-webkit-transform:translateX(-300px);opacity:0;}
100%{transform:translateX(0px);-webkit-transform:translateX(0px);opacity:1;}
}
@-webkit-keyframes zuo2{
0%{transform:translateX(0px);-webkit-transform:translateX(0px);opacity:1;}
100%{transform:translateX(300px);-webkit-transform:translateX(300px);opacity:0;}
}
@keyframes zuo2{
0%{transform:translateX(0px);-webkit-transform:translateX(0px);opacity:1;}
100%{transform:translateX(300px);-webkit-transform:translateX(300px);opacity:0;}
}
@-webkit-keyframes zuo3{
0%{transform:translateX(0px);-webkit-transform:translateX(0px);opacity:1;}
100%{transform:translateX(-300px);-webkit-transform:translateX(-300px);opacity:0;}
}
@keyframes zuo3{
0%{transform:translateX(0px);-webkit-transform:translateX(0px);opacity:1;}
100%{transform:translateX(-300px);-webkit-transform:translateX(-300px);opacity:0;}
}
================================================
FILE: src/static/css/default.css
================================================
/****文章页****/
article {width:100%;overflow:hidden;}
article h3{text-align:center;font-size:20px!important;font-weight:bold!important;padding:15px 0!important;margin-bottom:20px!important; line-height:30px!important;}
.post-line{width:100%;padding:10px 0;box-sizing:border-box;}
.post-line ul{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.post-line ul li{display:inline;}
.post-line ul li a{display:inline-block;margin:0 5px;font-size:12px}
.article-content{width:100%;overflow:hidden;margin-top:20px;}
.article-content .article-body{width:95%;margin:auto;overflow:hidden;padding:25px 0;position:relative;}
.edit-time{position:absolute;bottom:0;right:0;color:#999;font-size:12px;}
.edit-time i{color:inherit;}
.article-body p{background:none!important;margin-bottom:20px;line-height:25px;}
.article-body h1,.article-body h2,.article-body h3,.article-body h4,.article-body h5{background:none!important;}
.article-body img{height: auto;max-width: 100%;vertical-align: middle;border: 0;}
#Hotbg{background: rgba(255,255,255,0.5) url(../images/icon/Hot.png)no-repeat top left;}
#art-tj{background: rgba(255,255,255,0.5) url(../images/icon/tj.gif)no-repeat top right;}
/*留言页*/
.comment-area .index-title{margin-top:3px;}
.comment-area .index-title a{float:right;overflow:hidden;margin-right:10px;}
.comment-area .index-title span{color:#333;margin:0 5px;}
.comment-area>ul>li{overflow:hidden;width:100%;margin-bottom:30px;padding:10px 0;box-sizing:border-box; position: relative;}
/*.comment-area>ul>li .order{right:10px;top:5px;color:#ccc;font-size:12px; position: absolute;}*/
/*小三角*/
.comment-info .caret{width:0; height:0; border-top:10px solid transparent;border-bottom:10px solid transparent; border-right:20px solid rgba(255,255,255,0.5); position:absolute;left:-20px;top:20%;}
.louceng{position:absolute;right:10px;top:5px;color:#ccc;font-size:12px;}
.comment-ava{float:left;max-width:50px;max-height:50px;font-size:12px;text-align:center;padding-left:15px;padding-top:10px;}
.comment-ava img{width:100%;}
.comment-ava span{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.comment-info{float:left;max-width:88%;position:relative;margin-left:15px;padding:10px 0px;border-radius:5px;-webkit-border-radius:5px;}
.comment-line ul {text-align:left;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.comment-line ul li{display:inline;margin:0 5px;font-size:12px;color:#0181da;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.comment-line ul li:first-child{margin-left:0;}
.comment-content{padding:10px 0;font-size:14px;width:100%;color:#333;}
.comment-content img{max-width:60px;vertical-align: middle;}
/*回复样式*/
.re-comment{border-top:1px solid #ddd;width:100%;overflow:hidden;margin-top:10px;}
.admin-ava{float:left;max-width:50px;max-height:50px;font-size:12px;text-align:center;padding-top:10px;}
.admin-ava img{width:100%;}
.re-info{float:left;position:relative;margin-left:15px;padding:10px 0px;border-radius:5px;-webkit-border-radius:5px;}
.re-info span{font-size:12px;float:left;width:100%;display:inline-block;margin:5px 0;color:#777;white-space:nowrap;overflow:hidden;text-overflow: ellipsis}
.re-info span a{color:#0181da;margin:0 5px;}
.re-info span img{vertical-align: middle;position:relative;top:-3px;}
.re-content{padding:10px 0;font-size:12px;width:100%;color:#333;}
.re-content img{max-width:60px;vertical-align: middle;}
/*分页*/
.pagination {width:100%;overflow:hidden;margin: 20px 0;font-size:12px;}
.list-page{float:right;margin-bottom:20px;}
.pagination ul {float:left;display: inline-block;margin-bottom: 0;margin-left: 0;-webkit-border-radius: 3px;border-radius: 3px;}
.pagination ul > li {display: inline;}
.pagination ul > li > a,
.pagination ul > li > span {float: left;padding: 0 14px;margin:0 5px;line-height: 38px;text-decoration: none;background-color:rgba(255,255,255,0.6);border-left-width: 0;color:#0181da;box-sizing:border-box;}
.pagination ul > li > a:hover,
.pagination ul > .active > a,
.pagination ul > .active > span {background-color:rgba(255,255,255,0.9);}
.pagination ul > .active > a,
.pagination ul > .active > span {color: #999999;cursor: default;}
.pagination ul > .disabled > span,
.pagination ul > .disabled > a,
.pagination ul > .disabled > a:hover {color: #999999;cursor: default;background-color: transparent;}
.pagination-centered {text-align: center;}
.pagination-right {text-align: right;}
/*评论*/
.form-in{margin-bottom:80px;}
.form-btn{font-size:18px;font-weight:normal;padding:15px 0!important;margin-top:30px;}
.hdmenu {width:100%;text-align:left;}
.hdmenu li{display:inline;font-size:12px;color:#555;margin:0 3px;}
.hdmenu li input[type="checkbox"]{padding:0;margin:0;border:1px solid #ccc;box-sizing:border-box;position:relative;top:2px;}
.input-prepend{width:100%;height:35px;margin:15px 0;font-size:12px;}
.input-prepend i{width:35px;height:100%;background:rgba(255,255,255,0.8);border:1px solid #ccc;box-sizing:border-box;border-right:none;line-height:35px;text-align:center;margin:0;float:left;}
.input-prepend input{height:100%;margin:0;padding:0;float:left;box-sizing:border-box;width:30%;line-height:35px;}
.yzm input{width:70px;}
.yzm span{width:50px;height:100%;border:#ddd 1px solid;border-left:0;box-sizing:border-box;display:inline-block;background:rgba(255,255,255,0.8);}
.yzm img{width:90%;margin:auto;margin-top:10px;}
.face-box{width:100%;position:relative;}
.face-box #face-btn{width:100%;padding:5px 0;text-align:left;display:inline-block;font-size:12px;color:#777;}
.face-box #face-btn img{position:relative;top:7px;}
.face-box textarea{width:70%;height:150px;}
.feed-sub{width:150px;height:40px;padding:10px 0;}
.feed-sub input{width:100%;height:100%;background:#fff;cursor:pointer;color:#ff6700;}
.feed-sub input:hover{color:#333;}
/*文章分享按钮样式*/
.article-fx{text-align:center;width:100%;padding:10px 0;position:relative;}
.article-fx a{font-size:14px;background:#1dd06d;color:#fff;display:inline-block;width:50px;height:50px;line-height:50px;color:#fff;}
.arc-bdfx{display:none;border-radius:5px;position:absolute;background:rgba(255,255,255,0.9);top:-10px;width:350px;box-shadow:0px 0px 15px #ccc;border:1px solid #ccc;left:0;right:0;margin-left:auto;margin-right:auto;}
.arc-bdfx>.bdsharebuttonbox{padding:20px 0;margin:0;}
.arc-bdfx i{position:absolute;right:5px;top:5px;color:#777;cursor:pointer;font-size:12px;}
/*文章正文底部标签*/
.article_tag{width:100%;margin:auto;padding:10px 0;margin-bottom:30px;background:rgba(255,255,255,0);overflow:hidden;}
.article_tag ul{margin:auto 0;clear:both;text-align:center;float:none;}
.article_tag ul li{display:inline;font-size:12px;border:none;border-radius:2px;padding:5px 10px;margin:0 5px;border-radius:50px;-webkit-border-radius:50px;}
.article_tag ul li a{color:#fff;display:inline-block;margin-bottom:10px;}
.article_tag ul li:nth-of-type(1){background:#4595e7;}
.article_tag ul li:nth-of-type(2){background:#e7458d;}
.article_tag ul li:nth-of-type(3){background:#e79545;}
.article_tag ul li:nth-of-type(4){background:#1dd06d;}
.article_tag ul li:nth-of-type(5){background:#333;}
hr {width:90%;margin: 20px auto; border: 0;border-top: 1px solid #eeeeee;border-bottom: 1px solid rgba(255,255,255,0.8);}
/*上一篇*/
.shangyip{margin:30px 0;padding:10px 0;width:100%;overflow:hidden;}
.shangyip span{display:inline-block;float:left;width:100%;text-indent:5px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.shangyip span:first-child{margin-bottom:10px}
.shangyip span a:hover{color:#333;text-decoration:underline;}
/*可能喜欢*/
.maybe-love{margin-bottom:30px;overflow:hidden;}
.maybe-love h4{}
.maybe-love ul{text-align:center;margin-left: -1.5%;margin-right: -1.5%;overflow:hidden;}
.maybe-love ul li{float:left;text-align:center;width:22%;margin:1.5%;}
.maybe-love ul li img{width:100%;height:100px;border:1px solid #ddd;box-sizing:border-box;border-radius:5px;-webkit-border-radius:5px;padding:5px;}
.maybe-love ul li span{font-size:13px;display:inline-block;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#00a2ff;}
.maybe-love ul li:hover img{border:1px solid #fff;}
/*说说列表页*/
.shuo-area article >ul>li{overflow:hidden;width:100%;margin-bottom:20px;padding:10px 0;}
.shuo-ava{float:left;max-width:50px;font-size:12px;text-align:center;padding:5px;}
.shuo-ava img{width:100%;}
.shuo-ava span{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:bold;}
.shuo-info{float:left;max-width:86%;position:relative;margin-left:25px;padding:10px 0px;border-radius:8px;-webkit-border-radius:8px;}
.shuo-line ul {text-align:left;margin-left:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top:1px dotted #ddd;box-sizing:border-box;}
.shuo-line ul li{display:inline;margin:0 5px;font-size:12px;color:#0181da;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.shuo-line ul li:first-child{margin-left:0;}
.shuo-content{padding:10px;font-size:14px;color:#555;}
.shuo-content img{max-width:90%;vertical-align: middle;}
.shuo-content:hover{text-decoration:underline;}
/*气泡*/
.arrow_box {
position: relative;
background: rgba(255,255,255,0.6);
}
.arrow_box:after, .arrow_box:before {
right: 100%;
top: 30px;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.arrow_box:after {
border-color: rgba(255, 255, 255, 0);
border-right-color:rgba(255,255,255,0);
border-width: 14px;
margin-top: -14px;
}
.arrow_box:before {
border-color: rgba(206, 208, 224, 0);
border-right-color:rgba(255,255,255,0.5);
border-width: 15px;
margin-top: -15px;
}
/*说说内页*/
.shuos-area{width:100%;overflow:hidden;margin-bottom:30px;padding-bottom:15px;padding-top:10px;}
.shuos-ava{padding:15px;overflow:hidden;}
.shuos-ava img{max-width:50px;max-height:50px;float:left;border-radius:50%;-webkit-border-radius:50%;}
.shuos-ava a{font-size:13px;display:inline-block;margin-left:15px;padding-top:15px;}
.shuos-ava time{color:#777;}
.shuos-content{font-size:13px;padding:0 15px 15px 15px ;line-height:28px;overflow:hidden;}
.shuos-content img {vertical-align:middle;max-width:100%;}
.shuos-area ul {text-align:right;width:90%;margin:auto;}
.shuos-area ul li{font-size:12px;display:inline;color:#888;margin:0 5px;}
.shuos-area ul li:last-child{float:right}
/*搜索提示*/
.search-tip{margin:30px 0;}
.search-tip span{padding:20px;display:inline-block;line-height:28px;}
.search-title{font-size:16px;padding:20px 10px;}
/*关于页面*/
.about-content{line-height:25px;margin-bottom:30px;padding: 20px;}
/*友情链接*/
.blog_hd {width: 100%;padding-bottom:25px;}
.blog_hd ul {margin-left:-5px;margin-right:-5px;}
.blog_hd .hd_right {border: 1px double #CCC;padding:0 5px;float:left;width: 53%;margin-left:2%;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;text-align:center;background:rgba(255,255,255,0.5);border-radius: 8px;-webkit-border-radius: 8px;}
.blog_hd .hd_right:nth-of-type(1) a{color:#34b900;}
.blog_hd ul li {font-size:12px;width:18%;display: inline-block;list-style-type: none;margin:10px 5px 10px 5px;overflow:hidden;white-space: nowrap;}
.blog_hd ul li img {width:100%;}
.blog_hd >ul >li> a{display:inline-block;float:left;height:100%;height:40px;width:40px;padding: 4px;border: 1px double #CCC;background: rgba(255,255,255,0.5);border-radius:100px;-webkit-border-radius:100px;-moz-border-radius:100px;}
/*内页链接*/
.blog_links ul {margin: 25px 0 ;overflow:hidden;}
.blog_links li {width:18%;margin:10px 6px 10px 6px;-webkit-transition:all 0.5s;transition:all 0.5s;float:left;line-height:15px;padding:5px 0;box-sizing:border-box;border:1px dotted #fff;background:linear-gradient(rgba(255,255,255,0.9), rgba(255,255,255,0.1),rgba(255,255,255,0.9));text-align:center;font-size:12px;
background: -webkit-linear-gradient(rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.1),rgba(255, 255, 255, 0.9));
}
.blog_links li a{color:rgb(234,39,0);display: inline-block;width:100%;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;}
.blog_links li span{display:none;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;padding:0 5px;color:#555;}
.blog_links li:hover{border-radius:10px;-webkit-border-radius:10px;}
.link-edit{padding:25px 0;}
/*****相册封面*****/
.album h4{width:100%;margin:0 auto 30px auto;}
.album .pagination{width:100%;margin:30px auto 30px auto;}
.wall {display: block;position: relative;margin-bottom:10px;overflow:hidden;margin-left: -1.5%;margin-right: -1.5%;}
.wall-column {display: block;position: relative;width: 25%;float: left;padding: 0 1.5%;box-sizing: border-box;}
.wall-li {display: block;margin: 0 0 8% 0;padding: 5%;background:rgba(255,255,255,0.7);border-radius: 3px;position:relative;box-shadow: 0px 0 0px rgba(0, 0, 0, 0.05);transition:all 0.2s;overflow: hidden;box-sizing:border-box;position: relative;border:1px solid rgba(0,0,0,0.1);}
.wall-li:hover{border:1px solid #ff4200;box-shadow:0 0 10px #555;}
.wall-li img {display: block;width: 100%;margin: 0 0 5% 0;}
.wall-li p{ overflow: hidden; font-weight:bold;text-overflow: ellipsis; white-space: nowrap; width: 100%; font-size: 14px;padding-bottom:10px; }
.wall-li small{ font-size:12px; color: #777; display:inline-block;line-height:15px;overflow: hidden;text-overflow: ellipsis; white-space: nowrap;}
.wall-li small:nth-of-type(1){float:left}
.wall-li small:nth-of-type(2){float:right}
.show-btn{width:100%;height:100%;background:rgba(0,0,0,0.8);overflow:hidden;position:absolute;left:0;top:0;transform:scale(0);-webkit-transform:scale(0);transition:all 0.3s ease;-webkit-transition:all 0.3s ease;}
.show-btn a{display:inline-block;width:50%;text-align:center;top:45%;font-size:30px;position:absolute;}
.show-btn a i{color:#fff;}
.show-pic:hover i,.show-info:hover i{color:#ff6700}
.wall-li:hover .show-btn{transform:scale(1);-webkit-transform:scale(1);}
.show-pic{left:0;}
.show-info{right:0;}
/*相册内页*/
.gallery2 h4{width:100%;margin:0 auto 30px auto;}
.gallery2 .pagination{width:100%;margin:30px auto 30px auto;}
.gallery2 h4 a{float:right;margin-right:10px;}
.gallery2 h4 span font{color:#000;display:inline-block;margin:0 5px;}
.gallery2 ul .wall-li small{width:auto;margin-right:5px;display:inline-block;float:right;line-height:23px;}
.gallery2 ul .wall-li p{font-size:12px;color:#333;font-weight:normal;padding:0;}
.return-xc{margin:auto;overflow:hidden;padding:20px 0;}
.return-xc a{background:#fff;color:#ff6700;border-radius:5px;padding:8px 20px;font-size:12px;-webkit-border-radius:5px;display:inline-block;transition:all 0.3s;}
.return-xc i{color:#ff6700;}
.return-xc a:hover{background:#ff6700;color:#fff;}
.return-xc a:hover i{color:#fff;}
/*照片单页*/
.picture{width:100%;overflow:hidden;margin-bottom:30px;}
.pic-main{width:100%;overflow:hidden;margin-bottom:30px;text-align:left;}
.pic-main img{vertical-align:middle;width:auto;}
.pic-info{width:100%;overflow:hidden;}
.pic-info >ul{width:100%;overflow:hidden;padding-bottom:10px;}
.pic-info >ul >li{width:45%;margin-right:5%;float:left;padding:10px 0;text-align:left;border-bottom:1px dotted #eee;color:#555;box-sizing:border-box;font-size:13px;}
.pic-info h2{background:none;padding:0;padding-top:10px;text-indent:0;}
.pic-info p{width:100%;text-align:left;font-size:13px;}
.pic-btn{width:100%;padding:25px 0;overflow:hidden;}
.pic-btn button{background:rgba(0,0,0,0.8);padding:10px 20px;border:none;color:#fff;cursor:pointer;transition:all 0.3s;}
.pic-btn button i{color:#fff;}
.pic-btn button:hover{background:#fff;color:#333;}
.pic-btn button:hover i{color:#333;}
.pic-btn .pull-right{background:#fff;color:#ff6700;font-size:12px;padding:8px 20px;-webkit-border-radius:5px;display:inline-block;transition:all 0.3s;}
.pic-btn .pull-right:hover{background:#ff6700;color:#fff;}
.pic-btn .pull-right:hover i{color:#fff;}
.picture .article-fx{padding:0;margin:0;width:auto;text-align:left;}
.picture .article-fx .img-circle{padding:0;margin:0;width:auto;height:auto;background:none;font-size:13px;color:#555;line-height:24px;}
/*素材列表*/
.sucailist{width:100%;}
.sucailist >ul{margin-left:-1%;margin-right:-1%;overflow:hidden;}
.sucailist .su-li#New,.sucailist .su-li#arc-tj,.sucailist .su-li#Hotbg{background-position:100% 0;}
.sucailist .su-li{margin-bottom:25px;text-align:center;border:1px solid #ddd;padding:15px 0;box-sizing:border-box;overflow:hidden;position:relative;background:rgba(255,255,255,0.5);transition:0.2s;}
.sucailist .su-li:hover{border-color:#ff4200;box-shadow:0 0 10px #555;}
.sucailist>ul>.wall-column{width:31.3%;margin:auto;margin:0 1%;float:left;padding:0;}
.sucailist>ul>.wall-column .sucaiimg{width:100%;overflow:hidden;}
.sucailist>ul>.wall-column .sucaiimg img{width:85%;transition: all 0.5s;-webkit-transition: all 0.5s;}
.sucai-right{width:90%;margin:auto;}
.sucai-right h4{padding:0;margin:0;background:none;font-size:15px;padding:8px;text-indent:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-align: left;}
.sucai-right p{font-size:13px;overflow:hidden;text-overflow:ellipsis;color:#999;text-align:left;line-height:1.5;padding:5px 0;}
.sucai-right ul{width:100%;overflow:hidden;bottom:5px;text-align:center;}
.sucai-right ul li{float:left;overflow:hidden;padding:0 5px;font-size:12px;color:#888;}
.sucai-right ul li:last-child{float:right;}
.sucailist>ul>.wall-column .su-li:hover a img{transform:scale(1.1);}
.sucai-fx,.down-btn{width:100px!important;border-radius:8px;-webkit-border-radius:8px;height:35px!important;line-height:35px!important;transition:all 0.2s;}
.sucai-fx{}
.sucai-fx:hover{background:#079450;}
.down-btn:hover{background:#d8033a!important;}
.sucai-fx i,.down-btn i{color:#fff;}
.down-btn{background:#e6176a!important;margin-right:25px;}
.ft-part1 .paihang-ul li{padding:8px 0;border-bottom:1px dotted #777;}
.ft-part1 .paihang-ul li a{color:#fff;}
/*end 素材列表*/
#supersized-loader { position:absolute; top:50%; left:50%; z-index:0; width:60px; height:60px; margin:-30px 0 0 -30px; text-indent:-999em; background:url(../images/icon/loading.gif) no-repeat center center;}
#supersized { display:block; position:fixed; left:0; top:0; overflow:hidden; z-index:-999; height:100%; width:100%; }
#supersized img { width:auto; height:auto; position:relative; display:none; outline:none; border:none; }
#supersized.speed img { -ms-interpolation-mode:nearest-neighbor; image-rendering: -moz-crisp-edges; } /*Speed*/
#supersized.quality img { -ms-interpolation-mode:bicubic; image-rendering: optimizeQuality; } /*Quality*/
#supersized li { display:block; list-style:none; z-index:-30; position:fixed; overflow:hidden; top:0; left:0; width:100%; height:100%; background:#111; }
#supersized a { width:100%; height:100%; display:block; }
#supersized li.prevslide { z-index:-20; }
#supersized li.activeslide { z-index:-10; }
#supersized li.image-loading { background:#111 url(../images/icon/loading.gif) no-repeat center center; width:100%; height:100%; }
#supersized li.image-loading img{ visibility:hidden; }
#supersized li.prevslide img, #supersized li.activeslide img{ display:inline; }
#supersized img { max-width: none !important }
@media screen and (max-width:414px){.xc_info .xc_ul li img{height:6em;} .xc_info .xc_ul li p{font-size:12px;}}
@media screen and (min-width:320px) and (max-width:768px){
article h3{font-size:16px!important;}
.comment-ava{max-width:40px;max-height:40px;padding-left:10px;}
.comment-content{font-size:12px;}
.comment-info{max-width:80%;margin-left:10px;}
.re-info{max-width:80%;margin-left:8px;}
.admin-ava{max-width:40px;max-height:40px;}
.re-info span a{margin:0;}
.face-box textarea{width:95%;}
.input-prepend input{width:80%;}
.yzm input{width:80px;}
.arc-bdfx{width:98%;}
.shangyip span{font-size:12px;}
.maybe-love ul li{width:46.5%;}
.maybe-love ul li:nth-of-type(3),.maybe-love ul li:nth-of-type(4){display:none;}
.shuo-ava{max-width:40px;max-height:40px;}
.shuo-info{max-width:75%;margin-left:15px;padding:0;}
.shuo-content{font-size:12px;}
.blog_hd ul li{width:45%;}
.blog_links li{width:29.3%;}
.link-text{width:90%!important}
.xc_info .xc_ul li,.gallery ul li{width:41%;}
.pic-main img{width:100%;}
.pic-info h2{font-size:16px;}
.pic-info >ul >li,.pic-info p{width:100%;margin:0;font-size:12px;}
.wall-column{width:50%;}
.wall-li p,.wall-li small{font-size:12px;padding:0;}
.wall{margin-left:-1%;margin-right:-1%;}
.sucailist>ul> .wall-column{width:48%;}
.sucai-right h4{font-size:13px;}
.sucai-right p{font-size:12px;}
}
@media screen and (min-width:769px){.pc-hidden{display:none;}
@media screen and (min-width:1024px) and (max-width:1199px) {
.blog_hd ul li {
width: 22%;
}
}
}
================================================
FILE: src/static/css/flexslider.css
================================================
/**
* Swiper 3.3.1
* Most modern mobile touch slider and framework with hardware accelerated transitions
*
* http://www.idangero.us/swiper/
*
* Copyright 2016, Vladimir Kharlampidi
* The iDangero.us
* http://www.idangero.us/
*
* Licensed under MIT
*
* Released on: February 7, 2016
*/
.swiper-container {
margin: 0 auto;
position: relative;
overflow: hidden;
/* Fix of Webkit flickering */
z-index: 1;
width: 100%;
height: 100%;
}
.swiper-container-no-flexbox .swiper-slide {
float: left;
}
.swiper-container-vertical > .swiper-wrapper {
-webkit-box-orient: vertical;
-moz-box-orient: vertical;
-ms-flex-direction: column;
-webkit-flex-direction: column;
flex-direction: column;
}
.swiper-wrapper {
position: relative;
width: 100%;
height: 100%;
z-index: 1;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-transition-property: -webkit-transform;
-moz-transition-property: -moz-transform;
-o-transition-property: -o-transform;
-ms-transition-property: -ms-transform;
transition-property: transform;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
.swiper-container-android .swiper-slide,
.swiper-wrapper {
-webkit-transform: translate3d(0px, 0, 0);
-moz-transform: translate3d(0px, 0, 0);
-o-transform: translate(0px, 0px);
-ms-transform: translate3d(0px, 0, 0);
transform: translate3d(0px, 0, 0);
}
.swiper-container-multirow > .swiper-wrapper {
-webkit-box-lines: multiple;
-moz-box-lines: multiple;
-ms-flex-wrap: wrap;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
}
.swiper-container-free-mode > .swiper-wrapper {
-webkit-transition-timing-function: ease-out;
-moz-transition-timing-function: ease-out;
-ms-transition-timing-function: ease-out;
-o-transition-timing-function: ease-out;
transition-timing-function: ease-out;
margin: 0 auto;
}
.swiper-slide {
-webkit-flex-shrink: 0;
-ms-flex: 0 0 auto;
flex-shrink: 0;
width: 100%;
height: 100%;
position: relative;
}
.swiper-slide img{width:100%;height:100%;}
/* Auto Height */
.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
height: auto;
}
.silde-title{position:absolute;padding:5px 0;width:100%;background: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2),rgba(0, 0, 0, 0.5));bottom:5px;left:0;right:0;margin:auto;color:#fff;font-size:12px;text-indent:15px;}
.swiper-container-autoheight .swiper-wrapper {
-webkit-box-align: start;
-ms-flex-align: start;
-webkit-align-items: flex-start;
align-items: flex-start;
-webkit-transition-property: -webkit-transform, height;
-moz-transition-property: -moz-transform;
-o-transition-property: -o-transform;
-ms-transition-property: -ms-transform;
transition-property: transform, height;
}
/* a11y */
.swiper-container .swiper-notification {
position: absolute;
left: 0;
top: 0;
pointer-events: none;
opacity: 0;
z-index: -1000;
}
/* IE10 Windows Phone 8 Fixes */
.swiper-wp8-horizontal {
-ms-touch-action: pan-y;
touch-action: pan-y;
}
.swiper-wp8-vertical {
-ms-touch-action: pan-x;
touch-action: pan-x;
}
/* Arrows */
.swiper-button-prev,
.swiper-button-next {
position: absolute;
top: 50%;
width: 27px;
height: 44px;
margin-top: -22px;
z-index: 10;
cursor: pointer;
-moz-background-size: 27px 44px;
-webkit-background-size: 27px 44px;
background-size: 27px 44px;
background-position: center;
background-repeat: no-repeat;
}
.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
opacity: 0.35;
cursor: auto;
pointer-events: none;
}
.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
left: -30px;
right: auto;
transition:all 0.5s;-webkit-transition:all 0.5s;
}
.swiper-container:hover .swiper-button-prev{left:10px;transition:all 0.5s;-webkit-transition:all 0.5s;}
.swiper-button-prev.swiper-button-black,
.swiper-container-rtl .swiper-button-next.swiper-button-black {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-prev.swiper-button-white,
.swiper-container-rtl .swiper-button-next.swiper-button-white {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
right: -30px;
left: auto;
z-index:10;
}
.swiper-container:hover .swiper-button-next{right:10px;transition:all 0.5s;-webkit-transition:all 0.5s;}
.swiper-button-next.swiper-button-black,
.swiper-container-rtl .swiper-button-prev.swiper-button-black {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-next.swiper-button-white,
.swiper-container-rtl .swiper-button-prev.swiper-button-white {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}
/* Pagination Styles */
.swiper-pagination {
position: absolute;
text-align: center;
-webkit-transition: 300ms;
-moz-transition: 300ms;
-o-transition: 300ms;
transition: 300ms;
-webkit-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
z-index: 10;
}
.swiper-pagination.swiper-pagination-hidden {
opacity: 0;
}
/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
bottom: 10px;
right: 15px;
color:#fff;
font-size:12px;
z-index:8;
}
/* Bullets */
.swiper-pagination-bullet {
width: 8px;
height: 8px;
display: inline-block;
border-radius: 100%;
background: #000;
opacity: 0.2;
}
button.swiper-pagination-bullet {
border: none;
margin: 0;
padding: 0;
box-shadow: none;
-moz-appearance: none;
-ms-appearance: none;
-webkit-appearance: none;
appearance: none;
}
.swiper-pagination-clickable .swiper-pagination-bullet {
cursor: pointer;
}
.swiper-pagination-white .swiper-pagination-bullet {
background: #fff;
}
.swiper-pagination-bullet-active {
opacity: 1;
background: #007aff;
}
.swiper-pagination-white .swiper-pagination-bullet-active {
background: #fff;
}
.swiper-pagination-black .swiper-pagination-bullet-active {
background: #000;
}
.swiper-container-vertical > .swiper-pagination-bullets {
right: 10px;
top: 50%;
-webkit-transform: translate3d(0px, -50%, 0);
-moz-transform: translate3d(0px, -50%, 0);
-o-transform: translate(0px, -50%);
-ms-transform: translate3d(0px, -50%, 0);
transform: translate3d(0px, -50%, 0);
}
.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
margin: 5px 0;
display: block;
}
.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
margin: 0 5px;
}
/* Progress */
.swiper-pagination-progress {
background: rgba(0, 0, 0, 0.25);
position: absolute;
}
.swiper-pagination-progress .swiper-pagination-progressbar {
background: #007aff;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
-webkit-transform: scale(0);
-ms-transform: scale(0);
-o-transform: scale(0);
transform: scale(0);
-webkit-transform-origin: left top;
-moz-transform-origin: left top;
-ms-transform-origin: left top;
-o-transform-origin: left top;
transform-origin: left top;
}
.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar {
-webkit-transform-origin: right top;
-moz-transform-origin: right top;
-ms-transform-origin: right top;
-o-transform-origin: right top;
transform-origin: right top;
}
.swiper-container-horizontal > .swiper-pagination-progress {
width: 100%;
height: 4px;
left: 0;
top: 0;
}
.swiper-container-vertical > .swiper-pagination-progress {
width: 4px;
height: 100%;
left: 0;
top: 0;
}
.swiper-pagination-progress.swiper-pagination-white {
background: rgba(255, 255, 255, 0.5);
}
.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar {
background: #fff;
}
.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar {
background: #000;
}
/* 3D Container */
.swiper-container-3d {
-webkit-perspective: 1200px;
-moz-perspective: 1200px;
-o-perspective: 1200px;
perspective: 1200px;
}
.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
-ms-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 10;
}
.swiper-container-3d .swiper-slide-shadow-left {
background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
/* Safari 4+, Chrome */
background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Chrome 10+, Safari 5.1+, iOS 5+ */
background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Firefox 3.6-15 */
background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Opera 11.10-12.00 */
background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Firefox 16+, IE10, Opera 12.50+ */
}
.swiper-container-3d .swiper-slide-shadow-right {
background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
/* Safari 4+, Chrome */
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Chrome 10+, Safari 5.1+, iOS 5+ */
background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Firefox 3.6-15 */
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Opera 11.10-12.00 */
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Firefox 16+, IE10, Opera 12.50+ */
}
.swiper-container-3d .swiper-slide-shadow-top {
background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
/* Safari 4+, Chrome */
background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Chrome 10+, Safari 5.1+, iOS 5+ */
background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Firefox 3.6-15 */
background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Opera 11.10-12.00 */
background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Firefox 16+, IE10, Opera 12.50+ */
}
.swiper-container-3d .swiper-slide-shadow-bottom {
background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
/* Safari 4+, Chrome */
background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Chrome 10+, Safari 5.1+, iOS 5+ */
background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Firefox 3.6-15 */
background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Opera 11.10-12.00 */
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
/* Firefox 16+, IE10, Opera 12.50+ */
}
/* Coverflow */
.swiper-container-coverflow .swiper-wrapper,
.swiper-container-flip .swiper-wrapper {
/* Windows 8 IE 10 fix */
-ms-perspective: 1200px;
}
/* Cube + Flip */
.swiper-container-cube,
.swiper-container-flip {
overflow: visible;
}
.swiper-container-cube .swiper-slide,
.swiper-container-flip .swiper-slide {
pointer-events: none;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 1;
}
.swiper-container-cube .swiper-slide .swiper-slide,
.swiper-container-flip .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-cube .swiper-slide-active,
.swiper-container-flip .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-cube .swiper-slide-shadow-top,
.swiper-container-flip .swiper-slide-shadow-top,
.swiper-container-cube .swiper-slide-shadow-bottom,
.swiper-container-flip .swiper-slide-shadow-bottom,
.swiper-container-cube .swiper-slide-shadow-left,
.swiper-container-flip .swiper-slide-shadow-left,
.swiper-container-cube .swiper-slide-shadow-right,
.swiper-container-flip .swiper-slide-shadow-right {
z-index: 0;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
backface-visibility: hidden;
}
/* Cube */
.swiper-container-cube .swiper-slide {
visibility: hidden;
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
width: 100%;
height: 100%;
}
.swiper-container-cube.swiper-container-rtl .swiper-slide {
-webkit-transform-origin: 100% 0;
-moz-transform-origin: 100% 0;
-ms-transform-origin: 100% 0;
transform-origin: 100% 0;
}
.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-prev,
.swiper-container-cube .swiper-slide-next + .swiper-slide {
pointer-events: auto;
visibility: visible;
}
.swiper-container-cube .swiper-cube-shadow {
position: absolute;
left: 0;
bottom: 0px;
width: 100%;
height: 100%;
background: #000;
opacity: 0.6;
-webkit-filter: blur(50px);
filter: blur(50px);
z-index: 0;
}
/* Fade */
.swiper-container-fade.swiper-container-free-mode .swiper-slide {
-webkit-transition-timing-function: ease-out;
-moz-transition-timing-function: ease-out;
-ms-transition-timing-function: ease-out;
-o-transition-timing-function: ease-out;
transition-timing-function: ease-out;
}
.swiper-container-fade .swiper-slide {
pointer-events: none;
-webkit-transition-property: opacity;
-moz-transition-property: opacity;
-o-transition-property: opacity;
transition-property: opacity;
}
.swiper-container-fade .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
/* Scrollbar */
.swiper-scrollbar {
border-radius: 10px;
position: relative;
-ms-touch-action: none;
background: rgba(0, 0, 0, 0.1);
}
.swiper-container-horizontal > .swiper-scrollbar {
position: absolute;
left: 1%;
bottom: 3px;
z-index: 50;
height: 5px;
width: 98%;
}
.swiper-container-vertical > .swiper-scrollbar {
position: absolute;
right: 3px;
top: 1%;
z-index: 50;
width: 5px;
height: 98%;
}
.swiper-scrollbar-drag {
height: 100%;
width: 100%;
position: relative;
background: rgba(0, 0, 0, 0.5);
border-radius: 10px;
left: 0;
top: 0;
}
.swiper-scrollbar-cursor-drag {
cursor: move;
}
/* Preloader */
.swiper-lazy-preloader {
width: 42px;
height: 42px;
position: absolute;
left: 50%;
top: 50%;
margin-left: -21px;
margin-top: -21px;
z-index: 10;
-webkit-transform-origin: 50%;
-moz-transform-origin: 50%;
transform-origin: 50%;
-webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;
-moz-animation: swiper-preloader-spin 1s steps(12, end) infinite;
animation: swiper-preloader-spin 1s steps(12, end) infinite;
}
.swiper-lazy-preloader:after {
display: block;
content: "";
width: 100%;
height: 100%;
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
background-position: 50%;
-webkit-background-size: 100%;
background-size: 100%;
background-repeat: no-repeat;
}
.swiper-lazy-preloader-white:after {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}
@-webkit-keyframes swiper-preloader-spin {
100% {
-webkit-transform: rotate(360deg);
}
}
@keyframes swiper-preloader-spin {
100% {
transform: rotate(360deg);
}
}
================================================
FILE: src/static/css/font-icon.css
================================================
/*!
* Elusive Icons 2.0.0 by @ReduxFramework - http://elusiveicons.com - @reduxframework
* License - http://elusiveicons.com/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'Elusive-Icons';
src: url('../font/elusiveicons-webfont.eot?v=2.0.0');
src: url('../font/elusiveicons-webfont.eot?#iefix&v=2.0.0') format('embedded-opentype'), url('../font/elusiveicons-webfont.woff?v=2.0.0') format('woff'), url('../font/elusiveicons-webfont.ttf?v=2.0.0') format('truetype'), url('../font/elusiveicons-webfont.svg?v=2.0.0#elusiveiconsregular') format('svg');
font-weight: normal;
font-style: normal;
}
i {
display: inline-block;
font: normal normal normal 14px/1 'Elusive-Icons';
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transform: translate(0, 0);
}
.el-comment{font-size:0.75em;}
/* makes the font 33% larger relative to the icon container */
.el-lg {
font-size: 1.33333333em;
line-height: 0.75em;
vertical-align: -15%;
}
.el-2x {
font-size: 2em;
}
.el-3x {
font-size: 3em;
}
.el-4x {
font-size: 4em;
}
.el-5x {
font-size: 5em;
}
.el-fw {
width: 1.28571429em;
text-align: center;
}
.el-ul {
padding-left: 0;
margin-left: 2.14285714em;
list-style-type: none;
}
.el-ul > li {
position: relative;
}
.el-li {
position: absolute;
left: -2.14285714em;
width: 2.14285714em;
top: 0.14285714em;
text-align: center;
}
.el-li.el-lg {
left: -1.85714286em;
}
.el-border {
padding: .2em .25em .15em;
border: solid 0.08em #eeeeee;
border-radius: .1em;
}
.pull-right {
float: right;
}
.pull-left {
float: left;
}
.el.pull-left {
margin-right: .3em;
}
.el.pull-right {
margin-left: .3em;
}
.el-spin {
-webkit-animation: el-spin 2s infinite linear;
animation: el-spin 2s infinite linear;
}
.el-pulse {
-webkit-animation: el-spin 1s infinite steps(8);
animation: el-spin 1s infinite steps(8);
}
@-webkit-keyframes el-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes el-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
.el-rotate-90 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.el-rotate-180 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.el-rotate-270 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.el-flip-horizontal {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-webkit-transform: scale(-1, 1);
-ms-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.el-flip-vertical {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-webkit-transform: scale(1, -1);
-ms-transform: scale(1, -1);
transform: scale(1, -1);
}
:root .el-rotate-90,
:root .el-rotate-180,
:root .el-rotate-270,
:root .el-flip-horizontal,
:root .el-flip-vertical {
filter: none;
}
.el-stack {
position: relative;
display: inline-block;
width: 2em;
height: 2em;
line-height: 2em;
vertical-align: middle;
}
.el-stack-1x,
.el-stack-2x {
position: absolute;
left: 0;
width: 100%;
text-align: center;
}
.el-stack-1x {
line-height: inherit;
}
.el-stack-2x {
font-size: 2em;
}
.el-inverse {
color: #ffffff;
}
/* Elusive Icons uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.el-address-book-alt:before {
content: "\f101";
}
.el-address-book:before {
content: "\f102";
}
.el-adjust-alt:before {
content: "\f103";
}
.el-adjust:before {
content: "\f104";
}
.el-adult:before {
content: "\f105";
}
.el-align-center:before {
content: "\f106";
}
.el-align-justify:before {
content: "\f107";
}
.el-align-left:before {
content: "\f108";
}
.el-align-right:before {
content: "\f109";
}
.el-arrow-down:before {
content: "\f10a";
}
.el-arrow-left:before {
content: "\f10b";
}
.el-arrow-right:before {
content: "\f10c";
}
.el-arrow-up:before {
content: "\f10d";
}
.el-asl:before {
content: "\f10e";
}
.el-asterisk:before {
content: "\f10f";
}
.el-backward:before {
content: "\f110";
}
.el-ban-circle:before {
content: "\f111";
}
.el-barcode:before {
content: "\f112";
}
.el-behance:before {
content: "\f113";
}
.el-bell:before {
content: "\f114";
}
.el-blind:before {
content: "\f115";
}
.el-blogger:before {
content: "\f116";
}
.el-bold:before {
content: "\f117";
}
.el-book:before {
content: "\f118";
}
.el-bookmark-empty:before {
content: "\f119";
}
.el-bookmark:before {
content: "\f11a";
}
.el-braille:before {
content: "\f11b";
}
.el-briefcase:before {
content: "\f11c";
}
.el-broom:before {
content: "\f11d";
}
.el-brush:before {
content: "\f11e";
}
.el-bulb:before {
content: "\f11f";
}
.el-bullhorn:before {
content: "\f120";
}
.el-calendar-sign:before {
content: "\f121";
}
.el-calendar:before {
content: "\f122";
}
.el-camera:before {
content: "\f123";
}
.el-car:before {
content: "\f124";
}
.el-caret-down:before {
content: "\f125";
}
.el-caret-left:before {
content: "\f126";
}
.el-caret-right:before {
content: "\f127";
}
.el-caret-up:before {
content: "\f128";
}
.el-cc:before {
content: "\f129";
}
.el-certificate:before {
content: "\f12a";
}
.el-check-empty:before {
content: "\f12b";
}
.el-check:before {
content: "\f12c";
}
.el-chevron-down:before {
content: "\f12d";
}
.el-chevron-left:before {
content: "\f12e";
}
.el-chevron-right:before {
content: "\f12f";
}
.el-chevron-up:before {
content: "\f130";
}
.el-child:before {
content: "\f131";
}
.el-circle-arrow-down:before {
content: "\f132";
}
.el-circle-arrow-left:before {
content: "\f133";
}
.el-circle-arrow-right:before {
content: "\f134";
}
.el-circle-arrow-up:before {
content: "\f135";
}
.el-cloud-alt:before {
content: "\f136";
}
.el-cloud:before {
content: "\f137";
}
.el-cog-alt:before {
content: "\f138";
}
.el-cog:before {
content: "\f139";
}
.el-cogs:before {
content: "\f13a";
}
.el-comment-alt:before {
content: "\f13b";
}
.el-comment:before {
content: "\f13c";
}
.el-compass-alt:before {
content: "\f13d";
}
.el-compass:before {
content: "\f13e";
}
.el-credit-card:before {
content: "\f13f";
}
.el-css:before {
content: "\f140";
}
.el-dashboard:before {
content: "\f141";
}
.el-delicious:before {
content: "\f142";
}
.el-deviantart:before {
content: "\f143";
}
.el-digg:before {
content: "\f144";
}
.el-download-alt:before {
content: "\f145";
}
.el-download:before {
content: "\f146";
}
.el-dribbble:before {
content: "\f147";
}
.el-edit:before {
content: "\f148";
}
.el-eject:before {
content: "\f149";
}
.el-envelope-alt:before {
content: "\f14a";
}
.el-envelope:before {
content: "\f14b";
}
.el-error-alt:before {
content: "\f14c";
}
.el-error:before {
content: "\f14d";
}
.el-eur:before {
content: "\f14e";
}
.el-exclamation-sign:before {
content: "\f14f";
}
.el-eye-close:before {
content: "\f150";
}
.el-eye-open:before {
content: "\f151";
}
.el-facebook:before {
content: "\f152";
}
.el-facetime-video:before {
content: "\f153";
}
.el-fast-backward:before {
content: "\f154";
}
.el-fast-forward:before {
content: "\f155";
}
.el-female:before {
content: "\f156";
}
.el-file-alt:before {
content: "\f157";
}
.el-file-edit-alt:before {
content: "\f158";
}
.el-file-edit:before {
content: "\f159";
}
.el-file-new-alt:before {
content: "\f15a";
}
.el-file-new:before {
content: "\f15b";
}
.el-file:before {
content: "\f15c";
}
.el-film:before {
content: "\f15d";
}
.el-filter:before {
content: "\f15e";
}
.el-fire:before {
content: "\f15f";
}
.el-flag-alt:before {
content: "\f160";
}
.el-flag:before {
content: "\f161";
}
.el-flickr:before {
content: "\f162";
}
.el-folder-close:before {
content: "\f163";
}
.el-folder-open:before {
content: "\f164";
}
.el-folder-sign:before {
content: "\f165";
}
.el-folder:before {
content: "\f166";
}
.el-font:before {
content: "\f167";
}
.el-fontsize:before {
content: "\f168";
}
.el-fork:before {
content: "\f169";
}
.el-forward-alt:before {
content: "\f16a";
}
.el-forward:before {
content: "\f16b";
}
.el-foursquare:before {
content: "\f16c";
}
.el-friendfeed-rect:before {
content: "\f16d";
}
.el-friendfeed:before {
content: "\f16e";
}
.el-fullscreen:before {
content: "\f16f";
}
.el-gbp:before {
content: "\f170";
}
.el-gift:before {
content: "\f171";
}
.el-github-text:before {
content: "\f172";
}
.el-github:before {
content: "\f173";
}
.el-glass:before {
content: "\f174";
}
.el-glasses:before {
content: "\f175";
}
.el-globe-alt:before {
content: "\f176";
}
.el-globe:before {
content: "\f177";
}
.el-googleplus:before {
content: "\f178";
}
.el-graph-alt:before {
content: "\f179";
}
.el-graph:before {
content: "\f17a";
}
.el-group-alt:before {
content: "\f17b";
}
.el-group:before {
content: "\f17c";
}
.el-guidedog:before {
content: "\f17d";
}
.el-hand-down:before {
content: "\f17e";
}
.el-hand-left:before {
content: "\f17f";
}
.el-hand-right:before {
content: "\f180";
}
.el-hand-up:before {
content: "\f181";
}
.el-hdd:before {
content: "\f182";
}
.el-headphones:before {
content: "\f183";
}
.el-hearing-impaired:before {
content: "\f184";
}
.el-heart-alt:before {
content: "\f185";
}
.el-heart-empty:before {
content: "\f186";
}
.el-heart:before {
content: "\f187";
}
.el-home-alt:before {
content: "\f188";
}
.el-home:before {
content: "\f189";
}
.el-hourglass:before {
content: "\f18a";
}
.el-idea-alt:before {
content: "\f18b";
}
.el-idea:before {
content: "\f18c";
}
.el-inbox-alt:before {
content: "\f18d";
}
.el-inbox-box:before {
content: "\f18e";
}
.el-inbox:before {
content: "\f18f";
}
.el-indent-left:before {
content: "\f190";
}
.el-indent-right:before {
content: "\f191";
}
.el-info-circle:before {
content: "\f192";
}
.el-instagram:before {
content: "\f193";
}
.el-iphone-home:before {
content: "\f194";
}
.el-italic:before {
content: "\f195";
}
.el-key:before {
content: "\f196";
}
.el-laptop-alt:before {
content: "\f197";
}
.el-laptop:before {
content: "\f198";
}
.el-lastfm:before {
content: "\f199";
}
.el-leaf:before {
content: "\f19a";
}
.el-lines:before {
content: "\f19b";
}
.el-link:before {
content: "\f19c";
}
.el-linkedin:before {
content: "\f19d";
}
.el-list-alt:before {
content: "\f19e";
}
.el-list:before {
content: "\f19f";
}
.el-livejournal:before {
content: "\f1a0";
}
.el-lock-alt:before {
content: "\f1a1";
}
.el-lock:before {
content: "\f1a2";
}
.el-magic:before {
content: "\f1a3";
}
.el-magnet:before {
content: "\f1a4";
}
.el-male:before {
content: "\f1a5";
}
.el-map-marker-alt:before {
content: "\f1a6";
}
.el-map-marker:before {
content: "\f1a7";
}
.el-mic-alt:before {
content: "\f1a8";
}
.el-mic:before {
content: "\f1a9";
}
.el-minus-sign:before {
content: "\f1aa";
}
.el-minus:before {
content: "\f1ab";
}
.el-move:before {
content: "\f1ac";
}
.el-music:before {
content: "\f1ad";
}
.el-myspace:before {
content: "\f1ae";
}
.el-network:before {
content: "\f1af";
}
.el-off:before {
content: "\f1b0";
}
.el-ok-circle:before {
content: "\f1b1";
}
.el-ok-sign:before {
content: "\f1b2";
}
.el-ok:before {
content: "\f1b3";
}
.el-opensource:before {
content: "\f1b4";
}
.el-paper-clip-alt:before {
content: "\f1b5";
}
.el-paper-clip:before {
content: "\f1b6";
}
.el-path:before {
content: "\f1b7";
}
.el-pause-alt:before {
content: "\f1b8";
}
.el-pause:before {
content: "\f1b9";
}
.el-pencil-alt:before {
content: "\f1ba";
}
.el-pencil:before {
content: "\f1bb";
}
.el-person:before {
content: "\f1bc";
}
.el-phone-alt:before {
content: "\f1bd";
}
.el-phone:before {
content: "\f1be";
}
.el-photo-alt:before {
content: "\f1bf";
}
.el-photo:before {
content: "\f1c0";
}
.el-picasa:before {
content: "\f1c1";
}
.el-picture:before {
content: "\f1c2";
}
.el-pinterest:before {
content: "\f1c3";
}
.el-plane:before {
content: "\f1c4";
}
.el-play-alt:before {
content: "\f1c5";
}
.el-play-circle:before {
content: "\f1c6";
}
.el-play:before {
content: "\f1c7";
}
.el-plurk-alt:before {
content: "\f1c8";
}
.el-plurk:before {
content: "\f1c9";
}
.el-plus-sign:before {
content: "\f1ca";
}
.el-plus:before {
content: "\f1cb";
}
.el-podcast:before {
content: "\f1cc";
}
.el-print:before {
content: "\f1cd";
}
.el-puzzle:before {
content: "\f1ce";
}
.el-qrcode:before {
content: "\f1cf";
}
.el-question-sign:before {
content: "\f1d0";
}
.el-question:before {
content: "\f1d1";
}
.el-quote-alt:before {
content: "\f1d2";
}
.el-quote-right-alt:before {
content: "\f1d3";
}
.el-quote-right:before {
content: "\f1d4";
}
.el-quotes:before {
content: "\f1d5";
}
.el-random:before {
content: "\f1d6";
}
.el-record:before {
content: "\f1d7";
}
.el-reddit:before {
content: "\f1d8";
}
.el-redux:before {
content: "\f1d9";
}
.el-refresh:before {
content: "\f1da";
}
.el-remove-circle:before {
content: "\f1db";
}
.el-remove-sign:before {
content: "\f1dc";
}
.el-remove:before {
content: "\f1dd";
}
.el-repeat-alt:before {
content: "\f1de";
}
.el-repeat:before {
content: "\f1df";
}
.el-resize-full:before {
content: "\f1e0";
}
.el-resize-horizontal:before {
content: "\f1e1";
}
.el-resize-small:before {
content: "\f1e2";
}
.el-resize-vertical:before {
content: "\f1e3";
}
.el-return-key:before {
content: "\f1e4";
}
.el-retweet:before {
content: "\f1e5";
}
.el-reverse-alt:before {
content: "\f1e6";
}
.el-road:before {
content: "\f1e7";
}
.el-rss:before {
content: "\f1e8";
}
.el-scissors:before {
content: "\f1e9";
}
.el-screen-alt:before {
content: "\f1ea";
}
.el-screen:before {
content: "\f1eb";
}
.el-screenshot:before {
content: "\f1ec";
}
.el-search-alt:before {
content: "\f1ed";
}
.el-search:before {
content: "\f1ee";
}
.el-share-alt:before {
content: "\f1ef";
}
.el-share:before {
content: "\f1f0";
}
.el-shopping-cart-sign:before {
content: "\f1f1";
}
.el-shopping-cart:before {
content: "\f1f2";
}
.el-signal:before {
content: "\f1f3";
}
.el-skype:before {
content: "\f1f4";
}
.el-slideshare:before {
content: "\f1f5";
}
.el-smiley-alt:before {
content: "\f1f6";
}
.el-smiley:before {
content: "\f1f7";
}
.el-soundcloud:before {
content: "\f1f8";
}
.el-speaker:before {
content: "\f1f9";
}
.el-spotify:before {
content: "\f1fa";
}
.el-stackoverflow:before {
content: "\f1fb";
}
.el-star-alt:before {
content: "\f1fc";
}
.el-star-empty:before {
content: "\f1fd";
}
.el-star:before {
content: "\f1fe";
}
.el-step-backward:before {
content: "\f1ff";
}
.el-step-forward:before {
content: "\f200";
}
.el-stop-alt:before {
content: "\f201";
}
.el-stop:before {
content: "\f202";
}
.el-stumbleupon:before {
content: "\f203";
}
.el-tag:before {
content: "\f204";
}
.el-tags:before {
content: "\f205";
}
.el-tasks:before {
content: "\f206";
}
.el-text-height:before {
content: "\f207";
}
.el-text-width:before {
content: "\f208";
}
.el-th-large:before {
content: "\f209";
}
.el-th-list:before {
content: "\f20a";
}
.el-th:before {
content: "\f20b";
}
.el-thumbs-down:before {
content: "\f20c";
}
.el-thumbs-up:before {
content: "\f20d";
}
.el-time-alt:before {
content: "\f20e";
}
.el-time:before {
content: "\f20f";
}
.el-tint:before {
content: "\f210";
}
.el-torso:before {
content: "\f211";
}
.el-trash-alt:before {
content: "\f212";
}
.el-trash:before {
content: "\f213";
}
.el-tumblr:before {
content: "\f214";
}
.el-twitter:before {
content: "\f215";
}
.el-universal-access:before {
content: "\f216";
}
.el-unlock-alt:before {
content: "\f217";
}
.el-unlock:before {
content: "\f218";
}
.el-upload:before {
content: "\f219";
}
.el-usd:before {
content: "\f21a";
}
.el-user:before {
content: "\f21b";
}
.el-viadeo:before {
content: "\f21c";
}
.el-video-alt:before {
content: "\f21d";
}
.el-video-chat:before {
content: "\f21e";
}
.el-video:before {
content: "\f21f";
}
.el-view-mode:before {
content: "\f220";
}
.el-vimeo:before {
content: "\f221";
}
.el-vkontakte:before {
content: "\f222";
}
.el-volume-down:before {
content: "\f223";
}
.el-volume-off:before {
content: "\f224";
}
.el-volume-up:before {
content: "\f225";
}
.el-w3c:before {
content: "\f226";
}
.el-warning-sign:before {
content: "\f227";
}
.el-website-alt:before {
content: "\f228";
}
.el-website:before {
content: "\f229";
}
.el-wheelchair:before {
content: "\f22a";
}
.el-wordpress:before {
content: "\f22b";
}
.el-wrench-alt:before {
content: "\f22c";
}
.el-wrench:before {
content: "\f22d";
}
.el-youtube:before {
content: "\f22e";
}
.el-zoom-in:before {
content: "\f22f";
}
.el-zoom-out:before {
content: "\f230";
}
================================================
FILE: src/static/css/lightbox.css
================================================
/*!
* baguetteBox.js
* @author feimosi
* @version 0.7.0
* @url https://github.com/feimosi/baguetteBox.js
*/
#baguetteBox-overlay {
display: none;
opacity: 0;
position: fixed;
overflow: hidden;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1000000;
background-color: #222;
background-color: rgba(0, 0, 0, 0.8);
-webkit-transition: opacity 0.5s ease;
transition: opacity 0.5s ease;
}
#baguetteBox-overlay.visible {
opacity: 1;
}
#baguetteBox-overlay .full-image {
display: inline-block;
position: relative;
width: 100%;
height: 100%;
text-align: center;
}
#baguetteBox-overlay .full-image figure {
display: inline;
margin: 0;
height: 100%;
}
#baguetteBox-overlay .full-image img {
display: inline-block;
width: auto;
height: auto;
max-height: 100%;
max-width: 100%;
vertical-align: middle;
-webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
-moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
}
#baguetteBox-overlay .full-image figcaption {
display: block;
position: absolute;
bottom: 0;
width: 100%;
text-align: center;
line-height: 1.8;
color: #ccc;
background-color: #000;
background-color: rgba(0, 0, 0, 0.6);
font-family: sans-serif;
}
#baguetteBox-overlay .full-image:before {
content: "";
display: inline-block;
height: 50%;
width: 1px;
margin-right: -1px;
}
#baguetteBox-slider {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
white-space: nowrap;
-webkit-transition: left 0.4s ease, -webkit-transform 0.4s ease;
transition: left 0.4s ease, -moz-transform 0.4s ease;
transition: left 0.4s ease, transform 0.4s ease;
}
#baguetteBox-slider.bounce-from-right {
-webkit-animation: bounceFromRight 0.4s ease-out;
animation: bounceFromRight 0.4s ease-out;
}
#baguetteBox-slider.bounce-from-left {
-webkit-animation: bounceFromLeft 0.4s ease-out;
animation: bounceFromLeft 0.4s ease-out;
}
.baguetteBox-button#next-button,
.baguetteBox-button#previous-button {
top: 50%;
top: calc(50% - 30px);
width: 44px;
height: 60px;
}
.baguetteBox-button {
position: absolute;
cursor: pointer;
outline: none;
padding: 0;
margin: 0;
border: 0;
-moz-border-radius: 15%;
border-radius: 15%;
background-color: #323232;
background-color: rgba(50, 50, 50, 0.5);
color: #ddd;
font: 1.6em sans-serif;
-webkit-transition: background-color 0.4s ease;
transition: background-color 0.4s ease;
}
.baguetteBox-button:hover {
background-color: rgba(50, 50, 50, 0.9);
}
.baguetteBox-button#next-button {
right: 2%;
}
.baguetteBox-button#previous-button {
left: 2%;
}
.baguetteBox-button#close-button {
top: 20px;
right: 2%;
right: calc(2% + 6px);
width: 30px;
height: 30px;
}
/*
Preloader
Borrowed from http://tobiasahlin.com/spinkit/
*/
.spinner {
width: 40px;
height: 40px;
display: inline-block;
position: absolute;
top: 50%;
left: 50%;
margin-top: -20px;
margin-left: -20px;
}
.double-bounce1,
.double-bounce2 {
width: 100%;
height: 100%;
-moz-border-radius: 50%;
border-radius: 50%;
background-color: #fff;
opacity: 0.6;
position: absolute;
top: 0;
left: 0;
-webkit-animation: bounce 2s infinite ease-in-out;
animation: bounce 2s infinite ease-in-out;
}
.double-bounce2 {
-webkit-animation-delay: -1s;
animation-delay: -1s;
}
@-webkit-keyframes bounceFromRight {
0% {
margin-left: 0;
}
50% {
margin-left: -30px;
}
100% {
margin-left: 0;
}
}
@keyframes bounceFromRight {
0% {
margin-left: 0;
}
50% {
margin-left: -30px;
}
100% {
margin-left: 0;
}
}
@-webkit-keyframes bounceFromLeft {
0% {
margin-left: 0;
}
50% {
margin-left: 30px;
}
100% {
margin-left: 0;
}
}
@keyframes bounceFromLeft {
0% {
margin-left: 0;
}
50% {
margin-left: 30px;
}
100% {
margin-left: 0;
}
}
@-webkit-keyframes bounce {
0%,100% {
-webkit-transform: scale(0);
transform: scale(0);
}
50% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
@keyframes bounce {
0%,100% {
-webkit-transform: scale(0);
-moz-transform: scale(0);
transform: scale(0);
}
50% {
-webkit-transform: scale(1);
-moz-transform: scale(1);
transform: scale(1);
}
}
================================================
FILE: src/static/css/login.css
================================================
/* Reset CSS */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}
body {
background:url(../images/bg/images/blueprint.png)repeat;
color: #000;
font: 14px Arial;
margin: 0 auto;
padding: 0;
position: relative;
}
h1{ font-size:28px;}
h2{ font-size:26px;}
h3{ font-size:18px;}
h4{ font-size:16px;}
h5{ font-size:14px;}
h6{ font-size:12px;}
h1,h2,h3,h4,h5,h6{ color:#563D64;}
small{ font-size:10px;}
b, strong{ font-weight:bold;}
a{ text-decoration: none; }
a:hover{ text-decoration: underline; }
.left { float:left; }
.right { float:right; }
.alignleft { float: left; margin-right: 15px; }
.alignright { float: right; margin-left: 15px; }
.clearfix:after,
form:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.container { margin: 8% auto; position: relative; width:100%;max-width:450px; }
#content {
background: rgba(255,255,255,1) ;
border:1px solid #ccc;
box-shadow: 0 0 20px #ccc;
margin: 0 auto;
padding: 25px 0 0;
position: relative;
text-align: center;
width:100%;max-width:680px;
}
#content h1 {
color: #333;font-family:'Microsoft Yahei';
font: bold 25px;
line-height: 20px;
margin: 10px 0 10px;
}
#content h5{padding:1em 0;color:red;}
#content form { margin: 0 20px; position: relative }
#content form input[type="text"],
#content form input[type="password"] {
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
background:rgba(255,255,255,0.6); url(http://cssdeck.com/uploads/media/items/8/8bcLQqF.png) no-repeat;
border: 1px solid rgba(109,204,41,0.8);
color: #777;
font: 13px Helvetica, Arial, sans-serif;
margin: 0 0 10px;
padding: 15px 10px 15px 40px;
width: 80%;
}
#content form input[type="text"]:focus,
#content form input[type="password"]:focus {
-webkit-box-shadow: 0 0 2px #ed1c24 inset;
-moz-box-shadow: 0 0 2px #ed1c24 inset;
-ms-box-shadow: 0 0 2px #ed1c24 inset;
-o-box-shadow: 0 0 2px #ed1c24 inset;
box-shadow: 0 0 2px #ed1c24 inset;
background-color: #fff;
border: 1px solid #ed1c24;
outline: none;
}
#username { background-position: 10px 10px !important }
#password { background-position: 10px -53px !important }
#content form input[type="submit"] {
background: rgb(254,231,154);
border: 1px solid #D69E31;
color: #85592e;
cursor: pointer;
font: bold 16px Microsoft Yahei;
height: 45px;
margin:20px auto;
border-radius:5px;-webkit-border-radius:5px;
position: relative;
text-shadow: 0 1px 0 rgba(255,255,255,0.5);
width: 200px;
}
#content form input[type="submit"]:hover {
background: rgb(254,193,81);
background: -moz-linear-gradient(top, rgba(254,193,81,1) 0%, rgba(254,231,154,1) 100%);
background: -webkit-linear-gradient(top, rgba(254,193,81,1) 0%,rgba(254,231,154,1) 100%);
background: -o-linear-gradient(top, rgba(254,193,81,1) 0%,rgba(254,231,154,1) 100%);
background: -ms-linear-gradient(top, rgba(254,193,81,1) 0%,rgba(254,231,154,1) 100%);
background: linear-gradient(top, rgba(254,193,81,1) 0%,rgba(254,231,154,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fec151', endColorstr='#fee79a',GradientType=0 );
}
#content form div a {
color: #004a80;
float: left;
font-size: 12px;
margin: 20px 0 0px 15px;
text-decoration: underline;
}
.button {
background: rgb(247,249,250);
background: -moz-linear-gradient(top, rgba(247,249,250,1) 0%, rgba(240,240,240,1) 100%);
background: -webkit-linear-gradient(top, rgba(247,249,250,1) 0%,rgba(240,240,240,1) 100%);
background: -o-linear-gradient(top, rgba(247,249,250,1) 0%,rgba(240,240,240,1) 100%);
background: -ms-linear-gradient(top, rgba(247,249,250,1) 0%,rgba(240,240,240,1) 100%);
background: linear-gradient(top, rgba(247,249,250,1) 0%,rgba(240,240,240,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f9fa', endColorstr='#f0f0f0',GradientType=0 );
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.1) inset;
-moz-box-shadow: 0 1px 2px rgba(0,0,0,0.1) inset;
-ms-box-shadow: 0 1px 2px rgba(0,0,0,0.1) inset;
-o-box-shadow: 0 1px 2px rgba(0,0,0,0.1) inset;
box-shadow: 0 1px 2px rgba(0,0,0,0.1) inset;
-webkit-border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
-o-border-radius: 0 0 5px 5px;
-ms-border-radius: 0 0 5px 5px;
border-radius: 0 0 5px 5px;
border-top: 1px solid #CFD5D9;
padding: 15px 0;
}
.button a {
background: url(http://cssdeck.com/uploads/media/items/8/8bcLQqF.png) 0 -112px no-repeat;
color: #7E7E7E;
font-size: 17px;
padding: 2px 0 2px 40px;
text-decoration: none;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all 0.3s ease;
}
.button a:hover {
background-position: 0 -135px;
color: #00aeef;
}
================================================
FILE: src/static/css/markdown.css
================================================
@font-face {
font-family: octicons-link;
src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff');
}
.markdown-body {
line-height: 2;
font-family: 'Lato', "PingFang SC", "Microsoft YaHei", sans-serif;
font-size: 14px;
word-wrap: break-word;
color: #555;
background: #f5f7f9;
}
.markdown-body .pl-c {
color: #969896;
}
.markdown-body .pl-c1, .markdown-body .pl-s .pl-v {
color: #0086b3;
}
.markdown-body .pl-e, .markdown-body .pl-en {
color: #795da3;
}
.markdown-body .pl-smi, .markdown-body .pl-s .pl-s1 {
color: #333;
}
.markdown-body .pl-ent {
color: #63a35c;
}
.markdown-body .pl-k {
color: #a71d5d;
}
.markdown-body .pl-s, .markdown-body .pl-pds, .markdown-body .pl-s .pl-pse .pl-s1, .markdown-body .pl-sr, .markdown-body .pl-sr .pl-cce, .markdown-body .pl-sr .pl-sre, .markdown-body .pl-sr .pl-sra {
color: #183691;
}
.markdown-body .pl-v {
color: #ed6a43;
}
.markdown-body .pl-id {
color: #b52a1d;
}
.markdown-body .pl-ii {
color: #f8f8f8;
background-color: #b52a1d;
}
.markdown-body .pl-sr .pl-cce {
font-weight: bold;
color: #63a35c;
}
.markdown-body .pl-ml {
color: #693a17;
}
.markdown-body .pl-mh, .markdown-body .pl-mh .pl-en, .markdown-body .pl-ms {
font-weight: bold;
color: #1d3e81;
}
.markdown-body .pl-mq {
color: #008080;
}
.markdown-body .pl-mi {
font-style: italic;
color: #333;
}
.markdown-body .pl-mb {
font-weight: bold;
color: #333;
}
.markdown-body .pl-md {
color: #bd2c00;
background-color: #ffecec;
}
.markdown-body .pl-mi1 {
color: #55a532;
background-color: #eaffea;
}
.markdown-body .pl-mdr {
font-weight: bold;
color: #795da3;
}
.markdown-body .pl-mo {
color: #1d3e81;
}
.markdown-body .octicon {
display: inline-block;
vertical-align: text-top;
fill: currentColor;
}
.markdown-body a {
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
.markdown-body a:active, .markdown-body a:hover {
outline-width: 0;
}
.markdown-body strong {
font-weight: inherit;
}
.markdown-body strong {
font-weight: bolder;
}
.markdown-body h1 {
font-size: 2em;
margin: 0.67em 0;
}
.markdown-body img {
border-style: none;
}
.markdown-body svg:not(:root) {
overflow: hidden;
}
.markdown-body code, .markdown-body kbd, .markdown-body pre {
font-family: monospace, monospace;
font-size: 1em;
}
.markdown-body hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
.markdown-body input {
font: inherit;
margin: 0;
}
.markdown-body input {
overflow: visible;
}
.markdown-body [type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
.markdown-body * {
box-sizing: border-box;
}
.markdown-body input {
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
.markdown-body a {
color: #4078c0;
text-decoration: none;
}
.markdown-body a:hover, .markdown-body a:active {
text-decoration: underline;
}
.markdown-body strong {
font-weight: 600;
}
.markdown-body hr {
height: 0;
margin: 15px 0;
overflow: hidden;
background: transparent;
border: 0;
border-bottom: 1px solid #ddd;
}
.markdown-body hr::before {
display: table;
content: "";
}
.markdown-body hr::after {
display: table;
clear: both;
content: "";
}
.markdown-body table {
border-spacing: 0;
border-collapse: collapse;
}
.markdown-body td, .markdown-body th {
padding: 0;
}
.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 {
margin-top: 0;
margin-bottom: 0;
padding-bottom: 0.3em;
border-bottom: 1px solid #eee;
text-indent: 20px;
font-family: monospace;
}
.markdown-body h1 {
font-size: 32px;
font-weight: 600;
}
.markdown-body h2 {
font-size: 24px;
font-weight: 600;
}
.markdown-body h3 {
font-size: 17px;
font-weight: 500;
text-align: left;
}
.markdown-body h4 {
font-size: 16px;
font-weight: 600;
}
.markdown-body h5 {
font-size: 14px;
font-weight: 600;
}
.markdown-body h6 {
font-size: 12px;
font-weight: 600;
}
.markdown-body blockquote {
margin: 0;
}
.markdown-body ul, .markdown-body ol {
padding-left: 0;
margin-top: 0;
margin-bottom: 0;
}
.markdown-body ol ol, .markdown-body ul ol {
list-style-type: lower-roman;
}
.markdown-body ul ul ol, .markdown-body ul ol ol, .markdown-body ol ul ol, .markdown-body ol ol ol {
list-style-type: lower-alpha;
}
.markdown-body dd {
margin-left: 0;
}
.markdown-body pre {
margin-top: 0;
margin-bottom: 0;
font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;
}
.markdown-body .octicon {
vertical-align: text-bottom;
}
.markdown-body input {
-webkit-font-feature-settings: "liga" 0;
font-feature-settings: "liga" 0;
}
.markdown-body::before {
display: table;
content: "";
}
.markdown-body::after {
display: table;
clear: both;
content: "";
}
.markdown-body > *:first-child {
margin-top: 0 !important;
}
.markdown-body > *:last-child {
margin-bottom: 0 !important;
}
.markdown-body a:not([href]) {
color: inherit;
text-decoration: none;
}
.markdown-body .anchor {
float: left;
padding-right: 4px;
margin-left: -20px;
line-height: 1;
}
.markdown-body .anchor:focus {
outline: none;
}
.markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre {
margin-top: 0;
margin-bottom: 16px;
margin-left: 2rem;
}
.markdown-body hr {
height: 0.25em;
padding: 0;
margin: 24px 0;
background-color: #e7e7e7;
border: 0;
}
.markdown-body blockquote {
padding: 0 1em;
color: #777;
border-left: 0.25em;
}
.markdown-body blockquote > :first-child {
margin-top: 0;
}
.markdown-body blockquote > :last-child {
margin-bottom: 0;
}
.markdown-body kbd {
display: inline-block;
padding: 3px 5px;
font-size: 11px;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb;
}
.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 {
margin-top: 24px;
margin-bottom: 16px;
font-weight: 600;
line-height: 1.25;
}
.markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link {
color: #000;
vertical-align: middle;
visibility: hidden;
}
.markdown-body h1:hover .anchor, .markdown-body h2:hover .anchor, .markdown-body h3:hover .anchor, .markdown-body h4:hover .anchor, .markdown-body h5:hover .anchor, .markdown-body h6:hover .anchor {
text-decoration: none;
}
.markdown-body h1:hover .anchor .octicon-link, .markdown-body h2:hover .anchor .octicon-link, .markdown-body h3:hover .anchor .octicon-link, .markdown-body h4:hover .anchor .octicon-link, .markdown-body h5:hover .anchor .octicon-link, .markdown-body h6:hover .anchor .octicon-link {
visibility: visible;
}
.markdown-body h1 {
padding-bottom: 0.3em;
font-size: 2em;
border-bottom: 1px solid #eee;
}
.markdown-body h2 {
padding-bottom: 0.3em;
font-size: 1.5em;
border-bottom: 1px solid #eee;
}
.markdown-body h3 {
font-size: 1.25em;
}
.markdown-body h4 {
font-size: 1em;
}
.markdown-body h5 {
font-size: 0.875em;
}
.markdown-body h6 {
font-size: 0.85em;
color: #777;
}
.markdown-body ul, .markdown-body ol {
margin-left: 60px;
list-style-type: circle;
}
.markdown-body ul ul, .markdown-body ul ol, .markdown-body ol ol, .markdown-body ol ul {
margin-top: 0;
margin-bottom: 0;
}
.markdown-body li > p {
margin-top: 16px;
}
.markdown-body li + li {
margin-top: 0.25em;
}
.markdown-body dl {
padding: 0;
}
.markdown-body dl dt {
padding: 0;
margin-top: 16px;
font-size: 1em;
font-style: italic;
font-weight: bold;
}
.markdown-body dl dd {
padding: 0 16px;
margin-bottom: 16px;
}
.markdown-body table {
display: block;
width: 100%;
overflow: auto;
}
.markdown-body table th {
font-weight: bold;
}
.markdown-body table th, .markdown-body table td {
padding: 6px 13px;
border: 1px solid #ddd;
}
.markdown-body table tr {
background-color: #fff;
border-top: 1px solid #ccc;
}
.markdown-body table tr:nth-child(2n) {
background-color: #f8f8f8;
}
.markdown-body img {
max-width: 100%;
box-sizing: content-box;
background-color: #fff;
}
.markdown-body code {
padding: 0;
padding-top: 0.2em;
padding-bottom: 0.2em;
margin: auto 3px;
font-size: 85%;
background-color: moccasin;
border-radius: 3px;
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
color: #c7254e;
}
.markdown-body pre {
word-wrap: normal;
}
.markdown-body pre > code {
padding: 0;
margin: 0;
font-size: 100%;
word-break: normal;
white-space: pre;
background: transparent;
border: 0;
}
.markdown-body .highlight {
margin-bottom: 16px;
}
.markdown-body .highlight pre {
margin-bottom: 0;
word-break: normal;
}
.markdown-body .highlight pre, .markdown-body pre {
padding: 16px;
overflow: auto;
font-size: 85%;
line-height: 1.45; /*background-color: #f7f7f7;*/
border-radius: 3px;
border: 1px solid #bbbbbb;
}
.markdown-body pre code {
display: inline;
max-width: auto;
padding: 0;
margin: 0;
overflow: visible;
line-height: inherit;
word-wrap: normal;
background-color: transparent;
border: 0;
}
.markdown-body pre code::before, .markdown-body pre code::after {
content: normal;
}
.markdown-body .pl-0 {
padding-left: 0 !important;
}
.markdown-body .pl-1 {
padding-left: 3px !important;
}
.markdown-body .pl-2 {
padding-left: 6px !important;
}
.markdown-body .pl-3 {
padding-left: 12px !important;
}
.markdown-body .pl-4 {
padding-left: 24px !important;
}
.markdown-body .pl-5 {
padding-left: 36px !important;
}
.markdown-body .pl-6 {
padding-left: 48px !important;
}
.markdown-body .full-commit .btn-outline:not(:disabled):hover {
color: #4078c0;
border: 1px solid #4078c0;
}
.markdown-body kbd {
display: inline-block;
padding: 3px 5px;
font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb;
}
.markdown-body :checked + .radio-label {
position: relative;
z-index: 1;
border-color: #4078c0;
}
.markdown-body .task-list-item {
list-style-type: none;
}
.markdown-body .task-list-item + .task-list-item {
margin-top: 3px;
}
.markdown-body .task-list-item input {
margin: 0 0.2em 0.25em -1.6em;
vertical-align: middle;
}
.markdown-body hr {
border-bottom-color: #eee;
}
.codehilite .k {
color: #0000FF
}
.codehilite .kn {
color: #0000FF
}
.codehilite .nf {
color: #795da3
}
.codehilite .bp {
color: #FF0000
}
.codehilite .nd {
color: #F0A0A0
}
.codehilite .nc {
color: #795da3
}
.codehilite .sd, .s {
color: #183691;
}
.codehilite .c {
color: #969896;
font-style: italic;
}
================================================
FILE: src/static/css/public.css
================================================
body{font-size:14px;font-size:100%;font-family:'Microsoft YaHei';line-height:24px;margin:0;padding:0;min-width:320px;display:none;}
a{color:inherit;text-decoration:none;}
img{border:none;}
ul,dl,dt,dd,p{padding:0;margin:0;list-style:none;}
h1,h2,h3,h4,h5{padding:10px 0;margin:0;text-indent:5px;margin-bottom:15px;}
input,button,select{outline:none!important}
body{
background:#e9ecd7 url(../images/bgimg/bg0.jpg);
background-attachment: fixed;
background-repeat: no-repeat;
background-size: 100% 100%;
}
body:after {
content: '';
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: rgba(255,255,255,0.5);
z-index: -1;
}
i{
color:#ff6700;
margin-right:5px;
}
input,textarea{padding:0;margin:0;border:#ddd 1px solid;box-sizing:border-box;box-shadow:inset 0 0 2px rgba(0,0,0,0.05);font-family:'Microsoft YaHei';text-indent:10px;background:rgba(255,255,255,0.5);transition:all 0.5s;-webkit-transition:all 0.5s;}
input:focus,textarea:focus{ outline:none;border:#ff6700 1px solid;box-shadow: 0 0 8px rgba(255, 103, 0,0.7);}
.nobg{background-image:none!important;background-color:#fff!important;}
div#tooltip {position:absolute; z-index:1000;width:auto!important;background:linear-gradient(rgba(255,255,255,1), rgba(255,255,255,0.7),rgba(255,255,255,1)); text-align:left; padding:5px 10px;border-radius:5px;
background: -webkit-linear-gradient(rgba(255, 255, 255, 1), rgba(255, 255, 255, 0.7),rgba(255, 255, 255, 1));
}
div#tooltip p {color:#ff6700;font-size:12px;}
div#tooltip p:after{
content:'';
width: 0;
height: 0;
position:absolute;
left:10%;
top:-8px;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-bottom: 8px solid rgba(255,255,255,0.95);
}
.jiazai{position:absolute;left:0;right:0;margin:auto;top:40%;width:300px;height:100px;text-align:center;}
.jiazai img{vertical-align:middle;margin-right:10px;}
.jiazai span{font-size:18px;color:#ccc;line-height:100px;}
.orange-text{color:#ff6700;}
.blue-text{color:#0181da;}
.bg-color{background:rgba(255,255,255,0.5);}
.index-title{font-size:14px;color:#0181da;font-weight:normal;}
.index-title small{color:#bcbcbc;margin-left:5px;font-size:12px;}
.lable{display:inline-block;background:#ff4200;padding:0px 5px;color:#fff;border-radius:5px;-webkit-border-radius:5px;font-weight:normal;margin-left:5px;}
.img-circle{border-radius:100px;-webkit-border-radius:100px;-moz-border-radius:100px;}
#tuijian{background:rgba(255,255,255,0.5) url(../images/icon/tj2.gif)no-repeat 98% 8px;}
#Hot{background:rgba(255,255,255,0.5) url(../images/icon/hot.gif)no-repeat 98% 8px;}
#New{background:rgba(255,255,255,0.5) url(../images/icon/new.gif)no-repeat 98% 8px;}
#News{background:url(../images/icon/new.gif)no-repeat 100% 0px;}
#Hots{background:url(../images/icon/hot.gif)no-repeat 100% 0px;}
#arc-tj{background:rgba(255,255,255,0.5) url(../images/icon/tj.gif)no-repeat 98% 8px;background-size:10%;}
header{width:100%;height:70px; background:rgba(255,255,255,0.85);box-shadow:0 0 5px #13c5f8;position:fixed;z-index:10;/*url(../images/bgimg/topbg1.png)repeat-x;background-size: 100% 100%;*/ }
header .top{width:100%;max-width:1200px;margin:auto;height:100%;position:relative;}
header .top .top-left{width:40%;float:left;overflow:hidden;height:100%;position:relative;}
header .mynav{width:60%;float:right;height:100%;position:relative;}
.top .logo{width:33%;float:left;}
.top .logo img{width:90%;padding-top:0.2em;}
.web-xiaoxi{margin-top:25px;width:67%;float:left;position:relative;font-size:12px;color:#777;}
.web-xiaoxi i{position:absolute;left:0;top:6px;color:inherit;}
.mulitline{height:25px;overflow:hidden;margin-left:20px;}
.mulitline li{line-height:25px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
#tianqi{height:20px;max-width:270px;}
.mynav >ul{}
.mynav >ul >li{text-align:center;width:12.5%;font-size:16px;color:inherit;height:100%;float:left;position:relative;}
.mynav> ul >li >a{display:inline-block;width:100%;height:70px;line-height:70px;color:#ff6700;transition:all 0.2s;-webkit-transition:all 0.2s;}
.mynav >ul >li >a:hover {background: #13c5f8;color:#fff;/*url(../images/bgimg/nav.png)no-repeat;*/font-size:20px;}
.mynav >.nav-active{background: #13c5f8;/*url(../images/bgimg/nav.png)no-repeat;*/}
.mynav >.nav-active a{color:#fff!important;font-size:20px;}
.mynav >ul >li .el-chevron-down{font-size:12px;color:inherit;}
.drop:hover .el-chevron-down{color:inherit;}
.drop-nav{}
.drop-nav li.nav-active a{border:none;}
.drop .el-chevron-down{font-size:12px;margin-left:10px;display:inline-block;transition: all 0.2s;-webkit-transition: all 0.2s;}
.nav-active .el-chevron-down{transform:rotate(180deg);}
.drop:hover .el-chevron-down{transform:rotate(180deg);}
.drop-nav{position:absolute;width:150px;border:1px solid #ddd;top:70px;box-sizing:border-box;border-top:none;display:none; background:rgba(255,255,255,0.9);box-shadow:2px 2px 8px #ccc;}
.drop-nav li{padding:10px 0;width:100%;color:inherit;font-size:14px;text-align:center;border-bottom:1px dotted #ddd;box-sizing:border-box;transition: all 0.2s;-webkit-transition: all 0.2s;}
.drop-nav li:hover{background:#13c5f8;font-size:16px;}
.drop-nav li:hover a,.drop-nav li:hover a i{color:#fff;}
.drop-nav li a{display:inline-block;height:100%;width:100%; color: #ff6700!important;}
.drop-nav li:hover a{color:#fff!important;}
.drop-nav li a i{font-size:12px;margin-right:10px;color:#7d7d7d;}
.drop-nav li.nav-active{background:#13c5f8!important;}
.drop-nav li.nav-active a{color:#fff!important;font-size:16px!important;}
.mobile-nav{overflow:hidden;float:right;text-align:center;width:33px;height:100%;position:relative;}
.mobile-nav .el-lines,.mobile-nav .el-remove{display:inline-block;line-height:2.8em;font-size:20px;color:#ff6700;}
.mobile-nav .el-remove{display:none;}
.mob-menu{z-index:999;position:absolute;width:100%;box-shadow:0px 5px 7px #999;background:rgba(255,255,255,0.9);top:3.3em;display:none;z-index:99999;right:0;-webkit-animation:mob-menu 0.5s}
.mob-menu .mob-ulnav i{top:17px;right:40%;position:absolute;display: inline-block;width: 0;height: 0;border-top: 5px solid #525252;border-right: 5px solid transparent;border-left: 5px solid transparent;}
.mob-menu .mob-ulnav li a{display:inline-block;position:relative;color:#525252;width:100%;padding:10px 0;border-bottom:1px dotted #adeccc;text-align:center;font-size:12px;}
.mob-menu .mob-ulnav li{}
.mob-menu .mob-ulnav li:last-child a{border:0;}
.mob-dropmenu{clear:both;background:#eee;display:none;}
.mob-drop .el-caret-down{float:right;}
.mob-menu .search{margin:0;}
.mob-menu .search form{padding:0;}
/*END mob*/
/*section*/
.container{width:100%;max-width:1300px;min-width:320px;margin:auto;overflow:hidden;padding-top:100px;}
.mysection{width:65%;float:left;}
.arclist{width:100%;overflow:hidden;margin-top:25px;}
.arclist >ul{width:100%;}
.arclist>ul>li{width:100%;margin:auto;padding:25px;box-sizing:border-box;margin-bottom:25px;overflow:hidden;position:relative;background:rgba(255,255,255,0.5);}
.arclist>ul>li> .arcimg{width:25%;height:105px;float:left;overflow:hidden;}
.arclist>ul>li> .arcimg img{width:100%;height:100%;transition: all 0.5s;-webkit-transition: all 0.5s;}
.arc-right{width:71%;float:right;position:relative;}
.arc-right h4{padding:0;margin:0;background:none;font-size:18px;padding-bottom:11px;text-indent:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
.arc-right p{font-size:13px;overflow:hidden;text-overflow:ellipsis;height:54px;color:#515151;}
.arc-right ul{width:100%;overflow:hidden;position:absolute;}
.arc-right ul li{float:left;overflow:hidden;padding:0 5px;font-size:12px;color:#888; max-width: 150px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
.arc-right ul li:last-child{float:right;}
.arclist>ul>li:hover img{transform:scale(1.1);}
.add-more{width:100%;padding:10px 0;text-align:center;font-size:16px;margin:15px 0;display:inline-block;border-bottom:1px solid #ddd;box-sizing:border-box; transition:all 0.5s;-webkit-transition:all 0.5s;}
.add-more:hover{background:#ff6700;color:#fff;}
.myaside{width:32%;float:right;}
.left-side,.right-side{width:25%;float:left;margin-bottom:30px;}
.section{ width: 45%;float: left;margin: 0 2.5%;}
.xiangguan{width:100%;overflow:hidden;}
.xiangguan div{display:block;font-size:14px;float:left;overflow:hidden;width:25%;text-align:center;margin-bottom:20px;padding-top:10px;color:#fff;}
.xiangguan div a{display:inline-block;width:50px;height:50px;margin:auto;border-radius:100px;-webkit-border-radius:100px;transition:all 0.5s;-webkit-transition:all 0.5s;}
.xiangguan div a i{line-height:50px;font-size:20px;margin:0;}
.xiangguan div span{display:block;width:100%;padding-top:10px;color:#777;}
.xiangguan .benbo{background:#0cabd3;}
.xiangguan > div >.mail-btn{background:#0cd38f;padding:0;}
.xiangguan .githbu{background:#5B5B5B;}
.xiangguan .side-fx{background:#8aee08;cursor:pointer;}
.xiangguan a:hover{opacity:0.8;transform:rotate(360deg) scale(1.3);}
.xiangguan a i{color:inherit;}
.other-xg a{width:50%;float:left;text-align:center;font-size:14px;color:#999;cursor:pointer;}
.other-xg i{color:inherit;}
.other-xg .rmb{font-family:'Microsoft YaHei'}
.other-xg{width:100%;overflow:hidden;padding-bottom:10px;}
.side-bdfx{display:none;border-radius:5px;position:absolute;background:rgba(255,255,255,0.9);width:350px;box-shadow:0px 0px 15px #ccc;border:1px solid #ccc;z-index:999;}
.side-bdfx>.bdsharebuttonbox{padding:20px 0;margin:0;}
.side-bdfx i{position:absolute;right:5px;top:5px;color:#777;cursor:pointer;font-size:12px;}
.focus-me{margin-bottom:30px;position:relative;}
.bdsharebuttonbox{padding:10px 0 25px 0;text-align:center;margin:auto;overflow:hidden!important;}
.bdsharebuttonbox li{display:inline;}
.bdsharebuttonbox a{text-align:center;background:url(../images/icon/bd-fx.png)no-repeat!important;width:50px!important;height:50px!important;display:inline-block!important;margin:0 3.5%!important;transition:all 0.5s;-webkit-transition:all 0.5s;}
.bdsharebuttonbox .bds_weixin{background-position:0% 4%!important;}
.bdsharebuttonbox .bds_tsina{background-position:33% 4%!important;}
.bdsharebuttonbox .bds_qzone{background-position:66% 4%!important;}
.bdsharebuttonbox .bds_tieba{background-position:99.5% 4%!important;}
.bdsharebuttonbox .bds_weixin:hover{background-position:0% 90%!important;}
.bdsharebuttonbox .bds_tsina:hover{background-position:33% 90%!important;}
.bdsharebuttonbox .bds_qzone:hover{background-position:66% 90%!important;}
.bdsharebuttonbox .bds_tieba:hover{background-position:99.5% 90%!important;}
.bdsharebuttonbox a:last-child{margin:0;}
.bdshare-button-style1-32 a{float:none!important;}
.cloud { width:100%; clear: both; overflow: hidden;border-radius:0px;border:0px solid #eee;margin-top:30px;overflow:auto;padding-bottom:15px;}
.cloud ul {width:95%;margin:auto;overflow:hidden;}
.cloud ul li {padding:0.1em 0.5em 0.1em 0.5em;float:left;text-align:center; border-radius:0.5em;margin:0.3em 1% 0.3em 1%;-moz-transition: all 0.5s; -webkit-transition: all 0.5s; -o-transition: all 0.5s; transition: all 0.5s; }
.cloud ul li a { color: #FFF;font-size:12px;}
.cloud ul li:hover { border-radius: 0; text-shadow: #000 1px 1px 1px }
.cloud ul li:nth-child(8n-4) { background: #20a8fe }
.cloud ul li:nth-child(8n-3) { background: #EB6841 }
.cloud ul li:nth-child(8n-2) { background: #3FB8AF }
.cloud ul li:nth-child(8n-1) { background: #FE4365 }
.cloud ul li:nth-child(8n-5) { background: #FC9D9A }
.cloud ul li:nth-child(8n-6) { background: #EDC951 }
.cloud ul li:nth-child(8n-7) { background: #C8C8A9 }
.cloud ul li:nth-child(8n) { background: #83AF9B }
.cloud ul li:first-child { background: #036564 }
.cloud ul li:last-child { background: #3299BB }
.article-push{margin-top:30px;}
.article-push >ul> li> .arc-right>h4{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;}
.article-push >ul{}
.article-push ul li{background:none;padding:10px 5%;margin-bottom:5px;overflow:hidden;}
.article-push ul li:last-child{border:none;}
.article-push>ul>li> .arcimg{width:30%;float:left;border-radius:3px;height:83px;-webkit-border-radius:3px;overflow:hidden;border:1px dotted #05b129;}
.article-push>ul>li> .arcimg img{width:100%;height:100%;padding:3px;box-sizing:border-box;border-radius:3px;-webkit-border-radius:3px;}
.article-push>ul>li> .arc-right{width:62%;}
.article-push>ul>li> .arc-right p{height:30px;font-size:12px;}
.article-push >ul>li>ul{width:100%;}
.article-push .arc-right>ul li{padding:0;}
.article-push >ul> li:hover{background:#f9fffc;}
.search{margin-top:20px;margin-bottom:10px;}
.search form{width:95%;margin:auto;padding-bottom:10px;}
.search-index{overflow:hidden;padding:10px 0;height:2em;}
.search-index input{font-size:12px;color:#333;height:100%;width:80%;float:left;}
.search-index i{height:100%;width:20%;background:rgba(255,255,255,0.8);padding:0;margin:0;text-align:center;font-size:16px;line-height:2em;}
.search form input[type="submit"]{cursor:pointer;position:relative;top:-32px;background:none;width:100%;border:1px solid #ccc;box-sizing:border-box;border-left:none;}
/*˵˵*/
.shuo-side{overflow:hidden;padding-bottom:10px;}
.shuo-side ul{width:95%;margin:auto;}
.shuo-side ul li{height:45px;overflow:hidden;margin-bottom:20px;border-bottom:solid #fdceaf 1px;padding-top:10px;position: relative;}
.shuo-side span{width:80px;height:70px;border-radius:200px 0% 0 0;position:relative;float:left;left:-5px;color:#fff;display:inline-block;text-align:center;line-height:45px;font-size:14px;}
.shuo-side span strong{transform:rotate(-30deg);-webkit-transform:rotate(-30deg);display:block;position:relative;left:5px;}
.shuo-side div{height:100%;line-height:40px;float:left;width:70%;}
.shuo-side div a{font-size:12px;color:#555;float:left;text-indent:1.5em; white-space: nowrap;text-overflow: ellipsis;overflow: hidden;width: 100%;}
.shuo-side div b{font-weight:normal;font-size:12px;color:#999; position: absolute; right: 5px;}
.shuo-side ul li:nth-of-type(1){border-color:#0183ce}
.shuo-side ul li:nth-of-type(2){border-color:#96ce01}
.shuo-side ul li:nth-of-type(3){border-color:#e26204}
.shuobg1{background:#0183ce;opacity:0.6;}
.shuobg2{background:#96ce01;opacity:0.6;}
.shuobg3{background:#e26204;opacity:0.6;}
.mytab{margin-top:30px;}
.tab-btn{width:100%;}
.tab-btn a{width:50%;padding:12px 0;text-align:center;display:inline-block;font-size:13px;position:relative;}
.tab-btn .tab-active{background:#0ddb9e;color:#fff;}
.tab-btn .tab-active:after{
content:' ';
border-top: 10px solid #0ddb9e;
border-right: 10px solid transparent;
border-left: 10px solid transparent;
display: inline-block;
width: 0;height: 0;
position:absolute;
bottom:-10px!important;
left:0;right:0;
margin-left:auto;margin-right:auto;
}
.tab-btn .tab-active i{color:#fff;}
.hudong-ul{width:95%;margin:auto;margin-top:10px;position:relative;transition:all 0.5s;-webkit-transition:all 0.5s;}
.hudong-ul li{width:100%;padding:10px 0;border-bottom:1px dashed #ccc;overflow:hidden;}
.hudong-ul li time{color:#888;float:right;width:58px;overflow:hidden; white-space: nowrap;}
.hudong-ul li:last-child{border:none;}
.hudong-ul li .sd-tx{float:left;width:45px;height:45px;}
.hudong-ul li .sd-tx img{width:100%;}
.hudong-ul li .sd-name{ width: 75%; float: left; margin-left: 15px;}
.hudong-ul li .sd-name span{display:inline-block;width:100%;font-size:12px;}
.hudong-ul li .sd-name a{font-size:13px;line-height:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; display: inline-block; width: 100%;}
.hudong-ul li .sd-name img{max-width:30px;vertical-align: middle;}
.paihang-ul{width:90%;margin:auto;margin-top:10px;display:none;}
.paihang-ul li{width:100%;padding:15px 0;border-bottom:1px dashed #ccc;overflow:hidden; position: relative;}
.paihang-ul li:last-child{border:none;}
.paihang-ul li span:before{display:inline-block;width:20px;height:23px;border-radius:5px;-webkit-border-radius:5px;text-align:center;font-size:12px;margin-right:10px;}
.paihang-ul li:nth-of-type(1) span:before{content:'1';background:#e71555;color:#fff;}
.paihang-ul li:nth-of-type(2) span:before{content:'2';background:#16d083;color:#fff;}
.paihang-ul li:nth-of-type(3) span:before{content:'3';background:#ff6700;color:#fff;}
.paihang-ul li:nth-of-type(4) span:before{content:'4';background:#857479;color:#fff;}
.paihang-ul li:nth-of-type(5) span:before{content:'5';background:#857479;color:#fff;}
.paihang-ul li:nth-of-type(6) span:before{content:'6';background:#857479;color:#fff;}
.paihang-ul li a{font-size:13px;color:#777;}
.paihang-ul li a b{color:#999;font-weight:normal;font-size:12px; position: absolute;right: 0px;}
.mytab ul li a{transition:all 0.5s;-webkit-transition:all 0.5s;}
.mytab ul li a:hover{text-shadow:0 0px 3px #000;color:#fff;}
.side-link{margin-top:30px;width:100%;}
.side-link ul{width:95%;margin:auto;margin-top:10px;text-align:center;overflow:hidden;padding-bottom:10px;}
.side-link ul li{float:left;overflow:hidden;}
.side-link ul li a{display:inline-block;padding:1px 10px;margin:0 5px 10px 5px;color:#ff6700;font-size:12px;background:linear-gradient(rgba(255,255,255,0.9), rgba(255,255,255,0.1),rgba(255,255,255,0.9));border:1px solid #eee;border-radius:3px ;-webkit-border-radius:3px;transition:all 0.5s;-webkit-transition:all 0.5s;
background: -webkit-linear-gradient(rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.1),rgba(255, 255, 255, 0.9));
}
.side-link ul li a:hover{border-radius:0;-webkit-border-radius:0;box-shadow:3px 3px 5px #ccc;text-shadow:0 0px 3px #000;color:#fff;}
.side-link h4 a{float:right;margin-right:10px;}
footer{width:100%;background:rgba(0,67,94,0.95);margin-top:35px;}
.footer-area{width:100%;max-width:1200px;margin:auto;padding:25px 0;color:#fff;overflow:hidden;}
.footer-area h4{color:#fff;font-weight:normal;background:none;text-indent:15px;padding:0;}
.data-count{width:25%;overflow:hidden;float:left;}
.data-count ul{width:90%;margin:auto;overflow:hidden;}
.data-count ul li{width:50%;float:left;margin-bottom:30px;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.data-count ul li i{color:#fff;}
.data-count ul li a{color:#fff;}
.data-count ul li span{display:inline-block;color:#fff;padding:2px 5px;ext-align:center;}
.about-blog{width:25%;overflow:hidden;float:left;}
.ft-part1{width:95%;margin:auto;}
.about-blog .mytb{width:98%;margin:auto;padding-bottom:30px;}
.about-blog .mytb >a{display:inline-block;width:100%;padding:15px 0;background:#ff6700;border-radius:0;-webkit-border-radius:0;text-align:center;transition:all 0.5s;-webkit-transition:all 0.5s;}
.about-blog .mytb >a:hover{background:#e34405;border-radius:10px ;-webkit-border-radius:10px;}
.mail-dy {position:absolute;padding:20px;background:rgba(255,255,255,0.9);box-shadow:0 0 20px #777;display:none;z-index:999;width:280px;}
.mail-dy .el-remove{position:absolute;right:5px;top:5px;font-size:12px;}
.mail-dy form{overflow:hidden;padding:15px 0;height:2em;}
.mail-dy form input{font-size:12px;color:#333;height:100%;width:60%;float:left;background:#fff;}
.mail-dy .el-envelope{height:100%;width:19%;background:#0ddb9e;color:#fff;text-align:center;font-size:16px;line-height:2em;}
.mail-dy input[type="submit"]{cursor:pointer;position:relative;top:-32px;background:none;width:100%;border:none;}
.mail-dy span{width:19%;float:left;background:#0ddb9e;color:#fff;text-align:center;font-size:14px;height:100%;line-height:33px;text-align:center;}
.mail-btn{width:98%;margin:auto;padding-bottom:10px;position:relative;}
.mail-btn >a{display:inline-block;width:100%;padding:15px 0;background:#0bbd84;text-align:center;border-radius:0;-webkit-border-radius:0;transition:all 0.5s;-webkit-transition:all 0.5s;}
.mail-btn >a:hover{background:#0af5aa;border-radius:10px ;-webkit-border-radius:10px;}
/*RSS*/
.img-feed{width:100%;padding:10px 0;}
.img-feed a{float:left;padding-top:5px;}
.img-feed a:nth-of-type(1){margin-right:10%;}
.img-feed p{float:right;font-size:14px;}
.close-fd{width:25%;float:left;}
.close-fd ul{width:95%;margin:auto;}
.close-fd ul li{width:100%;padding:8px 0;overflow:hidden;}
.close-fd ul li:last-child{border:none;}
.close-fd ul li .sd-tx{float:left;width:45px;height:45px;}
.close-fd ul li .sd-tx img{width:100%;}
.close-fd ul li .sd-name{width:78%;float:right;}
.close-fd ul li .sd-name span{display:inline-block;width:100%;font-size:12px;color:#fff600;}
.close-fd ul li .sd-name a{display:block;font-size:12px;line-height:25px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.close-fd ul li .sd-name img{max-width:30px;vertical-align: middle;}
.tuwen-pd{width:25%;float:left;}
.tuwen-pd ul{width:95%;margin:auto;}
.tuwen-pd ul li{float:left;margin-bottom:10px;margin:3%;}
.tuwen-pd ul li img{width:50px;height:50px;}
.tuwen-pd ul li img:hover{opacity:0.6;}
/*foot-nav*/
.foot-nav{width:100%;text-align:center;padding:10px 0;overflow:hidden;font-size:12px;background:#202121;color:#fff;}
.foot-nav .copy-right{margin-bottom:10px;}
.clos-new{overflow:hidden;padding-bottom:15px;}
.clos-new ul{width:95%;margin:auto;}
.clos-new ul li{width:100%;padding:8px 0;font-size:13px;}
.clos-new ul li font{margin:0 5px;display:inline-block;}
.clos-new ul li i{margin-right:10px;}
#toTop {
width:47px;
height:47px;
background:url(../images/icon/back-top-btn.png) no-repeat;
text-align:center;
position:fixed;
bottom:25px;
right:20px;
cursor:pointer;
text-indent:-9999px;
z-index:12;
display:none;
}
.skin-btn{position:fixed;right:-7px;top:48%;width:30px;padding:20px 0;border-radius: 200px 0px 0px 200px;z-index:999;background:#10b7f5;font-size:12px;color:#fff;text-align:center;}
.skin-btn a{text-align:center;line-height:20px;display:block;}
.skin-content{position:fixed;right:0;top:40%;border:#10b7f5 solid 1px;width:80px;display:none;background:#fff;z-index:999;}
.skin-content h1{font-size:12px;background:#fff;text-indent:0;color:#555;margin:0px auto;text-align:center;height:25px;line-height:25px;padding:5px 0;border-bottom:#ebebeb solid 1px;position:relative;}
.skin-content h1 span{font-size:12px;font-weight:normal;position:absolute;left:-20px;top:-20px;cursor:pointer;background:#fff;border:#10b7f5 solid 1px;width:35px;height:35px;line-height:35px;border-radius:20px;text-align:center;}
.skin-content-list{background:#fff;}
.skin-list{overflow:hidden;line-height:35px;width:100%;margin:0px auto;border-bottom:dashed 1px #10b7f5;text-align:center;}
.skin-list a{display:block;font-size:14px;color:#555;}
.skin-list a:hover{color:#fff;background:#4ada9b;}
.skin-list span{float:left;}
.clos-new ul li{width:100%;}
@media screen and (min-width:1023px){
#mob-tianqi{display:none;}
.mobile-nav{display:none;}
}
@media screen and (min-width:1024px) and (max-width:1199px){
.container,header .top{max-width:1000px;}
}
@media screen and (min-width:320px) and (max-width:1023px){
body{
background:url(../images/bgimg/mob-bg2.jpg)no-repeat;
background-attachment: fixed;
background-repeat: no-repeat;
background-size: 100%;
}
.container{padding-top:4.5em;}
nav{display:none;}
.shuo-side div b{display:none;}
header {height:3.3em!important;background:rgba(255,255,255,0.85)!important;box-shadow:0 0 6px #999;}
header .top .top-left{width:100%;}
.top .logo{max-width:125px;margin-left:5px;}
.mysection,.section,.myaside{width:95%;margin:auto;float:none;}
.swiper-container{width:105.5%!important;margin-left:-2.5%!important;}
.arc-right h4{font-size:14px;line-height:16px;padding-bottom:5px;}
.arc-right p{font-size:12px;height:40px;line-height:20px;}
.arc-right ul li{padding:0;padding-right:10px;}
.arc-right ul li:nth-of-type(2),.arc-right ul li:last-child{display:none;}
.arclist>ul>li> .arcimg{height:78px;}
.web-xiaoxi{max-width:55%!important;margin-top:16px;}
.t_news b{left:10px!important;}
.news_li li,.swap li{text-align:left!important;text-indent:35px;}
.arclist>ul>li{margin-bottom:1em;padding:15px 10px;}
.arclist>ul>li> .arcimg{width:30%;}
.arc-right{width:66%;}
.data-count ul,.cloud ul,.bdsharebuttonbox{width:95%;}
#tuijian,#Hot,#New{background-position:-100% -100%;}
.left-side,.right-side{width:95%;margin:auto;float:none;}
.bdsharebuttonbox a{margin:0 2.5%!important;}
.about-blog,.close-fd,.tuwen-pd,.data-count{width:100%;margin-bottom:30px;}
.tuwen-pd ul{overflow:hidden;}
.data-count ul li{margin-bottom:15px;}
footer h4{padding-bottom:15px!important;}
#toTop{width:30px;height:30px;background-size:100%;right:10px;}/*���ض���*/
.mob-hidden{display:none;}
.article-push>ul>li> .arc-right p{height:40px;}
.w95{width:95%;margin:auto;}
.clos-new ul li{font-size:12px;}
}
================================================
FILE: src/static/css/skin_1.css
================================================
body {
background: #e9ecd7 url(/static/images/bgimg/bg0.jpg);
background-attachment: fixed;
background-repeat: no-repeat;
background-size: 100% 100%
}
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-webkit-appearance: none
}
#color li, #comment-post button, #nav > ul > li span:hover, .active, .archives h4, .backtop, .carousel-indicators li, .comment-tools, .face, .post-context button:hover, .search button, .ssearch input[type=submit], .tab_nav, .toggler, .tools, .totop, .zujian, a {
cursor: url(/static/cur/link.cur), auto
}
body {
cursor: url(/static/cur/default.cur), auto
}
body:after {
content: '';
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: rgba(255, 255, 255, .5);
z-index: -1
}
i {
color: #ff6700
}
input, textarea {
border: #ddd 1px solid;
box-shadow: inset 0 0 2px rgba(0, 0, 0, .05);
background: rgba(255, 255, 255, .5)
}
input:focus, textarea:focus {
border: #ff6700 1px solid;
box-shadow: 0 0 8px rgba(255, 103, 0, .7)
}
.orange-text {
color: #ff6700
}
.blue-text {
color: #0181da
}
.bg-color {
background: rgba(255, 255, 255, .5);
text-align: left
}
.index-title {
color: #0181da
}
.index-title small {
color: #bcbcbc;
margin-left: 5px;
font-size: 12px
}
header {
width: 100%;
height: 70px;
background: rgba(255, 255, 255, .85);
box-shadow: 0 0 5px #13c5f8;
position: fixed;
z-index: 10
}
.mynav > ul > li > a {
color: #ff6700
}
.mynav > ul > li > a:hover {
background: #13c5f8;
color: #fff;
font-size: 20px
}
.nav-active {
background: #13c5f8
}
.nav-active a {
color: #fff !important
}
.top nav > ul > li .el-caret-down {
color: #fff000
}
div#tooltip {
position: absolute;
z-index: 1000;
width: auto !important;
background: linear-gradient(rgba(255, 255, 255, 1), rgba(255, 255, 255, .9), rgba(255, 255, 255, 1));
text-align: left;
padding: 5px 10px;
border-radius: 5px;
background: -webkit-linear-gradient(rgba(255, 255, 255, 1), rgba(255, 255, 255, .9), rgba(255, 255, 255, 1));
box-shadow: 0 5px 20px #666
}
div#tooltip p {
color: #ff6700;
font-size: 12px
}
div#tooltip p:after {
content: '';
width: 0;
height: 0;
position: absolute;
left: 10%;
top: -8px;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-bottom: 8px solid rgba(255, 255, 255, .95)
}
audio, canvas, video {
display: inline-block
}
@media screen and (min-width: 320px) and (max-width: 1023px) {
body {
background: url(/static/images/bgimg/mob-bg2.jpg) no-repeat;
background-attachment: fixed;
background-repeat: no-repeat;
background-size: 100%
}
}
================================================
FILE: src/static/css/skin_2.css
================================================
body {
background: 0 0;
background-attachment: fixed;
background-repeat: no-repeat;
background-size: 100% 100%
}
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-webkit-appearance: none
}
#color li, #comment-post button, #nav > ul > li span:hover, .archives h4, .backtop, .carousel-indicators li, .comment-tools, .face, .post-context button:hover, .search button, .ssearch input[type=submit], .tab_nav, .toggler, .tools, .totop, .zujian, a {
cursor: url(/static/cur/default.cur), auto
}
body {
cursor: url(/static/cur/default.cur), auto
}
body:after {
content: '';
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: rgba(255, 255, 255, 1);
z-index: -1
}
i {
color: #555
}
input, textarea {
border: #ddd 1px solid;
box-shadow: inset 0 0 2px rgba(0, 0, 0, .05);
background: rgba(255, 255, 255, .5)
}
input:focus, textarea:focus {
border: #09b597 1px solid;
box-shadow: 0 0 8px rgba(9, 181, 151, .7)
}
.orange-text {
color: #555
}
.blue-text, .comment-line ul li, .pagination ul > li > a, .pagination ul > li > span, .re-info span a {
color: #09b597
}
.bg-color {
background: rgba(255, 255, 255, .5)
}
.index-title {
color: #09b597;
border-bottom: 1px solid #ddd
}
.index-title small {
color: #bcbcbc;
margin-left: 5px;
font-size: 12px
}
header {
background: rgba(255, 255, 255, .8) repeat-x;
box-shadow: 3px 3px 5px #ccc;
background-size: 100% 100%
}
.top nav > ul > li > a {
color: #555
}
.mynav > ul > li > a:hover {
background: #09b597;
background-size: 100%
}
.mynav > ul > li > a:hover {
color: #fff
}
.nav-active {
background: #09b597
}
.nav-active a {
color: #fff !important
}
.mynav > ul > li .el-caret-down {
color: #555
}
.drop-nav li a {
color: #555 !important
}
.arclist > ul > li, .comment-area > ul > li, .post-line, .shuos-area {
border-bottom: 1px solid #ddd
}
.arc-title {
border: none
}
.arrow_box {
position: relative;
background: rgba(255, 255, 255, .6);
border: 1px solid #ddd
}
.arrow_box:after, .arrow_box:before {
right: 100%;
top: 30px;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none
}
.arrow_box:after {
border-color: rgba(255, 255, 255, 0);
border-right-color: #fff;
border-width: 14px;
margin-top: -14px
}
.arrow_box:before {
border-color: rgba(255, 255, 255, 0);
border-right-color: #ddd;
border-width: 15px;
margin-top: -15px
}
.blog_links li, .pagination ul > li > a, .pagination ul > li > span, .pic-btn .pull-right, .return-xc a, .wall-li {
border: 1px solid #ccc
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
display: block
}
audio, canvas, video {
display: inline-block
}
div#tooltip {
background: rgba(0, 0, 0, .8)
}
div#tooltip p {
color: #fff
}
div#tooltip p:after {
border-bottom: 8px solid rgba(0, 0, 0, .8)
}
================================================
FILE: src/static/css/skin_3.css
================================================
body {
background: #f2f2f2 url(/static/images/bgimg/blueprint.png);
background-attachment: fixed
}
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-webkit-appearance: none
}
#color li, #comment-post button, #nav > ul > li span:hover, .archives h4, .backtop, .carousel-indicators li, .comment-tools, .face, .post-context button:hover, .search button, .ssearch input[type=submit], .tab_nav, .toggler, .tools, .totop, .zujian, a {
cursor: url(/static/cur/default.cur), auto
}
body {
cursor: url(/static/cur/default.cur), auto
}
body:after {
content: '';
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: #f2f2f2 url(/static/images/bgimg/blueprint.png);
background-attachment: fixed;
z-index: -1
}
i {
color: #555
}
#tuijian {
background: rgba(255, 255, 255, 1) url(/static/images/icon/tj2.gif) no-repeat 98% 8px
}
#Hot {
background: rgba(255, 255, 255, 1) url(/static/images/icon/hot.gif) no-repeat 98% 8px
}
#New {
background: rgba(255, 255, 255, 1) url(/static/images/icon/new.gif) no-repeat 98% 8px
}
#arc-tj {
background: rgba(255, 255, 255, 1) url(/static/images/icon/tj.gif) no-repeat 98% 8px;
background-size: 10%
}
input, textarea {
border: #ddd 1px solid;
box-shadow: inset 0 0 2px rgba(0, 0, 0, .05);
background: rgba(255, 255, 255, 1)
}
input:focus, textarea:focus {
border: #09b597 1px solid;
box-shadow: 0 0 8px rgba(9, 181, 151, .7)
}
.orange-text {
color: #555
}
.blue-text, .comment-line ul li, .pagination ul > li > a, .pagination ul > li > span, .re-info span a {
color: #09b597
}
.arclist > ul > li, .bg-color, .blog_hd .hd_right {
background: rgba(255, 255, 255, 1);
border: 1px solid #ddd;
box-sizing: border-box
}
.index-title {
color: #09b597;
border: 1px solid #ddd;
background: rgba(255, 255, 255, 1)
}
.index-title small {
color: #bcbcbc;
margin-left: 5px;
font-size: 12px
}
.arc-title {
border: 1px solid #ddd !important;
box-sizing: border-box
}
header {
background: rgba(255, 255, 255, 1);
box-shadow: 3px 3px 8px #ccc;
background-size: 100% 100%
}
.mynav > ul > li > a:hover {
background: 0 0
}
.mynav > ul > li > a {
color: #09b597
}
.mynav > ul > li > a:hover {
border-bottom: 3px solid #ff6700;
box-sizing: border-box;
color: #ff6700
}
.mynav > ul > li .el-chevron-down {
font-size: 12px;
color: #09b597
}
.nav-active .el-chevron-down:before {
color: #ff6700
}
.nav-active > a {
border-bottom: 3px solid #ff6700;
box-sizing: border-box;
background: 0 0
}
.nav-active a {
color: #ff6700 !important
}
.drop-nav li a {
color: #555 !important
}
.drop-nav {
background: #fff;
border: 1px solid #ccc
}
.arclist > ul > li, .comment-area > ul > li, .post-line, .shuos-area {
border: 1px solid #ddd
}
.arc-title {
border: none
}
.arrow_box {
position: relative;
background: rgba(255, 255, 255, 1);
border: 1px solid #ddd
}
.arrow_box:after, .arrow_box:before {
right: 100%;
top: 30px;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none
}
.arrow_box:after {
border-color: rgba(255, 255, 255, 0);
border-right-color: #fff;
border-width: 14px;
margin-top: -14px
}
.arrow_box:before {
border-color: rgba(255, 255, 255, 0);
border-right-color: #ddd;
border-width: 15px;
margin-top: -15px
}
.blog_links li, .pagination ul > li > a, .pagination ul > li > span, .pic-btn .pull-right, .return-xc a, .wall-li {
border: 1px solid #ddd
}
.article-push li {
border: none !important
}
aside .index-title {
border-left: 0;
border-right: 0;
border-top: 0
}
.form-btn, .sucailist .su-li {
background: #fff
}
div#tooltip {
background: rgba(0, 0, 0, .8)
}
div#tooltip p {
color: #fff
}
div#tooltip p:after {
border-bottom: 8px solid rgba(0, 0, 0, .8)
}
.blog_links li, .side-link ul li a {
background: #fff;
border: 1px solid #333
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
display: block
}
audio, canvas, video {
display: inline-block
}
@media screen and (max-width: 1023px) and (min-width: 320px) {
.news_li a, .swap a, .t_news i {
color: #555
}
}
#Hotbg {
background: rgba(255, 255, 255, 1) url(/static/images/icon/Hot.png) no-repeat top left
}
================================================
FILE: src/static/js/album.js
================================================
"use strict";"object"!=typeof window.CP&&(window.CP={}),window.CP.PenTimer={programNoLongerBeingMonitored:!1,timeOfFirstCallToShouldStopLoop:0,_loopExits:{},_loopTimers:{},START_MONITORING_AFTER:2e3,STOP_ALL_MONITORING_TIMEOUT:5e3,MAX_TIME_IN_LOOP_WO_EXIT:2200,exitedLoop:function(o){this._loopExits[o]=!0},shouldStopLoop:function(o){if(this.programKilledSoStopMonitoring)return!0;if(this.programNoLongerBeingMonitored)return!1;if(this._loopExits[o])return!1;var t=this._getTime();if(0===this.timeOfFirstCallToShouldStopLoop)return this.timeOfFirstCallToShouldStopLoop=t,!1;var i=t-this.timeOfFirstCallToShouldStopLoop;if(i<this.START_MONITORING_AFTER)return!1;if(i>this.STOP_ALL_MONITORING_TIMEOUT)return this.programNoLongerBeingMonitored=!0,!1;try{this._checkOnInfiniteLoop(o,t)}catch(n){return this._sendErrorMessageToEditor(),this.programKilledSoStopMonitoring=!0,!0}return!1},_sendErrorMessageToEditor:function(){try{if(this._shouldPostMessage()){var o={action:"infinite-loop",line:this._findAroundLineNumber()};parent.postMessage(JSON.stringify(o),"*")}else this._throwAnErrorToStopPen()}catch(t){this._throwAnErrorToStopPen()}},_shouldPostMessage:function(){return document.location.href.match(/boomerang/)},_throwAnErrorToStopPen:function(){throw"We found an infinite loop in your Pen. We've stopped the Pen from running. Please correct it or contact support@codepen.io."},_findAroundLineNumber:function(){var o=new Error,t=0;if(o.stack){var i=o.stack.match(/boomerang\S+:(\d+):\d+/);i&&(t=i[1])}return t},_checkOnInfiniteLoop:function(o,t){if(!this._loopTimers[o])return this._loopTimers[o]=t,!1;var i=t-this._loopTimers[o];if(i>this.MAX_TIME_IN_LOOP_WO_EXIT)throw"Infinite Loop found on loop: "+o},_getTime:function(){return+new Date}},window.CP.shouldStopExecution=function(o){return window.CP.PenTimer.shouldStopLoop(o)},window.CP.exitedLoop=function(o){window.CP.PenTimer.exitedLoop(o)};
(function ($) {
$.fn.jaliswall = function (options) {
this.each(function () {
var defaults = {
item: '.wall-item',
columnClass: '.wall-column',
resize: true
};
var prm = $.extend(defaults, options);
var container = $(this);
var items = container.find(prm.item);
var elemsDatas = [];
var columns = [];
var nbCols = getNbCols();
init();
function init() {
nbCols = getNbCols();
recordAndRemove();
print();
if (prm.resize) {
$(window).resize(function () {
if (nbCols != getNbCols()) {
nbCols = getNbCols();
setColPos();
print();
}
});
}
}
function getNbCols() {
var instanceForCompute = false;
if (container.find(prm.columnClass).length == 0) {
instanceForCompute = true;
container.append('<div class=\'' + parseSelector(prm.columnClass) + '\'></div>');
}
var colWidth = container.find(prm.columnClass).outerWidth(true);
var wallWidth = container.innerWidth();
if (instanceForCompute)
container.find(prm.columnClass).remove();
return Math.round(wallWidth / colWidth);
}
function recordAndRemove() {
items.each(function (index) {
var item = $(this);
elemsDatas.push({
content: item.html(),
class: item.attr('class'),
href: item.attr('href'),
id: item.attr('id'),
colid: index % nbCols
});
item.remove();
});
}
function setColPos() {
for (var i in elemsDatas) {
if (window.CP.shouldStopExecution(1)) {
break;
}
elemsDatas[i].colid = i % nbCols;
}
window.CP.exitedLoop(1);
}
function parseSelector(selector) {
return selector.slice(1, selector.length);
}
function print() {
var tree = '';
for (var i = 0; i < nbCols; i++) {
if (window.CP.shouldStopExecution(2)) {
break;
}
tree += '<div class=\'' + parseSelector(prm.columnClass) + '\'></div>';
}
window.CP.exitedLoop(2);
container.html(tree);
for (var i in elemsDatas) {
var html = '';
var content = elemsDatas[i].content != undefined ? elemsDatas[i].content : '';
var href = elemsDatas[i].href != href ? elemsDatas[i].href : '';
var classe = elemsDatas[i].class != undefined ? elemsDatas[i].class : '';
var id = elemsDatas[i].id != undefined ? elemsDatas[i].id : '';
if (elemsDatas[i].href != undefined) {
html += '<a ' + getAttr(href, 'href') + ' ' + getAttr(classe, 'class') + ' ' + getAttr(id, 'id') + '>' + content + '</a>';
} else {
html += '<div ' + getAttr(classe, 'class') + ' ' + getAttr(id, 'id') + '>' + content + '</a>';
}
container.children(prm.columnClass).eq(i % nbCols).append(html);
}
}
function getAttr(attr, type) {
return attr != undefined ? type + '=\'' + attr + '\'' : '';
}
});
return this;
};
}(jQuery));
================================================
FILE: src/static/js/jquery.flexslider-min.js
================================================
/**
* Swiper 3.3.1
* Most modern mobile touch slider and framework with hardware accelerated transitions
*
* http://www.idangero.us/swiper/
*
* Copyright 2016, Vladimir Kharlampidi
* The iDangero.us
* http://www.idangero.us/
*
* Licensed under MIT
*
* Released on: February 7, 2016
*/
!function(){"use strict";function e(e){e.fn.swiper=function(a){var r;return e(this).each(function(){var e=new t(this,a);r||(r=e)}),r}}var a,t=function(e,i){function s(e){return Math.floor(e)}function n(){b.autoplayTimeoutId=setTimeout(function(){b.params.loop?(b.fixLoop(),b._slideNext(),b.emit("onAutoplay",b)):b.isEnd?i.autoplayStopOnLast?b.stopAutoplay():(b._slideTo(0),b.emit("onAutoplay",b)):(b._slideNext(),b.emit("onAutoplay",b))},b.params.autoplay)}function o(e,t){var r=a(e.target);if(!r.is(t))if("string"==typeof t)r=r.parents(t);else if(t.nodeType){var i;return r.parents().each(function(e,a){a===t&&(i=t)}),i?t:void 0}if(0!==r.length)return r[0]}function l(e,a){a=a||{};var t=window.MutationObserver||window.WebkitMutationObserver,r=new t(function(e){e.forEach(function(e){b.onResize(!0),b.emit("onObserverUpdate",b,e)})});r.observe(e,{attributes:"undefined"==typeof a.attributes?!0:a.attributes,childList:"undefined"==typeof a.childList?!0:a.childList,characterData:"undefined"==typeof a.characterData?!0:a.characterData}),b.observers.push(r)}function p(e){e.originalEvent&&(e=e.originalEvent);var a=e.keyCode||e.charCode;if(!b.params.allowSwipeToNext&&(b.isHorizontal()&&39===a||!b.isHorizontal()&&40===a))return!1;if(!b.params.allowSwipeToPrev&&(b.isHorizontal()&&37===a||!b.isHorizontal()&&38===a))return!1;if(!(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey||document.activeElement&&document.activeElement.nodeName&&("input"===document.activeElement.nodeName.toLowerCase()||"textarea"===document.activeElement.nodeName.toLowerCase()))){if(37===a||39===a||38===a||40===a){var t=!1;if(b.container.parents(".swiper-slide").length>0&&0===b.container.parents(".swiper-slide-active").length)return;var r={left:window.pageXOffset,top:window.pageYOffset},i=window.innerWidth,s=window.innerHeight,n=b.container.offset();b.rtl&&(n.left=n.left-b.container[0].scrollLeft);for(var o=[[n.left,n.top],[n.left+b.width,n.top],[n.left,n.top+b.height],[n.left+b.width,n.top+b.height]],l=0;l<o.length;l++){var p=o[l];p[0]>=r.left&&p[0]<=r.left+i&&p[1]>=r.top&&p[1]<=r.top+s&&(t=!0)}if(!t)return}b.isHorizontal()?((37===a||39===a)&&(e.preventDefault?e.preventDefault():e.returnValue=!1),(39===a&&!b.rtl||37===a&&b.rtl)&&b.slideNext(),(37===a&&!b.rtl||39===a&&b.rtl)&&b.slidePrev()):((38===a||40===a)&&(e.preventDefault?e.preventDefault():e.returnValue=!1),40===a&&b.slideNext(),38===a&&b.slidePrev())}}function d(e){e.originalEvent&&(e=e.originalEvent);var a=b.mousewheel.event,t=0,r=b.rtl?-1:1;if("mousewheel"===a)if(b.params.mousewheelForceToAxis)if(b.isHorizontal()){if(!(Math.abs(e.wheelDeltaX)>Math.abs(e.wheelDeltaY)))return;t=e.wheelDeltaX*r}else{if(!(Math.abs(e.wheelDeltaY)>Math.abs(e.wheelDeltaX)))return;t=e.wheelDeltaY}else t=Math.abs(e.wheelDeltaX)>Math.abs(e.wheelDeltaY)?-e.wheelDeltaX*r:-e.wheelDeltaY;else if("DOMMouseScroll"===a)t=-e.detail;else if("wheel"===a)if(b.params.mousewheelForceToAxis)if(b.isHorizontal()){if(!(Math.abs(e.deltaX)>Math.abs(e.deltaY)))return;t=-e.deltaX*r}else{if(!(Math.abs(e.deltaY)>Math.abs(e.deltaX)))return;t=-e.deltaY}else t=Math.abs(e.deltaX)>Math.abs(e.deltaY)?-e.deltaX*r:-e.deltaY;if(0!==t){if(b.params.mousewheelInvert&&(t=-t),b.params.freeMode){var i=b.getWrapperTranslate()+t*b.params.mousewheelSensitivity,s=b.isBeginning,n=b.isEnd;if(i>=b.minTranslate()&&(i=b.minTranslate()),i<=b.maxTranslate()&&(i=b.maxTranslate()),b.setWrapperTransition(0),b.setWrapperTranslate(i),b.updateProgress(),b.updateActiveIndex(),(!s&&b.isBeginning||!n&&b.isEnd)&&b.updateClasses(),b.params.freeModeSticky?(clearTimeout(b.mousewheel.timeout),b.mousewheel.timeout=setTimeout(function(){b.slideReset()},300)):b.params.lazyLoading&&b.lazy&&b.lazy.load(),0===i||i===b.maxTranslate())return}else{if((new window.Date).getTime()-b.mousewheel.lastScrollTime>60)if(0>t)if(b.isEnd&&!b.params.loop||b.animating){if(b.params.mousewheelReleaseOnEdges)return!0}else b.slideNext();else if(b.isBeginning&&!b.params.loop||b.animating){if(b.params.mousewheelReleaseOnEdges)return!0}else b.slidePrev();b.mousewheel.lastScrollTime=(new window.Date).getTime()}return b.params.autoplay&&b.stopAutoplay(),e.preventDefault?e.preventDefault():e.returnValue=!1,!1}}function u(e,t){e=a(e);var r,i,s,n=b.rtl?-1:1;r=e.attr("data-swiper-parallax")||"0",i=e.attr("data-swiper-parallax-x"),s=e.attr("data-swiper-parallax-y"),i||s?(i=i||"0",s=s||"0"):b.isHorizontal()?(i=r,s="0"):(s=r,i="0"),i=i.indexOf("%")>=0?parseInt(i,10)*t*n+"%":i*t*n+"px",s=s.indexOf("%")>=0?parseInt(s,10)*t+"%":s*t+"px",e.transform("translate3d("+i+", "+s+",0px)")}function c(e){return 0!==e.indexOf("on")&&(e=e[0]!==e[0].toUpperCase()?"on"+e[0].toUpperCase()+e.substring(1):"on"+e),e}if(!(this instanceof t))return new t(e,i);var m={direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,autoplay:!1,autoplayDisableOnInteraction:!0,autoplayStopOnLast:!1,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",coverflow:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0},flip:{slideShadows:!0,limitRotation:!0},cube:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94},fade:{crossFade:!1},parallax:!1,scrollbar:null,scrollbarHide:!0,scrollbarDraggable:!1,scrollbarSnapOnRelease:!1,keyboardControl:!1,mousewheelControl:!1,mousewheelReleaseOnEdges:!1,mousewheelInvert:!1,mousewheelForceToAxis:!1,mousewheelSensitivity:1,hashnav:!1,breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,onlyExternal:!1,threshold:0,touchMoveStopPropagation:!0,uniqueNavElements:!0,pagination:null,paginationElement:"span",paginationClickable:!1,paginationHide:!1,paginationBulletRender:null,paginationProgressRender:null,paginationFractionRender:null,paginationCustomRender:null,paginationType:"bullets",resistance:!0,resistanceRatio:.85,nextButton:null,prevButton:null,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,lazyLoading:!1,lazyLoadingInPrevNext:!1,lazyLoadingInPrevNextAmount:1,lazyLoadingOnTransitionStart:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,control:void 0,controlInverse:!1,controlBy:"slide",allowSwipeToPrev:!0,allowSwipeToNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",buttonDisabledClass:"swiper-button-disabled",paginationCurrentClass:"swiper-pagination-current",paginationTotalClass:"swiper-pagination-total",paginationHiddenClass:"swiper-pagination-hidden",paginationProgressbarClass:"swiper-pagination-progressbar",observer:!1,observeParents:!1,a11y:!1,prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",runCallbacksOnInit:!0},h=i&&i.virtualTranslate;i=i||{};var f={};for(var g in i)if("object"!=typeof i[g]||null===i[g]||(i[g].nodeType||i[g]===window||i[g]===document||"undefined"!=typeof r&&i[g]instanceof r||"undefined"!=typeof jQuery&&i[g]instanceof jQuery))f[g]=i[g];else{f[g]={};for(var v in i[g])f[g][v]=i[g][v]}for(var w in m)if("undefined"==typeof i[w])i[w]=m[w];else if("object"==typeof i[w])for(var y in m[w])"undefined"==typeof i[w][y]&&(i[w][y]=m[w][y]);var b=this;if(b.params=i,b.originalParams=f,b.classNames=[],"undefined"!=typeof a&&"undefined"!=typeof r&&(a=r),("undefined"!=typeof a||(a="undefined"==typeof r?window.Dom7||window.Zepto||window.jQuery:r))&&(b.$=a,b.currentBreakpoint=void 0,b.getActiveBreakpoint=function(){if(!b.params.breakpoints)return!1;var e,a=!1,t=[];for(e in b.params.breakpoints)b.params.breakpoints.hasOwnProperty(e)&&t.push(e);t.sort(function(e,a){return parseInt(e,10)>parseInt(a,10)});for(var r=0;r<t.length;r++)e=t[r],e>=window.innerWidth&&!a&&(a=e);return a||"max"},b.setBreakpoint=function(){var e=b.getActiveBreakpoint();if(e&&b.currentBreakpoint!==e){var a=e in b.params.breakpoints?b.params.breakpoints[e]:b.originalParams,t=b.params.loop&&a.slidesPerView!==b.params.slidesPerView;for(var r in a)b.params[r]=a[r];b.currentBreakpoint=e,t&&b.destroyLoop&&b.reLoop(!0)}},b.params.breakpoints&&b.setBreakpoint(),b.container=a(e),0!==b.container.length)){if(b.container.length>1){var x=[];return b.container.each(function(){x.push(new t(this,i))}),x}b.container[0].swiper=b,b.container.data("swiper",b),b.classNames.push("swiper-container-"+b.params.direction),b.params.freeMode&&b.classNames.push("swiper-container-free-mode"),b.support.flexbox||(b.classNames.push("swiper-container-no-flexbox"),b.params.slidesPerColumn=1),b.params.autoHeight&&b.classNames.push("swiper-container-autoheight"),(b.params.parallax||b.params.watchSlidesVisibility)&&(b.params.watchSlidesProgress=!0),["cube","coverflow","flip"].indexOf(b.params.effect)>=0&&(b.support.transforms3d?(b.params.watchSlidesProgress=!0,b.classNames.push("swiper-container-3d")):b.params.effect="slide"),"slide"!==b.params.effect&&b.classNames.push("swiper-container-"+b.params.effect),"cube"===b.params.effect&&(b.params.resistanceRatio=0,b.params.slidesPerView=1,b.params.slidesPerColumn=1,b.params.slidesPerGroup=1,b.params.centeredSlides=!1,b.params.spaceBetween=0,b.params.virtualTranslate=!0,b.params.setWrapperSize=!1),("fade"===b.params.effect||"flip"===b.params.effect)&&(b.params.slidesPerView=1,b.params.slidesPerColumn=1,b.params.slidesPerGroup=1,b.params.watchSlidesProgress=!0,b.params.spaceBetween=0,b.params.setWrapperSize=!1,"undefined"==typeof h&&(b.params.virtualTranslate=!0)),b.params.grabCursor&&b.support.touch&&(b.params.grabCursor=!1),b.wrapper=b.container.children("."+b.params.wrapperClass),b.params.pagination&&(b.paginationContainer=a(b.params.pagination),b.params.uniqueNavElements&&"string"==typeof b.params.pagination&&b.paginationContainer.length>1&&1===b.container.find(b.params.pagination).length&&(b.paginationContainer=b.container.find(b.params.pagination)),"bullets"===b.params.paginationType&&b.params.paginationClickable?b.paginationContainer.addClass("swiper-pagination-clickable"):b.params.paginationClickable=!1,b.paginationContainer.addClass("swiper-pagination-"+b.params.paginationType)),(b.params.nextButton||b.params.prevButton)&&(b.params.nextButton&&(b.nextButton=a(b.params.nextButton),b.params.uniqueNavElements&&"string"==typeof b.params.nextButton&&b.nextButton.length>1&&1===b.container.find(b.params.nextButton).length&&(b.nextButton=b.container.find(b.params.nextButton))),b.params.prevButton&&(b.prevButton=a(b.params.prevButton),b.params.uniqueNavElements&&"string"==typeof b.params.prevButton&&b.prevButton.length>1&&1===b.container.find(b.params.prevButton).length&&(b.prevButton=b.container.find(b.params.prevButton)))),b.isHorizontal=function(){return"horizontal"===b.params.direction},b.rtl=b.isHorizontal()&&("rtl"===b.container[0].dir.toLowerCase()||"rtl"===b.container.css("direction")),b.rtl&&b.classNames.push("swiper-container-rtl"),b.rtl&&(b.wrongRTL="-webkit-box"===b.wrapper.css("display")),b.params.slidesPerColumn>1&&b.classNames.push("swiper-container-multirow"),b.device.android&&b.classNames.push("swiper-container-android"),b.container.addClass(b.classNames.join(" ")),b.translate=0,b.progress=0,b.velocity=0,b.lockSwipeToNext=function(){b.params.allowSwipeToNext=!1},b.lockSwipeToPrev=function(){b.params.allowSwipeToPrev=!1},b.lockSwipes=function(){b.params.allowSwipeToNext=b.params.allowSwipeToPrev=!1},b.unlockSwipeToNext=function(){b.params.allowSwipeToNext=!0},b.unlockSwipeToPrev=function(){b.params.allowSwipeToPrev=!0},b.unlockSwipes=function(){b.params.allowSwipeToNext=b.params.allowSwipeToPrev=!0},b.params.grabCursor&&(b.container[0].style.cursor="move",b.container[0].style.cursor="-webkit-grab",b.container[0].style.cursor="-moz-grab",b.container[0].style.cursor="grab"),b.imagesToLoad=[],b.imagesLoaded=0,b.loadImage=function(e,a,t,r,i){function s(){i&&i()}var n;e.complete&&r?s():a?(n=new window.Image,n.onload=s,n.onerror=s,t&&(n.srcset=t),a&&(n.src=a)):s()},b.preloadImages=function(){function e(){"undefined"!=typeof b&&null!==b&&(void 0!==b.imagesLoaded&&b.imagesLoaded++,b.imagesLoaded===b.imagesToLoad.length&&(b.params.updateOnImagesReady&&b.update(),b.emit("onImagesReady",b)))}b.imagesToLoad=b.container.find("img");for(var a=0;a<b.imagesToLoad.length;a++)b.loadImage(b.imagesToLoad[a],b.imagesToLoad[a].currentSrc||b.imagesToLoad[a].getAttribute("src"),b.imagesToLoad[a].srcset||b.imagesToLoad[a].getAttribute("srcset"),!0,e)},b.autoplayTimeoutId=void 0,b.autoplaying=!1,b.autoplayPaused=!1,b.startAutoplay=function(){return"undefined"!=typeof b.autoplayTimeoutId?!1:b.params.autoplay?b.autoplaying?!1:(b.autoplaying=!0,b.emit("onAutoplayStart",b),void n()):!1},b.stopAutoplay=function(e){b.autoplayTimeoutId&&(b.autoplayTimeoutId&&clearTimeout(b.autoplayTimeoutId),b.autoplaying=!1,b.autoplayTimeoutId=void 0,b.emit("onAutoplayStop",b))},b.pauseAutoplay=function(e){b.autoplayPaused||(b.autoplayTimeoutId&&clearTimeout(b.autoplayTimeoutId),b.autoplayPaused=!0,0===e?(b.autoplayPaused=!1,n()):b.wrapper.transitionEnd(function(){b&&(b.autoplayPaused=!1,b.autoplaying?n():b.stopAutoplay())}))},b.minTranslate=function(){return-b.snapGrid[0]},b.maxTranslate=function(){return-b.snapGrid[b.snapGrid.length-1]},b.updateAutoHeight=function(){var e=b.slides.eq(b.activeIndex)[0];if("undefined"!=typeof e){var a=e.offsetHeight;a&&b.wrapper.css("height",a+"px")}},b.updateContainerSize=function(){var e,a;e="undefined"!=typeof b.params.width?b.params.width:b.container[0].clientWidth,a="undefined"!=typeof b.params.height?b.params.height:b.container[0].clientHeight,0===e&&b.isHorizontal()||0===a&&!b.isHorizontal()||(e=e-parseInt(b.container.css("padding-left"),10)-parseInt(b.container.css("padding-right"),10),a=a-parseInt(b.container.css("padding-top"),10)-parseInt(b.container.css("padding-bottom"),10),b.width=e,b.height=a,b.size=b.isHorizontal()?b.width:b.height)},b.updateSlidesSize=function(){b.slides=b.wrapper.children("."+b.params.slideClass),b.snapGrid=[],b.slidesGrid=[],b.slidesSizesGrid=[];var e,a=b.params.spaceBetween,t=-b.params.slidesOffsetBefore,r=0,i=0;if("undefined"!=typeof b.size){"string"==typeof a&&a.indexOf("%")>=0&&(a=parseFloat(a.replace("%",""))/100*b.size),b.virtualSize=-a,b.rtl?b.slides.css({marginLeft:"",marginTop:""}):b.slides.css({marginRight:"",marginBottom:""});var n;b.params.slidesPerColumn>1&&(n=Math.floor(b.slides.length/b.params.slidesPerColumn)===b.slides.length/b.params.slidesPerColumn?b.slides.length:Math.ceil(b.slides.length/b.params.slidesPerColumn)*b.params.slidesPerColumn,"auto"!==b.params.slidesPerView&&"row"===b.params.slidesPerColumnFill&&(n=Math.max(n,b.params.slidesPerView*b.params.slidesPerColumn)));var o,l=b.params.slidesPerColumn,p=n/l,d=p-(b.params.slidesPerColumn*p-b.slides.length);for(e=0;e<b.slides.length;e++){o=0;var u=b.slides.eq(e);if(b.params.slidesPerColumn>1){var c,m,h;"column"===b.params.slidesPerColumnFill?(m=Math.floor(e/l),h=e-m*l,(m>d||m===d&&h===l-1)&&++h>=l&&(h=0,m++),c=m+h*n/l,u.css({"-webkit-box-ordinal-group":c,"-moz-box-ordinal-group":c,"-ms-flex-order":c,"-webkit-order":c,order:c})):(h=Math.floor(e/p),m=e-h*p),u.css({"margin-top":0!==h&&b.params.spaceBetween&&b.params.spaceBetween+"px"}).attr("data-swiper-column",m).attr("data-swiper-row",h)}"none"!==u.css("display")&&("auto"===b.params.slidesPerView?(o=b.isHorizontal()?u.outerWidth(!0):u.outerHeight(!0),b.params.roundLengths&&(o=s(o))):(o=(b.size-(b.params.slidesPerView-1)*a)/b.params.slidesPerView,b.params.roundLengths&&(o=s(o)),b.isHorizontal()?b.slides[e].style.width=o+"px":b.slides[e].style.height=o+"px"),b.slides[e].swiperSlideSize=o,b.slidesSizesGrid.push(o),b.params.centeredSlides?(t=t+o/2+r/2+a,0===e&&(t=t-b.size/2-a),Math.abs(t)<.001&&(t=0),i%b.params.slidesPerGroup===0&&b.snapGrid.push(t),b.slidesGrid.push(t)):(i%b.params.slidesPerGroup===0&&b.snapGrid.push(t),b.slidesGrid.push(t),t=t+o+a),b.virtualSize+=o+a,r=o,i++)}b.virtualSize=Math.max(b.virtualSize,b.size)+b.params.slidesOffsetAfter;var f;if(b.rtl&&b.wrongRTL&&("slide"===b.params.effect||"coverflow"===b.params.effect)&&b.wrapper.css({width:b.virtualSize+b.params.spaceBetween+"px"}),(!b.support.flexbox||b.params.setWrapperSize)&&(b.isHorizontal()?b.wrapper.css({width:b.virtualSize+b.params.spaceBetween+"px"}):b.wrapper.css({height:b.virtualSize+b.params.spaceBetween+"px"})),b.params.slidesPerColumn>1&&(b.virtualSize=(o+b.params.spaceBetween)*n,b.virtualSize=Math.ceil(b.virtualSize/b.params.slidesPerColumn)-b.params.spaceBetween,b.wrapper.css({width:b.virtualSize+b.params.spaceBetween+"px"}),b.params.centeredSlides)){for(f=[],e=0;e<b.snapGrid.length;e++)b.snapGrid[e]<b.virtualSize+b.snapGrid[0]&&f.push(b.snapGrid[e]);b.snapGrid=f}if(!b.params.centeredSlides){for(f=[],e=0;e<b.snapGrid.length;e++)b.snapGrid[e]<=b.virtualSize-b.size&&f.push(b.snapGrid[e]);b.snapGrid=f,Math.floor(b.virtualSize-b.size)-Math.floor(b.snapGrid[b.snapGrid.length-1])>1&&b.snapGrid.push(b.virtualSize-b.size)}0===b.snapGrid.length&&(b.snapGrid=[0]),0!==b.params.spaceBetween&&(b.isHorizontal()?b.rtl?b.slides.css({marginLeft:a+"px"}):b.slides.css({marginRight:a+"px"}):b.slides.css({marginBottom:a+"px"})),b.params.watchSlidesProgress&&b.updateSlidesOffset()}},b.updateSlidesOffset=function(){for(var e=0;e<b.slides.length;e++)b.slides[e].swiperSlideOffset=b.isHorizontal()?b.slides[e].offsetLeft:b.slides[e].offsetTop},b.updateSlidesProgress=function(e){if("undefined"==typeof e&&(e=b.translate||0),0!==b.slides.length){"undefined"==typeof b.slides[0].swiperSlideOffset&&b.updateSlidesOffset();var a=-e;b.rtl&&(a=e),b.slides.removeClass(b.params.slideVisibleClass);for(var t=0;t<b.slides.length;t++){var r=b.slides[t],i=(a-r.swiperSlideOffset)/(r.swiperSlideSize+b.params.spaceBetween);if(b.params.watchSlidesVisibility){var s=-(a-r.swiperSlideOffset),n=s+b.slidesSizesGrid[t],o=s>=0&&s<b.size||n>0&&n<=b.size||0>=s&&n>=b.size;o&&b.slides.eq(t).addClass(b.params.slideVisibleClass)}r.progress=b.rtl?-i:i}}},b.updateProgress=function(e){"undefined"==typeof e&&(e=b.translate||0);var a=b.maxTranslate()-b.minTranslate(),t=b.isBeginning,r=b.isEnd;0===a?(b.progress=0,b.isBeginning=b.isEnd=!0):(b.progress=(e-b.minTranslate())/a,b.isBeginning=b.progress<=0,b.isEnd=b.progress>=1),b.isBeginning&&!t&&b.emit("onReachBeginning",b),b.isEnd&&!r&&b.emit("onReachEnd",b),b.params.watchSlidesProgress&&b.updateSlidesProgress(e),b.emit("onProgress",b,b.progress)},b.updateActiveIndex=function(){var e,a,t,r=b.rtl?b.translate:-b.translate;for(a=0;a<b.slidesGrid.length;a++)"undefined"!=typeof b.slidesGrid[a+1]?r>=b.slidesGrid[a]&&r<b.slidesGrid[a+1]-(b.slidesGrid[a+1]-b.slidesGrid[a])/2?e=a:r>=b.slidesGrid[a]&&r<b.slidesGrid[a+1]&&(e=a+1):r>=b.slidesGrid[a]&&(e=a);(0>e||"undefined"==typeof e)&&(e=0),t=Math.floor(e/b.params.slidesPerGroup),t>=b.snapGrid.length&&(t=b.snapGrid.length-1),e!==b.activeIndex&&(b.snapIndex=t,b.previousIndex=b.activeIndex,b.activeIndex=e,b.updateClasses())},b.updateClasses=function(){b.slides.removeClass(b.params.slideActiveClass+" "+b.params.slideNextClass+" "+b.params.slidePrevClass);var e=b.slides.eq(b.activeIndex);e.addClass(b.params.slideActiveClass);var t=e.next("."+b.params.slideClass).addClass(b.params.slideNextClass);b.params.loop&&0===t.length&&b.slides.eq(0).addClass(b.params.slideNextClass);var r=e.prev("."+b.params.slideClass).addClass(b.params.slidePrevClass);if(b.params.loop&&0===r.length&&b.slides.eq(-1).addClass(b.params.slidePrevClass),b.paginationContainer&&b.paginationContainer.length>0){var i,s=b.params.loop?Math.ceil((b.slides.length-2*b.loopedSlides)/b.params.slidesPerGroup):b.snapGrid.length;if(b.params.loop?(i=Math.ceil((b.activeIndex-b.loopedSlides)/b.params.slidesPerGroup),i>b.slides.length-1-2*b.loopedSlides&&(i-=b.slides.length-2*b.loopedSlides),i>s-1&&(i-=s),0>i&&"bullets"!==b.params.paginationType&&(i=s+i)):i="undefined"!=typeof b.snapIndex?b.snapIndex:b.activeIndex||0,"bullets"===b.params.paginationType&&b.bullets&&b.bullets.length>0&&(b.bullets.removeClass(b.params.bulletActiveClass),b.paginationContainer.length>1?b.bullets.each(function(){a(this).index()===i&&a(this).addClass(b.params.bulletActiveClass)}):b.bullets.eq(i).addClass(b.params.bulletActiveClass)),"fraction"===b.params.paginationType&&(b.paginationContainer.find("."+b.params.paginationCurrentClass).text(i+1),b.paginationContainer.find("."+b.params.paginationTotalClass).text(s)),"progress"===b.params.paginationType){var n=(i+1)/s,o=n,l=1;b.isHorizontal()||(l=n,o=1),b.paginationContainer.find("."+b.params.paginationProgressbarClass).transform("translate3d(0,0,0) scaleX("+o+") scaleY("+l+")").transition(b.params.speed)}"custom"===b.params.paginationType&&b.params.paginationCustomRender&&(b.paginationContainer.html(b.params.paginationCustomRender(b,i+1,s)),b.emit("onPaginationRendered",b,b.paginationContainer[0]))}b.params.loop||(b.params.prevButton&&b.prevButton&&b.prevButton.length>0&&(b.isBeginning?(b.prevButton.addClass(b.params.buttonDisabledClass),b.params.a11y&&b.a11y&&b.a11y.disable(b.prevButton)):(b.prevButton.removeClass(b.params.buttonDisabledClass),b.params.a11y&&b.a11y&&b.a11y.enable(b.prevButton))),b.params.nextButton&&b.nextButton&&b.nextButton.length>0&&(b.isEnd?(b.nextButton.addClass(b.params.buttonDisabledClass),b.params.a11y&&b.a11y&&b.a11y.disable(b.nextButton)):(b.nextButton.removeClass(b.params.buttonDisabledClass),b.params.a11y&&b.a11y&&b.a11y.enable(b.nextButton))))},b.updatePagination=function(){if(b.params.pagination&&b.paginationContainer&&b.paginationContainer.length>0){var e="";if("bullets"===b.params.paginationType){for(var a=b.params.loop?Math.ceil((b.slides.length-2*b.loopedSlides)/b.params.slidesPerGroup):b.snapGrid.length,t=0;a>t;t++)e+=b.params.paginationBulletRender?b.params.paginationBulletRender(t,b.params.bulletClass):"<"+b.params.paginationElement+' class="'+b.params.bulletClass+'"></'+b.params.paginationElement+">";b.paginationContainer.html(e),b.bullets=b.paginationContainer.find("."+b.params.bulletClass),b.params.paginationClickable&&b.params.a11y&&b.a11y&&b.a11y.initPagination()}"fraction"===b.params.paginationType&&(e=b.params.paginationFractionRender?b.params.paginationFractionRender(b,b.params.paginationCurrentClass,b.params.paginationTotalClass):'<span class="'+b.params.paginationCurrentClass+'"></span> / <span class="'+b.params.paginationTotalClass+'"></span>',b.paginationContainer.html(e)),"progress"===b.params.paginationType&&(e=b.params.paginationProgressRender?b.params.paginationProgressRender(b,b.params.paginationProgressbarClass):'<span class="'+b.params.paginationProgressbarClass+'"></span>',b.paginationContainer.html(e)),"custom"!==b.params.paginationType&&b.emit("onPaginationRendered",b,b.paginationContainer[0])}},b.update=function(e){function a(){r=Math.min(Math.max(b.translate,b.maxTranslate()),b.minTranslate()),b.setWrapperTranslate(r),b.updateActiveIndex(),b.updateClasses()}if(b.updateContainerSize(),b.updateSlidesSize(),b.updateProgress(),b.updatePagination(),b.updateClasses(),b.params.scrollbar&&b.scrollbar&&b.scrollbar.set(),e){var t,r;b.controller&&b.controller.spline&&(b.controller.spline=void 0),b.params.freeMode?(a(),b.params.autoHeight&&b.updateAutoHeight()):(t=("auto"===b.params.slidesPerView||b.params.slidesPerView>1)&&b.isEnd&&!b.params.centeredSlides?b.slideTo(b.slides.length-1,0,!1,!0):b.slideTo(b.activeIndex,0,!1,!0),t||a())}else b.params.autoHeight&&b.updateAutoHeight()},b.onResize=function(e){b.params.breakpoints&&b.setBreakpoint();var a=b.params.allowSwipeToPrev,t=b.params.allowSwipeToNext;b.params.allowSwipeToPrev=b.params.allowSwipeToNext=!0,b.updateContainerSize(),b.updateSlidesSize(),("auto"===b.params.slidesPerView||b.params.freeMode||e)&&b.updatePagination(),b.params.scrollbar&&b.scrollbar&&b.scrollbar.set(),b.controller&&b.controller.spline&&(b.controller.spline=void 0);var r=!1;if(b.params.freeMode){var i=Math.min(Math.max(b.translate,b.maxTranslate()),b.minTranslate());b.setWrapperTranslate(i),b.updateActiveIndex(),b.updateClasses(),b.params.autoHeight&&b.updateAutoHeight()}else b.updateClasses(),r=("auto"===b.params.slidesPerView||b.params.slidesPerView>1)&&b.isEnd&&!b.params.centeredSlides?b.slideTo(b.slides.length-1,0,!1,!0):b.slideTo(b.activeIndex,0,!1,!0);b.params.lazyLoading&&!r&&b.lazy&&b.lazy.load(),b.params.allowSwipeToPrev=a,b.params.allowSwipeToNext=t};var T=["mousedown","mousemove","mouseup"];window.navigator.pointerEnabled?T=["pointerdown","pointermove","pointerup"]:window.navigator.msPointerEnabled&&(T=["MSPointerDown","MSPointerMove","MSPointerUp"]),b.touchEvents={start:b.support.touch||!b.params.simulateTouch?"touchstart":T[0],move:b.support.touch||!b.params.simulateTouch?"touchmove":T[1],end:b.support.touch||!b.params.simulateTouch?"touchend":T[2]},(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&("container"===b.params.touchEventsTarget?b.container:b.wrapper).addClass("swiper-wp8-"+b.params.direction),b.initEvents=function(e){var a=e?"off":"on",t=e?"removeEventListener":"addEventListener",r="container"===b.params.touchEventsTarget?b.container[0]:b.wrapper[0],s=b.support.touch?r:document,n=b.params.nested?!0:!1;b.browser.ie?(r[t](b.touchEvents.start,b.onTouchStart,!1),s[t](b.touchEvents.move,b.onTouchMove,n),s[t](b.touchEvents.end,b.onTouchEnd,!1)):(b.support.touch&&(r[t](b.touchEvents.start,b.onTouchStart,!1),r[t](b.touchEvents.move,b.onTouchMove,n),r[t](b.touchEvents.end,b.onTouchEnd,!1)),!i.simulateTouch||b.device.ios||b.device.android||(r[t]("mousedown",b.onTouchStart,!1),document[t]("mousemove",b.onTouchMove,n),document[t]("mouseup",b.onTouchEnd,!1))),window[t]("resize",b.onResize),b.params.nextButton&&b.nextButton&&b.nextButton.length>0&&(b.nextButton[a]("click",b.onClickNext),b.params.a11y&&b.a11y&&b.nextButton[a]("keydown",b.a11y.onEnterKey)),b.params.prevButton&&b.prevButton&&b.prevButton.length>0&&(b.prevButton[a]("click",b.onClickPrev),b.params.a11y&&b.a11y&&b.prevButton[a]("keydown",b.a11y.onEnterKey)),b.params.pagination&&b.params.paginationClickable&&(b.paginationContainer[a]("click","."+b.params.bulletClass,b.onClickIndex),b.params.a11y&&b.a11y&&b.paginationContainer[a]("keydown","."+b.params.bulletClass,b.a11y.onEnterKey)),(b.params.preventClicks||b.params.preventClicksPropagation)&&r[t]("click",b.preventClicks,!0)},b.attachEvents=function(){b.initEvents()},b.detachEvents=function(){b.initEvents(!0)},b.allowClick=!0,b.preventClicks=function(e){b.allowClick||(b.params.preventClicks&&e.preventDefault(),b.params.preventClicksPropagation&&b.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))},b.onClickNext=function(e){e.preventDefault(),(!b.isEnd||b.params.loop)&&b.slideNext()},b.onClickPrev=function(e){e.preventDefault(),(!b.isBeginning||b.params.loop)&&b.slidePrev()},b.onClickIndex=function(e){e.preventDefault();var t=a(this).index()*b.params.slidesPerGroup;b.params.loop&&(t+=b.loopedSlides),b.slideTo(t)},b.updateClickedSlide=function(e){var t=o(e,"."+b.params.slideClass),r=!1;if(t)for(var i=0;i<b.slides.length;i++)b.slides[i]===t&&(r=!0);if(!t||!r)return b.clickedSlide=void 0,void(b.clickedIndex=void 0);if(b.clickedSlide=t,b.clickedIndex=a(t).index(),b.params.slideToClickedSlide&&void 0!==b.clickedIndex&&b.clickedIndex!==b.activeIndex){var s,n=b.clickedIndex;if(b.params.loop){if(b.animating)return;s=a(b.clickedSlide).attr("data-swiper-slide-index"),b.params.centeredSlides?n<b.loopedSlides-b.params.slidesPerView/2||n>b.slides.length-b.loopedSlides+b.params.slidesPerView/2?(b.fixLoop(),n=b.wrapper.children("."+b.params.slideClass+'[data-swiper-slide-index="'+s+'"]:not(.swiper-slide-duplicate)').eq(0).index(),setTimeout(function(){b.slideTo(n)},0)):b.slideTo(n):n>b.slides.length-b.params.slidesPerView?(b.fixLoop(),n=b.wrapper.children("."+b.params.slideClass+'[data-swiper-slide-index="'+s+'"]:not(.swiper-slide-duplicate)').eq(0).index(),setTimeout(function(){b.slideTo(n)},0)):b.slideTo(n)}else b.slideTo(n)}};var S,C,z,M,E,P,k,I,L,B,D="input, select, textarea, button",H=Date.now(),A=[];b.animating=!1,b.touches={startX:0,startY:0,currentX:0,currentY:0,diff:0};var G,O;if(b.onTouchStart=function(e){if(e.originalEvent&&(e=e.originalEvent),G="touchstart"===e.type,G||!("which"in e)||3!==e.which){if(b.params.noSwiping&&o(e,"."+b.params.noSwipingClass))return void(b.allowClick=!0);if(!b.params.swipeHandler||o(e,b.params.swipeHandler)){var t=b.touches.currentX="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,r=b.touches.currentY="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY;if(!(b.device.ios&&b.params.iOSEdgeSwipeDetection&&t<=b.params.iOSEdgeSwipeThreshold)){if(S=!0,C=!1,z=!0,E=void 0,O=void 0,b.touches.startX=t,b.touches.startY=r,M=Date.now(),b.allowClick=!0,b.updateContainerSize(),b.swipeDirection=void 0,b.params.threshold>0&&(I=!1),"touchstart"!==e.type){var i=!0;a(e.target).is(D)&&(i=!1),document.activeElement&&a(document.activeElement).is(D)&&document.activeElement.blur(),i&&e.preventDefault()}b.emit("onTouchStart",b,e)}}}},b.onTouchMove=function(e){if(e.originalEvent&&(e=e.originalEvent),!G||"mousemove"!==e.type){if(e.preventedByNestedSwiper)return b.touches.startX="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,void(b.touches.startY="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY);if(b.params.onlyExternal)return b.allowClick=!1,void(S&&(b.touches.startX=b.touches.currentX="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,b.touches.startY=b.touches.currentY="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,M=Date.now()));if(G&&document.activeElement&&e.target===document.activeElement&&a(e.target).is(D))return C=!0,void(b.allowClick=!1);if(z&&b.emit("onTouchMove",b,e),!(e.targetTouches&&e.targetTouches.length>1)){if(b.touches.currentX="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,b.touches.currentY="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,"undefined"==typeof E){var t=180*Math.atan2(Math.abs(b.touches.currentY-b.touches.startY),Math.abs(b.touches.currentX-b.touches.startX))/Math.PI;E=b.isHorizontal()?t>b.params.touchAngle:90-t>b.params.touchAngle}if(E&&b.emit("onTouchMoveOpposite",b,e),"undefined"==typeof O&&b.browser.ieTouch&&(b.touches.currentX!==b.touches.startX||b.touches.currentY!==b.touches.startY)&&(O=!0),S){if(E)return void(S=!1);if(O||!b.browser.ieTouch){b.allowClick=!1,b.emit("onSliderMove",b,e),e.preventDefault(),b.params.touchMoveStopPropagation&&!b.params.nested&&e.stopPropagation(),C||(i.loop&&b.fixLoop(),k=b.getWrapperTranslate(),b.setWrapperTransition(0),b.animating&&b.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"),b.params.auto
gitextract_0wolcq7b/ ├── LICENSE ├── README.md ├── docs/ │ └── install.md ├── my_uwsgi.ini ├── requirements.txt ├── src/ │ ├── blog/ │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── apps.py │ │ ├── context_processors.py │ │ ├── models.py │ │ ├── templatetags/ │ │ │ ├── __init__.py │ │ │ └── custom_filter.py │ │ ├── tests.py │ │ ├── urls.py │ │ └── views.py │ ├── django_blog/ │ │ ├── __init__.py │ │ ├── blogroll.py │ │ ├── settings.py │ │ ├── urls.py │ │ ├── util.py │ │ └── wsgi.py │ ├── manage.py │ ├── static/ │ │ ├── 404/ │ │ │ ├── css │ │ │ └── style.css │ │ ├── css/ │ │ │ ├── animation.css │ │ │ ├── default.css │ │ │ ├── flexslider.css │ │ │ ├── font-icon.css │ │ │ ├── lightbox.css │ │ │ ├── login.css │ │ │ ├── markdown.css │ │ │ ├── public.css │ │ │ ├── skin_1.css │ │ │ ├── skin_2.css │ │ │ └── skin_3.css │ │ ├── cur/ │ │ │ ├── default.cur │ │ │ └── link.cur │ │ ├── js/ │ │ │ ├── album.js │ │ │ ├── jquery.flexslider-min.js │ │ │ ├── layer/ │ │ │ │ ├── extend/ │ │ │ │ │ └── layer.ext.js │ │ │ │ ├── layer.js │ │ │ │ └── skin/ │ │ │ │ ├── layer.css │ │ │ │ └── layer.ext.css │ │ │ ├── lightbox.js │ │ │ ├── load.js │ │ │ ├── my.js │ │ │ ├── skin.js │ │ │ ├── superbg-custom.js │ │ │ └── tooltip.js │ │ ├── layui/ │ │ │ ├── css/ │ │ │ │ ├── layui.css │ │ │ │ ├── layui.mobile.css │ │ │ │ └── modules/ │ │ │ │ ├── code.css │ │ │ │ └── layer/ │ │ │ │ └── default/ │ │ │ │ └── layer.css │ │ │ ├── lay/ │ │ │ │ └── modules/ │ │ │ │ ├── jquery.js │ │ │ │ ├── layer.js │ │ │ │ └── mobile.js │ │ │ ├── layui.all.js │ │ │ └── layui.js │ │ └── prism/ │ │ ├── prism.css │ │ └── prism.js │ └── templates/ │ ├── 404.html │ ├── blog/ │ │ ├── about.html │ │ ├── archive.html │ │ ├── base.html │ │ ├── blogroll.html │ │ ├── category.html │ │ ├── component/ │ │ │ ├── auto_push_baidu.html │ │ │ ├── blog_list.html │ │ │ ├── changyan.html │ │ │ └── pagination.html │ │ ├── detail.html │ │ ├── footer.html │ │ ├── header.html │ │ ├── index.html │ │ ├── link.html │ │ ├── list.html │ │ ├── message.html │ │ ├── message_board.html │ │ ├── right.html │ │ ├── search.html │ │ └── tag.html │ ├── robots.txt │ └── sitemap.txt └── uwsgi_params
SYMBOL INDEX (300 symbols across 20 files)
FILE: src/blog/admin.py
class ArticleAdmin (line 10) | class ArticleAdmin(admin.ModelAdmin):
class CategoryAdmin (line 18) | class CategoryAdmin(admin.ModelAdmin):
class TagAdmin (line 23) | class TagAdmin(admin.ModelAdmin):
FILE: src/blog/apps.py
class BlogConfig (line 6) | class BlogConfig(AppConfig):
FILE: src/blog/context_processors.py
function sidebar (line 20) | def sidebar(request):
FILE: src/blog/models.py
class Tag (line 20) | class Tag(models.Model):
method __str__ (line 23) | def __str__(self):
class Article (line 27) | class Article(models.Model):
method __str__ (line 39) | def __str__(self):
method sourceUrl (line 42) | def sourceUrl(self):
method viewed (line 46) | def viewed(self):
method commenced (line 54) | def commenced(self):
class Meta (line 62) | class Meta: # 按时间降序
class Category (line 66) | class Category(models.Model):
class Meta (line 71) | class Meta:
method __str__ (line 76) | def __str__(self):
class Comment (line 80) | class Comment(models.Model):
FILE: src/blog/templatetags/custom_filter.py
function slice_list (line 24) | def slice_list(value, index):
function custom_markdown (line 30) | def custom_markdown(value):
function tag2string (line 44) | def tag2string(value):
FILE: src/blog/views.py
function get_page (line 12) | def get_page(request):
function index (line 17) | def index(request):
function blog_list (line 23) | def blog_list(request):
function category (line 36) | def category(request, name):
function tag (line 51) | def tag(request, name):
function archive (line 67) | def archive(request):
function message (line 86) | def message(request):
function get_comment (line 91) | def get_comment(request):
function detail (line 113) | def detail(request, pk):
function search (line 125) | def search(request):
function page_not_found_error (line 139) | def page_not_found_error(request, exception):
function page_error (line 143) | def page_error(request):
FILE: src/django_blog/util.py
class PageInfo (line 18) | class PageInfo(object):
method __init__ (line 20) | def __init__(self, page, total, limit=8):
method index_start (line 34) | def index_start(self):
method index_end (line 38) | def index_end(self):
method current_page (line 42) | def current_page(self):
method total_page (line 46) | def total_page(self):
method total_number (line 50) | def total_number(self):
FILE: src/static/js/album.js
function init (line 17) | function init() {
function getNbCols (line 31) | function getNbCols() {
function recordAndRemove (line 43) | function recordAndRemove() {
function setColPos (line 56) | function setColPos() {
function parseSelector (line 65) | function parseSelector(selector) {
function print (line 68) | function print() {
function getAttr (line 92) | function getAttr(attr, type) {
FILE: src/static/js/jquery.flexslider-min.js
function e (line 15) | function e(e){e.fn.swiper=function(a){var r;return e(this).each(function...
function s (line 15) | function s(e){return Math.floor(e)}
function n (line 15) | function n(){b.autoplayTimeoutId=setTimeout(function(){b.params.loop?(b....
function o (line 15) | function o(e,t){var r=a(e.target);if(!r.is(t))if("string"==typeof t)r=r....
function l (line 15) | function l(e,a){a=a||{};var t=window.MutationObserver||window.WebkitMuta...
function p (line 15) | function p(e){e.originalEvent&&(e=e.originalEvent);var a=e.keyCode||e.ch...
function d (line 15) | function d(e){e.originalEvent&&(e=e.originalEvent);var a=b.mousewheel.ev...
function u (line 15) | function u(e,t){e=a(e);var r,i,s,n=b.rtl?-1:1;r=e.attr("data-swiper-para...
function c (line 15) | function c(e){return 0!==e.indexOf("on")&&(e=e[0]!==e[0].toUpperCase()?"...
function s (line 15) | function s(){i&&i()}
function e (line 15) | function e(){"undefined"!=typeof b&&null!==b&&(void 0!==b.imagesLoaded&&...
function a (line 15) | function a(){r=Math.min(Math.max(b.translate,b.maxTranslate()),b.minTran...
function r (line 16) | function r(a){e=a.rtl&&"horizontal"===a.params.direction?-b.translate:b....
function r (line 16) | function r(a){a.setWrapperTransition(e,b),0!==e&&(a.onTransitionStart(),...
function s (line 17) | function s(e){var i=e.target;if(a(i).is(t))r.call(i,e);else for(var s=a(...
function i (line 17) | function i(n){t(n),s.off(e,a,i,r)}
function a (line 17) | function a(s){if(s.target===this)for(e.call(this,s),t=0;t<r.length;t++)i...
function a (line 17) | function a(s){if(s.target===this)for(e.call(this,s),t=0;t<r.length;t++)i...
FILE: src/static/js/layer/extend/layer.ext.js
function e (line 2) | function e(a,b,c){var d=new Image;d.onload=function(){d.onload=null,b(d)...
FILE: src/static/js/layer/layer.js
function b (line 2) | function b(a){a=g.find(a),a.height(i[1]-j-k-2*(0|parseFloat(a.css("paddi...
function a (line 2) | function a(){var a=g.cancel&&g.cancel(b.index);a===!1||f.close(b.index)}
function b (line 2) | function b(){a.css({top:f+(e.config.fix?d.scrollTop():0)})}
FILE: src/static/js/lightbox.js
function run (line 60) | function run(selector, userOptions) {
function buildOverlay (line 86) | function buildOverlay() {
function bindEvents (line 125) | function bindEvents() {
function prepareOverlay (line 185) | function prepareOverlay(galleryIndex) {
function setOptions (line 203) | function setOptions(newOptions) {
function returnImageContainer (line 222) | function returnImageContainer() {
function showOverlay (line 228) | function showOverlay(index) {
function hideOverlay (line 246) | function hideOverlay() {
function loadImage (line 257) | function loadImage(index, callback) {
function getImageSrc (line 302) | function getImageSrc(image) {
function showNextImage (line 331) | function showNextImage() {
function showPreviousImage (line 344) | function showPreviousImage() {
function updateOffset (line 357) | function updateOffset() {
function testTransformsSupport (line 376) | function testTransformsSupport() {
function preloadNext (line 383) | function preloadNext(index) {
function preloadPrev (line 389) | function preloadPrev(index) {
function bind (line 395) | function bind(element, event, callback) {
FILE: src/static/js/load.js
function PageLoaded (line 64) | function PageLoaded() {
FILE: src/static/js/skin.js
function setActiveStyleSheet (line 3) | function setActiveStyleSheet(title) {
function getActiveStyleSheet (line 13) | function getActiveStyleSheet() {
function getPreferredStyleSheet (line 21) | function getPreferredStyleSheet() {
function createCookie (line 32) | function createCookie(name,value,days) {
function readCookie (line 42) | function readCookie(name) {
FILE: src/static/layui/lay/modules/jquery.js
function n (line 2) | function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"func...
function r (line 2) | function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){ret...
function i (line 2) | function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}
function o (line 2) | function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]...
function a (line 2) | function a(){re.addEventListener?(re.removeEventListener("DOMContentLoad...
function s (line 2) | function s(){(re.addEventListener||"load"===e.event.type||"complete"===r...
function u (line 2) | function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace...
function l (line 2) | function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&...
function c (line 2) | function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.c...
function f (line 2) | function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe...
function d (line 2) | function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:functi...
function p (line 2) | function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.crea...
function h (line 2) | function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName...
function g (line 2) | function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval"...
function m (line 2) | function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}
function y (line 2) | function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x...
function v (line 2) | function v(){return!0}
function x (line 2) | function x(){return!1}
function b (line 2) | function b(){try{return re.activeElement}catch(e){}}
function w (line 2) | function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof ...
function T (line 2) | function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeTy...
function C (line 2) | function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}
function E (line 2) | function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribu...
function N (line 2) | function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e...
function k (line 2) | function k(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase...
function S (line 2) | function S(e,t,n,r){t=oe.apply([],t);var i,o,a,s,u,l,c=0,f=e.length,d=f-...
function A (line 2) | function A(e,t,n){for(var r,i=t?pe.filter(t,e):e,o=0;null!=(r=i[o]);o++)...
function D (line 2) | function D(e,t){var n=pe(t.createElement(e)).appendTo(t.body),r=pe.css(n...
function j (line 2) | function j(e){var t=re,n=lt[e];return n||(n=D(e,t),"none"!==n&&n||(ut=(u...
function L (line 2) | function L(e,t){return{get:function(){return e()?void delete this.get:(t...
function H (line 2) | function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e....
function q (line 2) | function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a<s;a++)r=e[a],r.style...
function _ (line 2) | function _(e,t,n){var r=bt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2...
function F (line 2) | function F(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t...
function M (line 2) | function M(t,n,r){var i=!0,o="width"===n?t.offsetWidth:t.offsetHeight,a=...
function O (line 2) | function O(e,t,n,r,i){return new O.prototype.init(e,t,n,r,i)}
function R (line 2) | function R(){return e.setTimeout(function(){Nt=void 0}),Nt=pe.now()}
function P (line 2) | function P(e,t){var n,r={height:e},i=0;for(t=t?1:0;i<4;i+=2-t)n=Oe[i],r[...
function B (line 2) | function B(e,t,n){for(var r,i=($.tweeners[t]||[]).concat($.tweeners["*"]...
function W (line 2) | function W(e,t,n){var r,i,o,a,s,u,l,c,f=this,d={},p=e.style,h=e.nodeType...
function I (line 2) | function I(e,t){var n,r,i,o,a;for(n in e)if(r=pe.camelCase(n),i=t[r],o=e...
function $ (line 2) | function $(e,t,n){var r,i,o=0,a=$.prefilters.length,s=pe.Deferred().alwa...
function z (line 2) | function z(e){return pe.attr(e,"class")||""}
function X (line 2) | function X(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r...
function U (line 2) | function U(e,t,n,r){function i(s){var u;return o[s]=!0,pe.each(e[s]||[],...
function V (line 2) | function V(e,t){var n,r,i=pe.ajaxSettings.flatOptions||{};for(r in t)voi...
function Y (line 2) | function Y(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];...
function J (line 2) | function J(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for...
function G (line 2) | function G(e){return e.style&&e.style.display||pe.css(e,"display")}
function K (line 2) | function K(e){for(;e&&1===e.nodeType;){if("none"===G(e)||"hidden"===e.ty...
function Q (line 2) | function Q(e,t,n,r){var i;if(pe.isArray(t))pe.each(t,function(t,i){n||rn...
function Z (line 2) | function Z(){try{return new e.XMLHttpRequest}catch(t){}}
function ee (line 2) | function ee(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(...
function te (line 2) | function te(e){return pe.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e...
function t (line 2) | function t(e,t,n,r){var i,o,a,s,u,l,f,p,h=t&&t.ownerDocument,g=t?t.nodeT...
function n (line 2) | function n(){function e(n,r){return t.push(n+" ")>T.cacheLength&&delete ...
function r (line 2) | function r(e){return e[P]=!0,e}
function i (line 2) | function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){ret...
function o (line 2) | function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]...
function a (line 2) | function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sour...
function s (line 2) | function s(e){return function(t){var n=t.nodeName.toLowerCase();return"i...
function u (line 2) | function u(e){return function(t){var n=t.nodeName.toLowerCase();return("...
function l (line 2) | function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i...
function c (line 2) | function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}
function f (line 2) | function f(){}
function d (line 2) | function d(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}
function p (line 2) | function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=I++;return t.first...
function h (line 2) | function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)...
function g (line 2) | function g(e,n,r){for(var i=0,o=n.length;i<o;i++)t(e,n[i],r);return r}
function m (line 2) | function m(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o...
function y (line 2) | function y(e,t,n,i,o,a){return i&&!i[P]&&(i=y(i)),o&&!o[P]&&(o=y(o,a)),r...
function v (line 2) | function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.re...
function x (line 2) | function x(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,l){var ...
function t (line 4) | function t(){var t,c,f=re.documentElement;f.appendChild(u),l.style.cssTe...
function r (line 4) | function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c...
FILE: src/static/layui/lay/modules/layer.js
function e (line 2) | function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}
function o (line 2) | function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onlo...
FILE: src/static/layui/lay/modules/mobile.js
function t (line 2) | function t(t){return null==t?String(t):J[W.call(t)]||"object"}
function e (line 2) | function e(e){return"function"==t(e)}
function n (line 2) | function n(t){return null!=t&&t==t.window}
function r (line 2) | function r(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}
function i (line 2) | function i(e){return"object"==t(e)}
function o (line 2) | function o(t){return i(t)&&!n(t)&&Object.getPrototypeOf(t)==Object.proto...
function a (line 2) | function a(t){var e=!!t&&"length"in t&&t.length,r=T.type(t);return"funct...
function s (line 2) | function s(t){return A.call(t,function(t){return null!=t})}
function u (line 2) | function u(t){return t.length>0?T.fn.concat.apply([],t):t}
function c (line 2) | function c(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/...
function l (line 2) | function l(t){return t in F?F[t]:F[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}
function f (line 2) | function f(t,e){return"number"!=typeof e||k[c(t)]?e:e+"px"}
function h (line 2) | function h(t){var e,n;return $[t]||(e=L.createElement(t),L.body.appendCh...
function p (line 2) | function p(t){return"children"in t?D.call(t.children):T.map(t.childNodes...
function d (line 2) | function d(t,e){var n,r=t?t.length:0;for(n=0;n<r;n++)this[n]=t[n];this.l...
function m (line 2) | function m(t,e,n){for(j in e)n&&(o(e[j])||Q(e[j]))?(o(e[j])&&!o(t[j])&&(...
function v (line 2) | function v(t,e){return null==e?T(t):T(t).filter(e)}
function g (line 2) | function g(t,n,r,i){return e(n)?n.call(t,r,i):n}
function y (line 2) | function y(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}
function x (line 2) | function x(t,e){var n=t.className||"",r=n&&n.baseVal!==E;return e===E?r?...
function b (line 2) | function b(t){try{return t?"true"==t||"false"!=t&&("null"==t?null:+t+""=...
function w (line 2) | function w(t,e){e(t);for(var n=0,r=t.childNodes.length;n<r;n++)w(t.child...
function e (line 2) | function e(t){return t._zid||(t._zid=h++)}
function n (line 2) | function n(t,n,o,a){if(n=r(n),n.ns)var s=i(n.ns);return(v[e(t)]||[]).fil...
function r (line 2) | function r(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort()...
function i (line 2) | function i(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$...
function o (line 2) | function o(t,e){return t.del&&!y&&t.e in x||!!e}
function a (line 2) | function a(t){return b[t]||y&&x[t]||t}
function s (line 2) | function s(n,i,s,u,l,h,p){var d=e(n),m=v[d]||(v[d]=[]);i.split(/\s/).for...
function u (line 2) | function u(t,r,i,s,u){var c=e(t);(r||"").split(/\s/).forEach(function(e)...
function c (line 2) | function c(e,n){return!n&&e.isDefaultPrevented||(n||(n=e),t.each(T,funct...
function l (line 2) | function l(t){var e,n={originalEvent:t};for(e in t)j.test(e)||t[e]===f||...
function e (line 2) | function e(e,n,r){var i=t.Event(n);return t(e).trigger(i,r),!i.isDefault...
function n (line 2) | function n(t,n,r,i){if(t.global)return e(n||x,r,i)}
function r (line 2) | function r(e){e.global&&0===t.active++&&n(e,null,"ajaxStart")}
function i (line 2) | function i(e){e.global&&!--t.active&&n(e,null,"ajaxStop")}
function o (line 2) | function o(t,e){var r=e.context;return e.beforeSend.call(r,t,e)!==!1&&n(...
function a (line 2) | function a(t,e,r,i){var o=r.context,a="success";r.success.call(o,t,a,e),...
function s (line 2) | function s(t,e,r,i,o){var a=i.context;i.error.call(a,r,e,t),o&&o.rejectW...
function u (line 2) | function u(t,e,r){var o=r.context;r.complete.call(o,e,t),n(r,o,"ajaxComp...
function c (line 2) | function c(t,e,n){if(n.dataFilter==l)return t;var r=n.context;return n.d...
function l (line 2) | function l(){}
function f (line 2) | function f(t){return t&&(t=t.split(";",2)[0]),t&&(t==T?"html":t==j?"json...
function h (line 2) | function h(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}
function p (line 2) | function p(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t...
function d (line 2) | function d(e,n,r,i){return t.isFunction(n)&&(i=r,r=n,n=void 0),t.isFunct...
function m (line 2) | function m(e,n,r,i){var o,a=t.isArray(n),s=t.isPlainObject(n);t.each(n,f...
FILE: src/static/layui/layui.all.js
function c (line 2) | function c(e,t){var r="PLaySTATION 3"===navigator.platform?/^complete$/:...
function s (line 2) | function s(){l.push(layui[d]),e.length>1?p.use(e.slice(1),r,l):"function...
function n (line 2) | function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"func...
function r (line 2) | function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){ret...
function i (line 2) | function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}
function o (line 2) | function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]...
function a (line 2) | function a(){re.addEventListener?(re.removeEventListener("DOMContentLoad...
function s (line 2) | function s(){(re.addEventListener||"load"===e.event.type||"complete"===r...
function u (line 2) | function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace...
function l (line 2) | function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&...
function c (line 2) | function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.c...
function f (line 2) | function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe...
function d (line 2) | function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:functi...
function p (line 2) | function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.crea...
function h (line 2) | function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName...
function g (line 2) | function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval"...
function m (line 2) | function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}
function y (line 2) | function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x...
function v (line 2) | function v(){return!0}
function x (line 2) | function x(){return!1}
function b (line 2) | function b(){try{return re.activeElement}catch(e){}}
function w (line 2) | function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof ...
function T (line 2) | function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeTy...
function C (line 2) | function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}
function E (line 2) | function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribu...
function N (line 2) | function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e...
function k (line 2) | function k(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase...
function S (line 2) | function S(e,t,n,r){t=oe.apply([],t);var i,o,a,s,u,l,c=0,f=e.length,d=f-...
function A (line 2) | function A(e,t,n){for(var r,i=t?pe.filter(t,e):e,o=0;null!=(r=i[o]);o++)...
function D (line 2) | function D(e,t){var n=pe(t.createElement(e)).appendTo(t.body),r=pe.css(n...
function j (line 2) | function j(e){var t=re,n=lt[e];return n||(n=D(e,t),"none"!==n&&n||(ut=(u...
function L (line 2) | function L(e,t){return{get:function(){return e()?void delete this.get:(t...
function H (line 2) | function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e....
function q (line 2) | function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a<s;a++)r=e[a],r.style...
function _ (line 2) | function _(e,t,n){var r=bt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2...
function F (line 2) | function F(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t...
function M (line 2) | function M(t,n,r){var i=!0,o="width"===n?t.offsetWidth:t.offsetHeight,a=...
function O (line 2) | function O(e,t,n,r,i){return new O.prototype.init(e,t,n,r,i)}
function R (line 2) | function R(){return e.setTimeout(function(){Nt=void 0}),Nt=pe.now()}
function P (line 2) | function P(e,t){var n,r={height:e},i=0;for(t=t?1:0;i<4;i+=2-t)n=Oe[i],r[...
function B (line 2) | function B(e,t,n){for(var r,i=($.tweeners[t]||[]).concat($.tweeners["*"]...
function W (line 2) | function W(e,t,n){var r,i,o,a,s,u,l,c,f=this,d={},p=e.style,h=e.nodeType...
function I (line 2) | function I(e,t){var n,r,i,o,a;for(n in e)if(r=pe.camelCase(n),i=t[r],o=e...
function $ (line 2) | function $(e,t,n){var r,i,o=0,a=$.prefilters.length,s=pe.Deferred().alwa...
function z (line 2) | function z(e){return pe.attr(e,"class")||""}
function X (line 2) | function X(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r...
function U (line 2) | function U(e,t,n,r){function i(s){var u;return o[s]=!0,pe.each(e[s]||[],...
function V (line 2) | function V(e,t){var n,r,i=pe.ajaxSettings.flatOptions||{};for(r in t)voi...
function Y (line 2) | function Y(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];...
function J (line 2) | function J(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for...
function G (line 2) | function G(e){return e.style&&e.style.display||pe.css(e,"display")}
function K (line 2) | function K(e){for(;e&&1===e.nodeType;){if("none"===G(e)||"hidden"===e.ty...
function Q (line 2) | function Q(e,t,n,r){var i;if(pe.isArray(t))pe.each(t,function(t,i){n||rn...
function Z (line 2) | function Z(){try{return new e.XMLHttpRequest}catch(t){}}
function ee (line 2) | function ee(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(...
function te (line 2) | function te(e){return pe.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e...
function t (line 2) | function t(e,t,n,r){var i,o,a,s,u,l,f,p,h=t&&t.ownerDocument,g=t?t.nodeT...
function n (line 2) | function n(){function e(n,r){return t.push(n+" ")>T.cacheLength&&delete ...
function r (line 2) | function r(e){return e[P]=!0,e}
function i (line 2) | function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){ret...
function o (line 2) | function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]...
function a (line 2) | function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sour...
function s (line 2) | function s(e){return function(t){var n=t.nodeName.toLowerCase();return"i...
function u (line 2) | function u(e){return function(t){var n=t.nodeName.toLowerCase();return("...
function l (line 2) | function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i...
function c (line 2) | function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}
function f (line 2) | function f(){}
function d (line 2) | function d(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}
function p (line 2) | function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=I++;return t.first...
function h (line 2) | function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)...
function g (line 2) | function g(e,n,r){for(var i=0,o=n.length;i<o;i++)t(e,n[i],r);return r}
function m (line 2) | function m(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o...
function y (line 2) | function y(e,t,n,i,o,a){return i&&!i[P]&&(i=y(i)),o&&!o[P]&&(o=y(o,a)),r...
function v (line 2) | function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.re...
function x (line 2) | function x(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,l){var ...
function t (line 4) | function t(){var t,c,f=re.documentElement;f.appendChild(u),l.style.cssTe...
function r (line 4) | function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c...
function e (line 5) | function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}
function o (line 5) | function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onlo...
function n (line 5) | function n(){a=t[l](function(){o.each(function(){var t=e(this),i=t.width...
function n (line 5) | function n(t,n,o){var r=e(this),l=e.data(this,u)||{};l.w=n!==i?n:r.width...
FILE: src/static/layui/layui.js
function c (line 2) | function c(e,t){var r="PLaySTATION 3"===navigator.platform?/^complete$/:...
function s (line 2) | function s(){l.push(layui[d]),e.length>1?p.use(e.slice(1),r,l):"function...
FILE: src/static/prism/prism.js
function n (line 14) | function n(){var e=new o(i,{text:function(){return t.code}});e.on("succe...
function r (line 14) | function r(){setTimeout(function(){i.textContent="Copy"},5e3)}
Condensed preview — 84 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (946K chars).
[
{
"path": "LICENSE",
"chars": 1065,
"preview": "MIT License\n\nCopyright (c) 2020 J_hao104\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\no"
},
{
"path": "README.md",
"chars": 1303,
"preview": "## Django搭建博客\n \n\nchdir = /home/ubuntu/web_"
},
{
"path": "requirements.txt",
"chars": 44,
"preview": "Django==2.2.18\nMarkdown==3.3\nPyMySQL==0.10.1"
},
{
"path": "src/blog/__init__.py",
"chars": 45,
"preview": "import pymysql\n\npymysql.install_as_MySQLdb()\n"
},
{
"path": "src/blog/admin.py",
"chars": 498,
"preview": "from django.contrib import admin\n\n# Register your models here.\n\n\nfrom blog.models import Tag, Article, Category\n\n\n@admin"
},
{
"path": "src/blog/apps.py",
"chars": 124,
"preview": "from __future__ import unicode_literals\n\nfrom django.apps import AppConfig\n\n\nclass BlogConfig(AppConfig):\n name = 'bl"
},
{
"path": "src/blog/context_processors.py",
"chars": 1039,
"preview": "# -*- coding: utf-8 -*-\n\"\"\"\n-------------------------------------------------\n File Name: context_processors.py \n"
},
{
"path": "src/blog/models.py",
"chars": 2520,
"preview": "# -*- coding: utf-8 -*-\n\"\"\"\n-------------------------------------------------\n File Name: models.py\n Description"
},
{
"path": "src/blog/templatetags/__init__.py",
"chars": 355,
"preview": "# -*- coding: utf-8 -*-\n\"\"\"\n-------------------------------------------------\n File Name: __init__.py \n Descrip"
},
{
"path": "src/blog/templatetags/custom_filter.py",
"chars": 1501,
"preview": "# -*- coding: utf-8 -*-\n\"\"\"\n-------------------------------------------------\n File Name: custom_filter.py \n De"
},
{
"path": "src/blog/tests.py",
"chars": 60,
"preview": "from django.test import TestCase\n\n# Create your tests here.\n"
},
{
"path": "src/blog/urls.py",
"chars": 913,
"preview": "# -*- coding: utf-8 -*-\n\"\"\"\n-------------------------------------------------\n File Name: urls.py \n Description"
},
{
"path": "src/blog/views.py",
"chars": 4442,
"preview": "# -*- coding: utf-8 -*-\n# Create your views here.\n\nimport json\nfrom django.http import JsonResponse\nfrom django_blog.uti"
},
{
"path": "src/django_blog/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "src/django_blog/blogroll.py",
"chars": 791,
"preview": "# -*- coding: utf-8 -*-\n\"\"\"\n-------------------------------------------------\n File Name: blogroll\n Description "
},
{
"path": "src/django_blog/settings.py",
"chars": 3608,
"preview": "\"\"\"\nDjango settings for django_blog project.\n\nGenerated by 'django-admin startproject' using Django 1.10.2.\n\nFor more in"
},
{
"path": "src/django_blog/urls.py",
"chars": 977,
"preview": "\"\"\"django_blog URL Configuration\n\nThe `urlpatterns` list routes URLs to views. For more information please see:\n http"
},
{
"path": "src/django_blog/util.py",
"chars": 1103,
"preview": "# -*- coding: utf-8 -*-\n\"\"\"\n-------------------------------------------------\n File Name: util\n Description :\n "
},
{
"path": "src/django_blog/wsgi.py",
"chars": 400,
"preview": "\"\"\"\nWSGI config for django_blog project.\n\nIt exposes the WSGI callable as a module-level variable named ``application``."
},
{
"path": "src/manage.py",
"chars": 809,
"preview": "#!/usr/bin/env python\nimport os\nimport sys\n\nif __name__ == \"__main__\":\n os.environ.setdefault(\"DJANGO_SETTINGS_MODULE"
},
{
"path": "src/static/404/css",
"chars": 9524,
"preview": "/* cyrillic-ext */\n@font-face {\n font-family: 'Ubuntu';\n font-style: italic;\n font-weight: 300;\n src: local('Ubuntu "
},
{
"path": "src/static/404/style.css",
"chars": 3883,
"preview": "/* === RESET === */\n*, html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, label, fieldset, inpu"
},
{
"path": "src/static/css/animation.css",
"chars": 4288,
"preview": "\n@-webkit-keyframes fuzuo{\n\t0%{transform:translateX(-300px);-webkit-transform:translateX(-300px);opacity:0;}\n\t20%{opacit"
},
{
"path": "src/static/css/default.css",
"chars": 20622,
"preview": "/****文章页****/\narticle {width:100%;overflow:hidden;}\narticle h3{text-align:center;font-size:20px!important;font-weight:b"
},
{
"path": "src/static/css/flexslider.css",
"chars": 20656,
"preview": "/**\n * Swiper 3.3.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * \n * http:/"
},
{
"path": "src/static/css/font-icon.css",
"chars": 17339,
"preview": "/*!\n * Elusive Icons 2.0.0 by @ReduxFramework - http://elusiveicons.com - @reduxframework\n * License - http://elusivei"
},
{
"path": "src/static/css/lightbox.css",
"chars": 4253,
"preview": "/*!\n * baguetteBox.js\n * @author feimosi\n * @version 0.7.0\n * @url https://github.com/feimosi/baguetteBox.js\n */\n\n#bagu"
},
{
"path": "src/static/css/login.css",
"chars": 5379,
"preview": "\n\n/* Reset CSS */\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, ac"
},
{
"path": "src/static/css/markdown.css",
"chars": 13897,
"preview": "@font-face {\n font-family: octicons-link;\n src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACF"
},
{
"path": "src/static/css/public.css",
"chars": 24631,
"preview": "body{font-size:14px;font-size:100%;font-family:'Microsoft YaHei';line-height:24px;margin:0;padding:0;min-width:320px;dis"
},
{
"path": "src/static/css/skin_1.css",
"chars": 2860,
"preview": "body {\n background: #e9ecd7 url(/static/images/bgimg/bg0.jpg);\n background-attachment: fixed;\n background-repea"
},
{
"path": "src/static/css/skin_2.css",
"chars": 3119,
"preview": "body {\n background: 0 0;\n background-attachment: fixed;\n background-repeat: no-repeat;\n background-size: 100"
},
{
"path": "src/static/css/skin_3.css",
"chars": 4546,
"preview": "body {\n background: #f2f2f2 url(/static/images/bgimg/blueprint.png);\n background-attachment: fixed\n}\n\nhtml {\n f"
},
{
"path": "src/static/js/album.js",
"chars": 5977,
"preview": "\"use strict\";\"object\"!=typeof window.CP&&(window.CP={}),window.CP.PenTimer={programNoLongerBeingMonitored:!1,timeOfFirst"
},
{
"path": "src/static/js/jquery.flexslider-min.js",
"chars": 78313,
"preview": "/**\n * Swiper 3.3.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * \n * http:/"
},
{
"path": "src/static/js/layer/extend/layer.ext.js",
"chars": 4832,
"preview": "/*! layer弹层组件拓展类 */\n;!function(){layer.use(\"skin/layer.ext.css\",function(){layer.layui_layer_extendlayerextjs=!0});var a"
},
{
"path": "src/static/js/layer/layer.js",
"chars": 14967,
"preview": "/*! layer-v2.2 弹层组件 License LGPL http://layer.layui.com/ By 贤心 */\n;!function(a,b){\"use strict\";var c,d,e={getPath:funct"
},
{
"path": "src/static/js/layer/skin/layer.css",
"chars": 11307,
"preview": "/*!\n \n @Name: layer's style\n @Author: 贤心\n @Blog: sentsin.com\n \n */*html{background-image:url(about:blank);background-att"
},
{
"path": "src/static/js/layer/skin/layer.ext.css",
"chars": 2844,
"preview": "/*!\n \n @Name: layer拓展样式\n @Date: 2012.12.13\n @Author: 贤心\n @blog: sentsin.com\n \n */.layui-layer-imgbar,.layui-layer-imgtit"
},
{
"path": "src/static/js/lightbox.js",
"chars": 15387,
"preview": "/*!\n * baguetteBox.js\n * @author feimosi\n * @version 0.7.0\n * @url https://github.com/feimosi/baguetteBox.js\n */\n\nvar b"
},
{
"path": "src/static/js/load.js",
"chars": 3023,
"preview": "/*******************************************\n * \n * Plug-in:ѺõҳЧ\n * Author:sqinyang (sqinyang@sina.com)\n * Time:2015/04/"
},
{
"path": "src/static/js/my.js",
"chars": 5890,
"preview": "$(document).ready(function () {\n $(\"section\").addClass(\"mysection\")\n //动画加载\n $(\"body\").show();\n\n $(\".jiazai\""
},
{
"path": "src/static/js/skin.js",
"chars": 2701,
"preview": "/* Style Switcher by Paul Sowden, see A List Apart: http://www.alistapart.com/articles/alternate/ */\n\nfunction setActive"
},
{
"path": "src/static/js/superbg-custom.js",
"chars": 1396,
"preview": "jQuery(function($){\n\n $.supersized({\n\n // Functionality\n slide_interval : 20000, // 切换时间\n "
},
{
"path": "src/static/js/tooltip.js",
"chars": 1656,
"preview": "$(function () {\n $(\".news_content p:odd\").addClass(\"p03\"); //隔行换色处,额数行增加样式P03\n\n //鼠标经过样式变化处\n $(\".news_content "
},
{
"path": "src/static/layui/css/layui.css",
"chars": 74303,
"preview": "/** layui-v2.5.6 MIT License By https://www.layui.com */\n .layui-inline,img{display:inline-block;vertical-align:middle}h"
},
{
"path": "src/static/layui/css/layui.mobile.css",
"chars": 9885,
"preview": "/** layui-v2.5.6 MIT License By https://www.layui.com */\n blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,inp"
},
{
"path": "src/static/layui/css/modules/code.css",
"chars": 1063,
"preview": "/** layui-v2.5.6 MIT License By https://www.layui.com */\n html #layuicss-skincodecss{display:none;position:absolute;widt"
},
{
"path": "src/static/layui/css/modules/layer/default/layer.css",
"chars": 14425,
"preview": "/** layui-v2.5.6 MIT License By https://www.layui.com */\n .layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .la"
},
{
"path": "src/static/layui/lay/modules/jquery.js",
"chars": 97648,
"preview": "/** layui-v2.5.6 MIT License By https://www.layui.com */\n ;!function(e,t){\"object\"==typeof module&&\"object\"==typeof modu"
},
{
"path": "src/static/layui/lay/modules/layer.js",
"chars": 22041,
"preview": "/** layui-v2.5.6 MIT License By https://www.layui.com */\n ;!function(e,t){\"use strict\";var i,n,a=e.layui&&layui.define,o"
},
{
"path": "src/static/layui/lay/modules/mobile.js",
"chars": 31387,
"preview": "/** layui-v2.5.6 MIT License By https://www.layui.com */\n ;layui.define(function(i){i(\"layui.mobile\",layui.v)});layui.de"
},
{
"path": "src/static/layui/layui.all.js",
"chars": 277056,
"preview": "/** layui-v2.5.6 MIT License By https://www.layui.com */\n ;!function(e){\"use strict\";var t=document,n={modules:{},status"
},
{
"path": "src/static/layui/layui.js",
"chars": 7381,
"preview": "/** layui-v2.5.6 MIT License By https://www.layui.com */\n ;!function(e){\"use strict\";var t=document,n={modules:{},status"
},
{
"path": "src/static/prism/prism.css",
"chars": 4126,
"preview": "/* http://prismjs.com/download.html?themes=prism-dark&languages=markup+css+clike+javascript+bash+c+java+python+sql&plugi"
},
{
"path": "src/static/prism/prism.js",
"chars": 22827,
"preview": "/* http://prismjs.com/download.html?themes=prism-dark&languages=markup+css+clike+javascript+bash+c+java+python+sql&plugi"
},
{
"path": "src/templates/404.html",
"chars": 2516,
"preview": "<!DOCTYPE html>\n<html class=\"no-js\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n\n\n\t<title>"
},
{
"path": "src/templates/blog/about.html",
"chars": 219,
"preview": "{% extends \"blog/base.html\" %}\n\n{% block title %}\n <title>AboutMe - 烂笔头</title>\n{% endblock %}\n\n{% block content %}\n "
},
{
"path": "src/templates/blog/archive.html",
"chars": 1830,
"preview": "{% extends \"blog/base.html\" %}\n\n{% block title %}\n <title>文章归档|烂笔头</title>\n{% endblock %}\n\n{% block css %}\n <link "
},
{
"path": "src/templates/blog/base.html",
"chars": 2244,
"preview": "<!doctype html>\n<html>\n<head>\n\n {% block title %}\n <title>烂笔头 - j_hao104的博客</title>\n {% endblock %}\n\n {%"
},
{
"path": "src/templates/blog/blogroll.html",
"chars": 458,
"preview": "<!--友情链接-->\n<div class=\"side-link animation-div\">\n <h4 class=\"index-title\"><i class=\"el-paper-clip\"></i>友情链接\n "
},
{
"path": "src/templates/blog/category.html",
"chars": 798,
"preview": "{% extends \"blog/base.html\" %}\n\n{% block title %}\n <title>分类:{{ category }} - 烂笔头</title>\n{% endblock %}\n\n{% block co"
},
{
"path": "src/templates/blog/component/auto_push_baidu.html",
"chars": 498,
"preview": "<script>\n // 自动提交链接到百度 start\n (function () {\n let bp = document.createElement('script');\n let curPro"
},
{
"path": "src/templates/blog/component/blog_list.html",
"chars": 1733,
"preview": "<div class=\"arclist\">\n <ul>\n {% for blog in blogs %}\n {% if id %}\n <li id=\"{{ id }}\""
},
{
"path": "src/templates/blog/component/changyan.html",
"chars": 1912,
"preview": "<!--PC和WAP自适应版-->\n<div id=\"SOHUCS\" sid=\"{{ source_id }}\"></div>\n<script type=\"text/javascript\">\n (function () {\n "
},
{
"path": "src/templates/blog/component/pagination.html",
"chars": 960,
"preview": "<div class=\"pagination\">\n <div class=\"list-page\">\n <ul class=\"post-data\">\n <li><a>第 {{ pages.curren"
},
{
"path": "src/templates/blog/detail.html",
"chars": 6281,
"preview": "{% extends \"blog/base.html\" %}\n{% load custom_filter %}\n\n{% block title %}\n <title>{{ blog.title }} - 烂笔头</title>\n{% "
},
{
"path": "src/templates/blog/footer.html",
"chars": 425,
"preview": "<footer>\n <!--底部导航-->\n <div class=\"foot-nav\">\n <div class=\"copy-right\"><span>CopyRight © 2015-2020 j_h"
},
{
"path": "src/templates/blog/header.html",
"chars": 3778,
"preview": "<header class=\"myheader\">\n <div class=\"top\">\n <!--头像左边部分-->\n <div class=\"top-left\">\n <div cl"
},
{
"path": "src/templates/blog/index.html",
"chars": 2827,
"preview": "{% extends \"blog/base.html\" %}\n\n{% block css %}\n <link rel=\"stylesheet\" href=\"/static/css/flexslider.css\"/>\n{% endblo"
},
{
"path": "src/templates/blog/link.html",
"chars": 215,
"preview": "{% extends \"blog/base.html\" %}\n\n{% block title %}\n <title>链接 - 烂笔头 </title>\n{% endblock %}\n\n{% block content %}\n <"
},
{
"path": "src/templates/blog/list.html",
"chars": 509,
"preview": "{% extends \"blog/base.html\" %}\n{% load custom_filter %}\n\n{% block title %}\n <title>博客列表|烂笔头</title>\n{% endblock %}\n\n{"
},
{
"path": "src/templates/blog/message.html",
"chars": 193,
"preview": "<h3 class=\"form-btn blue-text\"><a href=\"javascript:;\"><i class=\"el-edit\"></i>我要留言 / 展开表单</a></h3>\n<div id=\"Coon\" class=\""
},
{
"path": "src/templates/blog/message_board.html",
"chars": 218,
"preview": "{% extends \"blog/base.html\" %}\n\n{% block title %}\n <title>留言板|烂笔头</title>\n{% endblock %}\n\n{% block content %}\n\n <s"
},
{
"path": "src/templates/blog/right.html",
"chars": 5831,
"preview": "<aside class=\"myaside\">\n\n <!--关注我-->\n <div class=\"focus-me bg-color animation-div\">\n <h4 class=\"index-title"
},
{
"path": "src/templates/blog/search.html",
"chars": 2016,
"preview": "{% extends \"blog/base.html\" %}\n\n{% block title %}\n <title>搜索:{{ key }} | 烂笔头</title>\n{% endblock %}\n\n{% block content"
},
{
"path": "src/templates/blog/tag.html",
"chars": 741,
"preview": "{% extends \"blog/base.html\" %}\n\n{% block title %}\n <title>标签:{{ tag }} - 烂笔头</title>\n{% endblock %}\n\n{% block content"
},
{
"path": "src/templates/robots.txt",
"chars": 118,
"preview": "User-agent: *\nAllow: /blog/detail/\nAllow: /blog/tag/\nAllow: /blog/article/\nSitemap: http://www.spiderpy.cn/sitemap.txt"
},
{
"path": "src/templates/sitemap.txt",
"chars": 1121,
"preview": "http://www.spiderpy.cn/blog/detail/1/\nhttp://www.spiderpy.cn/blog/detail/2/\nhttp://www.spiderpy.cn/blog/detail/3/\nhttp:/"
},
{
"path": "uwsgi_params",
"chars": 532,
"preview": "uwsgi_param\tQUERY_STRING\t\t$query_string;\nuwsgi_param\tREQUEST_METHOD\t\t$request_method;\nuwsgi_param\tCONTENT_TYPE\t\t$content"
}
]
// ... and 2 more files (download for full content)
About this extraction
This page contains the full source code of the jhao104/django-blog GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 84 files (884.8 KB), approximately 293.5k tokens, and a symbol index with 300 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.