├── README.md └── blog ├── flask-blog ├── API │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ ├── archive.cpython-36.pyc │ │ ├── arctype.cpython-36.pyc │ │ ├── auth.cpython-36.pyc │ │ ├── base.cpython-36.pyc │ │ ├── comment.cpython-36.pyc │ │ ├── config.cpython-36.pyc │ │ ├── database.cpython-36.pyc │ │ ├── front.cpython-36.pyc │ │ ├── login_log.cpython-36.pyc │ │ ├── port.cpython-36.pyc │ │ ├── test.cpython-36.pyc │ │ └── user.cpython-36.pyc │ ├── archive.py │ ├── arctype.py │ ├── auth.py │ ├── base.py │ ├── comment.py │ ├── config.py │ ├── database.py │ ├── front.py │ ├── login_log.py │ ├── port.py │ ├── test.py │ └── user.py ├── __pycache__ │ ├── app.cpython-36.pyc │ └── config.cpython-36.pyc ├── app.py ├── config.py ├── database │ ├── backup │ │ ├── 20180911114123 │ │ │ └── blog.sql │ │ └── 20180911190255 │ │ │ └── blog.sql │ └── blog.sql ├── logs │ ├── error-20180818.log │ ├── error-20180819.log │ ├── error-20180820.log │ ├── error-20180821.log │ ├── error-20180822.log │ ├── error-20180823.log │ ├── error-20180824.log │ ├── error-20180825.log │ ├── error-20180826.log │ ├── error-20180827.log │ ├── error-20180828.log │ ├── error-20180829.log │ ├── error-20180830.log │ ├── error-20180831.log │ ├── error-20180901.log │ ├── error-20180904.log │ ├── error-20180905.log │ ├── error-20180906.log │ ├── error-20180907.log │ ├── error-20180908.log │ ├── error-20180909.log │ ├── error-20180910.log │ ├── error-20180911.log │ ├── info-20180818.log │ ├── info-20180819.log │ ├── info-20180820.log │ ├── info-20180821.log │ ├── info-20180822.log │ ├── info-20180823.log │ ├── info-20180824.log │ ├── info-20180825.log │ ├── info-20180826.log │ ├── info-20180827.log │ ├── info-20180828.log │ ├── info-20180829.log │ ├── info-20180830.log │ ├── info-20180831.log │ ├── info-20180901.log │ ├── info-20180904.log │ ├── info-20180905.log │ ├── info-20180906.log │ ├── info-20180907.log │ ├── info-20180908.log │ ├── info-20180909.log │ ├── info-20180910.log │ └── info-20180911.log ├── model │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ ├── archive.cpython-36.pyc │ │ ├── arctype.cpython-36.pyc │ │ ├── comment.cpython-36.pyc │ │ ├── config.cpython-36.pyc │ │ ├── port.cpython-36.pyc │ │ └── user.cpython-36.pyc │ ├── archive.py │ ├── arctype.py │ ├── blog.sql │ ├── comment.py │ ├── config.py │ ├── port.py │ └── user.py ├── requirements.txt ├── run.py ├── uploads │ └── images │ │ ├── 367958c8bde938df5099163731cabae2a5cb03e9.jpg │ │ ├── 64c802693adb72e8f2147b780d93e7459ccd60a6.jpg │ │ └── ea4ae75adb62bfdb71287b464b878ce8fcc02a39.jpg └── utils │ ├── __init__.py │ ├── __pycache__ │ ├── __init__.cpython-36.pyc │ ├── file.cpython-36.pyc │ ├── logger.cpython-36.pyc │ └── mysql.cpython-36.pyc │ ├── captcha │ ├── Session.py │ ├── VerifyCode.py │ ├── __pycache__ │ │ └── VerifyCode.cpython-36.pyc │ ├── fonts │ │ └── monaco.ttf │ └── test.py │ ├── crypto │ ├── RSA.py │ ├── __pycache__ │ │ └── RSA.cpython-36.pyc │ ├── private.pem │ └── public.pem │ ├── file.py │ ├── logger.py │ ├── mysql.py │ └── test.py └── vue-blog ├── index.html └── static ├── css ├── app.62793ef559803a445a536cc37124d87a.css └── app.62793ef559803a445a536cc37124d87a.css.map ├── fonts ├── element-icons.6f0a763.ttf ├── fontawesome-webfont.674f50d.eot ├── fontawesome-webfont.af7ae50.woff2 ├── fontawesome-webfont.b06871f.ttf ├── fontawesome-webfont.fee66e7.woff ├── fontello.068ca2b.ttf ├── fontello.e73a064.eot ├── glyphicons-halflings-regular.448c34a.woff2 ├── glyphicons-halflings-regular.e18bbf6.ttf ├── glyphicons-halflings-regular.f4769f9.eot └── glyphicons-halflings-regular.fa27723.woff ├── global ├── bootstrap │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── bootstrap.min.js │ └── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 ├── datatables │ ├── dataTables.bootstrap4.min.css │ └── dataTables.bootstrap4.min.js ├── font-awesome │ ├── font-awesome.min.css │ └── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── fontawesome-webfont.woff2 │ │ └── monaco.ttf ├── highlight │ ├── CHANGES.md │ ├── LICENSE │ ├── README.md │ ├── README.ru.md │ ├── highlight.pack.js │ └── styles │ │ ├── agate.css │ │ ├── androidstudio.css │ │ ├── arduino-light.css │ │ ├── arta.css │ │ ├── ascetic.css │ │ ├── atelier-cave-dark.css │ │ ├── atelier-cave-light.css │ │ ├── atelier-dune-dark.css │ │ ├── atelier-dune-light.css │ │ ├── atelier-estuary-dark.css │ │ ├── atelier-estuary-light.css │ │ ├── atelier-forest-dark.css │ │ ├── atelier-forest-light.css │ │ ├── atelier-heath-dark.css │ │ ├── atelier-heath-light.css │ │ ├── atelier-lakeside-dark.css │ │ ├── atelier-lakeside-light.css │ │ ├── atelier-plateau-dark.css │ │ ├── atelier-plateau-light.css │ │ ├── atelier-savanna-dark.css │ │ ├── atelier-savanna-light.css │ │ ├── atelier-seaside-dark.css │ │ ├── atelier-seaside-light.css │ │ ├── atelier-sulphurpool-dark.css │ │ ├── atelier-sulphurpool-light.css │ │ ├── atom-one-dark.css │ │ ├── atom-one-light.css │ │ ├── brown-paper.css │ │ ├── brown-papersq.png │ │ ├── codepen-embed.css │ │ ├── color-brewer.css │ │ ├── darcula.css │ │ ├── dark.css │ │ ├── darkula.css │ │ ├── default.css │ │ ├── docco.css │ │ ├── dracula.css │ │ ├── far.css │ │ ├── foundation.css │ │ ├── github-gist.css │ │ ├── github.css │ │ ├── googlecode.css │ │ ├── grayscale.css │ │ ├── gruvbox-dark.css │ │ ├── gruvbox-light.css │ │ ├── hopscotch.css │ │ ├── hybrid.css │ │ ├── idea.css │ │ ├── ir-black.css │ │ ├── kimbie.dark.css │ │ ├── kimbie.light.css │ │ ├── magula.css │ │ ├── mono-blue.css │ │ ├── monokai-sublime.css │ │ ├── monokai.css │ │ ├── obsidian.css │ │ ├── ocean.css │ │ ├── paraiso-dark.css │ │ ├── paraiso-light.css │ │ ├── pojoaque.css │ │ ├── pojoaque.jpg │ │ ├── purebasic.css │ │ ├── qtcreator_dark.css │ │ ├── qtcreator_light.css │ │ ├── railscasts.css │ │ ├── rainbow.css │ │ ├── routeros.css │ │ ├── school-book.css │ │ ├── school-book.png │ │ ├── solarized-dark.css │ │ ├── solarized-light.css │ │ ├── sunburst.css │ │ ├── tomorrow-night-blue.css │ │ ├── tomorrow-night-bright.css │ │ ├── tomorrow-night-eighties.css │ │ ├── tomorrow-night.css │ │ ├── tomorrow.css │ │ ├── vs.css │ │ ├── vs2015.css │ │ ├── xcode.css │ │ ├── xt256.css │ │ └── zenburn.css ├── iCheck │ ├── blue.css │ ├── blue.png │ └── iCheck.js ├── jquery │ ├── jquery.cookie.js │ └── jsencrypt.min.js ├── select2 │ ├── i18n │ │ └── en.js │ ├── select2.min.css │ ├── select2.min.js │ └── zh-CN.js └── toastr │ ├── toastr.min.css │ └── toastr.min.js ├── img ├── boxed-bg.7799dec.jpg ├── fontawesome-webfont.912ec66.svg ├── fontello.9354499.svg ├── glyphicons-halflings-regular.8988968.svg ├── wechat.9e130ba.png └── zfb.c2b5c3b.jpg ├── js ├── 0.c6ebf7569909aef65508.js ├── 0.c6ebf7569909aef65508.js.map ├── 1.11bc3ad22d3dd7d98dff.js ├── 1.11bc3ad22d3dd7d98dff.js.map ├── 10.9cf1cce798bf37e8536b.js ├── 10.9cf1cce798bf37e8536b.js.map ├── 11.b87b765c8b6aa7716c2c.js ├── 11.b87b765c8b6aa7716c2c.js.map ├── 12.8ab07ed8b3733cea4516.js ├── 12.8ab07ed8b3733cea4516.js.map ├── 13.b1a2de28eebf96ec31cc.js ├── 13.b1a2de28eebf96ec31cc.js.map ├── 14.4d0deea567b245e630c5.js ├── 14.4d0deea567b245e630c5.js.map ├── 15.2928c74afedc7faf771b.js ├── 15.2928c74afedc7faf771b.js.map ├── 16.4770713d1d999a2c66b0.js ├── 16.4770713d1d999a2c66b0.js.map ├── 17.5085b6949865fa171107.js ├── 17.5085b6949865fa171107.js.map ├── 18.2a1f926af04e742e90bd.js ├── 18.2a1f926af04e742e90bd.js.map ├── 19.3778d46c65a7dc83786e.js ├── 19.3778d46c65a7dc83786e.js.map ├── 2.3cb9f7b56c00e486b5c0.js ├── 2.3cb9f7b56c00e486b5c0.js.map ├── 20.f89e505b8c73d31a572a.js ├── 20.f89e505b8c73d31a572a.js.map ├── 21.059deb754458acd48823.js ├── 21.059deb754458acd48823.js.map ├── 22.e8e25134d38448f03816.js ├── 22.e8e25134d38448f03816.js.map ├── 23.04d87cd5b8549f762aa3.js ├── 23.04d87cd5b8549f762aa3.js.map ├── 24.a7994d10a546bd9c3f6b.js ├── 24.a7994d10a546bd9c3f6b.js.map ├── 25.6d129efdd840ec074431.js ├── 25.6d129efdd840ec074431.js.map ├── 26.64ebbd93dfcff469bc68.js ├── 26.64ebbd93dfcff469bc68.js.map ├── 27.119cc4a95e709dcf7bd7.js ├── 27.119cc4a95e709dcf7bd7.js.map ├── 3.2ed177cdf0988919c73a.js ├── 3.2ed177cdf0988919c73a.js.map ├── 4.0e9113c5ba2a8eab2fb0.js ├── 4.0e9113c5ba2a8eab2fb0.js.map ├── 5.36cc9977c0617a96b76b.js ├── 5.36cc9977c0617a96b76b.js.map ├── 6.6f33ff4d5e721868766b.js ├── 6.6f33ff4d5e721868766b.js.map ├── 7.1bfbd55143d9b0bcb633.js ├── 7.1bfbd55143d9b0bcb633.js.map ├── 8.803756345e6d4665d528.js ├── 8.803756345e6d4665d528.js.map ├── 9.f032ffa3e9e3cca98e9e.js ├── 9.f032ffa3e9e3cca98e9e.js.map ├── app.043cef7e2af004b6fc45.js ├── app.043cef7e2af004b6fc45.js.map ├── manifest.90c277ab15a8e6b49461.js ├── manifest.90c277ab15a8e6b49461.js.map ├── vendor.95788e762841657e76d5.js └── vendor.95788e762841657e76d5.js.map ├── system ├── dist │ ├── css │ │ ├── AdminLTE.min.css │ │ ├── skins │ │ │ ├── _all-skins.min.css │ │ │ ├── skin-blue.min.css │ │ │ └── skin.css │ │ └── style.css │ ├── img │ │ ├── boxed-bg.jpg │ │ ├── loading.gif │ │ └── no-image.png │ └── js │ │ ├── adminlte.min.js │ │ ├── app.js │ │ ├── app.min.js │ │ ├── common.js │ │ ├── html5shiv.min.js │ │ ├── login.js │ │ ├── pj.js │ │ ├── respond.min.js │ │ └── web_config.js └── slimScroll │ └── jquery.slimscroll.min.js └── uploads └── avatar └── header.jpg /README.md: -------------------------------------------------------------------------------- 1 | # vue-flask-blog 2 | 基于Vue-Flask实现的前后端分离博客 3 | # 在线访问地址 [vue-blog](http://47.107.42.56/) 4 | -------------------------------------------------------------------------------- /blog/flask-blog/API/__init__.py: -------------------------------------------------------------------------------- 1 | from API.user import user as userBlueprint 2 | from API.port import port as portBlueprint 3 | from API.test import test as testBlueprint 4 | from API.arctype import arctype as arctypeBlueprint 5 | from API.archive import archive as archiveBlueprint 6 | from API.front import front as frontBlueprint 7 | from API.comment import comment as commentBlueprint 8 | from API.config import config as configBlueprint 9 | from API.database import database as dbBlueprint 10 | from API.login_log import login_log as logBlueprint 11 | from API.auth import token_auth 12 | 13 | @token_auth 14 | def before_request(): 15 | pass 16 | 17 | # token_auth 视图 18 | userBlueprint.before_request(before_request) 19 | arctypeBlueprint.before_request(before_request) 20 | archiveBlueprint.before_request(before_request) 21 | commentBlueprint.before_request(before_request) 22 | configBlueprint.before_request(before_request) 23 | dbBlueprint.before_request(before_request) 24 | logBlueprint.before_request(before_request) -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/archive.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/archive.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/arctype.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/arctype.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/auth.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/auth.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/base.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/base.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/comment.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/comment.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/config.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/config.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/database.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/database.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/front.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/front.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/login_log.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/login_log.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/port.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/port.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/test.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/test.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/__pycache__/user.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/API/__pycache__/user.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/API/archive.py: -------------------------------------------------------------------------------- 1 | from flask import Blueprint, request 2 | from API.base import get_argument, respData 3 | from utils import upload, logger 4 | from model.archive import archive_model 5 | 6 | archive = Blueprint('archive', __name__, url_prefix='/api') 7 | 8 | # index page => get data list 9 | @archive.route('/archive/index', methods=['GET']) 10 | def index(): 11 | start = request.args.get('start', type=int) 12 | length = request.args.get('length', type=int) 13 | ret = archive_model.fetchList(start, length) 14 | return respData(**ret) 15 | 16 | # index page => delete data by id 17 | @archive.route('/archive/index', methods=['DELETE']) 18 | def remove(): 19 | uuid = get_argument('id') 20 | ret = archive_model.remove(uuid) 21 | return respData(**ret) 22 | 23 | # edit page => make post/put data 24 | def makeData(): 25 | up = None 26 | litpic = request.files.get('litpic') or get_argument('litpic') 27 | if not isinstance(litpic, str): 28 | up = upload(litpic) 29 | if up: litpic = up.file_name 30 | 31 | type_id = get_argument('type_id', type=int, required=True) 32 | data = dict( 33 | type_id = type_id, 34 | uid = get_argument('uid', type=int, required=True), 35 | title = get_argument('title', required=True), 36 | flag = get_argument('flag'), 37 | litpic = litpic, 38 | content = get_argument('content'), 39 | jumplink = '/detail/{}'.format(type_id), 40 | keywords = get_argument('keywords'), 41 | description = get_argument('description', required=True) 42 | ) 43 | return data, up 44 | 45 | # edit page post 46 | @archive.route('/archive', methods=['POST']) 47 | def post(): 48 | post_data, up = makeData() 49 | ret = archive_model.create(data=post_data, up=up) 50 | return respData(**ret) 51 | 52 | # edit page put 53 | @archive.route('/archive', methods=['PUT']) 54 | def put(): 55 | data, up = makeData() 56 | uuid = get_argument('id', type=int) 57 | ret = archive_model.edit(data, up, uuid) 58 | return respData(**ret) 59 | 60 | # edit page get 61 | @archive.route('/archive/', methods=['GET']) 62 | def fetchData(uuid): 63 | ret = archive_model.fetchData(uuid) 64 | return respData(**ret) -------------------------------------------------------------------------------- /blog/flask-blog/API/auth.py: -------------------------------------------------------------------------------- 1 | from flask import request, abort 2 | from utils import fetchRedis, rsa_verify, logger 3 | from model.user import auth_rule_model 4 | import functools, ast 5 | 6 | def auth(path:str, method:str, user_info:str): 7 | 8 | def verify(route_path:str): 9 | path_array = path.split('/') 10 | route_path_array = route_path.split('/') 11 | 12 | ret = True 13 | for pk, rk in zip(path_array, route_path_array): 14 | if pk != rk: ret = False 15 | return ret 16 | 17 | user_id = ast.literal_eval(user_info)['uid'] 18 | error = 'id={id}的用户不拥有此权限~'.format(id=user_id) 19 | 20 | # 开始验证权限 21 | # 1. 根据user_info 的 user_id 查询用户组id 22 | # 2. 根据group_id method 从tb_auth_rule表中获取routes [] 23 | routes = auth_rule_model.fetchRoutes(user_id, method) 24 | 25 | # 4. 匹配路由 26 | if routes is None: abort(403, error) 27 | # 4. 遍历路由列表进行匹配 28 | isOK = False 29 | for route in routes: 30 | if verify(route): 31 | isOK = True 32 | break 33 | if not isOK: abort(403, error) 34 | 35 | def token_auth(func): 36 | @functools.wraps(func) 37 | def check(*args, **kwargs): 38 | method = request.method 39 | path = request.path 40 | token = request.headers.get('Authorization') 41 | if token: 42 | # token = token.split(' ')[1] 43 | # 获取redis 44 | redis = fetchRedis() 45 | # 将字符串转dict 46 | user_info = redis.get(token) 47 | 48 | if user_info is None: abort(401, 'token已过期~ 请重新登陆!') 49 | 50 | # token 验证成功 ~ 51 | if rsa_verify(user_info, token): 52 | # 0. method : GET -> OK, POST/PUT/DELETE -> 检查权限 53 | if method != 'GET': 54 | # 验证权限 55 | auth(path, method,user_info) 56 | # 进入路由 57 | return func(*args, **kwargs) 58 | abort(401, 'token 验证失败~') 59 | return check -------------------------------------------------------------------------------- /blog/flask-blog/API/base.py: -------------------------------------------------------------------------------- 1 | from flask import jsonify, request, abort, make_response, Blueprint, Response 2 | from utils import logger, rsa_decrypt, fetchRedis, rsa_verify 3 | from config import STATUS 4 | 5 | def respData(code:int=STATUS.OK, error:str=None, data=None): 6 | resp = dict( 7 | code=code, 8 | error=error, 9 | data=data 10 | ) 11 | return jsonify(resp) 12 | 13 | 14 | 15 | def get_argument(key:str, type=None, default='', decrypt:bool=False, required=False, error:str=None): 16 | value = None 17 | 18 | if request.json: 19 | value = request.json.get(key) 20 | else: 21 | value = request.form.get(key) 22 | 23 | error = error or 'argument ({key}) is not exists !'.format(key=key) 24 | 25 | # key不存在 26 | if value is None: abort(400, error) 27 | 28 | # 验证是否存在 str:'' 400, int:0 正常 29 | if not value and required: 30 | 31 | if isinstance(value, str): 32 | abort(400, error) 33 | if isinstance(value, int): 34 | return value 35 | 36 | # 数据是否解密 37 | if decrypt: value = rsa_decrypt(value) 38 | 39 | # 数据转型 40 | if type: value = type(value) 41 | 42 | return value 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /blog/flask-blog/API/comment.py: -------------------------------------------------------------------------------- 1 | 2 | from flask import Blueprint, request 3 | from API.base import get_argument, respData, logger 4 | from model.comment import comment_model 5 | 6 | comment = Blueprint('comment', __name__, url_prefix='/api') 7 | 8 | 9 | @comment.route('/comment/archive/index', methods=['GET']) 10 | def fetchList(): 11 | start = request.args.get('start', type=int) 12 | length = request.args.get('length', type=int) 13 | ret = comment_model.fetchList(start, length, guestbook = False) 14 | return respData(**ret) 15 | 16 | @comment.route('/comment/guestBook/index', methods=['GET']) 17 | def fetchGuestBook(): 18 | start = request.args.get('start', type=int) 19 | length = request.args.get('length', type=int) 20 | ret = comment_model.fetchList(start, length, guestbook = True) 21 | return respData(**ret) 22 | 23 | @comment.route('/comment/', methods=['GET']) 24 | def fetchComment(uuid): 25 | ret = comment_model.fetchData(uuid) 26 | return respData(**ret) 27 | 28 | @comment.route('/comment/archive/index', methods=['DELETE']) 29 | def removeArchiveComment(): 30 | uuid = get_argument('id') 31 | ret = comment_model.remove(uuid) 32 | return respData(**ret) 33 | 34 | @comment.route('/comment/guestBook/index', methods=['DELETE']) 35 | def removeGuestBookComment(): 36 | uuid = get_argument('id') 37 | ret = comment_model.remove(uuid) 38 | return respData(**ret) 39 | 40 | @comment.route('/comment', methods=['POST']) 41 | def postComment(): 42 | postData = dict( 43 | pid=get_argument('reply_id'), 44 | type=get_argument('reply_type'), 45 | username=get_argument('reply_username'), 46 | content=get_argument('reply_content') 47 | ) 48 | 49 | putData = dict( 50 | id = get_argument('id'), 51 | status = get_argument('status'), 52 | content = get_argument('content') 53 | ) 54 | ret = comment_model.create(postData, putData,isAdmin=True) 55 | return respData(**ret) 56 | 57 | @comment.route('/comment/refstate', methods=['PUT']) 58 | def refStatus(): 59 | status = get_argument('status') 60 | uuid = get_argument('id') 61 | ret = comment_model.editStatus(uuid, status) 62 | return respData(**ret) -------------------------------------------------------------------------------- /blog/flask-blog/API/config.py: -------------------------------------------------------------------------------- 1 | from flask import Blueprint, request 2 | from model.config import config_model 3 | from API.base import respData, get_argument 4 | 5 | 6 | config = Blueprint('config', __name__, url_prefix='/api') 7 | 8 | @config.route('/config/index', methods=['GET']) 9 | def fetchList(): 10 | start = request.args.get('start', type=int) 11 | length = request.args.get('length', type=int) 12 | ret = config_model.fetchList(start, length) 13 | return respData(**ret) 14 | 15 | @config.route('/config/index', methods=['DELETE']) 16 | def removeConfig(): 17 | uuid = get_argument('id', default=0) 18 | ret = config_model.remove(uuid) 19 | return respData(**ret) 20 | 21 | @config.route('/config/', methods=['GET']) 22 | def fetchConfig(uuid): 23 | ret = config_model.fetchData(uuid) 24 | return respData(**ret) 25 | 26 | 27 | def makeData(): 28 | return dict( 29 | key = get_argument('key'), 30 | value = get_argument('value'), 31 | description = get_argument('description'), 32 | type = get_argument('type') 33 | ) 34 | 35 | @config.route('/config/', methods=['PUT']) 36 | def putConfig(uuid): 37 | data = makeData() 38 | ret = config_model.edit(uuid, data) 39 | return respData(**ret) 40 | 41 | 42 | @config.route('/config', methods=['POST']) 43 | def postConfig(): 44 | data = makeData() 45 | ret = config_model.create(data) 46 | return respData(**ret) -------------------------------------------------------------------------------- /blog/flask-blog/API/database.py: -------------------------------------------------------------------------------- 1 | from flask import Blueprint, request, send_file 2 | from config import STATUS 3 | from API.base import get_argument, respData 4 | from model.port import database_model 5 | 6 | database = Blueprint('database', __name__, url_prefix='/api') 7 | 8 | 9 | @database.route('/database/index', methods=['GET']) 10 | def fetchDataBases(): 11 | ret = database_model.fetchData() 12 | return respData(**ret) 13 | 14 | @database.route('/database/backup', methods=['POST']) 15 | def dbBackup(): 16 | table_list = get_argument('table_list') 17 | ret = database_model.dbBackup(table_list) 18 | return respData(**ret) 19 | 20 | @database.route('/database/backup', methods=['GET']) 21 | def fetchBackup(): 22 | ret = database_model.fetchBackup() 23 | return respData(**ret) 24 | 25 | @database.route('/database/backup/recovery/', methods=['PUT']) 26 | def backupRecovery(timestamp): 27 | ret = database_model.dbRecovery(timestamp) 28 | return respData(**ret) 29 | 30 | @database.route('/database/backup', methods=['DELETE']) 31 | def removeBackup(): 32 | timestamp = get_argument('id') 33 | ret = database_model.removeBackup(timestamp) 34 | return respData(**ret) -------------------------------------------------------------------------------- /blog/flask-blog/API/login_log.py: -------------------------------------------------------------------------------- 1 | from flask import Blueprint, request 2 | from API.base import respData, get_argument 3 | from model.port import login_log_model 4 | 5 | login_log = Blueprint('login_log', __name__, url_prefix='/api') 6 | 7 | 8 | 9 | @login_log.route('/login_log/index', methods=['GET']) 10 | def fetchLoginLog(): 11 | start = request.args.get('start', type=int) 12 | length = request.args.get('length', type=int) 13 | ret = login_log_model.fetchList(start, length) 14 | return respData(**ret) 15 | 16 | @login_log.route('/login_log/index', methods=['DELETE']) 17 | def removeLoginLog(): 18 | pk = get_argument('id') 19 | ret = login_log_model.remove(pk) 20 | return respData(**ret) -------------------------------------------------------------------------------- /blog/flask-blog/API/test.py: -------------------------------------------------------------------------------- 1 | 2 | from flask import Blueprint, request, abort, jsonify, Response 3 | from utils import logger 4 | import random 5 | from API.base import get_argument, respData 6 | test = Blueprint('test',__name__, url_prefix='/api') 7 | 8 | @test.route('/test', methods=['GET']) 9 | def test_index(): 10 | print(request.remote_addr) 11 | return 'get' 12 | 13 | @test.route('/test', methods=['POST']) 14 | def test_post(): 15 | 16 | return 'post' 17 | 18 | @test.route('/test', methods=['PUT']) 19 | def test_put(): 20 | 21 | return 'put' 22 | 23 | @test.route('/test/', methods=['DELETE']) 24 | def test_del(id): 25 | 26 | return 'del' 27 | -------------------------------------------------------------------------------- /blog/flask-blog/__pycache__/app.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/__pycache__/app.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/__pycache__/config.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/__pycache__/config.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/app.py: -------------------------------------------------------------------------------- 1 | 2 | from flask import Flask,Blueprint 3 | from flask_session import Session 4 | import config 5 | import API 6 | 7 | def add_routes(flask): 8 | for attr in dir(API): 9 | if attr.startswith('_'): 10 | continue 11 | 12 | val = getattr(API, attr) 13 | 14 | if isinstance(val, Blueprint): 15 | flask.register_blueprint(val) 16 | return flask 17 | 18 | def before_first_request(): 19 | print('before_first_request') 20 | 21 | def before_request(): 22 | print('before_request') 23 | 24 | def after_request(params): 25 | print('...') 26 | return params 27 | 28 | def create_app(): 29 | flask = Flask(__name__) 30 | flask.config.from_object(config) 31 | flask = add_routes(flask) 32 | # flask.before_first_request(before_first_request) 33 | # flask.before_request(before_request) 34 | # flask.after_request(after_request) 35 | 36 | Session(flask) 37 | return flask 38 | 39 | app = create_app() 40 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180820.log: -------------------------------------------------------------------------------- 1 | 2018-08-20 03:52:25,281 - __init__.py[line:16] - ERROR: 'builtin_function_or_method' object has no attribute 'translate' 2 | 2018-08-20 03:52:43,506 - __init__.py[line:16] - ERROR: 'builtin_function_or_method' object has no attribute 'translate' 3 | 2018-08-20 03:53:45,708 - __init__.py[line:16] - ERROR: 'builtin_function_or_method' object has no attribute 'translate' 4 | 2018-08-20 03:54:04,683 - __init__.py[line:16] - ERROR: 'builtin_function_or_method' object has no attribute 'translate' 5 | 2018-08-20 03:54:25,282 - __init__.py[line:16] - ERROR: 'builtin_function_or_method' object has no attribute 'translate' 6 | 2018-08-20 03:54:31,938 - __init__.py[line:16] - ERROR: 'builtin_function_or_method' object has no attribute 'translate' 7 | 2018-08-20 03:55:15,866 - __init__.py[line:16] - ERROR: 'builtin_function_or_method' object has no attribute 'translate' 8 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180821.log: -------------------------------------------------------------------------------- 1 | 2018-08-21 00:38:46,212 - __init__.py[line:16] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from tb_arctype' at line 1") 2 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180822.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/logs/error-20180822.log -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180823.log: -------------------------------------------------------------------------------- 1 | 2018-08-23 18:11:56,267 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 2 | 2018-08-23 18:12:17,850 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 3 | 2018-08-23 18:12:18,739 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 4 | 2018-08-23 18:12:29,509 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 5 | 2018-08-23 18:12:30,823 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 6 | 2018-08-23 18:16:51,664 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 7 | 2018-08-23 18:16:53,423 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 8 | 2018-08-23 18:16:55,088 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 9 | 2018-08-23 18:18:08,876 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 10 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180824.log: -------------------------------------------------------------------------------- 1 | 2018-08-24 03:30:23,735 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 2 | 2018-08-24 03:31:45,482 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 3 | 2018-08-24 03:33:00,454 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 4 | 2018-08-24 03:33:02,691 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 5 | 2018-08-24 03:33:18,525 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 6 | 2018-08-24 03:34:08,887 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 7 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180825.log: -------------------------------------------------------------------------------- 1 | 2018-08-25 09:35:29,078 - mysql.py[line:14] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL,NULL' at line 1") 2 | 2018-08-25 09:48:20,471 - mysql.py[line:14] - ERROR: 'tuple' object has no attribute 'extend' 3 | 2018-08-25 09:48:57,951 - mysql.py[line:14] - ERROR: 'tuple' object has no attribute 'extend' 4 | 2018-08-25 09:49:23,514 - mysql.py[line:14] - ERROR: 'tuple' object has no attribute 'extend' 5 | 2018-08-25 09:50:12,285 - mysql.py[line:14] - ERROR: 'tuple' object has no attribute 'extend' 6 | 2018-08-25 09:50:39,203 - mysql.py[line:14] - ERROR: 'tuple' object has no attribute 'extend' 7 | 2018-08-25 09:50:59,329 - mysql.py[line:14] - ERROR: 'tuple' object has no attribute 'extend' 8 | 2018-08-25 09:51:49,995 - mysql.py[line:14] - ERROR: 'tuple' object has no attribute 'extend' 9 | 2018-08-25 09:52:21,001 - mysql.py[line:14] - ERROR: 'tuple' object has no attribute 'extend' 10 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180828.log: -------------------------------------------------------------------------------- 1 | 2018-08-28 08:53:44,157 - mysql.py[line:14] - ERROR: (1054, "Unknown column 'tb_auth_user_group.uuid' in 'field list'") 2 | 2018-08-28 08:54:02,178 - mysql.py[line:14] - ERROR: (1364, "Field 'create_time' doesn't have a default value") 3 | 2018-08-28 08:54:15,145 - mysql.py[line:14] - ERROR: (1062, "Duplicate entry '1-1' for key 'PRIMARY'") 4 | 2018-08-28 09:21:42,204 - mysql.py[line:14] - ERROR: (1054, "Unknown column 'c.name' in 'field list'") 5 | 2018-08-28 09:37:13,783 - mysql.py[line:14] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.username, b.group_id FROM tb_user AS a LEFT JOIN tb_auth_user_group as b ON a.i' at line 1") 6 | 2018-08-28 09:37:43,519 - mysql.py[line:14] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.username, b.group_id FROM tb_user AS a LEFT JOIN tb_auth_user_group as b ON a.i' at line 1") 7 | 2018-08-28 09:38:01,087 - mysql.py[line:14] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.username, b.group_id FROM tb_user AS a LEFT JOIN tb_auth_user_group as b ON a.i' at line 1") 8 | 2018-08-28 09:38:23,330 - mysql.py[line:14] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.username, b.group_id FROM tb_user AS a LEFT JOIN tb_auth_user_group as b ON a.i' at line 1") 9 | 2018-08-28 09:38:55,320 - mysql.py[line:14] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.username, b.group_id FROM tb_user AS a LEFT JOIN tb_auth_user_group as b ON a.i' at line 1") 10 | 2018-08-28 09:40:18,926 - mysql.py[line:14] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.username, b.group_id FROM tb_user AS a LEFT JOIN tb_auth_user_group as b ON a.i' at line 1") 11 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180829.log: -------------------------------------------------------------------------------- 1 | 2018-08-29 03:51:55,424 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 2 | 2018-08-29 03:52:17,500 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 3 | 2018-08-29 03:53:54,576 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 4 | 2018-08-29 03:53:58,431 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 5 | 2018-08-29 03:54:07,144 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 6 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180830.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/logs/error-20180830.log -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180831.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/logs/error-20180831.log -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180901.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/logs/error-20180901.log -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180904.log: -------------------------------------------------------------------------------- 1 | 2018-09-04 22:08:08,798 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table} set `views`=`views`+1 WHERE `id`=74' at line 1") 2 | 2018-09-04 22:08:17,560 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table} set `views`=`views`+1 WHERE `id`=74' at line 1") 3 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180905.log: -------------------------------------------------------------------------------- 1 | 2018-09-05 00:59:28,388 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select table_name,table_rows from tables where TABLE_SCHEMA = 'learn' order by t' at line 1") 2 | 2018-09-05 01:00:03,845 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select table_name,table_rows from tables where TABLE_SCHEMA = `learn` order by t' at line 1") 3 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180906.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/logs/error-20180906.log -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180908.log: -------------------------------------------------------------------------------- 1 | 2018-09-08 19:39:14,174 - mysql.py[line:15] - ERROR: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`learn`.`tb_comment`, CONSTRAINT `FK_comment_archive_r` FOREIGN KEY (`type`) REFERENCES `tb_archive` (`id`) ON UPDATE SET NULL)') 2 | 2018-09-08 19:39:55,345 - mysql.py[line:15] - ERROR: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`learn`.`tb_comment`, CONSTRAINT `FK_comment_archive_r` FOREIGN KEY (`type`) REFERENCES `tb_archive` (`id`) ON UPDATE SET NULL)') 3 | 2018-09-08 20:22:06,257 - mysql.py[line:15] - ERROR: (1052, "Column 'type' in where clause is ambiguous") 4 | 2018-09-08 20:33:59,146 - mysql.py[line:15] - ERROR: unsupported operand type(s) for %: 'int' and 'tuple' 5 | 2018-09-08 20:34:01,343 - mysql.py[line:15] - ERROR: unsupported operand type(s) for %: 'int' and 'tuple' 6 | 2018-09-08 20:34:48,644 - mysql.py[line:15] - ERROR: unsupported operand type(s) for %: 'int' and 'tuple' 7 | 2018-09-08 20:35:15,822 - mysql.py[line:15] - ERROR: unsupported operand type(s) for %: 'int' and 'tuple' 8 | 2018-09-08 20:35:40,220 - mysql.py[line:15] - ERROR: unsupported operand type(s) for %: 'int' and 'tuple' 9 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180909.log: -------------------------------------------------------------------------------- 1 | 2018-09-09 03:07:13,154 - mysql.py[line:15] - ERROR: (1054, "Unknown column 'tb_arctype.mid' in 'field list'") 2 | 2018-09-09 03:07:15,753 - mysql.py[line:15] - ERROR: (1054, "Unknown column 'tb_arctype.mid' in 'field list'") 3 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180910.log: -------------------------------------------------------------------------------- 1 | 2018-09-10 20:12:54,014 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0', '10'' at line 1") 2 | 2018-09-10 20:13:35,996 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0', '10'' at line 1") 3 | 2018-09-10 21:56:20,154 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1") 4 | 2018-09-10 21:56:39,769 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1") 5 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/error-20180911.log: -------------------------------------------------------------------------------- 1 | 2018-09-11 01:36:11,792 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'count(*) AS archive_num FROM tb_archive AS a LEFT JOIN tb_arctype AS b ON a.type' at line 1") 2 | 2018-09-11 01:36:19,507 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'count(*) AS archive_num FROM tb_archive AS a LEFT JOIN tb_arctype AS b ON a.type' at line 1") 3 | 2018-09-11 01:36:37,890 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'count(*) AS archive_num FROM tb_archive AS a LEFT JOIN tb_arctype AS b ON a.type' at line 1") 4 | 2018-09-11 02:10:02,477 - mysql.py[line:15] - ERROR: (1146, "Table 'blog.tb_user_info' doesn't exist") 5 | 2018-09-11 02:10:05,231 - mysql.py[line:15] - ERROR: (1146, "Table 'blog.tb_user_info' doesn't exist") 6 | 2018-09-11 02:10:30,567 - mysql.py[line:15] - ERROR: (1146, "Table 'blog.tb_user_info' doesn't exist") 7 | 2018-09-11 02:10:31,650 - mysql.py[line:15] - ERROR: (1146, "Table 'blog.tb_user_info' doesn't exist") 8 | 2018-09-11 02:24:20,721 - mysql.py[line:15] - ERROR: (1305, 'PROCEDURE blog.init_index does not exist') 9 | 2018-09-11 02:25:29,754 - mysql.py[line:15] - ERROR: (1305, 'PROCEDURE blog.init_index does not exist') 10 | 2018-09-11 03:07:03,206 - mysql.py[line:15] - ERROR: (1366, "Incorrect integer value: '' for column 'pid' at row 1") 11 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/info-20180822.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/logs/info-20180822.log -------------------------------------------------------------------------------- /blog/flask-blog/logs/info-20180829.log: -------------------------------------------------------------------------------- 1 | 2018-08-29 02:28:15,893 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 2 | 2018-08-29 02:51:38,775 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 3 | 2018-08-29 02:54:15,634 - mysql.py[line:310] - INFO: Successful insertion 1 data 4 | 2018-08-29 02:55:04,668 - mysql.py[line:310] - INFO: Successful insertion 1 data 5 | 2018-08-29 02:56:26,123 - mysql.py[line:148] - INFO: Execute the stored procedure ! 6 | 2018-08-29 02:56:30,544 - mysql.py[line:148] - INFO: Execute the stored procedure ! 7 | 2018-08-29 02:56:32,532 - mysql.py[line:148] - INFO: Execute the stored procedure ! 8 | 2018-08-29 02:56:34,819 - mysql.py[line:148] - INFO: Execute the stored procedure ! 9 | 2018-08-29 02:59:22,950 - mysql.py[line:227] - INFO: Data updated successfully 1 10 | 2018-08-29 02:59:22,982 - mysql.py[line:310] - INFO: Successful insertion 7 data 11 | 2018-08-29 03:51:50,442 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 12 | 2018-08-29 03:51:55,424 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 13 | 2018-08-29 03:52:17,500 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 14 | 2018-08-29 03:53:54,576 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 15 | 2018-08-29 03:53:58,431 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 16 | 2018-08-29 03:54:07,144 - mysql.py[line:14] - ERROR: not all arguments converted during string formatting 17 | 2018-08-29 03:55:13,182 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 18 | 2018-08-29 03:59:00,230 - mysql.py[line:310] - INFO: Successful insertion 1 data 19 | 2018-08-29 04:02:18,019 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 20 | 2018-08-29 04:02:25,147 - mysql.py[line:172] - INFO: Deleted successfully 1 data 21 | 2018-08-29 04:02:40,877 - mysql.py[line:172] - INFO: Deleted successfully 2 data 22 | 2018-08-29 10:54:56,771 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 23 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/info-20180830.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/logs/info-20180830.log -------------------------------------------------------------------------------- /blog/flask-blog/logs/info-20180831.log: -------------------------------------------------------------------------------- 1 | 2018-08-31 19:46:11,378 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 2 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/info-20180904.log: -------------------------------------------------------------------------------- 1 | 2018-09-04 18:39:45,284 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 2 | 2018-09-04 21:08:12,702 - mysql.py[line:311] - INFO: Successful insertion 1 data 3 | 2018-09-04 21:10:59,166 - mysql.py[line:311] - INFO: Successful insertion 1 data 4 | 2018-09-04 21:12:46,354 - mysql.py[line:311] - INFO: Successful insertion 1 data 5 | 2018-09-04 21:16:08,322 - mysql.py[line:311] - INFO: Successful insertion 1 data 6 | 2018-09-04 21:18:22,887 - mysql.py[line:311] - INFO: Successful insertion 1 data 7 | 2018-09-04 21:20:37,819 - mysql.py[line:311] - INFO: Successful insertion 1 data 8 | 2018-09-04 21:23:59,810 - mysql.py[line:311] - INFO: Successful insertion 1 data 9 | 2018-09-04 21:24:18,292 - mysql.py[line:311] - INFO: Successful insertion 1 data 10 | 2018-09-04 21:30:41,235 - mysql.py[line:311] - INFO: Successful insertion 1 data 11 | 2018-09-04 21:49:07,263 - mysql.py[line:311] - INFO: Successful insertion 1 data 12 | 2018-09-04 22:08:04,938 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 13 | 2018-09-04 22:08:08,798 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table} set `views`=`views`+1 WHERE `id`=74' at line 1") 14 | 2018-09-04 22:08:17,560 - mysql.py[line:15] - ERROR: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table} set `views`=`views`+1 WHERE `id`=74' at line 1") 15 | 2018-09-04 22:08:45,440 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 16 | 2018-09-04 22:13:09,912 - mysql.py[line:311] - INFO: Successful insertion 1 data 17 | 2018-09-04 22:14:28,232 - mysql.py[line:149] - INFO: Execute the stored procedure ! 18 | 2018-09-04 22:14:41,216 - mysql.py[line:149] - INFO: Execute the stored procedure ! 19 | 2018-09-04 22:14:41,239 - mysql.py[line:311] - INFO: Successful insertion 1 data 20 | 2018-09-04 22:26:54,212 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 21 | 2018-09-05 00:44:06,486 - mysql.py[line:311] - INFO: Successful insertion 1 data 22 | 2018-09-05 01:35:25,829 - mysql.py[line:311] - INFO: Successful insertion 1 data 23 | -------------------------------------------------------------------------------- /blog/flask-blog/logs/info-20180906.log: -------------------------------------------------------------------------------- 1 | 2018-09-06 00:06:48,154 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 2 | 2018-09-06 00:07:35,700 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 3 | 2018-09-06 00:21:44,297 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 4 | 2018-09-06 19:52:50,494 - run.py[line:10] - INFO: server is started at http://127.0.0.1:8888 5 | -------------------------------------------------------------------------------- /blog/flask-blog/model/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | from utils import MySQL 3 | from config import STATUS 4 | 5 | class Model(MySQL): 6 | 7 | @staticmethod 8 | def respData(code: int = STATUS.OK, error: str = None, data=None): 9 | return dict( 10 | code=code, 11 | error=error, 12 | data=data 13 | ) 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /blog/flask-blog/model/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/model/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/model/__pycache__/archive.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/model/__pycache__/archive.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/model/__pycache__/arctype.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/model/__pycache__/arctype.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/model/__pycache__/comment.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/model/__pycache__/comment.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/model/__pycache__/config.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/model/__pycache__/config.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/model/__pycache__/port.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/model/__pycache__/port.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/model/__pycache__/user.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/model/__pycache__/user.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/model/config.py: -------------------------------------------------------------------------------- 1 | from model import Model 2 | from config import STATUS 3 | from utils import logger 4 | 5 | 6 | class Config(Model): 7 | __tablename__ = 'tb_config' 8 | 9 | def fetchList(self, start, length): 10 | sql = 'select * from {table} LIMIT %s, %s'.format(table=self.__tablename__) 11 | ret = self.paging(sql, start, length) 12 | return self.respData(data=ret) 13 | 14 | def remove(self, uuid): 15 | ret = self.delete(uuid) 16 | 17 | if ret: 18 | return self.respData(STATUS.OK, error='删除配置字段~') 19 | return self.respData(STATUS.DARA_DELETE_ERR, error='配置删除失败~') 20 | 21 | def fetchData(self, uuid): 22 | sql = 'select * from {table} WHERE `id`=%s'.format(table=self.__tablename__) 23 | ret = self.select(sql, uuid, one=True) 24 | if ret: return self.respData(STATUS.OK, data=ret) 25 | return self.respData(STATUS.DATA_NULL_ERR, error='id={id}的配置字段不存在~'.format(id=uuid)) 26 | 27 | def create(self, data): 28 | ret = self.insert(data) 29 | if ret: return self.respData(STATUS.OK, error='配置字段添加成功~') 30 | return self.respData(STATUS.DATA_NOT_CHANGE_ERR, error='配置字段添加失败~') 31 | 32 | def edit(self, uuid, data): 33 | ret = self.update(data, uuid) 34 | if ret: return self.respData(STATUS.OK, error='配置字段更新成功~') 35 | return self.respData(STATUS.DATA_NOT_CHANGE_ERR, '配置字段更新失败~') 36 | 37 | def fetchConfig(self, type:str='sys'): 38 | sql = 'select * from {table} WHERE `type`=%s'.format(table=self.__tablename__) 39 | ret = self.select(sql, type) 40 | data = dict() 41 | if ret: 42 | for vol in ret: 43 | data[vol['key']] = vol['value'] 44 | return data 45 | 46 | config_model = Config() -------------------------------------------------------------------------------- /blog/flask-blog/requirements.txt: -------------------------------------------------------------------------------- 1 | asn1crypto==0.24.0 2 | certifi==2018.8.24 3 | cffi==1.11.5 4 | chardet==3.0.4 5 | click==6.7 6 | cryptography==2.3.1 7 | Flask==1.0.2 8 | Flask-Session==0.3.1 9 | gevent==1.3.6 10 | greenlet==0.4.14 11 | idna==2.7 12 | itsdangerous==0.24 13 | Jinja2==2.10 14 | Markdown==2.6.11 15 | MarkupSafe==1.0 16 | Pillow==5.2.0 17 | pycparser==2.18 18 | pycryptodome==3.6.6 19 | PyMySQL==0.9.2 20 | redis==2.10.6 21 | requests==2.19.1 22 | six==1.11.0 23 | UNKNOWN==0.0.0 24 | urllib3==1.23 25 | Werkzeug==0.14.1 26 | -------------------------------------------------------------------------------- /blog/flask-blog/run.py: -------------------------------------------------------------------------------- 1 | from gevent import monkey 2 | from gevent.pywsgi import WSGIServer 3 | from app import app 4 | from utils import logger 5 | 6 | monkey.patch_all() 7 | 8 | def run(port:int=80, host:str='127.0.0.1'): 9 | http_server = WSGIServer((host, port), app) 10 | logger.info('server is started at http://{host}:{port}'.format(host=host, port=port)) 11 | http_server.serve_forever() 12 | 13 | if __name__ == '__main__': 14 | 15 | run(port=8888) -------------------------------------------------------------------------------- /blog/flask-blog/uploads/images/367958c8bde938df5099163731cabae2a5cb03e9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/uploads/images/367958c8bde938df5099163731cabae2a5cb03e9.jpg -------------------------------------------------------------------------------- /blog/flask-blog/uploads/images/64c802693adb72e8f2147b780d93e7459ccd60a6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/uploads/images/64c802693adb72e8f2147b780d93e7459ccd60a6.jpg -------------------------------------------------------------------------------- /blog/flask-blog/uploads/images/ea4ae75adb62bfdb71287b464b878ce8fcc02a39.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/uploads/images/ea4ae75adb62bfdb71287b464b878ce8fcc02a39.jpg -------------------------------------------------------------------------------- /blog/flask-blog/utils/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/utils/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/utils/__pycache__/file.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/utils/__pycache__/file.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/utils/__pycache__/logger.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/utils/__pycache__/logger.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/utils/__pycache__/mysql.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/utils/__pycache__/mysql.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/utils/captcha/__pycache__/VerifyCode.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/utils/captcha/__pycache__/VerifyCode.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/utils/captcha/fonts/monaco.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/utils/captcha/fonts/monaco.ttf -------------------------------------------------------------------------------- /blog/flask-blog/utils/captcha/test.py: -------------------------------------------------------------------------------- 1 | 2 | import redis 3 | 4 | r = redis.Redis(host='127.0.0.1', port=6379) 5 | r.set('key','this is key') 6 | print(r.get('image_code')) -------------------------------------------------------------------------------- /blog/flask-blog/utils/crypto/__pycache__/RSA.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/flask-blog/utils/crypto/__pycache__/RSA.cpython-36.pyc -------------------------------------------------------------------------------- /blog/flask-blog/utils/crypto/private.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE3-CBC,17556AF925898029 4 | 5 | q9stp/liOa1Ow1sshmOW46m8fogcvFAFEaQ65398mYs4Z4EfbkkiCv5xi+RuByB9 6 | c5K54v+RojrFo3+05sLl0bvkRmNXwLl/ZNa4tgIqXNu868XO+/NmnMPwygXaSwto 7 | aHrZ4PPiHY8LQsr1YPYiuGyWd7teOmC5VIp3ukGwqhK4bVfEbEahtA0bgmq1odwx 8 | FYVe3TdyjXpj/efbVwSAxuF0WblsMEDwqsmMiD8vxQisSC0Khw0okMFy/v2yqweT 9 | 8rkN2zN9aXLr+NBCnWywCpHVRLUz7as3ey+uGWRmwYzQKVDjN3WAibiiPOd/YD9r 10 | 9/qlm1U2DLZBsI3NRP0QXsWsU0kIanP8HciBShYSeIpc+IFIQ11T8R2hNusLJOtH 11 | u2/hLn5OXYdyh6ipVo/DNR79kxLG48YJc6mwd6G6QPg/g0abDQc/gdCRRpY12TlT 12 | RELa2D6Jvh5FQhDHHXKlOc+pI0DNuLnKVbI0Dgg8nTrDoIfk/XU25N9oBmxU+yQV 13 | C6ahO40UTaBQ+pW1/Q5qKRYoaJgj+341Jp0fNrhFk3fNF40G7BxXI/Z1eB1gqcLM 14 | NdYN6lfEjmJEQ6AF1wR636YnyArqKms5gnF96OxNIF/pq0q60cAr98ho80ZSK9FA 15 | a1OqVtbOKo4lJ32YQnO1es0ODuo70X3FjgR1nteh3WQFuACaWfxdgierUwM1ZAlM 16 | CzypK+e5Oi81ASqc+h39iK8kbWKmw5RqbcsQ5Yiwz/BmYwSmxsfEkj3CclZSk+PE 17 | dwLQNLKWuwXQtXYU05TgSAAl9VBbgMe/RL3q8+htUhTBGs+3QlhtSi0fMtBY2y/z 18 | vtUyiIMrk00U8Yr8Fbx/7g== 19 | -----END PRIVATE KEY----- -------------------------------------------------------------------------------- /blog/flask-blog/utils/crypto/public.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2tWlrxg+3WmTinSHNJnL5PTBL 3 | KkI3LDn+l/pfDauKRcMStBS75Z+RsSus9R7dDTr/JSwJ8kFOrRiyLS2oTUIMnxlr 4 | PlFm1l6FO9MiP7Txt0NTGuK212CVpt/7zcTUuOb4YmQcrzJSiA9ry0UfU7Lq3GrI 5 | 6nQxgu+LCbXvTx2KoQIDAQAB 6 | -----END PUBLIC KEY----- -------------------------------------------------------------------------------- /blog/flask-blog/utils/logger.py: -------------------------------------------------------------------------------- 1 | 2 | def __init_logger(): 3 | import logging 4 | import os.path, time 5 | from config import BASE_DIR 6 | # 1. 创建一个logger 7 | _logger = logging.getLogger() 8 | _logger.setLevel(logging.DEBUG) 9 | # 2. 创建一个handler 用于输出在控制台与写入文件 10 | rq = time.strftime('%Y%m%d', time.localtime(time.time())) 11 | # 初始化日志文件目录 12 | log_dirs = os.path.join(BASE_DIR,'logs') 13 | if not os.path.exists(log_dirs): os.makedirs(log_dirs) 14 | # error log file 15 | error_logfile = os.path.join(log_dirs, 'error-'+rq+'.log') 16 | efh = logging.FileHandler(error_logfile) 17 | efh.setLevel(level=logging.ERROR) 18 | # info log file 19 | info_logfile = os.path.join(log_dirs, 'info-'+rq+'.log') 20 | ifh = logging.FileHandler(info_logfile) 21 | ifh.setLevel(level=logging.INFO) 22 | # 输出到控制台 23 | ch = logging.StreamHandler() 24 | # 3. 定义handler的输出格式 25 | ''' 26 | %(name)s: 打印Logger的名字 27 | %(levelno)s: 打印日志级别的数值 28 | %(levelname)s: 打印日志级别名称 29 | %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0] 30 | %(filename)s: 打印当前执行程序的文件名 31 | %(funcName)s: 打印日志的当前函数 32 | %(lineno)d: 打印日志的当前行号 33 | %(asctime)s: 打印日志的时间 34 | %(thread)d: 打印线程ID 35 | %(threadName)s: 打印线程名称 36 | %(process)d: 打印进程ID 37 | %(message)s: 打印日志信息 38 | ''' 39 | formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] " 40 | "- %(levelname)s: %(message)s") 41 | efh.setFormatter(formatter) 42 | ch.setFormatter(formatter) 43 | ifh.setFormatter(formatter) 44 | # 4. 将logger添加到handler里面 45 | _logger.addHandler(efh) 46 | _logger.addHandler(ifh) 47 | _logger.addHandler(ch) 48 | return _logger 49 | 50 | logger = __init_logger() -------------------------------------------------------------------------------- /blog/flask-blog/utils/test.py: -------------------------------------------------------------------------------- 1 | from utils import fetchRedis 2 | 3 | import time 4 | 5 | redis = fetchRedis() 6 | redis.set('test', 'sdsd', ex=3) 7 | 8 | time.sleep(2) 9 | print(redis.get('test')) -------------------------------------------------------------------------------- /blog/vue-blog/index.html: -------------------------------------------------------------------------------- 1 | vue-blog
-------------------------------------------------------------------------------- /blog/vue-blog/static/fonts/element-icons.6f0a763.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/fonts/element-icons.6f0a763.ttf -------------------------------------------------------------------------------- /blog/vue-blog/static/fonts/fontawesome-webfont.674f50d.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/fonts/fontawesome-webfont.674f50d.eot -------------------------------------------------------------------------------- /blog/vue-blog/static/fonts/fontawesome-webfont.af7ae50.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/fonts/fontawesome-webfont.af7ae50.woff2 -------------------------------------------------------------------------------- /blog/vue-blog/static/fonts/fontawesome-webfont.b06871f.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/fonts/fontawesome-webfont.b06871f.ttf -------------------------------------------------------------------------------- /blog/vue-blog/static/fonts/fontawesome-webfont.fee66e7.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/fonts/fontawesome-webfont.fee66e7.woff -------------------------------------------------------------------------------- /blog/vue-blog/static/fonts/fontello.068ca2b.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/fonts/fontello.068ca2b.ttf -------------------------------------------------------------------------------- /blog/vue-blog/static/fonts/fontello.e73a064.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/fonts/fontello.e73a064.eot -------------------------------------------------------------------------------- /blog/vue-blog/static/fonts/glyphicons-halflings-regular.448c34a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/fonts/glyphicons-halflings-regular.448c34a.woff2 -------------------------------------------------------------------------------- /blog/vue-blog/static/fonts/glyphicons-halflings-regular.e18bbf6.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/fonts/glyphicons-halflings-regular.e18bbf6.ttf -------------------------------------------------------------------------------- /blog/vue-blog/static/fonts/glyphicons-halflings-regular.f4769f9.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/fonts/glyphicons-halflings-regular.f4769f9.eot -------------------------------------------------------------------------------- /blog/vue-blog/static/fonts/glyphicons-halflings-regular.fa27723.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/fonts/glyphicons-halflings-regular.fa27723.woff -------------------------------------------------------------------------------- /blog/vue-blog/static/global/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /blog/vue-blog/static/global/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /blog/vue-blog/static/global/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /blog/vue-blog/static/global/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /blog/vue-blog/static/global/datatables/dataTables.bootstrap4.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | DataTables Bootstrap 3 integration 3 | ©2011-2015 SpryMedia Ltd - datatables.net/license 4 | */ 5 | (function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d,m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>", 6 | renderer:"bootstrap"});b.extend(f.ext.classes,{sWrapper:"dataTables_wrapper container-fluid dt-bootstrap4",sFilterInput:"form-control form-control-sm",sLengthSelect:"form-control form-control-sm",sProcessing:"dataTables_processing card",sPageButton:"paginate_button page-item"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&& 7 | o.page()!=a.data.action&&o.page(a.data.action).draw("page")};l=0;for(h=f.length;l",{"class":t.sPageButton+" "+g,id:0===r&& 8 | "string"===typeof c?a.sTableId+"_"+c:null}).append(b("",{href:"#","aria-controls":a.sTableId,"aria-label":u[c],"data-dt-idx":p,tabindex:a.iTabIndex,"class":"page-link"}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(v){}q(b(h).empty().html('
    ').children("ul"),s);i!==m&&b(h).find("[data-dt-idx="+i+"]").focus()};return f}); 9 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /blog/vue-blog/static/global/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /blog/vue-blog/static/global/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /blog/vue-blog/static/global/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /blog/vue-blog/static/global/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /blog/vue-blog/static/global/font-awesome/fonts/monaco.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/font-awesome/fonts/monaco.ttf -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2006, Ivan Sagalaev 2 | All rights reserved. 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are met: 5 | 6 | * Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above copyright 9 | notice, this list of conditions and the following disclaimer in the 10 | documentation and/or other materials provided with the distribution. 11 | * Neither the name of highlight.js nor the names of its contributors 12 | may be used to endorse or promote products derived from this software 13 | without specific prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY 16 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY 19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/agate.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Agate by Taufik Nurrohman 3 | * ---------------------------------------------------- 4 | * 5 | * #ade5fc 6 | * #a2fca2 7 | * #c6b4f0 8 | * #d36363 9 | * #fcc28c 10 | * #fc9b9b 11 | * #ffa 12 | * #fff 13 | * #333 14 | * #62c8f3 15 | * #888 16 | * 17 | */ 18 | 19 | .hljs { 20 | display: block; 21 | overflow-x: auto; 22 | padding: 0.5em; 23 | background: #333; 24 | color: white; 25 | } 26 | 27 | .hljs-name, 28 | .hljs-strong { 29 | font-weight: bold; 30 | } 31 | 32 | .hljs-code, 33 | .hljs-emphasis { 34 | font-style: italic; 35 | } 36 | 37 | .hljs-tag { 38 | color: #62c8f3; 39 | } 40 | 41 | .hljs-variable, 42 | .hljs-template-variable, 43 | .hljs-selector-id, 44 | .hljs-selector-class { 45 | color: #ade5fc; 46 | } 47 | 48 | .hljs-string, 49 | .hljs-bullet { 50 | color: #a2fca2; 51 | } 52 | 53 | .hljs-type, 54 | .hljs-title, 55 | .hljs-section, 56 | .hljs-attribute, 57 | .hljs-quote, 58 | .hljs-built_in, 59 | .hljs-builtin-name { 60 | color: #ffa; 61 | } 62 | 63 | .hljs-number, 64 | .hljs-symbol, 65 | .hljs-bullet { 66 | color: #d36363; 67 | } 68 | 69 | .hljs-keyword, 70 | .hljs-selector-tag, 71 | .hljs-literal { 72 | color: #fcc28c; 73 | } 74 | 75 | .hljs-comment, 76 | .hljs-deletion, 77 | .hljs-code { 78 | color: #888; 79 | } 80 | 81 | .hljs-regexp, 82 | .hljs-link { 83 | color: #c6b4f0; 84 | } 85 | 86 | .hljs-meta { 87 | color: #fc9b9b; 88 | } 89 | 90 | .hljs-deletion { 91 | background-color: #fc9b9b; 92 | color: #333; 93 | } 94 | 95 | .hljs-addition { 96 | background-color: #a2fca2; 97 | color: #333; 98 | } 99 | 100 | .hljs a { 101 | color: inherit; 102 | } 103 | 104 | .hljs a:focus, 105 | .hljs a:hover { 106 | color: inherit; 107 | text-decoration: underline; 108 | } 109 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/androidstudio.css: -------------------------------------------------------------------------------- 1 | /* 2 | Date: 24 Fev 2015 3 | Author: Pedro Oliveira 4 | */ 5 | 6 | .hljs { 7 | color: #a9b7c6; 8 | background: #282b2e; 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | } 13 | 14 | .hljs-number, 15 | .hljs-literal, 16 | .hljs-symbol, 17 | .hljs-bullet { 18 | color: #6897BB; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-deletion { 24 | color: #cc7832; 25 | } 26 | 27 | .hljs-variable, 28 | .hljs-template-variable, 29 | .hljs-link { 30 | color: #629755; 31 | } 32 | 33 | .hljs-comment, 34 | .hljs-quote { 35 | color: #808080; 36 | } 37 | 38 | .hljs-meta { 39 | color: #bbb529; 40 | } 41 | 42 | .hljs-string, 43 | .hljs-attribute, 44 | .hljs-addition { 45 | color: #6A8759; 46 | } 47 | 48 | .hljs-section, 49 | .hljs-title, 50 | .hljs-type { 51 | color: #ffc66d; 52 | } 53 | 54 | .hljs-name, 55 | .hljs-selector-id, 56 | .hljs-selector-class { 57 | color: #e8bf6a; 58 | } 59 | 60 | .hljs-emphasis { 61 | font-style: italic; 62 | } 63 | 64 | .hljs-strong { 65 | font-weight: bold; 66 | } 67 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/arduino-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Arduino® Light Theme - Stefania Mellai 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #FFFFFF; 12 | } 13 | 14 | .hljs, 15 | .hljs-subst { 16 | color: #434f54; 17 | } 18 | 19 | .hljs-keyword, 20 | .hljs-attribute, 21 | .hljs-selector-tag, 22 | .hljs-doctag, 23 | .hljs-name { 24 | color: #00979D; 25 | } 26 | 27 | .hljs-built_in, 28 | .hljs-literal, 29 | .hljs-bullet, 30 | .hljs-code, 31 | .hljs-addition { 32 | color: #D35400; 33 | } 34 | 35 | .hljs-regexp, 36 | .hljs-symbol, 37 | .hljs-variable, 38 | .hljs-template-variable, 39 | .hljs-link, 40 | .hljs-selector-attr, 41 | .hljs-selector-pseudo { 42 | color: #00979D; 43 | } 44 | 45 | .hljs-type, 46 | .hljs-string, 47 | .hljs-selector-id, 48 | .hljs-selector-class, 49 | .hljs-quote, 50 | .hljs-template-tag, 51 | .hljs-deletion { 52 | color: #005C5F; 53 | } 54 | 55 | .hljs-title, 56 | .hljs-section { 57 | color: #880000; 58 | font-weight: bold; 59 | } 60 | 61 | .hljs-comment { 62 | color: rgba(149,165,166,.8); 63 | } 64 | 65 | .hljs-meta-keyword { 66 | color: #728E00; 67 | } 68 | 69 | .hljs-meta { 70 | color: #728E00; 71 | color: #434f54; 72 | } 73 | 74 | .hljs-emphasis { 75 | font-style: italic; 76 | } 77 | 78 | .hljs-strong { 79 | font-weight: bold; 80 | } 81 | 82 | .hljs-function { 83 | color: #728E00; 84 | } 85 | 86 | .hljs-number { 87 | color: #8A7B52; 88 | } 89 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/arta.css: -------------------------------------------------------------------------------- 1 | /* 2 | Date: 17.V.2011 3 | Author: pumbur 4 | */ 5 | 6 | .hljs { 7 | display: block; 8 | overflow-x: auto; 9 | padding: 0.5em; 10 | background: #222; 11 | } 12 | 13 | .hljs, 14 | .hljs-subst { 15 | color: #aaa; 16 | } 17 | 18 | .hljs-section { 19 | color: #fff; 20 | } 21 | 22 | .hljs-comment, 23 | .hljs-quote, 24 | .hljs-meta { 25 | color: #444; 26 | } 27 | 28 | .hljs-string, 29 | .hljs-symbol, 30 | .hljs-bullet, 31 | .hljs-regexp { 32 | color: #ffcc33; 33 | } 34 | 35 | .hljs-number, 36 | .hljs-addition { 37 | color: #00cc66; 38 | } 39 | 40 | .hljs-built_in, 41 | .hljs-builtin-name, 42 | .hljs-literal, 43 | .hljs-type, 44 | .hljs-template-variable, 45 | .hljs-attribute, 46 | .hljs-link { 47 | color: #32aaee; 48 | } 49 | 50 | .hljs-keyword, 51 | .hljs-selector-tag, 52 | .hljs-name, 53 | .hljs-selector-id, 54 | .hljs-selector-class { 55 | color: #6644aa; 56 | } 57 | 58 | .hljs-title, 59 | .hljs-variable, 60 | .hljs-deletion, 61 | .hljs-template-tag { 62 | color: #bb1166; 63 | } 64 | 65 | .hljs-section, 66 | .hljs-doctag, 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | 71 | .hljs-emphasis { 72 | font-style: italic; 73 | } 74 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/ascetic.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Original style from softwaremaniacs.org (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: white; 12 | color: black; 13 | } 14 | 15 | .hljs-string, 16 | .hljs-variable, 17 | .hljs-template-variable, 18 | .hljs-symbol, 19 | .hljs-bullet, 20 | .hljs-section, 21 | .hljs-addition, 22 | .hljs-attribute, 23 | .hljs-link { 24 | color: #888; 25 | } 26 | 27 | .hljs-comment, 28 | .hljs-quote, 29 | .hljs-meta, 30 | .hljs-deletion { 31 | color: #ccc; 32 | } 33 | 34 | .hljs-keyword, 35 | .hljs-selector-tag, 36 | .hljs-section, 37 | .hljs-name, 38 | .hljs-type, 39 | .hljs-strong { 40 | font-weight: bold; 41 | } 42 | 43 | .hljs-emphasis { 44 | font-style: italic; 45 | } 46 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-cave-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Cave Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Cave Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #7e7887; 9 | } 10 | 11 | /* Atelier-Cave Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-regexp, 16 | .hljs-link, 17 | .hljs-tag, 18 | .hljs-name, 19 | .hljs-selector-id, 20 | .hljs-selector-class { 21 | color: #be4678; 22 | } 23 | 24 | /* Atelier-Cave Orange */ 25 | .hljs-number, 26 | .hljs-meta, 27 | .hljs-built_in, 28 | .hljs-builtin-name, 29 | .hljs-literal, 30 | .hljs-type, 31 | .hljs-params { 32 | color: #aa573c; 33 | } 34 | 35 | /* Atelier-Cave Green */ 36 | .hljs-string, 37 | .hljs-symbol, 38 | .hljs-bullet { 39 | color: #2a9292; 40 | } 41 | 42 | /* Atelier-Cave Blue */ 43 | .hljs-title, 44 | .hljs-section { 45 | color: #576ddb; 46 | } 47 | 48 | /* Atelier-Cave Purple */ 49 | .hljs-keyword, 50 | .hljs-selector-tag { 51 | color: #955ae7; 52 | } 53 | 54 | .hljs-deletion, 55 | .hljs-addition { 56 | color: #19171c; 57 | display: inline-block; 58 | width: 100%; 59 | } 60 | 61 | .hljs-deletion { 62 | background-color: #be4678; 63 | } 64 | 65 | .hljs-addition { 66 | background-color: #2a9292; 67 | } 68 | 69 | .hljs { 70 | display: block; 71 | overflow-x: auto; 72 | background: #19171c; 73 | color: #8b8792; 74 | padding: 0.5em; 75 | } 76 | 77 | .hljs-emphasis { 78 | font-style: italic; 79 | } 80 | 81 | .hljs-strong { 82 | font-weight: bold; 83 | } 84 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-cave-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Cave Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Cave Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #655f6d; 9 | } 10 | 11 | /* Atelier-Cave Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-name, 21 | .hljs-selector-id, 22 | .hljs-selector-class { 23 | color: #be4678; 24 | } 25 | 26 | /* Atelier-Cave Orange */ 27 | .hljs-number, 28 | .hljs-meta, 29 | .hljs-built_in, 30 | .hljs-builtin-name, 31 | .hljs-literal, 32 | .hljs-type, 33 | .hljs-params { 34 | color: #aa573c; 35 | } 36 | 37 | /* Atelier-Cave Green */ 38 | .hljs-string, 39 | .hljs-symbol, 40 | .hljs-bullet { 41 | color: #2a9292; 42 | } 43 | 44 | /* Atelier-Cave Blue */ 45 | .hljs-title, 46 | .hljs-section { 47 | color: #576ddb; 48 | } 49 | 50 | /* Atelier-Cave Purple */ 51 | .hljs-keyword, 52 | .hljs-selector-tag { 53 | color: #955ae7; 54 | } 55 | 56 | .hljs-deletion, 57 | .hljs-addition { 58 | color: #19171c; 59 | display: inline-block; 60 | width: 100%; 61 | } 62 | 63 | .hljs-deletion { 64 | background-color: #be4678; 65 | } 66 | 67 | .hljs-addition { 68 | background-color: #2a9292; 69 | } 70 | 71 | .hljs { 72 | display: block; 73 | overflow-x: auto; 74 | background: #efecf4; 75 | color: #585260; 76 | padding: 0.5em; 77 | } 78 | 79 | .hljs-emphasis { 80 | font-style: italic; 81 | } 82 | 83 | .hljs-strong { 84 | font-weight: bold; 85 | } 86 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-dune-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Dune Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Dune Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #999580; 9 | } 10 | 11 | /* Atelier-Dune Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #d73737; 23 | } 24 | 25 | /* Atelier-Dune Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #b65611; 34 | } 35 | 36 | /* Atelier-Dune Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #60ac39; 41 | } 42 | 43 | /* Atelier-Dune Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #6684e1; 47 | } 48 | 49 | /* Atelier-Dune Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #b854d4; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #20201d; 59 | color: #a6a28c; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-dune-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Dune Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Dune Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #7d7a68; 9 | } 10 | 11 | /* Atelier-Dune Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #d73737; 23 | } 24 | 25 | /* Atelier-Dune Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #b65611; 34 | } 35 | 36 | /* Atelier-Dune Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #60ac39; 41 | } 42 | 43 | /* Atelier-Dune Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #6684e1; 47 | } 48 | 49 | /* Atelier-Dune Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #b854d4; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #fefbec; 59 | color: #6e6b5e; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-estuary-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Estuary Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Estuary Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #878573; 9 | } 10 | 11 | /* Atelier-Estuary Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #ba6236; 23 | } 24 | 25 | /* Atelier-Estuary Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #ae7313; 34 | } 35 | 36 | /* Atelier-Estuary Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #7d9726; 41 | } 42 | 43 | /* Atelier-Estuary Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #36a166; 47 | } 48 | 49 | /* Atelier-Estuary Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #5f9182; 53 | } 54 | 55 | .hljs-deletion, 56 | .hljs-addition { 57 | color: #22221b; 58 | display: inline-block; 59 | width: 100%; 60 | } 61 | 62 | .hljs-deletion { 63 | background-color: #ba6236; 64 | } 65 | 66 | .hljs-addition { 67 | background-color: #7d9726; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | overflow-x: auto; 73 | background: #22221b; 74 | color: #929181; 75 | padding: 0.5em; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-estuary-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Estuary Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Estuary Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #6c6b5a; 9 | } 10 | 11 | /* Atelier-Estuary Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #ba6236; 23 | } 24 | 25 | /* Atelier-Estuary Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #ae7313; 34 | } 35 | 36 | /* Atelier-Estuary Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #7d9726; 41 | } 42 | 43 | /* Atelier-Estuary Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #36a166; 47 | } 48 | 49 | /* Atelier-Estuary Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #5f9182; 53 | } 54 | 55 | .hljs-deletion, 56 | .hljs-addition { 57 | color: #22221b; 58 | display: inline-block; 59 | width: 100%; 60 | } 61 | 62 | .hljs-deletion { 63 | background-color: #ba6236; 64 | } 65 | 66 | .hljs-addition { 67 | background-color: #7d9726; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | overflow-x: auto; 73 | background: #f4f3ec; 74 | color: #5f5e4e; 75 | padding: 0.5em; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-forest-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Forest Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Forest Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #9c9491; 9 | } 10 | 11 | /* Atelier-Forest Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #f22c40; 23 | } 24 | 25 | /* Atelier-Forest Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #df5320; 34 | } 35 | 36 | /* Atelier-Forest Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #7b9726; 41 | } 42 | 43 | /* Atelier-Forest Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #407ee7; 47 | } 48 | 49 | /* Atelier-Forest Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #6666ea; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #1b1918; 59 | color: #a8a19f; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-forest-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Forest Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Forest Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #766e6b; 9 | } 10 | 11 | /* Atelier-Forest Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #f22c40; 23 | } 24 | 25 | /* Atelier-Forest Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #df5320; 34 | } 35 | 36 | /* Atelier-Forest Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #7b9726; 41 | } 42 | 43 | /* Atelier-Forest Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #407ee7; 47 | } 48 | 49 | /* Atelier-Forest Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #6666ea; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #f1efee; 59 | color: #68615e; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-heath-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Heath Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Heath Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #9e8f9e; 9 | } 10 | 11 | /* Atelier-Heath Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #ca402b; 23 | } 24 | 25 | /* Atelier-Heath Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #a65926; 34 | } 35 | 36 | /* Atelier-Heath Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #918b3b; 41 | } 42 | 43 | /* Atelier-Heath Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #516aec; 47 | } 48 | 49 | /* Atelier-Heath Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #7b59c0; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #1b181b; 59 | color: #ab9bab; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-heath-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Heath Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Heath Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #776977; 9 | } 10 | 11 | /* Atelier-Heath Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #ca402b; 23 | } 24 | 25 | /* Atelier-Heath Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #a65926; 34 | } 35 | 36 | /* Atelier-Heath Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #918b3b; 41 | } 42 | 43 | /* Atelier-Heath Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #516aec; 47 | } 48 | 49 | /* Atelier-Heath Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #7b59c0; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #f7f3f7; 59 | color: #695d69; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-lakeside-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Lakeside Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Lakeside Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #7195a8; 9 | } 10 | 11 | /* Atelier-Lakeside Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #d22d72; 23 | } 24 | 25 | /* Atelier-Lakeside Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #935c25; 34 | } 35 | 36 | /* Atelier-Lakeside Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #568c3b; 41 | } 42 | 43 | /* Atelier-Lakeside Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #257fad; 47 | } 48 | 49 | /* Atelier-Lakeside Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #6b6bb8; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #161b1d; 59 | color: #7ea2b4; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-lakeside-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Lakeside Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Lakeside Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #5a7b8c; 9 | } 10 | 11 | /* Atelier-Lakeside Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #d22d72; 23 | } 24 | 25 | /* Atelier-Lakeside Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #935c25; 34 | } 35 | 36 | /* Atelier-Lakeside Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #568c3b; 41 | } 42 | 43 | /* Atelier-Lakeside Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #257fad; 47 | } 48 | 49 | /* Atelier-Lakeside Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #6b6bb8; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #ebf8ff; 59 | color: #516d7b; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-plateau-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Plateau Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Plateau Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #7e7777; 9 | } 10 | 11 | /* Atelier-Plateau Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #ca4949; 23 | } 24 | 25 | /* Atelier-Plateau Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #b45a3c; 34 | } 35 | 36 | /* Atelier-Plateau Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #4b8b8b; 41 | } 42 | 43 | /* Atelier-Plateau Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #7272ca; 47 | } 48 | 49 | /* Atelier-Plateau Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #8464c4; 53 | } 54 | 55 | .hljs-deletion, 56 | .hljs-addition { 57 | color: #1b1818; 58 | display: inline-block; 59 | width: 100%; 60 | } 61 | 62 | .hljs-deletion { 63 | background-color: #ca4949; 64 | } 65 | 66 | .hljs-addition { 67 | background-color: #4b8b8b; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | overflow-x: auto; 73 | background: #1b1818; 74 | color: #8a8585; 75 | padding: 0.5em; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-plateau-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Plateau Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Plateau Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #655d5d; 9 | } 10 | 11 | /* Atelier-Plateau Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #ca4949; 23 | } 24 | 25 | /* Atelier-Plateau Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #b45a3c; 34 | } 35 | 36 | /* Atelier-Plateau Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #4b8b8b; 41 | } 42 | 43 | /* Atelier-Plateau Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #7272ca; 47 | } 48 | 49 | /* Atelier-Plateau Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #8464c4; 53 | } 54 | 55 | .hljs-deletion, 56 | .hljs-addition { 57 | color: #1b1818; 58 | display: inline-block; 59 | width: 100%; 60 | } 61 | 62 | .hljs-deletion { 63 | background-color: #ca4949; 64 | } 65 | 66 | .hljs-addition { 67 | background-color: #4b8b8b; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | overflow-x: auto; 73 | background: #f4ecec; 74 | color: #585050; 75 | padding: 0.5em; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-savanna-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Savanna Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Savanna Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #78877d; 9 | } 10 | 11 | /* Atelier-Savanna Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #b16139; 23 | } 24 | 25 | /* Atelier-Savanna Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #9f713c; 34 | } 35 | 36 | /* Atelier-Savanna Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #489963; 41 | } 42 | 43 | /* Atelier-Savanna Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #478c90; 47 | } 48 | 49 | /* Atelier-Savanna Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #55859b; 53 | } 54 | 55 | .hljs-deletion, 56 | .hljs-addition { 57 | color: #171c19; 58 | display: inline-block; 59 | width: 100%; 60 | } 61 | 62 | .hljs-deletion { 63 | background-color: #b16139; 64 | } 65 | 66 | .hljs-addition { 67 | background-color: #489963; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | overflow-x: auto; 73 | background: #171c19; 74 | color: #87928a; 75 | padding: 0.5em; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-savanna-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Savanna Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Savanna Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #5f6d64; 9 | } 10 | 11 | /* Atelier-Savanna Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #b16139; 23 | } 24 | 25 | /* Atelier-Savanna Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #9f713c; 34 | } 35 | 36 | /* Atelier-Savanna Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #489963; 41 | } 42 | 43 | /* Atelier-Savanna Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #478c90; 47 | } 48 | 49 | /* Atelier-Savanna Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #55859b; 53 | } 54 | 55 | .hljs-deletion, 56 | .hljs-addition { 57 | color: #171c19; 58 | display: inline-block; 59 | width: 100%; 60 | } 61 | 62 | .hljs-deletion { 63 | background-color: #b16139; 64 | } 65 | 66 | .hljs-addition { 67 | background-color: #489963; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | overflow-x: auto; 73 | background: #ecf4ee; 74 | color: #526057; 75 | padding: 0.5em; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-seaside-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Seaside Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Seaside Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #809980; 9 | } 10 | 11 | /* Atelier-Seaside Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #e6193c; 23 | } 24 | 25 | /* Atelier-Seaside Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #87711d; 34 | } 35 | 36 | /* Atelier-Seaside Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #29a329; 41 | } 42 | 43 | /* Atelier-Seaside Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #3d62f5; 47 | } 48 | 49 | /* Atelier-Seaside Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #ad2bee; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #131513; 59 | color: #8ca68c; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-seaside-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Seaside Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Seaside Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #687d68; 9 | } 10 | 11 | /* Atelier-Seaside Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #e6193c; 23 | } 24 | 25 | /* Atelier-Seaside Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #87711d; 34 | } 35 | 36 | /* Atelier-Seaside Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #29a329; 41 | } 42 | 43 | /* Atelier-Seaside Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #3d62f5; 47 | } 48 | 49 | /* Atelier-Seaside Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #ad2bee; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #f4fbf4; 59 | color: #5e6e5e; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-sulphurpool-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Sulphurpool Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Sulphurpool Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #898ea4; 9 | } 10 | 11 | /* Atelier-Sulphurpool Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #c94922; 23 | } 24 | 25 | /* Atelier-Sulphurpool Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #c76b29; 34 | } 35 | 36 | /* Atelier-Sulphurpool Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #ac9739; 41 | } 42 | 43 | /* Atelier-Sulphurpool Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #3d8fd1; 47 | } 48 | 49 | /* Atelier-Sulphurpool Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #6679cc; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #202746; 59 | color: #979db4; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atelier-sulphurpool-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Sulphurpool Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Sulphurpool Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #6b7394; 9 | } 10 | 11 | /* Atelier-Sulphurpool Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #c94922; 23 | } 24 | 25 | /* Atelier-Sulphurpool Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #c76b29; 34 | } 35 | 36 | /* Atelier-Sulphurpool Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #ac9739; 41 | } 42 | 43 | /* Atelier-Sulphurpool Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #3d8fd1; 47 | } 48 | 49 | /* Atelier-Sulphurpool Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #6679cc; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #f5f7ff; 59 | color: #5e6687; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atom-one-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Atom One Dark by Daniel Gamage 4 | Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax 5 | 6 | base: #282c34 7 | mono-1: #abb2bf 8 | mono-2: #818896 9 | mono-3: #5c6370 10 | hue-1: #56b6c2 11 | hue-2: #61aeee 12 | hue-3: #c678dd 13 | hue-4: #98c379 14 | hue-5: #e06c75 15 | hue-5-2: #be5046 16 | hue-6: #d19a66 17 | hue-6-2: #e6c07b 18 | 19 | */ 20 | 21 | .hljs { 22 | display: block; 23 | overflow-x: auto; 24 | padding: 0.5em; 25 | color: #abb2bf; 26 | background: #282c34; 27 | } 28 | 29 | .hljs-comment, 30 | .hljs-quote { 31 | color: #5c6370; 32 | font-style: italic; 33 | } 34 | 35 | .hljs-doctag, 36 | .hljs-keyword, 37 | .hljs-formula { 38 | color: #c678dd; 39 | } 40 | 41 | .hljs-section, 42 | .hljs-name, 43 | .hljs-selector-tag, 44 | .hljs-deletion, 45 | .hljs-subst { 46 | color: #e06c75; 47 | } 48 | 49 | .hljs-literal { 50 | color: #56b6c2; 51 | } 52 | 53 | .hljs-string, 54 | .hljs-regexp, 55 | .hljs-addition, 56 | .hljs-attribute, 57 | .hljs-meta-string { 58 | color: #98c379; 59 | } 60 | 61 | .hljs-built_in, 62 | .hljs-class .hljs-title { 63 | color: #e6c07b; 64 | } 65 | 66 | .hljs-attr, 67 | .hljs-variable, 68 | .hljs-template-variable, 69 | .hljs-type, 70 | .hljs-selector-class, 71 | .hljs-selector-attr, 72 | .hljs-selector-pseudo, 73 | .hljs-number { 74 | color: #d19a66; 75 | } 76 | 77 | .hljs-symbol, 78 | .hljs-bullet, 79 | .hljs-link, 80 | .hljs-meta, 81 | .hljs-selector-id, 82 | .hljs-title { 83 | color: #61aeee; 84 | } 85 | 86 | .hljs-emphasis { 87 | font-style: italic; 88 | } 89 | 90 | .hljs-strong { 91 | font-weight: bold; 92 | } 93 | 94 | .hljs-link { 95 | text-decoration: underline; 96 | } 97 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/atom-one-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Atom One Light by Daniel Gamage 4 | Original One Light Syntax theme from https://github.com/atom/one-light-syntax 5 | 6 | base: #fafafa 7 | mono-1: #383a42 8 | mono-2: #686b77 9 | mono-3: #a0a1a7 10 | hue-1: #0184bb 11 | hue-2: #4078f2 12 | hue-3: #a626a4 13 | hue-4: #50a14f 14 | hue-5: #e45649 15 | hue-5-2: #c91243 16 | hue-6: #986801 17 | hue-6-2: #c18401 18 | 19 | */ 20 | 21 | .hljs { 22 | display: block; 23 | overflow-x: auto; 24 | padding: 0.5em; 25 | color: #383a42; 26 | background: #fafafa; 27 | } 28 | 29 | .hljs-comment, 30 | .hljs-quote { 31 | color: #a0a1a7; 32 | font-style: italic; 33 | } 34 | 35 | .hljs-doctag, 36 | .hljs-keyword, 37 | .hljs-formula { 38 | color: #a626a4; 39 | } 40 | 41 | .hljs-section, 42 | .hljs-name, 43 | .hljs-selector-tag, 44 | .hljs-deletion, 45 | .hljs-subst { 46 | color: #e45649; 47 | } 48 | 49 | .hljs-literal { 50 | color: #0184bb; 51 | } 52 | 53 | .hljs-string, 54 | .hljs-regexp, 55 | .hljs-addition, 56 | .hljs-attribute, 57 | .hljs-meta-string { 58 | color: #50a14f; 59 | } 60 | 61 | .hljs-built_in, 62 | .hljs-class .hljs-title { 63 | color: #c18401; 64 | } 65 | 66 | .hljs-attr, 67 | .hljs-variable, 68 | .hljs-template-variable, 69 | .hljs-type, 70 | .hljs-selector-class, 71 | .hljs-selector-attr, 72 | .hljs-selector-pseudo, 73 | .hljs-number { 74 | color: #986801; 75 | } 76 | 77 | .hljs-symbol, 78 | .hljs-bullet, 79 | .hljs-link, 80 | .hljs-meta, 81 | .hljs-selector-id, 82 | .hljs-title { 83 | color: #4078f2; 84 | } 85 | 86 | .hljs-emphasis { 87 | font-style: italic; 88 | } 89 | 90 | .hljs-strong { 91 | font-weight: bold; 92 | } 93 | 94 | .hljs-link { 95 | text-decoration: underline; 96 | } 97 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/brown-paper.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Brown Paper style from goldblog.com.ua (c) Zaripov Yura 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background:#b7a68e url(./brown-papersq.png); 12 | } 13 | 14 | .hljs-keyword, 15 | .hljs-selector-tag, 16 | .hljs-literal { 17 | color:#005599; 18 | font-weight:bold; 19 | } 20 | 21 | .hljs, 22 | .hljs-subst { 23 | color: #363c69; 24 | } 25 | 26 | .hljs-string, 27 | .hljs-title, 28 | .hljs-section, 29 | .hljs-type, 30 | .hljs-attribute, 31 | .hljs-symbol, 32 | .hljs-bullet, 33 | .hljs-built_in, 34 | .hljs-addition, 35 | .hljs-variable, 36 | .hljs-template-tag, 37 | .hljs-template-variable, 38 | .hljs-link, 39 | .hljs-name { 40 | color: #2c009f; 41 | } 42 | 43 | .hljs-comment, 44 | .hljs-quote, 45 | .hljs-meta, 46 | .hljs-deletion { 47 | color: #802022; 48 | } 49 | 50 | .hljs-keyword, 51 | .hljs-selector-tag, 52 | .hljs-literal, 53 | .hljs-doctag, 54 | .hljs-title, 55 | .hljs-section, 56 | .hljs-type, 57 | .hljs-name, 58 | .hljs-strong { 59 | font-weight: bold; 60 | } 61 | 62 | .hljs-emphasis { 63 | font-style: italic; 64 | } 65 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/brown-papersq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/highlight/styles/brown-papersq.png -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/codepen-embed.css: -------------------------------------------------------------------------------- 1 | /* 2 | codepen.io Embed Theme 3 | Author: Justin Perry 4 | Original theme - https://github.com/chriskempson/tomorrow-theme 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #222; 12 | color: #fff; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #777; 18 | } 19 | 20 | .hljs-variable, 21 | .hljs-template-variable, 22 | .hljs-tag, 23 | .hljs-regexp, 24 | .hljs-meta, 25 | .hljs-number, 26 | .hljs-built_in, 27 | .hljs-builtin-name, 28 | .hljs-literal, 29 | .hljs-params, 30 | .hljs-symbol, 31 | .hljs-bullet, 32 | .hljs-link, 33 | .hljs-deletion { 34 | color: #ab875d; 35 | } 36 | 37 | .hljs-section, 38 | .hljs-title, 39 | .hljs-name, 40 | .hljs-selector-id, 41 | .hljs-selector-class, 42 | .hljs-type, 43 | .hljs-attribute { 44 | color: #9b869b; 45 | } 46 | 47 | .hljs-string, 48 | .hljs-keyword, 49 | .hljs-selector-tag, 50 | .hljs-addition { 51 | color: #8f9c6c; 52 | } 53 | 54 | .hljs-emphasis { 55 | font-style: italic; 56 | } 57 | 58 | .hljs-strong { 59 | font-weight: bold; 60 | } 61 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/color-brewer.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Colorbrewer theme 4 | Original: https://github.com/mbostock/colorbrewer-theme (c) Mike Bostock 5 | Ported by Fabrício Tavares de Oliveira 6 | 7 | */ 8 | 9 | .hljs { 10 | display: block; 11 | overflow-x: auto; 12 | padding: 0.5em; 13 | background: #fff; 14 | } 15 | 16 | .hljs, 17 | .hljs-subst { 18 | color: #000; 19 | } 20 | 21 | .hljs-string, 22 | .hljs-meta, 23 | .hljs-symbol, 24 | .hljs-template-tag, 25 | .hljs-template-variable, 26 | .hljs-addition { 27 | color: #756bb1; 28 | } 29 | 30 | .hljs-comment, 31 | .hljs-quote { 32 | color: #636363; 33 | } 34 | 35 | .hljs-number, 36 | .hljs-regexp, 37 | .hljs-literal, 38 | .hljs-bullet, 39 | .hljs-link { 40 | color: #31a354; 41 | } 42 | 43 | .hljs-deletion, 44 | .hljs-variable { 45 | color: #88f; 46 | } 47 | 48 | 49 | 50 | .hljs-keyword, 51 | .hljs-selector-tag, 52 | .hljs-title, 53 | .hljs-section, 54 | .hljs-built_in, 55 | .hljs-doctag, 56 | .hljs-type, 57 | .hljs-tag, 58 | .hljs-name, 59 | .hljs-selector-id, 60 | .hljs-selector-class, 61 | .hljs-strong { 62 | color: #3182bd; 63 | } 64 | 65 | .hljs-emphasis { 66 | font-style: italic; 67 | } 68 | 69 | .hljs-attribute { 70 | color: #e6550d; 71 | } 72 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/darcula.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Darcula color scheme from the JetBrains family of IDEs 4 | 5 | */ 6 | 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #2b2b2b; 13 | } 14 | 15 | .hljs { 16 | color: #bababa; 17 | } 18 | 19 | .hljs-strong, 20 | .hljs-emphasis { 21 | color: #a8a8a2; 22 | } 23 | 24 | .hljs-bullet, 25 | .hljs-quote, 26 | .hljs-link, 27 | .hljs-number, 28 | .hljs-regexp, 29 | .hljs-literal { 30 | color: #6896ba; 31 | } 32 | 33 | .hljs-code, 34 | .hljs-selector-class { 35 | color: #a6e22e; 36 | } 37 | 38 | .hljs-emphasis { 39 | font-style: italic; 40 | } 41 | 42 | .hljs-keyword, 43 | .hljs-selector-tag, 44 | .hljs-section, 45 | .hljs-attribute, 46 | .hljs-name, 47 | .hljs-variable { 48 | color: #cb7832; 49 | } 50 | 51 | .hljs-params { 52 | color: #b9b9b9; 53 | } 54 | 55 | .hljs-string { 56 | color: #6a8759; 57 | } 58 | 59 | .hljs-subst, 60 | .hljs-type, 61 | .hljs-built_in, 62 | .hljs-builtin-name, 63 | .hljs-symbol, 64 | .hljs-selector-id, 65 | .hljs-selector-attr, 66 | .hljs-selector-pseudo, 67 | .hljs-template-tag, 68 | .hljs-template-variable, 69 | .hljs-addition { 70 | color: #e0c46c; 71 | } 72 | 73 | .hljs-comment, 74 | .hljs-deletion, 75 | .hljs-meta { 76 | color: #7f7f7f; 77 | } 78 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Dark style from softwaremaniacs.org (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #444; 12 | } 13 | 14 | .hljs-keyword, 15 | .hljs-selector-tag, 16 | .hljs-literal, 17 | .hljs-section, 18 | .hljs-link { 19 | color: white; 20 | } 21 | 22 | .hljs, 23 | .hljs-subst { 24 | color: #ddd; 25 | } 26 | 27 | .hljs-string, 28 | .hljs-title, 29 | .hljs-name, 30 | .hljs-type, 31 | .hljs-attribute, 32 | .hljs-symbol, 33 | .hljs-bullet, 34 | .hljs-built_in, 35 | .hljs-addition, 36 | .hljs-variable, 37 | .hljs-template-tag, 38 | .hljs-template-variable { 39 | color: #d88; 40 | } 41 | 42 | .hljs-comment, 43 | .hljs-quote, 44 | .hljs-deletion, 45 | .hljs-meta { 46 | color: #777; 47 | } 48 | 49 | .hljs-keyword, 50 | .hljs-selector-tag, 51 | .hljs-literal, 52 | .hljs-title, 53 | .hljs-section, 54 | .hljs-doctag, 55 | .hljs-type, 56 | .hljs-name, 57 | .hljs-strong { 58 | font-weight: bold; 59 | } 60 | 61 | .hljs-emphasis { 62 | font-style: italic; 63 | } 64 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/darkula.css: -------------------------------------------------------------------------------- 1 | /* 2 | Deprecated due to a typo in the name and left here for compatibility purpose only. 3 | Please use darcula.css instead. 4 | */ 5 | 6 | @import url('darcula.css'); 7 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/default.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Original highlight.js style (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #F0F0F0; 12 | } 13 | 14 | 15 | /* Base color: saturation 0; */ 16 | 17 | .hljs, 18 | .hljs-subst { 19 | color: #444; 20 | } 21 | 22 | .hljs-comment { 23 | color: #888888; 24 | } 25 | 26 | .hljs-keyword, 27 | .hljs-attribute, 28 | .hljs-selector-tag, 29 | .hljs-meta-keyword, 30 | .hljs-doctag, 31 | .hljs-name { 32 | font-weight: bold; 33 | } 34 | 35 | 36 | /* User color: hue: 0 */ 37 | 38 | .hljs-type, 39 | .hljs-string, 40 | .hljs-number, 41 | .hljs-selector-id, 42 | .hljs-selector-class, 43 | .hljs-quote, 44 | .hljs-template-tag, 45 | .hljs-deletion { 46 | color: #880000; 47 | } 48 | 49 | .hljs-title, 50 | .hljs-section { 51 | color: #880000; 52 | font-weight: bold; 53 | } 54 | 55 | .hljs-regexp, 56 | .hljs-symbol, 57 | .hljs-variable, 58 | .hljs-template-variable, 59 | .hljs-link, 60 | .hljs-selector-attr, 61 | .hljs-selector-pseudo { 62 | color: #BC6060; 63 | } 64 | 65 | 66 | /* Language color: hue: 90; */ 67 | 68 | .hljs-literal { 69 | color: #78A960; 70 | } 71 | 72 | .hljs-built_in, 73 | .hljs-bullet, 74 | .hljs-code, 75 | .hljs-addition { 76 | color: #397300; 77 | } 78 | 79 | 80 | /* Meta color: hue: 200 */ 81 | 82 | .hljs-meta { 83 | color: #1f7199; 84 | } 85 | 86 | .hljs-meta-string { 87 | color: #4d99bf; 88 | } 89 | 90 | 91 | /* Misc effects */ 92 | 93 | .hljs-emphasis { 94 | font-style: italic; 95 | } 96 | 97 | .hljs-strong { 98 | font-weight: bold; 99 | } 100 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/docco.css: -------------------------------------------------------------------------------- 1 | /* 2 | Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars) 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | color: #000; 10 | background: #f8f8ff; 11 | } 12 | 13 | .hljs-comment, 14 | .hljs-quote { 15 | color: #408080; 16 | font-style: italic; 17 | } 18 | 19 | .hljs-keyword, 20 | .hljs-selector-tag, 21 | .hljs-literal, 22 | .hljs-subst { 23 | color: #954121; 24 | } 25 | 26 | .hljs-number { 27 | color: #40a070; 28 | } 29 | 30 | .hljs-string, 31 | .hljs-doctag { 32 | color: #219161; 33 | } 34 | 35 | .hljs-selector-id, 36 | .hljs-selector-class, 37 | .hljs-section, 38 | .hljs-type { 39 | color: #19469d; 40 | } 41 | 42 | .hljs-params { 43 | color: #00f; 44 | } 45 | 46 | .hljs-title { 47 | color: #458; 48 | font-weight: bold; 49 | } 50 | 51 | .hljs-tag, 52 | .hljs-name, 53 | .hljs-attribute { 54 | color: #000080; 55 | font-weight: normal; 56 | } 57 | 58 | .hljs-variable, 59 | .hljs-template-variable { 60 | color: #008080; 61 | } 62 | 63 | .hljs-regexp, 64 | .hljs-link { 65 | color: #b68; 66 | } 67 | 68 | .hljs-symbol, 69 | .hljs-bullet { 70 | color: #990073; 71 | } 72 | 73 | .hljs-built_in, 74 | .hljs-builtin-name { 75 | color: #0086b3; 76 | } 77 | 78 | .hljs-meta { 79 | color: #999; 80 | font-weight: bold; 81 | } 82 | 83 | .hljs-deletion { 84 | background: #fdd; 85 | } 86 | 87 | .hljs-addition { 88 | background: #dfd; 89 | } 90 | 91 | .hljs-emphasis { 92 | font-style: italic; 93 | } 94 | 95 | .hljs-strong { 96 | font-weight: bold; 97 | } 98 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/dracula.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Dracula Theme v1.2.0 4 | 5 | https://github.com/zenorocha/dracula-theme 6 | 7 | Copyright 2015, All rights reserved 8 | 9 | Code licensed under the MIT license 10 | http://zenorocha.mit-license.org 11 | 12 | @author Éverton Ribeiro 13 | @author Zeno Rocha 14 | 15 | */ 16 | 17 | .hljs { 18 | display: block; 19 | overflow-x: auto; 20 | padding: 0.5em; 21 | background: #282a36; 22 | } 23 | 24 | .hljs-keyword, 25 | .hljs-selector-tag, 26 | .hljs-literal, 27 | .hljs-section, 28 | .hljs-link { 29 | color: #8be9fd; 30 | } 31 | 32 | .hljs-function .hljs-keyword { 33 | color: #ff79c6; 34 | } 35 | 36 | .hljs, 37 | .hljs-subst { 38 | color: #f8f8f2; 39 | } 40 | 41 | .hljs-string, 42 | .hljs-title, 43 | .hljs-name, 44 | .hljs-type, 45 | .hljs-attribute, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-addition, 49 | .hljs-variable, 50 | .hljs-template-tag, 51 | .hljs-template-variable { 52 | color: #f1fa8c; 53 | } 54 | 55 | .hljs-comment, 56 | .hljs-quote, 57 | .hljs-deletion, 58 | .hljs-meta { 59 | color: #6272a4; 60 | } 61 | 62 | .hljs-keyword, 63 | .hljs-selector-tag, 64 | .hljs-literal, 65 | .hljs-title, 66 | .hljs-section, 67 | .hljs-doctag, 68 | .hljs-type, 69 | .hljs-name, 70 | .hljs-strong { 71 | font-weight: bold; 72 | } 73 | 74 | .hljs-emphasis { 75 | font-style: italic; 76 | } 77 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/far.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | FAR Style (c) MajestiC 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #000080; 12 | } 13 | 14 | .hljs, 15 | .hljs-subst { 16 | color: #0ff; 17 | } 18 | 19 | .hljs-string, 20 | .hljs-attribute, 21 | .hljs-symbol, 22 | .hljs-bullet, 23 | .hljs-built_in, 24 | .hljs-builtin-name, 25 | .hljs-template-tag, 26 | .hljs-template-variable, 27 | .hljs-addition { 28 | color: #ff0; 29 | } 30 | 31 | .hljs-keyword, 32 | .hljs-selector-tag, 33 | .hljs-section, 34 | .hljs-type, 35 | .hljs-name, 36 | .hljs-selector-id, 37 | .hljs-selector-class, 38 | .hljs-variable { 39 | color: #fff; 40 | } 41 | 42 | .hljs-comment, 43 | .hljs-quote, 44 | .hljs-doctag, 45 | .hljs-deletion { 46 | color: #888; 47 | } 48 | 49 | .hljs-number, 50 | .hljs-regexp, 51 | .hljs-literal, 52 | .hljs-link { 53 | color: #0f0; 54 | } 55 | 56 | .hljs-meta { 57 | color: #008080; 58 | } 59 | 60 | .hljs-keyword, 61 | .hljs-selector-tag, 62 | .hljs-title, 63 | .hljs-section, 64 | .hljs-name, 65 | .hljs-strong { 66 | font-weight: bold; 67 | } 68 | 69 | .hljs-emphasis { 70 | font-style: italic; 71 | } 72 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/foundation.css: -------------------------------------------------------------------------------- 1 | /* 2 | Description: Foundation 4 docs style for highlight.js 3 | Author: Dan Allen 4 | Website: http://foundation.zurb.com/docs/ 5 | Version: 1.0 6 | Date: 2013-04-02 7 | */ 8 | 9 | .hljs { 10 | display: block; 11 | overflow-x: auto; 12 | padding: 0.5em; 13 | background: #eee; color: black; 14 | } 15 | 16 | .hljs-link, 17 | .hljs-emphasis, 18 | .hljs-attribute, 19 | .hljs-addition { 20 | color: #070; 21 | } 22 | 23 | .hljs-emphasis { 24 | font-style: italic; 25 | } 26 | 27 | .hljs-strong, 28 | .hljs-string, 29 | .hljs-deletion { 30 | color: #d14; 31 | } 32 | 33 | .hljs-strong { 34 | font-weight: bold; 35 | } 36 | 37 | .hljs-quote, 38 | .hljs-comment { 39 | color: #998; 40 | font-style: italic; 41 | } 42 | 43 | .hljs-section, 44 | .hljs-title { 45 | color: #900; 46 | } 47 | 48 | .hljs-class .hljs-title, 49 | .hljs-type { 50 | color: #458; 51 | } 52 | 53 | .hljs-variable, 54 | .hljs-template-variable { 55 | color: #336699; 56 | } 57 | 58 | .hljs-bullet { 59 | color: #997700; 60 | } 61 | 62 | .hljs-meta { 63 | color: #3344bb; 64 | } 65 | 66 | .hljs-code, 67 | .hljs-number, 68 | .hljs-literal, 69 | .hljs-keyword, 70 | .hljs-selector-tag { 71 | color: #099; 72 | } 73 | 74 | .hljs-regexp { 75 | background-color: #fff0ff; 76 | color: #880088; 77 | } 78 | 79 | .hljs-symbol { 80 | color: #990073; 81 | } 82 | 83 | .hljs-tag, 84 | .hljs-name, 85 | .hljs-selector-id, 86 | .hljs-selector-class { 87 | color: #007700; 88 | } 89 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/github-gist.css: -------------------------------------------------------------------------------- 1 | /** 2 | * GitHub Gist Theme 3 | * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro 4 | */ 5 | 6 | .hljs { 7 | display: block; 8 | background: white; 9 | padding: 0.5em; 10 | color: #333333; 11 | overflow-x: auto; 12 | } 13 | 14 | .hljs-comment, 15 | .hljs-meta { 16 | color: #969896; 17 | } 18 | 19 | .hljs-string, 20 | .hljs-variable, 21 | .hljs-template-variable, 22 | .hljs-strong, 23 | .hljs-emphasis, 24 | .hljs-quote { 25 | color: #df5000; 26 | } 27 | 28 | .hljs-keyword, 29 | .hljs-selector-tag, 30 | .hljs-type { 31 | color: #a71d5d; 32 | } 33 | 34 | .hljs-literal, 35 | .hljs-symbol, 36 | .hljs-bullet, 37 | .hljs-attribute { 38 | color: #0086b3; 39 | } 40 | 41 | .hljs-section, 42 | .hljs-name { 43 | color: #63a35c; 44 | } 45 | 46 | .hljs-tag { 47 | color: #333333; 48 | } 49 | 50 | .hljs-title, 51 | .hljs-attr, 52 | .hljs-selector-id, 53 | .hljs-selector-class, 54 | .hljs-selector-attr, 55 | .hljs-selector-pseudo { 56 | color: #795da3; 57 | } 58 | 59 | .hljs-addition { 60 | color: #55a532; 61 | background-color: #eaffea; 62 | } 63 | 64 | .hljs-deletion { 65 | color: #bd2c00; 66 | background-color: #ffecec; 67 | } 68 | 69 | .hljs-link { 70 | text-decoration: underline; 71 | } 72 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/github.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | github.com style (c) Vasily Polovnyov 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | color: #333; 12 | background: #f8f8f8; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #998; 18 | font-style: italic; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-subst { 24 | color: #333; 25 | font-weight: bold; 26 | } 27 | 28 | .hljs-number, 29 | .hljs-literal, 30 | .hljs-variable, 31 | .hljs-template-variable, 32 | .hljs-tag .hljs-attr { 33 | color: #008080; 34 | } 35 | 36 | .hljs-string, 37 | .hljs-doctag { 38 | color: #d14; 39 | } 40 | 41 | .hljs-title, 42 | .hljs-section, 43 | .hljs-selector-id { 44 | color: #900; 45 | font-weight: bold; 46 | } 47 | 48 | .hljs-subst { 49 | font-weight: normal; 50 | } 51 | 52 | .hljs-type, 53 | .hljs-class .hljs-title { 54 | color: #458; 55 | font-weight: bold; 56 | } 57 | 58 | .hljs-tag, 59 | .hljs-name, 60 | .hljs-attribute { 61 | color: #000080; 62 | font-weight: normal; 63 | } 64 | 65 | .hljs-regexp, 66 | .hljs-link { 67 | color: #009926; 68 | } 69 | 70 | .hljs-symbol, 71 | .hljs-bullet { 72 | color: #990073; 73 | } 74 | 75 | .hljs-built_in, 76 | .hljs-builtin-name { 77 | color: #0086b3; 78 | } 79 | 80 | .hljs-meta { 81 | color: #999; 82 | font-weight: bold; 83 | } 84 | 85 | .hljs-deletion { 86 | background: #fdd; 87 | } 88 | 89 | .hljs-addition { 90 | background: #dfd; 91 | } 92 | 93 | .hljs-emphasis { 94 | font-style: italic; 95 | } 96 | 97 | .hljs-strong { 98 | font-weight: bold; 99 | } 100 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/googlecode.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Google Code style (c) Aahan Krish 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: white; 12 | color: black; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #800; 18 | } 19 | 20 | .hljs-keyword, 21 | .hljs-selector-tag, 22 | .hljs-section, 23 | .hljs-title, 24 | .hljs-name { 25 | color: #008; 26 | } 27 | 28 | .hljs-variable, 29 | .hljs-template-variable { 30 | color: #660; 31 | } 32 | 33 | .hljs-string, 34 | .hljs-selector-attr, 35 | .hljs-selector-pseudo, 36 | .hljs-regexp { 37 | color: #080; 38 | } 39 | 40 | .hljs-literal, 41 | .hljs-symbol, 42 | .hljs-bullet, 43 | .hljs-meta, 44 | .hljs-number, 45 | .hljs-link { 46 | color: #066; 47 | } 48 | 49 | .hljs-title, 50 | .hljs-doctag, 51 | .hljs-type, 52 | .hljs-attr, 53 | .hljs-built_in, 54 | .hljs-builtin-name, 55 | .hljs-params { 56 | color: #606; 57 | } 58 | 59 | .hljs-attribute, 60 | .hljs-subst { 61 | color: #000; 62 | } 63 | 64 | .hljs-formula { 65 | background-color: #eee; 66 | font-style: italic; 67 | } 68 | 69 | .hljs-selector-id, 70 | .hljs-selector-class { 71 | color: #9B703F 72 | } 73 | 74 | .hljs-addition { 75 | background-color: #baeeba; 76 | } 77 | 78 | .hljs-deletion { 79 | background-color: #ffc8bd; 80 | } 81 | 82 | .hljs-doctag, 83 | .hljs-strong { 84 | font-weight: bold; 85 | } 86 | 87 | .hljs-emphasis { 88 | font-style: italic; 89 | } 90 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/gruvbox-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Gruvbox style (dark) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox) 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #282828; 12 | } 13 | 14 | .hljs, 15 | .hljs-subst { 16 | color: #ebdbb2; 17 | } 18 | 19 | /* Gruvbox Red */ 20 | .hljs-deletion, 21 | .hljs-formula, 22 | .hljs-keyword, 23 | .hljs-link, 24 | .hljs-selector-tag { 25 | color: #fb4934; 26 | } 27 | 28 | /* Gruvbox Blue */ 29 | .hljs-built_in, 30 | .hljs-emphasis, 31 | .hljs-name, 32 | .hljs-quote, 33 | .hljs-strong, 34 | .hljs-title, 35 | .hljs-variable { 36 | color: #83a598; 37 | } 38 | 39 | /* Gruvbox Yellow */ 40 | .hljs-attr, 41 | .hljs-params, 42 | .hljs-template-tag, 43 | .hljs-type { 44 | color: #fabd2f; 45 | } 46 | 47 | /* Gruvbox Purple */ 48 | .hljs-builtin-name, 49 | .hljs-doctag, 50 | .hljs-literal, 51 | .hljs-number { 52 | color: #8f3f71; 53 | } 54 | 55 | /* Gruvbox Orange */ 56 | .hljs-code, 57 | .hljs-meta, 58 | .hljs-regexp, 59 | .hljs-selector-id, 60 | .hljs-template-variable { 61 | color: #fe8019; 62 | } 63 | 64 | /* Gruvbox Green */ 65 | .hljs-addition, 66 | .hljs-meta-string, 67 | .hljs-section, 68 | .hljs-selector-attr, 69 | .hljs-selector-class, 70 | .hljs-string, 71 | .hljs-symbol { 72 | color: #b8bb26; 73 | } 74 | 75 | /* Gruvbox Aqua */ 76 | .hljs-attribute, 77 | .hljs-bullet, 78 | .hljs-class, 79 | .hljs-function, 80 | .hljs-function .hljs-keyword, 81 | .hljs-meta-keyword, 82 | .hljs-selector-pseudo, 83 | .hljs-tag { 84 | color: #8ec07c; 85 | } 86 | 87 | /* Gruvbox Gray */ 88 | .hljs-comment { 89 | color: #928374; 90 | } 91 | 92 | /* Gruvbox Purple */ 93 | .hljs-link_label, 94 | .hljs-literal, 95 | .hljs-number { 96 | color: #d3869b; 97 | } 98 | 99 | .hljs-comment, 100 | .hljs-emphasis { 101 | font-style: italic; 102 | } 103 | 104 | .hljs-section, 105 | .hljs-strong, 106 | .hljs-tag { 107 | font-weight: bold; 108 | } 109 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/gruvbox-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Gruvbox style (light) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox) 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #fbf1c7; 12 | } 13 | 14 | .hljs, 15 | .hljs-subst { 16 | color: #3c3836; 17 | } 18 | 19 | /* Gruvbox Red */ 20 | .hljs-deletion, 21 | .hljs-formula, 22 | .hljs-keyword, 23 | .hljs-link, 24 | .hljs-selector-tag { 25 | color: #9d0006; 26 | } 27 | 28 | /* Gruvbox Blue */ 29 | .hljs-built_in, 30 | .hljs-emphasis, 31 | .hljs-name, 32 | .hljs-quote, 33 | .hljs-strong, 34 | .hljs-title, 35 | .hljs-variable { 36 | color: #076678; 37 | } 38 | 39 | /* Gruvbox Yellow */ 40 | .hljs-attr, 41 | .hljs-params, 42 | .hljs-template-tag, 43 | .hljs-type { 44 | color: #b57614; 45 | } 46 | 47 | /* Gruvbox Purple */ 48 | .hljs-builtin-name, 49 | .hljs-doctag, 50 | .hljs-literal, 51 | .hljs-number { 52 | color: #8f3f71; 53 | } 54 | 55 | /* Gruvbox Orange */ 56 | .hljs-code, 57 | .hljs-meta, 58 | .hljs-regexp, 59 | .hljs-selector-id, 60 | .hljs-template-variable { 61 | color: #af3a03; 62 | } 63 | 64 | /* Gruvbox Green */ 65 | .hljs-addition, 66 | .hljs-meta-string, 67 | .hljs-section, 68 | .hljs-selector-attr, 69 | .hljs-selector-class, 70 | .hljs-string, 71 | .hljs-symbol { 72 | color: #79740e; 73 | } 74 | 75 | /* Gruvbox Aqua */ 76 | .hljs-attribute, 77 | .hljs-bullet, 78 | .hljs-class, 79 | .hljs-function, 80 | .hljs-function .hljs-keyword, 81 | .hljs-meta-keyword, 82 | .hljs-selector-pseudo, 83 | .hljs-tag { 84 | color: #427b58; 85 | } 86 | 87 | /* Gruvbox Gray */ 88 | .hljs-comment { 89 | color: #928374; 90 | } 91 | 92 | /* Gruvbox Purple */ 93 | .hljs-link_label, 94 | .hljs-literal, 95 | .hljs-number { 96 | color: #8f3f71; 97 | } 98 | 99 | .hljs-comment, 100 | .hljs-emphasis { 101 | font-style: italic; 102 | } 103 | 104 | .hljs-section, 105 | .hljs-strong, 106 | .hljs-tag { 107 | font-weight: bold; 108 | } 109 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/hopscotch.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Hopscotch 3 | * by Jan T. Sott 4 | * https://github.com/idleberg/Hopscotch 5 | * 6 | * This work is licensed under the Creative Commons CC0 1.0 Universal License 7 | */ 8 | 9 | /* Comment */ 10 | .hljs-comment, 11 | .hljs-quote { 12 | color: #989498; 13 | } 14 | 15 | /* Red */ 16 | .hljs-variable, 17 | .hljs-template-variable, 18 | .hljs-attribute, 19 | .hljs-tag, 20 | .hljs-name, 21 | .hljs-selector-id, 22 | .hljs-selector-class, 23 | .hljs-regexp, 24 | .hljs-link, 25 | .hljs-deletion { 26 | color: #dd464c; 27 | } 28 | 29 | /* Orange */ 30 | .hljs-number, 31 | .hljs-built_in, 32 | .hljs-builtin-name, 33 | .hljs-literal, 34 | .hljs-type, 35 | .hljs-params { 36 | color: #fd8b19; 37 | } 38 | 39 | /* Yellow */ 40 | .hljs-class .hljs-title { 41 | color: #fdcc59; 42 | } 43 | 44 | /* Green */ 45 | .hljs-string, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-addition { 49 | color: #8fc13e; 50 | } 51 | 52 | /* Aqua */ 53 | .hljs-meta { 54 | color: #149b93; 55 | } 56 | 57 | /* Blue */ 58 | .hljs-function, 59 | .hljs-section, 60 | .hljs-title { 61 | color: #1290bf; 62 | } 63 | 64 | /* Purple */ 65 | .hljs-keyword, 66 | .hljs-selector-tag { 67 | color: #c85e7c; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | background: #322931; 73 | color: #b9b5b8; 74 | padding: 0.5em; 75 | } 76 | 77 | .hljs-emphasis { 78 | font-style: italic; 79 | } 80 | 81 | .hljs-strong { 82 | font-weight: bold; 83 | } 84 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/hybrid.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid) 4 | 5 | */ 6 | 7 | /*background color*/ 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #1d1f21; 13 | } 14 | 15 | /*selection color*/ 16 | .hljs::selection, 17 | .hljs span::selection { 18 | background: #373b41; 19 | } 20 | 21 | .hljs::-moz-selection, 22 | .hljs span::-moz-selection { 23 | background: #373b41; 24 | } 25 | 26 | /*foreground color*/ 27 | .hljs { 28 | color: #c5c8c6; 29 | } 30 | 31 | /*color: fg_yellow*/ 32 | .hljs-title, 33 | .hljs-name { 34 | color: #f0c674; 35 | } 36 | 37 | /*color: fg_comment*/ 38 | .hljs-comment, 39 | .hljs-meta, 40 | .hljs-meta .hljs-keyword { 41 | color: #707880; 42 | } 43 | 44 | /*color: fg_red*/ 45 | .hljs-number, 46 | .hljs-symbol, 47 | .hljs-literal, 48 | .hljs-deletion, 49 | .hljs-link { 50 | color: #cc6666 51 | } 52 | 53 | /*color: fg_green*/ 54 | .hljs-string, 55 | .hljs-doctag, 56 | .hljs-addition, 57 | .hljs-regexp, 58 | .hljs-selector-attr, 59 | .hljs-selector-pseudo { 60 | color: #b5bd68; 61 | } 62 | 63 | /*color: fg_purple*/ 64 | .hljs-attribute, 65 | .hljs-code, 66 | .hljs-selector-id { 67 | color: #b294bb; 68 | } 69 | 70 | /*color: fg_blue*/ 71 | .hljs-keyword, 72 | .hljs-selector-tag, 73 | .hljs-bullet, 74 | .hljs-tag { 75 | color: #81a2be; 76 | } 77 | 78 | /*color: fg_aqua*/ 79 | .hljs-subst, 80 | .hljs-variable, 81 | .hljs-template-tag, 82 | .hljs-template-variable { 83 | color: #8abeb7; 84 | } 85 | 86 | /*color: fg_orange*/ 87 | .hljs-type, 88 | .hljs-built_in, 89 | .hljs-builtin-name, 90 | .hljs-quote, 91 | .hljs-section, 92 | .hljs-selector-class { 93 | color: #de935f; 94 | } 95 | 96 | .hljs-emphasis { 97 | font-style: italic; 98 | } 99 | 100 | .hljs-strong { 101 | font-weight: bold; 102 | } 103 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/idea.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Intellij Idea-like styling (c) Vasily Polovnyov 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | color: #000; 12 | background: #fff; 13 | } 14 | 15 | .hljs-subst, 16 | .hljs-title { 17 | font-weight: normal; 18 | color: #000; 19 | } 20 | 21 | .hljs-comment, 22 | .hljs-quote { 23 | color: #808080; 24 | font-style: italic; 25 | } 26 | 27 | .hljs-meta { 28 | color: #808000; 29 | } 30 | 31 | .hljs-tag { 32 | background: #efefef; 33 | } 34 | 35 | .hljs-section, 36 | .hljs-name, 37 | .hljs-literal, 38 | .hljs-keyword, 39 | .hljs-selector-tag, 40 | .hljs-type, 41 | .hljs-selector-id, 42 | .hljs-selector-class { 43 | font-weight: bold; 44 | color: #000080; 45 | } 46 | 47 | .hljs-attribute, 48 | .hljs-number, 49 | .hljs-regexp, 50 | .hljs-link { 51 | font-weight: bold; 52 | color: #0000ff; 53 | } 54 | 55 | .hljs-number, 56 | .hljs-regexp, 57 | .hljs-link { 58 | font-weight: normal; 59 | } 60 | 61 | .hljs-string { 62 | color: #008000; 63 | font-weight: bold; 64 | } 65 | 66 | .hljs-symbol, 67 | .hljs-bullet, 68 | .hljs-formula { 69 | color: #000; 70 | background: #d0eded; 71 | font-style: italic; 72 | } 73 | 74 | .hljs-doctag { 75 | text-decoration: underline; 76 | } 77 | 78 | .hljs-variable, 79 | .hljs-template-variable { 80 | color: #660e7a; 81 | } 82 | 83 | .hljs-addition { 84 | background: #baeeba; 85 | } 86 | 87 | .hljs-deletion { 88 | background: #ffc8bd; 89 | } 90 | 91 | .hljs-emphasis { 92 | font-style: italic; 93 | } 94 | 95 | .hljs-strong { 96 | font-weight: bold; 97 | } 98 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/ir-black.css: -------------------------------------------------------------------------------- 1 | /* 2 | IR_Black style (c) Vasily Mikhailitchenko 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | background: #000; 10 | color: #f8f8f8; 11 | } 12 | 13 | .hljs-comment, 14 | .hljs-quote, 15 | .hljs-meta { 16 | color: #7c7c7c; 17 | } 18 | 19 | .hljs-keyword, 20 | .hljs-selector-tag, 21 | .hljs-tag, 22 | .hljs-name { 23 | color: #96cbfe; 24 | } 25 | 26 | .hljs-attribute, 27 | .hljs-selector-id { 28 | color: #ffffb6; 29 | } 30 | 31 | .hljs-string, 32 | .hljs-selector-attr, 33 | .hljs-selector-pseudo, 34 | .hljs-addition { 35 | color: #a8ff60; 36 | } 37 | 38 | .hljs-subst { 39 | color: #daefa3; 40 | } 41 | 42 | .hljs-regexp, 43 | .hljs-link { 44 | color: #e9c062; 45 | } 46 | 47 | .hljs-title, 48 | .hljs-section, 49 | .hljs-type, 50 | .hljs-doctag { 51 | color: #ffffb6; 52 | } 53 | 54 | .hljs-symbol, 55 | .hljs-bullet, 56 | .hljs-variable, 57 | .hljs-template-variable, 58 | .hljs-literal { 59 | color: #c6c5fe; 60 | } 61 | 62 | .hljs-number, 63 | .hljs-deletion { 64 | color:#ff73fd; 65 | } 66 | 67 | .hljs-emphasis { 68 | font-style: italic; 69 | } 70 | 71 | .hljs-strong { 72 | font-weight: bold; 73 | } 74 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/kimbie.dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | Name: Kimbie (dark) 3 | Author: Jan T. Sott 4 | License: Creative Commons Attribution-ShareAlike 4.0 Unported License 5 | URL: https://github.com/idleberg/Kimbie-highlight.js 6 | */ 7 | 8 | /* Kimbie Comment */ 9 | .hljs-comment, 10 | .hljs-quote { 11 | color: #d6baad; 12 | } 13 | 14 | /* Kimbie Red */ 15 | .hljs-variable, 16 | .hljs-template-variable, 17 | .hljs-tag, 18 | .hljs-name, 19 | .hljs-selector-id, 20 | .hljs-selector-class, 21 | .hljs-regexp, 22 | .hljs-meta { 23 | color: #dc3958; 24 | } 25 | 26 | /* Kimbie Orange */ 27 | .hljs-number, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params, 33 | .hljs-deletion, 34 | .hljs-link { 35 | color: #f79a32; 36 | } 37 | 38 | /* Kimbie Yellow */ 39 | .hljs-title, 40 | .hljs-section, 41 | .hljs-attribute { 42 | color: #f06431; 43 | } 44 | 45 | /* Kimbie Green */ 46 | .hljs-string, 47 | .hljs-symbol, 48 | .hljs-bullet, 49 | .hljs-addition { 50 | color: #889b4a; 51 | } 52 | 53 | /* Kimbie Purple */ 54 | .hljs-keyword, 55 | .hljs-selector-tag, 56 | .hljs-function { 57 | color: #98676a; 58 | } 59 | 60 | .hljs { 61 | display: block; 62 | overflow-x: auto; 63 | background: #221a0f; 64 | color: #d3af86; 65 | padding: 0.5em; 66 | } 67 | 68 | .hljs-emphasis { 69 | font-style: italic; 70 | } 71 | 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/kimbie.light.css: -------------------------------------------------------------------------------- 1 | /* 2 | Name: Kimbie (light) 3 | Author: Jan T. Sott 4 | License: Creative Commons Attribution-ShareAlike 4.0 Unported License 5 | URL: https://github.com/idleberg/Kimbie-highlight.js 6 | */ 7 | 8 | /* Kimbie Comment */ 9 | .hljs-comment, 10 | .hljs-quote { 11 | color: #a57a4c; 12 | } 13 | 14 | /* Kimbie Red */ 15 | .hljs-variable, 16 | .hljs-template-variable, 17 | .hljs-tag, 18 | .hljs-name, 19 | .hljs-selector-id, 20 | .hljs-selector-class, 21 | .hljs-regexp, 22 | .hljs-meta { 23 | color: #dc3958; 24 | } 25 | 26 | /* Kimbie Orange */ 27 | .hljs-number, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params, 33 | .hljs-deletion, 34 | .hljs-link { 35 | color: #f79a32; 36 | } 37 | 38 | /* Kimbie Yellow */ 39 | .hljs-title, 40 | .hljs-section, 41 | .hljs-attribute { 42 | color: #f06431; 43 | } 44 | 45 | /* Kimbie Green */ 46 | .hljs-string, 47 | .hljs-symbol, 48 | .hljs-bullet, 49 | .hljs-addition { 50 | color: #889b4a; 51 | } 52 | 53 | /* Kimbie Purple */ 54 | .hljs-keyword, 55 | .hljs-selector-tag, 56 | .hljs-function { 57 | color: #98676a; 58 | } 59 | 60 | .hljs { 61 | display: block; 62 | overflow-x: auto; 63 | background: #fbebd4; 64 | color: #84613d; 65 | padding: 0.5em; 66 | } 67 | 68 | .hljs-emphasis { 69 | font-style: italic; 70 | } 71 | 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/magula.css: -------------------------------------------------------------------------------- 1 | /* 2 | Description: Magula style for highligh.js 3 | Author: Ruslan Keba 4 | Website: http://rukeba.com/ 5 | Version: 1.0 6 | Date: 2009-01-03 7 | Music: Aphex Twin / Xtal 8 | */ 9 | 10 | .hljs { 11 | display: block; 12 | overflow-x: auto; 13 | padding: 0.5em; 14 | background-color: #f4f4f4; 15 | } 16 | 17 | .hljs, 18 | .hljs-subst { 19 | color: black; 20 | } 21 | 22 | .hljs-string, 23 | .hljs-title, 24 | .hljs-symbol, 25 | .hljs-bullet, 26 | .hljs-attribute, 27 | .hljs-addition, 28 | .hljs-variable, 29 | .hljs-template-tag, 30 | .hljs-template-variable { 31 | color: #050; 32 | } 33 | 34 | .hljs-comment, 35 | .hljs-quote { 36 | color: #777; 37 | } 38 | 39 | .hljs-number, 40 | .hljs-regexp, 41 | .hljs-literal, 42 | .hljs-type, 43 | .hljs-link { 44 | color: #800; 45 | } 46 | 47 | .hljs-deletion, 48 | .hljs-meta { 49 | color: #00e; 50 | } 51 | 52 | .hljs-keyword, 53 | .hljs-selector-tag, 54 | .hljs-doctag, 55 | .hljs-title, 56 | .hljs-section, 57 | .hljs-built_in, 58 | .hljs-tag, 59 | .hljs-name { 60 | font-weight: bold; 61 | color: navy; 62 | } 63 | 64 | .hljs-emphasis { 65 | font-style: italic; 66 | } 67 | 68 | .hljs-strong { 69 | font-weight: bold; 70 | } 71 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/mono-blue.css: -------------------------------------------------------------------------------- 1 | /* 2 | Five-color theme from a single blue hue. 3 | */ 4 | .hljs { 5 | display: block; 6 | overflow-x: auto; 7 | padding: 0.5em; 8 | background: #eaeef3; 9 | } 10 | 11 | .hljs { 12 | color: #00193a; 13 | } 14 | 15 | .hljs-keyword, 16 | .hljs-selector-tag, 17 | .hljs-title, 18 | .hljs-section, 19 | .hljs-doctag, 20 | .hljs-name, 21 | .hljs-strong { 22 | font-weight: bold; 23 | } 24 | 25 | .hljs-comment { 26 | color: #738191; 27 | } 28 | 29 | .hljs-string, 30 | .hljs-title, 31 | .hljs-section, 32 | .hljs-built_in, 33 | .hljs-literal, 34 | .hljs-type, 35 | .hljs-addition, 36 | .hljs-tag, 37 | .hljs-quote, 38 | .hljs-name, 39 | .hljs-selector-id, 40 | .hljs-selector-class { 41 | color: #0048ab; 42 | } 43 | 44 | .hljs-meta, 45 | .hljs-subst, 46 | .hljs-symbol, 47 | .hljs-regexp, 48 | .hljs-attribute, 49 | .hljs-deletion, 50 | .hljs-variable, 51 | .hljs-template-variable, 52 | .hljs-link, 53 | .hljs-bullet { 54 | color: #4c81c9; 55 | } 56 | 57 | .hljs-emphasis { 58 | font-style: italic; 59 | } 60 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/monokai-sublime.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #23241f; 12 | } 13 | 14 | .hljs, 15 | .hljs-tag, 16 | .hljs-subst { 17 | color: #f8f8f2; 18 | } 19 | 20 | .hljs-strong, 21 | .hljs-emphasis { 22 | color: #a8a8a2; 23 | } 24 | 25 | .hljs-bullet, 26 | .hljs-quote, 27 | .hljs-number, 28 | .hljs-regexp, 29 | .hljs-literal, 30 | .hljs-link { 31 | color: #ae81ff; 32 | } 33 | 34 | .hljs-code, 35 | .hljs-title, 36 | .hljs-section, 37 | .hljs-selector-class { 38 | color: #a6e22e; 39 | } 40 | 41 | .hljs-strong { 42 | font-weight: bold; 43 | } 44 | 45 | .hljs-emphasis { 46 | font-style: italic; 47 | } 48 | 49 | .hljs-keyword, 50 | .hljs-selector-tag, 51 | .hljs-name, 52 | .hljs-attr { 53 | color: #f92672; 54 | } 55 | 56 | .hljs-symbol, 57 | .hljs-attribute { 58 | color: #66d9ef; 59 | } 60 | 61 | .hljs-params, 62 | .hljs-class .hljs-title { 63 | color: #f8f8f2; 64 | } 65 | 66 | .hljs-string, 67 | .hljs-type, 68 | .hljs-built_in, 69 | .hljs-builtin-name, 70 | .hljs-selector-id, 71 | .hljs-selector-attr, 72 | .hljs-selector-pseudo, 73 | .hljs-addition, 74 | .hljs-variable, 75 | .hljs-template-variable { 76 | color: #e6db74; 77 | } 78 | 79 | .hljs-comment, 80 | .hljs-deletion, 81 | .hljs-meta { 82 | color: #75715e; 83 | } 84 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/monokai.css: -------------------------------------------------------------------------------- 1 | /* 2 | Monokai style - ported by Luigi Maselli - http://grigio.org 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | background: #272822; color: #ddd; 10 | } 11 | 12 | .hljs-tag, 13 | .hljs-keyword, 14 | .hljs-selector-tag, 15 | .hljs-literal, 16 | .hljs-strong, 17 | .hljs-name { 18 | color: #f92672; 19 | } 20 | 21 | .hljs-code { 22 | color: #66d9ef; 23 | } 24 | 25 | .hljs-class .hljs-title { 26 | color: white; 27 | } 28 | 29 | .hljs-attribute, 30 | .hljs-symbol, 31 | .hljs-regexp, 32 | .hljs-link { 33 | color: #bf79db; 34 | } 35 | 36 | .hljs-string, 37 | .hljs-bullet, 38 | .hljs-subst, 39 | .hljs-title, 40 | .hljs-section, 41 | .hljs-emphasis, 42 | .hljs-type, 43 | .hljs-built_in, 44 | .hljs-builtin-name, 45 | .hljs-selector-attr, 46 | .hljs-selector-pseudo, 47 | .hljs-addition, 48 | .hljs-variable, 49 | .hljs-template-tag, 50 | .hljs-template-variable { 51 | color: #a6e22e; 52 | } 53 | 54 | .hljs-comment, 55 | .hljs-quote, 56 | .hljs-deletion, 57 | .hljs-meta { 58 | color: #75715e; 59 | } 60 | 61 | .hljs-keyword, 62 | .hljs-selector-tag, 63 | .hljs-literal, 64 | .hljs-doctag, 65 | .hljs-title, 66 | .hljs-section, 67 | .hljs-type, 68 | .hljs-selector-id { 69 | font-weight: bold; 70 | } 71 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/obsidian.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Obsidian style 3 | * ported by Alexander Marenin (http://github.com/ioncreature) 4 | */ 5 | 6 | .hljs { 7 | display: block; 8 | overflow-x: auto; 9 | padding: 0.5em; 10 | background: #282b2e; 11 | } 12 | 13 | .hljs-keyword, 14 | .hljs-selector-tag, 15 | .hljs-literal, 16 | .hljs-selector-id { 17 | color: #93c763; 18 | } 19 | 20 | .hljs-number { 21 | color: #ffcd22; 22 | } 23 | 24 | .hljs { 25 | color: #e0e2e4; 26 | } 27 | 28 | .hljs-attribute { 29 | color: #668bb0; 30 | } 31 | 32 | .hljs-code, 33 | .hljs-class .hljs-title, 34 | .hljs-section { 35 | color: white; 36 | } 37 | 38 | .hljs-regexp, 39 | .hljs-link { 40 | color: #d39745; 41 | } 42 | 43 | .hljs-meta { 44 | color: #557182; 45 | } 46 | 47 | .hljs-tag, 48 | .hljs-name, 49 | .hljs-bullet, 50 | .hljs-subst, 51 | .hljs-emphasis, 52 | .hljs-type, 53 | .hljs-built_in, 54 | .hljs-selector-attr, 55 | .hljs-selector-pseudo, 56 | .hljs-addition, 57 | .hljs-variable, 58 | .hljs-template-tag, 59 | .hljs-template-variable { 60 | color: #8cbbad; 61 | } 62 | 63 | .hljs-string, 64 | .hljs-symbol { 65 | color: #ec7600; 66 | } 67 | 68 | .hljs-comment, 69 | .hljs-quote, 70 | .hljs-deletion { 71 | color: #818e96; 72 | } 73 | 74 | .hljs-selector-class { 75 | color: #A082BD 76 | } 77 | 78 | .hljs-keyword, 79 | .hljs-selector-tag, 80 | .hljs-literal, 81 | .hljs-doctag, 82 | .hljs-title, 83 | .hljs-section, 84 | .hljs-type, 85 | .hljs-name, 86 | .hljs-strong { 87 | font-weight: bold; 88 | } 89 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/ocean.css: -------------------------------------------------------------------------------- 1 | /* Ocean Dark Theme */ 2 | /* https://github.com/gavsiu */ 3 | /* Original theme - https://github.com/chriskempson/base16 */ 4 | 5 | /* Ocean Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #65737e; 9 | } 10 | 11 | /* Ocean Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-tag, 15 | .hljs-name, 16 | .hljs-selector-id, 17 | .hljs-selector-class, 18 | .hljs-regexp, 19 | .hljs-deletion { 20 | color: #bf616a; 21 | } 22 | 23 | /* Ocean Orange */ 24 | .hljs-number, 25 | .hljs-built_in, 26 | .hljs-builtin-name, 27 | .hljs-literal, 28 | .hljs-type, 29 | .hljs-params, 30 | .hljs-meta, 31 | .hljs-link { 32 | color: #d08770; 33 | } 34 | 35 | /* Ocean Yellow */ 36 | .hljs-attribute { 37 | color: #ebcb8b; 38 | } 39 | 40 | /* Ocean Green */ 41 | .hljs-string, 42 | .hljs-symbol, 43 | .hljs-bullet, 44 | .hljs-addition { 45 | color: #a3be8c; 46 | } 47 | 48 | /* Ocean Blue */ 49 | .hljs-title, 50 | .hljs-section { 51 | color: #8fa1b3; 52 | } 53 | 54 | /* Ocean Purple */ 55 | .hljs-keyword, 56 | .hljs-selector-tag { 57 | color: #b48ead; 58 | } 59 | 60 | .hljs { 61 | display: block; 62 | overflow-x: auto; 63 | background: #2b303b; 64 | color: #c0c5ce; 65 | padding: 0.5em; 66 | } 67 | 68 | .hljs-emphasis { 69 | font-style: italic; 70 | } 71 | 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/paraiso-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | Paraíso (dark) 3 | Created by Jan T. Sott (http://github.com/idleberg) 4 | Inspired by the art of Rubens LP (http://www.rubenslp.com.br) 5 | */ 6 | 7 | /* Paraíso Comment */ 8 | .hljs-comment, 9 | .hljs-quote { 10 | color: #8d8687; 11 | } 12 | 13 | /* Paraíso Red */ 14 | .hljs-variable, 15 | .hljs-template-variable, 16 | .hljs-tag, 17 | .hljs-name, 18 | .hljs-selector-id, 19 | .hljs-selector-class, 20 | .hljs-regexp, 21 | .hljs-link, 22 | .hljs-meta { 23 | color: #ef6155; 24 | } 25 | 26 | /* Paraíso Orange */ 27 | .hljs-number, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params, 33 | .hljs-deletion { 34 | color: #f99b15; 35 | } 36 | 37 | /* Paraíso Yellow */ 38 | .hljs-title, 39 | .hljs-section, 40 | .hljs-attribute { 41 | color: #fec418; 42 | } 43 | 44 | /* Paraíso Green */ 45 | .hljs-string, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-addition { 49 | color: #48b685; 50 | } 51 | 52 | /* Paraíso Purple */ 53 | .hljs-keyword, 54 | .hljs-selector-tag { 55 | color: #815ba4; 56 | } 57 | 58 | .hljs { 59 | display: block; 60 | overflow-x: auto; 61 | background: #2f1e2e; 62 | color: #a39e9b; 63 | padding: 0.5em; 64 | } 65 | 66 | .hljs-emphasis { 67 | font-style: italic; 68 | } 69 | 70 | .hljs-strong { 71 | font-weight: bold; 72 | } 73 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/paraiso-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | Paraíso (light) 3 | Created by Jan T. Sott (http://github.com/idleberg) 4 | Inspired by the art of Rubens LP (http://www.rubenslp.com.br) 5 | */ 6 | 7 | /* Paraíso Comment */ 8 | .hljs-comment, 9 | .hljs-quote { 10 | color: #776e71; 11 | } 12 | 13 | /* Paraíso Red */ 14 | .hljs-variable, 15 | .hljs-template-variable, 16 | .hljs-tag, 17 | .hljs-name, 18 | .hljs-selector-id, 19 | .hljs-selector-class, 20 | .hljs-regexp, 21 | .hljs-link, 22 | .hljs-meta { 23 | color: #ef6155; 24 | } 25 | 26 | /* Paraíso Orange */ 27 | .hljs-number, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params, 33 | .hljs-deletion { 34 | color: #f99b15; 35 | } 36 | 37 | /* Paraíso Yellow */ 38 | .hljs-title, 39 | .hljs-section, 40 | .hljs-attribute { 41 | color: #fec418; 42 | } 43 | 44 | /* Paraíso Green */ 45 | .hljs-string, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-addition { 49 | color: #48b685; 50 | } 51 | 52 | /* Paraíso Purple */ 53 | .hljs-keyword, 54 | .hljs-selector-tag { 55 | color: #815ba4; 56 | } 57 | 58 | .hljs { 59 | display: block; 60 | overflow-x: auto; 61 | background: #e7e9db; 62 | color: #4f424c; 63 | padding: 0.5em; 64 | } 65 | 66 | .hljs-emphasis { 67 | font-style: italic; 68 | } 69 | 70 | .hljs-strong { 71 | font-weight: bold; 72 | } 73 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/pojoaque.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Pojoaque Style by Jason Tate 4 | http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html 5 | Based on Solarized Style from http://ethanschoonover.com/solarized 6 | 7 | */ 8 | 9 | .hljs { 10 | display: block; 11 | overflow-x: auto; 12 | padding: 0.5em; 13 | color: #dccf8f; 14 | background: url(./pojoaque.jpg) repeat scroll left top #181914; 15 | } 16 | 17 | .hljs-comment, 18 | .hljs-quote { 19 | color: #586e75; 20 | font-style: italic; 21 | } 22 | 23 | .hljs-keyword, 24 | .hljs-selector-tag, 25 | .hljs-literal, 26 | .hljs-addition { 27 | color: #b64926; 28 | } 29 | 30 | .hljs-number, 31 | .hljs-string, 32 | .hljs-doctag, 33 | .hljs-regexp { 34 | color: #468966; 35 | } 36 | 37 | .hljs-title, 38 | .hljs-section, 39 | .hljs-built_in, 40 | .hljs-name { 41 | color: #ffb03b; 42 | } 43 | 44 | .hljs-variable, 45 | .hljs-template-variable, 46 | .hljs-class .hljs-title, 47 | .hljs-type, 48 | .hljs-tag { 49 | color: #b58900; 50 | } 51 | 52 | .hljs-attribute { 53 | color: #b89859; 54 | } 55 | 56 | .hljs-symbol, 57 | .hljs-bullet, 58 | .hljs-link, 59 | .hljs-subst, 60 | .hljs-meta { 61 | color: #cb4b16; 62 | } 63 | 64 | .hljs-deletion { 65 | color: #dc322f; 66 | } 67 | 68 | .hljs-selector-id, 69 | .hljs-selector-class { 70 | color: #d3a60c; 71 | } 72 | 73 | .hljs-formula { 74 | background: #073642; 75 | } 76 | 77 | .hljs-emphasis { 78 | font-style: italic; 79 | } 80 | 81 | .hljs-strong { 82 | font-weight: bold; 83 | } 84 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/pojoaque.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/highlight/styles/pojoaque.jpg -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/qtcreator_dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Qt Creator dark color scheme 4 | 5 | */ 6 | 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #000000; 13 | } 14 | 15 | .hljs, 16 | .hljs-subst, 17 | .hljs-tag, 18 | .hljs-title { 19 | color: #aaaaaa; 20 | } 21 | 22 | .hljs-strong, 23 | .hljs-emphasis { 24 | color: #a8a8a2; 25 | } 26 | 27 | .hljs-bullet, 28 | .hljs-quote, 29 | .hljs-number, 30 | .hljs-regexp, 31 | .hljs-literal { 32 | color: #ff55ff; 33 | } 34 | 35 | .hljs-code 36 | .hljs-selector-class { 37 | color: #aaaaff; 38 | } 39 | 40 | .hljs-emphasis, 41 | .hljs-stronge, 42 | .hljs-type { 43 | font-style: italic; 44 | } 45 | 46 | .hljs-keyword, 47 | .hljs-selector-tag, 48 | .hljs-function, 49 | .hljs-section, 50 | .hljs-symbol, 51 | .hljs-name { 52 | color: #ffff55; 53 | } 54 | 55 | .hljs-attribute { 56 | color: #ff5555; 57 | } 58 | 59 | .hljs-variable, 60 | .hljs-params, 61 | .hljs-class .hljs-title { 62 | color: #8888ff; 63 | } 64 | 65 | .hljs-string, 66 | .hljs-selector-id, 67 | .hljs-selector-attr, 68 | .hljs-selector-pseudo, 69 | .hljs-type, 70 | .hljs-built_in, 71 | .hljs-builtin-name, 72 | .hljs-template-tag, 73 | .hljs-template-variable, 74 | .hljs-addition, 75 | .hljs-link { 76 | color: #ff55ff; 77 | } 78 | 79 | .hljs-comment, 80 | .hljs-meta, 81 | .hljs-deletion { 82 | color: #55ffff; 83 | } 84 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/qtcreator_light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Qt Creator light color scheme 4 | 5 | */ 6 | 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #ffffff; 13 | } 14 | 15 | .hljs, 16 | .hljs-subst, 17 | .hljs-tag, 18 | .hljs-title { 19 | color: #000000; 20 | } 21 | 22 | .hljs-strong, 23 | .hljs-emphasis { 24 | color: #000000; 25 | } 26 | 27 | .hljs-bullet, 28 | .hljs-quote, 29 | .hljs-number, 30 | .hljs-regexp, 31 | .hljs-literal { 32 | color: #000080; 33 | } 34 | 35 | .hljs-code 36 | .hljs-selector-class { 37 | color: #800080; 38 | } 39 | 40 | .hljs-emphasis, 41 | .hljs-stronge, 42 | .hljs-type { 43 | font-style: italic; 44 | } 45 | 46 | .hljs-keyword, 47 | .hljs-selector-tag, 48 | .hljs-function, 49 | .hljs-section, 50 | .hljs-symbol, 51 | .hljs-name { 52 | color: #808000; 53 | } 54 | 55 | .hljs-attribute { 56 | color: #800000; 57 | } 58 | 59 | .hljs-variable, 60 | .hljs-params, 61 | .hljs-class .hljs-title { 62 | color: #0055AF; 63 | } 64 | 65 | .hljs-string, 66 | .hljs-selector-id, 67 | .hljs-selector-attr, 68 | .hljs-selector-pseudo, 69 | .hljs-type, 70 | .hljs-built_in, 71 | .hljs-builtin-name, 72 | .hljs-template-tag, 73 | .hljs-template-variable, 74 | .hljs-addition, 75 | .hljs-link { 76 | color: #008000; 77 | } 78 | 79 | .hljs-comment, 80 | .hljs-meta, 81 | .hljs-deletion { 82 | color: #008000; 83 | } 84 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/railscasts.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Railscasts-like style (c) Visoft, Inc. (Damien White) 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #232323; 12 | color: #e6e1dc; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #bc9458; 18 | font-style: italic; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag { 23 | color: #c26230; 24 | } 25 | 26 | .hljs-string, 27 | .hljs-number, 28 | .hljs-regexp, 29 | .hljs-variable, 30 | .hljs-template-variable { 31 | color: #a5c261; 32 | } 33 | 34 | .hljs-subst { 35 | color: #519f50; 36 | } 37 | 38 | .hljs-tag, 39 | .hljs-name { 40 | color: #e8bf6a; 41 | } 42 | 43 | .hljs-type { 44 | color: #da4939; 45 | } 46 | 47 | 48 | .hljs-symbol, 49 | .hljs-bullet, 50 | .hljs-built_in, 51 | .hljs-builtin-name, 52 | .hljs-attr, 53 | .hljs-link { 54 | color: #6d9cbe; 55 | } 56 | 57 | .hljs-params { 58 | color: #d0d0ff; 59 | } 60 | 61 | .hljs-attribute { 62 | color: #cda869; 63 | } 64 | 65 | .hljs-meta { 66 | color: #9b859d; 67 | } 68 | 69 | .hljs-title, 70 | .hljs-section { 71 | color: #ffc66d; 72 | } 73 | 74 | .hljs-addition { 75 | background-color: #144212; 76 | color: #e6e1dc; 77 | display: inline-block; 78 | width: 100%; 79 | } 80 | 81 | .hljs-deletion { 82 | background-color: #600; 83 | color: #e6e1dc; 84 | display: inline-block; 85 | width: 100%; 86 | } 87 | 88 | .hljs-selector-class { 89 | color: #9b703f; 90 | } 91 | 92 | .hljs-selector-id { 93 | color: #8b98ab; 94 | } 95 | 96 | .hljs-emphasis { 97 | font-style: italic; 98 | } 99 | 100 | .hljs-strong { 101 | font-weight: bold; 102 | } 103 | 104 | .hljs-link { 105 | text-decoration: underline; 106 | } 107 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/rainbow.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Style with support for rainbow parens 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #474949; 12 | color: #d1d9e1; 13 | } 14 | 15 | 16 | .hljs-comment, 17 | .hljs-quote { 18 | color: #969896; 19 | font-style: italic; 20 | } 21 | 22 | .hljs-keyword, 23 | .hljs-selector-tag, 24 | .hljs-literal, 25 | .hljs-type, 26 | .hljs-addition { 27 | color: #cc99cc; 28 | } 29 | 30 | .hljs-number, 31 | .hljs-selector-attr, 32 | .hljs-selector-pseudo { 33 | color: #f99157; 34 | } 35 | 36 | .hljs-string, 37 | .hljs-doctag, 38 | .hljs-regexp { 39 | color: #8abeb7; 40 | } 41 | 42 | .hljs-title, 43 | .hljs-name, 44 | .hljs-section, 45 | .hljs-built_in { 46 | color: #b5bd68; 47 | } 48 | 49 | .hljs-variable, 50 | .hljs-template-variable, 51 | .hljs-selector-id, 52 | .hljs-class .hljs-title { 53 | color: #ffcc66; 54 | } 55 | 56 | .hljs-section, 57 | .hljs-name, 58 | .hljs-strong { 59 | font-weight: bold; 60 | } 61 | 62 | .hljs-symbol, 63 | .hljs-bullet, 64 | .hljs-subst, 65 | .hljs-meta, 66 | .hljs-link { 67 | color: #f99157; 68 | } 69 | 70 | .hljs-deletion { 71 | color: #dc322f; 72 | } 73 | 74 | .hljs-formula { 75 | background: #eee8d5; 76 | } 77 | 78 | .hljs-attr, 79 | .hljs-attribute { 80 | color: #81a2be; 81 | } 82 | 83 | .hljs-emphasis { 84 | font-style: italic; 85 | } 86 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/routeros.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | highlight.js style for Microtik RouterOS script 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #F0F0F0; 12 | } 13 | 14 | /* Base color: saturation 0; */ 15 | 16 | .hljs, 17 | .hljs-subst { 18 | color: #444; 19 | } 20 | 21 | .hljs-comment { 22 | color: #888888; 23 | } 24 | 25 | .hljs-keyword, 26 | .hljs-selector-tag, 27 | .hljs-meta-keyword, 28 | .hljs-doctag, 29 | .hljs-name { 30 | font-weight: bold; 31 | } 32 | 33 | .hljs-attribute { 34 | color: #0E9A00; 35 | } 36 | 37 | .hljs-function { 38 | color: #99069A; 39 | } 40 | 41 | .hljs-builtin-name { 42 | color: #99069A; 43 | } 44 | 45 | /* User color: hue: 0 */ 46 | 47 | .hljs-type, 48 | .hljs-string, 49 | .hljs-number, 50 | .hljs-selector-id, 51 | .hljs-selector-class, 52 | .hljs-quote, 53 | .hljs-template-tag, 54 | .hljs-deletion { 55 | color: #880000; 56 | } 57 | 58 | .hljs-title, 59 | .hljs-section { 60 | color: #880000; 61 | font-weight: bold; 62 | } 63 | 64 | .hljs-regexp, 65 | .hljs-symbol, 66 | .hljs-variable, 67 | .hljs-template-variable, 68 | .hljs-link, 69 | .hljs-selector-attr, 70 | .hljs-selector-pseudo { 71 | color: #BC6060; 72 | } 73 | 74 | 75 | /* Language color: hue: 90; */ 76 | 77 | .hljs-literal { 78 | color: #78A960; 79 | } 80 | 81 | .hljs-built_in, 82 | .hljs-bullet, 83 | .hljs-code, 84 | .hljs-addition { 85 | color: #0C9A9A; 86 | } 87 | 88 | 89 | /* Meta color: hue: 200 */ 90 | 91 | .hljs-meta { 92 | color: #1f7199; 93 | } 94 | 95 | .hljs-meta-string { 96 | color: #4d99bf; 97 | } 98 | 99 | 100 | /* Misc effects */ 101 | 102 | .hljs-emphasis { 103 | font-style: italic; 104 | } 105 | 106 | .hljs-strong { 107 | font-weight: bold; 108 | } 109 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/school-book.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | School Book style from goldblog.com.ua (c) Zaripov Yura 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 15px 0.5em 0.5em 30px; 11 | font-size: 11px; 12 | line-height:16px; 13 | } 14 | 15 | pre{ 16 | background:#f6f6ae url(./school-book.png); 17 | border-top: solid 2px #d2e8b9; 18 | border-bottom: solid 1px #d2e8b9; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-literal { 24 | color:#005599; 25 | font-weight:bold; 26 | } 27 | 28 | .hljs, 29 | .hljs-subst { 30 | color: #3e5915; 31 | } 32 | 33 | .hljs-string, 34 | .hljs-title, 35 | .hljs-section, 36 | .hljs-type, 37 | .hljs-symbol, 38 | .hljs-bullet, 39 | .hljs-attribute, 40 | .hljs-built_in, 41 | .hljs-builtin-name, 42 | .hljs-addition, 43 | .hljs-variable, 44 | .hljs-template-tag, 45 | .hljs-template-variable, 46 | .hljs-link { 47 | color: #2c009f; 48 | } 49 | 50 | .hljs-comment, 51 | .hljs-quote, 52 | .hljs-deletion, 53 | .hljs-meta { 54 | color: #e60415; 55 | } 56 | 57 | .hljs-keyword, 58 | .hljs-selector-tag, 59 | .hljs-literal, 60 | .hljs-doctag, 61 | .hljs-title, 62 | .hljs-section, 63 | .hljs-type, 64 | .hljs-name, 65 | .hljs-selector-id, 66 | .hljs-strong { 67 | font-weight: bold; 68 | } 69 | 70 | .hljs-emphasis { 71 | font-style: italic; 72 | } 73 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/school-book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/highlight/styles/school-book.png -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/solarized-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #002b36; 12 | color: #839496; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #586e75; 18 | } 19 | 20 | /* Solarized Green */ 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-addition { 24 | color: #859900; 25 | } 26 | 27 | /* Solarized Cyan */ 28 | .hljs-number, 29 | .hljs-string, 30 | .hljs-meta .hljs-meta-string, 31 | .hljs-literal, 32 | .hljs-doctag, 33 | .hljs-regexp { 34 | color: #2aa198; 35 | } 36 | 37 | /* Solarized Blue */ 38 | .hljs-title, 39 | .hljs-section, 40 | .hljs-name, 41 | .hljs-selector-id, 42 | .hljs-selector-class { 43 | color: #268bd2; 44 | } 45 | 46 | /* Solarized Yellow */ 47 | .hljs-attribute, 48 | .hljs-attr, 49 | .hljs-variable, 50 | .hljs-template-variable, 51 | .hljs-class .hljs-title, 52 | .hljs-type { 53 | color: #b58900; 54 | } 55 | 56 | /* Solarized Orange */ 57 | .hljs-symbol, 58 | .hljs-bullet, 59 | .hljs-subst, 60 | .hljs-meta, 61 | .hljs-meta .hljs-keyword, 62 | .hljs-selector-attr, 63 | .hljs-selector-pseudo, 64 | .hljs-link { 65 | color: #cb4b16; 66 | } 67 | 68 | /* Solarized Red */ 69 | .hljs-built_in, 70 | .hljs-deletion { 71 | color: #dc322f; 72 | } 73 | 74 | .hljs-formula { 75 | background: #073642; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/solarized-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #fdf6e3; 12 | color: #657b83; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #93a1a1; 18 | } 19 | 20 | /* Solarized Green */ 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-addition { 24 | color: #859900; 25 | } 26 | 27 | /* Solarized Cyan */ 28 | .hljs-number, 29 | .hljs-string, 30 | .hljs-meta .hljs-meta-string, 31 | .hljs-literal, 32 | .hljs-doctag, 33 | .hljs-regexp { 34 | color: #2aa198; 35 | } 36 | 37 | /* Solarized Blue */ 38 | .hljs-title, 39 | .hljs-section, 40 | .hljs-name, 41 | .hljs-selector-id, 42 | .hljs-selector-class { 43 | color: #268bd2; 44 | } 45 | 46 | /* Solarized Yellow */ 47 | .hljs-attribute, 48 | .hljs-attr, 49 | .hljs-variable, 50 | .hljs-template-variable, 51 | .hljs-class .hljs-title, 52 | .hljs-type { 53 | color: #b58900; 54 | } 55 | 56 | /* Solarized Orange */ 57 | .hljs-symbol, 58 | .hljs-bullet, 59 | .hljs-subst, 60 | .hljs-meta, 61 | .hljs-meta .hljs-keyword, 62 | .hljs-selector-attr, 63 | .hljs-selector-pseudo, 64 | .hljs-link { 65 | color: #cb4b16; 66 | } 67 | 68 | /* Solarized Red */ 69 | .hljs-built_in, 70 | .hljs-deletion { 71 | color: #dc322f; 72 | } 73 | 74 | .hljs-formula { 75 | background: #eee8d5; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/sunburst.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Sunburst-like style (c) Vasily Polovnyov 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #000; 12 | color: #f8f8f8; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #aeaeae; 18 | font-style: italic; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-type { 24 | color: #e28964; 25 | } 26 | 27 | .hljs-string { 28 | color: #65b042; 29 | } 30 | 31 | .hljs-subst { 32 | color: #daefa3; 33 | } 34 | 35 | .hljs-regexp, 36 | .hljs-link { 37 | color: #e9c062; 38 | } 39 | 40 | .hljs-title, 41 | .hljs-section, 42 | .hljs-tag, 43 | .hljs-name { 44 | color: #89bdff; 45 | } 46 | 47 | .hljs-class .hljs-title, 48 | .hljs-doctag { 49 | text-decoration: underline; 50 | } 51 | 52 | .hljs-symbol, 53 | .hljs-bullet, 54 | .hljs-number { 55 | color: #3387cc; 56 | } 57 | 58 | .hljs-params, 59 | .hljs-variable, 60 | .hljs-template-variable { 61 | color: #3e87e3; 62 | } 63 | 64 | .hljs-attribute { 65 | color: #cda869; 66 | } 67 | 68 | .hljs-meta { 69 | color: #8996a8; 70 | } 71 | 72 | .hljs-formula { 73 | background-color: #0e2231; 74 | color: #f8f8f8; 75 | font-style: italic; 76 | } 77 | 78 | .hljs-addition { 79 | background-color: #253b22; 80 | color: #f8f8f8; 81 | } 82 | 83 | .hljs-deletion { 84 | background-color: #420e09; 85 | color: #f8f8f8; 86 | } 87 | 88 | .hljs-selector-class { 89 | color: #9b703f; 90 | } 91 | 92 | .hljs-selector-id { 93 | color: #8b98ab; 94 | } 95 | 96 | .hljs-emphasis { 97 | font-style: italic; 98 | } 99 | 100 | .hljs-strong { 101 | font-weight: bold; 102 | } 103 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/tomorrow-night-blue.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night Blue Theme */ 2 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 3 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 4 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 5 | 6 | /* Tomorrow Comment */ 7 | .hljs-comment, 8 | .hljs-quote { 9 | color: #7285b7; 10 | } 11 | 12 | /* Tomorrow Red */ 13 | .hljs-variable, 14 | .hljs-template-variable, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-selector-id, 18 | .hljs-selector-class, 19 | .hljs-regexp, 20 | .hljs-deletion { 21 | color: #ff9da4; 22 | } 23 | 24 | /* Tomorrow Orange */ 25 | .hljs-number, 26 | .hljs-built_in, 27 | .hljs-builtin-name, 28 | .hljs-literal, 29 | .hljs-type, 30 | .hljs-params, 31 | .hljs-meta, 32 | .hljs-link { 33 | color: #ffc58f; 34 | } 35 | 36 | /* Tomorrow Yellow */ 37 | .hljs-attribute { 38 | color: #ffeead; 39 | } 40 | 41 | /* Tomorrow Green */ 42 | .hljs-string, 43 | .hljs-symbol, 44 | .hljs-bullet, 45 | .hljs-addition { 46 | color: #d1f1a9; 47 | } 48 | 49 | /* Tomorrow Blue */ 50 | .hljs-title, 51 | .hljs-section { 52 | color: #bbdaff; 53 | } 54 | 55 | /* Tomorrow Purple */ 56 | .hljs-keyword, 57 | .hljs-selector-tag { 58 | color: #ebbbff; 59 | } 60 | 61 | .hljs { 62 | display: block; 63 | overflow-x: auto; 64 | background: #002451; 65 | color: white; 66 | padding: 0.5em; 67 | } 68 | 69 | .hljs-emphasis { 70 | font-style: italic; 71 | } 72 | 73 | .hljs-strong { 74 | font-weight: bold; 75 | } 76 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/tomorrow-night-bright.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night Bright Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 4 | 5 | /* Tomorrow Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #969896; 9 | } 10 | 11 | /* Tomorrow Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-tag, 15 | .hljs-name, 16 | .hljs-selector-id, 17 | .hljs-selector-class, 18 | .hljs-regexp, 19 | .hljs-deletion { 20 | color: #d54e53; 21 | } 22 | 23 | /* Tomorrow Orange */ 24 | .hljs-number, 25 | .hljs-built_in, 26 | .hljs-builtin-name, 27 | .hljs-literal, 28 | .hljs-type, 29 | .hljs-params, 30 | .hljs-meta, 31 | .hljs-link { 32 | color: #e78c45; 33 | } 34 | 35 | /* Tomorrow Yellow */ 36 | .hljs-attribute { 37 | color: #e7c547; 38 | } 39 | 40 | /* Tomorrow Green */ 41 | .hljs-string, 42 | .hljs-symbol, 43 | .hljs-bullet, 44 | .hljs-addition { 45 | color: #b9ca4a; 46 | } 47 | 48 | /* Tomorrow Blue */ 49 | .hljs-title, 50 | .hljs-section { 51 | color: #7aa6da; 52 | } 53 | 54 | /* Tomorrow Purple */ 55 | .hljs-keyword, 56 | .hljs-selector-tag { 57 | color: #c397d8; 58 | } 59 | 60 | .hljs { 61 | display: block; 62 | overflow-x: auto; 63 | background: black; 64 | color: #eaeaea; 65 | padding: 0.5em; 66 | } 67 | 68 | .hljs-emphasis { 69 | font-style: italic; 70 | } 71 | 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/tomorrow-night-eighties.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night Eighties Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 4 | 5 | /* Tomorrow Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #999999; 9 | } 10 | 11 | /* Tomorrow Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-tag, 15 | .hljs-name, 16 | .hljs-selector-id, 17 | .hljs-selector-class, 18 | .hljs-regexp, 19 | .hljs-deletion { 20 | color: #f2777a; 21 | } 22 | 23 | /* Tomorrow Orange */ 24 | .hljs-number, 25 | .hljs-built_in, 26 | .hljs-builtin-name, 27 | .hljs-literal, 28 | .hljs-type, 29 | .hljs-params, 30 | .hljs-meta, 31 | .hljs-link { 32 | color: #f99157; 33 | } 34 | 35 | /* Tomorrow Yellow */ 36 | .hljs-attribute { 37 | color: #ffcc66; 38 | } 39 | 40 | /* Tomorrow Green */ 41 | .hljs-string, 42 | .hljs-symbol, 43 | .hljs-bullet, 44 | .hljs-addition { 45 | color: #99cc99; 46 | } 47 | 48 | /* Tomorrow Blue */ 49 | .hljs-title, 50 | .hljs-section { 51 | color: #6699cc; 52 | } 53 | 54 | /* Tomorrow Purple */ 55 | .hljs-keyword, 56 | .hljs-selector-tag { 57 | color: #cc99cc; 58 | } 59 | 60 | .hljs { 61 | display: block; 62 | overflow-x: auto; 63 | background: #2d2d2d; 64 | color: #cccccc; 65 | padding: 0.5em; 66 | } 67 | 68 | .hljs-emphasis { 69 | font-style: italic; 70 | } 71 | 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/tomorrow-night.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night Theme */ 2 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 3 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 4 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 5 | 6 | /* Tomorrow Comment */ 7 | .hljs-comment, 8 | .hljs-quote { 9 | color: #969896; 10 | } 11 | 12 | /* Tomorrow Red */ 13 | .hljs-variable, 14 | .hljs-template-variable, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-selector-id, 18 | .hljs-selector-class, 19 | .hljs-regexp, 20 | .hljs-deletion { 21 | color: #cc6666; 22 | } 23 | 24 | /* Tomorrow Orange */ 25 | .hljs-number, 26 | .hljs-built_in, 27 | .hljs-builtin-name, 28 | .hljs-literal, 29 | .hljs-type, 30 | .hljs-params, 31 | .hljs-meta, 32 | .hljs-link { 33 | color: #de935f; 34 | } 35 | 36 | /* Tomorrow Yellow */ 37 | .hljs-attribute { 38 | color: #f0c674; 39 | } 40 | 41 | /* Tomorrow Green */ 42 | .hljs-string, 43 | .hljs-symbol, 44 | .hljs-bullet, 45 | .hljs-addition { 46 | color: #b5bd68; 47 | } 48 | 49 | /* Tomorrow Blue */ 50 | .hljs-title, 51 | .hljs-section { 52 | color: #81a2be; 53 | } 54 | 55 | /* Tomorrow Purple */ 56 | .hljs-keyword, 57 | .hljs-selector-tag { 58 | color: #b294bb; 59 | } 60 | 61 | .hljs { 62 | display: block; 63 | overflow-x: auto; 64 | background: #1d1f21; 65 | color: #c5c8c6; 66 | padding: 0.5em; 67 | } 68 | 69 | .hljs-emphasis { 70 | font-style: italic; 71 | } 72 | 73 | .hljs-strong { 74 | font-weight: bold; 75 | } 76 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/tomorrow.css: -------------------------------------------------------------------------------- 1 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 2 | 3 | /* Tomorrow Comment */ 4 | .hljs-comment, 5 | .hljs-quote { 6 | color: #8e908c; 7 | } 8 | 9 | /* Tomorrow Red */ 10 | .hljs-variable, 11 | .hljs-template-variable, 12 | .hljs-tag, 13 | .hljs-name, 14 | .hljs-selector-id, 15 | .hljs-selector-class, 16 | .hljs-regexp, 17 | .hljs-deletion { 18 | color: #c82829; 19 | } 20 | 21 | /* Tomorrow Orange */ 22 | .hljs-number, 23 | .hljs-built_in, 24 | .hljs-builtin-name, 25 | .hljs-literal, 26 | .hljs-type, 27 | .hljs-params, 28 | .hljs-meta, 29 | .hljs-link { 30 | color: #f5871f; 31 | } 32 | 33 | /* Tomorrow Yellow */ 34 | .hljs-attribute { 35 | color: #eab700; 36 | } 37 | 38 | /* Tomorrow Green */ 39 | .hljs-string, 40 | .hljs-symbol, 41 | .hljs-bullet, 42 | .hljs-addition { 43 | color: #718c00; 44 | } 45 | 46 | /* Tomorrow Blue */ 47 | .hljs-title, 48 | .hljs-section { 49 | color: #4271ae; 50 | } 51 | 52 | /* Tomorrow Purple */ 53 | .hljs-keyword, 54 | .hljs-selector-tag { 55 | color: #8959a8; 56 | } 57 | 58 | .hljs { 59 | display: block; 60 | overflow-x: auto; 61 | background: white; 62 | color: #4d4d4c; 63 | padding: 0.5em; 64 | } 65 | 66 | .hljs-emphasis { 67 | font-style: italic; 68 | } 69 | 70 | .hljs-strong { 71 | font-weight: bold; 72 | } 73 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/vs.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Visual Studio-like style based on original C# coloring by Jason Diamond 4 | 5 | */ 6 | .hljs { 7 | display: block; 8 | overflow-x: auto; 9 | padding: 0.5em; 10 | background: white; 11 | color: black; 12 | } 13 | 14 | .hljs-comment, 15 | .hljs-quote, 16 | .hljs-variable { 17 | color: #008000; 18 | } 19 | 20 | .hljs-keyword, 21 | .hljs-selector-tag, 22 | .hljs-built_in, 23 | .hljs-name, 24 | .hljs-tag { 25 | color: #00f; 26 | } 27 | 28 | .hljs-string, 29 | .hljs-title, 30 | .hljs-section, 31 | .hljs-attribute, 32 | .hljs-literal, 33 | .hljs-template-tag, 34 | .hljs-template-variable, 35 | .hljs-type, 36 | .hljs-addition { 37 | color: #a31515; 38 | } 39 | 40 | .hljs-deletion, 41 | .hljs-selector-attr, 42 | .hljs-selector-pseudo, 43 | .hljs-meta { 44 | color: #2b91af; 45 | } 46 | 47 | .hljs-doctag { 48 | color: #808080; 49 | } 50 | 51 | .hljs-attr { 52 | color: #f00; 53 | } 54 | 55 | .hljs-symbol, 56 | .hljs-bullet, 57 | .hljs-link { 58 | color: #00b0e8; 59 | } 60 | 61 | 62 | .hljs-emphasis { 63 | font-style: italic; 64 | } 65 | 66 | .hljs-strong { 67 | font-weight: bold; 68 | } 69 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/vs2015.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Visual Studio 2015 dark style 3 | * Author: Nicolas LLOBERA 4 | */ 5 | 6 | .hljs { 7 | display: block; 8 | overflow-x: auto; 9 | padding: 0.5em; 10 | background: #1E1E1E; 11 | color: #DCDCDC; 12 | } 13 | 14 | .hljs-keyword, 15 | .hljs-literal, 16 | .hljs-symbol, 17 | .hljs-name { 18 | color: #569CD6; 19 | } 20 | .hljs-link { 21 | color: #569CD6; 22 | text-decoration: underline; 23 | } 24 | 25 | .hljs-built_in, 26 | .hljs-type { 27 | color: #4EC9B0; 28 | } 29 | 30 | .hljs-number, 31 | .hljs-class { 32 | color: #B8D7A3; 33 | } 34 | 35 | .hljs-string, 36 | .hljs-meta-string { 37 | color: #D69D85; 38 | } 39 | 40 | .hljs-regexp, 41 | .hljs-template-tag { 42 | color: #9A5334; 43 | } 44 | 45 | .hljs-subst, 46 | .hljs-function, 47 | .hljs-title, 48 | .hljs-params, 49 | .hljs-formula { 50 | color: #DCDCDC; 51 | } 52 | 53 | .hljs-comment, 54 | .hljs-quote { 55 | color: #57A64A; 56 | font-style: italic; 57 | } 58 | 59 | .hljs-doctag { 60 | color: #608B4E; 61 | } 62 | 63 | .hljs-meta, 64 | .hljs-meta-keyword, 65 | .hljs-tag { 66 | color: #9B9B9B; 67 | } 68 | 69 | .hljs-variable, 70 | .hljs-template-variable { 71 | color: #BD63C5; 72 | } 73 | 74 | .hljs-attr, 75 | .hljs-attribute, 76 | .hljs-builtin-name { 77 | color: #9CDCFE; 78 | } 79 | 80 | .hljs-section { 81 | color: gold; 82 | } 83 | 84 | .hljs-emphasis { 85 | font-style: italic; 86 | } 87 | 88 | .hljs-strong { 89 | font-weight: bold; 90 | } 91 | 92 | /*.hljs-code { 93 | font-family:'Monospace'; 94 | }*/ 95 | 96 | .hljs-bullet, 97 | .hljs-selector-tag, 98 | .hljs-selector-id, 99 | .hljs-selector-class, 100 | .hljs-selector-attr, 101 | .hljs-selector-pseudo { 102 | color: #D7BA7D; 103 | } 104 | 105 | .hljs-addition { 106 | background-color: #144212; 107 | display: inline-block; 108 | width: 100%; 109 | } 110 | 111 | .hljs-deletion { 112 | background-color: #600; 113 | display: inline-block; 114 | width: 100%; 115 | } 116 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/xcode.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | XCode style (c) Angel Garcia 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #fff; 12 | color: black; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #006a00; 18 | } 19 | 20 | .hljs-keyword, 21 | .hljs-selector-tag, 22 | .hljs-literal { 23 | color: #aa0d91; 24 | } 25 | 26 | .hljs-name { 27 | color: #008; 28 | } 29 | 30 | .hljs-variable, 31 | .hljs-template-variable { 32 | color: #660; 33 | } 34 | 35 | .hljs-string { 36 | color: #c41a16; 37 | } 38 | 39 | .hljs-regexp, 40 | .hljs-link { 41 | color: #080; 42 | } 43 | 44 | .hljs-title, 45 | .hljs-tag, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-number, 49 | .hljs-meta { 50 | color: #1c00cf; 51 | } 52 | 53 | .hljs-section, 54 | .hljs-class .hljs-title, 55 | .hljs-type, 56 | .hljs-attr, 57 | .hljs-built_in, 58 | .hljs-builtin-name, 59 | .hljs-params { 60 | color: #5c2699; 61 | } 62 | 63 | .hljs-attribute, 64 | .hljs-subst { 65 | color: #000; 66 | } 67 | 68 | .hljs-formula { 69 | background-color: #eee; 70 | font-style: italic; 71 | } 72 | 73 | .hljs-addition { 74 | background-color: #baeeba; 75 | } 76 | 77 | .hljs-deletion { 78 | background-color: #ffc8bd; 79 | } 80 | 81 | .hljs-selector-id, 82 | .hljs-selector-class { 83 | color: #9b703f; 84 | } 85 | 86 | .hljs-doctag, 87 | .hljs-strong { 88 | font-weight: bold; 89 | } 90 | 91 | .hljs-emphasis { 92 | font-style: italic; 93 | } 94 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/xt256.css: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | xt256.css 4 | 5 | Contact: initbar [at] protonmail [dot] ch 6 | : github.com/initbar 7 | */ 8 | 9 | .hljs { 10 | display: block; 11 | overflow-x: auto; 12 | color: #eaeaea; 13 | background: #000; 14 | padding: 0.5; 15 | } 16 | 17 | .hljs-subst { 18 | color: #eaeaea; 19 | } 20 | 21 | .hljs-emphasis { 22 | font-style: italic; 23 | } 24 | 25 | .hljs-strong { 26 | font-weight: bold; 27 | } 28 | 29 | .hljs-builtin-name, 30 | .hljs-type { 31 | color: #eaeaea; 32 | } 33 | 34 | .hljs-params { 35 | color: #da0000; 36 | } 37 | 38 | .hljs-literal, 39 | .hljs-number, 40 | .hljs-name { 41 | color: #ff0000; 42 | font-weight: bolder; 43 | } 44 | 45 | .hljs-comment { 46 | color: #969896; 47 | } 48 | 49 | .hljs-selector-id, 50 | .hljs-quote { 51 | color: #00ffff; 52 | } 53 | 54 | .hljs-template-variable, 55 | .hljs-variable, 56 | .hljs-title { 57 | color: #00ffff; 58 | font-weight: bold; 59 | } 60 | 61 | .hljs-selector-class, 62 | .hljs-keyword, 63 | .hljs-symbol { 64 | color: #fff000; 65 | } 66 | 67 | .hljs-string, 68 | .hljs-bullet { 69 | color: #00ff00; 70 | } 71 | 72 | .hljs-tag, 73 | .hljs-section { 74 | color: #000fff; 75 | } 76 | 77 | .hljs-selector-tag { 78 | color: #000fff; 79 | font-weight: bold; 80 | } 81 | 82 | .hljs-attribute, 83 | .hljs-built_in, 84 | .hljs-regexp, 85 | .hljs-link { 86 | color: #ff00ff; 87 | } 88 | 89 | .hljs-meta { 90 | color: #fff; 91 | font-weight: bolder; 92 | } 93 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/highlight/styles/zenburn.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov 4 | based on dark.css by Ivan Sagalaev 5 | 6 | */ 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #3f3f3f; 13 | color: #dcdcdc; 14 | } 15 | 16 | .hljs-keyword, 17 | .hljs-selector-tag, 18 | .hljs-tag { 19 | color: #e3ceab; 20 | } 21 | 22 | .hljs-template-tag { 23 | color: #dcdcdc; 24 | } 25 | 26 | .hljs-number { 27 | color: #8cd0d3; 28 | } 29 | 30 | .hljs-variable, 31 | .hljs-template-variable, 32 | .hljs-attribute { 33 | color: #efdcbc; 34 | } 35 | 36 | .hljs-literal { 37 | color: #efefaf; 38 | } 39 | 40 | .hljs-subst { 41 | color: #8f8f8f; 42 | } 43 | 44 | .hljs-title, 45 | .hljs-name, 46 | .hljs-selector-id, 47 | .hljs-selector-class, 48 | .hljs-section, 49 | .hljs-type { 50 | color: #efef8f; 51 | } 52 | 53 | .hljs-symbol, 54 | .hljs-bullet, 55 | .hljs-link { 56 | color: #dca3a3; 57 | } 58 | 59 | .hljs-deletion, 60 | .hljs-string, 61 | .hljs-built_in, 62 | .hljs-builtin-name { 63 | color: #cc9393; 64 | } 65 | 66 | .hljs-addition, 67 | .hljs-comment, 68 | .hljs-quote, 69 | .hljs-meta { 70 | color: #7f9f7f; 71 | } 72 | 73 | 74 | .hljs-emphasis { 75 | font-style: italic; 76 | } 77 | 78 | .hljs-strong { 79 | font-weight: bold; 80 | } 81 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/iCheck/blue.css: -------------------------------------------------------------------------------- 1 | .iCheck-box{ 2 | display: inline-block; 3 | position: relative; 4 | width: 22px; 5 | vertical-align: top; 6 | height: 22px; 7 | 8 | padding: 0; 9 | margin: 0; 10 | border: none; 11 | cursor: pointer; 12 | } 13 | .iCheck-box > .iCheck-help:hover{ 14 | background-position: -24px 0; 15 | 16 | } 17 | .iCheck-box > .iCheck-help.checked{ 18 | background-position: -48px 0; 19 | } 20 | .iCheck-box>input[type=checkbox]{ 21 | opacity: 0; 22 | position: absolute; 23 | } 24 | .iCheck-box > .iCheck-help{ 25 | position: absolute; 26 | left: 0%; 27 | top: 0%; 28 | width: 100%; 29 | height:100%; 30 | display: block; 31 | background: url(blue.png) no-repeat; 32 | } 33 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/iCheck/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/global/iCheck/blue.png -------------------------------------------------------------------------------- /blog/vue-blog/static/global/iCheck/iCheck.js: -------------------------------------------------------------------------------- 1 | function setStatus(_checkbox,options){ 2 | const help = _checkbox.next('ins.iCheck-help') 3 | if (options === 'check') { 4 | help.addClass('checked') 5 | return 6 | } 7 | if(options === 'uncheck'){ 8 | help.removeClass('checked') 9 | } 10 | } 11 | 12 | require('jquery').fn.iCheck = function (options) { 13 | // 初始化dom 14 | const _checkbox = $(this) 15 | const _box = $('') 16 | const _help = $('') 17 | 18 | /* checkbox 已美化 */ 19 | if (_checkbox.parent().is('.iCheck-box')) { 20 | setStatus(_checkbox,options) 21 | return 22 | } 23 | // 添加 label.iCheck-box 24 | _checkbox.wrap(_box) 25 | // 添加 ins.iCheck-help 26 | _checkbox.after(_help) 27 | // 设置初始状态 28 | if (options) { 29 | setStatus(_checkbox,options) 30 | // return 31 | } 32 | const next_help = _checkbox.next('ins.iCheck-help') 33 | /* 点击切换状态 */ 34 | next_help.on('click',function () { 35 | if (!next_help.hasClass('checked')){ 36 | next_help.addClass('checked') 37 | }else{ 38 | next_help.removeClass('checked') 39 | } 40 | }) 41 | } 42 | -------------------------------------------------------------------------------- /blog/vue-blog/static/global/select2/i18n/en.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /blog/vue-blog/static/global/select2/zh-CN.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /blog/vue-blog/static/img/boxed-bg.7799dec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/img/boxed-bg.7799dec.jpg -------------------------------------------------------------------------------- /blog/vue-blog/static/img/wechat.9e130ba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/img/wechat.9e130ba.png -------------------------------------------------------------------------------- /blog/vue-blog/static/img/zfb.c2b5c3b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/img/zfb.c2b5c3b.jpg -------------------------------------------------------------------------------- /blog/vue-blog/static/js/1.11bc3ad22d3dd7d98dff.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([1],{APtD:function(t,i,e){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var a=e("D+c9"),s={render:function(){var t=this,i=t.$createElement,e=t._self._c||i;return e("div",{staticStyle:{"min-height":"40em"}},t._l(t.list,function(i){return e("div",{staticClass:"list-arc-item left"},[e("a",{attrs:{href:"javascript:void (0)",target:"_self",title:i.title},on:{click:function(e){t.jumplink(i)}}},[e("img",{directives:[{name:"lazy",rawName:"v-lazy",value:t.imageSrc(i.litpic),expression:"imageSrc(vol.litpic)"}],attrs:{alt:i.title,title:i.title}}),t._v(" "),e("div",{staticClass:"list-box"},[e("h2",[t._v(t._s(i.title))]),t._v(" "),e("div",{staticClass:"info"},[t._v(t._s(i.description))])])]),t._v(" "),e("div",{staticClass:"tags"},[e("i",{staticClass:"fa fa-clock-o",attrs:{"data-toggle":"tooltip",title:"时间:"+i.create_time}},[t._v(" "+t._s(i.create_time))]),t._v(" "),e("i",{staticClass:"fa fa-comments",attrs:{"data-toggle":"tooltip",title:"评论:0"}},[t._v(" 0")]),t._v(" "),e("i",{staticClass:"fa fa-thumbs-o-up hidden-xs",attrs:{"data-toggle":"tooltip",title:"点赞:"+i.click}},[t._v(" "+t._s(i.click))]),t._v(" "),e("i",{staticClass:"fa fa-eye",attrs:{"data-toggle":"tooltip",title:"浏览:"+i.views}},[t._v(" "+t._s(i.views))])]),t._v(" "),"h"===i.flag?e("div",{staticClass:"flag bg-red"},[t._v("头条")]):t._e()])}))},staticRenderFns:[]},l=e("VU/8")(a.a,s,!1,null,null,null);i.default=l.exports},"D+c9":function(t,i,e){"use strict";(function(t){i.a={computed:{list:function(){return this.$store.state.front.archive}},watch:{$route:"fetchList"},updated:function(){t("[data-toggle='tooltip']").tooltip()},methods:{imageSrc:function(t){if(t)return"/api/download/"+t},jumplink:function(t){this.$store.commit("front/SET_TYPE_ID",t.type_id),this.$router.push({name:"detail_page",params:{id:t.id}})},fetchList:function(){this.$store.dispatch("front/fetchArchive")}},created:function(){this.fetchList()}}}).call(i,e("7t+N"))}}); 2 | //# sourceMappingURL=1.11bc3ad22d3dd7d98dff.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/10.9cf1cce798bf37e8536b.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([10],{xHx9:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=a("bGai"),o={components:{Checkbox:r.b,Group:r.d,VForm:r.g,Container:r.c},data:function(){return{title:this.$t("auth.editTitle"),obj:{uid:0,username:"",group_array:[]},group_array:[],lang:this.$t("auth")}},created:function(){var t=this;this.$store.dispatch("user/fetchGroupList").then(function(e){e&&(console.log(e.data),t.group_array=e.data)});var e=this.$route.query.id;this.$store.dispatch("user/fetchUserAuth",e).then(function(e){e&&(console.log(e.data),t.obj=e.data)})},methods:{submit:function(){var t=this;this.$store.dispatch("user/editAuth",this.obj).then(function(e){e&&t.$toast.success({title:"API 请求成功",message:e.error})})}}},s={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("Container",{attrs:{title:t.title}},[a("v-form",{on:{submit:t.submit}},[a("template",{slot:"base"},[a("group",{attrs:{disabled:!0,label:t.lang.username,type:"input"},model:{value:t.obj.username,callback:function(e){t.$set(t.obj,"username",e)},expression:"obj.username"}}),t._v(" "),a("group",{attrs:{label:t.lang.auth_group}},[t._l(t.group_array,function(e){return[a("checkbox",{attrs:{value:e.id},model:{value:t.obj.group_array,callback:function(e){t.$set(t.obj,"group_array",e)},expression:"obj.group_array"}}),t._v(" "),a("span",{staticStyle:{margin:"0 10px 0 3px"}},[t._v(t._s(e.name))])]})],2)],1)],2)],1)},staticRenderFns:[]},n=a("VU/8")(o,s,!1,null,null,null);e.default=n.exports}}); 2 | //# sourceMappingURL=10.9cf1cce798bf37e8536b.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/11.b87b765c8b6aa7716c2c.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([11],{zYcY:function(t,e,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var c=s("bGai"),n={components:{VTd:c.h,List:c.e,Container:c.c,Checkbox:c.b},data:function(){return{title:this.$t("login_log.index"),lang:this.$t("login_log"),checked:!1,tgCheck:!1}},computed:{list:function(){return this.$store.state.table.list},checkbox:{get:function(){return this.$store.state.table.checkbox},set:function(t){this.$store.commit("table/SET_CHECKBOX",t)}}},watch:{checkbox:function(t){var e=t.length;e===this.list.length&&(this.tgCheck=!0),0===e&&(this.tgCheck=!1)}},mounted:function(){this.$store.commit("table/SET_URL","/api/login_log/index"),this.$store.dispatch("table/fetchList")}},i={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("container",{attrs:{title:t.title}},[s("list",{attrs:{"show-del":!0}},[s("thead",{attrs:{slot:"thead"},slot:"thead"},[s("tr",[s("th",[s("checkbox",{attrs:{checked:t.tgCheck},model:{value:t.checked,callback:function(e){t.checked=e},expression:"checked"}})],1),t._v(" "),s("th",[t._v(t._s(t.lang.id))]),t._v(" "),s("th",[t._v(t._s(t.lang.ip))]),t._v(" "),s("th",[t._v(t._s(t.lang.user))]),t._v(" "),s("th",[t._v(t._s(t.lang.country))]),t._v(" "),s("th",[t._v(t._s(t.lang.province))]),t._v(" "),s("th",[t._v(t._s(t.lang.city))]),t._v(" "),s("th",[t._v(t._s(t.lang.distrity))]),t._v(" "),s("th",[t._v(t._s(t.$t("status.createTime")))]),t._v(" "),s("th",[t._v(t._s(t.$t("operation.name")))])])]),t._v(" "),s("tbody",{attrs:{slot:"tbody"},slot:"tbody"},t._l(t.list,function(e){return s("tr",[s("td",[s("checkbox",{attrs:{checked:t.checked,value:e.id},model:{value:t.checkbox,callback:function(e){t.checkbox=e},expression:"checkbox"}})],1),t._v(" "),s("td",[t._v(t._s(e.id))]),t._v(" "),s("td",[s("span",{staticClass:"label label-success"},[t._v(t._s(e.ip))])]),t._v(" "),s("td",[t._v(t._s(e.username)+" / "+t._s(e.nickname))]),t._v(" "),s("td",[t._v(t._s(e.country))]),t._v(" "),s("td",[t._v(t._s(e.province))]),t._v(" "),s("td",[t._v(t._s(e.city))]),t._v(" "),s("td",[t._v(t._s(e.distrity))]),t._v(" "),s("td",[t._v(t._s(e.create_time))]),t._v(" "),s("v-td",{attrs:{type:"opt",value:e.id}})],1)}))])],1)},staticRenderFns:[]},_=s("VU/8")(n,i,!1,null,null,null);e.default=_.exports}}); 2 | //# sourceMappingURL=11.b87b765c8b6aa7716c2c.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/13.b1a2de28eebf96ec31cc.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([13],{"97py":function(t,e,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=s("bGai"),c=s("vLgD"),i={components:{Checkbox:a.b,VTd:a.h,Container:a.c,List:a.e},data:function(){return{title:this.$t("database.index"),lang:this.$t("database"),checked:!1,tgCheck:!1,isOK:!0}},watch:{checkbox:function(t){var e=t.length;e===this.list.length&&(this.tgCheck=!0),0===e&&(this.tgCheck=!1)}},computed:{list:function(){return this.$store.state.table.list},checkbox:{get:function(){return this.$store.state.table.checkbox},set:function(t){this.$store.commit("table/SET_CHECKBOX",t)}}},methods:{mysqldump:function(){var t=this;if(this.isOK){var e=this.checkbox;if(Array.isArray(e)&&e.length<=0)this.$toast.warn({title:"备份失败 ~",message:"请勾选需要备份的表~"});else{var s={table_list:this.checkbox};c.a.post("/api/database/backup",s).then(function(e){e&&t.$toast.success({title:"API 请求成功",message:e.error}),t.isOK=!0})}}}},mounted:function(){this.$store.commit("table/SET_URL","/api/database/index"),this.$store.dispatch("table/fetchList")}},n={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("container",{attrs:{title:t.title}},[s("list",{attrs:{isPager:!1}},[s("button",{staticClass:"btn btn-primary btn-sm delete",attrs:{slot:"operation"},on:{click:t.mysqldump},slot:"operation"},[s("i",{staticClass:"fa fa-save"}),t._v(" 备份数据库")]),t._v(" "),s("thead",{attrs:{slot:"thead"},slot:"thead"},[s("tr",[s("th",[s("checkbox",{attrs:{checked:t.tgCheck},model:{value:t.checked,callback:function(e){t.checked=e},expression:"checked"}})],1),t._v(" "),s("th",[t._v(t._s(t.lang.id))]),t._v(" "),s("th",[t._v(t._s(t.lang.table_name))]),t._v(" "),s("th",[t._v(t._s(t.lang.table_rows))]),t._v(" "),s("th",[t._v(t._s(t.lang.table_engine))]),t._v(" "),s("th",[t._v(t._s(t.lang.create_time))])])]),t._v(" "),s("tbody",{attrs:{slot:"tbody"},slot:"tbody"},t._l(t.list,function(e,a){return s("tr",[s("td",[s("checkbox",{attrs:{checked:t.checked,value:e.TABLE_NAME},model:{value:t.checkbox,callback:function(e){t.checkbox=e},expression:"checkbox"}})],1),t._v(" "),s("td",[t._v(t._s(a))]),t._v(" "),s("td",[s("span",{staticClass:"label label-danger"},[t._v(t._s(e.TABLE_NAME))])]),t._v(" "),s("td",[s("span",{staticClass:"label label-success"},[t._v(t._s(e.TABLE_ROWS))]),t._v(" 条记录")]),t._v(" "),s("td",[t._v(t._s(e.ENGINE))]),t._v(" "),s("td",[t._v(t._s(e.create_time))])])}))])],1)},staticRenderFns:[]},l=s("VU/8")(i,n,!1,null,null,null);e.default=l.exports}}); 2 | //# sourceMappingURL=13.b1a2de28eebf96ec31cc.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/14.4d0deea567b245e630c5.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([14],{QZle:function(t,e,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=s("bGai"),l={components:{VTd:a.h,Container:a.c,List:a.e},data:function(){return{title:this.$t("backup.index"),lang:this.$t("backup")}},computed:{list:function(){return this.$store.state.table.list}},mounted:function(){this.$store.commit("table/SET_URL","/api/database/backup"),this.$store.dispatch("table/fetchList")}},i={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("container",{attrs:{title:t.title}},[s("list",{attrs:{isPager:!1}},[s("thead",{attrs:{slot:"thead"},slot:"thead"},[s("tr",[s("th",[t._v(t._s(t.lang.id))]),t._v(" "),s("th",[t._v(t._s(t.lang.backupname))]),t._v(" "),s("th",[t._v(t._s(t.lang.create_time))]),t._v(" "),s("th",[t._v(t._s(t.lang.fileSize))]),t._v(" "),s("th",{attrs:{width:"175"}},[t._v(t._s(t.$t("operation.name")))])])]),t._v(" "),s("tbody",{attrs:{slot:"tbody"},slot:"tbody"},t._l(t.list,function(e,a){return s("tr",[s("td",[t._v(t._s(a))]),t._v(" "),s("td",[s("span",{staticClass:"label label-danger"},[t._v(t._s(e.filename))])]),t._v(" "),s("td",[t._v(t._s(e.filectime))]),t._v(" "),s("td",[s("span",{staticClass:"label label-success"},[t._v(t._s(e.filesize))])]),t._v(" "),s("v-td",{attrs:{type:"opt",value:e.uuid,"show-download":!0,"show-recovery":!0}})],1)}))])],1)},staticRenderFns:[]},n=s("VU/8")(l,i,!1,null,null,null);e.default=n.exports}}); 2 | //# sourceMappingURL=14.4d0deea567b245e630c5.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/15.2928c74afedc7faf771b.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([15],{"3W8Q":function(t,e,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=s("bGai"),n={components:{Checkbox:s("G5C1").a,VTd:i.h,Container:i.c,List:i.e},data:function(){return{title:this.$t("config.index"),lang:this.$t("config"),configRoute:{name:"sys_config_edit"}}},computed:{list:function(){return this.$store.state.table.list}},mounted:function(){this.$store.commit("table/SET_URL","/api/config/index"),this.$store.dispatch("table/fetchList")}},o={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("container",{attrs:{title:t.title}},[s("list",{attrs:{editRoute:t.configRoute}},[s("thead",{attrs:{slot:"thead"},slot:"thead"},[s("tr",[s("th",[t._v(t._s(t.lang.id))]),t._v(" "),s("th",[t._v(t._s(t.lang.key))]),t._v(" "),s("th",[t._v(t._s(t.lang.value))]),t._v(" "),s("th",[t._v(t._s(t.lang.description))]),t._v(" "),s("th",[t._v(t._s(t.lang.type))]),t._v(" "),s("th",{attrs:{width:"125"}},[t._v(t._s(t.$t("operation.name")))])])]),t._v(" "),s("tbody",{attrs:{slot:"tbody"},slot:"tbody"},t._l(t.list,function(e){return s("tr",[s("td",[t._v(t._s(e.id))]),t._v(" "),s("td",[t._v(t._s(e.key))]),t._v(" "),s("td",[t._v(t._s(e.value))]),t._v(" "),s("td",[t._v(t._s(e.description))]),t._v(" "),s("td",[t._v(t._s(e.type))]),t._v(" "),s("v-td",{attrs:{type:"opt",value:e.id,"edit-route":"sys_config_edit"}})],1)}))])],1)},staticRenderFns:[]},_=s("VU/8")(n,o,!1,null,null,null);e.default=_.exports}}); 2 | //# sourceMappingURL=15.2928c74afedc7faf771b.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/16.4770713d1d999a2c66b0.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([16],{CPUx:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n("bGai"),o={components:{Group:i.d,VForm:i.g,Container:i.c},data:function(){return{title:this.$t("config.editTitle"),lang:this.$t("config")}},computed:{type_options:function(){return this.$store.state.config.type_options},config:function(){return this.$store.state.config.config}},created:function(){var t=this.$route.query.id;this.$store.dispatch("config/fetchConfig",t)},methods:{submit:function(){var t=this;this.$store.dispatch("config/editConfig").then(function(e){e&&t.$toast.success({title:"API 请求成功",message:e.error})})}}},s={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("Container",{attrs:{title:t.title}},[n("v-form",{on:{submit:t.submit}},[n("template",{slot:"base"},[n("group",{attrs:{label:t.lang.key,type:"input"},model:{value:t.config.key,callback:function(e){t.$set(t.config,"key",e)},expression:"config.key"}}),t._v(" "),n("group",{attrs:{label:t.lang.value,type:"input"},model:{value:t.config.value,callback:function(e){t.$set(t.config,"value",e)},expression:"config.value"}}),t._v(" "),n("group",{attrs:{label:t.lang.description,type:"input"},model:{value:t.config.description,callback:function(e){t.$set(t.config,"description",e)},expression:"config.description"}}),t._v(" "),n("group",{attrs:{label:t.lang.type,type:"select",options:t.type_options},model:{value:t.config.type,callback:function(e){t.$set(t.config,"type",e)},expression:"config.type"}})],1)],2)],1)},staticRenderFns:[]},c=n("VU/8")(o,s,!1,null,null,null);e.default=c.exports}}); 2 | //# sourceMappingURL=16.4770713d1d999a2c66b0.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/18.2a1f926af04e742e90bd.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([18],{RSVL:function(t,e,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=s("bGai"),r={components:{VTd:a.h,List:a.e,Container:a.c},data:function(){return{title:this.$t("arctype.index"),lang:this.$t("arctype"),arctypeRoute:{name:"category_create_edit"}}},computed:{list:function(){return this.$store.state.table.list}},mounted:function(){this.$store.commit("table/SET_URL","/api/arctype/index"),this.$store.dispatch("table/fetchList")}},_={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("container",{attrs:{title:t.title}},[s("list",{attrs:{editRoute:t.arctypeRoute}},[s("thead",{attrs:{slot:"thead"},slot:"thead"},[s("tr",[s("th",[t._v(t._s(t.lang.id))]),t._v(" "),s("th",[t._v(t._s(t.lang.typename))]),t._v(" "),s("th",[t._v(t._s(t.lang.mid))]),t._v(" "),s("th",[t._v(t._s(t.lang.dirs))]),t._v(" "),s("th",[t._v(t._s(t.lang.status))]),t._v(" "),s("th",[t._v(t._s(t.lang.sorts))]),t._v(" "),s("th",{attrs:{width:"255"}},[t._v(t._s(t.$t("operation.name")))])])]),t._v(" "),s("tbody",{attrs:{slot:"tbody"},slot:"tbody"},t._l(t.list,function(e){return s("tr",[s("td",[t._v(t._s(e.id))]),t._v(" "),s("td",[t._v(t._s(e.typename))]),t._v(" "),s("td",[t._v(t._s(e.modname))]),t._v(" "),s("td",[t._v(t._s(e.dirs))]),t._v(" "),s("v-td",{attrs:{type:"status",value:e.status}}),t._v(" "),s("td",[t._v(t._s(e.sorts))]),t._v(" "),s("v-td",{attrs:{type:"opt",value:e.id,model_id:e.model_id,jumpArctype:e,"archive-route":"article_create_edit","edit-route":"category_create_edit"}})],1)}))])],1)},staticRenderFns:[]},i=s("VU/8")(r,_,!1,null,null,null);e.default=i.exports}}); 2 | //# sourceMappingURL=18.2a1f926af04e742e90bd.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/2.3cb9f7b56c00e486b5c0.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([2],{JXTs:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n("Dd8w"),s=n.n(r),l=n("bGai"),i=n("M4fF"),o=n.n(i),a=n("NYxO"),u={name:"index",components:{Container:l.c,Box:l.a,SmallBox:l.f},mounted:function(){this.$store.dispatch("admin/fetchData")},computed:s()({},Object(a.b)("admin",{user_total:function(t){return t.user_total},article_total:function(t){return t.article_total},user_near_num:function(t){return t.user_near_num},comment_near_num:function(t){return t.comment_near_num},login_log_list:function(t){return t.login_log_list},current_time:function(t){return t.server_current_time}}),{smallBoxes:function(){return[{title:"user",number:this.user_total,url:"user_list"},{title:"article",number:this.article_total,url:"article_list"},{title:"userNear",number:this.user_near_num,url:"user_list"},{title:"comment",number:this.comment_near_num,url:"leave_word_list"}]},loginLogPost:function(){var t=[];return this.login_log_list.forEach(function(e){var n={ip:''+e.ip+"",location:e.country+" "+e.province+" "+e.city+" "+e.district,login_time:e.login_time};t.push(n)}),{title:"最新登录",data:t,columns:["IP","位置","登录时间"]}},systemPost:function(){var t=this.$t("admin.sys_config"),e=o.a.cloneDeep(t);return e.data.server=t.data.server+this.current_time,e}})},c={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("container",{attrs:{title:t.$t("admin.title")}},[n("div",{staticClass:"row"},t._l(t.smallBoxes,function(e,r){return n("div",{key:r,staticClass:"col-lg-3 col-xs-6"},[n("small-box",t._b({},"small-box",e,!1))],1)})),t._v(" "),n("div",{staticClass:"row"},[n("div",{staticClass:"col-lg-7 col-sm-7 col-xs-12"},[n("Box",t._b({},"Box",t.systemPost,!1))],1),t._v(" "),n("div",{staticClass:"col-lg-5 col-sm-5 col-xs-12"},[n("Box",t._b({},"Box",t.loginLogPost,!1))],1)])])},staticRenderFns:[]},_=n("VU/8")(u,c,!1,null,null,null);e.default=_.exports}}); 2 | //# sourceMappingURL=2.3cb9f7b56c00e486b5c0.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/20.f89e505b8c73d31a572a.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([20],{"frj+":function(t,e,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var _=s("bGai"),a={components:{VTd:_.h,List:_.e,Container:_.c,Checkbox:_.b},data:function(){return{title:this.$t("auth_rule.index"),lang:this.$t("auth_rule"),ruleRoute:{name:"auth_rule_edit"}}},computed:{list:function(){return this.$store.state.table.list}},mounted:function(){this.$store.commit("table/SET_URL","/api/user/group/rule/index"),this.$store.dispatch("table/fetchList")}},r={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("container",{attrs:{title:t.title}},[s("list",{attrs:{editRoute:t.ruleRoute,isPager:!1}},[s("thead",{attrs:{slot:"thead"},slot:"thead"},[s("tr",[s("th",[t._v(t._s(t.lang.id))]),t._v(" "),s("th",[t._v(t._s(t.lang.name))]),t._v(" "),s("th",[t._v(t._s(t.lang.route))]),t._v(" "),s("th",[t._v(t._s(t.lang.method))]),t._v(" "),s("th",[t._v(t._s(t.lang.type))]),t._v(" "),s("th",[t._v(t._s(t.lang.status))]),t._v(" "),s("th",[t._v(t._s(t.lang.sorts))]),t._v(" "),s("th",{attrs:{width:"125"}},[t._v(t._s(t.$t("operation.name")))])])]),t._v(" "),s("tbody",{attrs:{slot:"tbody"},slot:"tbody"},t._l(t.list,function(e,_){return s("tr",[s("td",[t._v(t._s(e.id))]),t._v(" "),s("td",[t._v(t._s(e.name))]),t._v(" "),s("td",[t._v(t._s(e.route))]),t._v(" "),s("td",[t._v(t._s(e.method))]),t._v(" "),s("td",[t._v(t._s(t.$t("auth_rule_type."+e.type)))]),t._v(" "),s("v-td",{attrs:{type:"status",value:e.status}}),t._v(" "),s("td",[t._v(t._s(e.sorts))]),t._v(" "),s("v-td",{attrs:{type:"opt",value:e.id,"edit-route":"auth_rule_edit"}})],1)}))])],1)},staticRenderFns:[]},n=s("VU/8")(a,r,!1,null,null,null);e.default=n.exports}}); 2 | //# sourceMappingURL=20.f89e505b8c73d31a572a.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/22.e8e25134d38448f03816.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([22],{"FC6+":function(t,e,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var c=s("bGai"),o={components:{VTd:c.h,List:c.e,Container:c.c,Checkbox:c.b},data:function(){return{title:this.$t("auth_group.index"),lang:this.$t("auth_group"),checked:!1,tgCheck:!1,groupRoute:{name:"auth_group_edit"}}},watch:{checkbox:function(t){var e=t.length;e===this.list.length&&(this.tgCheck=!0),0===e&&(this.tgCheck=!1)}},computed:{list:function(){return this.$store.state.table.list},checkbox:{get:function(){return this.$store.state.table.checkbox},set:function(t){this.$store.commit("table/SET_CHECKBOX",t)}}},mounted:function(){this.$store.commit("table/SET_URL","/api/user/group/index"),this.$store.dispatch("table/fetchList")}},a={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("container",{attrs:{title:t.title}},[s("list",{attrs:{editRoute:t.groupRoute,"show-del":!0}},[s("thead",{attrs:{slot:"thead"},slot:"thead"},[s("tr",[s("th",[s("checkbox",{attrs:{checked:t.tgCheck},model:{value:t.checked,callback:function(e){t.checked=e},expression:"checked"}})],1),t._v(" "),s("th",[t._v(t._s(t.lang.id))]),t._v(" "),s("th",[t._v(t._s(t.lang.name))]),t._v(" "),s("th",[t._v(t._s(t.lang.module))]),t._v(" "),s("th",[t._v(t._s(t.lang.level))]),t._v(" "),s("th",[t._v(t._s(t.lang.description))]),t._v(" "),s("th",[t._v(t._s(t.lang.status))]),t._v(" "),s("th",{attrs:{width:"205"}},[t._v(t._s(t.$t("operation.name")))])])]),t._v(" "),s("tbody",{attrs:{slot:"tbody"},slot:"tbody"},t._l(t.list,function(e,c){return s("tr",[s("td",[s("checkbox",{attrs:{checked:t.checked,value:e.id},model:{value:t.checkbox,callback:function(e){t.checkbox=e},expression:"checkbox"}})],1),t._v(" "),s("td",[t._v(t._s(e.id))]),t._v(" "),s("td",[t._v(t._s(e.name))]),t._v(" "),s("td",[t._v(t._s(e.module))]),t._v(" "),s("td",[t._v(t._s(e.level))]),t._v(" "),s("td",[t._v(t._s(e.description))]),t._v(" "),s("v-td",{attrs:{type:"status",value:e.status}}),t._v(" "),s("v-td",{attrs:{type:"opt",value:e.id,"edit-route":"auth_group_edit"}})],1)}))])],1)},staticRenderFns:[]},n=s("VU/8")(o,a,!1,null,null,null);e.default=n.exports}}); 2 | //# sourceMappingURL=22.e8e25134d38448f03816.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/26.64ebbd93dfcff469bc68.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([26],{ULkR:function(t,e,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=c("bGai"),a={components:{Checkbox:c("G5C1").a,VTd:s.h,Container:s.c,List:s.e},data:function(){return{title:this.$t("arctype_mod.index"),lang:this.$t("arctype_mod"),arctypeModRoute:{name:"article_model_create_edit"},checked:!1,tgCheck:!1}},watch:{checkbox:function(t){var e=t.length;e===this.list.length&&(this.tgCheck=!0),0===e&&(this.tgCheck=!1)}},computed:{list:function(){return this.$store.state.table.list},checkbox:{get:function(){return this.$store.state.table.checkbox},set:function(t){this.$store.commit("table/SET_CHECKBOX",t)}}},mounted:function(){this.$store.commit("table/SET_URL","/api/arctype/model/index"),this.$store.dispatch("table/fetchList")}},o={render:function(){var t=this,e=t.$createElement,c=t._self._c||e;return c("container",{attrs:{title:t.title}},[c("list",{attrs:{editRoute:t.arctypeModRoute,"show-del":!0}},[c("thead",{attrs:{slot:"thead"},slot:"thead"},[c("tr",[c("th",[c("checkbox",{attrs:{checked:t.tgCheck},model:{value:t.checked,callback:function(e){t.checked=e},expression:"checked"}})],1),t._v(" "),c("th",[t._v(t._s(t.lang.id))]),t._v(" "),c("th",[t._v(t._s(t.lang.name))]),t._v(" "),c("th",[t._v(t._s(t.lang.operation))]),t._v(" "),c("th",[t._v(t._s(t.lang.status))]),t._v(" "),c("th",[t._v(t._s(t.lang.sorts))]),t._v(" "),c("th",{attrs:{width:"125"}},[t._v(t._s(t.$t("operation.name")))])])]),t._v(" "),c("tbody",{attrs:{slot:"tbody"},slot:"tbody"},t._l(t.list,function(e){return c("tr",[c("td",[c("checkbox",{attrs:{checked:t.checked,value:e.id},model:{value:t.checkbox,callback:function(e){t.checkbox=e},expression:"checkbox"}})],1),t._v(" "),c("td",[t._v(t._s(e.id))]),t._v(" "),c("td",[t._v(t._s(e.name))]),t._v(" "),c("td",[t._v(t._s(e.operation))]),t._v(" "),c("v-td",{attrs:{type:"status",value:e.status}}),t._v(" "),c("td",[t._v(t._s(e.sorts))]),t._v(" "),c("v-td",{attrs:{type:"opt",value:e.id,"edit-route":"article_model_create_edit"}})],1)}))])],1)},staticRenderFns:[]},n=c("VU/8")(a,o,!1,null,null,null);e.default=n.exports}}); 2 | //# sourceMappingURL=26.64ebbd93dfcff469bc68.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/27.119cc4a95e709dcf7bd7.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([27],{GZGO:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=a("bGai"),r={components:{Group:o.d,VForm:o.g,Container:o.c},data:function(){return{title:this.$t("arctype_mod.editTitle"),advanced:!0,lang:this.$t("arctype_mod")}},computed:{arctype_mod:{set:function(t){this.$store.commit("arctype/SET_MODEL",t)},get:function(){return this.$store.state.arctype.model}}},created:function(){var t=this.$route.query.id;this.$store.dispatch("arctype/fetchModel",t)},methods:{submit:function(){var t=this;this.$store.dispatch("arctype/editModel").then(function(e){e&&t.$toast.success({title:"API 请求成功",message:e.error})})}}},s={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("Container",{attrs:{title:t.title}},[a("v-form",{on:{submit:t.submit}},[a("template",{slot:"base"},[a("group",{attrs:{label:t.lang.name,type:"input"},model:{value:t.arctype_mod.name,callback:function(e){t.$set(t.arctype_mod,"name",e)},expression:"arctype_mod.name"}}),t._v(" "),a("group",{attrs:{label:t.lang.operation,type:"input"},model:{value:t.arctype_mod.operation,callback:function(e){t.$set(t.arctype_mod,"operation",e)},expression:"arctype_mod.operation"}}),t._v(" "),a("group",{attrs:{label:t.lang.sorts,type:"input"},model:{value:t.arctype_mod.sorts,callback:function(e){t.$set(t.arctype_mod,"sorts",e)},expression:"arctype_mod.sorts"}}),t._v(" "),a("group",{attrs:{label:t.lang.status,type:"status"},model:{value:t.arctype_mod.status,callback:function(e){t.$set(t.arctype_mod,"status",e)},expression:"arctype_mod.status"}})],1)],2)],1)},staticRenderFns:[]},n=a("VU/8")(r,s,!1,null,null,null);e.default=n.exports}}); 2 | //# sourceMappingURL=27.119cc4a95e709dcf7bd7.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/7.1bfbd55143d9b0bcb633.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([7],{U4lU:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"content"},[n("div",{staticClass:"error-page"},[n("h2",{staticClass:"headline text-yellow"},[t._v(" 404")]),t._v(" "),n("div",{staticClass:"error-content",staticStyle:{"padding-top":"1px"}},[t._m(0),t._v(" "),t._m(1),t._v(" "),n("p",[n("a",{attrs:{href:"javascript:void (0)"},on:{click:function(e){t.$router.go(-2)}}},[n("b",[t._v("Return to the previous page >")])]),t._v(" "),n("br")]),t._v(" "),n("p",[n("router-link",{attrs:{href:"javascript:void (0)",to:"/"}},[t._v("Return to the front desk page")]),t._v(" "),n("br")],1)])])])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("h3",[e("i",{staticClass:"fa fa-warning text-yellow"}),this._v(" Oops! Page not found.")])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[this._v("\n We could not find the page you were looking for. "),e("br")])}]};var a=n("VU/8")({name:"notound"},r,!1,function(t){n("fNQn")},"data-v-6528e866",null);e.default=a.exports},fNQn:function(t,e){}}); 2 | //# sourceMappingURL=7.1bfbd55143d9b0bcb633.js.map -------------------------------------------------------------------------------- /blog/vue-blog/static/js/manifest.90c277ab15a8e6b49461.js: -------------------------------------------------------------------------------- 1 | !function(e){var c=window.webpackJsonp;window.webpackJsonp=function(n,a,o){for(var f,d,b,i=0,u=[];i li.treeview > a'); 9 | // $('body').on("click", '.sidebar-menu > li.treeview > a', function(event){ 10 | // var _this = $(this); 11 | // var _checkElement = _this.next(); 12 | // var _parent = _this.parent("li"); 13 | // 14 | // if( _parent.hasClass('active') ){ 15 | // _checkElement.slideUp(); 16 | // _parent.removeClass("active"); 17 | // }else{ 18 | // $('.sidebar-menu li.treeview').removeClass("active"); 19 | // $('.sidebar-menu li.treeview ul').slideUp(); 20 | // _parent.addClass("active"); 21 | // _checkElement.slideDown() 22 | // } 23 | // }); 24 | 25 | // _initLoadPlugin() 26 | 27 | }) 28 | 29 | function _initLoadPlugin(){ 30 | $("[data-toggle='tooltip']").tooltip(); //title提示框 31 | } 32 | -------------------------------------------------------------------------------- /blog/vue-blog/static/system/dist/js/login.js: -------------------------------------------------------------------------------- 1 | /** 2 | * login 3 | */ 4 | $(function(){ 5 | //登陆 6 | $('body').off('click', '.login'); 7 | $('body').on("click", '.login', function(event){ 8 | var _this = $(this); 9 | _this.button('loading'); 10 | var form = _this.closest('form'); 11 | if(form.length){ 12 | var ajax_option={ 13 | dataType:'json', 14 | success:function(data){ 15 | if(data.status == '1'){ 16 | $.amaran({'message':data.info}); 17 | var url = data.url; 18 | window.location.href=url; 19 | }else{ 20 | $.amaran({ 'message':data.info, 'clearAll':true }); 21 | $('#code').click(); 22 | _this.button('reset'); 23 | } 24 | } 25 | } 26 | form.ajaxSubmit(ajax_option); 27 | } 28 | }); 29 | }) -------------------------------------------------------------------------------- /blog/vue-blog/static/system/dist/js/pj.js: -------------------------------------------------------------------------------- 1 | /** 2 | * pj 3 | */ 4 | $(function(){ 5 | 6 | 7 | alert("111"); 8 | }) -------------------------------------------------------------------------------- /blog/vue-blog/static/uploads/avatar/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Y-Aron/vue-flask-blog/4553541339dd313c9b9003cc7c468e1350ba5a08/blog/vue-blog/static/uploads/avatar/header.jpg --------------------------------------------------------------------------------