From b7c782582bc4b8d251ec335d0df8bcf26fee84d4 Mon Sep 17 00:00:00 2001 From: qinglong Date: Sat, 22 Oct 2022 20:57:40 +0800 Subject: [PATCH] Site updated: 2022-10-22 20:57:39 --- 2022/09/14/Hexo安装摸索/index.html | 4 ++-- .../09/16/极空间chevereto图床docker版安装/index.html | 2 +- .../17/Hexo-Theme-Shoka-algolia搜索踩坑/index.html | 4 ++-- .../index.html | 2 +- 2022/09/22/protobuf生成js文件/index.html | 2 +- .../解决域名ip变动后需要重启nginx的问题/index.html | 4 ++-- .../解决Hexo-Shoka背景音乐无法播放的问题/index.html | 2 +- 2022/09/27/nginx负载均衡配置/index.html | 4 ++-- 2022/09/28/深深的挫败和无助感/index.html | 2 +- 2022/10/06/Nginx配置iframe访问/index.html | 2 +- 2022/10/11/svn库转git库/index.html | 2 +- 2022/10/12/使用picgo上传图片到chevereto/index.html | 2 +- 2022/10/14/nginx允许跨域获取cookies方法/index.html | 4 ++-- 2022/10/17/redis主从基础配置记录/index.html | 4 ++-- 2022/10/18/搭建nagios监控/index.html | 4 ++-- 2022/10/19/长了一岁/index.html | 2 +- .../20/极空间Docker版Wordpress安装与配置/index.html | 4 ++-- .../10/21/Hexo-Theme-Shoka-Valine评论配置/index.html | 4 ++-- .../10/21/极空间Docker版mariadb安装与配置/index.html | 4 ++-- .../22/极空间Docker版青龙面板安装与配置/index.html | 4 ++-- 404.html | 2 +- about/me.html | 2 +- archives/2022/09/index.html | 2 +- archives/2022/10/index.html | 2 +- archives/2022/10/page/2/index.html | 2 +- archives/2022/index.html | 2 +- archives/2022/page/2/index.html | 2 +- archives/index.html | 2 +- atom.xml | 6 +++--- categories/Linux/index.html | 2 +- categories/Linux/服务/index.html | 2 +- categories/Linux/服务/技术分享/index.html | 2 +- categories/Linux/服务/经验分享/index.html | 2 +- categories/Windows/index.html | 2 +- categories/Windows/工具/index.html | 2 +- categories/Windows/工具/经验分享/index.html | 2 +- categories/index.html | 2 +- categories/工具/index.html | 2 +- categories/工具/经验分享/index.html | 2 +- categories/极空间/Docker/index.html | 2 +- categories/极空间/Docker/技术分享/index.html | 2 +- categories/极空间/Docker/经验分享/index.html | 2 +- categories/极空间/index.html | 2 +- categories/生活/index.html | 2 +- categories/生活/心得体会/index.html | 2 +- categories/生活/心情/index.html | 2 +- css/app.css | 2 +- feed.json | 12 ++++++------ index.html | 2 +- page/2/index.html | 2 +- rss.xml | 6 +++--- tags/Hexo-admin/index.html | 2 +- tags/Hexo/index.html | 2 +- tags/PicGo/index.html | 2 +- tags/Shoka/index.html | 2 +- tags/Valine/index.html | 2 +- tags/Wordpress/index.html | 2 +- tags/algolia/index.html | 2 +- tags/chevereto/index.html | 2 +- tags/cookie/index.html | 2 +- tags/docker/index.html | 2 +- tags/git/index.html | 2 +- tags/iframe/index.html | 2 +- tags/index.html | 2 +- tags/js/index.html | 2 +- tags/mariadb/index.html | 2 +- tags/mysql/index.html | 2 +- tags/nagios/index.html | 2 +- tags/netty/index.html | 2 +- tags/nginx/index.html | 2 +- tags/protobuf/index.html | 2 +- tags/redis/index.html | 2 +- tags/socketIO/index.html | 2 +- tags/svn/index.html | 2 +- tags/博客/index.html | 2 +- tags/图床/index.html | 2 +- tags/图片上传/index.html | 2 +- tags/定时任务/index.html | 2 +- tags/心情/index.html | 2 +- tags/搜索/index.html | 2 +- tags/服务监控/index.html | 2 +- tags/极空间/index.html | 2 +- tags/背景音乐/index.html | 2 +- tags/评论/index.html | 2 +- tags/负载均衡/index.html | 2 +- tags/踩坑/index.html | 2 +- tags/郁闷/index.html | 2 +- tags/青龙面板/index.html | 2 +- 88 files changed, 108 insertions(+), 108 deletions(-) diff --git a/2022/09/14/Hexo安装摸索/index.html b/2022/09/14/Hexo安装摸索/index.html index d82e97a5d..6ddb4c694 100644 --- a/2022/09/14/Hexo安装摸索/index.html +++ b/2022/09/14/Hexo安装摸索/index.html @@ -1,4 +1,4 @@ -Hexo 安装摸索 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# hexo 博客安装

  1. 安装 nodejs

  2. 安装 git

  3. 安装 hexo(windows 需进入 git bash)

    npm install -g hexo-cli

  4. 初始化博客目录

    hexo init blog

  5. 进入博客目录

    cd blog

  6. 初始化 hexo 到博客目录

    npm install

# shoka 主题安装

  1. 下载主题

    git clone https://github.com/amehime/hexo-theme-shoka.git ./themes/shoka

  2. 卸载 hexo-renderer-marked 以及别的 markdown 文件渲染器

    npm un hexo-renderer-marked --save

  3. 安装(md 文件渲染器,压缩 css/js/html)

    npm i hexo-renderer-multi-markdown-it --save

  4. 安装(给生成的 css 文件们添加浏览器前缀)

    npm i hexo-autoprefixer --save

  5. 安装(站内搜索功能)

    npm i hexo-algoliasearch --save

  6. 安装(文章或站点字数及阅读时间统计)

    npm i hexo-symbols-count-time --save

  7. 安装(生成 Feed 文件)

    npm i hexo-feed --save

# Hexo 部分常用命令

  • 清除静态文件

    hexo clean

  • 生成静态文件

    hexo g

  • 安装 git 推送插件

    npm install hexo-deployer-git --save

  • 推送静态文件到 git

    hexo d

# 安装 hexo-admin(编写博客插件)

admin:
+Hexo 安装摸索 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# hexo 博客安装

  1. 安装 nodejs

  2. 安装 git

  3. 安装 hexo(windows 需进入 git bash)

    npm install -g hexo-cli

  4. 初始化博客目录

    hexo init blog

  5. 进入博客目录

    cd blog

  6. 初始化 hexo 到博客目录

    npm install

# shoka 主题安装

  1. 下载主题

    git clone https://github.com/amehime/hexo-theme-shoka.git ./themes/shoka

  2. 卸载 hexo-renderer-marked 以及别的 markdown 文件渲染器

    npm un hexo-renderer-marked --save

  3. 安装(md 文件渲染器,压缩 css/js/html)

    npm i hexo-renderer-multi-markdown-it --save

  4. 安装(给生成的 css 文件们添加浏览器前缀)

    npm i hexo-autoprefixer --save

  5. 安装(站内搜索功能)

    npm i hexo-algoliasearch --save

  6. 安装(文章或站点字数及阅读时间统计)

    npm i hexo-symbols-count-time --save

  7. 安装(生成 Feed 文件)

    npm i hexo-feed --save

# Hexo 部分常用命令

  • 清除静态文件

    hexo clean

  • 生成静态文件

    hexo g

  • 安装 git 推送插件

    npm install hexo-deployer-git --save

  • 推送静态文件到 git

    hexo d

# 安装 hexo-admin(编写博客插件)

admin:
 username: username
 password_hash: xxxxxx
 secret: 'my super secret phrase' #用单引号包裹
@@ -12,4 +12,4 @@ hexo d
 cd D:\blog
 d:
 @cmd /c "hexo clean&& hexo g&&hexo d&&echo success"
-
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file +
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file diff --git a/2022/09/16/极空间chevereto图床docker版安装/index.html b/2022/09/16/极空间chevereto图床docker版安装/index.html index 2ff481adc..91d0bba7a 100644 --- a/2022/09/16/极空间chevereto图床docker版安装/index.html +++ b/2022/09/16/极空间chevereto图床docker版安装/index.html @@ -1 +1 @@ -极空间 chevereto 图床 docker 版安装 - 技术分享 - Docker - 极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 安装准备

  1. 需要先安装好 mysql 数据库

  2. 选择版本,1.5 版以前支持中文,之后被维护的团队删除只支持英文

  3. 本文介绍使用的是 linuxserver_chevereto 的镜像

  4. 需要预先创建好给 chevereto 使用的库、账户、密码

  • 经过测试,使用 surenkid_chevereto 的镜像可以完美支持多国语言,配置同 linuxserver_chevereto 一样


# 容器配置

  1. 映射路径(不要放在高速盘,否则会有权限问题)
    6150d69d9a170d96e66ca69420f8c4e8.png

  2. 端口
    08eafb3b30a7eb9b0c0be26ea7a1502a.png

  3. 环境(puid 和 pgid 使用 1000,不要使用 0,否则会报错)
    01567ca9f31f87f832276be35cc4554b.png

# 初始化配置

  1. 使用 http:// 极空间 ip:81 (端口号使用上面配置的,我配置的是 81) 进行 web 访问(数据库配置)
    0.png

  2. 管理员配置(注意 website 配置选择个人,除非需要提供给其它人注册)
    1.png
    2.png

  3. 默认上传大小是 2M,可通过修改 php.ini 配置提升(路径 /etc/php7/php.ini 查找 upload_max_filesize 和 post_max_size 进行修改)。之后用管理员登录通过页面 http://xxx/dashboard/settings/image-upload 修改。
    upload_max_filesize = 256M
    post_max_size = 256M
    max_execution_time = 300
    max_input_time = 300
    memory_limit = 1024M

# 安装完成

  1. 作为图片管理和链接分享服务完全够用。图片链接 url 支持的也很全面。
    2022-09-16-14-52-29.png
    2022-09-16-14-54-58.png
    2022-09-16-14-56-13.png
\ No newline at end of file +极空间 chevereto 图床 docker 版安装 - 技术分享 - Docker - 极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 安装准备

  1. 需要先安装好 mysql 数据库

  2. 选择版本,1.5 版以前支持中文,之后被维护的团队删除只支持英文

  3. 本文介绍使用的是 linuxserver_chevereto 的镜像

  4. 需要预先创建好给 chevereto 使用的库、账户、密码

  • 经过测试,使用 surenkid_chevereto 的镜像可以完美支持多国语言,配置同 linuxserver_chevereto 一样


# 容器配置

  1. 映射路径(不要放在高速盘,否则会有权限问题)
    6150d69d9a170d96e66ca69420f8c4e8.png

  2. 端口
    08eafb3b30a7eb9b0c0be26ea7a1502a.png

  3. 环境(puid 和 pgid 使用 1000,不要使用 0,否则会报错)
    01567ca9f31f87f832276be35cc4554b.png

# 初始化配置

  1. 使用 http:// 极空间 ip:81 (端口号使用上面配置的,我配置的是 81) 进行 web 访问(数据库配置)
    0.png

  2. 管理员配置(注意 website 配置选择个人,除非需要提供给其它人注册)
    1.png
    2.png

  3. 默认上传大小是 2M,可通过修改 php.ini 配置提升(路径 /etc/php7/php.ini 查找 upload_max_filesize 和 post_max_size 进行修改)。之后用管理员登录通过页面 http://xxx/dashboard/settings/image-upload 修改。
    upload_max_filesize = 256M
    post_max_size = 256M
    max_execution_time = 300
    max_input_time = 300
    memory_limit = 1024M

# 安装完成

  1. 作为图片管理和链接分享服务完全够用。图片链接 url 支持的也很全面。
    2022-09-16-14-52-29.png
    2022-09-16-14-54-58.png
    2022-09-16-14-56-13.png
\ No newline at end of file diff --git a/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑/index.html b/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑/index.html index 4cba45126..b1a71468c 100644 --- a/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑/index.html +++ b/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑/index.html @@ -1,4 +1,4 @@ -Hexo + Theme.Shoka + algolia 搜索踩坑 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# Hexo + Theme.Shoka 安装

安装介绍

# algolia 注册

  1. algolia 不支持国内邮箱注册,而 google 和 github 由于国内被墙也没法使用。所以只能先注册 netlify 然后通过 netlify 注册 algolia。

  2. 登录 algolia 后创建一个 index,名字随意记住既可。

    2022-09-17-23-32-20.png

  3. 点击右上角红点,弹出窗口点 settings 按钮。

    2022-09-17-23-35-04.png

  4. 点击 API KEYS,获取 appId 和 adminApiKey 填入 hexo 的_config.yml 中 apiKey 暂时不填。

algolia:
+Hexo + Theme.Shoka + algolia 搜索踩坑 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# Hexo + Theme.Shoka 安装

安装介绍

# algolia 注册

  1. algolia 不支持国内邮箱注册,而 google 和 github 由于国内被墙也没法使用。所以只能先注册 netlify 然后通过 netlify 注册 algolia。

  2. 登录 algolia 后创建一个 index,名字随意记住既可。

    2022-09-17-23-32-20.png

  3. 点击右上角红点,弹出窗口点 settings 按钮。

    2022-09-17-23-35-04.png

  4. 点击 API KEYS,获取 appId 和 adminApiKey 填入 hexo 的_config.yml 中 apiKey 暂时不填。

algolia:
   appId: #Your appId
   apiKey: #Your apiKey
   adminApiKey: #Your adminApiKey
@@ -12,4 +12,4 @@
     - gallery
     - photos
     - tags
-
  1. 点击 All Api Keys - New Api key 创建一个 api key,Indices 选先前让记住的 index,ACL 选下面图片中的选项。

    2022-09-17-23-47-50.png

  2. 把第 5 步中新建的 api key 填入到第 4 步中的配置中,到此已经完成了百分之九十,只需要重新编译发布即可。不过编译步骤多了一步,在 hexo g 后需要再执行 hexo algolia,至此搜索功能就大功告成了。

\ No newline at end of file +
  1. 点击 All Api Keys - New Api key 创建一个 api key,Indices 选先前让记住的 index,ACL 选下面图片中的选项。

    2022-09-17-23-47-50.png

  2. 把第 5 步中新建的 api key 填入到第 4 步中的配置中,到此已经完成了百分之九十,只需要重新编译发布即可。不过编译步骤多了一步,在 hexo g 后需要再执行 hexo algolia,至此搜索功能就大功告成了。

\ No newline at end of file diff --git a/2022/09/21/记一次netty-socket-io服务端连接不上的问题/index.html b/2022/09/21/记一次netty-socket-io服务端连接不上的问题/index.html index 0a4d1b9a5..2ad2abc36 100644 --- a/2022/09/21/记一次netty-socket-io服务端连接不上的问题/index.html +++ b/2022/09/21/记一次netty-socket-io服务端连接不上的问题/index.html @@ -1 +1 @@ -记一次 netty-socketio 服务端连接不上的问题 - 心得体会 - 生活 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

今天前端开发跟我反馈用 vue 的 socketio 连接不上后台服务,连接无反应无任何报错。所以不清楚是前端代码问题还是后台服务的问题。由于框架为另一同事搭建,我只负责处理后端业务逻辑部分,所以第一时间我也不清楚具体的原因。于是我找了个第三方的 socket 工具尝试连接,果然有问题。但是只是提示连接不上,无明显错误原因。到后台查看发现有提示 Unknown transport for request 错误,最后通过调试发现 netty-socketio 的库中 AuthorizeHandler 类有段处理 transport 的代码只能接受大写的 WEBSOCKET 或者 POLLING,于是我在工具中按要求填上结果还是不行。然后我在网上搜索也未发现有相关问题,只发现有网友提示需要用 socketio 的库,不要自己写 socket 连接。于是我找了 socket.io.js 来连接,结果还是一样。经过大量调试改代码,最后突发奇想,有没有可能跟 netty-socketio 的版本有关系,于是我把版本从 1.7.20 升级到 1.7.21,结果就奇迹般的好了。

# 总结:就好像大力出奇迹,实在找不到原因的时候不妨升级一下版本,说不定问题就解决了呢!O (∩_∩) O
\ No newline at end of file +记一次 netty-socketio 服务端连接不上的问题 - 心得体会 - 生活 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

今天前端开发跟我反馈用 vue 的 socketio 连接不上后台服务,连接无反应无任何报错。所以不清楚是前端代码问题还是后台服务的问题。由于框架为另一同事搭建,我只负责处理后端业务逻辑部分,所以第一时间我也不清楚具体的原因。于是我找了个第三方的 socket 工具尝试连接,果然有问题。但是只是提示连接不上,无明显错误原因。到后台查看发现有提示 Unknown transport for request 错误,最后通过调试发现 netty-socketio 的库中 AuthorizeHandler 类有段处理 transport 的代码只能接受大写的 WEBSOCKET 或者 POLLING,于是我在工具中按要求填上结果还是不行。然后我在网上搜索也未发现有相关问题,只发现有网友提示需要用 socketio 的库,不要自己写 socket 连接。于是我找了 socket.io.js 来连接,结果还是一样。经过大量调试改代码,最后突发奇想,有没有可能跟 netty-socketio 的版本有关系,于是我把版本从 1.7.20 升级到 1.7.21,结果就奇迹般的好了。

# 总结:就好像大力出奇迹,实在找不到原因的时候不妨升级一下版本,说不定问题就解决了呢!O (∩_∩) O
\ No newline at end of file diff --git a/2022/09/22/protobuf生成js文件/index.html b/2022/09/22/protobuf生成js文件/index.html index 652d4cc2f..c83bc81df 100644 --- a/2022/09/22/protobuf生成js文件/index.html +++ b/2022/09/22/protobuf生成js文件/index.html @@ -1 +1 @@ -protobuf 生成 js 文件 - 经验分享 - 工具 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 下载工具

protoc-3.19.5-win64.zip

# 生成 js 文件

  1. 把 xxx.proto 文件拷贝到解压的 protoc-3.19.5-win64\bin 目录下

  2. cmd 到相同的 bin 目录下

  3. 执行 protoc.exe --js_out=import_style=commonjs,binary:. ./xxx.proto 命令,就会在 bin 目录下生成 xxx_pb.js 文件

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file +protobuf 生成 js 文件 - 经验分享 - 工具 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 下载工具

protoc-3.19.5-win64.zip

# 生成 js 文件

  1. 把 xxx.proto 文件拷贝到解压的 protoc-3.19.5-win64\bin 目录下

  2. cmd 到相同的 bin 目录下

  3. 执行 protoc.exe --js_out=import_style=commonjs,binary:. ./xxx.proto 命令,就会在 bin 目录下生成 xxx_pb.js 文件

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file diff --git a/2022/09/23/解决域名ip变动后需要重启nginx的问题/index.html b/2022/09/23/解决域名ip变动后需要重启nginx的问题/index.html index 4878a1136..dd767774f 100644 --- a/2022/09/23/解决域名ip变动后需要重启nginx的问题/index.html +++ b/2022/09/23/解决域名ip变动后需要重启nginx的问题/index.html @@ -1,8 +1,8 @@ -解决域名 ip 变动后需要重启 nginx 的问题 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

今天突然发现自己的网站不能访问了。经过一顿排查,发现是家里的外网 ip 变动后 nginx 解析的域名 ip 还是旧 ip 导致的。手动重启 nginx 后恢复正常。但这不是长久之计,如果每次 ip 变动都需要重启一次 nginx,想想都头大。于是查询资料后获得了解决办法,方法如下:

location / {	
+解决域名 ip 变动后需要重启 nginx 的问题 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

今天突然发现自己的网站不能访问了。经过一顿排查,发现是家里的外网 ip 变动后 nginx 解析的域名 ip 还是旧 ip 导致的。手动重启 nginx 后恢复正常。但这不是长久之计,如果每次 ip 变动都需要重启一次 nginx,想想都头大。于是查询资料后获得了解决办法,方法如下:

location / {	
 	resolver 114.114.114.114 valid=60s; #自定义缓存有效时间间隔对变量中的域名进行解析
 
 	set $my_server "https://ip:port";
 
 	proxy_pass $my_server;
 }
-
\ No newline at end of file +
\ No newline at end of file diff --git a/2022/09/26/解决Hexo-Shoka背景音乐无法播放的问题/index.html b/2022/09/26/解决Hexo-Shoka背景音乐无法播放的问题/index.html index c83ecd04c..ef6b5bdca 100644 --- a/2022/09/26/解决Hexo-Shoka背景音乐无法播放的问题/index.html +++ b/2022/09/26/解决Hexo-Shoka背景音乐无法播放的问题/index.html @@ -1 +1 @@ -解决 Hexo+Shoka 背景音乐无法播放的问题 - 技术分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

今天突然发现博客的音乐无法播放了。经过一顿查找,发现是因为 https://api.i-meto.com/meting/api 调用出错了。shoka 主题应该是通过这个网站提取音乐地址、图片等信息。通过断点发现网易播放列表还是能正常获取的,只是列表中的具体音乐、图片无法获取了。于是自己用获取的列表信息组装出正确的 url 问题基本解决。只针对网易播放列表,图片只能使用一张固定的。

解决方法如下:

到 themes\shoka\source\js_app 目录下打开 player.js 文件,在最底部 init (config) 下加入 vendorJs ('fancybox');,然后找到 56 行用下面的代码替换即可。

fetch: function(source) {
      var list = []
      return new Promise(function(resolve, reject) {
        source.forEach(function(raw) {
          var meta = utils.parse(raw)
          if(meta[0]) {
            var skey = JSON.stringify(meta)
            var playlist = store.get(skey)
            if(playlist) {
			  // 自己修改 - start
			  var audioInfos = JSON.parse(playlist);
			  var neteaseStartUrl = "https://music.163.com/song/media/outer/url?id=";
			  if (meta[0] == "netease" && audioInfos && audioInfos.length>0 && !audioInfos[0].url.startsWith(neteaseStartUrl)) {// 如果是网易音乐就自己构建 url
				  jQuery.ajax({
					  url: audioInfos[0].url,
					  type: 'get',
					  async: false,
					  timeout: 5000,
					  complete : function(XMLHttpRequest, status){
						  if (XMLHttpRequest.status != 200) {
							  audioInfos.forEach(function(audioInfo) {
								  var id = audioInfo.url.substring(audioInfo.url.indexOf("id=")+3, audioInfo.url.indexOf("&auth="));
								  audioInfo.url = neteaseStartUrl + id;
								  audioInfo.pic = "https://p3.music.126.net/Vji3PQJAZ2C7gS_6X51NFQ==/109951164723650033.jpg?param=200y200";
							  })
						  }
						  list.push.apply(list, audioInfos);
						  resolve(list);
					  }
				  });
			  } else {
				  list.push.apply(list, audioInfos);
				  resolve(list);
			  }
			  // 自己修改 - end
            } else {
              fetch('https://api.i-meto.com/meting/api?server='+meta[0]+'&type='+meta[1]+'&id='+meta[2]+'&r='+ Math.random())
                .then(function(response) {
                  return response.json()
                }).then(function(json) {
                  store.set(skey, JSON.stringify(json))
                  list.push.apply(list, json);
                  resolve(list);
                }).catch(function(ex) {})
            }
          } else {
            list.push(raw);
            resolve(list);
          }
        })
      })
    }
\ No newline at end of file +解决 Hexo+Shoka 背景音乐无法播放的问题 - 技术分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

今天突然发现博客的音乐无法播放了。经过一顿查找,发现是因为 https://api.i-meto.com/meting/api 调用出错了。shoka 主题应该是通过这个网站提取音乐地址、图片等信息。通过断点发现网易播放列表还是能正常获取的,只是列表中的具体音乐、图片无法获取了。于是自己用获取的列表信息组装出正确的 url 问题基本解决。只针对网易播放列表,图片只能使用一张固定的。

解决方法如下:

到 themes\shoka\source\js_app 目录下打开 player.js 文件,在最底部 init (config) 下加入 vendorJs ('fancybox');,然后找到 56 行用下面的代码替换即可。

fetch: function(source) {
      var list = []
      return new Promise(function(resolve, reject) {
        source.forEach(function(raw) {
          var meta = utils.parse(raw)
          if(meta[0]) {
            var skey = JSON.stringify(meta)
            var playlist = store.get(skey)
            if(playlist) {
			  // 自己修改 - start
			  var audioInfos = JSON.parse(playlist);
			  var neteaseStartUrl = "https://music.163.com/song/media/outer/url?id=";
			  if (meta[0] == "netease" && audioInfos && audioInfos.length>0 && !audioInfos[0].url.startsWith(neteaseStartUrl)) {// 如果是网易音乐就自己构建 url
				  jQuery.ajax({
					  url: audioInfos[0].url,
					  type: 'get',
					  async: false,
					  timeout: 5000,
					  complete : function(XMLHttpRequest, status){
						  if (XMLHttpRequest.status != 200) {
							  audioInfos.forEach(function(audioInfo) {
								  var id = audioInfo.url.substring(audioInfo.url.indexOf("id=")+3, audioInfo.url.indexOf("&auth="));
								  audioInfo.url = neteaseStartUrl + id;
								  audioInfo.pic = "https://p3.music.126.net/Vji3PQJAZ2C7gS_6X51NFQ==/109951164723650033.jpg?param=200y200";
							  })
						  }
						  list.push.apply(list, audioInfos);
						  resolve(list);
					  }
				  });
			  } else {
				  list.push.apply(list, audioInfos);
				  resolve(list);
			  }
			  // 自己修改 - end
            } else {
              fetch('https://api.i-meto.com/meting/api?server='+meta[0]+'&type='+meta[1]+'&id='+meta[2]+'&r='+ Math.random())
                .then(function(response) {
                  return response.json()
                }).then(function(json) {
                  store.set(skey, JSON.stringify(json))
                  list.push.apply(list, json);
                  resolve(list);
                }).catch(function(ex) {})
            }
          } else {
            list.push(raw);
            resolve(list);
          }
        })
      })
    }
\ No newline at end of file diff --git a/2022/09/27/nginx负载均衡配置/index.html b/2022/09/27/nginx负载均衡配置/index.html index 261c5fb44..0bcdc32c7 100644 --- a/2022/09/27/nginx负载均衡配置/index.html +++ b/2022/09/27/nginx负载均衡配置/index.html @@ -1,4 +1,4 @@ -nginx 负载均衡配置 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# nginx 负载均衡配置

  1. 轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

upstream my_server {
+nginx 负载均衡配置 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# nginx 负载均衡配置

  1. 轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

upstream my_server {
 	server 192.168.0.2:8080;
 	server 192.168.0.3:8080;
 }
@@ -60,4 +60,4 @@ server {
 	}
 	
 }
-
  1. 动静分离

把静态的资源,比如图片,css,js 等先加载到 Nginx 的服务器里。

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file +
  1. 动静分离

把静态的资源,比如图片,css,js 等先加载到 Nginx 的服务器里。

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file diff --git a/2022/09/28/深深的挫败和无助感/index.html b/2022/09/28/深深的挫败和无助感/index.html index 4cd9c4c9a..6d34bf500 100644 --- a/2022/09/28/深深的挫败和无助感/index.html +++ b/2022/09/28/深深的挫败和无助感/index.html @@ -1 +1 @@ -深深的挫败和无助感 - 心情 - 生活 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +深深的挫败和无助感 - 心情 - 生活 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/2022/10/06/Nginx配置iframe访问/index.html b/2022/10/06/Nginx配置iframe访问/index.html index c49ee59f3..0b0e4349b 100644 --- a/2022/10/06/Nginx配置iframe访问/index.html +++ b/2022/10/06/Nginx配置iframe访问/index.html @@ -1 +1 @@ -Nginx 配置 iframe 访问 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# X-Frame-Options 响应头配置详解

X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在,或者 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌套到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。
X-Frame-Options 三个参数:

1、 DENY

表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

2、SAMEORIGIN

表示该页面可以在相同域名页面的 frame 中展示。

3、ALLOW-FROM uri

表示该页面可以在指定来源的 frame 中展示。

4、ALLOWALL

表示该页面可以在任何来源的 frame 中展示。

换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。正常情况下我们通常使用 SAMEORIGIN 参数。

# Apache 配置

需要把下面这行添加到'site' 的配置中

Header always append X-Frame-Options SAMEORIGIN

# Nginx 配置

需要添加到 ‘http’, ‘server’ 或者 ‘location’ 的配置项中,个人来讲喜欢配置在‘server’ 中

正常情况下都是使用 SAMEORIGIN 参数,允许同域嵌套
add_header X-Frame-Options SAMEORIGIN;

允许单个域名 iframe 嵌套
add_header X-Frame-Options ALLOW-FROM http://xxx.com/;

允许多个域名 iframe 嵌套,注意这里是用逗号分隔
add_header X-Frame-Options "ALLOW-FROM http://xxx.com/,https://xxx.com/";

允许任何域名 iframe 嵌套
add_header X-Frame-Options ALLOWALL;

# Tomcat 配置

在‘conf/web.xml’填加以下配置

<filter>
        <filter-name>httpHeaderSecurity</filter-name>
        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
        <init-param>
            <param-name>antiClickJackingOption</param-name>
            <param-value>SAMEORIGIN</param-value>
        </init-param>
        <async-supported>true</async-supported>
    </filter>
<filter-mapping>
        <filter-name>httpHeaderSecurity</filter-name>
        <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

# IIS 配置

添加下面的配置到 ‘Web.config’文件中

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
  </httpProtocol>
</system.webServer>
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file +Nginx 配置 iframe 访问 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# X-Frame-Options 响应头配置详解

X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在,或者 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌套到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。
X-Frame-Options 三个参数:

1、 DENY

表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

2、SAMEORIGIN

表示该页面可以在相同域名页面的 frame 中展示。

3、ALLOW-FROM uri

表示该页面可以在指定来源的 frame 中展示。

4、ALLOWALL

表示该页面可以在任何来源的 frame 中展示。

换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。正常情况下我们通常使用 SAMEORIGIN 参数。

# Apache 配置

需要把下面这行添加到'site' 的配置中

Header always append X-Frame-Options SAMEORIGIN

# Nginx 配置

需要添加到 ‘http’, ‘server’ 或者 ‘location’ 的配置项中,个人来讲喜欢配置在‘server’ 中

正常情况下都是使用 SAMEORIGIN 参数,允许同域嵌套
add_header X-Frame-Options SAMEORIGIN;

允许单个域名 iframe 嵌套
add_header X-Frame-Options ALLOW-FROM http://xxx.com/;

允许多个域名 iframe 嵌套,注意这里是用逗号分隔
add_header X-Frame-Options "ALLOW-FROM http://xxx.com/,https://xxx.com/";

允许任何域名 iframe 嵌套
add_header X-Frame-Options ALLOWALL;

# Tomcat 配置

在‘conf/web.xml’填加以下配置

<filter>
        <filter-name>httpHeaderSecurity</filter-name>
        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
        <init-param>
            <param-name>antiClickJackingOption</param-name>
            <param-value>SAMEORIGIN</param-value>
        </init-param>
        <async-supported>true</async-supported>
    </filter>
<filter-mapping>
        <filter-name>httpHeaderSecurity</filter-name>
        <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

# IIS 配置

添加下面的配置到 ‘Web.config’文件中

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
  </httpProtocol>
</system.webServer>
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file diff --git a/2022/10/11/svn库转git库/index.html b/2022/10/11/svn库转git库/index.html index 124d44b26..267cc2f22 100644 --- a/2022/10/11/svn库转git库/index.html +++ b/2022/10/11/svn库转git库/index.html @@ -1 +1 @@ -svn 库转 git 库 - 经验分享 - 工具 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 前期准备

首先安装好 svn 和 git 工具。

# svn 转 git

1、 到 svn 项目目录右键选中 gitbash 打开窗口,执行获取用户并映射成 git 样式账号命令如下:
svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt

然后会在目录下生成文件 users.txt 样式如:zhansan = 张三 zhansan@xxx.com

2、新建个文件夹,将生成的 users.txt 放入新建的文件夹,然后在新建的文件夹中右键选中 gitbash 弹出窗口后执行下面命令(https://svn_project_url/ 为 svn 库的 url),拉取 svn 代码到本地新建文件夹中。
git svn clone https://svn_project_url/ --no-metadata --no-minimize-url --authors-file=users.txt

  • 期间可能会弹出 svn 的账户密码验证窗口,正确输入即可。

# 推送项目到 git 库

1、在 gitbash 窗口 cd 到 git 项目文件夹中执行以下命令把 git 仓库地址加入到 remote 中(https://git_project_url/ 为 git 库的 url)。
git remote add origin https://git_project_url/

2、push 项目到 git 库中。
git push origin master

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file +svn 库转 git 库 - 经验分享 - 工具 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 前期准备

首先安装好 svn 和 git 工具。

# svn 转 git

1、 到 svn 项目目录右键选中 gitbash 打开窗口,执行获取用户并映射成 git 样式账号命令如下:
svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt

然后会在目录下生成文件 users.txt 样式如:zhansan = 张三 zhansan@xxx.com

2、新建个文件夹,将生成的 users.txt 放入新建的文件夹,然后在新建的文件夹中右键选中 gitbash 弹出窗口后执行下面命令(https://svn_project_url/ 为 svn 库的 url),拉取 svn 代码到本地新建文件夹中。
git svn clone https://svn_project_url/ --no-metadata --no-minimize-url --authors-file=users.txt

  • 期间可能会弹出 svn 的账户密码验证窗口,正确输入即可。

# 推送项目到 git 库

1、在 gitbash 窗口 cd 到 git 项目文件夹中执行以下命令把 git 仓库地址加入到 remote 中(https://git_project_url/ 为 git 库的 url)。
git remote add origin https://git_project_url/

2、push 项目到 git 库中。
git push origin master

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file diff --git a/2022/10/12/使用picgo上传图片到chevereto/index.html b/2022/10/12/使用picgo上传图片到chevereto/index.html index feca982d9..bdcc8b008 100644 --- a/2022/10/12/使用picgo上传图片到chevereto/index.html +++ b/2022/10/12/使用picgo上传图片到chevereto/index.html @@ -1 +1 @@ -使用 PicGo 上传图片到 chevereto - 经验分享 - 工具 - Windows | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 简介

PicGo 是一款开源的图床管理工具,十分流行。

PicGo 官方指南:PicGo | PicGo

# 配置

  1. 安装插件(需要先安装 NodeJS)

  2. 图床配置
    url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配置中查找

\ No newline at end of file +使用 PicGo 上传图片到 chevereto - 经验分享 - 工具 - Windows | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 简介

PicGo 是一款开源的图床管理工具,十分流行。

PicGo 官方指南:PicGo | PicGo

# 配置

  1. 安装插件(需要先安装 NodeJS)

  2. 图床配置
    url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配置中查找

\ No newline at end of file diff --git a/2022/10/14/nginx允许跨域获取cookies方法/index.html b/2022/10/14/nginx允许跨域获取cookies方法/index.html index 7d3b12d9c..d6abec30a 100644 --- a/2022/10/14/nginx允许跨域获取cookies方法/index.html +++ b/2022/10/14/nginx允许跨域获取cookies方法/index.html @@ -1,4 +1,4 @@ -nginx 允许跨域获取 cookie 的方法 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 使用场景

在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下:

server {
+nginx 允许跨域获取 cookie 的方法 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 使用场景

在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下:

server {
 	listen port ssl http2;
 	server_name xxx.com;
 	ssl_certificate_key /xxx.key;
@@ -11,4 +11,4 @@
 		proxy_pass http://xxx;
 	}
 }
-
\ No newline at end of file +
\ No newline at end of file diff --git a/2022/10/17/redis主从基础配置记录/index.html b/2022/10/17/redis主从基础配置记录/index.html index 5425ab959..7c8a3b5cb 100644 --- a/2022/10/17/redis主从基础配置记录/index.html +++ b/2022/10/17/redis主从基础配置记录/index.html @@ -1,4 +1,4 @@ -redis 主从基础配置 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 主服务

  1. 基础配置
port 6379
+redis 主从基础配置 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 主服务

  1. 基础配置
port 6379
 requirepass 123456(密码,建议不设置)
 vm-enabled no (虚拟内存,内存够的情况下可以不使用)
 maxmemory 1GB(告诉Redis当使用了多少物理内存后就开始拒绝后续的写入)
@@ -74,4 +74,4 @@ redis-cli config set stop-writes-on-bgsave-error no
 sudo vim /etc/redis/redis.conf把stop-writes-on-bgsave-error改为no
 修改系统 sudo vim /etc/sysctl.conf加入vm.overcommit_memory=1
 sudo sysctl vm.overcommit_memory=1
-
\ No newline at end of file +
\ No newline at end of file diff --git a/2022/10/18/搭建nagios监控/index.html b/2022/10/18/搭建nagios监控/index.html index d29322830..5d3d9bfbd 100644 --- a/2022/10/18/搭建nagios监控/index.html +++ b/2022/10/18/搭建nagios监控/index.html @@ -1,4 +1,4 @@ -搭建 nagios 监控 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 监控端服务安装与配置

  1. nagios 需要安装主程序和 nrpe(nagios 和各被监控主机都必须安装)。如需使用自研前端可通过安装 ndoutils (用于把 nagios 监控信息写入数据库) 和 mysql 实现。具体安装见官网
  2. nagios 默认监控命令脚本放置在 libexec 中,自定义脚本也放到此处
  3. etc/objects/commands.cfg 用于保存 nagios 默认监控命令
  4. etc/nrpe.cfg 文件中需要添加用于被监控执行命令项(各被监控主机中都需要添加)
  5. etc/objects/hosts 目录下配置需要被监控的主机信息
  6. etc/objects/servers 目录下配置需要在被监控主机上执行的监控命令(第 4 项中的命令)

# 被监控端服务安装与配置

  1. 被监控端需要安装 nrpe
  2. 被监控端需要把监控端的命令写入到 nrpe 的配置文件中
  3. 被监控端需要把命令执行脚本放入 libexec 目录中
  4. 被监控端自动安装脚本(可借鉴)
1、请先修改脚本中的服务端IP。
+搭建 nagios 监控 - 经验分享 - 服务 - Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 监控端服务安装与配置

  1. nagios 需要安装主程序和 nrpe(nagios 和各被监控主机都必须安装)。如需使用自研前端可通过安装 ndoutils (用于把 nagios 监控信息写入数据库) 和 mysql 实现。具体安装见官网
  2. nagios 默认监控命令脚本放置在 libexec 中,自定义脚本也放到此处
  3. etc/objects/commands.cfg 用于保存 nagios 默认监控命令
  4. etc/nrpe.cfg 文件中需要添加用于被监控执行命令项(各被监控主机中都需要添加)
  5. etc/objects/hosts 目录下配置需要被监控的主机信息
  6. etc/objects/servers 目录下配置需要在被监控主机上执行的监控命令(第 4 项中的命令)

# 被监控端服务安装与配置

  1. 被监控端需要安装 nrpe
  2. 被监控端需要把监控端的命令写入到 nrpe 的配置文件中
  3. 被监控端需要把命令执行脚本放入 libexec 目录中
  4. 被监控端自动安装脚本(可借鉴)
1、请先修改脚本中的服务端IP。
 2、如被监控端不支持let计算命令请执行sudo dpkg-reconfigure dash命令,弹出选择窗口后选择no。
 3、需要在脚本同目录下创建CentOS、Ubuntu、sh和conf目录,目录下分别放置nrpe的tar安装包、监控脚本和nrpe配置文件。
 
@@ -216,4 +216,4 @@ sudo rm -f /usr/local/nagios/var/ndo2db.pid
 sudo rm -f /usr/local/nagios/var/ndo.sock
 sudo systemctl restart ndo2db.service
 sudo systemctl status ndo2db.service
-
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file +
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file diff --git a/2022/10/19/长了一岁/index.html b/2022/10/19/长了一岁/index.html index c786f6062..ae72583ed 100644 --- a/2022/10/19/长了一岁/index.html +++ b/2022/10/19/长了一岁/index.html @@ -1 +1 @@ -又长了一岁 - 心情 - 生活 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

一年一次的总结时间又到了,这一年前半年平平无奇,后半年惊涛骇浪。中年危机如期而遇,人身的低谷终究还是来了。很沮丧也很无助,但还是要坚强面对。人生起起伏伏,时好时坏,终归还是会好起来的。加油!加油!加油

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file +又长了一岁 - 心情 - 生活 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

一年一次的总结时间又到了,这一年前半年平平无奇,后半年惊涛骇浪。中年危机如期而遇,人身的低谷终究还是来了。很沮丧也很无助,但还是要坚强面对。人生起起伏伏,时好时坏,终归还是会好起来的。加油!加油!加油

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file diff --git a/2022/10/20/极空间Docker版Wordpress安装与配置/index.html b/2022/10/20/极空间Docker版Wordpress安装与配置/index.html index 666374823..e538923ad 100644 --- a/2022/10/20/极空间Docker版Wordpress安装与配置/index.html +++ b/2022/10/20/极空间Docker版Wordpress安装与配置/index.html @@ -1,4 +1,4 @@ -极空间 Docker 版 Wordpress 安装与配置 - 技术分享 - Docker - 极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 安装

  • 下载最新版 wordpress 镜像,如极空间无法下载,可到 passerma 网站下载。
  • 需要先在 mysql 中创建给 wordpress 使用的库。
  • 文件路径映射(目前极空间不能映射到高速盘,否则无法启动)。
  • 端口映射。
  • 通过映射的端口访问安装界面(一定要通过最终访问的页面进行安装,否则修改配置比较麻烦。如最终是域名访问,就先把域名解析代理等先配置好,再通过域名访问安装)。

# 配置

  • 如需使用 https 访问,需要在 wp-config.php 中加入以下代码,否则资源文件无法访问。
if((!empty( $_SERVER['HTTP_X_FORWARDED_HOST'])) || (!empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) ) {
+极空间 Docker 版 Wordpress 安装与配置 - 技术分享 - Docker - 极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 安装

  • 下载最新版 wordpress 镜像,如极空间无法下载,可到 passerma 网站下载。
  • 需要先在 mysql 中创建给 wordpress 使用的库。
  • 文件路径映射(目前极空间不能映射到高速盘,否则无法启动)。
  • 端口映射。
  • 通过映射的端口访问安装界面(一定要通过最终访问的页面进行安装,否则修改配置比较麻烦。如最终是域名访问,就先把域名解析代理等先配置好,再通过域名访问安装)。

# 配置

  • 如需使用 https 访问,需要在 wp-config.php 中加入以下代码,否则资源文件无法访问。
if((!empty( $_SERVER['HTTP_X_FORWARDED_HOST'])) || (!empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) ) {
     $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
     $_SERVER['HTTPS'] = 'on';
 }
@@ -14,4 +14,4 @@ chmod('/var/www/html/wp-content/tmp', 0777);
 
  • 隐藏后台访问需要在 wp-login.php 中加入以下代码,key、value 和 https://www.xxx.com/ 需要修改为自己的。修改后只能通过 https://www.xxx.com/wp-login.php?key=value 访问,其它访问需要登录的页面都会跳转到配置的 https://www.xxx.com/ 地址。
if($_GET['key'] != 'value') {
 	header('Location: https://www.xxx.com/');
 }
-
\ No newline at end of file +
\ No newline at end of file diff --git a/2022/10/21/Hexo-Theme-Shoka-Valine评论配置/index.html b/2022/10/21/Hexo-Theme-Shoka-Valine评论配置/index.html index 1c1b54fda..688dc77b8 100644 --- a/2022/10/21/Hexo-Theme-Shoka-Valine评论配置/index.html +++ b/2022/10/21/Hexo-Theme-Shoka-Valine评论配置/index.html @@ -1,4 +1,4 @@ -Hexo + Theme.Shoka + Valine 评论配置 - 经验分享 - Docker - 极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
  • valine 评论需要 LeanCloud 支持

# LeanCloud 注册

  1. LeanCloud 网站完成注册。
  2. 创建应用。
  3. 名称随便取,方案看自己选择。开发版免费但是有限制,商业版收费无限制。
  4. 点击配置按钮进行配置。
  5. 点击设置 - 应用凭证可获取 App ID 和 App Key
  6. 点击设置 - 安全中心根据自己的需求配置

# 修改 Theme.Shoka 配置

valine:
+Hexo + Theme.Shoka + Valine 评论配置 - 经验分享 - Docker - 极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
  • valine 评论需要 LeanCloud 支持

# LeanCloud 注册

  1. LeanCloud 网站完成注册。
  2. 创建应用。
  3. 名称随便取,方案看自己选择。开发版免费但是有限制,商业版收费无限制。
  4. 点击配置按钮进行配置。
  5. 点击设置 - 应用凭证可获取 App ID 和 App Key
  6. 点击设置 - 安全中心根据自己的需求配置

# 修改 Theme.Shoka 配置

valine:
   appId: 粘贴5中获取的App ID #Your_appId
   appKey: 粘贴5中获取的App Key #Your_appkey
   placeholder: ヽ(○´∀`)ノ♪欢迎畅所欲言 # Comment box placeholder
@@ -27,4 +27,4 @@
       # - hash of friend2@email.com
     investor:
       # - hash of investor1@email.com
-
\ No newline at end of file +
\ No newline at end of file diff --git a/2022/10/21/极空间Docker版mariadb安装与配置/index.html b/2022/10/21/极空间Docker版mariadb安装与配置/index.html index 12b3a6cdf..cf2dcdd93 100644 --- a/2022/10/21/极空间Docker版mariadb安装与配置/index.html +++ b/2022/10/21/极空间Docker版mariadb安装与配置/index.html @@ -1,4 +1,4 @@ -极空间 Docker 版 mariadb 安装与配置 - 技术分享 - Docker - 极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 介绍

  • mariadb 属于 mysql 的一个分支,完全兼容 mysql,使用方式和 mysql 无区别。

# 安装

  • 本文介绍安装的镜像为 linuxserver_mariadb 的 10.5.13-r0-ls45,原则上使用最新版即可
  • 配置文件映射
  • 端口
  • 环境(MYSQL_ROOT_PASSWORD 为数据库 root 用户密码)
  • 到此已经可以在内网使用了,连接方法同 mysql 一致

# 配置

  • 此处配置为 nginx 反向代理,配置完成后可在外网连接访问
stream {
+极空间 Docker 版 mariadb 安装与配置 - 技术分享 - Docker - 极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 介绍

  • mariadb 属于 mysql 的一个分支,完全兼容 mysql,使用方式和 mysql 无区别。

# 安装

  • 本文介绍安装的镜像为 linuxserver_mariadb 的 10.5.13-r0-ls45,原则上使用最新版即可
  • 配置文件映射
  • 端口
  • 环境(MYSQL_ROOT_PASSWORD 为数据库 root 用户密码)
  • 到此已经可以在内网使用了,连接方法同 mysql 一致

# 配置

  • 此处配置为 nginx 反向代理,配置完成后可在外网连接访问
stream {
 	
 	#极空间-docker-mariadb
 	upstream mariadb {
@@ -15,4 +15,4 @@
 	}
     
 }
-
\ No newline at end of file +
\ No newline at end of file diff --git a/2022/10/22/极空间Docker版青龙面板安装与配置/index.html b/2022/10/22/极空间Docker版青龙面板安装与配置/index.html index 98ae386fd..425123855 100644 --- a/2022/10/22/极空间Docker版青龙面板安装与配置/index.html +++ b/2022/10/22/极空间Docker版青龙面板安装与配置/index.html @@ -1,4 +1,4 @@ -极空间 Docker 版青龙面板安装与配置 - 技术分享 - Docker - 极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 介绍

  • 青龙面板是一个支持 python3、javascript、shell、typescript 的定时任务管理面板。它支持在线管理脚本、环境变量、配置文件,支持在线查看日志及支持多种方式的消息通知。

# 安装

  • 本文使用的是 whyour/qinglong 的镜像。
  • 路径映射(由于青龙面板有 nodejs 环境,所以我把 hexo 博客的编译也放置在上面,再把 nginx 的 html 映射过来,这样就可以直接编译发布了。)
#青龙面板装载路径
+极空间 Docker 版青龙面板安装与配置 - 技术分享 - Docker - 极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 介绍

  • 青龙面板是一个支持 python3、javascript、shell、typescript 的定时任务管理面板。它支持在线管理脚本、环境变量、配置文件,支持在线查看日志及支持多种方式的消息通知。

# 安装

  • 本文使用的是 whyour/qinglong 的镜像。
  • 路径映射(由于青龙面板有 nodejs 环境,所以我把 hexo 博客的编译也放置在上面,再把 nginx 的 html 映射过来,这样就可以直接编译发布了。)
#青龙面板装载路径
 /ql/data/ninja
 /ql/data/db
 /ql/data/deps
@@ -102,4 +102,4 @@ Error: Cannot find module './xx'
 
 #Python3依赖安装失败修复(基于Faker一键脚本安装的青龙)
 curl -sS https://bootstrap.pypa.io/get-pip.py | python3
-
\ No newline at end of file +
\ No newline at end of file diff --git a/404.html b/404.html index de2fc1817..2d186c662 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ -Σ( ° △ °|||)︴404!何も見えない | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
Σ( ° △ °|||)︴404!何も見えない
\ No newline at end of file +Σ( ° △ °|||)︴404!何も見えない | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
Σ( ° △ °|||)︴404!何も見えない
\ No newline at end of file diff --git a/about/me.html b/about/me.html index 25ad274bf..2b3cb1744 100644 --- a/about/me.html +++ b/about/me.html @@ -1 +1 @@ -| Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 个人信息

  • 姓名:李海涛
  • 性别:男
  • 学历:本科
  • 生肖:鼠
  • 星座:天秤

# 个人爱好

  • 跑步
  • 篮球
  • 听歌
  • 电影

# 编程语言

  • java
  • python
  • php

# 项目经历 - 近期

  1. 智能量化决策交易系统

    该项目主要用于对期货、股票等进行智能化交易,会根据用户事先设置的规则决策是否买卖,并给出信号、收益、最大回撤等详细的统计报告及分析报表。 该项目采用Spring Cloud微服务解决方案,主要功能模块分为行情采集、策略计算、交易信号处理、账户交易服务、ctp网关、策略统计、消息推送等 该项目使用IntellIJ做为主要开发工具,前端使用vue框架,图表采用tradingview、highchart等。后端使用mybatis、mysql对部分用户、策略、配置信息进行存储,kafka做为行情数据、交易信号等消息中间件。使用redis存储当日分时行情等临时数据,mongodb用于存储分析结果、信号历史,hbase存储期货行情等详细数据。使用netty框架实现实时消息推送。
  2. IWB-EX 交易平台

    该项目主要依托流行的区块链技术进行白酒的销售。以虚拟币为货币,白酒为等价商品进行交易。当虚拟币价格过低时用户可以选择实物白酒进行提货。使用IntellIJ做为开发工具,采用的技术有springMVC、mysql、thymeleaf等。
  3. 废品回收管理平台

    该项目主要为废品回收公司提供废品的进出库管理和统计,并打印详细价格单据等。该项目分为两个平台,给用户使用的入库填表平台和给企业管理人员使用的审核、管理后台。使用IntellIJ做为开发工具,采用的技术有springMVC、mysql、freemarker等。
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file +| Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 个人信息

  • 姓名:李海涛
  • 性别:男
  • 学历:本科
  • 生肖:鼠
  • 星座:天秤

# 个人爱好

  • 跑步
  • 篮球
  • 听歌
  • 电影

# 编程语言

  • java
  • python
  • php

# 项目经历 - 近期

  1. 智能量化决策交易系统

    该项目主要用于对期货、股票等进行智能化交易,会根据用户事先设置的规则决策是否买卖,并给出信号、收益、最大回撤等详细的统计报告及分析报表。 该项目采用Spring Cloud微服务解决方案,主要功能模块分为行情采集、策略计算、交易信号处理、账户交易服务、ctp网关、策略统计、消息推送等 该项目使用IntellIJ做为主要开发工具,前端使用vue框架,图表采用tradingview、highchart等。后端使用mybatis、mysql对部分用户、策略、配置信息进行存储,kafka做为行情数据、交易信号等消息中间件。使用redis存储当日分时行情等临时数据,mongodb用于存储分析结果、信号历史,hbase存储期货行情等详细数据。使用netty框架实现实时消息推送。
  2. IWB-EX 交易平台

    该项目主要依托流行的区块链技术进行白酒的销售。以虚拟币为货币,白酒为等价商品进行交易。当虚拟币价格过低时用户可以选择实物白酒进行提货。使用IntellIJ做为开发工具,采用的技术有springMVC、mysql、thymeleaf等。
  3. 废品回收管理平台

    该项目主要为废品回收公司提供废品的进出库管理和统计,并打印详细价格单据等。该项目分为两个平台,给用户使用的入库填表平台和给企业管理人员使用的审核、管理后台。使用IntellIJ做为开发工具,采用的技术有springMVC、mysql、freemarker等。
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file diff --git a/archives/2022/09/index.html b/archives/2022/09/index.html index 8be27f1c3..c322e7d75 100644 --- a/archives/2022/09/index.html +++ b/archives/2022/09/index.html @@ -1 +1 @@ -2022 年 / 09 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +2022 年 / 09 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/archives/2022/10/index.html b/archives/2022/10/index.html index 1b91f9cd3..64a429a40 100644 --- a/archives/2022/10/index.html +++ b/archives/2022/10/index.html @@ -1 +1 @@ -2022 年 / 10 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +2022 年 / 10 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/archives/2022/10/page/2/index.html b/archives/2022/10/page/2/index.html index 3628c0521..bc677b3ff 100644 --- a/archives/2022/10/page/2/index.html +++ b/archives/2022/10/page/2/index.html @@ -1 +1 @@ -2022 年 / 10 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +2022 年 / 10 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/archives/2022/index.html b/archives/2022/index.html index 5f0720abb..da67e4c58 100644 --- a/archives/2022/index.html +++ b/archives/2022/index.html @@ -1 +1 @@ -2022 年 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +2022 年 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/archives/2022/page/2/index.html b/archives/2022/page/2/index.html index 024e52fd5..c6d994138 100644 --- a/archives/2022/page/2/index.html +++ b/archives/2022/page/2/index.html @@ -1 +1 @@ -2022 年 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +2022 年 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/archives/index.html b/archives/index.html index 9eb311396..3be52ba15 100644 --- a/archives/index.html +++ b/archives/index.html @@ -1 +1 @@ -归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

首页 / 目前共计 20 篇文章。 嗯.. 继续努力。

2022 年/10 月 ( 11 )

2022 年/09 月 ( 9 )

\ No newline at end of file +归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

首页 / 目前共计 20 篇文章。 嗯.. 继续努力。

2022 年/10 月 ( 11 )

2022 年/09 月 ( 9 )

\ No newline at end of file diff --git a/atom.xml b/atom.xml index 76bf3f4d3..24ee43619 100644 --- a/atom.xml +++ b/atom.xml @@ -775,8 +775,8 @@ url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配 - + 2022-10-12T06:40:00.000Z @@ -855,8 +855,8 @@ X-Frame-Options 三个参数:</p> - + 2022-09-28T08:02:00.000Z @@ -1164,11 +1164,11 @@ server &#123; - + 2022-09-16T00:04:00.000Z diff --git a/categories/Linux/index.html b/categories/Linux/index.html index 4a6536cbe..a68e6e047 100644 --- a/categories/Linux/index.html +++ b/categories/Linux/index.html @@ -1 +1 @@ -分类:Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:Linux | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/Linux/服务/index.html b/categories/Linux/服务/index.html index 7766f4c7a..bf00e1f56 100644 --- a/categories/Linux/服务/index.html +++ b/categories/Linux/服务/index.html @@ -1 +1 @@ -分类:服务 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:服务 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/Linux/服务/技术分享/index.html b/categories/Linux/服务/技术分享/index.html index baaf104ba..80185da02 100644 --- a/categories/Linux/服务/技术分享/index.html +++ b/categories/Linux/服务/技术分享/index.html @@ -1 +1 @@ -分类:技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/Linux/服务/经验分享/index.html b/categories/Linux/服务/经验分享/index.html index fe285de68..e1d694fd1 100644 --- a/categories/Linux/服务/经验分享/index.html +++ b/categories/Linux/服务/经验分享/index.html @@ -1 +1 @@ -分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/Windows/index.html b/categories/Windows/index.html index dd5a13f5f..a7e2266d4 100644 --- a/categories/Windows/index.html +++ b/categories/Windows/index.html @@ -1 +1 @@ -分类:Windows | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:Windows | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/Windows/工具/index.html b/categories/Windows/工具/index.html index 0de76647d..825b496c2 100644 --- a/categories/Windows/工具/index.html +++ b/categories/Windows/工具/index.html @@ -1 +1 @@ -分类:工具 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:工具 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/Windows/工具/经验分享/index.html b/categories/Windows/工具/经验分享/index.html index 127135bfd..4b2653020 100644 --- a/categories/Windows/工具/经验分享/index.html +++ b/categories/Windows/工具/经验分享/index.html @@ -1 +1 @@ -分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 04b8b926e..64879306f 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1 +1 @@ -全部分类 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +全部分类 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/工具/index.html b/categories/工具/index.html index 0c8ebb287..bb937bd8a 100644 --- a/categories/工具/index.html +++ b/categories/工具/index.html @@ -1 +1 @@ -分类:工具 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:工具 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/工具/经验分享/index.html b/categories/工具/经验分享/index.html index e3b85ddf8..8f8c7946f 100644 --- a/categories/工具/经验分享/index.html +++ b/categories/工具/经验分享/index.html @@ -1 +1 @@ -分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/极空间/Docker/index.html b/categories/极空间/Docker/index.html index b2bb339da..e5cb6a087 100644 --- a/categories/极空间/Docker/index.html +++ b/categories/极空间/Docker/index.html @@ -1 +1 @@ -分类:Docker | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:Docker | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/极空间/Docker/技术分享/index.html b/categories/极空间/Docker/技术分享/index.html index aa577b0a1..bf2683dc0 100644 --- a/categories/极空间/Docker/技术分享/index.html +++ b/categories/极空间/Docker/技术分享/index.html @@ -1 +1 @@ -分类:技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/极空间/Docker/经验分享/index.html b/categories/极空间/Docker/经验分享/index.html index fa07e5115..281bec9a9 100644 --- a/categories/极空间/Docker/经验分享/index.html +++ b/categories/极空间/Docker/经验分享/index.html @@ -1 +1 @@ -分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:经验分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/极空间/index.html b/categories/极空间/index.html index cde3b25a1..c614e2e21 100644 --- a/categories/极空间/index.html +++ b/categories/极空间/index.html @@ -1 +1 @@ -分类:极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/生活/index.html b/categories/生活/index.html index 75469875e..7bc528e21 100644 --- a/categories/生活/index.html +++ b/categories/生活/index.html @@ -1 +1 @@ -分类:生活 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:生活 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/生活/心得体会/index.html b/categories/生活/心得体会/index.html index 2e384fa93..0b61a39ef 100644 --- a/categories/生活/心得体会/index.html +++ b/categories/生活/心得体会/index.html @@ -1 +1 @@ -分类:心得体会 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:心得体会 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/categories/生活/心情/index.html b/categories/生活/心情/index.html index 9c4ae6ad5..8ca5b7716 100644 --- a/categories/生活/心情/index.html +++ b/categories/生活/心情/index.html @@ -1 +1 @@ -分类:心情 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +分类:心情 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/css/app.css b/css/app.css index 2ad52e832..ade7e96d5 100644 --- a/css/app.css +++ b/css/app.css @@ -1 +1 @@ -#nav .menu .item:not(.title) a::before{content:"";position:absolute;width:0;height:.1875rem;bottom:0;border-radius:.125rem;left:50%;transform:translateX(-50%);background-color:currentColor}#nav .menu .submenu .item.active,#nav .menu .submenu .item:hover,#search-pagination .current .page-number,#sidebar .tab .item.active,#sidebar .tab .item:hover,.overview .menu .item.active,.pagination .next:hover,.pagination .page-number.current,.pagination .page-number:hover,.pagination .prev:hover{color:var(--grey-0);background-image:linear-gradient(to right,var(--color-pink) 0,var(--color-orange) 100%);box-shadow:0 0 .75rem var(--color-pink-a3)}#loading,#neko{position:fixed;left:0;right:0;top:0;bottom:0;z-index:9999}:root{--grey-0:#fff;--grey-1:#fdfdfd;--grey-2:#f7f7f7;--grey-3:#eff2f3;--grey-4:#ccc;--grey-5:#999;--grey-6:#666;--grey-7:#333;--grey-8:#222;--grey-9:#000;--grey-1-a0:rgba(253,253,253,0);--grey-1-a7:rgba(253,253,253,0.7);--grey-1-a5:rgba(253,253,253,0.5);--grey-1-a3:rgba(253,253,253,0.3);--grey-9-a1:rgba(0,0,0,0.1);--grey-9-a5:rgba(0,0,0,0.5);--grey-2-a0:rgba(247,247,247,0);--color-pink-light:#ffe6fa;--color-cyan-light:#e3fdf5;--color-red:#e9546b;--color-pink:#ed6ea0;--color-orange:#ec8c69;--color-yellow:#eab700;--color-green:#0a7426;--color-aqua:#3e999f;--color-blue:#38a1db;--color-purple:#9d5b8b;--color-grey:#869194;--color-red-a1:rgba(233,84,107,0.1);--color-red-a3:rgba(233,84,107,0.3);--color-pink-a3:rgba(237,110,160,0.3);--color-pink-light-a3:rgba(255,230,250,0.3);--color-pink-light-a5:rgba(255,230,250,0.5);--color-pink-light-a7:rgba(255,230,250,0.7);--body-bg-shadow:var(--grey-2);--box-bg-shadow:var(--grey-9-a1);--text-color:var(--grey-7);--header-text-color:var(--grey-0);--primary-color:var(--color-red);--nav-bg:linear-gradient(-225deg, var(--color-cyan-light) 0, var(--color-pink-light) 100%)}.primary{--note-border:#cda0c7;--note-bg:#fdf8ff;--note-text:#8a51c0;--note-hover:#935aca}.info{--note-border:#8fa4dc;--note-bg:#f1f9ff;--note-text:#1d4974;--note-hover:#1d5fa0}.success{--note-border:#a3c293;--note-bg:#fcfff5;--note-text:#2c662d;--note-hover:#3b883c}.warning{--note-border:#c9ba9b;--note-bg:#fffbeb;--note-text:#947600;--note-hover:#ccb045}.danger{--note-border:#f4b3c1;--note-bg:#fff2f5;--note-text:#cc0f35;--note-hover:#f14668}[data-theme=dark]:root{--grey-0:#222;--grey-1:#21252b;--grey-2:#363636;--grey-3:#444;--grey-4:#666;--grey-5:#aaa;--grey-6:#ccc;--grey-7:#ddd;--grey-8:#eee;--grey-9:#f7f7f7;--grey-1-a7:rgba(34,34,34,0.7);--grey-1-a5:rgba(34,34,34,0.5);--grey-1-a3:rgba(34,34,34,0.3);--grey-1-a0:rgba(34,34,34,0);--grey-9-a1:rgba(51,51,51,0.1);--grey-2-a0:rgba(54,54,54,0);--color-pink-light:#322d31;--color-cyan-light:#2d3230;--color-red:rgba(237,118,137,0.9);--color-pink:rgba(241,139,179,0.8);--color-orange:rgba(240,163,135,0.8);--color-yellow:#ffe175;--color-green:#86c59d;--color-aqua:#97d3d6;--color-blue:#9cd0ed;--color-purple:#cfacc5;--color-grey:#c3c8ca;--body-bg-shadow:#000;--box-bg-shadow:#000;--text-color:var(--grey-5);--header-text-color:var(--grey-9)}[data-theme=dark] .primary{--note-border:rgba(123,96,119,0.8);--note-bg:rgba(50,49,50,0.8);--note-text:rgba(161,116,205,0.8);--note-hover:rgba(117,72,161,0.8)}[data-theme=dark] .info{--note-border:rgba(85,98,132,0.8);--note-bg:rgba(48,49,50,0.8);--note-text:rgba(109,164,219,0.8);--note-hover:rgba(39,127,214,0.8)}[data-theme=dark] .success{--note-border:rgba(97,116,88,0.8);--note-bg:rgba(50,50,48,0.8);--note-text:rgba(128,200,129,0.8);--note-hover:rgba(41,95,42,0.8)}[data-theme=dark] .warning{--note-border:rgba(120,111,93,0.8);--note-bg:rgba(50,50,46,0.8);--note-text:rgba(220,176,0,0.8);--note-hover:rgba(163,140,55,0.8)}[data-theme=dark] .danger{--note-border:rgba(146,107,115,0.8);--note-bg:rgba(50,48,48,0.8);--note-text:rgba(239,38,79,0.8);--note-hover:rgba(168,49,72,0.8)}[data-theme=dark] .index.wrap .card .message .btn,[data-theme=dark] .overview .menu .item,[data-theme=dark] .sidebar .tab li,[data-theme=dark] [data-background-image],[data-theme=dark] img{transition:all .2s ease-in-out 0s;opacity:.75}[data-theme=dark] .index.wrap .card .message .btn:hover,[data-theme=dark] .overview .menu .item:hover,[data-theme=dark] .sidebar .tab li:hover,[data-theme=dark] [data-background-image]:hover,[data-theme=dark] img:hover{opacity:.9}[data-theme=dark] #imgs::before{background-color:rgba(0,0,0,.5)}.red{color:var(--color-red)}.pink{color:var(--color-pink)}.orange{color:var(--color-orange)}.yellow{color:var(--color-yellow)}.green{color:var(--color-green)}.aqua{color:var(--color-aqua)}.blue{color:var(--color-blue)}.purple{color:var(--color-purple)}.grey{color:var(--color-grey)}.i-volume-off:before,.player-info .volume.off::before{content:"\e61e"}.i-volume-on:before,.player-info .volume.on::before{content:"\e62c"}.i-circle-play:before,.player-info .play-pause::before{content:"\e647"}.i-forward:before,.player-info .forward::before{content:"\e648"}.i-backward:before,.player-info .backward::before{content:"\e649"}.i-circle-pause:before,.playing .player-info .play-pause::before{content:"\e64a"}.i-loop:before,.player-info .mode.loop::before{content:"\e64b"}.i-order:before,.player-info .mode.order::before{content:"\e64c"}.i-random:before,.player-info .mode.random::before{content:"\e64d"}.i-douban:before{content:"\e75f"}.i-linux:before{content:"\f1e8"}.i-opera:before{content:"\f205"}.i-qq:before{content:"\f216"}.i-safari:before{content:"\f229"}.i-snapchat-ghost:before{content:"\f234"}.i-weixin:before{content:"\f262"}.i-windows:before{content:"\f266"}.i-stars:before{content:"\e8c4"}.i-apple:before{content:"\e600"}.i-blackberry:before{content:"\e601"}.i-centos:before{content:"\e602"}.i-fedora:before{content:"\e603"}.i-redhat:before{content:"\e604"}.i-ubuntu:before{content:"\e605"}.i-suse:before{content:"\e606"}.i-mobile-alt:before{content:"\f052"}.i-paw:before{content:"\f06b"}.i-android:before{content:"\f161"}.i-chrome:before{content:"\f178"}.i-edge:before{content:"\f195"}.i-firefox:before{content:"\f1a1"}.i-internet-explorer:before{content:"\f1d4"}.i-markdown:before{content:"\f1eb"}.i-smile:before{content:"\f2a5"}.i-preview:before{content:"\e901"}#copyright .license::before,.i-share:before{content:"\e61b"}#copyright .link::before,.i-link-circle:before{content:"\e67b"}#copyright .author::before,.i-person:before{content:"\e69d"}.i-sun:before{content:"\e6d1"}.i-moon:before{content:"\e71e"}.i-compress:before{content:"\ef82"}.i-expand:before{content:"\efb4"}.i-align-justify:before{content:"\ef13"}.i-align-left:before{content:"\ef14"}.i-eye:before{content:"\efb8"}.i-pen:before{content:"\f071"}.i-clock:before{content:"\ef75"}.i-flag:before{content:"\e680"}.i-at:before{content:"\e619"}.i-file:before{content:"\e68d"}.i-clipboard:before{content:"\e651"}.i-feather:before{content:"\efbd"}#tool .player .music::before,.i-music:before{content:"\f059"}#tool.playing .player .play-pause::before,.i-pause:before{content:"\f06a"}.i-comments:before{content:"\ef7f"}#tool .player .play-pause::before,.i-play:before,.player-info ol>li.current::before{content:"\f07f"}.i-calendar-check:before{content:"\ef5b"}.i-angle-up:before{content:"\ef1b"}.i-facebook:before{content:"\f19d"}.i-instagram:before{content:"\f1d3"}.i-skype:before{content:"\f231"}.i-stack-overflow:before{content:"\f239"}.i-youtube:before{content:"\f274"}.i-list-alt:before{content:"\e6c1"}.i-star:before,.page .body h3 .anchor::before{content:"\f0d4"}.i-link-alt:before{content:"\f037"}.i-paper-plane:before{content:"\f063"}.i-user:before{content:"\f2dd"}.i-link:before{content:"\e8fc"}.i-angle-down:before,details[open] summary::before{content:"\ef1a"}.i-calendar:before{content:"\e812"}#sidebar .tab .item.overview::before,.i-home:before{content:"\e8ed"}.i-magic:before{content:"\f03e"}.i-sakura:before,.page .body h1 .anchor::before{content:"\e695"}.i-tag:before{content:"\e759"}.i-angle-left:before{content:"\ef19"}.i-arrow-circle-right:before,.md .note.default::before{content:"\ef23"}.i-check-circle:before,.md .note.success::before,.md ul li.task-list-item input[type=checkbox]:checked+label::before{content:"\ef66"}.i-exclamation-circle:before,.md .note.warning::before{content:"\efb5"}.i-info-circle:before,.md .note.info::before{content:"\f02b"}.i-minus-circle:before,.md .note.danger::before{content:"\f050"}.i-plus-circle:before,.md .note.primary::before{content:"\f082"}.i-file-word:before{content:"\f299"}.i-check:before,.md ol>li.quiz.show.true::after,.md ol>li.quiz>ul.options li.right::after{content:"\ef65"}.i-times:before,.md ol>li.quiz.show.false::after,.md ol>li.quiz>ul.options li.wrong::after{content:"\f109"}#sidebar .tab .item.contents::before,.i-list-ol:before{content:"\f039"}.i-archive:before{content:"\ef1c"}.i-angle-right:before,details summary::before{content:"\ef1f"}.i-arrow-down:before{content:"\ef25"}.i-arrow-up:before,.tabs .show-btn::before{content:"\ef2a"}.i-chart-area:before{content:"\ef64"}.i-chevron-left:before{content:"\ef6e"}.i-chevron-right:before{content:"\ef6f"}.i-coffee:before{content:"\ef7a"}.i-envelope:before{content:"\efae"}.i-external-link-alt:before{content:"\efb6"}.i-heart:before{content:"\f013"}.i-heartbeat:before,.page .body h2 .anchor::before{content:"\f017"}.i-search:before{content:"\f0a8"}#sidebar .tab .item.related::before,.i-sitemap:before{content:"\f0bd"}.i-tags:before{content:"\f0f3"}.i-th:before{content:"\f0fc"}.i-thumbtack:before{content:"\f107"}.i-times-circle:before,.md ul li.task-list-item input[type=checkbox]+label::before{content:"\f10a"}.i-creative-commons:before{content:"\f17e"}.i-github:before{content:"\f1b4"}.i-twitter:before{content:"\f24d"}.i-weibo:before{content:"\f261"}.i-address-card:before{content:"\f278"}.i-zhihu:before{content:"\e765"}.i-cloud-music:before{content:"\e76a"}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background:0 0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:.0625rem dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-0.125rem;-webkit-appearance:textfield}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}::-webkit-scrollbar{width:.3125rem;height:.3125rem;background:0 0}::-webkit-scrollbar-track{border-radius:.3125rem;background:0 0}::-webkit-scrollbar-track-piece{background:0 0}::-webkit-scrollbar-button{background:0 0;height:0}::-webkit-scrollbar-thumb{border-radius:1.25rem;background-clip:padding-box;background-color:var(--grey-3);background-image:linear-gradient(45deg,var(--grey-1-a5) 25%,transparent 0,transparent 50%,var(--grey-1-a5) 0,var(--grey-1-a5) 75%,transparent 0,transparent)}body.loaded::-webkit-scrollbar{width:.5rem;height:.5rem}body.loaded::-webkit-scrollbar-thumb{background-color:var(--color-pink-light)}.page .body h1 .anchor::before,.rotate{animation:rotate 6s linear infinite}.beat,.page .body h2 .anchor::before{animation:beat 1.33s ease-in-out infinite}.flash,.page .body h3 .anchor::before{animation:flash 6s cubic-bezier(.22,.61,.36,1) infinite}.overview .author:hover .image,.ribbon a:hover,.shake{animation:shake 1s}.fade-in,.tabs .tab,.tip,details[open]>div{animation:fadeIn .5s}#tool.affix .player-info.show.hide,.fade-out,.tip.hide{animation:fadeOut .3s}.code-container .show-btn .ic,.up-down{animation:UpDown 2s infinite}.code-container .show-btn.open .ic,.down-up{animation:DownUp 2s infinite}.md ol>li.quiz.show .note,.md ol>li.quiz.show blockquote,.slide{animation:slide .5s}#nav .menu .submenu,.slide-up-in{animation:slideUpIn .3s}.cards .item.show,.segments>.item.show,.slide-up-big-in,body.loaded #main .wrap,body.loaded #sidebar .panel.active{animation:slideUpBigIn .5s}#tool.affix .player-info.show,.slide-right-in{animation:slideRightIn .3s}.slide-left-in{animation:slideLeftIn .3s}.overview .menu .item .submenu,.slide-down-in,body.loaded #brand .pjax{animation:slideDownIn .3s}.blur,.lozaded{animation:blur .8s ease-in-out forwards}.elastic,.highlight.fullscreen{animation:elastic 1s}@keyframes rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{from{transform:rotate(720deg)}to{transform:none}}@keyframes rotate-needle-pause{0%{transform:rotateZ(-35deg)}100%{transform:rotateZ(-60deg)}}@keyframes rotate-needle-resume{0%{transform:rotateZ(-60deg)}100%{transform:rotateZ(-35deg)}}@keyframes beat{0%,100%{transform:scale(1)}10%,30%{transform:scale(.9)}20%,40%,60%,80%{transform:scale(1.1)}50%,70%{transform:scale(1.1)}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes shake{from,to{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes blur{0%{filter:blur(10px)}to{filter:blur(0)}}@keyframes blur-dark{0%{filter:blur(10px) brightness(.9)}to{filter:blur(0) brightness(.9)}}@keyframes UpDown{0%,100%{opacity:.8;transform:translateY(10px)}50%{opacity:.4;transform:translateY(0)}}@keyframes DownUp{0%,100%{opacity:.8;transform:rotate(180deg) translateY(0)}50%{opacity:.4;transform:rotate(180deg) translateY(-10px)}}@keyframes slide{0%{opacity:0;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}@keyframes slideRightIn{0%{opacity:0;transform:translateX(50%)}to{opacity:1;transform:translateX(0)}}@keyframes slideLeftIn{0%{opacity:0;transform:translateX(-50%)}to{opacity:1;transform:translateX(0)}}@keyframes slideUpIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUpBigIn{0%{opacity:0;transform:translateY(80px)}100%{opacity:1;transform:translateY(0)}}@keyframes slideDownIn{0%{opacity:0;transform:translateY(-18px)}100%{opacity:1;transform:translateY(0)}}@keyframes elastic{0%{transform:scale(0)}55%{transform:scale(1)}70%{transform:scale(.98)}100%{transform:scale(1)}}::-moz-selection{background:var(--color-orange);color:var(--grey-2)}::selection{background:var(--color-orange);color:var(--grey-2)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:linear-gradient(to top,var(--body-bg-shadow) 0,var(--grey-1) 20%) no-repeat bottom;color:var(--text-color);font-family:Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-size:1em;line-height:2;-webkit-font-smoothing:antialiased;overflow:hidden}body.loaded{overflow:auto}body.loaded #sidebar .panel.active{display:block}@media (max-width:991px){body{padding-left:0!important;padding-right:0!important}}body.fullscreen{overflow:hidden}body.fullscreen #sidebar>.inner,body.fullscreen #tool{z-index:0}h1,h2,h3,h4,h5,h6{font-family:Mulish,'Noto Serif SC','Noto Serif JP',Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:700;line-height:1.5;margin:1.25rem 0 .9375rem}h1.title,h2.title,h3.title,h4.title,h5.title,h6.title{font-family:Mulish,'Noto Serif JP','Noto Serif SC',Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}a{border:none;color:currentColor;outline:0;text-decoration:none;overflow-wrap:break-word;word-wrap:break-word;transition:all .2s ease-in-out 0s;cursor:pointer}a:hover{border-bottom-color:var(--color-blue);color:var(--color-blue)}a::after,a::before{transition:all .4s ease-in-out 0s}a,div,li{-webkit-tap-highlight-color:transparent}li{list-style:none}iframe,img,video{display:block;margin-left:auto;margin-right:auto;max-width:100%}hr{background-image:repeating-linear-gradient(-45deg,var(--grey-3),var(--grey-4) .25rem,transparent .25rem,transparent .5rem);border:none;height:.125rem;margin:1.5rem 0}blockquote{border-left:.25rem solid var(--grey-4);color:var(--grey-6);margin:1.25rem 0;padding:.625rem 1.25rem}blockquote cite::before{content:'-';padding:0 .3125rem}dt{font-weight:700}dd{margin:0;padding:0}input,textarea{color:var(--text-color)}@font-face{font-family:ic;src:url("//at.alicdn.com/t/font_1832207_igi8uaupcus.eot");src:url("//at.alicdn.com/t/font_1832207_igi8uaupcus.eot?#iefix") format('embedded-opentype'),url("//at.alicdn.com/t/font_1832207_igi8uaupcus.woff2") format('woff2'),url("//at.alicdn.com/t/font_1832207_igi8uaupcus.woff") format('woff'),url("//at.alicdn.com/t/font_1832207_igi8uaupcus.ttf") format('truetype'),url("//at.alicdn.com/t/font_1832207_igi8uaupcus.svg#ic") format('svg')}.ic{font-family:ic!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;width:1.25em;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.ic em{font-size:0}.ic-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.table-container{overflow:auto}.table-container table{border-collapse:collapse;border-spacing:0;font-size:.875em;margin:0 0 1.25rem 0;width:100%;overflow:auto}.table-container table tbody tr:nth-of-type(2n){background:var(--grey-0)}.table-container table tbody tr:hover{background:var(--grey-2)}.table-container table caption,.table-container table td,.table-container table th{font-weight:400;padding:.5rem;text-align:left;vertical-align:middle}.table-container table td,.table-container table th{border:.0625rem solid var(--grey-3);border-bottom:.1875rem solid var(--grey-3)}.table-container table th{font-weight:700;padding-bottom:.625rem;text-align:center}.table-container table td{border-bottom-width:.0625rem}.table-container table td .highlight:last-child,.table-container table td p:last-child,.table-container table td pre:last-child{margin:0}.button{display:inline-block;cursor:pointer;touch-action:manipulation;text-align:center;text-decoration:none;vertical-align:middle;white-space:nowrap;border-radius:.3rem;border:.0625rem solid var(--grey-3);color:var(--grey-6);font-size:.875em;font-weight:400;line-height:1.5;background:0 0;margin-bottom:0;min-height:1em;padding:.5em 1.25em;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:0;will-change:auto;transition:all .2s ease-in-out 0s}.button+.button{margin-left:1.25em}.button:active,.button:hover{color:var(--grey-0);background-color:var(--primary-color);border-color:var(--primary-color)}.button:disabled{border-color:var(--grey-4);color:var(--grey-4);background-color:var(--grey-2);cursor:not-allowed}.button .ic{text-align:left;width:1.285714285714286em}.toggle{line-height:0;cursor:pointer}.toggle .line{background:var(--header-text-color);display:inline-block;height:.125rem;left:0;position:relative;border-radius:.0625rem;top:0;transition:all .4s;vertical-align:top;width:100%;box-shadow:0 0 .5rem rgba(0,0,0,.5)}.toggle .line:not(:first-child){margin-top:.1875rem}.toggle.toggle-arrow .toggle-line-first{left:50%;top:.125rem;transform:rotate(45deg);width:50%}.toggle.toggle-arrow .toggle-line-middle{left:.125rem;width:90%}.toggle.toggle-arrow .toggle-line-last{left:50%;top:-.125rem;transform:rotate(-45deg);width:50%}.toggle.close .line:first-child{transform:rotate(-45deg);top:.3125rem}.toggle.close .line:nth-child(2){opacity:0}.toggle.close .line:nth-child(3){transform:rotate(45deg);top:-.3125rem}.pagination .next,.pagination .page-number,.pagination .prev,.pagination .space{display:inline-block;margin:0 .5rem;padding:0 .75rem;position:relative;border-radius:.3125rem}@media (max-width:767px){.pagination .next,.pagination .page-number,.pagination .prev,.pagination .space{margin:0 .3125rem}}.pagination{width:100%;padding:1.25rem 3.125rem;text-align:center;display:inline-block;color:var(--grey-5)}@media (max-width:767px){.pagination{padding:1.25rem .625rem}}.pagination .inner{width:auto;border-radius:.9375rem}.pagination .next,.pagination .page-number,.pagination .prev{transition:all .2s ease-in-out 0s}.pagination .space{margin:0;padding:0}.pagination .prev{margin-left:0}.pagination .next{margin-right:0}#search-pagination .current .page-number:hover,.pagination .page-number.current:hover{box-shadow:0 0 .3125rem var(--primary-color)}.tip{position:fixed;background:var(--grey-9-a5);color:#fff;top:50%;left:50%;z-index:9999;padding:.625rem 1rem;border-radius:.625rem;transform:translate(-50%,-50%);text-align:center;font-size:.875em;-webkit-backdrop-filter:blur(0.625rem);backdrop-filter:blur(0.625rem)}.ribbon{display:inline-block;align-self:flex-start;position:relative;padding:0 1rem 0 2rem;border-radius:0 .3rem .3rem 0;background-image:linear-gradient(to right,var(--color-orange) 0,var(--color-pink) 100%);color:var(--grey-0)}.ribbon::after{content:"";position:absolute;top:100%;left:0;width:0;height:0;background-color:transparent;border-style:solid;border-width:0 1rem 1rem 0;border-color:transparent;border-right-color:var(--color-orange);filter:brightness(.9)}.ribbon a{display:block;margin:0;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ribbon a:hover{color:currentColor}.divider{margin:1rem 0;line-height:1;height:0;font-weight:700;text-transform:uppercase;letter-spacing:.05rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--grey-4);display:table;white-space:nowrap;height:auto;line-height:1;text-align:center}.divider::after,.divider::before{content:'';display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC")}.divider::before{background-position:right 1rem top 50%}.divider::after{background-position:left 1rem top 50%}#container{min-height:100%;min-width:100%;position:relative;display:flex;flex-direction:column}.inner{margin:0 auto;width:100%}main{background:linear-gradient(to top,var(--body-bg-shadow) 0,var(--grey-1) 20%) no-repeat bottom}main>.inner{width:calc(100% - .625rem);align-items:flex-start;display:flex;justify-content:space-between;flex-direction:row-reverse}@media (min-width:1200px){main>.inner{width:72.5rem}}@media (min-width:1600px){main>.inner{width:73%}}#main{background:linear-gradient(to top,var(--grey-0) 0,var(--grey-1) 20%) no-repeat top;box-shadow:0 1.25rem 1rem .3125rem var(--body-bg-shadow);width:calc(100% - 15.75rem);min-height:37.5rem}#main .cat{margin-top:10rem}#main .wrap{position:relative;padding:1.25rem}#main .wrap:first-child{margin-bottom:1.25rem}@media (max-width:991px){#main{width:100%}#main .wrap{padding:.625rem}}@media (max-width:767px){#main .wrap{padding:.5rem}}#header{margin:0 auto;position:relative;width:100%;height:50vh;text-shadow:0 .2rem .3rem rgba(0,0,0,.5);color:var(--header-text-color)}#header a:hover{color:currentColor}#imgs{display:block;position:fixed;top:0;left:0;width:100%;height:70vh;min-height:25rem;z-index:-9;background-color:#363636}#imgs img{width:100%;height:100%;position:absolute;top:0;left:0;-o-object-fit:cover;object-fit:cover}#imgs .item{width:100%;height:100%;position:absolute;top:0;left:0;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;opacity:0;z-index:0;animation:imageAnimation 36s linear infinite 0s;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d}#imgs .item:nth-child(2){animation-delay:6s}#imgs .item:nth-child(3){animation-delay:12s}#imgs .item:nth-child(4){animation-delay:18s}#imgs .item:nth-child(5){animation-delay:24s}#imgs .item:nth-child(6){animation-delay:30s}#imgs .item:nth-child(7){animation-delay:36s}#imgs::before{content:'';display:block;position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.2);z-index:1;transition:all .2s ease-in-out 0s}@keyframes imageAnimation{0%{opacity:0;animation-timing-function:ease-in}2%{opacity:1}8%{opacity:1;transform:scale(1.05);animation-timing-function:ease-out}17%{opacity:1;transform:scale(1.1)}25%{opacity:0;transform:scale(1.1)}100%{opacity:0}}#nav{position:fixed;z-index:9;width:100%;height:3.125rem;transition:all .2s ease-in-out 0s}#nav.up{transform:translateY(0)}#nav.down{transform:translateY(-100%)}#nav.show{background:var(--nav-bg);box-shadow:.1rem .1rem .2rem var(--grey-9-a1);text-shadow:0 0 .0625rem var(--grey-9-a1);color:var(--text-color)}#nav.show .line{background:var(--text-color);box-shadow:0 0 .0625rem var(--grey-9-a1)}#nav.show .item.active>a,#nav.show .item.expand>a{color:var(--color-aqua);opacity:1}#nav.show .menu .submenu{background-color:var(--grey-1)}#nav.show .menu .submenu .item.active a{color:var(--grey-0);opacity:1}#nav .inner{height:100%;display:flex;width:calc(100% - .625rem);flex-wrap:nowrap}@media (min-width:1200px){#nav .inner{width:72.5rem}}@media (min-width:1600px){#nav .inner{width:73%}}#nav .toggle{display:none}@media (max-width:991px){#nav .toggle{display:flex;flex-direction:column;justify-content:center;align-items:center}}#nav .toggle .lines{padding:1.25rem;width:1.375rem;box-sizing:unset}#nav .menu{padding:.625rem 0;margin:0;width:100%}#nav .menu .item{display:inline-block;position:relative;padding:0 .625rem;letter-spacing:.0625rem;text-align:center}@media (max-width:767px){#nav .menu .item{display:none}#nav .menu .item.title{display:block}}#nav .menu .item .ic{margin-right:.5rem}#nav .menu .item:not(.title) a{display:block;font-size:1em}#nav .menu .item.active:not(.dropdown) a::before,#nav .menu .item:not(.dropdown):hover a::before{width:70%}#nav .menu .submenu{display:none;position:absolute;margin-top:.5rem;padding:0;width:-moz-max-content;width:max-content;background-color:var(--grey-9-a5);box-shadow:0 .3125rem 1.25rem -.25rem var(--grey-9-a1);border-radius:.625rem 0}#nav .menu .submenu::before{position:absolute;top:-1.25rem;left:0;width:100%;height:2.5rem;content:''}#nav .menu .submenu:hover{display:block}#nav .menu .submenu .item{display:block}#nav .menu .submenu .item:first-child{border-radius:.625rem 0 0 0}#nav .menu .submenu .item:last-child{border-radius:0 0 .625rem 0}#nav .menu .submenu .item a{display:inline-block;padding:.3rem .7rem;width:100%;text-shadow:none}#nav .menu .submenu .item a::before{content:none}#nav .menu .submenu .item:hover a{transform:translateX(.3rem)}#nav .menu .submenu .item.active a,#nav .menu .submenu .item:hover a{opacity:1}#nav .menu .item.dropdown>a::after{content:"";display:inline-block;margin-left:.3rem;vertical-align:middle;border:.3rem solid transparent;border-top-color:currentColor;border-bottom:0}#nav .menu .item.dropdown:hover .submenu{display:block}#nav .right{display:inline-flex;align-items:center;justify-content:center}#nav .right .item{padding:.625rem .5rem;cursor:pointer}#nav .right .i-sun{font-size:1.125em}#brand{position:fixed;padding:3rem 5rem 0;text-align:center;width:100%;height:50vh;min-height:10rem}#brand.affix{z-index:-1}#brand,#brand .pjax{display:flex;flex-direction:column;justify-content:center;align-items:center}#brand .artboard{font-family:'Fredericka the Great',Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-size:3.5em;line-height:1.2}#brand h1{font-size:2.5em;letter-spacing:.125rem}#brand .artboard+h1{margin:.625rem 0}#brand .sticky{font-size:.75em;display:inline-block;transform:rotate(30deg);-webkit-backface-visibility:hidden;backface-visibility:hidden}#brand .meta{display:flex;font-size:.875em;margin:0}#brand .meta .item+.item{margin-left:.625rem}@media (min-width:768px) and (max-width:991px){#brand .meta{font-size:.8125em}}@media (max-width:767px){#brand{padding:3rem .5rem 0}#brand h1{font-size:1.5em}#brand .meta{font-size:.75em}#brand .meta .text{display:none}}@media (max-width:413px){#brand .artboard{font-size:2.5em}}#tool{position:fixed;right:1rem;top:50vh;z-index:9}@media (max-width:991px){#tool{right:1rem;left:auto}}#tool .item{display:none;width:1.875rem;height:1.875rem;opacity:.5;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;transition:all .2s ease-in-out 0s}#tool .item:hover{opacity:.9}#tool .player{display:inline-flex;flex-direction:row-reverse;font-size:1.5em;width:auto;height:auto}#tool .player>.btn{font-family:ic;font-weight:400;width:1.875rem;text-align:center}#tool .player>.btn+.btn{margin-right:.625rem}#tool .player .music{display:none}#tool .player-info{border-radius:.5rem;border:.0625rem solid var(--grey-2);box-shadow:0 .625rem 1.875rem -.9375rem var(--box-bg-shadow);background:var(--grey-1-a7);-webkit-backdrop-filter:blur(0.625rem);backdrop-filter:blur(0.625rem);position:fixed;display:none;bottom:0;overflow:hidden;right:3.5rem;width:50vw;z-index:9;max-width:25rem}@media (max-width:767px){#tool .player-info{right:2.5rem}}#tool .player-info .nav{font-size:.75em;height:2.1875rem}#tool .back-to-top span{font-size:.75em}#tool.affix{text-shadow:none;top:auto;box-shadow:0 0 .5rem rgba(0,0,0,.1);background:var(--grey-1-a3);border-radius:.3125rem;right:0;bottom:0}#tool.affix .item{display:flex;color:var(--primary-color)}#tool.affix .player{font-size:1em;flex-direction:column-reverse}#tool.affix .player>.btn+.btn{margin-right:0}#tool.affix .player .music{display:block}#tool.affix .player-info{right:2.5rem}@media (min-width:1200px){#tool.affix .player-info{right:3.5rem}}@media (max-width:991px){#tool.affix .player-info{right:2.5rem;left:auto}}#tool.affix .player-info.show{display:block}#tool.affix .back-to-top{align-items:center;justify-content:center;height:auto;padding:.3125rem 0 0}#tool.affix .contents{display:none}@media (max-width:991px){#tool.affix .contents{display:flex}}@media (min-width:1200px){#tool.affix{right:1rem;bottom:1rem}}@media (max-width:991px){#tool.affix{right:0;bottom:0;left:auto}}.waves{width:100%;height:15vh;margin-bottom:-.6875rem;min-height:3.125rem;max-height:9.375rem;position:relative}@media (max-width:767px){.waves{height:10vh}}.parallax>use{animation:wave 25s cubic-bezier(.55,.5,.45,.5) infinite}.parallax>use:first-child{animation-delay:-2s;animation-duration:7s;fill:var(--grey-1-a7)}.parallax>use:nth-child(2){animation-delay:-3s;animation-duration:10s;fill:var(--grey-1-a5)}.parallax>use:nth-child(3){animation-delay:-4s;animation-duration:13s;fill:var(--grey-1-a3)}.parallax>use:nth-child(4){animation-delay:-5s;animation-duration:20s;fill:var(--grey-1)}@keyframes wave{0%{transform:translate3d(-90px,0,0)}100%{transform:translate3d(85px,0,0)}}#sidebar{position:static;width:15rem;top:0;bottom:0;transition:all .2s ease-in-out 0s}@media (max-width:991px){#sidebar{display:none;position:fixed;right:0;background:var(--grey-1);box-shadow:0 .375rem .9375rem .3125rem rgba(0,0,0,.2);z-index:99}}#sidebar.affix>.inner{position:fixed;top:0}#sidebar.affix .panels{padding-top:3.625rem;height:100vh}#sidebar>.inner{position:relative;width:15rem;color:var(--grey-6);text-align:center;display:flex;justify-content:space-around;align-items:flex-start;flex-wrap:wrap;z-index:1}.panels{padding:4.6875rem 0 2rem;width:100%;overflow:hidden}.panels .inner{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;width:auto;height:100%}.panels .inner::-webkit-scrollbar{display:none}.panels .panel{display:none;padding:.875rem .9375rem 2rem}.dimmer{display:none}@media (max-width:991px){.dimmer{background:#000;height:100%;left:100%;opacity:0;top:0;width:100%;z-index:9;transition:opacity 1s}#sidebar.on+.dimmer{position:fixed;display:block;opacity:.3;transform:translateX(-100%)}}.overview .author .image{border:.0625rem solid var(--body-bg-shadow);display:block;margin:0 auto;max-width:10rem;padding:.125rem;box-shadow:0 0 1rem .625rem var(--body-bg-shadow);border-radius:50%}.overview .author .name{color:var(--grey-7);font-weight:400;margin:.3125rem 0 0;text-align:center}.overview .author .description{color:var(--grey-5);font-size:1em;margin-top:.3125rem;text-align:center}@keyframes shake{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(-3deg)}40%,60%,80%{transform:scale(1.1) rotate(3deg)}100%{transform:scale(1)}}.overview .menu{padding:1.25rem;margin:0;background-color:transparent}.overview .menu .item{border-radius:.9375rem;margin-bottom:.625rem;display:block;color:var(--grey-5);transition:all .2s ease-in-out 0s}.overview .menu .item a{color:inherit;display:block;line-height:3}.overview .menu .item .submenu{display:none;padding:0}.overview .menu .item:hover{background-color:rgba(0,0,0,.1);color:inherit}.overview .menu .item:hover .submenu{display:block}.overview .menu .item .ic{margin-right:.625rem}.overview .menu .item.active:hover{box-shadow:0 0 .75rem var(--color-pink);color:var(--grey-0)}.overview .menu .item.active .item{color:currentColor}.overview .menu .item.expand{background-color:rgba(0,0,0,.05)}.overview .menu .item.expand .submenu{display:block}.social{margin-top:.9375rem;text-align:center}.social .item{display:inline-block;width:1.875rem;height:1.875rem;line-height:1.875rem;text-align:center;position:relative;overflow:hidden;border-radius:38%}.social .item i{font-size:1.4em;vertical-align:middle;transform:scale(.8)}.social .item::before{top:90%;left:-110%;content:"";width:120%;height:120%;position:absolute;transform:rotate(45deg)}.social .item i,.social .item::before{transition:all .35s cubic-bezier(.31, -.105, .43, 1.59) 0s}.social .item:focus::before,.social .item:hover::before{top:-10%;left:-10%}.social .item:focus i,.social .item:hover i{color:var(--grey-0);transform:scale(1)}#quick{display:none;align-items:center;flex-wrap:wrap;width:15rem;margin:0;padding:0;position:fixed;bottom:.125rem}#quick li{width:25%;min-height:1.875rem;transition:all .2s ease-in-out 0s}#quick li i{cursor:pointer}#quick li a{width:100%;display:block}#quick li:hover{color:var(--primary-color)}#quick li.percent{display:block;background:var(--primary-color);width:0;min-height:.125rem}#sidebar.affix #quick,#sidebar.on #quick{display:flex}#sidebar .tab{position:absolute;display:inline-flex;padding:1.875rem 0 .625rem;margin:0;min-height:1.875rem}#sidebar .tab .item{cursor:pointer;display:inline-flex;font-size:.875em;padding:.3125rem .9375rem;color:var(--grey-5);border-radius:.625rem;text-align:center;text-decoration:none;background-color:rgba(0,0,0,.08);transition:all .2s ease-out 0s}#sidebar .tab .item:nth-child(2){margin:auto .625rem}#sidebar .tab .item span{display:none;word-break:keep-all}#sidebar .tab .item.active span{display:inherit}#sidebar .tab .item.active:hover{box-shadow:0 0 .75rem var(--color-pink)}#sidebar .tab .item::before{font-family:ic;font-weight:400}#sidebar .tab .item.active::before{margin-right:.3125rem}#sidebar.affix .tab{padding-top:.625rem}.contents ol{padding:0 .125rem .3125rem .625rem;text-align:left}.contents ol>ol{padding-left:0}.contents .toc-item{font-size:1em;line-height:1.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contents .toc-child{display:none}.contents .active>.toc-child{display:block}.contents .current>.toc-child{display:block}.contents .current>.toc-child>.toc-item{display:block}.contents .active>a{color:var(--primary-color)}.contents .current>a{color:var(--primary-color)}.contents .current>a:hover{color:var(--primary-color)}.related{font-size:.875em}.related ul{padding:0 .125rem .3125rem 1.25rem;text-align:left}.related ul li{position:relative;line-height:1.8;padding-bottom:.625rem}.related ul li a{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;display:inline-block}.related ul li.active a{color:var(--primary-color)}.related ul li::before{content:"";width:.5rem;height:.5rem;background:var(--primary-color);box-sizing:unset;left:-1.25rem;top:.3125rem;border-radius:100%;position:absolute;border:.1875rem solid var(--grey-1);z-index:1;transition:all .2s ease-in-out 0s}.related ul li:hover::before{background:var(--color-blue)}.related ul li:not(:last-child)::after{content:"";height:100%;width:.125rem;background:var(--color-red-a3);position:absolute;left:-.875rem;top:.5rem}.state{display:flex;justify-content:center;line-height:1.4;margin-top:.625rem;overflow:hidden;text-align:center;white-space:nowrap}.state .item{padding:0 .9375rem}.state .item:not(:first-child){border-left:.0625rem solid var(--grey-4)}.state .item a{border-bottom:none}.state .item .count{display:block;font-size:1.25em;font-weight:600;text-align:center}.state .item .name{color:inherit;font-size:.875em}#footer{color:var(--grey-5);font-size:.875em;background:var(--body-bg-shadow)}#footer .inner{margin:0 auto;width:calc(100% - .625rem);position:relative;padding-left:16.25rem}@media (min-width:1200px){#footer .inner{width:72.5rem}}@media (min-width:1600px){#footer .inner{width:73%}}@media (max-width:991px){#footer .inner{padding-left:0;padding-right:0;width:auto}}.status{width:100%;text-align:center;margin-top:2rem}.languages{display:inline-block;font-size:1.125em;position:relative}.languages .lang-select-label span{margin:0 .5rem}.languages .lang-select{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.with-love{color:pink;display:inline-block;margin:0 .3125rem 0 .125rem}.powered-by,.theme-info{display:inline-block;margin-bottom:.625rem}@media (max-width:567px){.post.block{padding:initial!important}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{padding-left:1.25rem}.md .note h1,.md .note h2,.md .note h3,.md .note h4,.md .note h5,.md .note h6,.md .tabs .tab-content .tab-pane h1,.md .tabs .tab-content .tab-pane h2,.md .tabs .tab-content .tab-pane h3,.md .tabs .tab-content .tab-pane h4,.md .tabs .tab-content .tab-pane h5,.md .tabs .tab-content .tab-pane h6{margin:0 .3125rem}.md img,.md video{margin-bottom:.625rem!important}.md .tabs .tab-content .tab-pane{padding:.625rem .625rem 0 .625rem!important}.post .eof{margin:2.5rem auto 1.25rem!important}}.post.block{padding:0 2rem}.md{font-family:Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;overflow-wrap:break-word;word-wrap:break-word}.md .exturl .ic{font-size:.875em;margin-left:.25rem}.md .button{margin-top:2.5rem;text-align:center}.breadcrumb{display:inline-flex;font-size:.8125em;align-items:center;margin:1.25rem 0;flex-wrap:wrap}.breadcrumb .ic{margin:0 .125rem;color:var(--grey-4)}.breadcrumb .ic:first-child{margin-left:0;margin-right:.3125rem}.breadcrumb span{white-space:pre}.breadcrumb span.current{background-color:var(--color-red-a1);border-radius:.625rem;padding:0 .625rem;transition:all .2s ease-in-out 0s}.breadcrumb span.current span{white-space:normal}.breadcrumb span.current a{color:var(--primary-color)}.breadcrumb span.current:hover{background-color:var(--color-red-a3)}.post header{font-size:1.125em;margin-bottom:.625rem}.post header .title{font-size:1.5em;margin:initial;text-align:center;overflow-wrap:break-word;word-wrap:break-word;padding-bottom:.625rem}.post header .link{display:inline-block;position:relative;vertical-align:top}.post header .link .i-link-alt{font-size:.875em;margin-left:.3125rem}.post header .meta{text-align:center;border-top:.0625rem dashed var(--grey-9-a1);font-family:Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}.post .meta{color:var(--grey-5);font-size:.75em;text-align:right}.post .meta .item{display:inline-block;margin-right:.625rem}.post .meta .icon{margin-right:.1875rem}@media (max-width:991px){.post .meta .icon{display:inline-block}}.post-nav{display:flex;margin-bottom:2.5rem}@media (max-width:767px){.post-nav{flex-direction:column}}.post-nav .item{width:50%}@media (max-width:767px){.post-nav .item{width:100%}}.post-nav .item a{display:flex;flex-direction:column;height:100%;color:var(--header-text-color);padding:1.25rem 2.5rem;background-size:cover;position:relative}.post-nav .item a::before{content:"";position:absolute;width:100%;height:100%;background:linear-gradient(135deg,#434343,#000);opacity:.5;transition:all .2s ease-in-out 0s;z-index:-1;top:0;left:0}.post-nav .item a:hover::before{opacity:.4}.post-nav .item span{font-size:.8125em}.post-nav .item.left h3,.post-nav .item.left span{align-self:flex-start}.post-nav .item.right h3,.post-nav .item.right span{align-self:flex-end;text-align:right}.md .links:last-child,.md .tabs:last-child,.md blockquote:last-child,.md img:last-child,.md p:last-child,.md pre:last-child,.md table:last-child{margin-bottom:0}.md dd ol,.md dd ul,.md ol ol,.md ol ul,.md ul ol,.md ul ul{margin-top:0}.md a{color:var(--primary-color)}.md a:hover{color:var(--color-blue)}.md h1{font-size:1.5em}.md h2{font-size:1.375em}.md h3{font-size:1.25em}.md h4{font-size:1.125em}.md h5{font-size:1em}.md h6{font-size:.875em}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{position:relative;padding-top:.625rem}.md h1:hover .anchor::after,.md h1:hover .anchor::before,.md h2:hover .anchor::after,.md h2:hover .anchor::before,.md h3:hover .anchor::after,.md h3:hover .anchor::before,.md h4:hover .anchor::after,.md h4:hover .anchor::before,.md h5:hover .anchor::after,.md h5:hover .anchor::before,.md h6:hover .anchor::after,.md h6:hover .anchor::before{color:var(--primary-color)}.md h1::after{content:"";display:block;box-sizing:unset;width:100%;height:.0625rem;background:var(--grey-3);padding-right:1.25rem;margin-left:-1.25rem;margin-top:.3125rem}.md .anchor{border-bottom-style:none;color:var(--grey-4);float:right;margin-left:.625rem}.md .anchor:hover{color:inherit}.md .anchor::after,.md .anchor::before{color:var(--grey-4);position:absolute;font-weight:400;transition:all .2s ease-out 0s}.md .active .anchor::after,.md .active .anchor::before{color:var(--primary-color)}.md p{margin:0 0 .8rem}.md blockquote{font-size:90%;background-color:var(--grey-2);margin:1.25rem 0;border-radius:.1875rem}.md blockquote ul{margin:.625rem 0!important}.md blockquote ul>li::before{width:.375rem!important;height:.375rem!important;top:.6875rem!important}.md blockquote ol:last-child,.md blockquote p:last-child,.md blockquote ul:last-child{margin-bottom:0!important}.md>blockquote{border-left-color:var(--primary-color)}.md iframe{margin-bottom:1.25rem}.md .image-info{display:block;text-align:center;font-size:.8125em;color:var(--grey-4)}.md .video-container{height:0;margin-bottom:1.25rem;overflow:hidden;padding-top:75%;position:relative;width:100%}.md .video-container embed,.md .video-container iframe,.md .video-container object{height:100%;left:0;margin:0;position:absolute;top:0;width:100%}.md .kbd,.md kbd{background-color:var(--grey-1);background-image:linear-gradient(var(--grey-2),var(--grey-0),var(--grey-2));border:.0625rem solid var(--grey-4);border-radius:.2rem;box-shadow:.1rem .1rem .2rem var(--grey-9-a1);font-family:inherit;padding:.1rem .3rem;white-space:nowrap}.md mark{background-color:#dbfdad}.md ins{--line-color:var(--note-hover, var(--primary-color));text-decoration:none;border-bottom:.125rem solid var(--line-color)}.md ins.wavy{-webkit-text-decoration-style:wavy;text-decoration-style:wavy;-webkit-text-decoration-line:underline;text-decoration-line:underline;-webkit-text-decoration-color:var(--line-color);text-decoration-color:var(--line-color);border-bottom:none}.md ins.dot{border-bottom:.2rem dotted var(--line-color)}.md s{color:var(--grey-5);-webkit-text-decoration-color:var(--note-hover,var(--grey-5));text-decoration-color:var(--note-hover,var(--grey-5))}.md ruby{padding:0 .3125rem}.md .katex-display{overflow-x:scroll;overflow-y:hidden}.md .spoiler:not(.bulr){background-color:var(--text-color);color:var(--text-color);text-shadow:none;transition:color .3s;padding:0 .1875rem}.md .spoiler:not(.bulr):hover{color:#fff}.md .bulr{text-shadow:rgba(0,0,0,.7) 0 0 .625rem;color:transparent}.md .rainbow{background-image:linear-gradient(to left,#ff4500,orange,gold,#90ee90,#0ff,#1e90ff,#9370db,#ff69b4,#ff4500);background-size:110vw;-webkit-background-clip:text;background-clip:text;color:transparent;animation:rainbow 60s linear infinite}.article .md .anchor::after,.article .md .anchor::before{content:"H";font-family:Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;left:-1.875rem;top:1rem;width:1.25rem;height:1.5625rem;text-align:right;visibility:visible;font-size:80%}@media (max-width:567px){.article .md .anchor::after,.article .md .anchor::before{left:-.625rem}}.article .md .anchor::after{font-size:50%;left:-1.375rem;line-height:3}@media (max-width:567px){.article .md .anchor::after{left:-.1875rem}}.article .md h1 .anchor::after{content:" 1 "}.article .md h2 .anchor::after{content:" 2 "}.article .md h3 .anchor::after{content:" 3 "}.article .md h4 .anchor::after{content:" 4 "}.article .md h5 .anchor::after{content:" 5 "}.article .md h6 .anchor::after{content:" 6 "}@keyframes rainbow{to{background-position:-2000vw}}.rtl.body a,.rtl.body h1,.rtl.body h2,.rtl.body h3,.rtl.body h4,.rtl.body h5,.rtl.body h6,.rtl.body li,.rtl.body ol,.rtl.body p,.rtl.body ul{direction:rtl;font-family:UKIJ Ekran}.rtl.title{font-family:UKIJ Ekran}.post footer::before{content:"";width:100%;height:.0625rem;background:var(--grey-3);display:block;margin:1.25rem auto 0}.post .tags{text-align:left;margin-top:.625rem;font-size:.75em}.post .tags a{display:inline-block;position:relative;padding:0 .3125rem;border-radius:.3125rem;background:var(--note-bg);color:var(--note-text)}.post .tags a:not(:last-child){margin-right:.625rem}.post .tags a:before{content:'';position:absolute;bottom:0;height:100%;width:0;right:0;background:var(--color-red-a1);border-radius:.25rem;transition:all .2s ease-in-out 0s}.post .tags a:hover{color:var(--primary-color)}.post .tags a:hover:before{width:104%;left:-2%}.reward{margin:1.25rem auto;padding:.625rem 0;text-align:center}.reward button{background:var(--primary-color);border:0;border-radius:.3125rem;color:var(--grey-0);cursor:pointer;line-height:2;outline:0;padding:0 .9375rem;vertical-align:text-top}.reward button:hover{background:var(--primary-color)}.reward button i{margin-right:.3125rem}.reward p{font-size:.8125em;color:var(--grey-5);margin:0}#qr{padding-top:1.25rem;display:none}#qr a{border:0}#qr img{display:inline-block;max-width:100%}#qr p{text-align:center}#copyright{background:var(--grey-2);padding:1rem 2rem;position:relative;font-size:.75em;border-radius:.625rem;color:var(--grey-6)}#copyright li::before{font-family:ic;font-weight:400;color:var(--grey-5);margin-right:.3125rem;font-size:1.1rem;line-height:.75rem;vertical-align:-.0667rem}.cards .item,.segments>.item{position:relative;color:inherit;width:calc(50% - 2rem);min-width:calc(50% - 2rem);height:14rem;margin:1rem;opacity:0}.cards .item.show,.segments>.item.show{opacity:1}@media (max-width:767px){.cards .item,.segments>.item{width:calc(100% - 1rem)!important;min-width:calc(100% - 1rem)!important;margin:1rem .5rem!important}}.index.wrap .btn{position:absolute;bottom:0;right:0;padding:.3rem 1rem;border-radius:1rem 0;color:var(--grey-0);background-image:linear-gradient(to right,var(--color-pink) 0,var(--color-orange) 100%)}.index.wrap .btn::before{position:absolute;display:block;content:'';height:calc(100% - 1rem);width:calc(100% - 1rem);border-radius:5rem;left:.5rem;top:.8rem;box-shadow:0 0 .6rem .6rem var(--color-pink-a3);background-color:var(--color-pink-a3)}.index.wrap .btn:hover{transform:translateZ(2.5rem)}.index.wrap .btn:hover::before{transform:translateZ(-2.5rem)}.index.wrap .active .btn{transform-style:preserve-3d;transform:translateZ(2rem);-webkit-backface-visibility:hidden;backface-visibility:hidden}.index.wrap .active .btn::before{transform-style:preserve-3d;transform:translateZ(-2rem);-webkit-backface-visibility:hidden;backface-visibility:hidden}.index.wrap .meta{font-size:.8125em;color:var(--grey-5)}.index.wrap .meta .ic{margin-right:.0625rem}.index.wrap .meta .item+.item{margin-left:.625rem}.index.wrap .meta.footer{position:absolute;bottom:.5rem;max-width:calc(100% - 7rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;justify-content:flex-start}.index.wrap .meta.footer span{margin-right:.5rem}.cards{display:flex;margin:0 auto;align-items:center;flex-wrap:wrap;justify-content:space-between}.cards.hide .item{display:none}.cards .item{perspective:62.5rem}.cards .item.show{display:block!important}.cards .item .cover,.cards .item .info{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:.375rem;height:100%;width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d;transition:ease-in-out .6s}.cards .item .cover{background-position:center;background-size:cover;padding:.5rem 1rem;font-size:1em;color:var(--header-text-color);overflow:hidden;transform:rotateY(0)}.cards .item .cover .title{margin:0;white-space:normal;text-align:center}.cards .item .cover::before{position:absolute;display:block;content:'';top:0;left:0;right:0;bottom:0;background-image:linear-gradient(135deg,#434343 0,#000 100%);opacity:.25;z-index:-1}.cards .item .cover span{font-size:.75em;position:absolute;right:.9375rem;top:.625rem;padding:0 .3125rem;border-radius:.3125rem;box-shadow:0 0 .3125rem .0625rem rgba(0,0,0,.6);background:rgba(0,0,0,.5)}.cards .item .info{background-color:var(--grey-0);transform:rotateY(-180deg);padding:1rem 1.5rem 4rem;justify-content:space-between}@media (max-width:767px){.cards .item .info{padding:1rem 1rem 4rem}}.cards .item .info .ribbon{left:-2.5rem;margin-bottom:.8rem;max-width:calc(100% + 2rem)}@media (max-width:767px){.cards .item .info .ribbon{left:-2rem}}.cards .item:nth-child(2n) .info{transform:rotateY(180deg)}.cards .item.active .cover{transform:rotateY(180deg)}.cards .item.active .info{transform:rotateY(0);box-shadow:0 0 2rem var(--box-bg-shadow)}.cards .item:nth-child(2n).active .cover{transform:rotateY(-180deg)}.cards .item .title .ic{font-size:80%}.cards .item ul.posts{display:flex;flex-wrap:wrap;justify-content:space-between;align-content:baseline;min-height:5rem;overflow:hidden}.cards .item ul.posts li{width:45%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--primary-color)}.segments{display:flex;flex-direction:column;justify-content:center;align-items:center}.segments>.item{display:flex;border-radius:.625rem;width:calc(100% - 2rem);min-width:calc(100% - 2rem);border-radius:.5rem;box-shadow:0 .625rem 1.875rem -.9375rem var(--box-bg-shadow);transition:all .2s ease-in-out 0s}@media (max-width:767px){.segments>.item{flex-direction:column;height:-moz-fit-content;height:fit-content;max-height:-moz-fit-content;max-height:fit-content}}.segments>.item:hover{box-shadow:0 0 2rem var(--box-bg-shadow)}.segments>.item:hover .cover img{transform:scale(1.05) rotate(1deg)}.segments .cover{width:50%;margin-right:1.5rem;-webkit-clip-path:polygon(0 0,92% 0%,100% 100%,0% 100%);clip-path:polygon(0 0,92% 0%,100% 100%,0% 100%);border-radius:.625rem 0 0 .625rem;overflow:hidden}@media (max-width:767px){.segments .cover{width:100%;height:14rem;margin:auto;-webkit-clip-path:polygon(0 0,100% 0,100% 92%,0 100%);clip-path:polygon(0 0,100% 0,100% 92%,0 100%);border-radius:.625rem .625rem 0 0}}.segments .cover img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:all .2s ease-in-out 0s}.segments .info{position:relative;width:50%;padding:1rem 1.5rem 3rem 0;perspective:62.5rem}@media (max-width:767px){.segments .info{width:100%;height:14rem;padding:0 1rem 3rem}}.segments .info .meta{display:flex;justify-content:flex-end;margin:0}@media (max-width:767px){.segments .info .meta .item:not(:first-child){display:none}}.segments .info h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin:.625rem 0;color:var(--primary-color)}.segments .info .excerpt{overflow:hidden;font-size:.875em;max-height:5rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;text-overflow:ellipsis}.segments>.item:nth-child(2n){flex-direction:row-reverse}@media (max-width:767px){.segments>.item:nth-child(2n){flex-direction:column}}.segments>.item:nth-child(2n) .cover{margin-right:auto;margin-left:1.5rem;-webkit-clip-path:polygon(0 0%,100% 0%,100% 100%,8% 100%);clip-path:polygon(0 0%,100% 0%,100% 100%,8% 100%);border-radius:0 .625rem .625rem 0}@media (max-width:767px){.segments>.item:nth-child(2n) .cover{width:100%;margin:auto;-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 92%);clip-path:polygon(0 0,100% 0,100% 100%,0 92%);border-radius:.625rem .625rem 0 0}}.segments>.item:nth-child(2n) .info{padding:1rem 0 3rem 1.5rem}@media (max-width:767px){.segments>.item:nth-child(2n) .info{padding:0 1rem 3rem}}.segments>.item:nth-child(2n) .info .meta{justify-content:flex-start}.segments>.item:nth-child(2n) .btn{left:0;right:auto;border-radius:0 1rem;background-image:linear-gradient(to right,var(--color-orange) 0,var(--color-pink) 100%)}.segments>.item:nth-child(2n) .meta.footer{right:.5rem;justify-content:flex-start}.segments>.item:nth-child(2n):hover .cover img{transform:scale(1.05) rotate(-1deg)}.collapse small{color:var(--grey-4);margin:auto .3125rem}.collapse .item{position:relative;padding:1.25rem 1.875rem;margin:0}.collapse .item::before{content:"";position:absolute;z-index:1;transition:all .2s ease-in-out 0s;box-sizing:unset;top:1.9rem;left:0;width:.6rem;height:.6rem;border:.15rem solid var(--primary-color);border-radius:50%;background:var(--grey-1)}.collapse .item:not(:last-child):not(.title)::after{content:"";position:absolute;top:1.9rem;bottom:-1.9rem;left:.35rem;border-left:.2rem solid var(--color-red-a3)}.collapse .item:hover::before{border-color:var(--color-blue)}.collapse .item.header::after{border-left-style:dashed!important}.collapse .item.header .cheers{display:block}.collapse .item.section::before{width:.4rem;height:.4rem;margin-left:.1rem}.collapse .item.header a,.collapse .item.section a,.collapse .item.title a{border-bottom:.0625rem dashed var(--grey-4)}.collapse .item.header:hover a,.collapse .item.section:hover a,.collapse .item.title:hover a{border-bottom-color:var(--color-blue)}.collapse .item.normal{display:flex;flex-wrap:wrap;align-items:center;padding:.625rem 1.875rem}.collapse .item.normal::before{top:1.4rem;width:.2rem;height:.2rem;margin-left:.2rem;background:var(--primary-color)}.collapse .item.normal:hover::before{background:var(--color-blue)}.collapse .item.normal .meta{display:inline;font-size:.75em;margin-right:.625rem}.collapse .item.normal .meta time{color:var(--grey-4)}.collapse .item.normal .title{display:inline}.collapse .item.normal .title a{color:var(--primary-color)}.collapse .item.normal .title a:hover{color:var(--color-blue)}.collapse .item.normal .title .i-link-alt{font-size:.875em;margin-left:.3125rem}.tag.cloud{text-align:center}.tag.cloud a{display:inline-block;margin:.625rem}.tag.cloud a:hover{color:var(--primary-color)!important}.page .notfound{width:18.75rem;height:22.625rem;background:url("../images/404.png") no-repeat center bottom;text-align:center;margin:6.25rem auto}.page .anchor::before{font-family:ic;font-weight:400;color:var(--grey-4);position:absolute;left:-1.5625rem;margin-top:.25rem;visibility:visible}@media (max-width:567px){.page .anchor::before{left:-.1875rem}}.page .body h1 .anchor::before{font-size:.875em;margin-top:.15rem;color:pink;left:-1.875rem}@media (max-width:567px){.page .body h1 .anchor::before{left:-.3125rem}}.page .body h2 .anchor::before{font-size:.8125em;color:var(--color-pink)}.page .body h3 .anchor::before{font-size:.75em;color:var(--color-orange)}.pace{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:var(--primary-color);position:fixed;z-index:2000;top:0;right:100%;width:100%;height:.125rem}#loading{background-color:var(--grey-1)}.cat{position:relative;display:block;width:15em;height:100%;font-size:10px;margin:auto;animation:2.74s linear infinite loading-cat}.cat *{box-sizing:content-box}.cat .body,.cat .foot,.cat .head,.cat .paw{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;border-radius:50%;width:15em;height:15em}.cat .body{background-image:radial-gradient(transparent 0,transparent 35%,#383c4b 35%,#383c4b 39%,#eda65d 39%,#eda65d 46%,#f2c089 46%,#f2c089 60%,#eda65d 60%,#eda65d 67%,#383c4b 67%,#383c4b 100%)}.cat .foot:before,.cat .head:before{background-image:radial-gradient(transparent 0,transparent 35%,#383c4b 35%,#383c4b 39%,#eda65d 39%,#eda65d 67%,#383c4b 67%,#383c4b 100%)}.cat .head:before{content:'';width:100%;height:100%;position:absolute;border-radius:50%;clip-path:polygon(100% 20%,50% 50%,70% -10%);-webkit-clip-path:polygon(100% 20%,50% 50%,70% -10%)}.cat .head:after{content:'';width:4.125em;height:2.5em;position:absolute;top:.8125em;right:3.9375em;background-image:linear-gradient(var(--grey-1) 65%,transparent 65%),radial-gradient(var(--grey-1) 51%,#383c4b 55%,#383c4b 68%,transparent 70%);transform:rotate(-66deg)}.cat .head .face{width:5em;height:3.75em;left:9.0625em;top:1.8125em;position:absolute;transform:rotate(-47deg);background:radial-gradient(circle,#f2c089 0,#f2c089 23%,transparent 23%) -.1875em 1.0625em no-repeat,radial-gradient(circle,#383c4b 0,#383c4b 6%,transparent 6%) .75em -.75em no-repeat,radial-gradient(circle,#383c4b 0,#383c4b 6%,transparent 6%) -.75em -.75em no-repeat,radial-gradient(#eda65d 0,#eda65d 15%,transparent 15%) 0 -.6875em no-repeat,radial-gradient(circle,transparent 5%,#383c4b 5%,#383c4b 10%,transparent 10%) -.1875em -.3125em no-repeat,radial-gradient(circle,transparent 5%,#383c4b 5%,#383c4b 10%,transparent 10%) .1875em -.3125em no-repeat,radial-gradient(circle,#eda65d 45%,transparent 45%) 0 -.1875em,linear-gradient(transparent 35%,#383c4b 35%,#383c4b 41%,transparent 41%,transparent 44%,#383c4b 44%,#383c4b 50%,transparent 50%,transparent 53%,#383c4b 53%,#383c4b 59%,transparent 59%)}.cat .foot:after,.cat .foot:before{content:'';width:100%;height:100%;position:absolute}.cat .foot:before{border-radius:50%;clip-path:polygon(50% 50%,0% 50%,0% 25%);-webkit-clip-path:polygon(50% 50%,0% 50%,0% 25%)}.cat .foot .tummy-end{width:1.5em;height:1.5em;position:absolute;border-radius:50%;background-color:#f2c089;left:1.1875em;top:6.5625em}.cat .foot .bottom{width:2.1875em;height:.9375em;position:absolute;top:4.875em;left:.75em;border:.375em solid #383c4b;border-bottom:0;border-radius:50%;transform:rotate(21deg);background:#eda65d}.cat .foot:after,.cat .hands,.cat .legs{width:.625em;height:1.5625em;position:absolute;border:.375em solid #383c4b;background-color:#eda65d}.cat .hands{border-top:0;border-radius:0 0 .75em .75em}.cat .hands.left{top:4.3em;left:13.1875em;transform:rotate(-20deg)}.cat .hands.right{top:5.125em;left:10.975em;transform:rotate(-25deg)}.cat .legs{border-bottom:0;border-radius:.75em .75em 0 0}.cat .legs.left{top:4.0625em;left:3.125em;transform:rotate(25deg)}.cat .legs.right{top:3.3125em;left:.75em;transform:rotate(22deg)}.cat .foot:after{width:.9em;height:2.5em;top:2.625em;left:2.5em;z-index:-1;transform:rotate(25deg);background-color:#c6823b;border-bottom:0;border-radius:.75em .75em 0 0}.cat .body{animation:2.74s linear infinite body}.cat .foot{animation:2.74s linear infinite foot}.cat:hover{animation-play-state:paused}.cat:hover .body,.cat:hover .foot{animation-play-state:paused}.cat:active{animation-play-state:running}.cat:active .body,.cat:active .foot{animation-play-state:running}@keyframes body{0%{-webkit-clip-path:polygon(50% 50%,0% 50%,0% 100%,100% 100%,100% 20%);clip-path:polygon(50% 50%,0% 50%,0% 100%,100% 100%,100% 20%)}10%{-webkit-clip-path:polygon(50% 50%,30% 120%,50% 100%,100% 100%,100% 20%);clip-path:polygon(50% 50%,30% 120%,50% 100%,100% 100%,100% 20%)}20%{-webkit-clip-path:polygon(50% 50%,100% 90%,120% 90%,100% 100%,100% 20%);clip-path:polygon(50% 50%,100% 90%,120% 90%,100% 100%,100% 20%)}40%{-webkit-clip-path:polygon(50% 50%,100% 45%,120% 45%,120% 50%,100% 20%);clip-path:polygon(50% 50%,100% 45%,120% 45%,120% 50%,100% 20%)}50%{-webkit-clip-path:polygon(50% 50%,100% 45%,120% 45%,120% 50%,100% 20%);clip-path:polygon(50% 50%,100% 45%,120% 45%,120% 50%,100% 20%)}65%{-webkit-clip-path:polygon(50% 50%,100% 65%,120% 65%,120% 50%,100% 20%);clip-path:polygon(50% 50%,100% 65%,120% 65%,120% 50%,100% 20%)}80%{-webkit-clip-path:polygon(50% 50%,75% 130%,120% 65%,120% 50%,100% 20%);clip-path:polygon(50% 50%,75% 130%,120% 65%,120% 50%,100% 20%)}90%{-webkit-clip-path:polygon(50% 50%,-20% 110%,50% 120%,100% 100%,100% 20%);clip-path:polygon(50% 50%,-20% 110%,50% 120%,100% 100%,100% 20%)}100%{-webkit-clip-path:polygon(50% 50%,0% 50%,0% 100%,100% 100%,100% 20%);clip-path:polygon(50% 50%,0% 50%,0% 100%,100% 100%,100% 20%)}}@keyframes loading-cat{0%{transform:rotate(0)}10%{transform:rotate(-80deg)}20%{transform:rotate(-180deg)}40%{transform:rotate(-245deg)}50%{transform:rotate(-250deg)}68%{transform:rotate(-300deg)}90%{transform:rotate(-560deg)}100%{transform:rotate(-720deg)}}@keyframes foot{0%{transform:rotate(-10deg)}10%{transform:rotate(-100deg)}20%{transform:rotate(-145deg)}35%{transform:rotate(-190deg)}50%{transform:rotate(-195deg)}70%{transform:rotate(-165deg)}100%{transform:rotate(-10deg)}}#search{position:fixed;background:var(--nav-bg);left:0;top:0;width:100%;height:100%;padding:1.25rem;z-index:999;display:none}#search>.inner{border-radius:0;height:100%;margin:0 auto;width:43.75rem;text-shadow:none}@media (max-width:767px){#search>.inner{width:100%}}#search>.inner .close-btn,#search>.inner .icon{color:var(--grey-5);font-size:1.125rem;padding:0 .625rem}#search>.inner .close-btn{cursor:pointer}#search>.inner .close-btn:hover i{color:var(--grey-7)}#search>.inner .header{display:flex;background:var(--grey-1-a5);border-radius:3rem;padding:.5rem 1.5rem;margin-bottom:1.25rem;border:.0625rem solid var(--grey-5);font-size:1.125em;align-items:center}#search>.inner .search-input-container{flex-grow:1}#search>.inner .search-input-container form{padding:.125rem}#search>.inner .search-input{background:0 0;border:0;outline:0;width:100%}#search>.inner .search-input::-webkit-search-cancel-button{display:none}#search .results{height:calc(100% - 6.25rem);padding:1.875rem 1.875rem .3125rem;border-radius:.3125rem;background:var(--grey-1-a7) url("../images/search.png") no-repeat bottom right;color:var(--text-color)}#search .results .inner{position:relative;height:100%;overflow:hidden}#search .results hr{margin:.625rem 0}.algolia-powered{float:right;background:url("../images/algolia_logo.svg") no-repeat;display:inline-block;height:1.125rem;width:4.25rem;margin:.5rem auto}#search-hits{overflow-y:scroll;height:calc(100% - 8.125rem)}#search-hits ol{padding:0}#search-hits .item{margin:.9375rem 0}#search-hits .item a{border-bottom:.0625rem dashed var(--grey-4);display:block;transition:all .2s ease-in-out 0s}#search-hits .item span{font-size:70%;display:block}#search-hits .item span i{color:var(--grey-4);margin:0 .3125rem}#search-pagination ul{padding:0;margin:1.25rem 0}#search-pagination .pagination{opacity:1;padding:0}#search-pagination .pagination-item{display:inline-block}#search-pagination .page-number{transition:all .2s ease-in-out 0s}#search-pagination .current .page-number{cursor:default}#search-pagination .disabled-item{color:var(--grey-4);cursor:default}#search-pagination .disabled-item .page-number:hover{color:var(--grey-4);background:0 0;box-shadow:none}#neko{display:none;background:linear-gradient(to top,#fddb92 0,#d1fdff 80%)}#neko .planet{position:fixed;left:-50%;top:-50%;width:200%;height:200%;animation:rotate 2s cubic-bezier(.7,0,0,1);transform-origin:center bottom}#neko:before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;opacity:0;background:linear-gradient(to top,#30cfd0 0,#330867 100%);transition:2s ease all}#neko .moon,#neko .sun{position:absolute;border-radius:100%;left:55%;top:32%}#neko .sun{height:40px;width:40px;background:#ffee94;box-shadow:0 0 40px #ffee94;opacity:1}#neko .moon{height:24px;width:24px;background:#eee;box-shadow:0 0 20px #fff;opacity:0}#neko .body{display:block;position:absolute;bottom:-20px;height:140px;width:135px;left:50%;margin-left:-100px;background:#777;transition:all .25s ease-in-out;animation:slideUpBigIn 1s}#neko .body:after,#neko .body:before{position:absolute;content:"";width:0;height:0;border-bottom:20px solid #777;top:-20px;transition:all .25s ease-in-out}#neko .body:before{border-left:0 solid transparent;border-right:30px solid transparent;left:0}#neko .body:after{border-right:0px solid transparent;border-left:30px solid transparent;right:0}#neko .body .eyes{display:block;position:absolute;background:#ffee94;height:40px;width:40px;border-radius:100%;bottom:80px}#neko .body .eyes.left{left:12px}#neko .body .eyes.right{right:12px}#neko .body .eyes .pupil,#neko .body .nose{display:block;position:relative;background:#ffb399;border-radius:100%;margin:0 auto}#neko .body .eyes .pupil{height:100%;width:5px;transition:width 1s .5s ease-in-out}#neko .body .nose{top:45px;height:10px;width:10px}#neko.dark:before{opacity:1}#neko.dark .sun{opacity:0}#neko.dark .moon{opacity:1}#neko.dark .body{background:#444}#neko.dark .body:before{border-bottom:20px solid #444}#neko.dark .body:after{border-bottom:20px solid #444}#neko.dark .body .eyes .pupil{height:90%;width:34px;margin:5% auto}.widgets{display:flex;z-index:1;background:var(--body-bg-shadow);justify-content:space-around}.widgets>div{width:calc(50% - 2rem);padding:1rem}@media (max-width:767px){.widgets{flex-direction:column-reverse}.widgets>div{width:calc(100% - 1rem)!important}}.widgets ul{counter-reset:counter}.widgets .item{padding:.5rem 0 .5rem 2rem;border-bottom:.0625rem dashed var(--grey-4);position:relative}.widgets .item::before{counter-increment:counter;content:counter(counter);position:absolute;left:0;font-size:1.5em;color:var(--grey-4);line-height:1.2;text-align:right;width:1em}.widgets .item .breadcrumb,.widgets .item span{display:block;text-overflow:ellipsis;overflow:hidden;max-height:2rem;white-space:nowrap}.widgets .item .breadcrumb{margin:0;display:flex;max-height:1.2rem}.katex,.katex-display{-webkit-user-select:all;-moz-user-select:all;user-select:all}.medium-zoom-overlay{z-index:9998}.medium-zoom-image--opened{z-index:9999}.operation{color:var(--grey-5);cursor:pointer;position:absolute;padding:.125rem .375rem;right:.125rem;top:.45rem;font-size:.8125em}.operation span{transition:all .2s ease-in-out 0s;margin:0 .3125rem}.operation span:hover{color:var(--grey-7)}.highlight{background:var(--grey-2);color:var(--grey-7);line-height:1.6;margin:1.25rem auto}.code-container,code,pre{font-family:Inconsolata,consolas,Menlo,-apple-system,"PingFang SC","Microsoft YaHei";font-size:1em}:not(td)>pre{background:var(--grey-1);border:.0625rem solid var(--grey-3);border-radius:.3125rem;padding:1rem;margin-bottom:.8rem;line-break:anywhere;white-space:break-spaces}:not(td)>pre code{background:0 0;color:currentColor}:not(pre)>code{color:var(--primary-color);border-radius:.3rem;border:.0625rem solid rgba(0,0,0,.1);background-color:var(--grey-0);padding:.2rem .3rem;overflow-wrap:break-word;word-wrap:break-word}.highlight{position:relative;overflow:hidden;border-radius:.5rem;box-shadow:0 .3125rem .625rem -.125rem var(--grey-9-a1)}.highlight ::-moz-selection{background:var(--grey-4)}.highlight ::selection{background:var(--grey-4)}.highlight::before{content:" ";position:absolute;border-radius:50%;background:#fc625d;width:.75rem;height:.75rem;left:.75rem;top:.8125rem;box-shadow:1.25rem 0 #fdbc40,2.5rem 0 #35cd4b}.highlight figcaption{color:var(--grey-4);display:inline-flex;font-size:.875em;font-weight:700;padding:0 6rem 0 5rem;min-height:2.5rem;width:100%;text-align:center;align-items:center;justify-content:space-between;background-color:var(--grey-3);margin-bottom:.625rem}.highlight figcaption::before{content:attr(data-lang);text-transform:Capitalize}.highlight figcaption a,.highlight figcaption span{display:block;margin-left:.625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.highlight figcaption a{color:var(--grey-5)}.highlight figcaption a:hover{color:var(--grey-6)}.highlight.fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;min-width:100%;z-index:9999;margin:0;border-radius:0;overflow-y:scroll;overflow-x:hidden}.highlight.fullscreen .show-btn{position:fixed}.highlight.breakline .code-container table{line-break:anywhere;white-space:break-spaces}.highlight.breakline .code-container table pre{white-space:break-spaces}.code-container{overflow-x:scroll;overflow-y:hidden}.code-container::after{content:"";display:block;height:.625rem;width:100%}.code-container table{white-space:pre;border-spacing:0;width:100%}.code-container tr{background-color:inherit}.code-container tr:hover td{background-color:var(--grey-3)}.code-container td{position:relative;padding:unset;vertical-align:unset;border:unset;transition:all .2s ease-in-out 0s}.code-container td pre::before{content:" "}.code-container td:first-child{position:absolute;background:var(--grey-2);text-align:right;overflow-x:visible!important;overflow-y:hidden;left:0;width:2.5rem;padding-right:.9375rem;color:var(--color-grey);z-index:1}.code-container td:nth-child(2){padding-left:3rem}.code-container td:last-child{padding-right:.9375rem}.code-container td[data-num]::before{content:attr(data-num)}.code-container td[data-command]::before{content:attr(data-command) " ";color:var(--grey-5);display:block;letter-spacing:-1px;padding-right:.5rem;text-align:right;white-space:nowrap}.code-container td[data-command]+td{padding-left:.5rem;border-left:1px solid var(--grey-4)}.code-container .marked td{background-color:var(--grey-3)}.code-container .marked:hover td:last-child{background-color:var(--color-red-a1)}.code-container .show-btn{position:absolute;cursor:pointer;left:0;bottom:0;width:100%;height:2.875rem;text-align:center;color:var(--text-color);background-image:linear-gradient(to bottom,var(--grey-2-a0) 0,var(--grey-2) 80%);z-index:1}.code-container .show-btn::after{content:"";display:block;width:100%;height:1rem;background:var(--grey-2)}.code-container .show-btn .ic{margin-top:1rem}.code-container .show-btn.open{background:0 0;bottom:.5rem}.code-container .show-btn.open::after{display:none}.code-container .deletion{background:var(--color-pink-light)}.code-container .addition{background:var(--color-cyan-light)}.code-container .meta{color:var(--color-yellow);-moz-user-select:none;-webkit-user-select:none;user-select:none}.code-container .comment,.code-container .punctuation{color:var(--grey-5)}.code-container .attribute,.code-container .css .class,.code-container .css .id,.code-container .css .pseudo,.code-container .function,.code-container .html .doctype,.code-container .name,.code-container .regexp,.code-container .ruby .constant,.code-container .tag,.code-container .variable,.code-container .xml .doctype,.code-container .xml .pi,.code-container .xml .tag .title{color:var(--color-red)}.code-container .built_in,.code-container .builtin-name,.code-container .command,.code-container .constant,.code-container .literal,.code-container .number,.code-container .params,.code-container .preprocessor{color:var(--color-orange)}.code-container .css .rules .attribute,.code-container .formula,.code-container .header,.code-container .inheritance,.code-container .ruby .class .title,.code-container .ruby .symbol,.code-container .special,.code-container .string,.code-container .symbol,.code-container .value,.code-container .xml .cdata{color:var(--color-green)}.code-container .css .hexcolor,.code-container .namespace,.code-container .title{color:var(--color-aqua)}.code-container .class-name,.code-container .coffeescript .title,.code-container .javascript .title,.code-container .perl .sub,.code-container .python .decorator,.code-container .python .title,.code-container .ruby .function .title,.code-container .ruby .title .keyword{color:var(--color-blue)}.code-container .javascript .function,.code-container .keyword{color:var(--color-purple)}.md li{position:relative;margin:.2rem 0}.md li:before{transition:all .2s ease-in-out 0s}.md li p{margin:0}.md dl,.md ol,.md ul{margin:.5em 0 .5em;padding:.1em .2em .1em 1.4em}.md dl dt::before,.md ul>li::before{content:"";position:absolute;width:.4em;height:.4em;background:var(--primary-color);border-radius:50%;top:.85em;left:-1em}.md dl dt:hover::before,.md ul>li:hover::before{background:var(--color-pink)}.md ol:not([start]){counter-reset:counter}.md ol>li::before{counter-increment:counter;content:counter(counter);position:absolute;width:1.4em;height:1.4em;border-radius:50%;text-align:center;font-size:.8em;line-height:1.4;top:.5em;left:-1.8em;background:var(--primary-color);color:var(--grey-1);cursor:pointer}.md ol>li:hover::before{color:var(--grey-1);background:var(--color-pink)}.md dl dt{position:relative}.md dl dd{padding-left:.9375em}.md ul li.nodot::before{width:auto;height:auto;background:0 0!important;border:none!important;position:relative;top:0!important;left:0!important}.md ul li.task-list-item::before{width:auto;height:auto;background:0 0!important;border:none!important;position:relative;top:0!important;left:0!important}.md ul li.task-list-item input[type=checkbox]{display:none}.md ul li.task-list-item input[type=checkbox]+label::before{font-family:ic;font-weight:400;color:var(--grey-4);display:inline-block;margin-right:.625em}.md ul li.task-list-item input[type=checkbox]:checked+label::before{color:var(--note-text,var(--primary-color))}.md li ul>li::before{background:var(--grey-1);border:1px solid var(--primary-color)}.md dd ol>li::before,.md li ol>li::before{content:counter(counter) ".";background:0 0;color:var(--primary-color);font-size:1em;line-height:1;width:auto}.md dd ol>li:hover::before,.md li ol>li:hover::before{background:0 0;color:var(--color-pink)}.md ol>li.quiz.show.true::before,.md ol>li.quiz>ul.options li.right::before{color:var(--color-green)}.md ol>li.quiz.show.true::after,.md ol>li.quiz>ul.options li.right::after{color:var(--color-green);animation:fadeIn .5s}.md ol>li.quiz.show.false::before,.md ol>li.quiz>ul.options li.wrong::before{color:var(--color-red)}.md ol>li.quiz.show.false::after,.md ol>li.quiz>ul.options li.wrong::after{color:var(--color-red);animation:fadeIn .5s}.md ol>li.quiz{margin:.625rem 0}.md ol>li.quiz::before{counter-increment:counter;content:counter(counter) ".";position:absolute;color:var(--primary-color);text-align:right;width:2rem;left:-2.2rem;height:auto;background:0 0!important;border:none!important;font-size:1em}.md ol>li.quiz>p{margin:0;cursor:pointer}.md ol>li.quiz>p:first-child::before{content:"[" attr(data-type) "]";font-size:.75em;color:var(--grey-4);margin:auto .3125rem}.md ol>li.quiz.mistake>p:first-child::before{color:var(--primary-color)}.md ol>li.quiz .gap{display:inline-block;min-width:2.5rem;text-align:center;padding:0 .625rem;text-indent:-624.9375rem}.md ol>li.quiz .gap::after{display:block;content:"";background:var(--text-color);width:calc(100% + 1.25rem);height:.0625rem;margin-bottom:-.0625rem;margin-left:-.625rem}.md ol>li.quiz.show.fill .gap{text-indent:0}.md ol>li.quiz::after,.md ol>li.quiz::before{transition:all .2s ease-in-out 0s}.md ol>li.quiz blockquote{display:none}.md ol>li.quiz blockquote .mistake{display:block;border:.1875rem dashed var(--grey-4);padding:.625rem 1.25rem;background:var(--grey-3);margin:.3125rem}.md ol>li.quiz blockquote .mistake::before{display:block;content:"[" attr(data-type) "]";font-size:.8125em;color:var(--grey-4)}.md ol>li.quiz .note{display:none;padding:0;margin:0;background:0 0;border:none;border-radius:inherit;color:unset;font-size:inherit;filter:unset}.md ol>li.quiz.show .note,.md ol>li.quiz.show blockquote{display:block}.md ol>li.quiz ul.options{-webkit-padding-start:0.625rem;padding-inline-start:0.625rem}.md ol>li.quiz ul.options li::before{color:var(--color-grey);margin-right:.625rem;transition:all .2s ease-in-out 0s;width:auto;height:auto;background:0 0!important;border:none!important;position:relative;top:0!important;left:0!important}.md ol>li.quiz ul.options li:first-child::before{content:"A."}.md ol>li.quiz ul.options li:nth-child(2)::before{content:"B."}.md ol>li.quiz ul.options li:nth-child(3)::before{content:"C."}.md ol>li.quiz ul.options li:nth-child(4)::before{content:"D."}.md ol>li.quiz ul.options li:nth-child(5)::before{content:"E."}.md ol>li.quiz>ul.options li{cursor:pointer}.md ol>li.quiz>ul.options li::after{font-family:ic;font-weight:400;position:absolute;left:-1.5625rem;top:0}.md ol>li.quiz.show.false::before,.md ol>li.quiz.show.true::before{visibility:hidden}.md ol>li.quiz.show.false::after,.md ol>li.quiz.show.true::after{font-family:ic;font-weight:400;position:absolute;left:-1.2rem;top:.25rem}.links{display:flex;flex-wrap:wrap;font-size:.9rem}.links .item{position:relative;display:inline-flex;justify-self:center;align-items:center;line-height:1.5;width:calc(50% - 2rem);padding:.5rem 1rem;margin:1rem;transition:all .2s ease-in-out 0s;border-radius:.5rem;border:.0625rem solid var(--grey-2);box-shadow:0 .625rem 1.875rem -.9375rem var(--box-bg-shadow);--bg-color:var(--block-color, #666)}.links .item .image{display:block;width:4rem;height:4rem;border-radius:.9375rem;background:var(--grey-1) center no-repeat;background-size:contain;flex-shrink:0;border:none}.links .item .info{padding-left:1rem}.links .item .title{margin:.5rem 0;font-family:Mulish,'Noto Serif JP','Noto Serif SC',Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:700;color:var(--bg-color);border:none}.links .item .title .ic{display:none}.links .item .desc{font-size:.75em;margin:.5rem 0}.links .item:hover{color:var(--header-text-color);background-color:var(--bg-color);box-shadow:0 .125rem 1.25rem var(--bg-color);border-color:var(--bg-color)}.links .item:hover .image{mix-blend-mode:normal;background-color:var(--bg-color)}.links .item:hover .title{color:var(--header-text-color)}@media (max-width:767px){.links{font-size:1em}.links .item{width:calc(100% - 2rem)}}.md .note{border-radius:.1875rem;margin:1rem 0;padding:1rem;position:relative;background:var(--note-bg,var(--grey-2));color:var(--grey-6);border-left:.25rem solid var(--note-border,var(--grey-4));font-size:.875em;padding-left:2.5rem;--primary-color:var(--note-text)}.md .note::before{position:absolute;left:.5rem;top:calc(50% - 1.5rem);font-family:ic;font-weight:400;font-size:1.5rem;color:var(--note-text,var(--grey-6))}.md .note.no-icon{padding-left:1rem}.md .note.no-icon::before{content:none}::-webkit-details-marker{display:none}details>summary:first-of-type{list-style-type:none}details summary{outline:0;cursor:pointer;padding:.625rem;background:var(--note-bg,none);border-radius:.25rem;transition:all .4s ease}details summary::before{font-family:ic;font-weight:400;color:var(--grey-4);margin-right:.5rem}details>div{padding:.625rem}details.danger,details.info,details.primary,details.success,details.warning{margin:0 0 .8rem}details.danger summary,details.info summary,details.primary summary,details.success summary,details.warning summary{color:var(--note-text)}details.danger summary::before,details.info summary::before,details.primary summary::before,details.success summary::before,details.warning summary::before{color:var(--note-text)}details[open]{background:var(--note-bg,none);border-radius:.25rem;color:var(--grey-6)}details[open] summary{background:var(--note-hover,var(--grey-2));border-radius:.25rem}details[open] summary::before{color:var(--primary-color)}details[open]>div{margin:0 0 .8rem}details[open].danger,details[open].info,details[open].primary,details[open].success,details[open].warning{color:var(--note-text)}details[open].danger>summary,details[open].info>summary,details[open].primary>summary,details[open].success>summary,details[open].warning>summary{color:#fff;border-radius:.25rem .25rem 0 0}details[open].danger>summary::before,details[open].info>summary::before,details[open].primary>summary::before,details[open].success>summary::before,details[open].warning>summary::before{color:#fff}span.label{display:inline;border-radius:.3rem;border:.0625rem solid;padding:.2rem .3rem;font-family:Inconsolata,consolas,Menlo,-apple-system,"PingFang SC","Microsoft YaHei";font-size:1em;background:var(--note-bg,var(--grey-2));border-color:var(--note-border,var(--grey-4));color:var(--note-text,var(--grey-6))}.tabs{display:block;position:relative}.tabs .nav{overflow:hidden;border-bottom:.0625rem solid var(--grey-1-a7);height:2.6875rem}.tabs .nav ul{display:flex;padding:0;white-space:nowrap;overflow-x:auto}.tabs .nav li{position:relative;cursor:pointer;border:none;display:inline-block;padding:.3125rem 1.25rem;margin:0}.tabs .nav li::before{content:"";position:absolute;left:50%;right:50%;top:auto;bottom:0;transition:all .2s ease-in-out;width:auto;height:auto;background:0 0;border-radius:0;border-bottom:.125rem solid transparent}.tabs .nav li.active::before{left:0;right:0;border-bottom-color:var(--note-hover,var(--primary-color))}.tabs .tab{display:none}.tabs .tab.active{display:block}.tabs .show-btn{position:absolute;cursor:pointer;right:0;bottom:0;width:2.875rem;height:2.875rem;text-align:center;color:var(--grey-4);z-index:1}.tabs .show-btn::before{font-family:ic;font-weight:400}.md .tabs{margin:0 0 2rem;border-radius:.5rem;border:.0625rem solid var(--grey-2);box-shadow:0 .625rem 1.875rem -.9375rem var(--box-bg-shadow)}.md .tabs .tab{padding:1.25rem}.md .note h2,.md .note h3,.md .note h4,.md .note h5,.md .note h6,.md details h2,.md details h3,.md details h4,.md details h5,.md details h6{margin-top:.1875rem;border-bottom:initial;margin-bottom:0;padding-top:0}.md .note p,.md details p{line-height:1.8}.md .note a:not(.btn),.md details a:not(.btn){color:var(--note-hover);border-bottom:.0625rem dashed var(--note-text)}.md .note a:not(.btn):hover,.md details a:not(.btn):hover{color:var(--note-text);border-bottom-color:var(--note-text)}.md .note ul li::before,.md details ul li::before{background:var(--note-text)}.md .note ol li:before,.md details ol li:before{background:var(--note-text,var(--primary-color))!important;width:.8rem;height:.8rem;font-size:.45rem;line-height:.8rem;top:.4rem;left:-1.2rem}.media-container{position:relative;border-radius:.5rem;border:.0625rem solid var(--grey-2);box-shadow:0 .625rem 1.875rem -.9375rem var(--box-bg-shadow);overflow:hidden;margin-bottom:2rem}.player-info{color:var(--text-color);font-size:1em;min-width:16.25rem}.player-info .tabs{border:none;box-shadow:none}.player-info .tabs .show-btn{display:none}.player-info .tabs .tab{padding:0}.player-info .controller{font-family:ic;font-weight:400;cursor:pointer;font-size:1.25em;display:flex;justify-content:space-around;align-items:center;text-align:center}.player-info .controller .btn{color:var(--grey-6);width:18%}.player-info .controller .btn:hover{color:var(--color-pink)}.player-info .play-pause{font-size:130%}.player-info .volume{position:relative}.player-info .volume .bar{position:absolute;height:.25rem;background:var(--color-pink-a3);bottom:0;left:0;transition:all .2s ease-out 0s}.player-info .volume.off .bar{height:0}.player-info .playlist{border-top:.125rem solid var(--grey-9-a1)}.player-info ol{font-size:.8125em;padding:.3125rem 0;margin:.625rem 0 0;height:12.5rem;overflow-x:scroll;counter-reset:counter;position:relative}.player-info ol::-webkit-scrollbar{width:.1875rem;height:.1875rem}.player-info ol>li{display:flex;padding:.3125rem .9375rem .3125rem 1.5625rem;cursor:pointer;transition:all .2s ease-in-out 0s;height:2rem;overflow:hidden}.player-info ol>li.error{opacity:.5;-webkit-text-decoration-line:line-through;text-decoration-line:line-through}.player-info ol>li::before{height:auto;background:0 0!important;border:none!important;position:relative;top:0!important;left:0!important;font-size:inherit;line-height:inherit;margin-left:-1.25rem;width:1.875rem;counter-increment:counter;content:counter(counter);text-align:right;padding-right:.3125rem;color:var(--grey-5)}.player-info ol>li .info{display:block;width:100%}.player-info ol>li .info span:nth-child(2){float:right;margin-left:.625rem;color:var(--grey-5)}.player-info ol>li.current{color:var(--primary-color);position:relative}.player-info ol>li.current::before{font-family:ic;font-weight:400;color:currentColor}.player-info ol>li.current .progress .bar{position:absolute;height:100%;background:var(--color-pink-a3);top:0;left:0;transition:all .2s ease-out 0s}.player-info ol>li.current .progress::before{content:attr(data-ptime) " / " attr(data-dtime);color:var(--grey-5);position:absolute;right:0;padding:0 .3rem}.player-info ol>li.current .progress.seeking::before{color:currentColor}.player-info ol>li.current .info{padding-right:5rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.player-info ol>li.current .info span:nth-child(2){display:none}.player-info ol>li:hover{background-color:var(--grey-1-a7)}.player-info ol>li:hover::before{color:var(--primary-color)}.video{border-radius:0 0 .5rem .5rem}.audio .preview{display:flex;align-items:center;padding:1.25rem 1.25rem 0}@media (max-width:767px){.audio .preview{padding:1.25rem .625rem 0;flex-direction:column}}.audio .preview .info{display:flex;flex-direction:column;margin-left:.625rem;padding:.625rem;text-overflow:ellipsis;overflow:hidden;width:100%}@media (max-width:767px){.audio .preview .info{margin-left:0}}.audio .preview .info h4{margin:0;text-overflow:ellipsis;max-height:3rem;padding:0;overflow:hidden}.audio .preview .info span{font-size:.75em}.audio .preview .lrc{max-height:4rem;margin-top:.3125rem;font-size:.75em;position:relative;text-align:center;overflow:hidden}.audio .preview .lrc .inner{width:100%;transition:all .5s ease-out}.audio .preview .lrc p{font-size:.75rem;color:var(--grey-6);line-height:1rem!important;height:1rem!important;padding:0!important;margin:0!important;transition:all .5s ease-out;opacity:.3;overflow:hidden}.audio .preview .lrc p.current{opacity:1;overflow:visible;height:auto!important;min-height:1rem}.audio .cover{position:relative;flex-shrink:0;cursor:pointer}.audio .cover::before{content:"";position:absolute;z-index:1;background:url("../images/play_needle.png") no-repeat center/contain;width:3.4375rem;height:5.1875rem;top:-1.5625rem;left:-1.5625rem;transform:rotateZ(-60deg);animation:rotate-needle-pause .5s 1 normal linear forwards;transform-origin:0.625rem 0.625rem}.audio .cover .disc{animation:rotate 20s linear infinite;animation-play-state:paused;padding:1.5rem;max-height:144px}.audio .cover .disc::after{content:"";position:absolute;background:url("../images/play_disc.png") no-repeat center/contain;z-index:1;width:100%;height:100%;top:0;left:0}.audio .cover img{-o-object-fit:contain;object-fit:contain;width:6rem;height:6rem;border-radius:50%}.audio.playing .cover::before{animation:rotate-needle-resume .5s 1 normal linear forwards}.audio.playing .cover .disc{animation-play-state:running} \ No newline at end of file +#nav .menu .item:not(.title) a::before{content:"";position:absolute;width:0;height:.1875rem;bottom:0;border-radius:.125rem;left:50%;transform:translateX(-50%);background-color:currentColor}#nav .menu .submenu .item.active,#nav .menu .submenu .item:hover,#search-pagination .current .page-number,#sidebar .tab .item.active,#sidebar .tab .item:hover,.overview .menu .item.active,.pagination .next:hover,.pagination .page-number.current,.pagination .page-number:hover,.pagination .prev:hover{color:var(--grey-0);background-image:linear-gradient(to right,var(--color-pink) 0,var(--color-orange) 100%);box-shadow:0 0 .75rem var(--color-pink-a3)}#loading,#neko{position:fixed;left:0;right:0;top:0;bottom:0;z-index:9999}:root{--grey-0:#fff;--grey-1:#fdfdfd;--grey-2:#f7f7f7;--grey-3:#eff2f3;--grey-4:#ccc;--grey-5:#999;--grey-6:#666;--grey-7:#333;--grey-8:#222;--grey-9:#000;--grey-1-a0:rgba(253,253,253,0);--grey-1-a7:rgba(253,253,253,0.7);--grey-1-a5:rgba(253,253,253,0.5);--grey-1-a3:rgba(253,253,253,0.3);--grey-9-a1:rgba(0,0,0,0.1);--grey-9-a5:rgba(0,0,0,0.5);--grey-2-a0:rgba(247,247,247,0);--color-pink-light:#ffe6fa;--color-cyan-light:#e3fdf5;--color-red:#e9546b;--color-pink:#ed6ea0;--color-orange:#ec8c69;--color-yellow:#eab700;--color-green:#0a7426;--color-aqua:#3e999f;--color-blue:#38a1db;--color-purple:#9d5b8b;--color-grey:#869194;--color-red-a1:rgba(233,84,107,0.1);--color-red-a3:rgba(233,84,107,0.3);--color-pink-a3:rgba(237,110,160,0.3);--color-pink-light-a3:rgba(255,230,250,0.3);--color-pink-light-a5:rgba(255,230,250,0.5);--color-pink-light-a7:rgba(255,230,250,0.7);--body-bg-shadow:var(--grey-2);--box-bg-shadow:var(--grey-9-a1);--text-color:var(--grey-7);--header-text-color:var(--grey-0);--primary-color:var(--color-red);--nav-bg:linear-gradient(-225deg, var(--color-cyan-light) 0, var(--color-pink-light) 100%)}.primary{--note-border:#cda0c7;--note-bg:#fdf8ff;--note-text:#8a51c0;--note-hover:#935aca}.info{--note-border:#8fa4dc;--note-bg:#f1f9ff;--note-text:#1d4974;--note-hover:#1d5fa0}.success{--note-border:#a3c293;--note-bg:#fcfff5;--note-text:#2c662d;--note-hover:#3b883c}.warning{--note-border:#c9ba9b;--note-bg:#fffbeb;--note-text:#947600;--note-hover:#ccb045}.danger{--note-border:#f4b3c1;--note-bg:#fff2f5;--note-text:#cc0f35;--note-hover:#f14668}[data-theme=dark]:root{--grey-0:#222;--grey-1:#21252b;--grey-2:#363636;--grey-3:#444;--grey-4:#666;--grey-5:#aaa;--grey-6:#ccc;--grey-7:#ddd;--grey-8:#eee;--grey-9:#f7f7f7;--grey-1-a7:rgba(34,34,34,0.7);--grey-1-a5:rgba(34,34,34,0.5);--grey-1-a3:rgba(34,34,34,0.3);--grey-1-a0:rgba(34,34,34,0);--grey-9-a1:rgba(51,51,51,0.1);--grey-2-a0:rgba(54,54,54,0);--color-pink-light:#322d31;--color-cyan-light:#2d3230;--color-red:rgba(237,118,137,0.9);--color-pink:rgba(241,139,179,0.8);--color-orange:rgba(240,163,135,0.8);--color-yellow:#ffe175;--color-green:#86c59d;--color-aqua:#97d3d6;--color-blue:#9cd0ed;--color-purple:#cfacc5;--color-grey:#c3c8ca;--body-bg-shadow:#000;--box-bg-shadow:#000;--text-color:var(--grey-5);--header-text-color:var(--grey-9)}[data-theme=dark] .primary{--note-border:rgba(123,96,119,0.8);--note-bg:rgba(50,49,50,0.8);--note-text:rgba(161,116,205,0.8);--note-hover:rgba(117,72,161,0.8)}[data-theme=dark] .info{--note-border:rgba(85,98,132,0.8);--note-bg:rgba(48,49,50,0.8);--note-text:rgba(109,164,219,0.8);--note-hover:rgba(39,127,214,0.8)}[data-theme=dark] .success{--note-border:rgba(97,116,88,0.8);--note-bg:rgba(50,50,48,0.8);--note-text:rgba(128,200,129,0.8);--note-hover:rgba(41,95,42,0.8)}[data-theme=dark] .warning{--note-border:rgba(120,111,93,0.8);--note-bg:rgba(50,50,46,0.8);--note-text:rgba(220,176,0,0.8);--note-hover:rgba(163,140,55,0.8)}[data-theme=dark] .danger{--note-border:rgba(146,107,115,0.8);--note-bg:rgba(50,48,48,0.8);--note-text:rgba(239,38,79,0.8);--note-hover:rgba(168,49,72,0.8)}[data-theme=dark] .index.wrap .card .message .btn,[data-theme=dark] .overview .menu .item,[data-theme=dark] .sidebar .tab li,[data-theme=dark] [data-background-image],[data-theme=dark] img{transition:all .2s ease-in-out 0s;opacity:.75}[data-theme=dark] .index.wrap .card .message .btn:hover,[data-theme=dark] .overview .menu .item:hover,[data-theme=dark] .sidebar .tab li:hover,[data-theme=dark] [data-background-image]:hover,[data-theme=dark] img:hover{opacity:.9}[data-theme=dark] #imgs::before{background-color:rgba(0,0,0,.5)}.red{color:var(--color-red)}.pink{color:var(--color-pink)}.orange{color:var(--color-orange)}.yellow{color:var(--color-yellow)}.green{color:var(--color-green)}.aqua{color:var(--color-aqua)}.blue{color:var(--color-blue)}.purple{color:var(--color-purple)}.grey{color:var(--color-grey)}.i-volume-off:before,.player-info .volume.off::before{content:"\e61e"}.i-volume-on:before,.player-info .volume.on::before{content:"\e62c"}.i-circle-play:before,.player-info .play-pause::before{content:"\e647"}.i-forward:before,.player-info .forward::before{content:"\e648"}.i-backward:before,.player-info .backward::before{content:"\e649"}.i-circle-pause:before,.playing .player-info .play-pause::before{content:"\e64a"}.i-loop:before,.player-info .mode.loop::before{content:"\e64b"}.i-order:before,.player-info .mode.order::before{content:"\e64c"}.i-random:before,.player-info .mode.random::before{content:"\e64d"}.i-douban:before{content:"\e75f"}.i-linux:before{content:"\f1e8"}.i-opera:before{content:"\f205"}.i-qq:before{content:"\f216"}.i-safari:before{content:"\f229"}.i-snapchat-ghost:before{content:"\f234"}.i-weixin:before{content:"\f262"}.i-windows:before{content:"\f266"}.i-stars:before{content:"\e8c4"}.i-apple:before{content:"\e600"}.i-blackberry:before{content:"\e601"}.i-centos:before{content:"\e602"}.i-fedora:before{content:"\e603"}.i-redhat:before{content:"\e604"}.i-ubuntu:before{content:"\e605"}.i-suse:before{content:"\e606"}.i-mobile-alt:before{content:"\f052"}.i-paw:before{content:"\f06b"}.i-android:before{content:"\f161"}.i-chrome:before{content:"\f178"}.i-edge:before{content:"\f195"}.i-firefox:before{content:"\f1a1"}.i-internet-explorer:before{content:"\f1d4"}.i-markdown:before{content:"\f1eb"}.i-smile:before{content:"\f2a5"}.i-preview:before{content:"\e901"}#copyright .license::before,.i-share:before{content:"\e61b"}#copyright .link::before,.i-link-circle:before{content:"\e67b"}#copyright .author::before,.i-person:before{content:"\e69d"}.i-sun:before{content:"\e6d1"}.i-moon:before{content:"\e71e"}.i-compress:before{content:"\ef82"}.i-expand:before{content:"\efb4"}.i-align-justify:before{content:"\ef13"}.i-align-left:before{content:"\ef14"}.i-eye:before{content:"\efb8"}.i-pen:before{content:"\f071"}.i-clock:before{content:"\ef75"}.i-flag:before{content:"\e680"}.i-at:before{content:"\e619"}.i-file:before{content:"\e68d"}.i-clipboard:before{content:"\e651"}.i-feather:before{content:"\efbd"}#tool .player .music::before,.i-music:before{content:"\f059"}#tool.playing .player .play-pause::before,.i-pause:before{content:"\f06a"}.i-comments:before{content:"\ef7f"}#tool .player .play-pause::before,.i-play:before,.player-info ol>li.current::before{content:"\f07f"}.i-calendar-check:before{content:"\ef5b"}.i-angle-up:before{content:"\ef1b"}.i-facebook:before{content:"\f19d"}.i-instagram:before{content:"\f1d3"}.i-skype:before{content:"\f231"}.i-stack-overflow:before{content:"\f239"}.i-youtube:before{content:"\f274"}.i-list-alt:before{content:"\e6c1"}.i-star:before,.page .body h3 .anchor::before{content:"\f0d4"}.i-link-alt:before{content:"\f037"}.i-paper-plane:before{content:"\f063"}.i-user:before{content:"\f2dd"}.i-link:before{content:"\e8fc"}.i-angle-down:before,details[open] summary::before{content:"\ef1a"}.i-calendar:before{content:"\e812"}#sidebar .tab .item.overview::before,.i-home:before{content:"\e8ed"}.i-magic:before{content:"\f03e"}.i-sakura:before,.page .body h1 .anchor::before{content:"\e695"}.i-tag:before{content:"\e759"}.i-angle-left:before{content:"\ef19"}.i-arrow-circle-right:before,.md .note.default::before{content:"\ef23"}.i-check-circle:before,.md .note.success::before,.md ul li.task-list-item input[type=checkbox]:checked+label::before{content:"\ef66"}.i-exclamation-circle:before,.md .note.warning::before{content:"\efb5"}.i-info-circle:before,.md .note.info::before{content:"\f02b"}.i-minus-circle:before,.md .note.danger::before{content:"\f050"}.i-plus-circle:before,.md .note.primary::before{content:"\f082"}.i-file-word:before{content:"\f299"}.i-check:before,.md ol>li.quiz.show.true::after,.md ol>li.quiz>ul.options li.right::after{content:"\ef65"}.i-times:before,.md ol>li.quiz.show.false::after,.md ol>li.quiz>ul.options li.wrong::after{content:"\f109"}#sidebar .tab .item.contents::before,.i-list-ol:before{content:"\f039"}.i-archive:before{content:"\ef1c"}.i-angle-right:before,details summary::before{content:"\ef1f"}.i-arrow-down:before{content:"\ef25"}.i-arrow-up:before,.tabs .show-btn::before{content:"\ef2a"}.i-chart-area:before{content:"\ef64"}.i-chevron-left:before{content:"\ef6e"}.i-chevron-right:before{content:"\ef6f"}.i-coffee:before{content:"\ef7a"}.i-envelope:before{content:"\efae"}.i-external-link-alt:before{content:"\efb6"}.i-heart:before{content:"\f013"}.i-heartbeat:before,.page .body h2 .anchor::before{content:"\f017"}.i-search:before{content:"\f0a8"}#sidebar .tab .item.related::before,.i-sitemap:before{content:"\f0bd"}.i-tags:before{content:"\f0f3"}.i-th:before{content:"\f0fc"}.i-thumbtack:before{content:"\f107"}.i-times-circle:before,.md ul li.task-list-item input[type=checkbox]+label::before{content:"\f10a"}.i-creative-commons:before{content:"\f17e"}.i-github:before{content:"\f1b4"}.i-twitter:before{content:"\f24d"}.i-weibo:before{content:"\f261"}.i-address-card:before{content:"\f278"}.i-zhihu:before{content:"\e765"}.i-cloud-music:before{content:"\e76a"}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background:0 0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:.0625rem dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-0.125rem;-webkit-appearance:textfield}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}::-webkit-scrollbar{width:.3125rem;height:.3125rem;background:0 0}::-webkit-scrollbar-track{border-radius:.3125rem;background:0 0}::-webkit-scrollbar-track-piece{background:0 0}::-webkit-scrollbar-button{background:0 0;height:0}::-webkit-scrollbar-thumb{border-radius:1.25rem;background-clip:padding-box;background-color:var(--grey-3);background-image:linear-gradient(45deg,var(--grey-1-a5) 25%,transparent 0,transparent 50%,var(--grey-1-a5) 0,var(--grey-1-a5) 75%,transparent 0,transparent)}body.loaded::-webkit-scrollbar{width:.5rem;height:.5rem}body.loaded::-webkit-scrollbar-thumb{background-color:var(--color-pink-light)}.page .body h1 .anchor::before,.rotate{animation:rotate 6s linear infinite}.beat,.page .body h2 .anchor::before{animation:beat 1.33s ease-in-out infinite}.flash,.page .body h3 .anchor::before{animation:flash 6s cubic-bezier(.22,.61,.36,1) infinite}.overview .author:hover .image,.ribbon a:hover,.shake{animation:shake 1s}.fade-in,.tabs .tab,.tip,details[open]>div{animation:fadeIn .5s}#tool.affix .player-info.show.hide,.fade-out,.tip.hide{animation:fadeOut .3s}.code-container .show-btn .ic,.up-down{animation:UpDown 2s infinite}.code-container .show-btn.open .ic,.down-up{animation:DownUp 2s infinite}.md ol>li.quiz.show .note,.md ol>li.quiz.show blockquote,.slide{animation:slide .5s}#nav .menu .submenu,.slide-up-in{animation:slideUpIn .3s}.cards .item.show,.segments>.item.show,.slide-up-big-in,body.loaded #main .wrap,body.loaded #sidebar .panel.active{animation:slideUpBigIn .5s}#tool.affix .player-info.show,.slide-right-in{animation:slideRightIn .3s}.slide-left-in{animation:slideLeftIn .3s}.overview .menu .item .submenu,.slide-down-in,body.loaded #brand .pjax{animation:slideDownIn .3s}.blur,.lozaded{animation:blur .8s ease-in-out forwards}.elastic,.highlight.fullscreen{animation:elastic 1s}@keyframes rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{from{transform:rotate(720deg)}to{transform:none}}@keyframes rotate-needle-pause{0%{transform:rotateZ(-35deg)}100%{transform:rotateZ(-60deg)}}@keyframes rotate-needle-resume{0%{transform:rotateZ(-60deg)}100%{transform:rotateZ(-35deg)}}@keyframes beat{0%,100%{transform:scale(1)}10%,30%{transform:scale(.9)}20%,40%,60%,80%{transform:scale(1.1)}50%,70%{transform:scale(1.1)}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes shake{from,to{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes blur{0%{filter:blur(10px)}to{filter:blur(0)}}@keyframes blur-dark{0%{filter:blur(10px) brightness(.9)}to{filter:blur(0) brightness(.9)}}@keyframes UpDown{0%,100%{opacity:.8;transform:translateY(10px)}50%{opacity:.4;transform:translateY(0)}}@keyframes DownUp{0%,100%{opacity:.8;transform:rotate(180deg) translateY(0)}50%{opacity:.4;transform:rotate(180deg) translateY(-10px)}}@keyframes slide{0%{opacity:0;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}@keyframes slideRightIn{0%{opacity:0;transform:translateX(50%)}to{opacity:1;transform:translateX(0)}}@keyframes slideLeftIn{0%{opacity:0;transform:translateX(-50%)}to{opacity:1;transform:translateX(0)}}@keyframes slideUpIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUpBigIn{0%{opacity:0;transform:translateY(80px)}100%{opacity:1;transform:translateY(0)}}@keyframes slideDownIn{0%{opacity:0;transform:translateY(-18px)}100%{opacity:1;transform:translateY(0)}}@keyframes elastic{0%{transform:scale(0)}55%{transform:scale(1)}70%{transform:scale(.98)}100%{transform:scale(1)}}::-moz-selection{background:var(--color-orange);color:var(--grey-2)}::selection{background:var(--color-orange);color:var(--grey-2)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:linear-gradient(to top,var(--body-bg-shadow) 0,var(--grey-1) 20%) no-repeat bottom;color:var(--text-color);font-family:Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-size:1em;line-height:2;-webkit-font-smoothing:antialiased;overflow:hidden}body.loaded{overflow:auto}body.loaded #sidebar .panel.active{display:block}@media (max-width:991px){body{padding-left:0!important;padding-right:0!important}}body.fullscreen{overflow:hidden}body.fullscreen #sidebar>.inner,body.fullscreen #tool{z-index:0}h1,h2,h3,h4,h5,h6{font-family:Mulish,'Noto Serif SC','Noto Serif JP',Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:700;line-height:1.5;margin:1.25rem 0 .9375rem}h1.title,h2.title,h3.title,h4.title,h5.title,h6.title{font-family:Mulish,'Noto Serif JP','Noto Serif SC',Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}a{border:none;color:currentColor;outline:0;text-decoration:none;overflow-wrap:break-word;word-wrap:break-word;transition:all .2s ease-in-out 0s;cursor:pointer}a:hover{border-bottom-color:var(--color-blue);color:var(--color-blue)}a::after,a::before{transition:all .4s ease-in-out 0s}a,div,li{-webkit-tap-highlight-color:transparent}li{list-style:none}iframe,img,video{display:block;margin-left:auto;margin-right:auto;max-width:100%}hr{background-image:repeating-linear-gradient(-45deg,var(--grey-3),var(--grey-4) .25rem,transparent .25rem,transparent .5rem);border:none;height:.125rem;margin:1.5rem 0}blockquote{border-left:.25rem solid var(--grey-4);color:var(--grey-6);margin:1.25rem 0;padding:.625rem 1.25rem}blockquote cite::before{content:'-';padding:0 .3125rem}dt{font-weight:700}dd{margin:0;padding:0}input,textarea{color:var(--text-color)}@font-face{font-family:ic;src:url("//at.alicdn.com/t/font_1832207_igi8uaupcus.eot");src:url("//at.alicdn.com/t/font_1832207_igi8uaupcus.eot?#iefix") format('embedded-opentype'),url("//at.alicdn.com/t/font_1832207_igi8uaupcus.woff2") format('woff2'),url("//at.alicdn.com/t/font_1832207_igi8uaupcus.woff") format('woff'),url("//at.alicdn.com/t/font_1832207_igi8uaupcus.ttf") format('truetype'),url("//at.alicdn.com/t/font_1832207_igi8uaupcus.svg#ic") format('svg')}.ic{font-family:ic!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;width:1.25em;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.ic em{font-size:0}.ic-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.table-container{overflow:auto}.table-container table{border-collapse:collapse;border-spacing:0;font-size:.875em;margin:0 0 1.25rem 0;width:100%;overflow:auto}.table-container table tbody tr:nth-of-type(2n){background:var(--grey-0)}.table-container table tbody tr:hover{background:var(--grey-2)}.table-container table caption,.table-container table td,.table-container table th{font-weight:400;padding:.5rem;text-align:left;vertical-align:middle}.table-container table td,.table-container table th{border:.0625rem solid var(--grey-3);border-bottom:.1875rem solid var(--grey-3)}.table-container table th{font-weight:700;padding-bottom:.625rem;text-align:center}.table-container table td{border-bottom-width:.0625rem}.table-container table td .highlight:last-child,.table-container table td p:last-child,.table-container table td pre:last-child{margin:0}.button{display:inline-block;cursor:pointer;touch-action:manipulation;text-align:center;text-decoration:none;vertical-align:middle;white-space:nowrap;border-radius:.3rem;border:.0625rem solid var(--grey-3);color:var(--grey-6);font-size:.875em;font-weight:400;line-height:1.5;background:0 0;margin-bottom:0;min-height:1em;padding:.5em 1.25em;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:0;will-change:auto;transition:all .2s ease-in-out 0s}.button+.button{margin-left:1.25em}.button:active,.button:hover{color:var(--grey-0);background-color:var(--primary-color);border-color:var(--primary-color)}.button:disabled{border-color:var(--grey-4);color:var(--grey-4);background-color:var(--grey-2);cursor:not-allowed}.button .ic{text-align:left;width:1.285714285714286em}.toggle{line-height:0;cursor:pointer}.toggle .line{background:var(--header-text-color);display:inline-block;height:.125rem;left:0;position:relative;border-radius:.0625rem;top:0;transition:all .4s;vertical-align:top;width:100%;box-shadow:0 0 .5rem rgba(0,0,0,.5)}.toggle .line:not(:first-child){margin-top:.1875rem}.toggle.toggle-arrow .toggle-line-first{left:50%;top:.125rem;transform:rotate(45deg);width:50%}.toggle.toggle-arrow .toggle-line-middle{left:.125rem;width:90%}.toggle.toggle-arrow .toggle-line-last{left:50%;top:-.125rem;transform:rotate(-45deg);width:50%}.toggle.close .line:first-child{transform:rotate(-45deg);top:.3125rem}.toggle.close .line:nth-child(2){opacity:0}.toggle.close .line:nth-child(3){transform:rotate(45deg);top:-.3125rem}.pagination .next,.pagination .page-number,.pagination .prev,.pagination .space{display:inline-block;margin:0 .5rem;padding:0 .75rem;position:relative;border-radius:.3125rem}@media (max-width:767px){.pagination .next,.pagination .page-number,.pagination .prev,.pagination .space{margin:0 .3125rem}}.pagination{width:100%;padding:1.25rem 3.125rem;text-align:center;display:inline-block;color:var(--grey-5)}@media (max-width:767px){.pagination{padding:1.25rem .625rem}}.pagination .inner{width:auto;border-radius:.9375rem}.pagination .next,.pagination .page-number,.pagination .prev{transition:all .2s ease-in-out 0s}.pagination .space{margin:0;padding:0}.pagination .prev{margin-left:0}.pagination .next{margin-right:0}#search-pagination .current .page-number:hover,.pagination .page-number.current:hover{box-shadow:0 0 .3125rem var(--primary-color)}.tip{position:fixed;background:var(--grey-9-a5);color:#fff;top:50%;left:50%;z-index:9999;padding:.625rem 1rem;border-radius:.625rem;transform:translate(-50%,-50%);text-align:center;font-size:.875em;-webkit-backdrop-filter:blur(0.625rem);backdrop-filter:blur(0.625rem)}.ribbon{display:inline-block;align-self:flex-start;position:relative;padding:0 1rem 0 2rem;border-radius:0 .3rem .3rem 0;background-image:linear-gradient(to right,var(--color-orange) 0,var(--color-pink) 100%);color:var(--grey-0)}.ribbon::after{content:"";position:absolute;top:100%;left:0;width:0;height:0;background-color:transparent;border-style:solid;border-width:0 1rem 1rem 0;border-color:transparent;border-right-color:var(--color-orange);filter:brightness(.9)}.ribbon a{display:block;margin:0;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ribbon a:hover{color:currentColor}.divider{margin:1rem 0;line-height:1;height:0;font-weight:700;text-transform:uppercase;letter-spacing:.05rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--grey-4);display:table;white-space:nowrap;height:auto;line-height:1;text-align:center}.divider::after,.divider::before{content:'';display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC")}.divider::before{background-position:right 1rem top 50%}.divider::after{background-position:left 1rem top 50%}#container{min-height:100%;min-width:100%;position:relative;display:flex;flex-direction:column}.inner{margin:0 auto;width:100%}main{background:linear-gradient(to top,var(--body-bg-shadow) 0,var(--grey-1) 20%) no-repeat bottom}main>.inner{width:calc(100% - .625rem);align-items:flex-start;display:flex;justify-content:space-between;flex-direction:row-reverse}@media (min-width:1200px){main>.inner{width:72.5rem}}@media (min-width:1600px){main>.inner{width:73%}}#main{background:linear-gradient(to top,var(--grey-0) 0,var(--grey-1) 20%) no-repeat top;box-shadow:0 1.25rem 1rem .3125rem var(--body-bg-shadow);width:calc(100% - 15.75rem);min-height:37.5rem}#main .cat{margin-top:10rem}#main .wrap{position:relative;padding:1.25rem}#main .wrap:first-child{margin-bottom:1.25rem}@media (max-width:991px){#main{width:100%}#main .wrap{padding:.625rem}}@media (max-width:767px){#main .wrap{padding:.5rem}}#header{margin:0 auto;position:relative;width:100%;height:50vh;text-shadow:0 .2rem .3rem rgba(0,0,0,.5);color:var(--header-text-color)}#header a:hover{color:currentColor}#imgs{display:block;position:fixed;top:0;left:0;width:100%;height:70vh;min-height:25rem;z-index:-9;background-color:#363636}#imgs img{width:100%;height:100%;position:absolute;top:0;left:0;-o-object-fit:cover;object-fit:cover}#imgs .item{width:100%;height:100%;position:absolute;top:0;left:0;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;opacity:0;z-index:0;animation:imageAnimation 36s linear infinite 0s;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d}#imgs .item:nth-child(2){animation-delay:6s}#imgs .item:nth-child(3){animation-delay:12s}#imgs .item:nth-child(4){animation-delay:18s}#imgs .item:nth-child(5){animation-delay:24s}#imgs .item:nth-child(6){animation-delay:30s}#imgs .item:nth-child(7){animation-delay:36s}#imgs::before{content:'';display:block;position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.2);z-index:1;transition:all .2s ease-in-out 0s}@keyframes imageAnimation{0%{opacity:0;animation-timing-function:ease-in}2%{opacity:1}8%{opacity:1;transform:scale(1.05);animation-timing-function:ease-out}17%{opacity:1;transform:scale(1.1)}25%{opacity:0;transform:scale(1.1)}100%{opacity:0}}#nav{position:fixed;z-index:9;width:100%;height:3.125rem;transition:all .2s ease-in-out 0s}#nav.up{transform:translateY(0)}#nav.down{transform:translateY(-100%)}#nav.show{background:var(--nav-bg);box-shadow:.1rem .1rem .2rem var(--grey-9-a1);text-shadow:0 0 .0625rem var(--grey-9-a1);color:var(--text-color)}#nav.show .line{background:var(--text-color);box-shadow:0 0 .0625rem var(--grey-9-a1)}#nav.show .item.active>a,#nav.show .item.expand>a{color:var(--color-aqua);opacity:1}#nav.show .menu .submenu{background-color:var(--grey-1)}#nav.show .menu .submenu .item.active a{color:var(--grey-0);opacity:1}#nav .inner{height:100%;display:flex;width:calc(100% - .625rem);flex-wrap:nowrap}@media (min-width:1200px){#nav .inner{width:72.5rem}}@media (min-width:1600px){#nav .inner{width:73%}}#nav .toggle{display:none}@media (max-width:991px){#nav .toggle{display:flex;flex-direction:column;justify-content:center;align-items:center}}#nav .toggle .lines{padding:1.25rem;width:1.375rem;box-sizing:unset}#nav .menu{padding:.625rem 0;margin:0;width:100%}#nav .menu .item{display:inline-block;position:relative;padding:0 .625rem;letter-spacing:.0625rem;text-align:center}@media (max-width:767px){#nav .menu .item{display:none}#nav .menu .item.title{display:block}}#nav .menu .item .ic{margin-right:.5rem}#nav .menu .item:not(.title) a{display:block;font-size:1em}#nav .menu .item.active:not(.dropdown) a::before,#nav .menu .item:not(.dropdown):hover a::before{width:70%}#nav .menu .submenu{display:none;position:absolute;margin-top:.5rem;padding:0;width:-moz-max-content;width:max-content;background-color:var(--grey-9-a5);box-shadow:0 .3125rem 1.25rem -.25rem var(--grey-9-a1);border-radius:.625rem 0}#nav .menu .submenu::before{position:absolute;top:-1.25rem;left:0;width:100%;height:2.5rem;content:''}#nav .menu .submenu:hover{display:block}#nav .menu .submenu .item{display:block}#nav .menu .submenu .item:first-child{border-radius:.625rem 0 0 0}#nav .menu .submenu .item:last-child{border-radius:0 0 .625rem 0}#nav .menu .submenu .item a{display:inline-block;padding:.3rem .7rem;width:100%;text-shadow:none}#nav .menu .submenu .item a::before{content:none}#nav .menu .submenu .item:hover a{transform:translateX(.3rem)}#nav .menu .submenu .item.active a,#nav .menu .submenu .item:hover a{opacity:1}#nav .menu .item.dropdown>a::after{content:"";display:inline-block;margin-left:.3rem;vertical-align:middle;border:.3rem solid transparent;border-top-color:currentColor;border-bottom:0}#nav .menu .item.dropdown:hover .submenu{display:block}#nav .right{display:inline-flex;align-items:center;justify-content:center}#nav .right .item{padding:.625rem .5rem;cursor:pointer}#nav .right .i-sun{font-size:1.125em}#brand{position:fixed;padding:3rem 5rem 0;text-align:center;width:100%;height:50vh;min-height:10rem}#brand.affix{z-index:-1}#brand,#brand .pjax{display:flex;flex-direction:column;justify-content:center;align-items:center}#brand .artboard{font-family:'Fredericka the Great',Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-size:3.5em;line-height:1.2}#brand h1{font-size:2.5em;letter-spacing:.125rem}#brand .artboard+h1{margin:.625rem 0}#brand .sticky{font-size:.75em;display:inline-block;transform:rotate(30deg);-webkit-backface-visibility:hidden;backface-visibility:hidden}#brand .meta{display:flex;font-size:.875em;margin:0}#brand .meta .item+.item{margin-left:.625rem}@media (min-width:768px) and (max-width:991px){#brand .meta{font-size:.8125em}}@media (max-width:767px){#brand{padding:3rem .5rem 0}#brand h1{font-size:1.5em}#brand .meta{font-size:.75em}#brand .meta .text{display:none}}@media (max-width:413px){#brand .artboard{font-size:2.5em}}#tool{position:fixed;right:1rem;top:50vh;z-index:9}@media (max-width:991px){#tool{right:1rem;left:auto}}#tool .item{display:none;width:1.875rem;height:1.875rem;opacity:.5;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;transition:all .2s ease-in-out 0s}#tool .item:hover{opacity:.9}#tool .player{display:inline-flex;flex-direction:row-reverse;font-size:1.5em;width:auto;height:auto}#tool .player>.btn{font-family:ic;font-weight:400;width:1.875rem;text-align:center}#tool .player>.btn+.btn{margin-right:.625rem}#tool .player .music{display:none}#tool .player-info{border-radius:.5rem;border:.0625rem solid var(--grey-2);box-shadow:0 .625rem 1.875rem -.9375rem var(--box-bg-shadow);background:var(--grey-1-a7);-webkit-backdrop-filter:blur(0.625rem);backdrop-filter:blur(0.625rem);position:fixed;display:none;bottom:0;overflow:hidden;right:3.5rem;width:50vw;z-index:9;max-width:25rem}@media (max-width:767px){#tool .player-info{right:2.5rem}}#tool .player-info .nav{font-size:.75em;height:2.1875rem}#tool .back-to-top span{font-size:.75em}#tool.affix{text-shadow:none;top:auto;box-shadow:0 0 .5rem rgba(0,0,0,.1);background:var(--grey-1-a3);border-radius:.3125rem;right:0;bottom:0}#tool.affix .item{display:flex;color:var(--primary-color)}#tool.affix .player{font-size:1em;flex-direction:column-reverse}#tool.affix .player>.btn+.btn{margin-right:0}#tool.affix .player .music{display:block}#tool.affix .player-info{right:2.5rem}@media (min-width:1200px){#tool.affix .player-info{right:3.5rem}}@media (max-width:991px){#tool.affix .player-info{right:2.5rem;left:auto}}#tool.affix .player-info.show{display:block}#tool.affix .back-to-top{align-items:center;justify-content:center;height:auto;padding:.3125rem 0 0}#tool.affix .contents{display:none}@media (max-width:991px){#tool.affix .contents{display:flex}}@media (min-width:1200px){#tool.affix{right:1rem;bottom:1rem}}@media (max-width:991px){#tool.affix{right:0;bottom:0;left:auto}}.waves{width:100%;height:15vh;margin-bottom:-.6875rem;min-height:3.125rem;max-height:9.375rem;position:relative}@media (max-width:767px){.waves{height:10vh}}.parallax>use{animation:wave 25s cubic-bezier(.55,.5,.45,.5) infinite}.parallax>use:first-child{animation-delay:-2s;animation-duration:7s;fill:var(--grey-1-a7)}.parallax>use:nth-child(2){animation-delay:-3s;animation-duration:10s;fill:var(--grey-1-a5)}.parallax>use:nth-child(3){animation-delay:-4s;animation-duration:13s;fill:var(--grey-1-a3)}.parallax>use:nth-child(4){animation-delay:-5s;animation-duration:20s;fill:var(--grey-1)}@keyframes wave{0%{transform:translate3d(-90px,0,0)}100%{transform:translate3d(85px,0,0)}}#sidebar{position:static;width:15rem;top:0;bottom:0;transition:all .2s ease-in-out 0s}@media (max-width:991px){#sidebar{display:none;position:fixed;right:0;background:var(--grey-1);box-shadow:0 .375rem .9375rem .3125rem rgba(0,0,0,.2);z-index:99}}#sidebar.affix>.inner{position:fixed;top:0}#sidebar.affix .panels{padding-top:3.625rem;height:100vh}#sidebar>.inner{position:relative;width:15rem;color:var(--grey-6);text-align:center;display:flex;justify-content:space-around;align-items:flex-start;flex-wrap:wrap;z-index:1}.panels{padding:4.6875rem 0 2rem;width:100%;overflow:hidden}.panels .inner{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;width:auto;height:100%}.panels .inner::-webkit-scrollbar{display:none}.panels .panel{display:none;padding:.875rem .9375rem 2rem}.dimmer{display:none}@media (max-width:991px){.dimmer{background:#000;height:100%;left:100%;opacity:0;top:0;width:100%;z-index:9;transition:opacity 1s}#sidebar.on+.dimmer{position:fixed;display:block;opacity:.3;transform:translateX(-100%)}}.overview .author .image{border:.0625rem solid var(--body-bg-shadow);display:block;margin:0 auto;max-width:10rem;padding:.125rem;box-shadow:0 0 1rem .625rem var(--body-bg-shadow);border-radius:50%}.overview .author .name{color:var(--grey-7);font-weight:400;margin:.3125rem 0 0;text-align:center}.overview .author .description{color:var(--grey-5);font-size:1em;margin-top:.3125rem;text-align:center}@keyframes shake{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(-3deg)}40%,60%,80%{transform:scale(1.1) rotate(3deg)}100%{transform:scale(1)}}.overview .menu{padding:1.25rem;margin:0;background-color:transparent}.overview .menu .item{border-radius:.9375rem;margin-bottom:.625rem;display:block;color:var(--grey-5);transition:all .2s ease-in-out 0s}.overview .menu .item a{color:inherit;display:block;line-height:3}.overview .menu .item .submenu{display:none;padding:0}.overview .menu .item:hover{background-color:rgba(0,0,0,.1);color:inherit}.overview .menu .item:hover .submenu{display:block}.overview .menu .item .ic{margin-right:.625rem}.overview .menu .item.active:hover{box-shadow:0 0 .75rem var(--color-pink);color:var(--grey-0)}.overview .menu .item.active .item{color:currentColor}.overview .menu .item.expand{background-color:rgba(0,0,0,.05)}.overview .menu .item.expand .submenu{display:block}.social{margin-top:.9375rem;text-align:center}.social .item{display:inline-block;width:1.875rem;height:1.875rem;line-height:1.875rem;text-align:center;position:relative;overflow:hidden;border-radius:38%}.social .item i{font-size:1.4em;vertical-align:middle;transform:scale(.8)}.social .item::before{top:90%;left:-110%;content:"";width:120%;height:120%;position:absolute;transform:rotate(45deg)}.social .item i,.social .item::before{transition:all .35s cubic-bezier(.31, -.105, .43, 1.59) 0s}.social .item:focus::before,.social .item:hover::before{top:-10%;left:-10%}.social .item.weibo::before{background-color:#ea716e}.social .item.weibo i{color:#ea716e}.social .item.douban::before{background-color:ouba}.social .item.douban i{color:ouba}.social .item.music::before{background-color:#e60026}.social .item.music i{color:#e60026}.social .item.about::before{background-color:#3b5998}.social .item.about i{color:#3b5998}.social .item:focus i,.social .item:hover i{color:var(--grey-0);transform:scale(1)}#quick{display:none;align-items:center;flex-wrap:wrap;width:15rem;margin:0;padding:0;position:fixed;bottom:.125rem}#quick li{width:25%;min-height:1.875rem;transition:all .2s ease-in-out 0s}#quick li i{cursor:pointer}#quick li a{width:100%;display:block}#quick li:hover{color:var(--primary-color)}#quick li.percent{display:block;background:var(--primary-color);width:0;min-height:.125rem}#sidebar.affix #quick,#sidebar.on #quick{display:flex}#sidebar .tab{position:absolute;display:inline-flex;padding:1.875rem 0 .625rem;margin:0;min-height:1.875rem}#sidebar .tab .item{cursor:pointer;display:inline-flex;font-size:.875em;padding:.3125rem .9375rem;color:var(--grey-5);border-radius:.625rem;text-align:center;text-decoration:none;background-color:rgba(0,0,0,.08);transition:all .2s ease-out 0s}#sidebar .tab .item:nth-child(2){margin:auto .625rem}#sidebar .tab .item span{display:none;word-break:keep-all}#sidebar .tab .item.active span{display:inherit}#sidebar .tab .item.active:hover{box-shadow:0 0 .75rem var(--color-pink)}#sidebar .tab .item::before{font-family:ic;font-weight:400}#sidebar .tab .item.active::before{margin-right:.3125rem}#sidebar.affix .tab{padding-top:.625rem}.contents ol{padding:0 .125rem .3125rem .625rem;text-align:left}.contents ol>ol{padding-left:0}.contents .toc-item{font-size:1em;line-height:1.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contents .toc-child{display:none}.contents .active>.toc-child{display:block}.contents .current>.toc-child{display:block}.contents .current>.toc-child>.toc-item{display:block}.contents .active>a{color:var(--primary-color)}.contents .current>a{color:var(--primary-color)}.contents .current>a:hover{color:var(--primary-color)}.related{font-size:.875em}.related ul{padding:0 .125rem .3125rem 1.25rem;text-align:left}.related ul li{position:relative;line-height:1.8;padding-bottom:.625rem}.related ul li a{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;display:inline-block}.related ul li.active a{color:var(--primary-color)}.related ul li::before{content:"";width:.5rem;height:.5rem;background:var(--primary-color);box-sizing:unset;left:-1.25rem;top:.3125rem;border-radius:100%;position:absolute;border:.1875rem solid var(--grey-1);z-index:1;transition:all .2s ease-in-out 0s}.related ul li:hover::before{background:var(--color-blue)}.related ul li:not(:last-child)::after{content:"";height:100%;width:.125rem;background:var(--color-red-a3);position:absolute;left:-.875rem;top:.5rem}.state{display:flex;justify-content:center;line-height:1.4;margin-top:.625rem;overflow:hidden;text-align:center;white-space:nowrap}.state .item{padding:0 .9375rem}.state .item:not(:first-child){border-left:.0625rem solid var(--grey-4)}.state .item a{border-bottom:none}.state .item .count{display:block;font-size:1.25em;font-weight:600;text-align:center}.state .item .name{color:inherit;font-size:.875em}#footer{color:var(--grey-5);font-size:.875em;background:var(--body-bg-shadow)}#footer .inner{margin:0 auto;width:calc(100% - .625rem);position:relative;padding-left:16.25rem}@media (min-width:1200px){#footer .inner{width:72.5rem}}@media (min-width:1600px){#footer .inner{width:73%}}@media (max-width:991px){#footer .inner{padding-left:0;padding-right:0;width:auto}}.status{width:100%;text-align:center;margin-top:2rem}.languages{display:inline-block;font-size:1.125em;position:relative}.languages .lang-select-label span{margin:0 .5rem}.languages .lang-select{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.with-love{color:pink;display:inline-block;margin:0 .3125rem 0 .125rem}.powered-by,.theme-info{display:inline-block;margin-bottom:.625rem}@media (max-width:567px){.post.block{padding:initial!important}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{padding-left:1.25rem}.md .note h1,.md .note h2,.md .note h3,.md .note h4,.md .note h5,.md .note h6,.md .tabs .tab-content .tab-pane h1,.md .tabs .tab-content .tab-pane h2,.md .tabs .tab-content .tab-pane h3,.md .tabs .tab-content .tab-pane h4,.md .tabs .tab-content .tab-pane h5,.md .tabs .tab-content .tab-pane h6{margin:0 .3125rem}.md img,.md video{margin-bottom:.625rem!important}.md .tabs .tab-content .tab-pane{padding:.625rem .625rem 0 .625rem!important}.post .eof{margin:2.5rem auto 1.25rem!important}}.post.block{padding:0 2rem}.md{font-family:Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;overflow-wrap:break-word;word-wrap:break-word}.md .exturl .ic{font-size:.875em;margin-left:.25rem}.md .button{margin-top:2.5rem;text-align:center}.breadcrumb{display:inline-flex;font-size:.8125em;align-items:center;margin:1.25rem 0;flex-wrap:wrap}.breadcrumb .ic{margin:0 .125rem;color:var(--grey-4)}.breadcrumb .ic:first-child{margin-left:0;margin-right:.3125rem}.breadcrumb span{white-space:pre}.breadcrumb span.current{background-color:var(--color-red-a1);border-radius:.625rem;padding:0 .625rem;transition:all .2s ease-in-out 0s}.breadcrumb span.current span{white-space:normal}.breadcrumb span.current a{color:var(--primary-color)}.breadcrumb span.current:hover{background-color:var(--color-red-a3)}.post header{font-size:1.125em;margin-bottom:.625rem}.post header .title{font-size:1.5em;margin:initial;text-align:center;overflow-wrap:break-word;word-wrap:break-word;padding-bottom:.625rem}.post header .link{display:inline-block;position:relative;vertical-align:top}.post header .link .i-link-alt{font-size:.875em;margin-left:.3125rem}.post header .meta{text-align:center;border-top:.0625rem dashed var(--grey-9-a1);font-family:Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}.post .meta{color:var(--grey-5);font-size:.75em;text-align:right}.post .meta .item{display:inline-block;margin-right:.625rem}.post .meta .icon{margin-right:.1875rem}@media (max-width:991px){.post .meta .icon{display:inline-block}}.post-nav{display:flex;margin-bottom:2.5rem}@media (max-width:767px){.post-nav{flex-direction:column}}.post-nav .item{width:50%}@media (max-width:767px){.post-nav .item{width:100%}}.post-nav .item a{display:flex;flex-direction:column;height:100%;color:var(--header-text-color);padding:1.25rem 2.5rem;background-size:cover;position:relative}.post-nav .item a::before{content:"";position:absolute;width:100%;height:100%;background:linear-gradient(135deg,#434343,#000);opacity:.5;transition:all .2s ease-in-out 0s;z-index:-1;top:0;left:0}.post-nav .item a:hover::before{opacity:.4}.post-nav .item span{font-size:.8125em}.post-nav .item.left h3,.post-nav .item.left span{align-self:flex-start}.post-nav .item.right h3,.post-nav .item.right span{align-self:flex-end;text-align:right}.md .links:last-child,.md .tabs:last-child,.md blockquote:last-child,.md img:last-child,.md p:last-child,.md pre:last-child,.md table:last-child{margin-bottom:0}.md dd ol,.md dd ul,.md ol ol,.md ol ul,.md ul ol,.md ul ul{margin-top:0}.md a{color:var(--primary-color)}.md a:hover{color:var(--color-blue)}.md h1{font-size:1.5em}.md h2{font-size:1.375em}.md h3{font-size:1.25em}.md h4{font-size:1.125em}.md h5{font-size:1em}.md h6{font-size:.875em}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{position:relative;padding-top:.625rem}.md h1:hover .anchor::after,.md h1:hover .anchor::before,.md h2:hover .anchor::after,.md h2:hover .anchor::before,.md h3:hover .anchor::after,.md h3:hover .anchor::before,.md h4:hover .anchor::after,.md h4:hover .anchor::before,.md h5:hover .anchor::after,.md h5:hover .anchor::before,.md h6:hover .anchor::after,.md h6:hover .anchor::before{color:var(--primary-color)}.md h1::after{content:"";display:block;box-sizing:unset;width:100%;height:.0625rem;background:var(--grey-3);padding-right:1.25rem;margin-left:-1.25rem;margin-top:.3125rem}.md .anchor{border-bottom-style:none;color:var(--grey-4);float:right;margin-left:.625rem}.md .anchor:hover{color:inherit}.md .anchor::after,.md .anchor::before{color:var(--grey-4);position:absolute;font-weight:400;transition:all .2s ease-out 0s}.md .active .anchor::after,.md .active .anchor::before{color:var(--primary-color)}.md p{margin:0 0 .8rem}.md blockquote{font-size:90%;background-color:var(--grey-2);margin:1.25rem 0;border-radius:.1875rem}.md blockquote ul{margin:.625rem 0!important}.md blockquote ul>li::before{width:.375rem!important;height:.375rem!important;top:.6875rem!important}.md blockquote ol:last-child,.md blockquote p:last-child,.md blockquote ul:last-child{margin-bottom:0!important}.md>blockquote{border-left-color:var(--primary-color)}.md iframe{margin-bottom:1.25rem}.md .image-info{display:block;text-align:center;font-size:.8125em;color:var(--grey-4)}.md .video-container{height:0;margin-bottom:1.25rem;overflow:hidden;padding-top:75%;position:relative;width:100%}.md .video-container embed,.md .video-container iframe,.md .video-container object{height:100%;left:0;margin:0;position:absolute;top:0;width:100%}.md .kbd,.md kbd{background-color:var(--grey-1);background-image:linear-gradient(var(--grey-2),var(--grey-0),var(--grey-2));border:.0625rem solid var(--grey-4);border-radius:.2rem;box-shadow:.1rem .1rem .2rem var(--grey-9-a1);font-family:inherit;padding:.1rem .3rem;white-space:nowrap}.md mark{background-color:#dbfdad}.md ins{--line-color:var(--note-hover, var(--primary-color));text-decoration:none;border-bottom:.125rem solid var(--line-color)}.md ins.wavy{-webkit-text-decoration-style:wavy;text-decoration-style:wavy;-webkit-text-decoration-line:underline;text-decoration-line:underline;-webkit-text-decoration-color:var(--line-color);text-decoration-color:var(--line-color);border-bottom:none}.md ins.dot{border-bottom:.2rem dotted var(--line-color)}.md s{color:var(--grey-5);-webkit-text-decoration-color:var(--note-hover,var(--grey-5));text-decoration-color:var(--note-hover,var(--grey-5))}.md ruby{padding:0 .3125rem}.md .katex-display{overflow-x:scroll;overflow-y:hidden}.md .spoiler:not(.bulr){background-color:var(--text-color);color:var(--text-color);text-shadow:none;transition:color .3s;padding:0 .1875rem}.md .spoiler:not(.bulr):hover{color:#fff}.md .bulr{text-shadow:rgba(0,0,0,.7) 0 0 .625rem;color:transparent}.md .rainbow{background-image:linear-gradient(to left,#ff4500,orange,gold,#90ee90,#0ff,#1e90ff,#9370db,#ff69b4,#ff4500);background-size:110vw;-webkit-background-clip:text;background-clip:text;color:transparent;animation:rainbow 60s linear infinite}.article .md .anchor::after,.article .md .anchor::before{content:"H";font-family:Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;left:-1.875rem;top:1rem;width:1.25rem;height:1.5625rem;text-align:right;visibility:visible;font-size:80%}@media (max-width:567px){.article .md .anchor::after,.article .md .anchor::before{left:-.625rem}}.article .md .anchor::after{font-size:50%;left:-1.375rem;line-height:3}@media (max-width:567px){.article .md .anchor::after{left:-.1875rem}}.article .md h1 .anchor::after{content:" 1 "}.article .md h2 .anchor::after{content:" 2 "}.article .md h3 .anchor::after{content:" 3 "}.article .md h4 .anchor::after{content:" 4 "}.article .md h5 .anchor::after{content:" 5 "}.article .md h6 .anchor::after{content:" 6 "}@keyframes rainbow{to{background-position:-2000vw}}.rtl.body a,.rtl.body h1,.rtl.body h2,.rtl.body h3,.rtl.body h4,.rtl.body h5,.rtl.body h6,.rtl.body li,.rtl.body ol,.rtl.body p,.rtl.body ul{direction:rtl;font-family:UKIJ Ekran}.rtl.title{font-family:UKIJ Ekran}.post footer::before{content:"";width:100%;height:.0625rem;background:var(--grey-3);display:block;margin:1.25rem auto 0}.post .tags{text-align:left;margin-top:.625rem;font-size:.75em}.post .tags a{display:inline-block;position:relative;padding:0 .3125rem;border-radius:.3125rem;background:var(--note-bg);color:var(--note-text)}.post .tags a:not(:last-child){margin-right:.625rem}.post .tags a:before{content:'';position:absolute;bottom:0;height:100%;width:0;right:0;background:var(--color-red-a1);border-radius:.25rem;transition:all .2s ease-in-out 0s}.post .tags a:hover{color:var(--primary-color)}.post .tags a:hover:before{width:104%;left:-2%}.reward{margin:1.25rem auto;padding:.625rem 0;text-align:center}.reward button{background:var(--primary-color);border:0;border-radius:.3125rem;color:var(--grey-0);cursor:pointer;line-height:2;outline:0;padding:0 .9375rem;vertical-align:text-top}.reward button:hover{background:var(--primary-color)}.reward button i{margin-right:.3125rem}.reward p{font-size:.8125em;color:var(--grey-5);margin:0}#qr{padding-top:1.25rem;display:none}#qr a{border:0}#qr img{display:inline-block;max-width:100%}#qr p{text-align:center}#copyright{background:var(--grey-2);padding:1rem 2rem;position:relative;font-size:.75em;border-radius:.625rem;color:var(--grey-6)}#copyright li::before{font-family:ic;font-weight:400;color:var(--grey-5);margin-right:.3125rem;font-size:1.1rem;line-height:.75rem;vertical-align:-.0667rem}.cards .item,.segments>.item{position:relative;color:inherit;width:calc(50% - 2rem);min-width:calc(50% - 2rem);height:14rem;margin:1rem;opacity:0}.cards .item.show,.segments>.item.show{opacity:1}@media (max-width:767px){.cards .item,.segments>.item{width:calc(100% - 1rem)!important;min-width:calc(100% - 1rem)!important;margin:1rem .5rem!important}}.index.wrap .btn{position:absolute;bottom:0;right:0;padding:.3rem 1rem;border-radius:1rem 0;color:var(--grey-0);background-image:linear-gradient(to right,var(--color-pink) 0,var(--color-orange) 100%)}.index.wrap .btn::before{position:absolute;display:block;content:'';height:calc(100% - 1rem);width:calc(100% - 1rem);border-radius:5rem;left:.5rem;top:.8rem;box-shadow:0 0 .6rem .6rem var(--color-pink-a3);background-color:var(--color-pink-a3)}.index.wrap .btn:hover{transform:translateZ(2.5rem)}.index.wrap .btn:hover::before{transform:translateZ(-2.5rem)}.index.wrap .active .btn{transform-style:preserve-3d;transform:translateZ(2rem);-webkit-backface-visibility:hidden;backface-visibility:hidden}.index.wrap .active .btn::before{transform-style:preserve-3d;transform:translateZ(-2rem);-webkit-backface-visibility:hidden;backface-visibility:hidden}.index.wrap .meta{font-size:.8125em;color:var(--grey-5)}.index.wrap .meta .ic{margin-right:.0625rem}.index.wrap .meta .item+.item{margin-left:.625rem}.index.wrap .meta.footer{position:absolute;bottom:.5rem;max-width:calc(100% - 7rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;justify-content:flex-start}.index.wrap .meta.footer span{margin-right:.5rem}.cards{display:flex;margin:0 auto;align-items:center;flex-wrap:wrap;justify-content:space-between}.cards.hide .item{display:none}.cards .item{perspective:62.5rem}.cards .item.show{display:block!important}.cards .item .cover,.cards .item .info{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:.375rem;height:100%;width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d;transition:ease-in-out .6s}.cards .item .cover{background-position:center;background-size:cover;padding:.5rem 1rem;font-size:1em;color:var(--header-text-color);overflow:hidden;transform:rotateY(0)}.cards .item .cover .title{margin:0;white-space:normal;text-align:center}.cards .item .cover::before{position:absolute;display:block;content:'';top:0;left:0;right:0;bottom:0;background-image:linear-gradient(135deg,#434343 0,#000 100%);opacity:.25;z-index:-1}.cards .item .cover span{font-size:.75em;position:absolute;right:.9375rem;top:.625rem;padding:0 .3125rem;border-radius:.3125rem;box-shadow:0 0 .3125rem .0625rem rgba(0,0,0,.6);background:rgba(0,0,0,.5)}.cards .item .info{background-color:var(--grey-0);transform:rotateY(-180deg);padding:1rem 1.5rem 4rem;justify-content:space-between}@media (max-width:767px){.cards .item .info{padding:1rem 1rem 4rem}}.cards .item .info .ribbon{left:-2.5rem;margin-bottom:.8rem;max-width:calc(100% + 2rem)}@media (max-width:767px){.cards .item .info .ribbon{left:-2rem}}.cards .item:nth-child(2n) .info{transform:rotateY(180deg)}.cards .item.active .cover{transform:rotateY(180deg)}.cards .item.active .info{transform:rotateY(0);box-shadow:0 0 2rem var(--box-bg-shadow)}.cards .item:nth-child(2n).active .cover{transform:rotateY(-180deg)}.cards .item .title .ic{font-size:80%}.cards .item ul.posts{display:flex;flex-wrap:wrap;justify-content:space-between;align-content:baseline;min-height:5rem;overflow:hidden}.cards .item ul.posts li{width:45%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--primary-color)}.segments{display:flex;flex-direction:column;justify-content:center;align-items:center}.segments>.item{display:flex;border-radius:.625rem;width:calc(100% - 2rem);min-width:calc(100% - 2rem);border-radius:.5rem;box-shadow:0 .625rem 1.875rem -.9375rem var(--box-bg-shadow);transition:all .2s ease-in-out 0s}@media (max-width:767px){.segments>.item{flex-direction:column;height:-moz-fit-content;height:fit-content;max-height:-moz-fit-content;max-height:fit-content}}.segments>.item:hover{box-shadow:0 0 2rem var(--box-bg-shadow)}.segments>.item:hover .cover img{transform:scale(1.05) rotate(1deg)}.segments .cover{width:50%;margin-right:1.5rem;-webkit-clip-path:polygon(0 0,92% 0%,100% 100%,0% 100%);clip-path:polygon(0 0,92% 0%,100% 100%,0% 100%);border-radius:.625rem 0 0 .625rem;overflow:hidden}@media (max-width:767px){.segments .cover{width:100%;height:14rem;margin:auto;-webkit-clip-path:polygon(0 0,100% 0,100% 92%,0 100%);clip-path:polygon(0 0,100% 0,100% 92%,0 100%);border-radius:.625rem .625rem 0 0}}.segments .cover img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:all .2s ease-in-out 0s}.segments .info{position:relative;width:50%;padding:1rem 1.5rem 3rem 0;perspective:62.5rem}@media (max-width:767px){.segments .info{width:100%;height:14rem;padding:0 1rem 3rem}}.segments .info .meta{display:flex;justify-content:flex-end;margin:0}@media (max-width:767px){.segments .info .meta .item:not(:first-child){display:none}}.segments .info h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin:.625rem 0;color:var(--primary-color)}.segments .info .excerpt{overflow:hidden;font-size:.875em;max-height:5rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;text-overflow:ellipsis}.segments>.item:nth-child(2n){flex-direction:row-reverse}@media (max-width:767px){.segments>.item:nth-child(2n){flex-direction:column}}.segments>.item:nth-child(2n) .cover{margin-right:auto;margin-left:1.5rem;-webkit-clip-path:polygon(0 0%,100% 0%,100% 100%,8% 100%);clip-path:polygon(0 0%,100% 0%,100% 100%,8% 100%);border-radius:0 .625rem .625rem 0}@media (max-width:767px){.segments>.item:nth-child(2n) .cover{width:100%;margin:auto;-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 92%);clip-path:polygon(0 0,100% 0,100% 100%,0 92%);border-radius:.625rem .625rem 0 0}}.segments>.item:nth-child(2n) .info{padding:1rem 0 3rem 1.5rem}@media (max-width:767px){.segments>.item:nth-child(2n) .info{padding:0 1rem 3rem}}.segments>.item:nth-child(2n) .info .meta{justify-content:flex-start}.segments>.item:nth-child(2n) .btn{left:0;right:auto;border-radius:0 1rem;background-image:linear-gradient(to right,var(--color-orange) 0,var(--color-pink) 100%)}.segments>.item:nth-child(2n) .meta.footer{right:.5rem;justify-content:flex-start}.segments>.item:nth-child(2n):hover .cover img{transform:scale(1.05) rotate(-1deg)}.collapse small{color:var(--grey-4);margin:auto .3125rem}.collapse .item{position:relative;padding:1.25rem 1.875rem;margin:0}.collapse .item::before{content:"";position:absolute;z-index:1;transition:all .2s ease-in-out 0s;box-sizing:unset;top:1.9rem;left:0;width:.6rem;height:.6rem;border:.15rem solid var(--primary-color);border-radius:50%;background:var(--grey-1)}.collapse .item:not(:last-child):not(.title)::after{content:"";position:absolute;top:1.9rem;bottom:-1.9rem;left:.35rem;border-left:.2rem solid var(--color-red-a3)}.collapse .item:hover::before{border-color:var(--color-blue)}.collapse .item.header::after{border-left-style:dashed!important}.collapse .item.header .cheers{display:block}.collapse .item.section::before{width:.4rem;height:.4rem;margin-left:.1rem}.collapse .item.header a,.collapse .item.section a,.collapse .item.title a{border-bottom:.0625rem dashed var(--grey-4)}.collapse .item.header:hover a,.collapse .item.section:hover a,.collapse .item.title:hover a{border-bottom-color:var(--color-blue)}.collapse .item.normal{display:flex;flex-wrap:wrap;align-items:center;padding:.625rem 1.875rem}.collapse .item.normal::before{top:1.4rem;width:.2rem;height:.2rem;margin-left:.2rem;background:var(--primary-color)}.collapse .item.normal:hover::before{background:var(--color-blue)}.collapse .item.normal .meta{display:inline;font-size:.75em;margin-right:.625rem}.collapse .item.normal .meta time{color:var(--grey-4)}.collapse .item.normal .title{display:inline}.collapse .item.normal .title a{color:var(--primary-color)}.collapse .item.normal .title a:hover{color:var(--color-blue)}.collapse .item.normal .title .i-link-alt{font-size:.875em;margin-left:.3125rem}.tag.cloud{text-align:center}.tag.cloud a{display:inline-block;margin:.625rem}.tag.cloud a:hover{color:var(--primary-color)!important}.page .notfound{width:18.75rem;height:22.625rem;background:url("../images/404.png") no-repeat center bottom;text-align:center;margin:6.25rem auto}.page .anchor::before{font-family:ic;font-weight:400;color:var(--grey-4);position:absolute;left:-1.5625rem;margin-top:.25rem;visibility:visible}@media (max-width:567px){.page .anchor::before{left:-.1875rem}}.page .body h1 .anchor::before{font-size:.875em;margin-top:.15rem;color:pink;left:-1.875rem}@media (max-width:567px){.page .body h1 .anchor::before{left:-.3125rem}}.page .body h2 .anchor::before{font-size:.8125em;color:var(--color-pink)}.page .body h3 .anchor::before{font-size:.75em;color:var(--color-orange)}.pace{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:var(--primary-color);position:fixed;z-index:2000;top:0;right:100%;width:100%;height:.125rem}#loading{background-color:var(--grey-1)}.cat{position:relative;display:block;width:15em;height:100%;font-size:10px;margin:auto;animation:2.74s linear infinite loading-cat}.cat *{box-sizing:content-box}.cat .body,.cat .foot,.cat .head,.cat .paw{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;border-radius:50%;width:15em;height:15em}.cat .body{background-image:radial-gradient(transparent 0,transparent 35%,#383c4b 35%,#383c4b 39%,#eda65d 39%,#eda65d 46%,#f2c089 46%,#f2c089 60%,#eda65d 60%,#eda65d 67%,#383c4b 67%,#383c4b 100%)}.cat .foot:before,.cat .head:before{background-image:radial-gradient(transparent 0,transparent 35%,#383c4b 35%,#383c4b 39%,#eda65d 39%,#eda65d 67%,#383c4b 67%,#383c4b 100%)}.cat .head:before{content:'';width:100%;height:100%;position:absolute;border-radius:50%;clip-path:polygon(100% 20%,50% 50%,70% -10%);-webkit-clip-path:polygon(100% 20%,50% 50%,70% -10%)}.cat .head:after{content:'';width:4.125em;height:2.5em;position:absolute;top:.8125em;right:3.9375em;background-image:linear-gradient(var(--grey-1) 65%,transparent 65%),radial-gradient(var(--grey-1) 51%,#383c4b 55%,#383c4b 68%,transparent 70%);transform:rotate(-66deg)}.cat .head .face{width:5em;height:3.75em;left:9.0625em;top:1.8125em;position:absolute;transform:rotate(-47deg);background:radial-gradient(circle,#f2c089 0,#f2c089 23%,transparent 23%) -.1875em 1.0625em no-repeat,radial-gradient(circle,#383c4b 0,#383c4b 6%,transparent 6%) .75em -.75em no-repeat,radial-gradient(circle,#383c4b 0,#383c4b 6%,transparent 6%) -.75em -.75em no-repeat,radial-gradient(#eda65d 0,#eda65d 15%,transparent 15%) 0 -.6875em no-repeat,radial-gradient(circle,transparent 5%,#383c4b 5%,#383c4b 10%,transparent 10%) -.1875em -.3125em no-repeat,radial-gradient(circle,transparent 5%,#383c4b 5%,#383c4b 10%,transparent 10%) .1875em -.3125em no-repeat,radial-gradient(circle,#eda65d 45%,transparent 45%) 0 -.1875em,linear-gradient(transparent 35%,#383c4b 35%,#383c4b 41%,transparent 41%,transparent 44%,#383c4b 44%,#383c4b 50%,transparent 50%,transparent 53%,#383c4b 53%,#383c4b 59%,transparent 59%)}.cat .foot:after,.cat .foot:before{content:'';width:100%;height:100%;position:absolute}.cat .foot:before{border-radius:50%;clip-path:polygon(50% 50%,0% 50%,0% 25%);-webkit-clip-path:polygon(50% 50%,0% 50%,0% 25%)}.cat .foot .tummy-end{width:1.5em;height:1.5em;position:absolute;border-radius:50%;background-color:#f2c089;left:1.1875em;top:6.5625em}.cat .foot .bottom{width:2.1875em;height:.9375em;position:absolute;top:4.875em;left:.75em;border:.375em solid #383c4b;border-bottom:0;border-radius:50%;transform:rotate(21deg);background:#eda65d}.cat .foot:after,.cat .hands,.cat .legs{width:.625em;height:1.5625em;position:absolute;border:.375em solid #383c4b;background-color:#eda65d}.cat .hands{border-top:0;border-radius:0 0 .75em .75em}.cat .hands.left{top:4.3em;left:13.1875em;transform:rotate(-20deg)}.cat .hands.right{top:5.125em;left:10.975em;transform:rotate(-25deg)}.cat .legs{border-bottom:0;border-radius:.75em .75em 0 0}.cat .legs.left{top:4.0625em;left:3.125em;transform:rotate(25deg)}.cat .legs.right{top:3.3125em;left:.75em;transform:rotate(22deg)}.cat .foot:after{width:.9em;height:2.5em;top:2.625em;left:2.5em;z-index:-1;transform:rotate(25deg);background-color:#c6823b;border-bottom:0;border-radius:.75em .75em 0 0}.cat .body{animation:2.74s linear infinite body}.cat .foot{animation:2.74s linear infinite foot}.cat:hover{animation-play-state:paused}.cat:hover .body,.cat:hover .foot{animation-play-state:paused}.cat:active{animation-play-state:running}.cat:active .body,.cat:active .foot{animation-play-state:running}@keyframes body{0%{-webkit-clip-path:polygon(50% 50%,0% 50%,0% 100%,100% 100%,100% 20%);clip-path:polygon(50% 50%,0% 50%,0% 100%,100% 100%,100% 20%)}10%{-webkit-clip-path:polygon(50% 50%,30% 120%,50% 100%,100% 100%,100% 20%);clip-path:polygon(50% 50%,30% 120%,50% 100%,100% 100%,100% 20%)}20%{-webkit-clip-path:polygon(50% 50%,100% 90%,120% 90%,100% 100%,100% 20%);clip-path:polygon(50% 50%,100% 90%,120% 90%,100% 100%,100% 20%)}40%{-webkit-clip-path:polygon(50% 50%,100% 45%,120% 45%,120% 50%,100% 20%);clip-path:polygon(50% 50%,100% 45%,120% 45%,120% 50%,100% 20%)}50%{-webkit-clip-path:polygon(50% 50%,100% 45%,120% 45%,120% 50%,100% 20%);clip-path:polygon(50% 50%,100% 45%,120% 45%,120% 50%,100% 20%)}65%{-webkit-clip-path:polygon(50% 50%,100% 65%,120% 65%,120% 50%,100% 20%);clip-path:polygon(50% 50%,100% 65%,120% 65%,120% 50%,100% 20%)}80%{-webkit-clip-path:polygon(50% 50%,75% 130%,120% 65%,120% 50%,100% 20%);clip-path:polygon(50% 50%,75% 130%,120% 65%,120% 50%,100% 20%)}90%{-webkit-clip-path:polygon(50% 50%,-20% 110%,50% 120%,100% 100%,100% 20%);clip-path:polygon(50% 50%,-20% 110%,50% 120%,100% 100%,100% 20%)}100%{-webkit-clip-path:polygon(50% 50%,0% 50%,0% 100%,100% 100%,100% 20%);clip-path:polygon(50% 50%,0% 50%,0% 100%,100% 100%,100% 20%)}}@keyframes loading-cat{0%{transform:rotate(0)}10%{transform:rotate(-80deg)}20%{transform:rotate(-180deg)}40%{transform:rotate(-245deg)}50%{transform:rotate(-250deg)}68%{transform:rotate(-300deg)}90%{transform:rotate(-560deg)}100%{transform:rotate(-720deg)}}@keyframes foot{0%{transform:rotate(-10deg)}10%{transform:rotate(-100deg)}20%{transform:rotate(-145deg)}35%{transform:rotate(-190deg)}50%{transform:rotate(-195deg)}70%{transform:rotate(-165deg)}100%{transform:rotate(-10deg)}}#search{position:fixed;background:var(--nav-bg);left:0;top:0;width:100%;height:100%;padding:1.25rem;z-index:999;display:none}#search>.inner{border-radius:0;height:100%;margin:0 auto;width:43.75rem;text-shadow:none}@media (max-width:767px){#search>.inner{width:100%}}#search>.inner .close-btn,#search>.inner .icon{color:var(--grey-5);font-size:1.125rem;padding:0 .625rem}#search>.inner .close-btn{cursor:pointer}#search>.inner .close-btn:hover i{color:var(--grey-7)}#search>.inner .header{display:flex;background:var(--grey-1-a5);border-radius:3rem;padding:.5rem 1.5rem;margin-bottom:1.25rem;border:.0625rem solid var(--grey-5);font-size:1.125em;align-items:center}#search>.inner .search-input-container{flex-grow:1}#search>.inner .search-input-container form{padding:.125rem}#search>.inner .search-input{background:0 0;border:0;outline:0;width:100%}#search>.inner .search-input::-webkit-search-cancel-button{display:none}#search .results{height:calc(100% - 6.25rem);padding:1.875rem 1.875rem .3125rem;border-radius:.3125rem;background:var(--grey-1-a7) url("../images/search.png") no-repeat bottom right;color:var(--text-color)}#search .results .inner{position:relative;height:100%;overflow:hidden}#search .results hr{margin:.625rem 0}.algolia-powered{float:right;background:url("../images/algolia_logo.svg") no-repeat;display:inline-block;height:1.125rem;width:4.25rem;margin:.5rem auto}#search-hits{overflow-y:scroll;height:calc(100% - 8.125rem)}#search-hits ol{padding:0}#search-hits .item{margin:.9375rem 0}#search-hits .item a{border-bottom:.0625rem dashed var(--grey-4);display:block;transition:all .2s ease-in-out 0s}#search-hits .item span{font-size:70%;display:block}#search-hits .item span i{color:var(--grey-4);margin:0 .3125rem}#search-pagination ul{padding:0;margin:1.25rem 0}#search-pagination .pagination{opacity:1;padding:0}#search-pagination .pagination-item{display:inline-block}#search-pagination .page-number{transition:all .2s ease-in-out 0s}#search-pagination .current .page-number{cursor:default}#search-pagination .disabled-item{color:var(--grey-4);cursor:default}#search-pagination .disabled-item .page-number:hover{color:var(--grey-4);background:0 0;box-shadow:none}#neko{display:none;background:linear-gradient(to top,#fddb92 0,#d1fdff 80%)}#neko .planet{position:fixed;left:-50%;top:-50%;width:200%;height:200%;animation:rotate 2s cubic-bezier(.7,0,0,1);transform-origin:center bottom}#neko:before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;opacity:0;background:linear-gradient(to top,#30cfd0 0,#330867 100%);transition:2s ease all}#neko .moon,#neko .sun{position:absolute;border-radius:100%;left:55%;top:32%}#neko .sun{height:40px;width:40px;background:#ffee94;box-shadow:0 0 40px #ffee94;opacity:1}#neko .moon{height:24px;width:24px;background:#eee;box-shadow:0 0 20px #fff;opacity:0}#neko .body{display:block;position:absolute;bottom:-20px;height:140px;width:135px;left:50%;margin-left:-100px;background:#777;transition:all .25s ease-in-out;animation:slideUpBigIn 1s}#neko .body:after,#neko .body:before{position:absolute;content:"";width:0;height:0;border-bottom:20px solid #777;top:-20px;transition:all .25s ease-in-out}#neko .body:before{border-left:0 solid transparent;border-right:30px solid transparent;left:0}#neko .body:after{border-right:0px solid transparent;border-left:30px solid transparent;right:0}#neko .body .eyes{display:block;position:absolute;background:#ffee94;height:40px;width:40px;border-radius:100%;bottom:80px}#neko .body .eyes.left{left:12px}#neko .body .eyes.right{right:12px}#neko .body .eyes .pupil,#neko .body .nose{display:block;position:relative;background:#ffb399;border-radius:100%;margin:0 auto}#neko .body .eyes .pupil{height:100%;width:5px;transition:width 1s .5s ease-in-out}#neko .body .nose{top:45px;height:10px;width:10px}#neko.dark:before{opacity:1}#neko.dark .sun{opacity:0}#neko.dark .moon{opacity:1}#neko.dark .body{background:#444}#neko.dark .body:before{border-bottom:20px solid #444}#neko.dark .body:after{border-bottom:20px solid #444}#neko.dark .body .eyes .pupil{height:90%;width:34px;margin:5% auto}.widgets{display:flex;z-index:1;background:var(--body-bg-shadow);justify-content:space-around}.widgets>div{width:calc(50% - 2rem);padding:1rem}@media (max-width:767px){.widgets{flex-direction:column-reverse}.widgets>div{width:calc(100% - 1rem)!important}}.widgets ul{counter-reset:counter}.widgets .item{padding:.5rem 0 .5rem 2rem;border-bottom:.0625rem dashed var(--grey-4);position:relative}.widgets .item::before{counter-increment:counter;content:counter(counter);position:absolute;left:0;font-size:1.5em;color:var(--grey-4);line-height:1.2;text-align:right;width:1em}.widgets .item .breadcrumb,.widgets .item span{display:block;text-overflow:ellipsis;overflow:hidden;max-height:2rem;white-space:nowrap}.widgets .item .breadcrumb{margin:0;display:flex;max-height:1.2rem}.katex,.katex-display{-webkit-user-select:all;-moz-user-select:all;user-select:all}.medium-zoom-overlay{z-index:9998}.medium-zoom-image--opened{z-index:9999}.operation{color:var(--grey-5);cursor:pointer;position:absolute;padding:.125rem .375rem;right:.125rem;top:.45rem;font-size:.8125em}.operation span{transition:all .2s ease-in-out 0s;margin:0 .3125rem}.operation span:hover{color:var(--grey-7)}.highlight{background:var(--grey-2);color:var(--grey-7);line-height:1.6;margin:1.25rem auto}.code-container,code,pre{font-family:Inconsolata,consolas,Menlo,-apple-system,"PingFang SC","Microsoft YaHei";font-size:1em}:not(td)>pre{background:var(--grey-1);border:.0625rem solid var(--grey-3);border-radius:.3125rem;padding:1rem;margin-bottom:.8rem;line-break:anywhere;white-space:break-spaces}:not(td)>pre code{background:0 0;color:currentColor}:not(pre)>code{color:var(--primary-color);border-radius:.3rem;border:.0625rem solid rgba(0,0,0,.1);background-color:var(--grey-0);padding:.2rem .3rem;overflow-wrap:break-word;word-wrap:break-word}.highlight{position:relative;overflow:hidden;border-radius:.5rem;box-shadow:0 .3125rem .625rem -.125rem var(--grey-9-a1)}.highlight ::-moz-selection{background:var(--grey-4)}.highlight ::selection{background:var(--grey-4)}.highlight::before{content:" ";position:absolute;border-radius:50%;background:#fc625d;width:.75rem;height:.75rem;left:.75rem;top:.8125rem;box-shadow:1.25rem 0 #fdbc40,2.5rem 0 #35cd4b}.highlight figcaption{color:var(--grey-4);display:inline-flex;font-size:.875em;font-weight:700;padding:0 6rem 0 5rem;min-height:2.5rem;width:100%;text-align:center;align-items:center;justify-content:space-between;background-color:var(--grey-3);margin-bottom:.625rem}.highlight figcaption::before{content:attr(data-lang);text-transform:Capitalize}.highlight figcaption a,.highlight figcaption span{display:block;margin-left:.625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.highlight figcaption a{color:var(--grey-5)}.highlight figcaption a:hover{color:var(--grey-6)}.highlight.fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;min-width:100%;z-index:9999;margin:0;border-radius:0;overflow-y:scroll;overflow-x:hidden}.highlight.fullscreen .show-btn{position:fixed}.highlight.breakline .code-container table{line-break:anywhere;white-space:break-spaces}.highlight.breakline .code-container table pre{white-space:break-spaces}.code-container{overflow-x:scroll;overflow-y:hidden}.code-container::after{content:"";display:block;height:.625rem;width:100%}.code-container table{white-space:pre;border-spacing:0;width:100%}.code-container tr{background-color:inherit}.code-container tr:hover td{background-color:var(--grey-3)}.code-container td{position:relative;padding:unset;vertical-align:unset;border:unset;transition:all .2s ease-in-out 0s}.code-container td pre::before{content:" "}.code-container td:first-child{position:absolute;background:var(--grey-2);text-align:right;overflow-x:visible!important;overflow-y:hidden;left:0;width:2.5rem;padding-right:.9375rem;color:var(--color-grey);z-index:1}.code-container td:nth-child(2){padding-left:3rem}.code-container td:last-child{padding-right:.9375rem}.code-container td[data-num]::before{content:attr(data-num)}.code-container td[data-command]::before{content:attr(data-command) " ";color:var(--grey-5);display:block;letter-spacing:-1px;padding-right:.5rem;text-align:right;white-space:nowrap}.code-container td[data-command]+td{padding-left:.5rem;border-left:1px solid var(--grey-4)}.code-container .marked td{background-color:var(--grey-3)}.code-container .marked:hover td:last-child{background-color:var(--color-red-a1)}.code-container .show-btn{position:absolute;cursor:pointer;left:0;bottom:0;width:100%;height:2.875rem;text-align:center;color:var(--text-color);background-image:linear-gradient(to bottom,var(--grey-2-a0) 0,var(--grey-2) 80%);z-index:1}.code-container .show-btn::after{content:"";display:block;width:100%;height:1rem;background:var(--grey-2)}.code-container .show-btn .ic{margin-top:1rem}.code-container .show-btn.open{background:0 0;bottom:.5rem}.code-container .show-btn.open::after{display:none}.code-container .deletion{background:var(--color-pink-light)}.code-container .addition{background:var(--color-cyan-light)}.code-container .meta{color:var(--color-yellow);-moz-user-select:none;-webkit-user-select:none;user-select:none}.code-container .comment,.code-container .punctuation{color:var(--grey-5)}.code-container .attribute,.code-container .css .class,.code-container .css .id,.code-container .css .pseudo,.code-container .function,.code-container .html .doctype,.code-container .name,.code-container .regexp,.code-container .ruby .constant,.code-container .tag,.code-container .variable,.code-container .xml .doctype,.code-container .xml .pi,.code-container .xml .tag .title{color:var(--color-red)}.code-container .built_in,.code-container .builtin-name,.code-container .command,.code-container .constant,.code-container .literal,.code-container .number,.code-container .params,.code-container .preprocessor{color:var(--color-orange)}.code-container .css .rules .attribute,.code-container .formula,.code-container .header,.code-container .inheritance,.code-container .ruby .class .title,.code-container .ruby .symbol,.code-container .special,.code-container .string,.code-container .symbol,.code-container .value,.code-container .xml .cdata{color:var(--color-green)}.code-container .css .hexcolor,.code-container .namespace,.code-container .title{color:var(--color-aqua)}.code-container .class-name,.code-container .coffeescript .title,.code-container .javascript .title,.code-container .perl .sub,.code-container .python .decorator,.code-container .python .title,.code-container .ruby .function .title,.code-container .ruby .title .keyword{color:var(--color-blue)}.code-container .javascript .function,.code-container .keyword{color:var(--color-purple)}.md li{position:relative;margin:.2rem 0}.md li:before{transition:all .2s ease-in-out 0s}.md li p{margin:0}.md dl,.md ol,.md ul{margin:.5em 0 .5em;padding:.1em .2em .1em 1.4em}.md dl dt::before,.md ul>li::before{content:"";position:absolute;width:.4em;height:.4em;background:var(--primary-color);border-radius:50%;top:.85em;left:-1em}.md dl dt:hover::before,.md ul>li:hover::before{background:var(--color-pink)}.md ol:not([start]){counter-reset:counter}.md ol>li::before{counter-increment:counter;content:counter(counter);position:absolute;width:1.4em;height:1.4em;border-radius:50%;text-align:center;font-size:.8em;line-height:1.4;top:.5em;left:-1.8em;background:var(--primary-color);color:var(--grey-1);cursor:pointer}.md ol>li:hover::before{color:var(--grey-1);background:var(--color-pink)}.md dl dt{position:relative}.md dl dd{padding-left:.9375em}.md ul li.nodot::before{width:auto;height:auto;background:0 0!important;border:none!important;position:relative;top:0!important;left:0!important}.md ul li.task-list-item::before{width:auto;height:auto;background:0 0!important;border:none!important;position:relative;top:0!important;left:0!important}.md ul li.task-list-item input[type=checkbox]{display:none}.md ul li.task-list-item input[type=checkbox]+label::before{font-family:ic;font-weight:400;color:var(--grey-4);display:inline-block;margin-right:.625em}.md ul li.task-list-item input[type=checkbox]:checked+label::before{color:var(--note-text,var(--primary-color))}.md li ul>li::before{background:var(--grey-1);border:1px solid var(--primary-color)}.md dd ol>li::before,.md li ol>li::before{content:counter(counter) ".";background:0 0;color:var(--primary-color);font-size:1em;line-height:1;width:auto}.md dd ol>li:hover::before,.md li ol>li:hover::before{background:0 0;color:var(--color-pink)}.md ol>li.quiz.show.true::before,.md ol>li.quiz>ul.options li.right::before{color:var(--color-green)}.md ol>li.quiz.show.true::after,.md ol>li.quiz>ul.options li.right::after{color:var(--color-green);animation:fadeIn .5s}.md ol>li.quiz.show.false::before,.md ol>li.quiz>ul.options li.wrong::before{color:var(--color-red)}.md ol>li.quiz.show.false::after,.md ol>li.quiz>ul.options li.wrong::after{color:var(--color-red);animation:fadeIn .5s}.md ol>li.quiz{margin:.625rem 0}.md ol>li.quiz::before{counter-increment:counter;content:counter(counter) ".";position:absolute;color:var(--primary-color);text-align:right;width:2rem;left:-2.2rem;height:auto;background:0 0!important;border:none!important;font-size:1em}.md ol>li.quiz>p{margin:0;cursor:pointer}.md ol>li.quiz>p:first-child::before{content:"[" attr(data-type) "]";font-size:.75em;color:var(--grey-4);margin:auto .3125rem}.md ol>li.quiz.mistake>p:first-child::before{color:var(--primary-color)}.md ol>li.quiz .gap{display:inline-block;min-width:2.5rem;text-align:center;padding:0 .625rem;text-indent:-624.9375rem}.md ol>li.quiz .gap::after{display:block;content:"";background:var(--text-color);width:calc(100% + 1.25rem);height:.0625rem;margin-bottom:-.0625rem;margin-left:-.625rem}.md ol>li.quiz.show.fill .gap{text-indent:0}.md ol>li.quiz::after,.md ol>li.quiz::before{transition:all .2s ease-in-out 0s}.md ol>li.quiz blockquote{display:none}.md ol>li.quiz blockquote .mistake{display:block;border:.1875rem dashed var(--grey-4);padding:.625rem 1.25rem;background:var(--grey-3);margin:.3125rem}.md ol>li.quiz blockquote .mistake::before{display:block;content:"[" attr(data-type) "]";font-size:.8125em;color:var(--grey-4)}.md ol>li.quiz .note{display:none;padding:0;margin:0;background:0 0;border:none;border-radius:inherit;color:unset;font-size:inherit;filter:unset}.md ol>li.quiz.show .note,.md ol>li.quiz.show blockquote{display:block}.md ol>li.quiz ul.options{-webkit-padding-start:0.625rem;padding-inline-start:0.625rem}.md ol>li.quiz ul.options li::before{color:var(--color-grey);margin-right:.625rem;transition:all .2s ease-in-out 0s;width:auto;height:auto;background:0 0!important;border:none!important;position:relative;top:0!important;left:0!important}.md ol>li.quiz ul.options li:first-child::before{content:"A."}.md ol>li.quiz ul.options li:nth-child(2)::before{content:"B."}.md ol>li.quiz ul.options li:nth-child(3)::before{content:"C."}.md ol>li.quiz ul.options li:nth-child(4)::before{content:"D."}.md ol>li.quiz ul.options li:nth-child(5)::before{content:"E."}.md ol>li.quiz>ul.options li{cursor:pointer}.md ol>li.quiz>ul.options li::after{font-family:ic;font-weight:400;position:absolute;left:-1.5625rem;top:0}.md ol>li.quiz.show.false::before,.md ol>li.quiz.show.true::before{visibility:hidden}.md ol>li.quiz.show.false::after,.md ol>li.quiz.show.true::after{font-family:ic;font-weight:400;position:absolute;left:-1.2rem;top:.25rem}.links{display:flex;flex-wrap:wrap;font-size:.9rem}.links .item{position:relative;display:inline-flex;justify-self:center;align-items:center;line-height:1.5;width:calc(50% - 2rem);padding:.5rem 1rem;margin:1rem;transition:all .2s ease-in-out 0s;border-radius:.5rem;border:.0625rem solid var(--grey-2);box-shadow:0 .625rem 1.875rem -.9375rem var(--box-bg-shadow);--bg-color:var(--block-color, #666)}.links .item .image{display:block;width:4rem;height:4rem;border-radius:.9375rem;background:var(--grey-1) center no-repeat;background-size:contain;flex-shrink:0;border:none}.links .item .info{padding-left:1rem}.links .item .title{margin:.5rem 0;font-family:Mulish,'Noto Serif JP','Noto Serif SC',Mulish,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:700;color:var(--bg-color);border:none}.links .item .title .ic{display:none}.links .item .desc{font-size:.75em;margin:.5rem 0}.links .item:hover{color:var(--header-text-color);background-color:var(--bg-color);box-shadow:0 .125rem 1.25rem var(--bg-color);border-color:var(--bg-color)}.links .item:hover .image{mix-blend-mode:normal;background-color:var(--bg-color)}.links .item:hover .title{color:var(--header-text-color)}@media (max-width:767px){.links{font-size:1em}.links .item{width:calc(100% - 2rem)}}.md .note{border-radius:.1875rem;margin:1rem 0;padding:1rem;position:relative;background:var(--note-bg,var(--grey-2));color:var(--grey-6);border-left:.25rem solid var(--note-border,var(--grey-4));font-size:.875em;padding-left:2.5rem;--primary-color:var(--note-text)}.md .note::before{position:absolute;left:.5rem;top:calc(50% - 1.5rem);font-family:ic;font-weight:400;font-size:1.5rem;color:var(--note-text,var(--grey-6))}.md .note.no-icon{padding-left:1rem}.md .note.no-icon::before{content:none}::-webkit-details-marker{display:none}details>summary:first-of-type{list-style-type:none}details summary{outline:0;cursor:pointer;padding:.625rem;background:var(--note-bg,none);border-radius:.25rem;transition:all .4s ease}details summary::before{font-family:ic;font-weight:400;color:var(--grey-4);margin-right:.5rem}details>div{padding:.625rem}details.danger,details.info,details.primary,details.success,details.warning{margin:0 0 .8rem}details.danger summary,details.info summary,details.primary summary,details.success summary,details.warning summary{color:var(--note-text)}details.danger summary::before,details.info summary::before,details.primary summary::before,details.success summary::before,details.warning summary::before{color:var(--note-text)}details[open]{background:var(--note-bg,none);border-radius:.25rem;color:var(--grey-6)}details[open] summary{background:var(--note-hover,var(--grey-2));border-radius:.25rem}details[open] summary::before{color:var(--primary-color)}details[open]>div{margin:0 0 .8rem}details[open].danger,details[open].info,details[open].primary,details[open].success,details[open].warning{color:var(--note-text)}details[open].danger>summary,details[open].info>summary,details[open].primary>summary,details[open].success>summary,details[open].warning>summary{color:#fff;border-radius:.25rem .25rem 0 0}details[open].danger>summary::before,details[open].info>summary::before,details[open].primary>summary::before,details[open].success>summary::before,details[open].warning>summary::before{color:#fff}span.label{display:inline;border-radius:.3rem;border:.0625rem solid;padding:.2rem .3rem;font-family:Inconsolata,consolas,Menlo,-apple-system,"PingFang SC","Microsoft YaHei";font-size:1em;background:var(--note-bg,var(--grey-2));border-color:var(--note-border,var(--grey-4));color:var(--note-text,var(--grey-6))}.tabs{display:block;position:relative}.tabs .nav{overflow:hidden;border-bottom:.0625rem solid var(--grey-1-a7);height:2.6875rem}.tabs .nav ul{display:flex;padding:0;white-space:nowrap;overflow-x:auto}.tabs .nav li{position:relative;cursor:pointer;border:none;display:inline-block;padding:.3125rem 1.25rem;margin:0}.tabs .nav li::before{content:"";position:absolute;left:50%;right:50%;top:auto;bottom:0;transition:all .2s ease-in-out;width:auto;height:auto;background:0 0;border-radius:0;border-bottom:.125rem solid transparent}.tabs .nav li.active::before{left:0;right:0;border-bottom-color:var(--note-hover,var(--primary-color))}.tabs .tab{display:none}.tabs .tab.active{display:block}.tabs .show-btn{position:absolute;cursor:pointer;right:0;bottom:0;width:2.875rem;height:2.875rem;text-align:center;color:var(--grey-4);z-index:1}.tabs .show-btn::before{font-family:ic;font-weight:400}.md .tabs{margin:0 0 2rem;border-radius:.5rem;border:.0625rem solid var(--grey-2);box-shadow:0 .625rem 1.875rem -.9375rem var(--box-bg-shadow)}.md .tabs .tab{padding:1.25rem}.md .note h2,.md .note h3,.md .note h4,.md .note h5,.md .note h6,.md details h2,.md details h3,.md details h4,.md details h5,.md details h6{margin-top:.1875rem;border-bottom:initial;margin-bottom:0;padding-top:0}.md .note p,.md details p{line-height:1.8}.md .note a:not(.btn),.md details a:not(.btn){color:var(--note-hover);border-bottom:.0625rem dashed var(--note-text)}.md .note a:not(.btn):hover,.md details a:not(.btn):hover{color:var(--note-text);border-bottom-color:var(--note-text)}.md .note ul li::before,.md details ul li::before{background:var(--note-text)}.md .note ol li:before,.md details ol li:before{background:var(--note-text,var(--primary-color))!important;width:.8rem;height:.8rem;font-size:.45rem;line-height:.8rem;top:.4rem;left:-1.2rem}.media-container{position:relative;border-radius:.5rem;border:.0625rem solid var(--grey-2);box-shadow:0 .625rem 1.875rem -.9375rem var(--box-bg-shadow);overflow:hidden;margin-bottom:2rem}.player-info{color:var(--text-color);font-size:1em;min-width:16.25rem}.player-info .tabs{border:none;box-shadow:none}.player-info .tabs .show-btn{display:none}.player-info .tabs .tab{padding:0}.player-info .controller{font-family:ic;font-weight:400;cursor:pointer;font-size:1.25em;display:flex;justify-content:space-around;align-items:center;text-align:center}.player-info .controller .btn{color:var(--grey-6);width:18%}.player-info .controller .btn:hover{color:var(--color-pink)}.player-info .play-pause{font-size:130%}.player-info .volume{position:relative}.player-info .volume .bar{position:absolute;height:.25rem;background:var(--color-pink-a3);bottom:0;left:0;transition:all .2s ease-out 0s}.player-info .volume.off .bar{height:0}.player-info .playlist{border-top:.125rem solid var(--grey-9-a1)}.player-info ol{font-size:.8125em;padding:.3125rem 0;margin:.625rem 0 0;height:12.5rem;overflow-x:scroll;counter-reset:counter;position:relative}.player-info ol::-webkit-scrollbar{width:.1875rem;height:.1875rem}.player-info ol>li{display:flex;padding:.3125rem .9375rem .3125rem 1.5625rem;cursor:pointer;transition:all .2s ease-in-out 0s;height:2rem;overflow:hidden}.player-info ol>li.error{opacity:.5;-webkit-text-decoration-line:line-through;text-decoration-line:line-through}.player-info ol>li::before{height:auto;background:0 0!important;border:none!important;position:relative;top:0!important;left:0!important;font-size:inherit;line-height:inherit;margin-left:-1.25rem;width:1.875rem;counter-increment:counter;content:counter(counter);text-align:right;padding-right:.3125rem;color:var(--grey-5)}.player-info ol>li .info{display:block;width:100%}.player-info ol>li .info span:nth-child(2){float:right;margin-left:.625rem;color:var(--grey-5)}.player-info ol>li.current{color:var(--primary-color);position:relative}.player-info ol>li.current::before{font-family:ic;font-weight:400;color:currentColor}.player-info ol>li.current .progress .bar{position:absolute;height:100%;background:var(--color-pink-a3);top:0;left:0;transition:all .2s ease-out 0s}.player-info ol>li.current .progress::before{content:attr(data-ptime) " / " attr(data-dtime);color:var(--grey-5);position:absolute;right:0;padding:0 .3rem}.player-info ol>li.current .progress.seeking::before{color:currentColor}.player-info ol>li.current .info{padding-right:5rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.player-info ol>li.current .info span:nth-child(2){display:none}.player-info ol>li:hover{background-color:var(--grey-1-a7)}.player-info ol>li:hover::before{color:var(--primary-color)}.video{border-radius:0 0 .5rem .5rem}.audio .preview{display:flex;align-items:center;padding:1.25rem 1.25rem 0}@media (max-width:767px){.audio .preview{padding:1.25rem .625rem 0;flex-direction:column}}.audio .preview .info{display:flex;flex-direction:column;margin-left:.625rem;padding:.625rem;text-overflow:ellipsis;overflow:hidden;width:100%}@media (max-width:767px){.audio .preview .info{margin-left:0}}.audio .preview .info h4{margin:0;text-overflow:ellipsis;max-height:3rem;padding:0;overflow:hidden}.audio .preview .info span{font-size:.75em}.audio .preview .lrc{max-height:4rem;margin-top:.3125rem;font-size:.75em;position:relative;text-align:center;overflow:hidden}.audio .preview .lrc .inner{width:100%;transition:all .5s ease-out}.audio .preview .lrc p{font-size:.75rem;color:var(--grey-6);line-height:1rem!important;height:1rem!important;padding:0!important;margin:0!important;transition:all .5s ease-out;opacity:.3;overflow:hidden}.audio .preview .lrc p.current{opacity:1;overflow:visible;height:auto!important;min-height:1rem}.audio .cover{position:relative;flex-shrink:0;cursor:pointer}.audio .cover::before{content:"";position:absolute;z-index:1;background:url("../images/play_needle.png") no-repeat center/contain;width:3.4375rem;height:5.1875rem;top:-1.5625rem;left:-1.5625rem;transform:rotateZ(-60deg);animation:rotate-needle-pause .5s 1 normal linear forwards;transform-origin:0.625rem 0.625rem}.audio .cover .disc{animation:rotate 20s linear infinite;animation-play-state:paused;padding:1.5rem;max-height:144px}.audio .cover .disc::after{content:"";position:absolute;background:url("../images/play_disc.png") no-repeat center/contain;z-index:1;width:100%;height:100%;top:0;left:0}.audio .cover img{-o-object-fit:contain;object-fit:contain;width:6rem;height:6rem;border-radius:50%}.audio.playing .cover::before{animation:rotate-needle-resume .5s 1 normal linear forwards}.audio.playing .cover .disc{animation-play-state:running} \ No newline at end of file diff --git a/feed.json b/feed.json index bc78247e0..14796d0e9 100644 --- a/feed.json +++ b/feed.json @@ -133,8 +133,8 @@ "Windows", "工具", "经验分享", - "PicGo", - "chevereto" + "chevereto", + "PicGo" ] }, { @@ -173,8 +173,8 @@ "tags": [ "生活", "心情", - "郁闷", - "心情" + "心情", + "郁闷" ] }, { @@ -275,11 +275,11 @@ "极空间", "Docker", "技术分享", - "chevereto", "极空间", "docker", "图床", - "图片上传" + "图片上传", + "chevereto" ] }, { diff --git a/index.html b/index.html index 242431343..6adac0b92 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

文章列表

2.4k 2 分钟

# 介绍 青龙面板是一个支持 python3、javascript、shell、typescript 的定时任务管理面板。它支持在线管理脚本、环境变量、配置文件,支持在线查看日志及支持多种方式的消息通知。 # 安装 本文使用的是 whyour/qinglong 的镜像。 路径映射(由于青龙面板有 nodejs 环境,所以我把 hexo 博客的编译也放置在上面,再把 nginx 的 html...
959 1 分钟

valine 评论需要 LeanCloud 支持 # LeanCloud 注册 到 LeanCloud 网站完成注册。 创建应用。 名称随便取,方案看自己选择。开发版免费但是有限制,商业版收费无限制。 点击配置按钮进行配置。 点击设置 - 应用凭证可获取 App ID 和 App Key 点击设置 - 安全中心根据自己的需求配置 # 修改 Theme.Shoka 配置 valine:  appId: 粘贴5中获取的App ID #Your_appId appKey: 粘贴5中获取的App Key #Your_appkey placeholder: ヽ(○´∀`)ノ♪欢迎畅所欲言...
406 1 分钟

# 介绍 mariadb 属于 mysql 的一个分支,完全兼容 mysql,使用方式和 mysql 无区别。 # 安装 本文介绍安装的镜像为 linuxserver_mariadb 的 10.5.13-r0-ls45,原则上使用最新版即可 配置文件映射 端口 环境(MYSQL_ROOT_PASSWORD 为数据库 root 用户密码) 到此已经可以在内网使用了,连接方法同 mysql 一致 # 配置 此处配置为 nginx 反向代理,配置完成后可在外网连接访问 stream &#123; #极空间-docker-mariadb upstream...
1.2k 1 分钟

# 安装 下载最新版 wordpress 镜像,如极空间无法下载,可到 passerma 网站下载。 需要先在 mysql 中创建给 wordpress 使用的库。 文件路径映射(目前极空间不能映射到高速盘,否则无法启动)。 端口映射。 通过映射的端口访问安装界面(一定要通过最终访问的页面进行安装,否则修改配置比较麻烦。如最终是域名访问,就先把域名解析代理等先配置好,再通过域名访问安装)。 # 配置 如需使用 https 访问,需要在 wp-config.php 中加入以下代码,否则资源文件无法访问。 if((!empty(...
101 1 分钟

一年一次的总结时间又到了,这一年前半年平平无奇,后半年惊涛骇浪。中年危机如期而遇,人身的低谷终究还是来了。很沮丧也很无助,但还是要坚强面对。人生起起伏伏,时好时坏,终归还是会好起来的。加油!加油!加油 !
7.2k 7 分钟

# 监控端服务安装与配置 nagios 需要安装主程序和 nrpe(nagios 和各被监控主机都必须安装)。如需使用自研前端可通过安装 ndoutils (用于把 nagios 监控信息写入数据库) 和 mysql 实现。具体安装见官网 nagios 默认监控命令脚本放置在 libexec 中,自定义脚本也放到此处 etc/objects/commands.cfg 用于保存 nagios 默认监控命令 etc/nrpe.cfg 文件中需要添加用于被监控执行命令项(各被监控主机中都需要添加) etc/objects/hosts...
3.2k 3 分钟

# 主服务 基础配置 port 6379 requirepass 123456(密码,建议不设置) vm-enabled no (虚拟内存,内存够的情况下可以不使用) maxmemory 1GB(告诉Redis当使用了多少物理内存后就开始拒绝后续的写入) bind 127.0.0.1 (注释掉,否则不能外部连接) rdbchecksum no(持久化数据检查) list-max-ziplist-size 1024(ziplist的最大容量,正数为自己指定的大小。负数-1到-5为对应的值4到64Kb) list-compress-depth...
366 1 分钟

# 使用场景   在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下: server &#123; listen port ssl http2; server_name xxx.com; ssl_certificate_key /xxx.key; ssl_certificate /xxx.pem; proxy_cookie_path ~(.*) &quot;$1; SameSite=None; secure;...
111 1 分钟

# 简介 PicGo 是一款开源的图床管理工具,十分流行。 PicGo 官方指南:PicGo | PicGo # 配置 安装插件(需要先安装 NodeJS) 图床配置   url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配置中查找
709 1 分钟

# 前期准备   首先安装好 svn 和 git 工具。 # svn 转 git 1、 到 svn 项目目录右键选中 gitbash 打开窗口,执行获取用户并映射成 git 样式账号命令如下: svn log -q | awk -F '|' '/^r/ &#123;sub(&quot;^ &quot;, &quot;&quot;, $2); sub(&quot; $&quot;, &quot;&quot;, $2); print $2&quot; =...
\ No newline at end of file +Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

文章列表

2.4k 2 分钟

# 介绍 青龙面板是一个支持 python3、javascript、shell、typescript 的定时任务管理面板。它支持在线管理脚本、环境变量、配置文件,支持在线查看日志及支持多种方式的消息通知。 # 安装 本文使用的是 whyour/qinglong 的镜像。 路径映射(由于青龙面板有 nodejs 环境,所以我把 hexo 博客的编译也放置在上面,再把 nginx 的 html...
959 1 分钟

valine 评论需要 LeanCloud 支持 # LeanCloud 注册 到 LeanCloud 网站完成注册。 创建应用。 名称随便取,方案看自己选择。开发版免费但是有限制,商业版收费无限制。 点击配置按钮进行配置。 点击设置 - 应用凭证可获取 App ID 和 App Key 点击设置 - 安全中心根据自己的需求配置 # 修改 Theme.Shoka 配置 valine:  appId: 粘贴5中获取的App ID #Your_appId appKey: 粘贴5中获取的App Key #Your_appkey placeholder: ヽ(○´∀`)ノ♪欢迎畅所欲言...
406 1 分钟

# 介绍 mariadb 属于 mysql 的一个分支,完全兼容 mysql,使用方式和 mysql 无区别。 # 安装 本文介绍安装的镜像为 linuxserver_mariadb 的 10.5.13-r0-ls45,原则上使用最新版即可 配置文件映射 端口 环境(MYSQL_ROOT_PASSWORD 为数据库 root 用户密码) 到此已经可以在内网使用了,连接方法同 mysql 一致 # 配置 此处配置为 nginx 反向代理,配置完成后可在外网连接访问 stream &#123; #极空间-docker-mariadb upstream...
1.2k 1 分钟

# 安装 下载最新版 wordpress 镜像,如极空间无法下载,可到 passerma 网站下载。 需要先在 mysql 中创建给 wordpress 使用的库。 文件路径映射(目前极空间不能映射到高速盘,否则无法启动)。 端口映射。 通过映射的端口访问安装界面(一定要通过最终访问的页面进行安装,否则修改配置比较麻烦。如最终是域名访问,就先把域名解析代理等先配置好,再通过域名访问安装)。 # 配置 如需使用 https 访问,需要在 wp-config.php 中加入以下代码,否则资源文件无法访问。 if((!empty(...
101 1 分钟

一年一次的总结时间又到了,这一年前半年平平无奇,后半年惊涛骇浪。中年危机如期而遇,人身的低谷终究还是来了。很沮丧也很无助,但还是要坚强面对。人生起起伏伏,时好时坏,终归还是会好起来的。加油!加油!加油 !
7.2k 7 分钟

# 监控端服务安装与配置 nagios 需要安装主程序和 nrpe(nagios 和各被监控主机都必须安装)。如需使用自研前端可通过安装 ndoutils (用于把 nagios 监控信息写入数据库) 和 mysql 实现。具体安装见官网 nagios 默认监控命令脚本放置在 libexec 中,自定义脚本也放到此处 etc/objects/commands.cfg 用于保存 nagios 默认监控命令 etc/nrpe.cfg 文件中需要添加用于被监控执行命令项(各被监控主机中都需要添加) etc/objects/hosts...
3.2k 3 分钟

# 主服务 基础配置 port 6379 requirepass 123456(密码,建议不设置) vm-enabled no (虚拟内存,内存够的情况下可以不使用) maxmemory 1GB(告诉Redis当使用了多少物理内存后就开始拒绝后续的写入) bind 127.0.0.1 (注释掉,否则不能外部连接) rdbchecksum no(持久化数据检查) list-max-ziplist-size 1024(ziplist的最大容量,正数为自己指定的大小。负数-1到-5为对应的值4到64Kb) list-compress-depth...
366 1 分钟

# 使用场景   在 A 域名的页面向 B 域名提交数据时需要代入 B 域名的 cookie,否则 B 域名会跳转到登陆页面。解决方式需要使用到 nginx 反向代理,配置如下: server &#123; listen port ssl http2; server_name xxx.com; ssl_certificate_key /xxx.key; ssl_certificate /xxx.pem; proxy_cookie_path ~(.*) &quot;$1; SameSite=None; secure;...
111 1 分钟

# 简介 PicGo 是一款开源的图床管理工具,十分流行。 PicGo 官方指南:PicGo | PicGo # 配置 安装插件(需要先安装 NodeJS) 图床配置   url 后缀必须用红线圈中的部分,key 在 chevereto 登陆后 api 配置中查找
709 1 分钟

# 前期准备   首先安装好 svn 和 git 工具。 # svn 转 git 1、 到 svn 项目目录右键选中 gitbash 打开窗口,执行获取用户并映射成 git 样式账号命令如下: svn log -q | awk -F '|' '/^r/ &#123;sub(&quot;^ &quot;, &quot;&quot;, $2); sub(&quot; $&quot;, &quot;&quot;, $2); print $2&quot; =...
\ No newline at end of file diff --git a/page/2/index.html b/page/2/index.html index d252bdab9..d19a5b3a4 100644 --- a/page/2/index.html +++ b/page/2/index.html @@ -1 +1 @@ -Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
1.6k 1 分钟

# X-Frame-Options 响应头配置详解   X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在,或者 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌套到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。 X-Frame-Options 三个参数: 1、 DENY   表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 2、SAMEORIGIN   表示该页面可以在相同域名页面的 frame 中展示。 3、ALLOW-FROM uri   表示该页面可以在指定来源的 frame...
1.1k 1 分钟

# nginx 负载均衡配置 轮询(默认)   每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。 upstream my_server &#123; server 192.168.0.2:8080; server 192.168.0.3:8080; &#125; server &#123; listen 80; server_name 192.168.0.1; # Path to the root of your installation location / &#123; proxy_pass...
1.8k 2 分钟

今天突然发现博客的音乐无法播放了。经过一顿查找,发现是因为 https://api.i-meto.com/meting/api 调用出错了。shoka 主题应该是通过这个网站提取音乐地址、图片等信息。通过断点发现网易播放列表还是能正常获取的,只是列表中的具体音乐、图片无法获取了。于是自己用获取的列表信息组装出正确的 url 问题基本解决。只针对网易播放列表,图片只能使用一张固定的。   解决方法如下:     到 themes\shoka\source\js_app 目录下打开 player.js 文件,在最底部 init (config) 下加入 vendorJs...
268 1 分钟

今天突然发现自己的网站不能访问了。经过一顿排查,发现是家里的外网 ip 变动后 nginx 解析的域名 ip 还是旧 ip 导致的。手动重启 nginx 后恢复正常。但这不是长久之计,如果每次 ip 变动都需要重启一次 nginx,想想都头大。于是查询资料后获得了解决办法,方法如下: location / &#123; resolver 114.114.114.114 valid=60s; #自定义缓存有效时间间隔对变量中的域名进行解析 set $my_server &quot;https://ip:port&quot;; proxy_pass...
179 1 分钟

# 下载工具 protoc-3.19.5-win64.zip # 生成 js 文件 把 xxx.proto 文件拷贝到解压的 protoc-3.19.5-win64\bin 目录下 cmd 到相同的 bin 目录下 执行 protoc.exe --js_out=import_style=commonjs,binary:. ./xxx.proto 命令,就会在 bin 目录下生成 xxx_pb.js 文件
508 1 分钟

今天前端开发跟我反馈用 vue 的 socketio 连接不上后台服务,连接无反应无任何报错。所以不清楚是前端代码问题还是后台服务的问题。由于框架为另一同事搭建,我只负责处理后端业务逻辑部分,所以第一时间我也不清楚具体的原因。于是我找了个第三方的 socket 工具尝试连接,果然有问题。但是只是提示连接不上,无明显错误原因。到后台查看发现有提示 Unknown transport for request 错误,最后通过调试发现 netty-socketio 的库中 AuthorizeHandler 类有段处理 transport 的代码只能接受大写的 WEBSOCKET 或者...
598 1 分钟

# Hexo + Theme.Shoka 安装   安装介绍 # algolia 注册 algolia 不支持国内邮箱注册,而 google 和 github 由于国内被墙也没法使用。所以只能先注册 netlify 然后通过 netlify 注册 algolia。 登录 algolia 后创建一个 index,名字随意记住既可。 点击右上角红点,弹出窗口点 settings 按钮。 点击 API KEYS,获取 appId 和 adminApiKey 填入 hexo 的_config.yml 中 apiKey 暂时不填。 algolia: appId: #Your...
608 1 分钟

# 安装准备 需要先安装好 mysql 数据库 选择版本,1.5 版以前支持中文,之后被维护的团队删除只支持英文 本文介绍使用的是 linuxserver_chevereto 的镜像 需要预先创建好给 chevereto 使用的库、账户、密码 经过测试,使用 surenkid_chevereto 的镜像可以完美支持多国语言,配置同 linuxserver_chevereto 一样 # 容器配置 映射路径(不要放在高速盘,否则会有权限问题) 端口 环境(puid 和 pgid 使用 1000,不要使用 0,否则会报错) # 初始化配置 使用 http:// 极空间...
1.1k 1 分钟

# hexo 博客安装 安装 nodejs 安装 git 安装 hexo(windows 需进入 git bash) npm install -g hexo-cli 初始化博客目录 hexo init blog 进入博客目录 cd blog 初始化 hexo 到博客目录 npm install # shoka 主题安装 下载主题 git clone https://github.com/amehime/hexo-theme-shoka.git ./themes/shoka 卸载 hexo-renderer-marked 以及别的 markdown 文件渲染器 npm un...
\ No newline at end of file +Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
1.6k 1 分钟

# X-Frame-Options 响应头配置详解   X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在,或者 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌套到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。 X-Frame-Options 三个参数: 1、 DENY   表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 2、SAMEORIGIN   表示该页面可以在相同域名页面的 frame 中展示。 3、ALLOW-FROM uri   表示该页面可以在指定来源的 frame...
1.1k 1 分钟

# nginx 负载均衡配置 轮询(默认)   每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。 upstream my_server &#123; server 192.168.0.2:8080; server 192.168.0.3:8080; &#125; server &#123; listen 80; server_name 192.168.0.1; # Path to the root of your installation location / &#123; proxy_pass...
1.8k 2 分钟

今天突然发现博客的音乐无法播放了。经过一顿查找,发现是因为 https://api.i-meto.com/meting/api 调用出错了。shoka 主题应该是通过这个网站提取音乐地址、图片等信息。通过断点发现网易播放列表还是能正常获取的,只是列表中的具体音乐、图片无法获取了。于是自己用获取的列表信息组装出正确的 url 问题基本解决。只针对网易播放列表,图片只能使用一张固定的。   解决方法如下:     到 themes\shoka\source\js_app 目录下打开 player.js 文件,在最底部 init (config) 下加入 vendorJs...
268 1 分钟

今天突然发现自己的网站不能访问了。经过一顿排查,发现是家里的外网 ip 变动后 nginx 解析的域名 ip 还是旧 ip 导致的。手动重启 nginx 后恢复正常。但这不是长久之计,如果每次 ip 变动都需要重启一次 nginx,想想都头大。于是查询资料后获得了解决办法,方法如下: location / &#123; resolver 114.114.114.114 valid=60s; #自定义缓存有效时间间隔对变量中的域名进行解析 set $my_server &quot;https://ip:port&quot;; proxy_pass...
179 1 分钟

# 下载工具 protoc-3.19.5-win64.zip # 生成 js 文件 把 xxx.proto 文件拷贝到解压的 protoc-3.19.5-win64\bin 目录下 cmd 到相同的 bin 目录下 执行 protoc.exe --js_out=import_style=commonjs,binary:. ./xxx.proto 命令,就会在 bin 目录下生成 xxx_pb.js 文件
508 1 分钟

今天前端开发跟我反馈用 vue 的 socketio 连接不上后台服务,连接无反应无任何报错。所以不清楚是前端代码问题还是后台服务的问题。由于框架为另一同事搭建,我只负责处理后端业务逻辑部分,所以第一时间我也不清楚具体的原因。于是我找了个第三方的 socket 工具尝试连接,果然有问题。但是只是提示连接不上,无明显错误原因。到后台查看发现有提示 Unknown transport for request 错误,最后通过调试发现 netty-socketio 的库中 AuthorizeHandler 类有段处理 transport 的代码只能接受大写的 WEBSOCKET 或者...
598 1 分钟

# Hexo + Theme.Shoka 安装   安装介绍 # algolia 注册 algolia 不支持国内邮箱注册,而 google 和 github 由于国内被墙也没法使用。所以只能先注册 netlify 然后通过 netlify 注册 algolia。 登录 algolia 后创建一个 index,名字随意记住既可。 点击右上角红点,弹出窗口点 settings 按钮。 点击 API KEYS,获取 appId 和 adminApiKey 填入 hexo 的_config.yml 中 apiKey 暂时不填。 algolia: appId: #Your...
608 1 分钟

# 安装准备 需要先安装好 mysql 数据库 选择版本,1.5 版以前支持中文,之后被维护的团队删除只支持英文 本文介绍使用的是 linuxserver_chevereto 的镜像 需要预先创建好给 chevereto 使用的库、账户、密码 经过测试,使用 surenkid_chevereto 的镜像可以完美支持多国语言,配置同 linuxserver_chevereto 一样 # 容器配置 映射路径(不要放在高速盘,否则会有权限问题) 端口 环境(puid 和 pgid 使用 1000,不要使用 0,否则会报错) # 初始化配置 使用 http:// 极空间...
1.1k 1 分钟

# hexo 博客安装 安装 nodejs 安装 git 安装 hexo(windows 需进入 git bash) npm install -g hexo-cli 初始化博客目录 hexo init blog 进入博客目录 cd blog 初始化 hexo 到博客目录 npm install # shoka 主题安装 下载主题 git clone https://github.com/amehime/hexo-theme-shoka.git ./themes/shoka 卸载 hexo-renderer-marked 以及别的 markdown 文件渲染器 npm un...
\ No newline at end of file diff --git a/rss.xml b/rss.xml index 9f2985aa1..949d377ed 100644 --- a/rss.xml +++ b/rss.xml @@ -762,8 +762,8 @@ sudo sysctl vm.overcommit_memory=1 - + Wed, 12 Oct 2022 14:40:00 +0800 https://blog.jingxiyuan.cn/2022/09/28/%E6%B7%B1%E6%B7%B1%E7%9A%84%E6%8C%AB%E8%B4%A5%E5%92%8C%E6%97%A0%E5%8A%A9%E6%84%9F/ - + Wed, 28 Sep 2022 16:02:00 +0800 @@ -1103,11 +1103,11 @@ server &#123; - + Fri, 16 Sep 2022 08:04:00 +0800 标签:Hexo-admin | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:Hexo-admin | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/Hexo/index.html b/tags/Hexo/index.html index ad557895e..74131e61b 100644 --- a/tags/Hexo/index.html +++ b/tags/Hexo/index.html @@ -1 +1 @@ -标签:Hexo | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:Hexo | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/PicGo/index.html b/tags/PicGo/index.html index f5fef80cd..6e1bed981 100644 --- a/tags/PicGo/index.html +++ b/tags/PicGo/index.html @@ -1 +1 @@ -标签:PicGo | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:PicGo | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/Shoka/index.html b/tags/Shoka/index.html index 210044295..72c61d6cf 100644 --- a/tags/Shoka/index.html +++ b/tags/Shoka/index.html @@ -1 +1 @@ -标签:Shoka | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:Shoka | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/Valine/index.html b/tags/Valine/index.html index 467f538a1..84569adad 100644 --- a/tags/Valine/index.html +++ b/tags/Valine/index.html @@ -1 +1 @@ -标签:Valine | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:Valine | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/Wordpress/index.html b/tags/Wordpress/index.html index a20fe907f..316fb6976 100644 --- a/tags/Wordpress/index.html +++ b/tags/Wordpress/index.html @@ -1 +1 @@ -标签:Wordpress | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:Wordpress | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/algolia/index.html b/tags/algolia/index.html index eb7e49d84..1f81b9f2f 100644 --- a/tags/algolia/index.html +++ b/tags/algolia/index.html @@ -1 +1 @@ -标签:algolia | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:algolia | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/chevereto/index.html b/tags/chevereto/index.html index 7770e47cc..586b94c55 100644 --- a/tags/chevereto/index.html +++ b/tags/chevereto/index.html @@ -1 +1 @@ -标签:chevereto | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:chevereto | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/cookie/index.html b/tags/cookie/index.html index 0c790dade..124fd8008 100644 --- a/tags/cookie/index.html +++ b/tags/cookie/index.html @@ -1 +1 @@ -标签:cookie | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:cookie | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/docker/index.html b/tags/docker/index.html index 3a7ceebd9..b8e275e05 100644 --- a/tags/docker/index.html +++ b/tags/docker/index.html @@ -1 +1 @@ -标签:docker | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:docker | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/git/index.html b/tags/git/index.html index 0b9edf483..7d71e1145 100644 --- a/tags/git/index.html +++ b/tags/git/index.html @@ -1 +1 @@ -标签:git | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:git | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/iframe/index.html b/tags/iframe/index.html index 112c6591a..a7976c243 100644 --- a/tags/iframe/index.html +++ b/tags/iframe/index.html @@ -1 +1 @@ -标签:iframe | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:iframe | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 35f8a0ca4..1f102cc51 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1 +1 @@ -全部标签 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +全部标签 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/js/index.html b/tags/js/index.html index 4ec94a570..acf477ce5 100644 --- a/tags/js/index.html +++ b/tags/js/index.html @@ -1 +1 @@ -标签:js | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:js | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/mariadb/index.html b/tags/mariadb/index.html index 01cd97177..d6fb15613 100644 --- a/tags/mariadb/index.html +++ b/tags/mariadb/index.html @@ -1 +1 @@ -标签:mariadb | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:mariadb | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/mysql/index.html b/tags/mysql/index.html index 2f0af362c..49a06cb16 100644 --- a/tags/mysql/index.html +++ b/tags/mysql/index.html @@ -1 +1 @@ -标签:mysql | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:mysql | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/nagios/index.html b/tags/nagios/index.html index ba60ce60b..4abc64096 100644 --- a/tags/nagios/index.html +++ b/tags/nagios/index.html @@ -1 +1 @@ -标签:nagios | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:nagios | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/netty/index.html b/tags/netty/index.html index b10d7b0f2..8f0da27a4 100644 --- a/tags/netty/index.html +++ b/tags/netty/index.html @@ -1 +1 @@ -标签:netty | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:netty | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/nginx/index.html b/tags/nginx/index.html index a99908e61..0a50541b5 100644 --- a/tags/nginx/index.html +++ b/tags/nginx/index.html @@ -1 +1 @@ -标签:nginx | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:nginx | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/protobuf/index.html b/tags/protobuf/index.html index adb57c9f7..9b7d8f44a 100644 --- a/tags/protobuf/index.html +++ b/tags/protobuf/index.html @@ -1 +1 @@ -标签:protobuf | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:protobuf | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/redis/index.html b/tags/redis/index.html index 276069b48..0e2288d17 100644 --- a/tags/redis/index.html +++ b/tags/redis/index.html @@ -1 +1 @@ -标签:redis | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:redis | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/socketIO/index.html b/tags/socketIO/index.html index 4d8df5113..0f14fedd0 100644 --- a/tags/socketIO/index.html +++ b/tags/socketIO/index.html @@ -1 +1 @@ -标签:socketIO | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:socketIO | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/svn/index.html b/tags/svn/index.html index 962a68c9d..c8a2106bb 100644 --- a/tags/svn/index.html +++ b/tags/svn/index.html @@ -1 +1 @@ -标签:svn | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:svn | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/博客/index.html b/tags/博客/index.html index 80e47d142..7d1d3c90e 100644 --- a/tags/博客/index.html +++ b/tags/博客/index.html @@ -1 +1 @@ -标签:博客 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:博客 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/图床/index.html b/tags/图床/index.html index 0d7690bb8..7eed3d919 100644 --- a/tags/图床/index.html +++ b/tags/图床/index.html @@ -1 +1 @@ -标签:图床 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:图床 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/图片上传/index.html b/tags/图片上传/index.html index 1eb4e2641..7288d8cdc 100644 --- a/tags/图片上传/index.html +++ b/tags/图片上传/index.html @@ -1 +1 @@ -标签:图片上传 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:图片上传 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/定时任务/index.html b/tags/定时任务/index.html index 886073d9a..1f4ee1be2 100644 --- a/tags/定时任务/index.html +++ b/tags/定时任务/index.html @@ -1 +1 @@ -标签:定时任务 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:定时任务 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/心情/index.html b/tags/心情/index.html index 592b67d43..0a79c6f4a 100644 --- a/tags/心情/index.html +++ b/tags/心情/index.html @@ -1 +1 @@ -标签:心情 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:心情 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/搜索/index.html b/tags/搜索/index.html index 5174e042c..bba21ec7f 100644 --- a/tags/搜索/index.html +++ b/tags/搜索/index.html @@ -1 +1 @@ -标签:搜索 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:搜索 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/服务监控/index.html b/tags/服务监控/index.html index 96592de91..52c13f02f 100644 --- a/tags/服务监控/index.html +++ b/tags/服务监控/index.html @@ -1 +1 @@ -标签:服务监控 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:服务监控 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/极空间/index.html b/tags/极空间/index.html index e4560c1e8..08500a387 100644 --- a/tags/极空间/index.html +++ b/tags/极空间/index.html @@ -1 +1 @@ -标签:极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:极空间 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/背景音乐/index.html b/tags/背景音乐/index.html index 93435bd35..92a178f86 100644 --- a/tags/背景音乐/index.html +++ b/tags/背景音乐/index.html @@ -1 +1 @@ -标签:背景音乐 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:背景音乐 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/评论/index.html b/tags/评论/index.html index 2bda55a78..754351c59 100644 --- a/tags/评论/index.html +++ b/tags/评论/index.html @@ -1 +1 @@ -标签:评论 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:评论 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/负载均衡/index.html b/tags/负载均衡/index.html index eb71cbf32..04d0ac866 100644 --- a/tags/负载均衡/index.html +++ b/tags/负载均衡/index.html @@ -1 +1 @@ -标签:负载均衡 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:负载均衡 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/踩坑/index.html b/tags/踩坑/index.html index ed8880061..cbae1c16d 100644 --- a/tags/踩坑/index.html +++ b/tags/踩坑/index.html @@ -1 +1 @@ -标签:踩坑 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:踩坑 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/郁闷/index.html b/tags/郁闷/index.html index 6107232a8..380eadcdd 100644 --- a/tags/郁闷/index.html +++ b/tags/郁闷/index.html @@ -1 +1 @@ -标签:郁闷 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:郁闷 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/tags/青龙面板/index.html b/tags/青龙面板/index.html index d46777866..815982ff7 100644 --- a/tags/青龙面板/index.html +++ b/tags/青龙面板/index.html @@ -1 +1 @@ -标签:青龙面板 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +标签:青龙面板 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file