diff --git a/1970/01/01/hello-world/index.html b/1970/01/01/hello-world/index.html index c7c8bb19d..f647e2e5d 100644 --- a/1970/01/01/hello-world/index.html +++ b/1970/01/01/hello-world/index.html @@ -1 +1 @@ -Hello World | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

# Quick Start

# Create a new post

h
$ hexo new "My New Post"

More info: Writing

# Run server

h
$ hexo server

More info: Server

# Generate static files

h
$ hexo generate

More info: Generating

# Deploy to remote sites

h
$ hexo deploy

More info: Deployment

更新于 阅读次数

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

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

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

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

# Quick Start

# Create a new post

h
$ hexo new "My New Post"

More info: Writing

# Run server

h
$ hexo server

More info: Server

# Generate static files

h
$ hexo generate

More info: Generating

# Deploy to remote sites

h
$ hexo deploy

More info: Deployment

更新于 阅读次数

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

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file diff --git a/2022/09/14/Hexo安装摸索/index.html b/2022/09/14/Hexo安装摸索/index.html index 9e0676fed..c59e46d3c 100644 --- a/2022/09/14/Hexo安装摸索/index.html +++ b/2022/09/14/Hexo安装摸索/index.html @@ -1 +1 @@ -Hexo 安装摸索 - 踩坑 - 心得体会 - 技术分享 | 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' #用单引号包裹
deployCommand: 'hexo_publish.sh' #windows 用 hexo_publish.bat,linux 用 hexo_publish.sh

# hexo_publish.sh

#!/bin/bash
hexo clean
hexo g
hexo d

# hexo_publish.bat

@echo off
cd D:\blog
d:
@cmd /c "hexo clean&& hexo g&&hexo d&&echo success"
更新于 阅读次数

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

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file +Hexo 安装摸索 - 踩坑 - 心得体会 - 技术分享 | 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' #用单引号包裹
deployCommand: 'hexo_publish.sh' #windows 用 hexo_publish.bat,linux 用 hexo_publish.sh

# hexo_publish.sh

#!/bin/bash
hexo clean
hexo g
hexo d

# hexo_publish.bat

@echo off
cd D:\blog
d:
@cmd /c "hexo clean&& hexo g&&hexo d&&echo success"
更新于 阅读次数

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

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file diff --git a/2022/09/16/chevereto图床安装/index.html b/2022/09/16/chevereto图床安装/index.html index 33a1e1a59..115aa2bf3 100644 --- a/2022/09/16/chevereto图床安装/index.html +++ b/2022/09/16/chevereto图床安装/index.html @@ -1 +1 @@ -极空间 chevereto 图床 docker 版安装 - 踩坑 - 心得体会 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 安装准备

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

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

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

  4. 需要预先创建好给 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 进行修改)。之后用管理员登录通过页面 http://xxx/dashboard/settings/image-upload 修改。

# 安装完成

  1. 功能少界面也很简单,只作为图片外部链接使用完全够用。图片链接 url 支持的很全。
    2022-09-16-14-52-29.png
    2022-09-16-14-54-58.png
    2022-09-16-14-56-13.png
更新于 阅读次数

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

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file +极空间 chevereto 图床 docker 版安装 - 踩坑 - 心得体会 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

# 安装准备

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

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

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

  4. 需要预先创建好给 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 进行修改)。之后用管理员登录通过页面 http://xxx/dashboard/settings/image-upload 修改。

# 安装完成

  1. 功能少界面也很简单,只作为图片外部链接使用完全够用。图片链接 url 支持的很全。
    2022-09-16-14-52-29.png
    2022-09-16-14-54-58.png
    2022-09-16-14-56-13.png
更新于 阅读次数

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

Hito li 微信支付

微信支付

Hito li 支付宝

支付宝

\ No newline at end of file diff --git a/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑-1/index.html b/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑-1/index.html index f282ea634..09cc162e9 100644 --- a/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑-1/index.html +++ b/2022/09/17/Hexo-Theme-Shoka-algolia搜索踩坑-1/index.html @@ -1 +1 @@ -Hexo + Theme.Shoka + algolia 搜索踩坑 | 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
  chunkSize: 5000
  indexName: blog #"shoka"
  fields:
    - title #必须配置
    - path #必须配置
    - categories #推荐配置
    - content:strip:truncate,0,2000
    - 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 +Hexo + Theme.Shoka + algolia 搜索踩坑 | 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
  chunkSize: 5000
  indexName: blog #"shoka"
  fields:
    - title #必须配置
    - path #必须配置
    - categories #推荐配置
    - content:strip:truncate,0,2000
    - 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 diff --git a/2022/09/21/记一次netty-socket-io服务端连接不上的问题/index.html b/2022/09/21/记一次netty-socket-io服务端连接不上的问题/index.html index ef6ab5c63..c49376d19 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 34c25b7c5..a966f7d10 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 4c51d7549..ab6a40181 100644 --- a/2022/09/23/解决域名ip变动后需要重启nginx的问题/index.html +++ b/2022/09/23/解决域名ip变动后需要重启nginx的问题/index.html @@ -1,8 +1,8 @@ -解决域名 ip 变动后需要重启 nginx 的问题 - 技术分享 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

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

location / {	
+解决域名 ip 变动后需要重启 nginx 的问题 - 技术分享 | 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/404.html b/404.html index bc2c80e8c..94a0d245c 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 2ef38bc34..e6ecac051 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/1970/01/index.html b/archives/1970/01/index.html index 37a93bb79..76b7f45db 100644 --- a/archives/1970/01/index.html +++ b/archives/1970/01/index.html @@ -1 +1 @@ -1970 年 / 01 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +1970 年 / 01 月 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/archives/1970/index.html b/archives/1970/index.html index 7ee71f45c..f018609f8 100644 --- a/archives/1970/index.html +++ b/archives/1970/index.html @@ -1 +1 @@ -1970 年 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file +1970 年 - 归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
\ No newline at end of file diff --git a/archives/2022/09/index.html b/archives/2022/09/index.html index 748c9cfaa..a8829a60f 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/index.html b/archives/2022/index.html index 94c341964..ee175543b 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/index.html b/archives/index.html index d5b0358f4..7c1cd4c04 100644 --- a/archives/index.html +++ b/archives/index.html @@ -1 +1 @@ -归档 | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

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

2022 年/09 月 ( 6 )

1970 年/01 月 ( 1 )

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

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

2022 年/09 月 ( 6 )

1970 年/01 月 ( 1 )

\ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 643cae3e1..911a42c00 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 20573e2e1..c5791f64d 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 17481e532..f9018bf27 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 233e811c5..8f3876f02 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 0a9388eee..5ec481a81 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 f0f45e642..6eb86d2e3 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/index.html b/index.html index 2ee5dac26..e91a87758 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

文章列表

268 1 分钟

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

# 安装准备 需要先安装好 mysql 数据库 选择版本,1.5 版支持中文,之后被维护的团队删除只支持英文 本文介绍使用的是 linuxserver_chevereto 的镜像 需要预先创建好给 chevereto 使用的库、账户、密码 # 容器配置 映射路径(不要放在高速盘,否则会有权限问题) 端口 环境(puid 和 pgid 使用 1000,不要使用 0,否则会报错) # 初始化配置 使用 http:// 极空间 ip:81 (端口号使用上面配置的,我配置的是 81) 进行 web 访问(数据库配置) 管理员配置(注意 website...
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...
362 1 分钟

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. # Quick Start # Create a new post h$ hexo new "My New Post"More info: Writing # Run server h$...
\ No newline at end of file +Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣

文章列表

268 1 分钟

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

# 安装准备 需要先安装好 mysql 数据库 选择版本,1.5 版支持中文,之后被维护的团队删除只支持英文 本文介绍使用的是 linuxserver_chevereto 的镜像 需要预先创建好给 chevereto 使用的库、账户、密码 # 容器配置 映射路径(不要放在高速盘,否则会有权限问题) 端口 环境(puid 和 pgid 使用 1000,不要使用 0,否则会报错) # 初始化配置 使用 http:// 极空间 ip:81 (端口号使用上面配置的,我配置的是 81) 进行 web 访问(数据库配置) 管理员配置(注意 website...
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...
362 1 分钟

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. # Quick Start # Create a new post h$ hexo new "My New Post"More info: Writing # Run server h$...
\ No newline at end of file diff --git a/js/app.js b/js/app.js index a650bd6b7..4f7615e66 100644 --- a/js/app.js +++ b/js/app.js @@ -1,2 +1,2 @@ -var e={version:"0.0.0",hostname:"https://blog.jingxiyuan.cn",root:"/",statics:"/",favicon:{normal:"images/favicon.ico",hidden:"images/failure.ico"},darkmode:false,auto_scroll:true,js:{valine:"gh/amehime/MiniValine@4.2.2-beta10/dist/MiniValine.min.js",chart:"npm/frappe-charts@1.5.0/dist/frappe-charts.min.iife.min.js",copy_tex:"npm/katex@0.12.0/dist/contrib/copy-tex.min.js",fancybox:"combine/npm/jquery@3.5.1/dist/jquery.min.js,npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js,npm/justifiedGallery@3.8.1/dist/js/jquery.justifiedGallery.min.js"},css:{valine:"css/comment.css",katex:"npm/katex@0.12.0/dist/katex.min.css",mermaid:"css/mermaid.css",fancybox:"combine/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css,npm/justifiedGallery@3.8.1/dist/css/justifiedGallery.min.css"},loader:{start:true,"switch":true},search:{appID:"2NU6BAFQUF",apiKey:"47a93cc6d8d1e77bd82d36e8365788dc",indexName:"blog",hits:{per_page:10}},valine:{appId:"pFJTr97i45HCNkAPfurKR0rS-gzGzoHsz",appKey:"9LsEPqi4hHCtghqzc7qDLyNV",placeholder:"ヽ(○´∀`)ノ♪欢迎畅所欲言",avatar:"mp",pageSize:10,lang:"zh-CN",visitor:true,NoRecordIP:false,serverURLs:null,powerMode:true,tagMeta:{visitor:"新朋友",master:"主人",friend:"小伙伴",investor:"金主粑粑"},tagColor:{master:"var(--color-orange)",friend:"var(--color-aqua)",investor:"var(--color-pink)"},tagMember:{master:null,friend:null,investor:null}},quicklink:{timeout:3e3,priority:true},audio:[{title:"博主喜欢",list:[{name:"仙剑问情",url:"https://music.163.com/song/media/outer/url?id=1416747959",artist:"萧人凤",cover:"https://p2.music.126.net/gZlHY7Cc2MaD7UVhgv7rYw==/109951164626902666.jpg?param=130y130"},{name:"大天蓬",url:"https://music.163.com/song/media/outer/url?id=1483488153",artist:"璐爷",cover:"https://p2.music.126.net/rn6L_xf1tlVAyHOz95mmMQ==/109951165354012465.jpg?param=130y130"},{name:"左手指月",url:"https://music.163.com/song/media/outer/url?id=536096151",artist:"萨顶顶",cover:"https://p1.music.126.net/gEia-o05FSas8uJos54Sug==/109951163456726954.jpg?param=130y130"}]},{title:"网易云音乐",list:["https://music.163.com/#/playlist?id=5172410111","https://music.163.com/#/discover/toplist?id=19723756"]}],fireworks:["rgba(255,182,185,.9)","rgba(250,227,217,.9)","rgba(187,222,214,.9)","rgba(138,198,209,.9)"]};const t=function(e,t){return Math.floor(Math.random()*(t-e+1))+e};const a=function(){return u("main > .inner").offsetHeight};const n=function(e,t,a){if(a){t()}else{var n=document.createElement("script");n.onload=n.onreadystatechange=function(e,a){if(a||!n.readyState||/loaded|complete/.test(n.readyState)){n.onload=n.onreadystatechange=null;n=undefined;if(!a&&t)setTimeout(t,0)}};n.src=e;document.head.appendChild(n)}};const i=function(t,a){var n=e[t][a];if(n.indexOf("npm")>-1||n.indexOf("gh")>-1||n.indexOf("combine")>-1)return"//cdn.jsdelivr.net/"+n;if(n.indexOf("http")>-1)return n;return m+n};const r=function(e,t,a){if(LOCAL[e]){n(i("js",e),t||function(){window[e]=true},a||window[e])}};const s=function(e,t){if(window["css"+e])return;if(LOCAL[e]){document.head.createChild("link",{rel:"stylesheet",href:i("css",e)});window["css"+e]=true}};const o=function(e){var t=e.text||e.textContent||e.innerHTML||"";var a=e.parentNode;a.removeChild(e);var n=document.createElement("script");if(e.id){n.id=e.id}if(e.className){n.className=e.className}if(e.type){n.type=e.type}if(e.src){n.src=e.src;n.async=false}if(e.dataset.pjax!==undefined){n.dataset.pjax=""}if(t!==""){n.appendChild(document.createTextNode(t))}a.appendChild(n)};const c=function(e,t,a){var n={targets:typeof t=="number"?e.parentNode:document.scrollingElement,duration:500,easing:"easeInOutQuad",scrollTop:t||(typeof e=="number"?e:e?e.top()+document.documentElement.scrollTop-R:0),complete:function(){a&&a()}};anime(n)};const l=function(e,t,a){var n={};var i="none";switch(t){case 0:n={opacity:[1,0]};break;case 1:n={opacity:[0,1]};i="block";break;case"bounceUpIn":n={begin:function(t){e.display("block")},translateY:[{value:-60,duration:200},{value:10,duration:200},{value:-5,duration:200},{value:0,duration:200}],opacity:[0,1]};i="block";break;case"shrinkIn":n={begin:function(t){e.display("block")},scale:[{value:1.1,duration:300},{value:1,duration:200}],opacity:1};i="block";break;case"slideRightIn":n={begin:function(t){e.display("block")},translateX:[100,0],opacity:[0,1]};i="block";break;case"slideRightOut":n={translateX:[0,100],opacity:[1,0]};break;default:n=t;i=t.display;break}anime(Object.assign({targets:e,duration:200,easing:"linear"},n)).finished.then(function(){e.display(i);a&&a()})};const d={get:function(e){return localStorage.getItem(e)},set:function(e,t){localStorage.setItem(e,t);return t},del:function(e){localStorage.removeItem(e)}};const u=function(e,t){t=t||document;if(e.indexOf("#")===0){return t.getElementById(e.replace("#",""))}return t.querySelector(e)};u.all=function(e,t){t=t||document;return t.querySelectorAll(e)};u.each=function(e,t,a){return u.all(e,a).forEach(t)};Object.assign(HTMLElement.prototype,{createChild:function(e,t,a){var n=document.createElement(e);Object.assign(n,t);switch(a){case"after":this.insertAfter(n);break;case"replace":this.innerHTML="";default:this.appendChild(n)}return n},wrap:function(e){var t=document.createElement("div");Object.assign(t,e);this.parentNode.insertBefore(t,this);this.parentNode.removeChild(this);t.appendChild(this)},height:function(e){if(e){this.style.height=typeof e=="number"?e+"rem":e}return this.getBoundingClientRect().height},width:function(e){if(e){this.style.width=typeof e=="number"?e+"rem":e}return this.getBoundingClientRect().width},top:function(){return this.getBoundingClientRect().top},left:function(){return this.getBoundingClientRect().left},attr:function(e,t){if(t===null){return this.removeAttribute(e)}if(t){this.setAttribute(e,t);return this}else{return this.getAttribute(e)}},insertAfter:function(e){var t=this.parentNode;if(t.lastChild==this){t.appendChild(e)}else{t.insertBefore(e,this.nextSibling)}},display:function(e){if(e==null){return this.style.display}else{this.style.display=e;return this}},child:function(e){return u(e,this)},find:function(e){return u.all(e,this)},_class:function(e,t,a){var n=t.indexOf(" ")?t.split(" "):[t];var i=this;n.forEach(function(t){if(e=="toggle"){i.classList.toggle(t,a)}else{i.classList[e](t)}})},addClass:function(e){this._class("add",e);return this},removeClass:function(e){this._class("remove",e);return this},toggleClass:function(e,t){this._class("toggle",e,t);return this},hasClass:function(e){return this.classList.contains(e)}});var f=null;const h=/mobile/i.test(window.navigator.userAgent);const p=function(e,t){var a={type:"audio",mode:"random",btns:["play-pause","music"],controls:["mode","backward","play-pause","forward","volume"],events:{"play-pause":function(t){if(i.paused){e.player.play()}else{e.player.pause()}},music:function(e){if(r.el.hasClass("show")){r.hide()}else{r.el.addClass("show");s.scroll().title()}}}},n={random:function(e){return Math.floor(Math.random()*e)},parse:function(e){var t=[];[["music.163.com.*song.*id=(\\d+)","netease","song"],["music.163.com.*album.*id=(\\d+)","netease","album"],["music.163.com.*artist.*id=(\\d+)","netease","artist"],["music.163.com.*playlist.*id=(\\d+)","netease","playlist"],["music.163.com.*discover/toplist.*id=(\\d+)","netease","playlist"],["y.qq.com.*song/(\\w+).html","tencent","song"],["y.qq.com.*album/(\\w+).html","tencent","album"],["y.qq.com.*singer/(\\w+).html","tencent","artist"],["y.qq.com.*playsquare/(\\w+).html","tencent","playlist"],["y.qq.com.*playlist/(\\w+).html","tencent","playlist"],["xiami.com.*song/(\\w+)","xiami","song"],["xiami.com.*album/(\\w+)","xiami","album"],["xiami.com.*artist/(\\w+)","xiami","artist"],["xiami.com.*collect/(\\w+)","xiami","playlist"]].forEach(function(a){var n=new RegExp(a[0]);var i=n.exec(e);if(i!==null){t=[a[1],a[2],i[1]]}});return t},fetch:function(e){var t=[];return new Promise(function(a,i){e.forEach(function(e){var i=n.parse(e);if(i[0]){var r=JSON.stringify(i);var s=d.get(r);if(s){var o=JSON.parse(s);if(i[0]=="netease"&&o&&o.length>0){var c=0;jQuery.ajax({url:o[0].url,type:"get",async:false,timeout:5e3,success:function(e,t){c=200},error:function(e,t,a){c=e.status},complete:function(e,t){c=e.status}});if(c!=200){o.forEach(function(e){var t=e.url.substring(e.url.indexOf("id=")+3,e.url.indexOf("&auth="));e.url="https://music.163.com/song/media/outer/url?id="+t;e.pic="https://p3.music.126.net/Vji3PQJAZ2C7gS_6X51NFQ==/109951164723650033.jpg?param=200y200"})}}t.push.apply(t,o);a(t)}else{fetch("https://api.i-meto.com/meting/api?server="+i[0]+"&type="+i[1]+"&id="+i[2]+"&r="+Math.random()).then(function(e){return e.json()}).then(function(e){d.set(r,JSON.stringify(e));t.push.apply(t,e);a(t)}).catch(function(e){})}}else{t.push(e);a(t)}})})},secondToTime:function(e){var t=function(e){return isNaN(e)?"00":e<10?"0"+e:""+e};var a=Math.floor(e/3600);var n=Math.floor((e-a*3600)/60);var i=Math.floor(e-a*3600-n*60);return(a>0?[a,n,i]:[n,i]).map(t).join(":")},nameMap:{dragStart:h?"touchstart":"mousedown",dragMove:h?"touchmove":"mousemove",dragEnd:h?"touchend":"mouseup"}},i=null;e.player={_id:n.random(999999),group:true,load:function(e){var t="";var a=this;if(e&&e.length>0){if(this.options.rawList!==e){this.options.rawList=e;s.clear()}}else{t="none";this.pause()}for(var n in g.el){g.el[n].display(t)}return this},fetch:function(){var e=this;return new Promise(function(t,a){if(s.data.length>0){t()}else{if(e.options.rawList){var i=[];e.options.rawList.forEach(function(t,a){i.push(new Promise(function(i,r){var o=a;var c;if(!t.list){o=0;e.group=false;c=[t]}else{e.group=true;c=t.list}n.fetch(c).then(function(e){s.add(o,e);i()})}))});Promise.all(i).then(function(){t(true)})}}}).then(function(t){if(t){s.create();m.create();e.mode()}})},mode:function(){var e=s.data.length;if(!e||s.errnum==e)return;var t=m.step=="next"?1:-1;var a=function(){var a=s.index+t;if(a>e||a<0){a=m.step=="next"?0:e-1}s.index=a};var i=function(){var t=n.random(e);if(s.index!==t){s.index=t}else{a()}};switch(this.options.mode){case"random":i();break;case"order":a();break;case"loop":if(m.step)a();if(s.index==-1)i();break}this.init()},"switch":function(e){if(typeof e=="number"&&e!=s.index&&s.current()&&!s.current().error){s.index=e;this.init()}},init:function(){var e=s.current();if(!e||e["error"]){this.mode();return}var t=false;if(!i.paused){t=true;this.stop()}i.attr("src",e.url);i.attr("title",e.name+" - "+e.artist);this.volume(d.get("_PlayerVolume")||"0.7");this.muted(d.get("_PlayerMuted"));p.create();if(this.options.type=="audio")l.create();if(t==true){this.play()}},play:function(){f&&f.player.pause();if(s.current().error){this.mode();return}var e=this;i.play().then(function(){s.scroll()}).catch(function(e){})},pause:function(){i.pause();document.title=y},stop:function(){i.pause();i.currentTime=0;document.title=y},seek:function(e){e=Math.max(e,0);e=Math.min(e,i.duration);i.currentTime=e;p.update(e/i.duration)},muted:function(e){if(e=="muted"){i.muted=e;d.set("_PlayerMuted",e);m.update(0)}else{d.del("_PlayerMuted");i.muted=false;m.update(i.volume)}},volume:function(e){if(!isNaN(e)){m.update(e);d.set("_PlayerVolume",e);i.volume=e}},mini:function(){r.hide()}};var r={el:null,create:function(){if(this.el)return;this.el=e.createChild("div",{className:"player-info",innerHTML:(e.player.options.type=="audio"?'
':"")+'
'},"after");l.el=this.el.child(".preview");s.el=this.el.child(".playlist");m.el=this.el.child(".controller")},hide:function(){var e=this.el;e.addClass("hide");window.setTimeout(function(){e.removeClass("show hide")},300)}};var s={el:null,data:[],index:-1,errnum:0,add:function(e,t){var a=this;t.forEach(function(t,n){t.group=e;t.name=t.name||t.title||"Meida name";t.artist=t.artist||t.author||"Anonymous";t.cover=t.cover||t.pic;t.type=t.type||"normal";a.data.push(t)})},clear:function(){this.data=[];this.el.innerHTML="";if(this.index!==-1){this.index=-1;e.player.fetch()}},create:function(){var t=this.el;this.data.map(function(a,n){if(a.el)return;var r="list-"+e.player._id+"-"+a.group;var o=u("#"+r);if(!o){o=t.createChild("div",{id:r,className:e.player.group?"tab":"",innerHTML:"
    "});if(e.player.group){o.attr("data-title",e.player.options.rawList[a.group]["title"]).attr("data-id",e.player._id)}}a.el=o.child("ol").createChild("li",{title:a.name+" - "+a.artist,innerHTML:''+a.name+""+a.artist+"",onclick:function(t){var a=t.currentTarget;if(s.index===n&&p.el){if(i.paused){e.player.play()}else{e.player.seek(i.duration*p.percent(t,a))}return}e.player.switch(n);e.player.play()}});return a});he()},current:function(){return this.data[this.index]},scroll:function(){var e=this.current();var t=this.el.child("li.active");t&&t.removeClass("active");var a=this.el.child(".tab.active");a&&a.removeClass("active");t=this.el.find(".nav li")[e.group];t&&t.addClass("active");a=this.el.find(".tab")[e.group];a&&a.addClass("active");c(e.el,e.el.offsetTop);return this},title:function(){if(i.paused)return;var e=this.current();document.title="Now Playing..."+e["name"]+" - "+e["artist"]+" | "+y},error:function(){var e=this.current();e.el.removeClass("current").addClass("error");e.error=true;this.errnum++}};var o={el:null,data:null,index:0,create:function(e){var t=s.index;var a=this;var n=s.current().lrc;var i=function(n){if(t!==s.index)return;a.data=a.parse(n);var i="";a.data.forEach(function(e,t){i+=""+e[1]+"

    "});a.el=e.createChild("div",{className:"inner",innerHTML:i},"replace");a.index=0};if(n&&n.startsWith("http"))this.fetch(n,i);else i(n)},update:function(e){if(!this.data)return;if(this.index>this.data.length-1||e=this.data[this.index+1][0])){for(var t=0;t=this.data[t][0]&&(!this.data[t+1]||e/g,"").replace(/^\s+|\s+$/g,"");if(r){const o=r.length;for(var c=0;c
    '+'

    '+t.name+"

    "+t.artist+""+'
    ';this.el.child(".cover").addEventListener("click",e.player.options.events["play-pause"]);o.create(this.el.child(".lrc"))}};var p={el:null,bar:null,create:function(){var e=s.current().el;if(e){if(this.el){this.el.parentNode.removeClass("current").removeEventListener(n.nameMap.dragStart,this.drag);this.el.remove()}this.el=e.createChild("div",{className:"progress"});this.el.attr("data-dtime",n.secondToTime(0));this.bar=this.el.createChild("div",{className:"bar"});e.addClass("current");e.addEventListener(n.nameMap.dragStart,this.drag);s.scroll()}},update:function(e){this.bar.width(Math.floor(e*100)+"%");this.el.attr("data-ptime",n.secondToTime(e*i.duration))},seeking:function(e){if(e)this.el.addClass("seeking");else this.el.removeClass("seeking")},percent:function(e,t){var a=((e.clientX||e.changedTouches[0].clientX)-t.left())/t.width();a=Math.max(a,0);return Math.min(a,1)},drag:function(t){t.preventDefault();var a=s.current().el;var r=function(e){e.preventDefault();var t=p.percent(e,a);p.update(t);o.update(t*i.duration)};var c=function(t){t.preventDefault();a.removeEventListener(n.nameMap.dragEnd,c);a.removeEventListener(n.nameMap.dragMove,r);var s=p.percent(t,a);p.update(s);e.player.seek(s*i.duration);i.disableTimeupdate=false;p.seeking(false)};i.disableTimeupdate=true;p.seeking(true);a.addEventListener(n.nameMap.dragMove,r);a.addEventListener(n.nameMap.dragEnd,c)}};var m={el:null,btns:{},step:"next",create:function(){if(!e.player.options.controls)return;var t=this;e.player.options.controls.forEach(function(a){if(t.btns[a])return;var r={onclick:function(n){t.events[a]?t.events[a](n):e.player.options.events[a](n)}};switch(a){case"volume":r.className=" "+(i.muted?"off":"on");r.innerHTML='
    ';r["on"+n.nameMap.dragStart]=t.events["volume"];r.onclick=null;break;case"mode":r.className=" "+e.player.options.mode;break;default:r.className="";break}r.className=a+r.className+" btn";t.btns[a]=t.el.createChild("div",r)});t.btns["volume"].bar=t.btns["volume"].child(".bar")},events:{mode:function(t){switch(e.player.options.mode){case"loop":e.player.options.mode="random";break;case"random":e.player.options.mode="order";break;default:e.player.options.mode="loop"}m.btns["mode"].className="mode "+e.player.options.mode+" btn";d.set("_PlayerMode",e.player.options.mode)},volume:function(t){t.preventDefault();var a=t.currentTarget;var r=false;var s=function(t){t.preventDefault();e.player.volume(m.percent(t,a));r=true};var o=function(t){t.preventDefault();a.removeEventListener(n.nameMap.dragEnd,o);a.removeEventListener(n.nameMap.dragMove,s);if(r){e.player.muted();e.player.volume(m.percent(t,a))}else{if(i.muted){e.player.muted();e.player.volume(i.volume)}else{e.player.muted("muted");m.update(0)}}};a.addEventListener(n.nameMap.dragMove,s);a.addEventListener(n.nameMap.dragEnd,o)},backward:function(t){m.step="prev";e.player.mode()},forward:function(t){m.step="next";e.player.mode()}},update:function(e){m.btns["volume"].className="volume "+(!i.muted&&e>0?"on":"off")+" btn";m.btns["volume"].bar.width(Math.floor(e*100)+"%")},percent:function(e,t){var a=((e.clientX||e.changedTouches[0].clientX)-t.left())/t.width();a=Math.max(a,0);return Math.min(a,1)}};var v={onerror:function(){s.error();e.player.mode()},ondurationchange:function(){if(i.duration!==1){p.el.attr("data-dtime",n.secondToTime(i.duration))}},onloadedmetadata:function(){e.player.seek(0);p.el.attr("data-dtime",n.secondToTime(i.duration))},onplay:function(){e.parentNode.addClass("playing");G(this.attr("title"));f=e},onpause:function(){e.parentNode.removeClass("playing");f=null},ontimeupdate:function(){if(!this.disableTimeupdate){p.update(this.currentTime/this.duration);o.update(this.currentTime)}},onended:function(t){e.player.mode();e.player.play()}};var g={el:{},create:function(){if(!e.player.options.btns)return;var t=this;e.player.options.btns.forEach(function(a){if(t.el[a])return;t.el[a]=e.createChild("div",{className:a+" btn",onclick:function(t){e.player.fetch().then(function(){e.player.options.events[a](t)})}})})}};var b=function(t){if(e.player.created)return;e.player.options=Object.assign(a,t);e.player.options.mode=d.get("_PlayerMode")||e.player.options.mode;g.create();i=e.createChild(e.player.options.type,v);r.create();e.parentNode.addClass(e.player.options.type);e.player.created=true};b(t);return e};var m=e.statics.indexOf("//")>0?e.statics:e.root;var v={x:"undefined",y:"undefined"};var g=0;var y,b;const w=document.getElementsByTagName("body")[0];const C=document.documentElement;const x=u("#container");const k=u("#loading");const L=u("#nav");const E=u("#header");const T=L.child(".toggle");const N=u("#quick");const M=u("#sidebar");const O=u("#brand");var j=u("#tool"),I,H,A,S;var q=u("#search");var R,P,_;var D=window.innerHeight;var z=window.innerWidth;var B=0,W=window.location.href;var Y;const F=lozad("img, [data-background-image]",{loaded:function(e){e.addClass("lozaded")}});const U={timer:null,lock:false,show:function(){clearTimeout(this.timer);document.body.removeClass("loaded");k.attr("style","display:block");U.lock=false},hide:function(t){if(!e.loader.start)t=-1;this.timer=setTimeout(this.vanish,t||3e3)},vanish:function(){if(U.lock)return;if(e.loader.start)l(k,0);document.body.addClass("loaded");U.lock=true}};const V=function(e){var t=u(".theme .ic");if(e=="dark"){C.attr("data-theme",e);t.removeClass("i-sun");t.addClass("i-moon")}else{C.attr("data-theme",null);t.removeClass("i-moon");t.addClass("i-sun")}};const X=function(e){if(C.attr("data-theme")=="dark")e="#222";u('meta[name="theme-color"]').attr("content",e)};const Q=function(){window.matchMedia("(prefers-color-scheme: dark)").addListener(function(e){if(e.matches){V("dark")}else{V()}});var t=d.get("theme");if(t){V(t)}else{if(e.darkmode){V("dark")}}u(".theme").addEventListener("click",function(e){var t=e.currentTarget.child(".ic");var a=w.createChild("div",{id:"neko",innerHTML:'
    '});var n=function(){l(a,{delay:2500,opacity:0},function(){w.removeChild(a)})};if(t.hasClass("i-sun")){var i=function(){a.addClass("dark");V("dark");d.set("theme","dark");n()}}else{a.addClass("dark");var i=function(){a.removeClass("dark");V();d.set("theme","light");n()}}l(a,1,function(){setTimeout(i,210)})})};const J=function(){document.addEventListener("visibilitychange",function(){switch(document.visibilityState){case"hidden":u('[rel="icon"]').attr("href",m+e.favicon.hidden);document.title=LOCAL.favicon.hide;if(e.loader.switch)U.show();clearTimeout(b);break;case"visible":u('[rel="icon"]').attr("href",m+e.favicon.normal);document.title=LOCAL.favicon.show;if(e.loader.switch)U.hide(1e3);b=setTimeout(function(){document.title=y},2e3);break}})};const G=function(e){if(!e)return;var t=w.createChild("div",{innerHTML:e,className:"tip"});setTimeout(function(){t.addClass("hide");setTimeout(function(){w.removeChild(t)},300)},3e3)};const $=function(e){R=L.height();P=E.height();_=P+u("#waves").height();if(z!=window.innerWidth)ae(null,1);D=window.innerHeight;z=window.innerWidth;M.child(".panels").height(D+"px")};const K=function(e){var t=window.innerHeight;var n=a();var i=n>t?n-t:document.body.scrollHeight-t;var r=window.pageYOffset>P;var s=window.pageYOffset>0;if(r){X("#FFF")}else{X("#222")}L.toggleClass("show",r);j.toggleClass("affix",s);O.toggleClass("affix",s);M.toggleClass("affix",window.pageYOffset>_&&document.body.offsetWidth>991);if(typeof v.y=="undefined"){v.y=window.pageYOffset}g=v.y-window.pageYOffset;if(g<0){L.removeClass("up");L.toggleClass("down",r)}else if(g>0){L.removeClass("down");L.toggleClass("up",r)}else{}v.y=window.pageYOffset;var o=Math.round(Math.min(100*window.pageYOffset/i,100))+"%";H.child("span").innerText=o;u(".percent").width(o)};const Z=function(){if(e.auto_scroll)d.set(W,v.y)};const ee=function(t){var a=window.location.hash;var n=null;if(B){d.del(W);return}if(a)n=u(decodeURI(a));else{n=e.auto_scroll?parseInt(d.get(W)):0}if(n){c(n);B=1}if(t&&a&&!B){c(n);B=1}};const te=function(e,t){var a=w.createChild("textarea",{style:{top:window.scrollY+"px",position:"absolute",opacity:"0"},readOnly:true,value:e});const n=document.getSelection();const i=n.rangeCount>0?n.getRangeAt(0):false;a.select();a.setSelectionRange(0,e.length);a.readOnly=false;var r=document.execCommand("copy");t&&t(r);a.blur();if(i){n.removeAllRanges();n.addRange(i)}w.removeChild(a)};const ae=function(e,t){if(M.hasClass("on")){M.removeClass("on");T.removeClass("close");if(t){M.style=""}else{l(M,"slideRightOut")}}else{if(t){M.style=""}else{l(M,"slideRightIn",function(){M.addClass("on");T.addClass("close")})}}};const ne=function(){var e=M.child(".inner");var t=M.find(".panel");if(M.child(".tab")){e.removeChild(M.child(".tab"))}var a=document.createElement("ul"),n="active";a.className="tab";["contents","related","overview"].forEach(function(e){var t=M.child(".panel."+e);if(t.innerHTML.replace(/(^\s*)|(\s*$)/g,"").length<1){if(e=="contents"){S.display("none")}return}if(e=="contents"){S.display("")}var i=document.createElement("li");var r=document.createElement("span");var s=document.createTextNode(t.attr("data-title"));r.appendChild(s);i.appendChild(r);i.addClass(e+" item");if(n){t.addClass(n);i.addClass(n)}else{t.removeClass("active")}i.addEventListener("click",function(e){var t=event.currentTarget;if(t.hasClass("active"))return;M.find(".tab .item").forEach(function(e){e.removeClass("active")});M.find(".panel").forEach(function(e){e.removeClass("active")});M.child(".panel."+t.className.replace(" item","")).addClass("active");t.addClass("active")});a.appendChild(i);n=""});if(a.childNodes.length>1){e.insertBefore(a,e.childNodes[0]);M.child(".panels").style.paddingTop=""}else{M.child(".panels").style.paddingTop=".625rem"}};const ie=function(){var t=u.all(".contents li");if(t.length<1){return}var a=Array.prototype.slice.call(t)||[];var n=null;a=a.map(function(t,a){var i=t.child("a.toc-link");var s=u(decodeURI(i.attr("href")));if(!s)return;var o=s.child("a.anchor");var l=function(e){e.preventDefault();var t=u(decodeURI(e.currentTarget.attr("href")));n=a;c(t,null,function(){r(a);n=null})};i.addEventListener("click",l);o&&o.addEventListener("click",function(t){l(t);te(e.hostname+"/"+LOCAL.path+t.currentTarget.attr("href"))});return s});var i=M.child(".contents.panel");var r=function(e,n){var r=t[e];if(!r)return;if(r.hasClass("current")){return}u.each(".toc .active",function(e){e&&e.removeClass("active current")});a.forEach(function(e){e&&e.removeClass("active")});r.addClass("active current");a[e]&&a[e].addClass("active");var s=r.parentNode;while(!s.matches(".contents")){if(s.matches("li")){s.addClass("active");var o=u(s.child("a.toc-link").attr("href"));if(o){o.addClass("active")}}s=s.parentNode}if(getComputedStyle(M).display!="none"&&i.hasClass("active")){c(i,r.offsetTop-i.offsetHeight/4)}};var s=function(e){var t=0;var n=e[t];if(n.boundingClientRect.top>0){t=a.indexOf(n.target);return t===0?0:t-1}for(;t0){t.target.addClass("show");e.unobserve(t.target)}}})},{root:null,threshold:[.3]});u.each(".index.wrap article.item, .index.wrap section.item",function(t){e.observe(t)});u(".index.wrap .item:first-child").addClass("show")}u.each(".cards .item",function(e,t){["mouseenter","touchstart"].forEach(function(t){e.addEventListener(t,function(t){if(u(".cards .item.active")){u(".cards .item.active").removeClass("active")}e.addClass("active")})});["mouseleave"].forEach(function(t){e.addEventListener(t,function(t){e.removeClass("active")})})})};const de=function(){u.each("span.exturl",function(e){var t=document.createElement("a");t.href=decodeURIComponent(atob(e.dataset.url).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join(""));t.rel="noopener external nofollow noreferrer";t.target="_blank";t.className=e.className;t.title=e.title||e.innerText;t.innerHTML=e.innerHTML;if(e.dataset.backgroundImage){t.dataset.backgroundImage=e.dataset.backgroundImage}e.parentNode.replaceChild(t,e)})};const ue=function(e){if(u(e+" .md img")){s("fancybox");r("fancybox",function(){var t=jQuery.noConflict();u.each(e+" p.gallery",function(e){var t=document.createElement("div");t.className="gallery";t.attr("data-height",e.attr("data-height")||220);t.innerHTML=e.innerHTML.replace(/
    /g,"");e.parentNode.insertBefore(t,e);e.remove()});u.each(e+" .md img:not(.emoji):not(.vemoji)",function(e){var a=t(e);var n,i="image-info";if(!a.is("a img")){var r=a.attr("data-src")||a.attr("src");a.data("safe-src",r);var s=a.wrap('').parent("a");if(!a.is(".gallery img")){s.attr("data-fancybox","default").attr("rel","default")}else{i="jg-caption"}}if(n=e.attr("title")){s.attr("data-caption",n);var o=document.createElement("span");var c=document.createTextNode(n);o.appendChild(c);o.addClass(i);e.insertAfter(o)}});u.each(e+" div.gallery",function(e,a){t(e).justifiedGallery({rowHeight:t(e).data("height")||120,rel:"gallery-"+a}).on("jg.complete",function(){t(this).find("a").each(function(e,t){t.attr("data-fancybox","gallery-"+a)})})});t.fancybox.defaults.hash=false;t(e+" .fancybox").fancybox({loop:true,helpers:{overlay:{locked:false}}})},window.jQuery)}};const fe=function(){pe();if(!u(".md"))return;ue(".post.block");u(".post.block").oncopy=function(e){G(LOCAL.copyright);if(LOCAL.nocopy){e.preventDefault();return}var t=u("#copyright");if(window.getSelection().toString().length>30&&t){e.preventDefault();var a="# "+t.child(".author").innerText;var n="# "+t.child(".link").innerText;var i="# "+t.child(".license").innerText;var r=a+"
    "+n+"
    "+i+"

    "+window.getSelection().toString().replace(/\r\n/g,"
    ");var s=a+"\n"+n+"\n"+i+"\n\n"+window.getSelection().toString().replace(/\r\n/g,"\n");if(e.clipboardData){e.clipboardData.setData("text/html",r);e.clipboardData.setData("text/plain",s)}else if(window.clipboardData){return window.clipboardData.setData("text",s)}}};u.each("li ruby",function(e){var t=e.parentNode;if(e.parentNode.tagName!="LI"){t=e.parentNode.parentNode}t.addClass("ruby")});u.each("ol[start]",function(e){e.style.counterReset="counter "+parseInt(e.attr("start")-1)});u.each(".md table",function(e){e.wrap({className:"table-container"})});u.each(".highlight > .table-container",function(e){e.className="code-container"});u.each("figure.highlight",function(e){var t=e.child(".code-container");var a=e.child("figcaption");e.insertAdjacentHTML("beforeend",'
    ');var n=e.child(".copy-btn");if(LOCAL.nocopy){n.remove()}else{n.addEventListener("click",function(e){var a=e.currentTarget;var n="",i="";t.find("pre").forEach(function(e){i+=n+e.innerText;n="\n"});te(i,function(e){a.child(".ic").className=e?"ic i-check":"ic i-times";a.blur();G(LOCAL.copyright)})});n.addEventListener("mouseleave",function(e){setTimeout(function(){e.target.child(".ic").className="ic i-clipboard"},1e3)})}var i=e.child(".breakline-btn");i.addEventListener("click",function(t){var a=t.currentTarget;if(e.hasClass("breakline")){e.removeClass("breakline");a.child(".ic").className="ic i-align-left"}else{e.addClass("breakline"); -a.child(".ic").className="ic i-align-justify"}});var r=e.child(".fullscreen-btn");var s=function(){e.removeClass("fullscreen");e.scrollTop=0;w.removeClass("fullscreen");r.child(".ic").className="ic i-expand"};var o=function(t){var a=t.currentTarget;if(e.hasClass("fullscreen")){s();u&&u();c(e)}else{e.addClass("fullscreen");w.addClass("fullscreen");r.child(".ic").className="ic i-compress";d&&d()}};r.addEventListener("click",o);a&&a.addEventListener("click",o);if(t&&t.find("tr").length>15){t.style.maxHeight="300px";t.insertAdjacentHTML("beforeend",'
    ');var l=t.child(".show-btn");var d=function(){t.style.maxHeight="";l.addClass("open")};var u=function(){t.style.maxHeight="300px";l.removeClass("open")};l.addEventListener("click",function(e){if(l.hasClass("open")){s();u();c(t)}else{d()}})}});u.each("pre.mermaid > svg",function(e){e.style.maxWidth=""});u.each(".reward button",function(e){e.addEventListener("click",function(e){e.preventDefault();var t=u("#qr");if(t.display()==="inline-flex"){l(t,0)}else{l(t,1,function(){t.display("inline-flex")})}})});u.each(".quiz > ul.options li",function(e){e.addEventListener("click",function(t){if(e.hasClass("correct")){e.toggleClass("right");e.parentNode.parentNode.addClass("show")}else{e.toggleClass("wrong")}})});u.each(".quiz > p",function(e){e.addEventListener("click",function(t){e.parentNode.toggleClass("show")})});u.each(".quiz > p:first-child",function(e){var t=e.parentNode;var a="choice";if(t.hasClass("true")||t.hasClass("false"))a="true_false";if(t.hasClass("multi"))a="multiple";if(t.hasClass("fill"))a="gap_fill";if(t.hasClass("essay"))a="essay";e.attr("data-type",LOCAL.quiz[a])});u.each(".quiz .mistake",function(e){e.attr("data-type",LOCAL.quiz.mistake)});u.each("div.tags a",function(e){e.className=["primary","success","info","warning","danger"][Math.floor(Math.random()*5)]});u.each(".md div.player",function(e){p(e,{type:e.attr("data-type"),mode:"order",btns:[]}).player.load(JSON.parse(e.attr("data-src"))).fetch()})};const he=function(){var e;u.each("div.tab",function(t,a){if(t.attr("data-ready"))return;var n=t.attr("data-id");var i=t.attr("data-title");var r=u("#"+n);if(!r){r=document.createElement("div");r.className="tabs";r.id=n;r.innerHTML='
    ';var s=r.child(".show-btn");s.addEventListener("click",function(e){c(r)});t.parentNode.insertBefore(r,t);e=true}else{e=false}var o=r.child(".nav ul");if(!o){o=r.createChild("div",{className:"nav",innerHTML:"
      "}).child("ul")}var l=o.createChild("li",{innerHTML:i});if(e){l.addClass("active");t.addClass("active")}l.addEventListener("click",function(e){var a=e.currentTarget;r.find(".active").forEach(function(e){e.removeClass("active")});t.addClass("active");a.addClass("active")});r.appendChild(t);t.attr("data-ready",true)})};const pe=function(){var e=u("#comments");if(!e){A.display("none");return}else{A.display("")}if(!window.IntersectionObserver){s("valine")}else{var t=new IntersectionObserver(function(e,t){var a=e[0];s("valine");if(a.isIntersecting||a.intersectionRatio>0){l(u("#comments"),"bounceUpIn");t.disconnect()}});t.observe(e)}};const me=function(t){if(e.search===null)return;if(!q){q=w.createChild("div",{id:"search",innerHTML:'
      '})}var a=instantsearch({indexName:e.search.indexName,searchClient:algoliasearch(e.search.appID,e.search.apiKey),searchFunction:function(e){var t=u(".search-input");if(t.value){e.search()}}});a.on("render",function(){t.refresh(u("#search-hits"))});a.addWidgets([instantsearch.widgets.configure({hitsPerPage:e.search.hits.per_page||10}),instantsearch.widgets.searchBox({container:".search-input-container",placeholder:LOCAL.search.placeholder,showReset:false,showSubmit:false,showLoadingIndicator:false,cssClasses:{input:"search-input"}}),instantsearch.widgets.stats({container:"#search-stats",templates:{text:function(e){var t=LOCAL.search.stats.replace(/\$\{hits}/,e.nbHits).replace(/\$\{time}/,e.processingTimeMS);return t+'
      '}}}),instantsearch.widgets.hits({container:"#search-hits",templates:{item:function(t){var a=t.categories?""+t.categories.join('')+"":"";return''+a+t._highlightResult.title.value+""},empty:function(e){return'
      '+LOCAL.search.empty.replace(/\$\{query}/,e.query)+"
      "}},cssClasses:{item:"item"}}),instantsearch.widgets.pagination({container:"#search-pagination",scrollTo:false,showFirst:false,showLast:false,templates:{first:'',last:'',previous:'',next:''},cssClasses:{root:"pagination",item:"pagination-item",link:"page-number",selectedItem:"current",disabledItem:"disabled-item"}})]);a.start();u.each(".search",function(e){e.addEventListener("click",function(){document.body.style.overflow="hidden";l(q,"shrinkIn",function(){u(".search-input").focus()})})});const n=function(){document.body.style.overflow="";l(q,0)};q.addEventListener("click",function(e){if(e.target===q){n()}});u(".close-btn").addEventListener("click",n);window.addEventListener("pjax:success",n);window.addEventListener("keyup",function(e){if(e.key==="Escape"){n()}})};const ve=function(){u.each(".overview .menu > .item",function(e){L.child(".menu").appendChild(e.cloneNode(true))});k.addEventListener("click",U.vanish);T.addEventListener("click",ae);u(".dimmer").addEventListener("click",ae);N.child(".down").addEventListener("click",se);N.child(".up").addEventListener("click",re);if(!j){j=E.createChild("div",{id:"tool",innerHTML:'
      0%
      '})}I=j.child(".player");H=j.child(".back-to-top");A=j.child(".chat");S=j.child(".contents");H.addEventListener("click",re);A.addEventListener("click",oe);S.addEventListener("click",ae);p(I);u("main").addEventListener("click",function(){I.player.mini()})};const ge=function(){Z();if(M.hasClass("on")){l(M,function(){M.removeClass("on");T.removeClass("close")})}u("#main").innerHTML="";u("#main").appendChild(k.lastChild.cloneNode(true));c(0)};const ye=function(t){B=0;W=window.location.href;s("katex");r("copy_tex");s("mermaid");r("chart");r("valine",function(){var t=Object.assign({},e.valine);t=Object.assign(t,LOCAL.valine||{});t.el="#comments";t.pathname=LOCAL.path;t.pjax=Y;t.lazyload=F;new MiniValine(t);setTimeout(function(){ee(1);ue(".v")},1e3)},window.MiniValine);if(!t){u.each("script[data-pjax]",o)}y=document.title;$();ce();ne();ie();de();fe();he();I.player.load(LOCAL.audio||e.audio||{});U.hide();setTimeout(function(){ee()},500);le();F.observe()};const be=function(){ve();Y=new Pjax({selectors:["head title",".languages",".pjax","script[data-config]"],analytics:false,cacheBust:false});e.quicklink.ignores=LOCAL.ignores;quicklink.listen(e.quicklink);J();Q();me(Y);window.addEventListener("scroll",K);window.addEventListener("resize",$);window.addEventListener("pjax:send",ge);window.addEventListener("pjax:success",ye);window.addEventListener("beforeunload",function(){Z()});ye(1)};window.addEventListener("DOMContentLoaded",be);console.log("%c Theme.Shoka v"+e.version+" %c https://shoka.lostyu.me/ ","color: white; background: #e9546b; padding:5px 0;","padding:4px;border:1px solid #e9546b;");var we=document.createElement("canvas");we.style.cssText="position:fixed;top:0;left:0;pointer-events:none;z-index:9999999";document.body.appendChild(we);var Ce=we.getContext("2d");var xe=30;var ke=0;var Le=0;var Ee="click";var Te=e.fireworks;function Ne(){we.width=window.innerWidth*2;we.height=window.innerHeight*2;we.style.width=window.innerWidth+"px";we.style.height=window.innerHeight+"px";we.getContext("2d").scale(2,2)}function Me(e){ke=e.clientX||e.touches&&e.touches[0].clientX;Le=e.clientY||e.touches&&e.touches[0].clientY}function Oe(e){var t=anime.random(0,360)*Math.PI/180;var a=anime.random(50,180);var n=[-1,1][anime.random(0,1)]*a;return{x:e.x+n*Math.cos(t),y:e.y+n*Math.sin(t)}}function je(e,t){var a={};a.x=e;a.y=t;a.color=Te[anime.random(0,Te.length-1)];a.radius=anime.random(16,32);a.endPos=Oe(a);a.draw=function(){Ce.beginPath();Ce.arc(a.x,a.y,a.radius,0,2*Math.PI,true);Ce.fillStyle=a.color;Ce.fill()};return a}function Ie(e,t){var a={};a.x=e;a.y=t;a.color="#FFF";a.radius=.1;a.alpha=.5;a.lineWidth=6;a.draw=function(){Ce.globalAlpha=a.alpha;Ce.beginPath();Ce.arc(a.x,a.y,a.radius,0,2*Math.PI,true);Ce.lineWidth=a.lineWidth;Ce.strokeStyle=a.color;Ce.stroke();Ce.globalAlpha=1};return a}function He(e){for(var t=0;t .inner").offsetHeight};const n=function(e,t,a){if(a){t()}else{var n=document.createElement("script");n.onload=n.onreadystatechange=function(e,a){if(a||!n.readyState||/loaded|complete/.test(n.readyState)){n.onload=n.onreadystatechange=null;n=undefined;if(!a&&t)setTimeout(t,0)}};n.src=e;document.head.appendChild(n)}};const i=function(t,a){var n=e[t][a];if(n.indexOf("npm")>-1||n.indexOf("gh")>-1||n.indexOf("combine")>-1)return"//cdn.jsdelivr.net/"+n;if(n.indexOf("http")>-1)return n;return m+n};const r=function(e,t,a){if(LOCAL[e]){n(i("js",e),t||function(){window[e]=true},a||window[e])}};const s=function(e,t){if(window["css"+e])return;if(LOCAL[e]){document.head.createChild("link",{rel:"stylesheet",href:i("css",e)});window["css"+e]=true}};const o=function(e){var t=e.text||e.textContent||e.innerHTML||"";var a=e.parentNode;a.removeChild(e);var n=document.createElement("script");if(e.id){n.id=e.id}if(e.className){n.className=e.className}if(e.type){n.type=e.type}if(e.src){n.src=e.src;n.async=false}if(e.dataset.pjax!==undefined){n.dataset.pjax=""}if(t!==""){n.appendChild(document.createTextNode(t))}a.appendChild(n)};const c=function(e,t,a){var n={targets:typeof t=="number"?e.parentNode:document.scrollingElement,duration:500,easing:"easeInOutQuad",scrollTop:t||(typeof e=="number"?e:e?e.top()+document.documentElement.scrollTop-R:0),complete:function(){a&&a()}};anime(n)};const l=function(e,t,a){var n={};var i="none";switch(t){case 0:n={opacity:[1,0]};break;case 1:n={opacity:[0,1]};i="block";break;case"bounceUpIn":n={begin:function(t){e.display("block")},translateY:[{value:-60,duration:200},{value:10,duration:200},{value:-5,duration:200},{value:0,duration:200}],opacity:[0,1]};i="block";break;case"shrinkIn":n={begin:function(t){e.display("block")},scale:[{value:1.1,duration:300},{value:1,duration:200}],opacity:1};i="block";break;case"slideRightIn":n={begin:function(t){e.display("block")},translateX:[100,0],opacity:[0,1]};i="block";break;case"slideRightOut":n={translateX:[0,100],opacity:[1,0]};break;default:n=t;i=t.display;break}anime(Object.assign({targets:e,duration:200,easing:"linear"},n)).finished.then(function(){e.display(i);a&&a()})};const d={get:function(e){return localStorage.getItem(e)},set:function(e,t){localStorage.setItem(e,t);return t},del:function(e){localStorage.removeItem(e)}};const u=function(e,t){t=t||document;if(e.indexOf("#")===0){return t.getElementById(e.replace("#",""))}return t.querySelector(e)};u.all=function(e,t){t=t||document;return t.querySelectorAll(e)};u.each=function(e,t,a){return u.all(e,a).forEach(t)};Object.assign(HTMLElement.prototype,{createChild:function(e,t,a){var n=document.createElement(e);Object.assign(n,t);switch(a){case"after":this.insertAfter(n);break;case"replace":this.innerHTML="";default:this.appendChild(n)}return n},wrap:function(e){var t=document.createElement("div");Object.assign(t,e);this.parentNode.insertBefore(t,this);this.parentNode.removeChild(this);t.appendChild(this)},height:function(e){if(e){this.style.height=typeof e=="number"?e+"rem":e}return this.getBoundingClientRect().height},width:function(e){if(e){this.style.width=typeof e=="number"?e+"rem":e}return this.getBoundingClientRect().width},top:function(){return this.getBoundingClientRect().top},left:function(){return this.getBoundingClientRect().left},attr:function(e,t){if(t===null){return this.removeAttribute(e)}if(t){this.setAttribute(e,t);return this}else{return this.getAttribute(e)}},insertAfter:function(e){var t=this.parentNode;if(t.lastChild==this){t.appendChild(e)}else{t.insertBefore(e,this.nextSibling)}},display:function(e){if(e==null){return this.style.display}else{this.style.display=e;return this}},child:function(e){return u(e,this)},find:function(e){return u.all(e,this)},_class:function(e,t,a){var n=t.indexOf(" ")?t.split(" "):[t];var i=this;n.forEach(function(t){if(e=="toggle"){i.classList.toggle(t,a)}else{i.classList[e](t)}})},addClass:function(e){this._class("add",e);return this},removeClass:function(e){this._class("remove",e);return this},toggleClass:function(e,t){this._class("toggle",e,t);return this},hasClass:function(e){return this.classList.contains(e)}});var f=null;const h=/mobile/i.test(window.navigator.userAgent);const p=function(e,t){var a={type:"audio",mode:"random",btns:["play-pause","music"],controls:["mode","backward","play-pause","forward","volume"],events:{"play-pause":function(t){if(i.paused){e.player.play()}else{e.player.pause()}},music:function(e){if(s.el.hasClass("show")){s.hide()}else{s.el.addClass("show");o.scroll().title()}}}},n={random:function(e){return Math.floor(Math.random()*e)},parse:function(e){var t=[];[["music.163.com.*song.*id=(\\d+)","netease","song"],["music.163.com.*album.*id=(\\d+)","netease","album"],["music.163.com.*artist.*id=(\\d+)","netease","artist"],["music.163.com.*playlist.*id=(\\d+)","netease","playlist"],["music.163.com.*discover/toplist.*id=(\\d+)","netease","playlist"],["y.qq.com.*song/(\\w+).html","tencent","song"],["y.qq.com.*album/(\\w+).html","tencent","album"],["y.qq.com.*singer/(\\w+).html","tencent","artist"],["y.qq.com.*playsquare/(\\w+).html","tencent","playlist"],["y.qq.com.*playlist/(\\w+).html","tencent","playlist"],["xiami.com.*song/(\\w+)","xiami","song"],["xiami.com.*album/(\\w+)","xiami","album"],["xiami.com.*artist/(\\w+)","xiami","artist"],["xiami.com.*collect/(\\w+)","xiami","playlist"]].forEach(function(a){var n=new RegExp(a[0]);var i=n.exec(e);if(i!==null){t=[a[1],a[2],i[1]]}});return t},fetch:function(e){var t=[];return new Promise(function(a,i){e.forEach(function(e){var i=n.parse(e);if(i[0]){var s=JSON.stringify(i);var o=d.get(s);if(o){var c=JSON.parse(o);if(i[0]=="netease"&&c&&c.length>0){var l=0;r("fancybox",function(){jQuery.ajax({url:c[0].url,type:"get",async:false,timeout:5e3,success:function(e,t){l=200},error:function(e,t,a){l=e.status},complete:function(e,t){l=e.status}})},window.jQuery);if(l!=200){c.forEach(function(e){var t=e.url.substring(e.url.indexOf("id=")+3,e.url.indexOf("&auth="));e.url="https://music.163.com/song/media/outer/url?id="+t;e.pic="https://p3.music.126.net/Vji3PQJAZ2C7gS_6X51NFQ==/109951164723650033.jpg?param=200y200"})}}t.push.apply(t,c);a(t)}else{fetch("https://api.i-meto.com/meting/api?server="+i[0]+"&type="+i[1]+"&id="+i[2]+"&r="+Math.random()).then(function(e){return e.json()}).then(function(e){d.set(s,JSON.stringify(e));t.push.apply(t,e);a(t)}).catch(function(e){})}}else{t.push(e);a(t)}})})},secondToTime:function(e){var t=function(e){return isNaN(e)?"00":e<10?"0"+e:""+e};var a=Math.floor(e/3600);var n=Math.floor((e-a*3600)/60);var i=Math.floor(e-a*3600-n*60);return(a>0?[a,n,i]:[n,i]).map(t).join(":")},nameMap:{dragStart:h?"touchstart":"mousedown",dragMove:h?"touchmove":"mousemove",dragEnd:h?"touchend":"mouseup"}},i=null;e.player={_id:n.random(999999),group:true,load:function(e){var t="";var a=this;if(e&&e.length>0){if(this.options.rawList!==e){this.options.rawList=e;o.clear()}}else{t="none";this.pause()}for(var n in b.el){b.el[n].display(t)}return this},fetch:function(){var e=this;return new Promise(function(t,a){if(o.data.length>0){t()}else{if(e.options.rawList){var i=[];e.options.rawList.forEach(function(t,a){i.push(new Promise(function(i,r){var s=a;var c;if(!t.list){s=0;e.group=false;c=[t]}else{e.group=true;c=t.list}n.fetch(c).then(function(e){o.add(s,e);i()})}))});Promise.all(i).then(function(){t(true)})}}}).then(function(t){if(t){o.create();v.create();e.mode()}})},mode:function(){var e=o.data.length;if(!e||o.errnum==e)return;var t=v.step=="next"?1:-1;var a=function(){var a=o.index+t;if(a>e||a<0){a=v.step=="next"?0:e-1}o.index=a};var i=function(){var t=n.random(e);if(o.index!==t){o.index=t}else{a()}};switch(this.options.mode){case"random":i();break;case"order":a();break;case"loop":if(v.step)a();if(o.index==-1)i();break}this.init()},"switch":function(e){if(typeof e=="number"&&e!=o.index&&o.current()&&!o.current().error){o.index=e;this.init()}},init:function(){var e=o.current();if(!e||e["error"]){this.mode();return}var t=false;if(!i.paused){t=true;this.stop()}i.attr("src",e.url);i.attr("title",e.name+" - "+e.artist);this.volume(d.get("_PlayerVolume")||"0.7");this.muted(d.get("_PlayerMuted"));m.create();if(this.options.type=="audio")p.create();if(t==true){this.play()}},play:function(){f&&f.player.pause();if(o.current().error){this.mode();return}var e=this;i.play().then(function(){o.scroll()}).catch(function(e){})},pause:function(){i.pause();document.title=y},stop:function(){i.pause();i.currentTime=0;document.title=y},seek:function(e){e=Math.max(e,0);e=Math.min(e,i.duration);i.currentTime=e;m.update(e/i.duration)},muted:function(e){if(e=="muted"){i.muted=e;d.set("_PlayerMuted",e);v.update(0)}else{d.del("_PlayerMuted");i.muted=false;v.update(i.volume)}},volume:function(e){if(!isNaN(e)){v.update(e);d.set("_PlayerVolume",e);i.volume=e}},mini:function(){s.hide()}};var s={el:null,create:function(){if(this.el)return;this.el=e.createChild("div",{className:"player-info",innerHTML:(e.player.options.type=="audio"?'
      ':"")+'
      '},"after");p.el=this.el.child(".preview");o.el=this.el.child(".playlist");v.el=this.el.child(".controller")},hide:function(){var e=this.el;e.addClass("hide");window.setTimeout(function(){e.removeClass("show hide")},300)}};var o={el:null,data:[],index:-1,errnum:0,add:function(e,t){var a=this;t.forEach(function(t,n){t.group=e;t.name=t.name||t.title||"Meida name";t.artist=t.artist||t.author||"Anonymous";t.cover=t.cover||t.pic;t.type=t.type||"normal";a.data.push(t)})},clear:function(){this.data=[];this.el.innerHTML="";if(this.index!==-1){this.index=-1;e.player.fetch()}},create:function(){var t=this.el;this.data.map(function(a,n){if(a.el)return;var r="list-"+e.player._id+"-"+a.group;var s=u("#"+r);if(!s){s=t.createChild("div",{id:r,className:e.player.group?"tab":"",innerHTML:"
        "});if(e.player.group){s.attr("data-title",e.player.options.rawList[a.group]["title"]).attr("data-id",e.player._id)}}a.el=s.child("ol").createChild("li",{title:a.name+" - "+a.artist,innerHTML:''+a.name+""+a.artist+"",onclick:function(t){var a=t.currentTarget;if(o.index===n&&m.el){if(i.paused){e.player.play()}else{e.player.seek(i.duration*m.percent(t,a))}return}e.player.switch(n);e.player.play()}});return a});he()},current:function(){return this.data[this.index]},scroll:function(){var e=this.current();var t=this.el.child("li.active");t&&t.removeClass("active");var a=this.el.child(".tab.active");a&&a.removeClass("active");t=this.el.find(".nav li")[e.group];t&&t.addClass("active");a=this.el.find(".tab")[e.group];a&&a.addClass("active");c(e.el,e.el.offsetTop);return this},title:function(){if(i.paused)return;var e=this.current();document.title="Now Playing..."+e["name"]+" - "+e["artist"]+" | "+y},error:function(){var e=this.current();e.el.removeClass("current").addClass("error");e.error=true;this.errnum++}};var l={el:null,data:null,index:0,create:function(e){var t=o.index;var a=this;var n=o.current().lrc;var i=function(n){if(t!==o.index)return;a.data=a.parse(n);var i="";a.data.forEach(function(e,t){i+=""+e[1]+"

        "});a.el=e.createChild("div",{className:"inner",innerHTML:i},"replace");a.index=0};if(n&&n.startsWith("http"))this.fetch(n,i);else i(n)},update:function(e){if(!this.data)return;if(this.index>this.data.length-1||e=this.data[this.index+1][0])){for(var t=0;t=this.data[t][0]&&(!this.data[t+1]||e/g,"").replace(/^\s+|\s+$/g,"");if(r){const o=r.length;for(var c=0;c
        '+'

        '+t.name+"

        "+t.artist+""+'
        ';this.el.child(".cover").addEventListener("click",e.player.options.events["play-pause"]);l.create(this.el.child(".lrc"))}};var m={el:null,bar:null,create:function(){var e=o.current().el;if(e){if(this.el){this.el.parentNode.removeClass("current").removeEventListener(n.nameMap.dragStart,this.drag);this.el.remove()}this.el=e.createChild("div",{className:"progress"});this.el.attr("data-dtime",n.secondToTime(0));this.bar=this.el.createChild("div",{className:"bar"});e.addClass("current");e.addEventListener(n.nameMap.dragStart,this.drag);o.scroll()}},update:function(e){this.bar.width(Math.floor(e*100)+"%");this.el.attr("data-ptime",n.secondToTime(e*i.duration))},seeking:function(e){if(e)this.el.addClass("seeking");else this.el.removeClass("seeking")},percent:function(e,t){var a=((e.clientX||e.changedTouches[0].clientX)-t.left())/t.width();a=Math.max(a,0);return Math.min(a,1)},drag:function(t){t.preventDefault();var a=o.current().el;var r=function(e){e.preventDefault();var t=m.percent(e,a);m.update(t);l.update(t*i.duration)};var s=function(t){t.preventDefault();a.removeEventListener(n.nameMap.dragEnd,s);a.removeEventListener(n.nameMap.dragMove,r);var o=m.percent(t,a);m.update(o);e.player.seek(o*i.duration);i.disableTimeupdate=false;m.seeking(false)};i.disableTimeupdate=true;m.seeking(true);a.addEventListener(n.nameMap.dragMove,r);a.addEventListener(n.nameMap.dragEnd,s)}};var v={el:null,btns:{},step:"next",create:function(){if(!e.player.options.controls)return;var t=this;e.player.options.controls.forEach(function(a){if(t.btns[a])return;var r={onclick:function(n){t.events[a]?t.events[a](n):e.player.options.events[a](n)}};switch(a){case"volume":r.className=" "+(i.muted?"off":"on");r.innerHTML='
        ';r["on"+n.nameMap.dragStart]=t.events["volume"];r.onclick=null;break;case"mode":r.className=" "+e.player.options.mode;break;default:r.className="";break}r.className=a+r.className+" btn";t.btns[a]=t.el.createChild("div",r)});t.btns["volume"].bar=t.btns["volume"].child(".bar")},events:{mode:function(t){switch(e.player.options.mode){case"loop":e.player.options.mode="random";break;case"random":e.player.options.mode="order";break;default:e.player.options.mode="loop"}v.btns["mode"].className="mode "+e.player.options.mode+" btn";d.set("_PlayerMode",e.player.options.mode)},volume:function(t){t.preventDefault();var a=t.currentTarget;var r=false;var s=function(t){t.preventDefault();e.player.volume(v.percent(t,a));r=true};var o=function(t){t.preventDefault();a.removeEventListener(n.nameMap.dragEnd,o);a.removeEventListener(n.nameMap.dragMove,s);if(r){e.player.muted();e.player.volume(v.percent(t,a))}else{if(i.muted){e.player.muted();e.player.volume(i.volume)}else{e.player.muted("muted");v.update(0)}}};a.addEventListener(n.nameMap.dragMove,s);a.addEventListener(n.nameMap.dragEnd,o)},backward:function(t){v.step="prev";e.player.mode()},forward:function(t){v.step="next";e.player.mode()}},update:function(e){v.btns["volume"].className="volume "+(!i.muted&&e>0?"on":"off")+" btn";v.btns["volume"].bar.width(Math.floor(e*100)+"%")},percent:function(e,t){var a=((e.clientX||e.changedTouches[0].clientX)-t.left())/t.width();a=Math.max(a,0);return Math.min(a,1)}};var g={onerror:function(){o.error();e.player.mode()},ondurationchange:function(){if(i.duration!==1){m.el.attr("data-dtime",n.secondToTime(i.duration))}},onloadedmetadata:function(){e.player.seek(0);m.el.attr("data-dtime",n.secondToTime(i.duration))},onplay:function(){e.parentNode.addClass("playing");G(this.attr("title"));f=e},onpause:function(){e.parentNode.removeClass("playing");f=null},ontimeupdate:function(){if(!this.disableTimeupdate){m.update(this.currentTime/this.duration);l.update(this.currentTime)}},onended:function(t){e.player.mode();e.player.play()}};var b={el:{},create:function(){if(!e.player.options.btns)return;var t=this;e.player.options.btns.forEach(function(a){if(t.el[a])return;t.el[a]=e.createChild("div",{className:a+" btn",onclick:function(t){e.player.fetch().then(function(){e.player.options.events[a](t)})}})})}};var w=function(t){if(e.player.created)return;e.player.options=Object.assign(a,t);e.player.options.mode=d.get("_PlayerMode")||e.player.options.mode;b.create();i=e.createChild(e.player.options.type,g);s.create();e.parentNode.addClass(e.player.options.type);e.player.created=true};w(t);return e};var m=e.statics.indexOf("//")>0?e.statics:e.root;var v={x:"undefined",y:"undefined"};var g=0;var y,b;const w=document.getElementsByTagName("body")[0];const C=document.documentElement;const x=u("#container");const k=u("#loading");const L=u("#nav");const E=u("#header");const T=L.child(".toggle");const N=u("#quick");const M=u("#sidebar");const O=u("#brand");var j=u("#tool"),I,H,A,S;var q=u("#search");var R,P,_;var D=window.innerHeight;var z=window.innerWidth;var B=0,W=window.location.href;var Y;const F=lozad("img, [data-background-image]",{loaded:function(e){e.addClass("lozaded")}});const U={timer:null,lock:false,show:function(){clearTimeout(this.timer);document.body.removeClass("loaded");k.attr("style","display:block");U.lock=false},hide:function(t){if(!e.loader.start)t=-1;this.timer=setTimeout(this.vanish,t||3e3)},vanish:function(){if(U.lock)return;if(e.loader.start)l(k,0);document.body.addClass("loaded");U.lock=true}};const V=function(e){var t=u(".theme .ic");if(e=="dark"){C.attr("data-theme",e);t.removeClass("i-sun");t.addClass("i-moon")}else{C.attr("data-theme",null);t.removeClass("i-moon");t.addClass("i-sun")}};const Q=function(e){if(C.attr("data-theme")=="dark")e="#222";u('meta[name="theme-color"]').attr("content",e)};const X=function(){window.matchMedia("(prefers-color-scheme: dark)").addListener(function(e){if(e.matches){V("dark")}else{V()}});var t=d.get("theme");if(t){V(t)}else{if(e.darkmode){V("dark")}}u(".theme").addEventListener("click",function(e){var t=e.currentTarget.child(".ic");var a=w.createChild("div",{id:"neko",innerHTML:'
        '});var n=function(){l(a,{delay:2500,opacity:0},function(){w.removeChild(a)})};if(t.hasClass("i-sun")){var i=function(){a.addClass("dark");V("dark");d.set("theme","dark");n()}}else{a.addClass("dark");var i=function(){a.removeClass("dark");V();d.set("theme","light");n()}}l(a,1,function(){setTimeout(i,210)})})};const J=function(){document.addEventListener("visibilitychange",function(){switch(document.visibilityState){case"hidden":u('[rel="icon"]').attr("href",m+e.favicon.hidden);document.title=LOCAL.favicon.hide;if(e.loader.switch)U.show();clearTimeout(b);break;case"visible":u('[rel="icon"]').attr("href",m+e.favicon.normal);document.title=LOCAL.favicon.show;if(e.loader.switch)U.hide(1e3);b=setTimeout(function(){document.title=y},2e3);break}})};const G=function(e){if(!e)return;var t=w.createChild("div",{innerHTML:e,className:"tip"});setTimeout(function(){t.addClass("hide");setTimeout(function(){w.removeChild(t)},300)},3e3)};const $=function(e){R=L.height();P=E.height();_=P+u("#waves").height();if(z!=window.innerWidth)ae(null,1);D=window.innerHeight;z=window.innerWidth;M.child(".panels").height(D+"px")};const K=function(e){var t=window.innerHeight;var n=a();var i=n>t?n-t:document.body.scrollHeight-t;var r=window.pageYOffset>P;var s=window.pageYOffset>0;if(r){Q("#FFF")}else{Q("#222")}L.toggleClass("show",r);j.toggleClass("affix",s);O.toggleClass("affix",s);M.toggleClass("affix",window.pageYOffset>_&&document.body.offsetWidth>991);if(typeof v.y=="undefined"){v.y=window.pageYOffset}g=v.y-window.pageYOffset;if(g<0){L.removeClass("up");L.toggleClass("down",r)}else if(g>0){L.removeClass("down");L.toggleClass("up",r)}else{}v.y=window.pageYOffset;var o=Math.round(Math.min(100*window.pageYOffset/i,100))+"%";H.child("span").innerText=o;u(".percent").width(o)};const Z=function(){if(e.auto_scroll)d.set(W,v.y)};const ee=function(t){var a=window.location.hash;var n=null;if(B){d.del(W);return}if(a)n=u(decodeURI(a));else{n=e.auto_scroll?parseInt(d.get(W)):0}if(n){c(n);B=1}if(t&&a&&!B){c(n);B=1}};const te=function(e,t){var a=w.createChild("textarea",{style:{top:window.scrollY+"px",position:"absolute",opacity:"0"},readOnly:true,value:e});const n=document.getSelection();const i=n.rangeCount>0?n.getRangeAt(0):false;a.select();a.setSelectionRange(0,e.length);a.readOnly=false;var r=document.execCommand("copy");t&&t(r);a.blur();if(i){n.removeAllRanges();n.addRange(i)}w.removeChild(a)};const ae=function(e,t){if(M.hasClass("on")){M.removeClass("on");T.removeClass("close");if(t){M.style=""}else{l(M,"slideRightOut")}}else{if(t){M.style=""}else{l(M,"slideRightIn",function(){M.addClass("on");T.addClass("close")})}}};const ne=function(){var e=M.child(".inner");var t=M.find(".panel");if(M.child(".tab")){e.removeChild(M.child(".tab"))}var a=document.createElement("ul"),n="active";a.className="tab";["contents","related","overview"].forEach(function(e){var t=M.child(".panel."+e);if(t.innerHTML.replace(/(^\s*)|(\s*$)/g,"").length<1){if(e=="contents"){S.display("none")}return}if(e=="contents"){S.display("")}var i=document.createElement("li");var r=document.createElement("span");var s=document.createTextNode(t.attr("data-title"));r.appendChild(s);i.appendChild(r);i.addClass(e+" item");if(n){t.addClass(n);i.addClass(n)}else{t.removeClass("active")}i.addEventListener("click",function(e){var t=event.currentTarget;if(t.hasClass("active"))return;M.find(".tab .item").forEach(function(e){e.removeClass("active")});M.find(".panel").forEach(function(e){e.removeClass("active")});M.child(".panel."+t.className.replace(" item","")).addClass("active");t.addClass("active")});a.appendChild(i);n=""});if(a.childNodes.length>1){e.insertBefore(a,e.childNodes[0]);M.child(".panels").style.paddingTop=""}else{M.child(".panels").style.paddingTop=".625rem"}};const ie=function(){var t=u.all(".contents li");if(t.length<1){return}var a=Array.prototype.slice.call(t)||[];var n=null;a=a.map(function(t,a){var i=t.child("a.toc-link");var s=u(decodeURI(i.attr("href")));if(!s)return;var o=s.child("a.anchor");var l=function(e){e.preventDefault();var t=u(decodeURI(e.currentTarget.attr("href")));n=a;c(t,null,function(){r(a);n=null})};i.addEventListener("click",l);o&&o.addEventListener("click",function(t){l(t);te(e.hostname+"/"+LOCAL.path+t.currentTarget.attr("href"))});return s});var i=M.child(".contents.panel");var r=function(e,n){var r=t[e];if(!r)return;if(r.hasClass("current")){return}u.each(".toc .active",function(e){e&&e.removeClass("active current")});a.forEach(function(e){e&&e.removeClass("active")});r.addClass("active current");a[e]&&a[e].addClass("active");var s=r.parentNode;while(!s.matches(".contents")){if(s.matches("li")){s.addClass("active");var o=u(s.child("a.toc-link").attr("href"));if(o){o.addClass("active")}}s=s.parentNode}if(getComputedStyle(M).display!="none"&&i.hasClass("active")){c(i,r.offsetTop-i.offsetHeight/4)}};var s=function(e){var t=0;var n=e[t];if(n.boundingClientRect.top>0){t=a.indexOf(n.target);return t===0?0:t-1}for(;t0){t.target.addClass("show");e.unobserve(t.target)}}})},{root:null,threshold:[.3]});u.each(".index.wrap article.item, .index.wrap section.item",function(t){e.observe(t)});u(".index.wrap .item:first-child").addClass("show")}u.each(".cards .item",function(e,t){["mouseenter","touchstart"].forEach(function(t){e.addEventListener(t,function(t){if(u(".cards .item.active")){u(".cards .item.active").removeClass("active")}e.addClass("active")})});["mouseleave"].forEach(function(t){e.addEventListener(t,function(t){e.removeClass("active")})})})};const de=function(){u.each("span.exturl",function(e){var t=document.createElement("a");t.href=decodeURIComponent(atob(e.dataset.url).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join(""));t.rel="noopener external nofollow noreferrer";t.target="_blank";t.className=e.className;t.title=e.title||e.innerText;t.innerHTML=e.innerHTML;if(e.dataset.backgroundImage){t.dataset.backgroundImage=e.dataset.backgroundImage}e.parentNode.replaceChild(t,e)})};const ue=function(e){if(u(e+" .md img")){s("fancybox");r("fancybox",function(){var t=jQuery.noConflict();u.each(e+" p.gallery",function(e){var t=document.createElement("div");t.className="gallery";t.attr("data-height",e.attr("data-height")||220);t.innerHTML=e.innerHTML.replace(/
        /g,"");e.parentNode.insertBefore(t,e);e.remove()});u.each(e+" .md img:not(.emoji):not(.vemoji)",function(e){var a=t(e);var n,i="image-info";if(!a.is("a img")){var r=a.attr("data-src")||a.attr("src");a.data("safe-src",r);var s=a.wrap('').parent("a");if(!a.is(".gallery img")){s.attr("data-fancybox","default").attr("rel","default")}else{i="jg-caption"}}if(n=e.attr("title")){s.attr("data-caption",n);var o=document.createElement("span");var c=document.createTextNode(n);o.appendChild(c);o.addClass(i);e.insertAfter(o)}});u.each(e+" div.gallery",function(e,a){t(e).justifiedGallery({rowHeight:t(e).data("height")||120,rel:"gallery-"+a}).on("jg.complete",function(){t(this).find("a").each(function(e,t){t.attr("data-fancybox","gallery-"+a)})})});t.fancybox.defaults.hash=false;t(e+" .fancybox").fancybox({loop:true,helpers:{overlay:{locked:false}}})},window.jQuery)}};const fe=function(){pe();if(!u(".md"))return;ue(".post.block");u(".post.block").oncopy=function(e){G(LOCAL.copyright);if(LOCAL.nocopy){e.preventDefault();return}var t=u("#copyright");if(window.getSelection().toString().length>30&&t){e.preventDefault();var a="# "+t.child(".author").innerText;var n="# "+t.child(".link").innerText;var i="# "+t.child(".license").innerText;var r=a+"
        "+n+"
        "+i+"

        "+window.getSelection().toString().replace(/\r\n/g,"
        ");var s=a+"\n"+n+"\n"+i+"\n\n"+window.getSelection().toString().replace(/\r\n/g,"\n");if(e.clipboardData){e.clipboardData.setData("text/html",r);e.clipboardData.setData("text/plain",s)}else if(window.clipboardData){return window.clipboardData.setData("text",s)}}};u.each("li ruby",function(e){var t=e.parentNode;if(e.parentNode.tagName!="LI"){t=e.parentNode.parentNode}t.addClass("ruby")});u.each("ol[start]",function(e){e.style.counterReset="counter "+parseInt(e.attr("start")-1)});u.each(".md table",function(e){e.wrap({className:"table-container"})});u.each(".highlight > .table-container",function(e){e.className="code-container"});u.each("figure.highlight",function(e){var t=e.child(".code-container");var a=e.child("figcaption");e.insertAdjacentHTML("beforeend",'
        ');var n=e.child(".copy-btn");if(LOCAL.nocopy){n.remove()}else{n.addEventListener("click",function(e){var a=e.currentTarget;var n="",i="";t.find("pre").forEach(function(e){i+=n+e.innerText;n="\n"});te(i,function(e){a.child(".ic").className=e?"ic i-check":"ic i-times";a.blur();G(LOCAL.copyright)})});n.addEventListener("mouseleave",function(e){setTimeout(function(){e.target.child(".ic").className="ic i-clipboard"},1e3)})}var i=e.child(".breakline-btn");i.addEventListener("click",function(t){var a=t.currentTarget;if(e.hasClass("breakline")){e.removeClass("breakline");a.child(".ic").className="ic i-align-left"; +}else{e.addClass("breakline");a.child(".ic").className="ic i-align-justify"}});var r=e.child(".fullscreen-btn");var s=function(){e.removeClass("fullscreen");e.scrollTop=0;w.removeClass("fullscreen");r.child(".ic").className="ic i-expand"};var o=function(t){var a=t.currentTarget;if(e.hasClass("fullscreen")){s();u&&u();c(e)}else{e.addClass("fullscreen");w.addClass("fullscreen");r.child(".ic").className="ic i-compress";d&&d()}};r.addEventListener("click",o);a&&a.addEventListener("click",o);if(t&&t.find("tr").length>15){t.style.maxHeight="300px";t.insertAdjacentHTML("beforeend",'
        ');var l=t.child(".show-btn");var d=function(){t.style.maxHeight="";l.addClass("open")};var u=function(){t.style.maxHeight="300px";l.removeClass("open")};l.addEventListener("click",function(e){if(l.hasClass("open")){s();u();c(t)}else{d()}})}});u.each("pre.mermaid > svg",function(e){e.style.maxWidth=""});u.each(".reward button",function(e){e.addEventListener("click",function(e){e.preventDefault();var t=u("#qr");if(t.display()==="inline-flex"){l(t,0)}else{l(t,1,function(){t.display("inline-flex")})}})});u.each(".quiz > ul.options li",function(e){e.addEventListener("click",function(t){if(e.hasClass("correct")){e.toggleClass("right");e.parentNode.parentNode.addClass("show")}else{e.toggleClass("wrong")}})});u.each(".quiz > p",function(e){e.addEventListener("click",function(t){e.parentNode.toggleClass("show")})});u.each(".quiz > p:first-child",function(e){var t=e.parentNode;var a="choice";if(t.hasClass("true")||t.hasClass("false"))a="true_false";if(t.hasClass("multi"))a="multiple";if(t.hasClass("fill"))a="gap_fill";if(t.hasClass("essay"))a="essay";e.attr("data-type",LOCAL.quiz[a])});u.each(".quiz .mistake",function(e){e.attr("data-type",LOCAL.quiz.mistake)});u.each("div.tags a",function(e){e.className=["primary","success","info","warning","danger"][Math.floor(Math.random()*5)]});u.each(".md div.player",function(e){p(e,{type:e.attr("data-type"),mode:"order",btns:[]}).player.load(JSON.parse(e.attr("data-src"))).fetch()})};const he=function(){var e;u.each("div.tab",function(t,a){if(t.attr("data-ready"))return;var n=t.attr("data-id");var i=t.attr("data-title");var r=u("#"+n);if(!r){r=document.createElement("div");r.className="tabs";r.id=n;r.innerHTML='
        ';var s=r.child(".show-btn");s.addEventListener("click",function(e){c(r)});t.parentNode.insertBefore(r,t);e=true}else{e=false}var o=r.child(".nav ul");if(!o){o=r.createChild("div",{className:"nav",innerHTML:"
          "}).child("ul")}var l=o.createChild("li",{innerHTML:i});if(e){l.addClass("active");t.addClass("active")}l.addEventListener("click",function(e){var a=e.currentTarget;r.find(".active").forEach(function(e){e.removeClass("active")});t.addClass("active");a.addClass("active")});r.appendChild(t);t.attr("data-ready",true)})};const pe=function(){var e=u("#comments");if(!e){A.display("none");return}else{A.display("")}if(!window.IntersectionObserver){s("valine")}else{var t=new IntersectionObserver(function(e,t){var a=e[0];s("valine");if(a.isIntersecting||a.intersectionRatio>0){l(u("#comments"),"bounceUpIn");t.disconnect()}});t.observe(e)}};const me=function(t){if(e.search===null)return;if(!q){q=w.createChild("div",{id:"search",innerHTML:'
          '})}var a=instantsearch({indexName:e.search.indexName,searchClient:algoliasearch(e.search.appID,e.search.apiKey),searchFunction:function(e){var t=u(".search-input");if(t.value){e.search()}}});a.on("render",function(){t.refresh(u("#search-hits"))});a.addWidgets([instantsearch.widgets.configure({hitsPerPage:e.search.hits.per_page||10}),instantsearch.widgets.searchBox({container:".search-input-container",placeholder:LOCAL.search.placeholder,showReset:false,showSubmit:false,showLoadingIndicator:false,cssClasses:{input:"search-input"}}),instantsearch.widgets.stats({container:"#search-stats",templates:{text:function(e){var t=LOCAL.search.stats.replace(/\$\{hits}/,e.nbHits).replace(/\$\{time}/,e.processingTimeMS);return t+'
          '}}}),instantsearch.widgets.hits({container:"#search-hits",templates:{item:function(t){var a=t.categories?""+t.categories.join('')+"":"";return''+a+t._highlightResult.title.value+""},empty:function(e){return'
          '+LOCAL.search.empty.replace(/\$\{query}/,e.query)+"
          "}},cssClasses:{item:"item"}}),instantsearch.widgets.pagination({container:"#search-pagination",scrollTo:false,showFirst:false,showLast:false,templates:{first:'',last:'',previous:'',next:''},cssClasses:{root:"pagination",item:"pagination-item",link:"page-number",selectedItem:"current",disabledItem:"disabled-item"}})]);a.start();u.each(".search",function(e){e.addEventListener("click",function(){document.body.style.overflow="hidden";l(q,"shrinkIn",function(){u(".search-input").focus()})})});const n=function(){document.body.style.overflow="";l(q,0)};q.addEventListener("click",function(e){if(e.target===q){n()}});u(".close-btn").addEventListener("click",n);window.addEventListener("pjax:success",n);window.addEventListener("keyup",function(e){if(e.key==="Escape"){n()}})};const ve=function(){u.each(".overview .menu > .item",function(e){L.child(".menu").appendChild(e.cloneNode(true))});k.addEventListener("click",U.vanish);T.addEventListener("click",ae);u(".dimmer").addEventListener("click",ae);N.child(".down").addEventListener("click",se);N.child(".up").addEventListener("click",re);if(!j){j=E.createChild("div",{id:"tool",innerHTML:'
          0%
          '})}I=j.child(".player");H=j.child(".back-to-top");A=j.child(".chat");S=j.child(".contents");H.addEventListener("click",re);A.addEventListener("click",oe);S.addEventListener("click",ae);p(I);u("main").addEventListener("click",function(){I.player.mini()})};const ge=function(){Z();if(M.hasClass("on")){l(M,function(){M.removeClass("on");T.removeClass("close")})}u("#main").innerHTML="";u("#main").appendChild(k.lastChild.cloneNode(true));c(0)};const ye=function(t){B=0;W=window.location.href;s("katex");r("copy_tex");s("mermaid");r("chart");r("valine",function(){var t=Object.assign({},e.valine);t=Object.assign(t,LOCAL.valine||{});t.el="#comments";t.pathname=LOCAL.path;t.pjax=Y;t.lazyload=F;new MiniValine(t);setTimeout(function(){ee(1);ue(".v")},1e3)},window.MiniValine);if(!t){u.each("script[data-pjax]",o)}y=document.title;$();ce();ne();ie();de();fe();he();I.player.load(LOCAL.audio||e.audio||{});U.hide();setTimeout(function(){ee()},500);le();F.observe()};const be=function(){ve();Y=new Pjax({selectors:["head title",".languages",".pjax","script[data-config]"],analytics:false,cacheBust:false});e.quicklink.ignores=LOCAL.ignores;quicklink.listen(e.quicklink);J();X();me(Y);window.addEventListener("scroll",K);window.addEventListener("resize",$);window.addEventListener("pjax:send",ge);window.addEventListener("pjax:success",ye);window.addEventListener("beforeunload",function(){Z()});ye(1)};window.addEventListener("DOMContentLoaded",be);console.log("%c Theme.Shoka v"+e.version+" %c https://shoka.lostyu.me/ ","color: white; background: #e9546b; padding:5px 0;","padding:4px;border:1px solid #e9546b;");var we=document.createElement("canvas");we.style.cssText="position:fixed;top:0;left:0;pointer-events:none;z-index:9999999";document.body.appendChild(we);var Ce=we.getContext("2d");var xe=30;var ke=0;var Le=0;var Ee="click";var Te=e.fireworks;function Ne(){we.width=window.innerWidth*2;we.height=window.innerHeight*2;we.style.width=window.innerWidth+"px";we.style.height=window.innerHeight+"px";we.getContext("2d").scale(2,2)}function Me(e){ke=e.clientX||e.touches&&e.touches[0].clientX;Le=e.clientY||e.touches&&e.touches[0].clientY}function Oe(e){var t=anime.random(0,360)*Math.PI/180;var a=anime.random(50,180);var n=[-1,1][anime.random(0,1)]*a;return{x:e.x+n*Math.cos(t),y:e.y+n*Math.sin(t)}}function je(e,t){var a={};a.x=e;a.y=t;a.color=Te[anime.random(0,Te.length-1)];a.radius=anime.random(16,32);a.endPos=Oe(a);a.draw=function(){Ce.beginPath();Ce.arc(a.x,a.y,a.radius,0,2*Math.PI,true);Ce.fillStyle=a.color;Ce.fill()};return a}function Ie(e,t){var a={};a.x=e;a.y=t;a.color="#FFF";a.radius=.1;a.alpha=.5;a.lineWidth=6;a.draw=function(){Ce.globalAlpha=a.alpha;Ce.beginPath();Ce.arc(a.x,a.y,a.radius,0,2*Math.PI,true);Ce.lineWidth=a.lineWidth;Ce.strokeStyle=a.color;Ce.stroke();Ce.globalAlpha=1};return a}function He(e){for(var t=0;t标签:Hexo | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
          \ No newline at end of file +标签:Hexo | Hito = Hito 的公告栏 = 天下事有难易乎?为之,则难者亦易矣
          \ No newline at end of file diff --git a/tags/docker/index.html b/tags/docker/index.html index 1f4c1e10b..cefd9a9f9 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/index.html b/tags/index.html index e349e021b..f492af36d 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 b7c598000..4dc54416b 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/netty/index.html b/tags/netty/index.html index 2892a215a..39457ad56 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 1633b6181..83c48be7e 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 5a333c813..520c052aa 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/socketIO/index.html b/tags/socketIO/index.html index d5020fc0a..93bc1c8a6 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/博客/index.html b/tags/博客/index.html index b172b3f3b..bf97ec4ee 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 06d977856..f7e937cec 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 9558a2dbb..e42e2b17f 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 4c1c28ea5..848a5906c 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 fee952f05..b21d4e58c 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