diff --git a/404.html b/404.html new file mode 100644 index 00000000..88d81313 --- /dev/null +++ b/404.html @@ -0,0 +1,285 @@ +页面没有找到 | 兔兔博客🇨🇳 + + + + + + + + + + + +
Page not found

迷路中

此页面不存在哦٩͡[๏̯͡๏]
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/archives/2023/01/index.html b/archives/2023/01/index.html new file mode 100644 index 00000000..26a06bc9 --- /dev/null +++ b/archives/2023/01/index.html @@ -0,0 +1,289 @@ +一月 2023 | 兔兔博客🇨🇳 + + + + + + + + + + + +
文章总览 - 1
2023
新年快乐
新年快乐
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/archives/2023/02/index.html b/archives/2023/02/index.html new file mode 100644 index 00000000..bbf7af73 --- /dev/null +++ b/archives/2023/02/index.html @@ -0,0 +1,289 @@ +二月 2023 | 兔兔博客🇨🇳 + + + + + + + + + + + +
文章总览 - 1
2023
hello-world
hello-world
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/archives/2023/08/index.html b/archives/2023/08/index.html new file mode 100644 index 00000000..308ebad7 --- /dev/null +++ b/archives/2023/08/index.html @@ -0,0 +1,289 @@ +八月 2023 | 兔兔博客🇨🇳 + + + + + + + + + + + +
文章总览 - 1
2023
地球online更新
地球online更新
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/archives/2023/09/index.html b/archives/2023/09/index.html new file mode 100644 index 00000000..eb56169e --- /dev/null +++ b/archives/2023/09/index.html @@ -0,0 +1,289 @@ +九月 2023 | 兔兔博客🇨🇳 + + + + + + + + + + + +
文章总览 - 1
2023
自建腾讯地理位置api
自建腾讯地理位置api
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/archives/2023/index.html b/archives/2023/index.html new file mode 100644 index 00000000..1d50abce --- /dev/null +++ b/archives/2023/index.html @@ -0,0 +1,289 @@ +2023 | 兔兔博客🇨🇳 + + + + + + + + + + + +
文章总览 - 4
2023
自建腾讯地理位置api
自建腾讯地理位置api
地球online更新
地球online更新
hello-world
hello-world
新年快乐
新年快乐
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/archives/2024/07/index.html b/archives/2024/07/index.html new file mode 100644 index 00000000..817093da --- /dev/null +++ b/archives/2024/07/index.html @@ -0,0 +1,289 @@ +七月 2024 | 兔兔博客🇨🇳 + + + + + + + + + + + +
文章总览 - 1
2024
记 QQ 无头机器人搭建教程
记 QQ 无头机器人搭建教程
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/archives/2024/09/index.html b/archives/2024/09/index.html new file mode 100644 index 00000000..2f09e53f --- /dev/null +++ b/archives/2024/09/index.html @@ -0,0 +1,289 @@ +九月 2024 | 兔兔博客🇨🇳 + + + + + + + + + + + +
文章总览 - 1
2024
2023~2024年度记录
2023~2024年度记录
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/archives/2024/10/index.html b/archives/2024/10/index.html new file mode 100644 index 00000000..f8a8fa1f --- /dev/null +++ b/archives/2024/10/index.html @@ -0,0 +1,289 @@ +十月 2024 | 兔兔博客🇨🇳 + + + + + + + + + + + +
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/archives/2024/index.html b/archives/2024/index.html new file mode 100644 index 00000000..cb74dc99 --- /dev/null +++ b/archives/2024/index.html @@ -0,0 +1,289 @@ +2024 | 兔兔博客🇨🇳 + + + + + + + + + + + +
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/archives/index.html b/archives/index.html new file mode 100644 index 00000000..fafc26c7 --- /dev/null +++ b/archives/index.html @@ -0,0 +1,289 @@ +归档 | 兔兔博客🇨🇳 + + + + + + + + + + + +
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/assets/404_1.jpg b/assets/404_1.jpg new file mode 100644 index 00000000..090be05d Binary files /dev/null and b/assets/404_1.jpg differ diff --git a/assets/QRCode.jpg b/assets/QRCode.jpg new file mode 100644 index 00000000..10aa1f42 Binary files /dev/null and b/assets/QRCode.jpg differ diff --git a/assets/avatar.webp b/assets/avatar.webp new file mode 100644 index 00000000..00c66964 Binary files /dev/null and b/assets/avatar.webp differ diff --git a/assets/c10.cur b/assets/c10.cur new file mode 100644 index 00000000..ae0ca6a0 Binary files /dev/null and b/assets/c10.cur differ diff --git a/assets/c11.cur b/assets/c11.cur new file mode 100644 index 00000000..e2464e63 Binary files /dev/null and b/assets/c11.cur differ diff --git a/assets/c3.cur b/assets/c3.cur new file mode 100644 index 00000000..65361508 Binary files /dev/null and b/assets/c3.cur differ diff --git a/assets/c4.cur b/assets/c4.cur new file mode 100644 index 00000000..995fd075 Binary files /dev/null and b/assets/c4.cur differ diff --git a/assets/c7.cur b/assets/c7.cur new file mode 100644 index 00000000..6be79f7c Binary files /dev/null and b/assets/c7.cur differ diff --git a/assets/c8.cur b/assets/c8.cur new file mode 100644 index 00000000..d457bdbb Binary files /dev/null and b/assets/c8.cur differ diff --git a/assets/c9.cur b/assets/c9.cur new file mode 100644 index 00000000..d90e4a7e Binary files /dev/null and b/assets/c9.cur differ diff --git a/assets/close.webp b/assets/close.webp new file mode 100644 index 00000000..2b7d16de Binary files /dev/null and b/assets/close.webp differ diff --git a/assets/coffee.png b/assets/coffee.png new file mode 100644 index 00000000..94a6e29a Binary files /dev/null and b/assets/coffee.png differ diff --git a/assets/gulp/404.jpg b/assets/gulp/404.jpg new file mode 100644 index 00000000..446a8bd3 Binary files /dev/null and b/assets/gulp/404.jpg differ diff --git a/assets/gulp/comment_bg.png b/assets/gulp/comment_bg.png new file mode 100644 index 00000000..1ce39384 Binary files /dev/null and b/assets/gulp/comment_bg.png differ diff --git a/assets/gulp/friend_404.gif b/assets/gulp/friend_404.gif new file mode 100644 index 00000000..8b2de5e7 Binary files /dev/null and b/assets/gulp/friend_404.gif differ diff --git a/assets/gulp/loading.gif b/assets/gulp/loading.gif new file mode 100644 index 00000000..e17ef6e3 Binary files /dev/null and b/assets/gulp/loading.gif differ diff --git a/assets/gulp/siteicon/128.png b/assets/gulp/siteicon/128.png new file mode 100644 index 00000000..94a6e29a Binary files /dev/null and b/assets/gulp/siteicon/128.png differ diff --git a/assets/gulp/siteicon/144.png b/assets/gulp/siteicon/144.png new file mode 100644 index 00000000..2fa3c828 Binary files /dev/null and b/assets/gulp/siteicon/144.png differ diff --git a/assets/gulp/siteicon/16.png b/assets/gulp/siteicon/16.png new file mode 100644 index 00000000..8d7ddb85 Binary files /dev/null and b/assets/gulp/siteicon/16.png differ diff --git a/assets/gulp/siteicon/192.png b/assets/gulp/siteicon/192.png new file mode 100644 index 00000000..77e1b42f Binary files /dev/null and b/assets/gulp/siteicon/192.png differ diff --git a/assets/gulp/siteicon/32.png b/assets/gulp/siteicon/32.png new file mode 100644 index 00000000..af10c213 Binary files /dev/null and b/assets/gulp/siteicon/32.png differ diff --git a/assets/gulp/siteicon/48.png b/assets/gulp/siteicon/48.png new file mode 100644 index 00000000..01416c56 Binary files /dev/null and b/assets/gulp/siteicon/48.png differ diff --git a/assets/gulp/siteicon/512.png b/assets/gulp/siteicon/512.png new file mode 100644 index 00000000..8700c496 Binary files /dev/null and b/assets/gulp/siteicon/512.png differ diff --git a/assets/gulp/siteicon/64.png b/assets/gulp/siteicon/64.png new file mode 100644 index 00000000..04c139d0 Binary files /dev/null and b/assets/gulp/siteicon/64.png differ diff --git a/assets/head.jpg b/assets/head.jpg new file mode 100644 index 00000000..00c66964 Binary files /dev/null and b/assets/head.jpg differ diff --git a/assets/loading2.gif b/assets/loading2.gif new file mode 100644 index 00000000..a1c65b03 Binary files /dev/null and b/assets/loading2.gif differ diff --git a/assets/loading3.gif b/assets/loading3.gif new file mode 100644 index 00000000..9448aec3 Binary files /dev/null and b/assets/loading3.gif differ diff --git a/assets/open.webp b/assets/open.webp new file mode 100644 index 00000000..7aaf729e Binary files /dev/null and b/assets/open.webp differ diff --git a/assets/pusheencode.webp b/assets/pusheencode.webp new file mode 100644 index 00000000..9ba51192 Binary files /dev/null and b/assets/pusheencode.webp differ diff --git a/assets/r1.jpg b/assets/r1.jpg new file mode 100644 index 00000000..00c66964 Binary files /dev/null and b/assets/r1.jpg differ diff --git a/assets/r2.jpg b/assets/r2.jpg new file mode 100644 index 00000000..446a8bd3 Binary files /dev/null and b/assets/r2.jpg differ diff --git a/assets/tutu.jpg b/assets/tutu.jpg new file mode 100644 index 00000000..0f6b7e91 Binary files /dev/null and b/assets/tutu.jpg differ diff --git a/assets/tutu.svg b/assets/tutu.svg new file mode 100644 index 00000000..f02a67b2 --- /dev/null +++ b/assets/tutu.svg @@ -0,0 +1 @@ +兔兔小屋: 科研摸鱼中🐟 \ No newline at end of file diff --git "a/assets/\345\260\217\345\261\213-\344\270\213\347\217\255\344\274\221\346\201\257\345\225\246.svg" "b/assets/\345\260\217\345\261\213-\344\270\213\347\217\255\344\274\221\346\201\257\345\225\246.svg" new file mode 100644 index 00000000..997765c3 --- /dev/null +++ "b/assets/\345\260\217\345\261\213-\344\270\213\347\217\255\344\274\221\346\201\257\345\225\246.svg" @@ -0,0 +1 @@ + \ No newline at end of file diff --git "a/assets/\350\220\214ICP\345\244\207-20232928-fe1384.svg" "b/assets/\350\220\214ICP\345\244\207-20232928-fe1384.svg" new file mode 100644 index 00000000..66cdc24b --- /dev/null +++ "b/assets/\350\220\214ICP\345\244\207-20232928-fe1384.svg" @@ -0,0 +1 @@ +萌ICP备: 20232928萌ICP备20232928 \ No newline at end of file diff --git a/atom.xml b/atom.xml new file mode 100644 index 00000000..4b6d4a08 --- /dev/null +++ b/atom.xml @@ -0,0 +1,197 @@ + + + 兔兔博客🇨🇳 + + + + + + 2024-10-05T11:11:09.487Z + https://blog.tutuxka.eu.org/ + + + 兔兔博客🇨🇳 + + + + Hexo + + + 国庆爬个明日方舟立绘并搭建api + + https://blog.tutuxka.eu.org/posts/ee601c8a.html + 2024-10-05T10:51:53.871Z + 2024-10-05T11:11:09.487Z + + 大家国庆快乐呀,写了个爬虫送给大家


先感谢着几位大佬🍭
新年前爬个明日方舟的立绘
明日方舟干员立绘爬虫
CloudFlare Worker搭建随机图片API
无意间刷到了大佬的博客,看到了这个明日方舟的立绘挺有意思的,想直接抄作业,但奈何代码失效了,就自己改了一下,发出来记录一下


看了一下,应该是后面爬链接的那一块失效了,原文是这样的"给的是 /images/thumb/6/65/%E7%AB%8B%E7%BB%98_%E5%87%AF%E5%B0%94%E5%B8%8C_2.png ,我要的是这个 http://prts.wiki/images/6/65/立绘_凯尔希_2.png 嘛!
现在应该是更新了,给的链接是https://prts.wiki/w/文件:立绘_12F_1.png,但需要的是https://media.prts.wiki/6/61/立绘_12F_1.png

现在完全牛头不对马嘴嘛🌚


所以研究了一下之后,感觉应该可以
我就直接上代码了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# 引入程序需要的相应包(类似C语言中的# include<stdio.h> 、include<math.h>等)
import os
from bs4 import BeautifulSoup
import time
import requests

# 设置爬取图片的网址
url = "http://prts.wiki/index.php?title=%E7%89%B9%E6%AE%8A:%E6%90%9C%E7%B4%A2&limit=500&offset=0&profile=images&search=%E7%AB%8B%E7%BB%98"


# 重定义请求头,防止被网页发现是爬虫,从而进行反爬操作
headers = {
"Cookie": "arccount62298=c; arccount62019=c",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66"
}


# 爬取模块
html = requests.get(url, headers=headers) ## 这里是使用requests函数用之前重定义的请求头读取网页信息
### 测试代码
### print(html.text)
html.encoding = html.apparent_encoding ## encoding是从http中的header中的charset字段中提取的编码方式,若header中没有charset字段则默认为ISO-8859-1编码模式,无法解析中文,这是乱码的原因,apparent_encoding会从网页的内容中分析网页编码的方式,所以apparent_encoding比encoding更加准确,当网页出现乱码时可以把apparent_encoding的编码格式赋值给encoding。
soup = BeautifulSoup(html.text, "html.parser") ## "html.parser"是为了让解析速度快,容错率高,具体讲解网址为https://blog.csdn.net/yangjiajia123456/article/details/80959896
list = soup.find_all(class_ = "searchResultImage") ## 注一:对爬取页面进行“检查”操作后发现,所有的图片都包含在一个<table class="searchResultImage">的class中,所以这行代码的作用是查找html代码中标签为class且值为searchRusultImgge的所有代码块
### 测试代码
### print(list)
### 可以看到,相比于html.text,list里没有大量的网页配置信息,只有以图片名称为核心的列表


# 检查项目文件夹下是否有“Arknights”这个文件夹,没有的话新建一个,有的话就不新建了
try:
os.mkdir("./Arknights") ## 注二:创建文件夹(这个文件夹创建在现在的项目文件夹里,比方说我这里用的是“明日方舟干员立绘项目”项目文件夹,爬取到的图片就存在“明日方舟干员立绘项目”项目文件夹下的“Arknights”文件夹里,该函数具体介绍网址为https://blog.csdn.net/qq_20412595/article/details/82423764)
## 项目文件夹默认在代码存放的地方,如果你放在桌面,那后面生成的Arknights文件夹就在桌面
except:
pass

# 将当前工作路径切换为“Arknights”这个文件夹
os.chdir("./Arknights") ## 切换当前工作路径(本函数的具体介绍在https://www.runoob.com/python3/python3-os-chdir.html)

# 将最初读取的图片设置为第一张图片
num=0

# 测试用参数
# num1 = 0
# num2 = 0

# 图片的爬取与本地存储
for s in list:
string = str(s) ## 将list中的单个元素化为字符串,再针对该字符串进行处理

namebegin = string.find('title="文件') ## 注三:显然,所有立绘的文件名开头都有“文件”二字,找到“文件”二字就相当于找到了立绘 注四:为了读取图片里包含的干员名,我们发现能够通过title入手,向后搜索名称,这里找到了"title"中"t”的位置
# name_point_1 = namebegin+12 ## 为了读取干员名称,我们这里找到第一个空格的位置name_point_1(这里空格刚好在namebegin后的第二格)
# name_point_2 = string.find(' 1'or' 2'or' skin') ## 这里找到第二个空格的位置name_point_2(本方法返回值远小于namebegin的数值,是错误的)
nameend = string[namebegin:].find('png') ## 找到图片文件名末尾的"png"字样对应的位置

## 测试代码
# print(namebegin)
# print(name_point_1)
# print(name_point_2)
# print(nameend)

## 这里如果使用name_point_2 = string.find(' 1'or' 2'or' skin'),会显示位置为54,远小于namebegin的位置值,是错误的,所以用这种方法难以找到第二个空格的位置,所以我们将"干员名 1/2/skin(b/_V).png"整体令为name1,再在name1里寻找空格位置
name1 = string[namebegin+13:namebegin+nameend-1]
name1begin = name1.find('"干员名"')
name1_point_1 = name1begin
name1_point_2 = name1.find(' 1'or' 2'or' skin') ## 根据测试代码我们有,输出结果为-1,即name1[name1begin]对应于name1的最后一个字符

# 测试代码
# print(name1) # 输出结果格式"暗索 skin1 V1"
# print(name1begin)
# print(name1[name1begin])
# print(name1_point_1)
# print(name1_point_2)

# print(string[(namebegin+nameend-3):(namebegin+nameend-1)]) ## 本代码用来查看后两位并进行检验

if(string[namebegin+nameend-3:namebegin+nameend-1] in ['V1','V2']): ## 若后两位为V1或V2
# num1+=1
# print('num1={}'.format(num1))
continue
elif(string[namebegin+nameend-2:namebegin+nameend-1]=='b'): ## 若最后一位为b
# num2+=1
# print('num2={}'.format(num2))
continue
else:
name1 = name1 + '.png'

# 测试代码
# print(name1)

# 修改文件名称
name1 = name1.replace(" ","_") ## 将图片文件名里的空格转为”_“

# 设置显示的链接名
urlbegin = string.find('https://media.prts.wiki/thumb/')
if urlbegin != -1:
urlend = string.find('.png', urlbegin)
imgurl_suffix = string[urlbegin+30:urlend+4] # 获取https://media.prts.wiki/thumb/后面的内容
imgurl = 'https://media.prts.wiki/' + imgurl_suffix
# 爬取图片
img = requests.get(imgurl, headers=headers).content

# 测试代码
# print(name1)

# 图片写入本地文件夹
if(name1 not in ['精二立绘A.png','Pith_2.png','Sharp_2.png','Stormeye_2.png','Touch_2.png','阿米娅(近卫)_2.png']): ## 为了不读取”精二立绘A“与五位特殊干员(前面博文有说到)的图片,专门做了一个循环(其实爬取后再直接寻找删除也可以)
## 经过noionion大佬的提示,or的优先级不高,所以不能用if(name1 != '精二立绘A.png' or 'Pith_2.png' or 'Sharp_2.png' or 'Stormeye_2.png' or 'Touch_2.png' or '阿米娅(近卫)_2.png'):写法
## 他还建议我对列表进行硬操作,而不是用!=这种逻辑运算符(说可能会炸,我慌的一批)
## 所以我去除了if(name1 != ('精二立绘A.png' or 'Pith_2.png' or 'Sharp_2.png' or 'Stormeye_2.png' or 'Touch_2.png' or '阿米娅(近卫)_2.png')),改用全新的判断语法
with open(name1, 'wb') as f:
f.write(img) ## 将爬取到的图片写入“Arknights”这个文件夹里
num+=1 ## num=num+1,使得下面print函数里的”已爬取{}张“中的{}对应数值加1
print("已爬取{}张,图片名称为:{},链接为:{}".format(num,name1,imgurl)) ## 这里{}的意义与C语言中的"%d"/"%f"十分相近,是从format()函数里读取对应位置的参数
# "r"--以读方式打开,只能读文件,如果文件不存在,会发生异常
# "w"--以写方式打开,只能写文件,如果文件不存在,创建该文件;如果文件已存在,先清空,再打开文件
# "rb"--以二进制读方式打开,只能读文件,如果文件不存在,会发生异常
# "wb"--以二进制写方式打开,只能写文件,如果文件不存在,创建该文件;如果文件已存在,先清空,再打开文件(所以这个程序就算运行多次,文件夹里也不会出现重复的立绘)
time.sleep(1) ## 休息一秒后爬取下一张图片,这个函数在链接https://blog.csdn.net/weixin_45949073/article/details/104989562里讲得很清楚

这里参照了https://www.heart-of-engine.top/posts/fccf.html的代码,小小改动了一点,成功运行起来了🌝


后面由于想做成随机图片api所以就用CloudFlare Worker搭建了
直接上教程了


图片转 Webp
这步骤可选,转换为 webp 格式后,图片体积压缩而分辨率不变,可以更快地加载。

为了在引用时方便,先把名称按 1、2、3…顺序标号,再通过 PIL 库,将 jpg 和 png 格式的图片转换成 webp。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import os
from PIL import Image

def rename_and_convert_images(directory):
# 获取目录中的所有文件
files = os.listdir(directory)
# 过滤出 png 和 webp 格式的文件
png_files = [f for f in files if f.lower().endswith('.png')]
webp_files = [f for f in files if f.lower().endswith('.webp')]

# 找到现有的最大序号
max_index = 0
for f in webp_files:
try:
index = int(os.path.splitext(f)[0])
if index > max_index:
max_index = index
except ValueError:
continue

# 按顺序重命名文件并转换格式
for index, filename in enumerate(png_files, start=max_index + 1):
# 构建新的文件名
new_filename = f"{index}.webp"
# 构建完整的文件路径
old_filepath = os.path.join(directory, filename)
new_filepath = os.path.join(directory, new_filename)

# 打开图像并转换为 webp 格式
with Image.open(old_filepath) as img:
img.save(new_filepath, 'webp')

# 删除原始文件
os.remove(old_filepath)
print(f"Converted {filename} to {new_filename}")

# 使用示例
directory = './Arknights' # 替换为你的目录路径
rename_and_convert_images(directory)

文件上传 Github
这步骤不具体说了,图片通过 jsdeliver 引用。


CloudFlare Worker
新建一个 worker,代码参考如下:

+因为改了文件名,所以下面只需要修改图片总数 total,就能生成一个随机数访问
+个人通过 type 区别宽屏和竖屏图片,自己按需修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
addEventListener('fetch', event => {
event.respondWith(
handleRequest(event.request).catch((err) =>
new Response('cfworker error:\n' + err.stack, {
status: 502,
})
)
);
});

async function handleRequest(request) {
const url = new URL(request.url);
switch (url.pathname) {
case "/img":
var type = url.searchParams.has("type") ? url.searchParams.get("type") : "pc";
const total = getTotal(type);
if (total == 0) return handleImage("pc", getTotal("pc"));
return handleImage(type, total);
case "/favicon.ico":
return fetch("https://gcore.jsdelivr.net/gh/SukiEva/assets/blog/favicon.ico");
default:
return handleNotFound();
}
}

function getTotal(type) {
switch (type) {
case "pc": return 175;
case "mb": return 0;
default: return 0;
}
}

async function handleImage(type, total) {
var index = Math.floor((Math.random() * total)) + 1;
var img = "https://gcore.jsdelivr.net/gh/SukiEva/assets/webp/" + type + "/" + index + ".webp";
res = await fetch(img);
return new Response(res.body, {
headers: {
'content-type': 'image/webp',
},
});
}

function handleNotFound() {
return new Response('Not Found', {
status: 404,
});
}

自定义域名
默认是一个 CF 的域名,但是目前已经被国内 ban 了,需要自行添加域名路由。

最后再次祝看到这篇博客的小伙伴:

2024,国庆快乐鸭!

在小小的洞里爬呀爬呀爬( 逃

]]>
+ + + 这篇文章介绍了作者为大家准备了一份国庆礼物——一个爬虫程序,并感谢了一些大佬。作者在新年前要爬取一些数据,并希望能和大家一起进步。 + + + + + + + + +
+ + + Markdown 基本语法 + + https://blog.tutuxka.eu.org/posts/7894e390.html + 2024-10-02T07:09:37.870Z + 2024-10-02T07:10:13.078Z + + 既然是一门语言,就会有语法规范。Markdown 的基础语法十分简单,保证你几分钟就可以掌握。

2.1. 标题

使用 #,可以表示 1-6 级标题。

# 一级标题

## 二级标题

### 三级标题

#### 四级标题

##### 五级标题

###### 六级标题

效果:

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

2.2. 区块引用

在段落的每行或者只在第一行使用符号>,还可使用多个嵌套引用,如:

> 区块引用

>> 嵌套引用

效果:

区块引用

嵌套引用

2.3. 代码区块

代码区块的建立是在每行加上4个空格或者一个制表符(如同写代码一样)。

如果你只想高亮语句中的某个函数名或关键字,可以使用反引号 函数名 实现。

通常编辑器根据代码片段适配合适的高亮方法,但你也可以用 3 个 ` 包裹一段代码,并指定一种语言,如:

普通段落:

```c(指定以下代码为 C 语言)

void main()

{

printf(“Hello, Markdown!”);

}

```

代码区块:

1
2
3
4
void main()
{
printf("Hello, Markdown!");
}

2.4. 强调(加粗、斜体)

在强调内容两侧分别加上 1 个 * 或者 _,如:

*斜体*,_斜体_

*粗体*,_粗体_

效果:

斜体斜体

粗体粗体

2.5. 删除线

使用双波浪线 ~~ 将需要删除线的文本括起来,如:

~~删除线~~

效果:

删除线

2.6. 无序列表

使用 ·+、或 - 标记无序列表,如:

- 第一项

- 第二项

- 第三项

效果:

  • 第一项
  • 第二项
  • 第三项

2.7. 有序列表

有序列表的标记方式是将上述的符号换成数字,并辅以 .,如:

1. 第一项

2. 第二项

3. 第三项

效果:

  1. 第一项
  2. 第一项
  3. 第一项

2.8. 分割线

分割线最常使用就是三个或以上 *,还可以使用 -_,如:

***

___

效果:

注意: 分割线与之前的内容要用空行。

2.9. 链接

链接使用方法是 [链接名称](链接地址),如:

这是 GitHub 的链接地址:[GitHub](https://github.com/)

效果:

这是 GitHub 的链接地址:GitHub

2.10. 表格

Markdown 制作表格使用 | 来分隔不同的单元格,使用 - 来分隔表头和其他行。

语法格式如下:

| 表头 | 表头 |

| ---- | ---- |

| 单元格 | 单元格 |

| 单元格 | 单元格 |

效果:

表头表头
单元格单元格
单元格单元格
对齐方式

我们可以设置表格的对齐方式:

  1. -: 居右对齐。
  2. :- 居左对齐。
  3. :-: 居中对齐。

例如:

| 左对齐左对齐 | 右对齐右对齐 | 居中对齐居中对齐 |

| :-----| ----: | :----: |

| 单元格 | 单元格 | 单元格 |

| 单元格 | 单元格 | 单元格 |

效果:

左对齐左对齐右对齐右对齐居中对齐居中对齐
单元格单元格单元格
单元格单元格单元格

2.11. 图片

Markdown 图片语法格式有三部分组成:

  • 开头一个感叹号 !
  • 接着一个方括号,里面放上图片的替代文字
  • 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上选择性的 ‘title’ 属性的文字。
    如:

    ![alt 属性文本](图片地址)

2.12. 转义字符

Markdown 使用了很多特殊符号来表示特定的意义,例如 #_{} 等,如果需要显示特定的符号则需要使用转义字符,Markdown 使用反斜杠 \ 转义特殊字符,如:

\*\* 正常显示星号 \*\*

效果:

** 正常显示星号 **

2.13. 脚注

在需要添加注脚的文字后加上脚注名: [^注脚名] 。 然后在文本的任意位置(一般在最后)添加脚注,如:

约翰·格鲁伯[^1]是 Markdown 的创始人。

注释在页尾,可以通过点击注脚到达。

[^1]: 百度百科 -

2.14. LaTex 公式

默认下的分隔符:

$$...$$ 或者 \[...\] 或者 ````math` 中的数学表达式将会在块内显示。

如:

$$

\begin{Bmatrix}

a & b \

c & d

\end{Bmatrix}

$$

效果:

$$
\begin{Bmatrix}
a & b \
c & d
\end{Bmatrix}
$$

2.15. Markdown 高阶用法

对于纯 Markdown 编辑器来说,基础语法已经足够了,而高阶用法可能并不兼容。并且,有些高阶语法真的很鸡肋,学习意义不大,建议了解。比如 Markdown 支持 HTML元素,可以画流程图、时序图、甘特图等等。

]]>
+ + + 这篇文章介绍了Markdown语言的基础语法,它简单易学,使得标记文本变得容易。Markdown支持标题、列表、链接、图片、区块引用和代码区块等语法元素,用户可以利用这些功能编写结构化的文本。此外,文章可能还提及了Markdown的扩展语法和如何在不同平台和软件中使用Markdown。 + + + + +
+ + + 随身 wifi 综合小记 + + https://blog.tutuxka.eu.org/posts/368ec568.html + 2024-10-02T07:01:50.856Z + 2024-10-02T07:06:53.032Z + + 一、首先给随身wifi刷入Debian系统

1.我是参考酷安的这篇文章:

随身wifi刷入Debian系统(详细图文教程)有很详细的教程。

2.给随身WiFi debain系统更换源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99

# 删除并重新创建 /etc/apt/sources.list 文件

sudo rm /etc/apt/sources.list

sudo touch /etc/apt/sources.list



# 写入阿里云的 Debian 软件源到 /etc/apt/sources.list 文件

sudo bash -c 'cat <<EOF > /etc/apt/sources.list

deb http://mirrors.aliyun.com/debian/ bullseye main non-free contrib

deb-src http://mirrors.aliyun.com/debian/ bullseye main non-free contrib

deb http://mirrors.aliyun.com/debian-security/ bullseye-security main

deb-src http://mirrors.aliyun.com/debian-security/ bullseye-security main

deb http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib

deb-src http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib

deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib

deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib

EOF'



echo -e '1、默认软件源修改完成!nn'



# 修改 AdoptOpenJDK 软件源列表

sudo sed -i '1c deb http://mirrors.tuna.tsinghua.edu.cn/Adoptium/deb buster main' /etc/apt/sources.list.d/AdoptOpenJDK.list

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 843C48A565F8F04B

sudo gpg --armor --export 843C48A565F8F04B | sudo apt-key add -



echo -e 'nn2、AdoptOpenJDK报错修复完成!nn'



# 屏蔽 Mobian 软件源

sudo sed -i '1c #deb http://repo.mobian-project.org/ bullseye main non-free' /etc/apt/sources.list.d/mobian.list

echo -e '3、Mobian源报已屏蔽!'



echo -e 'nn####################################nn即将开始更新软件源list......n'

sleep 5



# 更新软件源列表

sudo apt-get update

echo -e 'nn4、更新软件源list更新完成!'



echo -e 'nn####################################nn即将开始升级系统程序至最新版......'

sleep 5



# 持保 openssh-server 包不被更新

sudo apt-mark hold openssh-server



# 升级系统所有包

sudo apt-get -y upgrade



# 解除 openssh-server 包的持保

sudo apt-mark unhold openssh-server



echo -e '5、系统升级完成!'

二、给随身wifi刷入typecho

这里用全自动安装脚本,自动安装配置Nginx MySQL PHP,安装完毕大约占用500MB空间。

1
2
3

wget -O /root/install_typecho.sh https://www.weirain.com/install_typecho.sh && chmod +x /root/install_typecho.sh && /root/install_typecho.sh

备份命令 /root/backup_typecho.sh

还原命令 /root/restore_typecho.sh

三、搭建frp实现内网穿透

1.服务端配置 使用frp一键部署脚本,

项目地址

Aliyun(国内推荐)

1
2
3
4
5
6
7

wget https://code.aliyun.com/MvsCode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh

chmod 700 ./install-frps.sh

./install-frps.sh install

Gitee

1
2
3
4
5
6
7

wget https://gitee.com/mvscode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh

chmod 700 ./install-frps.sh

./install-frps.sh install

Github

1
2
3
4
5
6
7

wget https://raw.githubusercontent.com/mvscode/frps-onekey/master/install-frps.sh -O ./install-frps.sh

chmod 700 ./install-frps.sh

./install-frps.sh install

Uninstall(卸载)

1
2
3

./install-frps.sh uninstall

Update(更新)

1
2
3

./install-frps.sh update

服务端相关命令frps start #启动frps服务端

frps stop #停止frps服务端

frps restart #重启frps服务端

frps status #显示frps状态

frps config #配置frps服务端

frps version #显示frps版本

2.步骤说明:

2.github (default)输入下载frp服务端配置文件的服务器,默认GitHub

Please input frps bind_port1-65535:

输入frp提供服务的端口,用于服务器端和客户端通信,默认5443

Please input frps vhost_http_port1-65535:

输入frp进行http穿透的http服务端口,默认80

Please input frps vhost_https_port1-65535:

输入frp进行https穿透的https服务端口,默认443

Please input frps dashboard_port [1-65535]

(Default : 6443):

输入frp的控制台服务端口,用于查看frp工作状态,默认6443

Please input frps dashboard_user(Default :admin):

输入frp的控制台服务账号,默认admin

Please input frps dashboard_pwd(Default :):

输入frp的控制台服务密码,默认是随机生成的

Please input frps token(Default :):

输入frp服务器和客户端通信的密码,默认是随机生成的

Please input frps subdomain_host(Default :…):

输入frp服务器自定义域名,支持自定义二次域名,默认是服务器IP地址

Please input frps max_pool_count [1-200]

(Default : 50):

设置每个代理可以创建的连接池上限,默认50

Please select log_level

1: info (default)

2: warn

3: error

4: debug

设置日志等级,4个选项,默认是info

Please input frps log_max_days [1-30]

(Default : 3 day):

设置日志保留天数,范围是1到30天,默认保留3天

Please select log_file

1: enable (default)

2: disable

设置是否开启日志记录,默认开启,开启后日志等级及保留天数生效,否则等级和保留天数无效

Please select tcp_mux

1: enable (default)

2: disable

客户端和服务器端之间的连接支持多路复用,默认开启

Please select kcp support

1: enable (default)

2: disable

选择是否开启kcp 协议,默认开启,弱网环境下传输效率提升明显,但会有额外的流量消耗

启动成功后自定义域名:6443即可访问控制台,服务端就安装成功了。

客户端配置

首先,前往Github上下载frp客户端文件,Github ,我的随身WiFi是arm64的,我下载的版本是0.51.3。

3.1.配置frp

解压frp_*_linux_arm.tar.gz,修改frpc.ini

[common]server_addr = xx.xx.xx.xx

公网服务器ip

server_port = 5443

与服务器bind_port一致

token = MaOB49PlIgfQDuTy

与服务器token一致

[wifi]

type = http

连接协议 ssh http https tcp等

local_ip = 192.168.2.233

内网服务器ip 为本地web服务对应地址

local_port = 8080

本地web服务端口

remote_port = 6000

自定义访问内部端口

custom_domains =xx.xx

绑定域名

3.2.运行frp

根据自己的需求把frpc和frpc.ini上传到运行的目录,root权限输入

1
2
3

./frpc -c ./frpc.ini

3.3.远程访问

此时,就可以在外网访问网内资源了。

3.4.frpc后台运行并自启wifi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

sudo nano /etc/systemd/system/frpc.service



把下面的内容写入frpc.service中


[Unit]

Description=FRPC Client

After=network.target



[Service]

User=user

WorkingDirectory=/home/user/frp

ExecStart=/home/user/frp/frpc -c /home/user/frp/frpc.ini

Restart=always

RestartSec=5s

Type=simple

# StandardOutput=syslog # 这两行可以删除,因为它们已经被废弃

# StandardError=syslog



[Install]

WantedBy=multi-user.target



然后运行下面的命令

sudo systemctl daemon-reload



sudo systemctl start frpc



sudo systemctl status frpc



sudo systemctl enable frpc



根据自己的需求改就好。

四、给随身wifi安装docker

1.从软件源一键安装docker

1
2
3

apt install -y docker.io docker-compose

自启动Docker

1
2
3

systemctl enable --now docker

2.Docker官方一键安装脚本

使用官方源安装(国内直接访问较慢)

1
2
3

curl -fsSL https://get.docker.com | bash

使用阿里源安装

1
2
3

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

使用中国区Azure源安装

1
2
3

curl -fsSL https://get.docker.com | bash -s docker --mirror AzureChinaCloud

自启动Docker

1
2
3

systemctl enable --now docker

一键安装最新版Docker Compose:

1
2
3
4
5
6
7

COMPOSE_VERSION=`git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oP "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | sort --version-sort | tail -n 1`

sh -c "curl -L https://github.com/docker/compose/releases/download/v${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"

chmod +x /usr/local/bin/docker-compose

到这里就安装好docker了。

随身wifi目前已经稳定运行了十多天了,很不错。

]]>
+ + + 这篇文章介绍了如何给随身WiFi刷入Debian系统的过程。首先,作者参考了酷安网上一篇文章进行操作。 + + + + +
+ + + 2023~2024年度记录 + + https://blog.tutuxka.eu.org/posts/a15ff491.html + 2024-09-07T08:08:16.052Z + 2024-10-05T16:00:42.901Z + +
]]>
+ + + 这篇文章介绍了作者在2023至2024年度的感悟,表达了对2024年的期待和憧憬,感觉这是一个特别的年份。 + + + + + + + + +
+ + + 记 QQ 无头机器人搭建教程 + + https://blog.tutuxka.eu.org/posts/427ff66d.html + 2024-07-26T16:11:48.363Z + 2024-07-26T16:31:33.734Z + + First. 环境

电脑一枚, QQ 最新版,以及一个科学的上网环境,加一个灵活的双手

Second.电脑登入 QQ,并再手机上开启自动登入,然后退出 QQ(是退出程序,不是退出登入哈😊)

Than.下载最新版 QQ 无头框架 https://github.com/NapNeko/NapCatQQ-Desktop/releases,然后启动,点击 Napcat,点击下载,然后等待下载完成,然后添加机器人,名称随便写,机器人 QQ 号就填你刚才电脑登入的那个 QQ 号,其他的不用管,点击连接配置,点击 websocket 服务,点击启用,主机填 127.0.0.1,端口填 6700,最后点击添加到机器人列表,启动,便可以了,后续可自行对接插件

]]>
+ + + 这篇文章介绍了使用电脑,QQ最新版和科学上网环境进行某种操作或活动的相关内容。 + + + + + + +
+ + + 自建腾讯地理位置api + + https://blog.tutuxka.eu.org/posts/4ecf8221.html + 2023-09-30T06:00:16.604Z + 2024-01-31T02:29:01.681Z + + 祝大家双节快乐,这里分享一下怎么自己搭建博客首页的地理位置欢迎api

首先你要有一个vercel的账号,没有的可以自行百度注册一个

然后点击部署

部署

部署成功和可以自己换一个域名,根据页面内的教程替换代码便可以了。

]]>
+ + + 这篇文章介绍了如何搭建博客首页的地理位置欢迎API,并祝大家双节快乐。文章内容涉及了博客首页地理位置欢迎API的搭建方法。 + + + + + + +
+ + + 地球online更新 + + https://blog.tutuxka.eu.org/posts/fae67b61.html + 2023-08-24T06:58:29.337Z + 2024-01-26T03:02:44.294Z + + 地球onile将在8.24日00:00分进行版本更新并将于12点开服

更新内容:新增核废水太平洋

主线任务:活到成年

更新团队:🇯🇵

更新计划:制造哥斯拉

更新内容尽情期待

停服补偿:奇异海鲜及墓碑蓝图一份

PS:可能由于网络(天气)延迟,导致开服时间推后

——地球onile运营团队

《地球online》更新预告

亲爱的玩家你好:

本次更新于8月24日早上7~10点,系统检测到《地球online》玩家对海洋的探索进度低于30%做出此不关服更新

新增:

绿色的海洋 本次海洋拥有全新元素与新的生物和新的文明遗址

地球OL要迎来新的赛季“辐射”

1.添加了新的地形“被污染的海”“被污染的土地”

2.给人物增添了新的健康条“辐射值”

3.盖格计数器被新增词条“必需品”“任务”

4.新增词条“辐射”“被污染”

5.更多的DNA分支

6.将更新大部分设施

7.削弱全体玩家

8.将“防护服”归为平民用品

以上是赛季“辐射”的更新内容

祝各位玩家游戏愉快😋

]]>
+ + + 这篇文章介绍了地球online游戏即将进行版本更新和开服的消息。更新和开服时间分别为8月24日的00:00和12:00。 + + + + + + + + +
+ + + hello-world + + https://blog.tutuxka.eu.org/posts/b1d4025b.html + 2023-02-09T07:03:35.724Z + 2024-10-05T16:00:42.901Z + + 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

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

]]>
+ + + + + <p>Welcome to <a href="https://hexo.io/">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/">documentation</a> for + + + + + +
+ + + 新年快乐 + + https://blog.tutuxka.eu.org/posts/2b9cc7eb.html + 2023-01-29T17:04:42.000Z + 2023-01-29T17:04:47.000Z + + 祝大家新年快乐吧,虽然年已经过完了,但还是要记录一下的

]]>
+ + + + + <p>祝大家新年快乐吧,虽然年已经过完了,但还是要记录一下的</p> + + + + + + + + +
+ +
diff --git a/baidusitemap.xml b/baidusitemap.xml new file mode 100644 index 00000000..f71d93e7 --- /dev/null +++ b/baidusitemap.xml @@ -0,0 +1,39 @@ + + + + https://blog.tutuxka.eu.org/posts/a15ff491.html + 2024-10-05 + + + https://blog.tutuxka.eu.org/posts/b1d4025b.html + 2024-10-05 + + + https://blog.tutuxka.eu.org/posts/ee601c8a.html + 2024-10-05 + + + https://blog.tutuxka.eu.org/posts/7894e390.html + 2024-10-02 + + + https://blog.tutuxka.eu.org/posts/368ec568.html + 2024-10-02 + + + https://blog.tutuxka.eu.org/posts/427ff66d.html + 2024-07-26 + + + https://blog.tutuxka.eu.org/posts/4ecf8221.html + 2024-01-31 + + + https://blog.tutuxka.eu.org/posts/fae67b61.html + 2024-01-26 + + + https://blog.tutuxka.eu.org/posts/2b9cc7eb.html + 2023-01-29 + + \ No newline at end of file diff --git a/bangumis/index.html b/bangumis/index.html new file mode 100644 index 00000000..3423356a --- /dev/null +++ b/bangumis/index.html @@ -0,0 +1,339 @@ +bangumis | 兔兔博客🇨🇳 + + + + + + + + + + + + + +

评论
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 00000000..2f0cff83 --- /dev/null +++ b/categories/index.html @@ -0,0 +1,291 @@ +分类 | 兔兔博客🇨🇳 + + + + + + + + + + + + + +
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git "a/categories/\346\212\200\346\234\257\346\225\231\347\250\213/index.html" "b/categories/\346\212\200\346\234\257\346\225\231\347\250\213/index.html" new file mode 100644 index 00000000..639405a1 --- /dev/null +++ "b/categories/\346\212\200\346\234\257\346\225\231\347\250\213/index.html" @@ -0,0 +1,289 @@ +分类: 技术教程 | 兔兔博客🇨🇳 + + + + + + + + + + + +
分类 - 技术教程
2023
自建腾讯地理位置api
自建腾讯地理位置api
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git "a/categories/\347\224\237\346\264\273\347\202\271\346\273\264/index.html" "b/categories/\347\224\237\346\264\273\347\202\271\346\273\264/index.html" new file mode 100644 index 00000000..4b77f60f --- /dev/null +++ "b/categories/\347\224\237\346\264\273\347\202\271\346\273\264/index.html" @@ -0,0 +1,289 @@ +分类: 生活点滴 | 兔兔博客🇨🇳 + + + + + + + + + + + +
分类 - 生活点滴
2024
2023~2024年度记录
2023~2024年度记录
2023
新年快乐
新年快乐
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/comments/index.html b/comments/index.html new file mode 100644 index 00000000..a3474ddd --- /dev/null +++ b/comments/index.html @@ -0,0 +1,416 @@ +留言板 | 兔兔博客🇨🇳 + + + + + + + + + + + +

来自兔兔博客🇨🇳的留言:

本站有哪些做得好或者不好的地方?
或者你有什么改进的建议?
又或者你有什么具体的问题需要咨询?
都可以在下方评论区留言哦~~~

兔兔小站站长亲自为您服务!


评论
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/css/coin.css b/css/coin.css new file mode 100644 index 00000000..8f7a3f26 --- /dev/null +++ b/css/coin.css @@ -0,0 +1,190 @@ +.tip-button { + border: 0; + border-radius: 0.25rem; + cursor: pointer; + font-size: 20px; + font-weight: 600; + height: 2.6rem; + margin-bottom: -4rem; + outline: 0; + position: relative; + top: 0; + transform-origin: 0% 100%; + transition: transform 50ms ease-in-out; + width: auto; + -webkit-tap-highlight-color: transparent; +} +.tip-button:active { + transform: rotate(4deg); +} +.tip-button.clicked { + animation: 150ms ease-in-out 1 shake; + pointer-events: none; +} +.tip-button.clicked .tip-button__text { + opacity: 0; + transition: opacity 100ms linear 200ms; +} +.tip-button.clicked::before { + height: 0.5rem; + width: 60%; + background: var(button-hover-color); +} +.tip-button.clicked .coin { + transition: margin-bottom 1s linear 200ms; + margin-bottom: 0; +} +.tip-button.shrink-landing::before { + transition: width 200ms ease-in; + width: 0; +} +.tip-button.coin-landed::after { + opacity: 1; + transform: scale(1); + transform-origin: 50% 100%; +} +.tip-button.coin-landed .coin-wrapper { + background: radial-gradient(circle at 35% 97%, rgba(3, 16, 50, 0.4) 0.04rem, transparent 0.04rem), radial-gradient(circle at 45% 92%, rgba(3, 16, 50, 0.4) 0.04rem, transparent 0.02rem), radial-gradient(circle at 55% 98%, rgba(3, 16, 50, 0.4) 0.04rem, transparent 0.04rem), radial-gradient(circle at 65% 96%, rgba(3, 16, 50, 0.4) 0.06rem, transparent 0.06rem); + background-position: center bottom; + background-size: 100%; + bottom: -1rem; + opacity: 0; + transform: scale(2) translateY(-10px); +} +.tip-button__text { + color: #fff; + margin-right: 1.8rem; + opacity: 1; + position: relative; + transition: opacity 100ms linear 500ms; + z-index: 3; +} +.tip-button::before { + border-radius: 0.25rem; + bottom: 0; + content: ''; + display: block; + height: 100%; + left: 50%; + position: absolute; + transform: translateX(-50%); + transition: height 250ms ease-in-out 400ms, width 250ms ease-in-out 300ms; + width: 100%; + z-index: 2; +} +.tip-button::after { + bottom: -1rem; + color: white; + content: 'ヾ(≧O≦)〃嗷~'; /*点击后显示的内容*/ + height: 110%; + left: 0; + opacity: 0; + position: absolute; + pointer-events: none; + text-align: center; + transform: scale(0); + transform-origin: 50% 20%; + transition: transform 200ms cubic-bezier(0, 0, 0.35, 1.43); + width: 100%; + z-index: 1; +} + +.coin-wrapper { + background: none; + bottom: 0; + height: 18rem; + left: 0; + opacity: 1; + overflow: hidden; + pointer-events: none; + position: absolute; + transform: none; + transform-origin: 50% 100%; + transition: opacity 200ms linear 100ms, transform 300ms ease-out; + width: 100%; +} + +.coin { + --front-y-multiplier: 0; + --back-y-multiplier: 0; + --coin-y-multiplier: 0; + --coin-x-multiplier: 0; + --coin-scale-multiplier: 0; + --coin-rotation-multiplier: 0; + --shine-opacity-multiplier: 0.4; + --shine-bg-multiplier: 50%; + bottom: calc(var(--coin-y-multiplier) * 1rem - 3.5rem); + height: 3.5rem; + margin-bottom: 3.05rem; + position: absolute; + right: calc(var(--coin-x-multiplier) * 34% + 16%); + transform: translateX(50%) scale(calc(0.4 + var(--coin-scale-multiplier))) rotate(calc(var(--coin-rotation-multiplier) * -1deg)); + transition: opacity 100ms linear 200ms; + width: 3.5rem; + z-index: 3; +} +.coin__front, .coin__middle, .coin__back, .coin::before, .coin__front::after, .coin__back::after { + border-radius: 50%; + box-sizing: border-box; + height: 100%; + left: 0; + position: absolute; + width: 100%; + z-index: 3; +} +.coin__front { + background: radial-gradient(circle at 50% 50%, transparent 50%, rgba(115, 124, 153, 0.4) 54%, #c2cadf 54%), linear-gradient(210deg, #8590b3 32%, transparent 32%), linear-gradient(150deg, #8590b3 32%, transparent 32%), linear-gradient(to right, #8590b3 22%, transparent 22%, transparent 78%, #8590b3 78%), linear-gradient(to bottom, #fcfaf9 44%, transparent 44%, transparent 65%, #fcfaf9 65%, #fcfaf9 71%, #8590b3 71%), linear-gradient(to right, transparent 28%, #fcfaf9 28%, #fcfaf9 34%, #8590b3 34%, #8590b3 40%, #fcfaf9 40%, #fcfaf9 47%, #8590b3 47%, #8590b3 53%, #fcfaf9 53%, #fcfaf9 60%, #8590b3 60%, #8590b3 66%, #fcfaf9 66%, #fcfaf9 72%, transparent 72%); + background-color: #8590b3; + background-size: 100% 100%; + transform: translateY(calc(var(--front-y-multiplier) * 0.3181818182rem / 2)) scaleY(var(--front-scale-multiplier)); +} +.coin__front::after { + background: rgba(0, 0, 0, 0.2); + content: ''; + opacity: var(--front-y-multiplier); +} +.coin__middle { + background: #737c99; + transform: translateY(calc(var(--middle-y-multiplier) * 0.3181818182rem / 2)) scaleY(var(--middle-scale-multiplier)); +} +.coin__back { + background: radial-gradient(circle at 50% 50%, transparent 50%, rgba(115, 124, 153, 0.4) 54%, #c2cadf 54%), radial-gradient(circle at 50% 40%, #fcfaf9 23%, transparent 23%), radial-gradient(circle at 50% 100%, #fcfaf9 35%, transparent 35%); + background-color: #8590b3; + background-size: 100% 100%; + transform: translateY(calc(var(--back-y-multiplier) * 0.3181818182rem / 2)) scaleY(var(--back-scale-multiplier)); +} +.coin__back::after { + background: rgba(0, 0, 0, 0.2); + content: ''; + opacity: var(--back-y-multiplier); +} +.coin::before { + background: radial-gradient(circle at 25% 65%, transparent 50%, rgba(255, 255, 255, 0.9) 90%), linear-gradient(55deg, transparent calc(var(--shine-bg-multiplier) + 0%), #e9f4ff calc(var(--shine-bg-multiplier) + 0%), transparent calc(var(--shine-bg-multiplier) + 50%)); + content: ''; + opacity: var(--shine-opacity-multiplier); + transform: translateY(calc(var(--middle-y-multiplier) * 0.3181818182rem / -2)) scaleY(var(--middle-scale-multiplier)) rotate(calc(var(--coin-rotation-multiplier) * 1deg)); + z-index: 10; +} +.coin::after { + background: #737c99; + content: ''; + height: 0.3181818182rem; + left: 0; + position: absolute; + top: 50%; + transform: translateY(-50%); + width: 100%; + z-index: 2; +} + +@keyframes shake { + 0% { + transform: rotate(4deg); + } + 66% { + transform: rotate(-4deg); + } + 100% { + transform: rotate(); + } +} \ No newline at end of file diff --git a/css/hbe.style.css b/css/hbe.style.css new file mode 100644 index 00000000..060f1f83 --- /dev/null +++ b/css/hbe.style.css @@ -0,0 +1,749 @@ +.hbe, +.hbe:after, +.hbe:before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.hbe-container{ + margin: 0 auto; + overflow: hidden; +} +.hbe-content { + text-align: center; + font-size: 150%; + padding: 1em 0; +} + +.hbe-input { + position: relative; + z-index: 1; + display: inline-block; + margin: 1em; + width: 80%; + min-width: 200px; + vertical-align: top; +} + +.hbe-input-field { + line-height: normal; + font-size: 100%; + margin: 0; + position: relative; + display: block; + float: right; + padding: 0.8em; + width: 60%; + border: none; + border-radius: 0; + background: #f0f0f0; + color: #aaa; + font-weight: 400; + font-family: "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif; + -webkit-appearance: none; /* for box shadows to show on iOS */ +} + +.hbe-input-field:focus { + outline: none; +} + +.hbe-input-label { + display: inline-block; + float: right; + padding: 0 1em; + width: 40%; + color: #696969; + font-weight: bold; + font-size: 70.25%; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.hbe-input-label-content { + position: relative; + display: block; + padding: 1.6em 0; + width: 100%; +} + +.hbe-graphic { + position: absolute; + top: 0; + left: 0; + fill: none; +} + +/* hbe button in post page */ +.hbe-button { + width: 130px; + height: 40px; + background: linear-gradient(to bottom, #4eb5e5 0%,#389ed5 100%); /* W3C */ + border: none; + border-radius: 5px; + position: relative; + border-bottom: 4px solid #2b8bc6; + color: #fbfbfb; + font-weight: 600; + font-family: 'Open Sans', sans-serif; + text-shadow: 1px 1px 1px rgba(0,0,0,.4); + font-size: 15px; + text-align: left; + text-indent: 5px; + box-shadow: 0px 3px 0px 0px rgba(0,0,0,.2); + cursor: pointer; + + display: block; + margin: 0 auto; + margin-bottom: 20px; +} + +.hbe-button:active { + box-shadow: 0px 2px 0px 0px rgba(0,0,0,.2); + top: 1px; +} + +.hbe-button:after { + content: ""; + width: 0; + height: 0; + display: block; + border-top: 20px solid #187dbc; + border-bottom: 20px solid #187dbc; + border-left: 16px solid transparent; + border-right: 20px solid #187dbc; + position: absolute; + opacity: 0.6; + right: 0; + top: 0; + border-radius: 0 5px 5px 0; +} +/* hbe button in post page */ + +/* default theme {{{ */ +.hbe-input-default { + overflow: hidden; +} + +.hbe-input-field-default { + width: 100%; + background: transparent; + padding: 0.5em; + margin-bottom: 2em; + color: #f9f7f6; + z-index: 100; + opacity: 0; +} + +.hbe-input-label-default { + width: 100%; + position: absolute; + text-align: left; + padding: 0.5em 0; + pointer-events: none; + font-size: 1em; +} + +.hbe-input-label-default::before, +.hbe-input-label-default::after { + content: ''; + position: absolute; + width: 100%; + left: 0; +} + +.hbe-input-label-default::before { + height: 100%; + background: #666666; + top: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + -webkit-transition: -webkit-transform 0.2s; + transition: transform 0.2s; +} + +.hbe-input-label-default::after { + height: 2px; + background: #666666; + top: 100%; + -webkit-transition: opacity 0.2s; + transition: opacity 0.2s; +} + +.hbe-input-label-content-default { + padding: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transition: -webkit-transform 0.2s, color 0.2s; + transition: transform 0.2s, color 0.2s; +} + +.hbe-input-field-default:focus, +.hbe-input--filled .hbe-input-field-default { + opacity: 1; + -webkit-transition: opacity 0s 0.2s; + transition: opacity 0s 0.2s; +} + +.hbe-input-label-default::before, +.hbe-input-label-default::after, +.hbe-input-label-content-default, +.hbe-input-field-default:focus, +.hbe-input--filled .hbe-input-field-default { + -webkit-transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); + transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); +} + +.hbe-input-field-default:focus + .hbe-input-label-default::before, +.hbe-input--filled .hbe-input-label-default::before { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +.hbe-input-field-default:focus + .hbe-input-label-default::after, +.hbe-input--filled .hbe-input-label-default::after { + opacity: 0; +} + +.hbe-input-field-default:focus + .hbe-input-label-default .hbe-input-label-content-default, +.hbe-input--filled .hbe-input-label-default .hbe-input-label-content-default { + color: #555555; + -webkit-transform: translate3d(0, 2.1em, 0) scale3d(0.65, 0.65, 1); + transform: translate3d(0, 2.1em, 0) scale3d(0.65, 0.65, 1); +} +/* default theme }}} */ + +/* up theme {{{ */ +.hbe-input-up { + overflow: hidden; + padding-top: 2em; +} + +.hbe-input-field-up { + width: 100%; + background: transparent; + opacity: 0; + padding: 0.35em; + z-index: 100; + color: #837482; +} + +.hbe-input-label-up { + width: 100%; + bottom: 0; + position: absolute; + pointer-events: none; + text-align: left; + color: #8E9191; + padding: 0 0.5em; +} + +.hbe-input-label-up::before { + content: ''; + position: absolute; + width: 100%; + height: 4em; + top: 100%; + left: 0; + background: #fff; + border-top: 4px solid #9B9F9F; + -webkit-transform: translate3d(0, -3px, 0); + transform: translate3d(0, -3px, 0); + -webkit-transition: -webkit-transform 0.4s; + transition: transform 0.4s; + -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); + transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); +} + +.hbe-input-label-content-up { + padding: 0.5em 0; + -webkit-transform-origin: 0% 100%; + transform-origin: 0% 100%; + -webkit-transition: -webkit-transform 0.4s, color 0.4s; + transition: transform 0.4s, color 0.4s; + -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); + transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); +} + +.hbe-input-field-up:focus, +.input--filled .hbe-input-field-up { + cursor: text; + opacity: 1; + -webkit-transition: opacity 0s 0.4s; + transition: opacity 0s 0.4s; +} + +.hbe-input-field-up:focus + .hbe-input-label-up::before, +.input--filled .hbe-input-label-up::before { + -webkit-transition-delay: 0.05s; + transition-delay: 0.05s; + -webkit-transform: translate3d(0, -3.3em, 0); + transform: translate3d(0, -3.3em, 0); +} + +.hbe-input-field-up:focus + .hbe-input-label-up .hbe-input-label-content-up, +.input--filled .hbe-input-label-content-up { + color: #6B6E6E; + -webkit-transform: translate3d(0, -3.3em, 0) scale3d(0.81, 0.81, 1); + transform: translate3d(0, -3.3em, 0) scale3d(0.81, 0.81, 1); +} +/* up theme }}} */ + +/* wave theme {{{ */ +.hbe-input-wave { + overflow: hidden; + padding-top: 1em; +} + +.hbe-input-field-wave { + padding: 0.5em 0em 0.25em; + width: 100%; + background: transparent; + color: #9da8b2; + font-size: 1.25em; +} + +.hbe-input-label-wave { + position: absolute; + top: 0.95em; + font-size: 0.85em; + left: 0; + display: block; + width: 100%; + text-align: left; + padding: 0em; + pointer-events: none; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transition: -webkit-transform 0.2s 0.15s, color 1s; + transition: transform 0.2s 0.15s, color 1s; + -webkit-transition-timing-function: ease-out; + transition-timing-function: ease-out; +} + +.hbe-graphic-wave { + stroke: #92989e; + pointer-events: none; + -webkit-transition: -webkit-transform 0.7s, stroke 0.7s; + transition: transform 0.7s, stroke 0.7s; + -webkit-transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); + transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); +} + +.hbe-input-field-wave:focus + .hbe-input-label-wave, +.input--filled .hbe-input-label-wave { + color: #333; + -webkit-transform: translate3d(0, -1.25em, 0) scale3d(0.75, 0.75, 1); + transform: translate3d(0, -1.25em, 0) scale3d(0.75, 0.75, 1); +} + +.hbe-input-field-wave:focus ~ .hbe-graphic-wave, +.input--filled .graphic-wave { + stroke: #333; + -webkit-transform: translate3d(-66.6%, 0, 0); + transform: translate3d(-66.6%, 0, 0); +} +/* wave theme }}} */ + +/* flip theme {{{ */ +.hbe-input-field-flip { + width: 100%; + background-color: #d0d1d0; + border: 2px solid transparent; + -webkit-transition: background-color 0.25s, border-color 0.25s; + transition: background-color 0.25s, border-color 0.25s; +} + +.hbe-input-label-flip { + width: 100%; + text-align: left; + position: absolute; + bottom: 100%; + pointer-events: none; + overflow: hidden; + padding: 0 1.25em; + -webkit-transform: translate3d(0, 3em, 0); + transform: translate3d(0, 3em, 0); + -webkit-transition: -webkit-transform 0.25s; + transition: transform 0.25s ; + -webkit-transition-timing-function: ease-in-out; + transition-timing-function: ease-in-out; +} + +.hbe-input-label-content-flip { + color: #8B8C8B; + padding: 0.25em 0; + -webkit-transition: -webkit-transform 0.25s; + transition: transform 0.25s; + -webkit-transition-timing-function: ease-in-out; + transition-timing-function: ease-in-out; +} + +.hbe-input-label-content-flip::after { + content: attr(data-content); + position: absolute; + font-weight: 800; + bottom: 100%; + left: 0; + height: 100%; + width: 100%; + color: #666666; + padding: 0.25em 0; + letter-spacing: 1px; + font-size: 1em; +} + +.hbe-input-field-flip:focus + .hbe-input-label-flip, +.input--filled .hbe-input-label-flip { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +.hbe-input-field-flip:focus + .hbe-input-label-flip .hbe-input-label-content-flip, +.input--filled .hbe-input-label-content-flip { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); +} + +.hbe-input-field-flip:focus + .hbe-input-field-flip, +.input--filled .hbe-input-field-flip { + background-color: transparent; + border-color: #666666; +} +/* flip theme }}} */ + +/* xray theme {{{ */ +.hbe-input-xray { + overflow: hidden; + padding-bottom: 2.5em; +} + +.hbe-input-field-xray { + padding: 0; + margin-top: 1.2em; + width: 100%; + background: transparent; + color: #84AF9B ; + font-size: 1.55em; +} + +.hbe-input-label-xray { + position: absolute; + top: 2em; + left: 0; + display: block; + width: 100%; + text-align: left; + padding: 0em; + letter-spacing: 1px; + color: #84AF9B ; + pointer-events: none; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transition: -webkit-transform 0.2s 0.1s, color 0.3s; + transition: transform 0.2s 0.1s, color 0.3s; + -webkit-transition-timing-function: ease-out; + transition-timing-function: ease-out; +} + +.hbe-graphic-xray { + stroke: #84AF9B ; + pointer-events: none; + stroke-width: 2px; + top: 1.25em; + bottom: 0px; + height: 3.275em; + -webkit-transition: -webkit-transform 0.7s, stroke 0.7s; + transition: transform 0.7s, stroke 0.7s; + -webkit-transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); + transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); +} + +.hbe-input-field-xray:focus + .hbe-input-label-xray, +.input--filled .hbe-input-label-xray { + color: #84AF9B ; + -webkit-transform: translate3d(0, 3.5em, 0) scale3d(0.85, 0.85, 1); + transform: translate3d(0, 3.5em, 0) scale3d(0.85, 0.85, 1); +} + +.hbe-input-field-xray:focus ~ .hbe-graphic-xray, +.input--filled .graphic-xray { + stroke: #84AF9B ; + -webkit-transform: translate3d(-66.6%, 0, 0); + transform: translate3d(-66.6%, 0, 0); +} +/* xray theme }}} */ + +/* blink theme {{{ */ +.hbe-input-blink { + padding-top: 1em; +} + +.hbe-input-field-blink { + width: 100%; + padding: 0.8em 0.5em; + background: transparent; + border: 2px solid; + color: #8781bd; + -webkit-transition: border-color 0.25s; + transition: border-color 0.25s; +} + +.hbe-input-label-blink { + width: 100%; + position: absolute; + top: 0; + text-align: left; + overflow: hidden; + padding: 0; + pointer-events: none; + -webkit-transform: translate3d(0, 3em, 0); + transform: translate3d(0, 3em, 0); +} + +.hbe-input-label-content-blink { + padding: 0 1em; + font-weight: 400; + color: #b5b5b5; +} + +.hbe-input-label-content-blink::after { + content: attr(data-content); + position: absolute; + top: -200%; + left: 0; + color: #8781bd ; + font-weight: 800; +} + +.hbe-input-field-blink:focus, +.input--filled .hbe-input-field-blink { + border-color: #8781bd ; +} + +.hbe-input-field-blink:focus + .hbe-input-label-blink, +.input--filled .hbe-input-label-blink { + -webkit-animation: anim-blink-1 0.25s forwards; + animation: anim-blink-1 0.25s forwards; +} + +.hbe-input-field-blink:focus + .hbe-input-label-blink .hbe-input-label-content-blink, +.input--filled .hbe-input-label-content-blink { + -webkit-animation: anim-blink-2 0.25s forwards ease-in; + animation: anim-blink-2 0.25s forwards ease-in; +} + +@-webkit-keyframes anim-blink-1 { + 0%, 70% { + -webkit-transform: translate3d(0, 3em, 0); + transform: translate3d(0, 3em, 0); + } + 71%, 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@-webkit-keyframes anim-blink-2 { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 70%, 71% { + -webkit-transform: translate3d(0, 125%, 0); + transform: translate3d(0, 125%, 0); + opacity: 0; + -webkit-animation-timing-function: ease-out; + } + 100% { + color: transparent; + -webkit-transform: translate3d(0, 200%, 0); + transform: translate3d(0, 200%, 0); + } +} + +@keyframes anim-blink-1 { + 0%, 70% { + -webkit-transform: translate3d(0, 3em, 0); + transform: translate3d(0, 3em, 0); + } + 71%, 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes anim-blink-2 { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + 70%, 71% { + -webkit-transform: translate3d(0, 125%, 0); + transform: translate3d(0, 125%, 0); + opacity: 0; + -webkit-animation-timing-function: ease-out; + } + 100% { + color: transparent; + -webkit-transform: translate3d(0, 200%, 0); + transform: translate3d(0, 200%, 0); + } +} +/* blink theme }}} */ + +/* surge theme {{{ */ +.hbe-input-surge { + overflow: hidden; + padding-bottom: 1em; +} + +.hbe-input-field-surge { + padding: 0.25em 0.5em; + margin-top: 1.25em; + width: 100%; + background: transparent; + color: #D0D0D0; + font-size: 1.55em; + opacity: 0; +} + +.hbe-input-label-surge { + width: 100%; + text-align: left; + position: absolute; + top: 1em; + pointer-events: none; + overflow: hidden; + padding: 0 0.25em; + -webkit-transform: translate3d(1em, 2.75em, 0); + transform: translate3d(1em, 2.75em, 0); + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; +} + +.hbe-input-label-content-surge { + color: #A4A5A6; + padding: 0.4em 0 0.25em; + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; +} + +.hbe-input-label-content-surge::after { + content: attr(data-content); + position: absolute; + font-weight: 800; + top: 100%; + left: 0; + height: 100%; + width: 100%; + color: #2C3E50; + padding: 0.25em 0; + letter-spacing: 1px; + font-size: 0.85em; +} + +.hbe-graphic-surge { + fill: #2C3E50; + pointer-events: none; + top: 1em; + bottom: 0px; + height: 4.5em; + z-index: -1; + -webkit-transition: -webkit-transform 0.7s, fill 0.7s; + transition: transform 0.7s, fill 0.7s; + -webkit-transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); + transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); +} + +.hbe-input-field-surge:focus, +.input--filled .hbe-input-field-surge { + -webkit-transition: opacity 0s 0.35s; + transition: opacity 0s 0.35s; + opacity: 1; +} + +.hbe-input-field-surge:focus + .hbe-input-label-surge, +.input--filled .hbe-input-label-surge { + -webkit-transition-delay: 0.15s; + transition-delay: 0.15s; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +.hbe-input-field-surge:focus + .hbe-input-label-surge .hbe-input-label-content-surge, +.input--filled .hbe-input-label-content-surge { + -webkit-transition-delay: 0.15s; + transition-delay: 0.15s; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); +} + +.hbe-input-field-surge:focus ~ .hbe-graphic-surge, +.input--filled .graphic-surge { + fill: #2C3E50; + -webkit-transform: translate3d(-66.6%, 0, 0); + transform: translate3d(-66.6%, 0, 0); +} +/* surge theme }}} */ + +/* shrink theme {{{ */ +.hbe-input-field-shrink { + width: 100%; + background: transparent; + padding: 0.5em 0; + margin-bottom: 2em; + color: #2C3E50; +} + +.hbe-input-label-shrink { + width: 100%; + position: absolute; + text-align: left; + font-size: 1em; + padding: 10px 0 5px; + pointer-events: none; +} + +.hbe-input-label-shrink::after { + content: ''; + position: absolute; + width: 100%; + height: 7px; + background: #B7C3AC; + left: 0; + top: 100%; + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; + -webkit-transition: -webkit-transform 0.3s, background-color 0.3s; + transition: transform 0.3s, background-color 0.3s; +} + +.hbe-input-label-content-shrink { + padding: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transition: -webkit-transform 0.3s, color 0.3s; + transition: transform 0.3s, color 0.3s; +} + +.hbe-input-field-shrink:focus + .hbe-input-label-shrink::after, +.input--filled .hbe-input-label-shrink::after { + background: #84AF9B; + -webkit-transform: scale3d(1, 0.25, 1); + transform: scale3d(1, 0.25, 1); +} + +.hbe-input-field-shrink:focus + .hbe-input-label-shrink .hbe-input-label-content-shrink, +.input--filled .hbe-input-label-shrink .hbe-input-label-content-shrink { + color: #84AF9B; + -webkit-transform: translate3d(0, 2em, 0) scale3d(0.655, 0.655, 1); + transform: translate3d(0, 2em, 0) scale3d(0.655, 0.655, 1); +} +/* shrink theme }}} */ diff --git a/css/index.css b/css/index.css new file mode 100644 index 00000000..33ae59f3 --- /dev/null +++ b/css/index.css @@ -0,0 +1,9656 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +html { + line-height: 1.15; + -webkit-text-size-adjust: 100% +} + +body { + margin: 0 +} + +main { + display: block +} + +h1 { + font-size: 2em; + margin: .67em 0 +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible +} + +pre { + font-family: monospace, monospace; + font-size: 1em +} + +a { + background-color: transparent +} + +abbr[title] { + border-bottom: none; + text-decoration: underline; + text-decoration: underline dotted +} + +b, +strong { + font-weight: bolder +} + +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em +} + +small { + font-size: 80% +} + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline +} + +sub { + bottom: -.25em +} + +sup { + top: -.5em +} + +img { + border-style: none +} + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + font-size: 100%; + line-height: 1.15; + margin: 0 +} + +button, +input { + overflow: visible +} + +button, +select { + text-transform: none +} + +[type=button], +[type=reset], +[type=submit], +button { + -webkit-appearance: button +} + +[type=button]::-moz-focus-inner, +[type=reset]::-moz-focus-inner, +[type=submit]::-moz-focus-inner, +button::-moz-focus-inner { + border-style: none; + padding: 0 +} + +[type=button]:-moz-focusring, +[type=reset]:-moz-focusring, +[type=submit]:-moz-focusring, +button:-moz-focusring { + outline: 1px dotted ButtonText +} + +fieldset { + padding: .35em .75em .625em +} + +legend { + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal +} + +progress { + vertical-align: baseline +} + +textarea { + overflow: auto +} + +[type=checkbox], +[type=radio] { + box-sizing: border-box; + padding: 0 +} + +[type=number]::-webkit-inner-spin-button, +[type=number]::-webkit-outer-spin-button { + height: auto +} + +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px +} + +[type=search]::-webkit-search-decoration { + -webkit-appearance: none +} + +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit +} + +details { + display: block +} + +summary { + display: list-item +} + +template { + display: none +} + +[hidden] { + display: none +} +.limit-one-line, +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span, +#aside-content .card-categories ul.card-category-list > .card-category-list-item a span, +.site-data > a .headline, +#pagination .prev_info, +#pagination .next_info, +[data-theme="dark"] #sidebar-menus .menus_items .site-page { + overflow: hidden; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; + white-space: nowrap; +} +.limit-more-line, +.error404 #error-wrap .error-content .error-info .error_subtitle, +.article-sort-item-title, +#aside-content .aside-list > .aside-list-item .content > .name, +#aside-content .aside-list > .aside-list-item .content > .title, +#aside-content .aside-list > .aside-list-item .content > .comment, +#post-info .post-title, +.relatedPosts > .relatedPosts-list .content .title, +#article-container figure.gallery-group p, +#article-container figure.gallery-group .gallery-group-name { + display: -webkit-box; + overflow: hidden; + -webkit-box-orient: vertical; +} +.fontawesomeIcon, +hr:before, +#article-container h1:before, +#article-container h2:before, +#article-container h3:before, +#article-container h4:before, +#article-container h5:before, +#article-container h6:before, +#post .post-outdate-notice:before, +.note:not(.no-icon)::before { + display: inline-block; + font-weight: 600; + font-family: 'Font Awesome 6 Free'; + text-rendering: auto; + -webkit-font-smoothing: antialiased; +} +.cardHover, +.error404 #error-wrap .error-content, +.layout > div:first-child:not(.recent-posts), +#aside-content .card-widget, +.layout > .recent-posts .pagination > *:not(.space) { + border-radius: 8px; + background: var(--card-bg); + -webkit-box-shadow: var(--card-box-shadow); + box-shadow: var(--card-box-shadow); + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} +.cardHover:hover, +.error404 #error-wrap .error-content:hover, +.layout > div:first-child:not(.recent-posts):hover, +#aside-content .card-widget:hover, +.layout > .recent-posts .pagination > *:not(.space):hover { + -webkit-box-shadow: var(--card-hover-box-shadow); + box-shadow: var(--card-hover-box-shadow); +} +.imgHover, +.error404 #error-wrap .error-content .error-img img, +.article-sort-item-img img, +#aside-content .aside-list > .aside-list-item .thumbnail > img { + width: 100%; + height: 100%; + -webkit-transition: filter 375ms ease-in 0.2s, -webkit-transform 0.6s; + -moz-transition: filter 375ms ease-in 0.2s, -moz-transform 0.6s; + -o-transition: filter 375ms ease-in 0.2s, -o-transform 0.6s; + -ms-transition: filter 375ms ease-in 0.2s, -ms-transform 0.6s; + transition: filter 375ms ease-in 0.2s, transform 0.6s; + object-fit: cover; +} +.imgHover:hover, +.error404 #error-wrap .error-content .error-img img:hover, +.article-sort-item-img img:hover, +#aside-content .aside-list > .aside-list-item .thumbnail > img:hover { + -webkit-transform: scale(1.1); + -moz-transform: scale(1.1); + -o-transform: scale(1.1); + -ms-transform: scale(1.1); + transform: scale(1.1); +} +.postImgHover:hover img, +#pagination .prev-post:hover img, +#pagination .next-post:hover img, +.relatedPosts > .relatedPosts-list > div:hover img { + opacity: 0.8; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; + filter: alpha(opacity=80); + -webkit-transform: scale(1.1); + -moz-transform: scale(1.1); + -o-transform: scale(1.1); + -ms-transform: scale(1.1); + transform: scale(1.1); +} +.postImgHover img, +#pagination .prev-post img, +#pagination .next-post img, +.relatedPosts > .relatedPosts-list > div img { + position: absolute; + width: 100%; + height: 100%; + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + -webkit-transition: all 0.6s, filter 375ms ease-in 0.2s; + -moz-transition: all 0.6s, filter 375ms ease-in 0.2s; + -o-transition: all 0.6s, filter 375ms ease-in 0.2s; + -ms-transition: all 0.6s, filter 375ms ease-in 0.2s; + transition: all 0.6s, filter 375ms ease-in 0.2s; + object-fit: cover; +} +.list-beauty, +.category-lists ul { + list-style: none; +} +.list-beauty li, +.category-lists ul li { + position: relative; + padding: 0.12em 0.4em 0.12em 1.4em; +} +.list-beauty li:hover:before, +.category-lists ul li:hover:before { + border-color: var(--pseudo-hover); +} +.list-beauty li:before, +.category-lists ul li:before { + position: absolute; + top: 0.67em; + left: 0; + width: 0.43em; + height: 0.43em; + border: 0.215em solid #49b1f5; + border-radius: 0.43em; + background: transparent; + content: ''; + -webkit-transition: all 0.3s ease-out; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -ms-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +#content-inner, +#footer { + -webkit-animation: bottom-top 1s; + -moz-animation: bottom-top 1s; + -o-animation: bottom-top 1s; + -ms-animation: bottom-top 1s; + animation: bottom-top 1s; +} +#page-header { + -webkit-animation: header-effect 1s; + -moz-animation: header-effect 1s; + -o-animation: header-effect 1s; + -ms-animation: header-effect 1s; + animation: header-effect 1s; +} +#site-title, +#site-subtitle { + -webkit-animation: titleScale 1s; + -moz-animation: titleScale 1s; + -o-animation: titleScale 1s; + -ms-animation: titleScale 1s; + animation: titleScale 1s; +} +#nav.show { + -webkit-animation: headerNoOpacity 1s; + -moz-animation: headerNoOpacity 1s; + -o-animation: headerNoOpacity 1s; + -ms-animation: headerNoOpacity 1s; + animation: headerNoOpacity 1s; +} +canvas:not(#ribbon-canvas), +#web_bg { + -webkit-animation: to_show 4s; + -moz-animation: to_show 4s; + -o-animation: to_show 4s; + -ms-animation: to_show 4s; + animation: to_show 4s; +} +#ribbon-canvas { + -webkit-animation: ribbon_to_show 4s; + -moz-animation: ribbon_to_show 4s; + -o-animation: ribbon_to_show 4s; + -ms-animation: ribbon_to_show 4s; + animation: ribbon_to_show 4s; +} +#sidebar-menus.open > :nth-child(1) { + -webkit-animation: sidebarItem 0.2s; + -moz-animation: sidebarItem 0.2s; + -o-animation: sidebarItem 0.2s; + -ms-animation: sidebarItem 0.2s; + animation: sidebarItem 0.2s; +} +#sidebar-menus.open > :nth-child(2) { + -webkit-animation: sidebarItem 0.4s; + -moz-animation: sidebarItem 0.4s; + -o-animation: sidebarItem 0.4s; + -ms-animation: sidebarItem 0.4s; + animation: sidebarItem 0.4s; +} +#sidebar-menus.open > :nth-child(3) { + -webkit-animation: sidebarItem 0.6s; + -moz-animation: sidebarItem 0.6s; + -o-animation: sidebarItem 0.6s; + -ms-animation: sidebarItem 0.6s; + animation: sidebarItem 0.6s; +} +#sidebar-menus.open > :nth-child(4) { + -webkit-animation: sidebarItem 0.8s; + -moz-animation: sidebarItem 0.8s; + -o-animation: sidebarItem 0.8s; + -ms-animation: sidebarItem 0.8s; + animation: sidebarItem 0.8s; +} +.scroll-down-effects { + -webkit-animation: scroll-down-effect 1.5s infinite; + -moz-animation: scroll-down-effect 1.5s infinite; + -o-animation: scroll-down-effect 1.5s infinite; + -ms-animation: scroll-down-effect 1.5s infinite; + animation: scroll-down-effect 1.5s infinite; +} +.avatar-img { + -webkit-animation: avatar_turn_around 2s linear infinite; + -moz-animation: avatar_turn_around 2s linear infinite; + -o-animation: avatar_turn_around 2s linear infinite; + -ms-animation: avatar_turn_around 2s linear infinite; + animation: avatar_turn_around 2s linear infinite; +} +.reward-main { + -webkit-animation: donate_effcet 0.3s 0.1s ease both; + -moz-animation: donate_effcet 0.3s 0.1s ease both; + -o-animation: donate_effcet 0.3s 0.1s ease both; + -ms-animation: donate_effcet 0.3s 0.1s ease both; + animation: donate_effcet 0.3s 0.1s ease both; +} +@-moz-keyframes scroll-down-effect { + 0% { + top: 0; + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + } + 50% { + top: -16px; + opacity: 1; + -ms-filter: none; + filter: none; + } + 100% { + top: 0; + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + } +} +@-webkit-keyframes scroll-down-effect { + 0% { + top: 0; + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + } + 50% { + top: -16px; + opacity: 1; + -ms-filter: none; + filter: none; + } + 100% { + top: 0; + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + } +} +@-o-keyframes scroll-down-effect { + 0% { + top: 0; + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + } + 50% { + top: -16px; + opacity: 1; + -ms-filter: none; + filter: none; + } + 100% { + top: 0; + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + } +} +@keyframes scroll-down-effect { + 0% { + top: 0; + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + } + 50% { + top: -16px; + opacity: 1; + -ms-filter: none; + filter: none; + } + 100% { + top: 0; + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + } +} +@-moz-keyframes header-effect { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: translateY(-50px); + -moz-transform: translateY(-50px); + -o-transform: translateY(-50px); + -ms-transform: translateY(-50px); + transform: translateY(-50px); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-webkit-keyframes header-effect { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: translateY(-50px); + -moz-transform: translateY(-50px); + -o-transform: translateY(-50px); + -ms-transform: translateY(-50px); + transform: translateY(-50px); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-o-keyframes header-effect { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: translateY(-50px); + -moz-transform: translateY(-50px); + -o-transform: translateY(-50px); + -ms-transform: translateY(-50px); + transform: translateY(-50px); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@keyframes header-effect { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: translateY(-50px); + -moz-transform: translateY(-50px); + -o-transform: translateY(-50px); + -ms-transform: translateY(-50px); + transform: translateY(-50px); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-moz-keyframes headerNoOpacity { + 0% { + -webkit-transform: translateY(-50px); + -moz-transform: translateY(-50px); + -o-transform: translateY(-50px); + -ms-transform: translateY(-50px); + transform: translateY(-50px); + } + 100% { + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-webkit-keyframes headerNoOpacity { + 0% { + -webkit-transform: translateY(-50px); + -moz-transform: translateY(-50px); + -o-transform: translateY(-50px); + -ms-transform: translateY(-50px); + transform: translateY(-50px); + } + 100% { + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-o-keyframes headerNoOpacity { + 0% { + -webkit-transform: translateY(-50px); + -moz-transform: translateY(-50px); + -o-transform: translateY(-50px); + -ms-transform: translateY(-50px); + transform: translateY(-50px); + } + 100% { + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@keyframes headerNoOpacity { + 0% { + -webkit-transform: translateY(-50px); + -moz-transform: translateY(-50px); + -o-transform: translateY(-50px); + -ms-transform: translateY(-50px); + transform: translateY(-50px); + } + 100% { + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-moz-keyframes bottom-top { + 0% { + margin-top: 50px; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + 100% { + margin-top: 0; + opacity: 1; + -ms-filter: none; + filter: none; + } +} +@-webkit-keyframes bottom-top { + 0% { + margin-top: 50px; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + 100% { + margin-top: 0; + opacity: 1; + -ms-filter: none; + filter: none; + } +} +@-o-keyframes bottom-top { + 0% { + margin-top: 50px; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + 100% { + margin-top: 0; + opacity: 1; + -ms-filter: none; + filter: none; + } +} +@keyframes bottom-top { + 0% { + margin-top: 50px; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + 100% { + margin-top: 0; + opacity: 1; + -ms-filter: none; + filter: none; + } +} +@-moz-keyframes titleScale { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } +} +@-webkit-keyframes titleScale { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } +} +@-o-keyframes titleScale { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } +} +@keyframes titleScale { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } +} +@-moz-keyframes search_close { + 0% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + 100% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } +} +@-webkit-keyframes search_close { + 0% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + 100% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } +} +@-o-keyframes search_close { + 0% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + 100% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } +} +@keyframes search_close { + 0% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + 100% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } +} +@-moz-keyframes to_show { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + } +} +@-webkit-keyframes to_show { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + } +} +@-o-keyframes to_show { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + } +} +@keyframes to_show { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + } +} +@-moz-keyframes to_hide { + 0% { + opacity: 1; + -ms-filter: none; + filter: none; + } + 100% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } +} +@-webkit-keyframes to_hide { + 0% { + opacity: 1; + -ms-filter: none; + filter: none; + } + 100% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } +} +@-o-keyframes to_hide { + 0% { + opacity: 1; + -ms-filter: none; + filter: none; + } + 100% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } +} +@keyframes to_hide { + 0% { + opacity: 1; + -ms-filter: none; + filter: none; + } + 100% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } +} +@-moz-keyframes ribbon_to_show { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + 100% { + opacity: 0.6; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + } +} +@-webkit-keyframes ribbon_to_show { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + 100% { + opacity: 0.6; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + } +} +@-o-keyframes ribbon_to_show { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + 100% { + opacity: 0.6; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + } +} +@keyframes ribbon_to_show { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + 100% { + opacity: 0.6; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + } +} +@-moz-keyframes avatar_turn_around { + from { + -webkit-transform: rotate(0); + -moz-transform: rotate(0); + -o-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + } + to { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-webkit-keyframes avatar_turn_around { + from { + -webkit-transform: rotate(0); + -moz-transform: rotate(0); + -o-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + } + to { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-o-keyframes avatar_turn_around { + from { + -webkit-transform: rotate(0); + -moz-transform: rotate(0); + -o-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + } + to { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes avatar_turn_around { + from { + -webkit-transform: rotate(0); + -moz-transform: rotate(0); + -o-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + } + to { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-moz-keyframes sub_menus { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: translateY(10px); + -moz-transform: translateY(10px); + -o-transform: translateY(10px); + -ms-transform: translateY(10px); + transform: translateY(10px); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-webkit-keyframes sub_menus { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: translateY(10px); + -moz-transform: translateY(10px); + -o-transform: translateY(10px); + -ms-transform: translateY(10px); + transform: translateY(10px); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-o-keyframes sub_menus { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: translateY(10px); + -moz-transform: translateY(10px); + -o-transform: translateY(10px); + -ms-transform: translateY(10px); + transform: translateY(10px); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@keyframes sub_menus { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: translateY(10px); + -moz-transform: translateY(10px); + -o-transform: translateY(10px); + -ms-transform: translateY(10px); + transform: translateY(10px); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-moz-keyframes donate_effcet { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: translateY(-20px); + -moz-transform: translateY(-20px); + -o-transform: translateY(-20px); + -ms-transform: translateY(-20px); + transform: translateY(-20px); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-webkit-keyframes donate_effcet { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: translateY(-20px); + -moz-transform: translateY(-20px); + -o-transform: translateY(-20px); + -ms-transform: translateY(-20px); + transform: translateY(-20px); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-o-keyframes donate_effcet { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: translateY(-20px); + -moz-transform: translateY(-20px); + -o-transform: translateY(-20px); + -ms-transform: translateY(-20px); + transform: translateY(-20px); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@keyframes donate_effcet { + 0% { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transform: translateY(-20px); + -moz-transform: translateY(-20px); + -o-transform: translateY(-20px); + -ms-transform: translateY(-20px); + transform: translateY(-20px); + } + 100% { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-moz-keyframes sidebarItem { + 0% { + -webkit-transform: translateX(200px); + -moz-transform: translateX(200px); + -o-transform: translateX(200px); + -ms-transform: translateX(200px); + transform: translateX(200px); + } + 100% { + -webkit-transform: translateX(0); + -moz-transform: translateX(0); + -o-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@-webkit-keyframes sidebarItem { + 0% { + -webkit-transform: translateX(200px); + -moz-transform: translateX(200px); + -o-transform: translateX(200px); + -ms-transform: translateX(200px); + transform: translateX(200px); + } + 100% { + -webkit-transform: translateX(0); + -moz-transform: translateX(0); + -o-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@-o-keyframes sidebarItem { + 0% { + -webkit-transform: translateX(200px); + -moz-transform: translateX(200px); + -o-transform: translateX(200px); + -ms-transform: translateX(200px); + transform: translateX(200px); + } + 100% { + -webkit-transform: translateX(0); + -moz-transform: translateX(0); + -o-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@keyframes sidebarItem { + 0% { + -webkit-transform: translateX(200px); + -moz-transform: translateX(200px); + -o-transform: translateX(200px); + -ms-transform: translateX(200px); + transform: translateX(200px); + } + 100% { + -webkit-transform: translateX(0); + -moz-transform: translateX(0); + -o-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +:root { + --global-font-size: 15.5px; + --global-bg: #fff; + --font-color: #4c4948; + --hr-border: #d2ebfd; + --hr-before-color: #bfe4fb; + --search-bg: #f6f8fa; + --search-input-color: #4c4948; + --search-result-title: #4c4948; + --preloader-bg: #37474f; + --preloader-color: #fff; + --tab-border-color: #f0f0f0; + --tab-botton-bg: #f0f0f0; + --tab-botton-color: #1f2d3d; + --tab-button-hover-bg: #dcdcdc; + --tab-button-active-bg: #fff; + --card-bg: #fff; + --sidebar-bg: #f6f8fa; + --btn-hover-color: #ff7242; + --btn-color: #fff; + --btn-bg: #49b1f5; + --text-bg-hover: rgba(73,177,245,0.7); + --light-grey: #eee; + --dark-grey: #cacaca; + --white: #fff; + --text-highlight-color: #1f2d3d; + --blockquote-color: #6a737d; + --blockquote-bg: rgba(73,177,245,0.1); + --reward-pop: #f5f5f5; + --toc-link-color: #666261; + --card-box-shadow: 0 3px 8px 6px rgba(7,17,27,0.05); + --card-hover-box-shadow: 0 3px 8px 6px rgba(7,17,27,0.09); + --pseudo-hover: #ff7242; + --headline-presudo: #a0a0a0; + --scrollbar-color: #49b1f5; +} +body { + position: relative; + min-height: 100%; + background: var(--global-bg); + color: var(--font-color); + font-size: var(--global-font-size); + font-family: var(--global-font), -apple-system, 'Quicksand', 'Nimbus Roman No9 L', 'PingFang SC', 'Hiragino Sans GB', 'Noto Serif SC', 'Microsoft Yahei', 'WenQuanYi Micro Hei', 'ST Heiti', sans-serif;; + line-height: 2; + -webkit-tap-highlight-color: rgba(0,0,0,0); +} +*::-webkit-scrollbar { + width: 8px; + height: 8px; +} +*::-webkit-scrollbar-thumb { + background: var(--scrollbar-color); +} +*::-webkit-scrollbar-track { + background-color: transparent; +} +* { + scrollbar-width: thin; + scrollbar-color: var(--scrollbar-color) transparent; +} +input::placeholder { + color: var(--font-color); +} +#web_bg { + position: fixed; + z-index: -999; + width: 100%; + height: 100%; + background: var(--default-bg); + background-attachment: local; + background-position: center; + background-size: cover; + background-repeat: no-repeat; +} +h1, +h2, +h3, +h4, +h5, +h6 { + position: relative; + margin: 20px 0 14px; + color: var(--text-highlight-color); + font-weight: bold; +} +h1 code, +h2 code, +h3 code, +h4 code, +h5 code, +h6 code { + font-size: inherit !important; +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +hr { + position: relative; + margin: 40px auto; + border: 2px dashed var(--hr-border); + width: calc(100% - 4px); +} +hr:hover:before { + left: calc(95% - 20px); +} +hr:before { + position: absolute; + top: -10px; + left: 5%; + z-index: 1; + color: var(--hr-before-color); + content: '\f2dc'; + font-size: 20px; + line-height: 1; + -webkit-transition: all 1s ease-in-out; + -moz-transition: all 1s ease-in-out; + -o-transition: all 1s ease-in-out; + -ms-transition: all 1s ease-in-out; + transition: all 1s ease-in-out; +} +.table-wrap { + overflow-x: scroll; + margin: 0 0 20px; +} +table { + display: table; + width: 100%; + border-spacing: 0; + border-collapse: collapse; + empty-cells: show; +} +table thead { + background: rgba(153,169,191,0.1); +} +table th, +table td { + padding: 6px 12px; + border: 1px solid var(--light-grey); + vertical-align: middle; +} +*::selection { + background: #00c4b6; + color: #f7f7f7; +} +button { + padding: 0; + outline: 0; + border: none; + background: none; + touch-action: manipulation; +} +a { + color: #99a9bf; + text-decoration: none; + word-wrap: break-word; + -webkit-transition: all 0.2s; + -moz-transition: all 0.2s; + -o-transition: all 0.2s; + -ms-transition: all 0.2s; + transition: all 0.2s; + overflow-wrap: break-word; +} +a:hover { + color: #49b1f5; +} +#site-title, +#site-subtitle, +#site-name, +#aside-content .author-info__name, +#aside-content .author-info__description { + font-family: var(--global-font); +} +.is-center { + text-align: center; +} +.copy-true { + -webkit-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; +} +.pull-left { + float: left; +} +.pull-right { + float: right; +} +img[src=''], +img:not([src]) { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); +} +img[data-lazy-src]:not(.loaded) { + filter: blur(8px) brightness(1); +} +img[data-lazy-src].error { + filter: none; +} +.img-alt { + margin: -10px 0 10px; + color: #858585; +} +.img-alt:hover { + text-decoration: none !important; +} +blockquote { + margin: 0 0 20px; + padding: 12px 15px; + border-left: 3px solid #49b1f5; + background-color: var(--blockquote-bg); + color: var(--blockquote-color); +} +blockquote footer cite:before { + padding: 0 5px; + content: '—'; +} +blockquote > :last-child { + margin-bottom: 0 !important; +} +:root { + --hl-color: #eff; + --hl-bg: #212121; + --hltools-bg: #1c1c1c; + --hltools-color: rgba(238,255,255,0.8); + --hlnumber-bg: #212121; + --hlnumber-color: rgba(238,255,255,0.5); + --hlscrollbar-bg: #353535; + --hlexpand-bg: linear-gradient(180deg, rgba(33,33,33,0.6), rgba(33,33,33,0.9)); +} +figure.highlight table { + scrollbar-color: var(--hlscrollbar-bg) transparent; +} +figure.highlight table::-webkit-scrollbar-thumb { + background: var(--hlscrollbar-bg); +} +figure.highlight pre .deletion { + color: #bf42bf; +} +figure.highlight pre .addition { + color: #105ede; +} +figure.highlight pre .meta { + color: #c792ea; +} +figure.highlight pre .comment { + color: #969896; +} +figure.highlight pre .variable, +figure.highlight pre .attribute, +figure.highlight pre .regexp, +figure.highlight pre .ruby .constant, +figure.highlight pre .xml .tag .title, +figure.highlight pre .xml .pi, +figure.highlight pre .xml .doctype, +figure.highlight pre .html .doctype, +figure.highlight pre .css .id, +figure.highlight pre .tag .name, +figure.highlight pre .css .class, +figure.highlight pre .css .pseudo { + color: #ff5370; +} +figure.highlight pre .tag { + color: #89ddff; +} +figure.highlight pre .number, +figure.highlight pre .preprocessor, +figure.highlight pre .literal, +figure.highlight pre .params, +figure.highlight pre .constant, +figure.highlight pre .command { + color: #f78c6c; +} +figure.highlight pre .built_in { + color: #ffcb6b; +} +figure.highlight pre .ruby .class .title, +figure.highlight pre .css .rules .attribute, +figure.highlight pre .string, +figure.highlight pre .value, +figure.highlight pre .inheritance, +figure.highlight pre .header, +figure.highlight pre .ruby .symbol, +figure.highlight pre .xml .cdata, +figure.highlight pre .special, +figure.highlight pre .number, +figure.highlight pre .formula { + color: #c3e88d; +} +figure.highlight pre .keyword, +figure.highlight pre .title, +figure.highlight pre .css .hexcolor { + color: #89ddff; +} +figure.highlight pre .function, +figure.highlight pre .python .decorator, +figure.highlight pre .python .title, +figure.highlight pre .ruby .function .title, +figure.highlight pre .ruby .title .keyword, +figure.highlight pre .perl .sub, +figure.highlight pre .javascript .title, +figure.highlight pre .coffeescript .title { + color: #82aaff; +} +figure.highlight pre .tag .attr, +figure.highlight pre .javascript .function { + color: #c792ea; +} +#article-container figure.highlight .line.marked { + background-color: rgba(97,97,97,0.314); +} +#article-container figure.highlight table { + display: block; + overflow: auto; + border: none; +} +#article-container figure.highlight table td { + padding: 0; + border: none; +} +#article-container figure.highlight .gutter pre { + padding-right: 10px; + padding-left: 10px; + background-color: var(--hlnumber-bg); + color: var(--hlnumber-color); + text-align: right; +} +#article-container figure.highlight .code pre { + padding-right: 10px; + padding-left: 10px; + width: 100%; +} +#article-container pre, +#article-container figure.highlight { + overflow: auto; + margin: 0 0 20px; + padding: 0; + background: var(--hl-bg); + color: var(--hl-color); + line-height: 1.6; +} +#article-container pre, +#article-container code { + font-size: 14.5px; + font-family: Consolas_1, var(--global-font), "Microsoft YaHei", Menlo, "PingFang SC", "Microsoft JhengHei", sans-serif !important; +} +#article-container code { + padding: 2px 4px; + background: rgba(27,31,35,0.05); + color: #f47466; +} +#article-container pre { + padding: 10px 20px; +} +#article-container pre code { + padding: 0; + background: none; + color: var(--hl-color); + text-shadow: none; +} +#article-container figure.highlight { + position: relative; +} +#article-container figure.highlight pre { + margin: 0; + padding: 8px 0; + border: none; +} +#article-container figure.highlight figcaption, +#article-container figure.highlight .caption { + padding: 6px 0 2px 14px; + font-size: 14.5px; + line-height: 1em; +} +#article-container figure.highlight figcaption a, +#article-container figure.highlight .caption a { + float: right; + padding-right: 10px; + color: var(--hl-color); +} +#article-container figure.highlight figcaption a:hover, +#article-container figure.highlight .caption a:hover { + border-bottom-color: var(--hl-color); +} +#article-container .highlight-tools { + position: relative; + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + overflow: hidden; + min-height: 24px; + height: 2.15em; + background: var(--hltools-bg); + color: var(--hltools-color); + font-size: 14.5px; +} +#article-container .highlight-tools.closed ~ * { + display: none; +} +#article-container .highlight-tools .expand { + position: absolute; + padding: 0.57em 0.7em; + -webkit-transition: -webkit-transform 0.3s; + -moz-transition: -moz-transform 0.3s; + -o-transition: -o-transform 0.3s; + -ms-transition: -ms-transform 0.3s; + transition: transform 0.3s; +} +#article-container .highlight-tools .expand + .code-lang { + left: 1.7em; +} +#article-container .highlight-tools .expand.closed { + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; + -webkit-transform: rotate(-90deg) !important; + -moz-transform: rotate(-90deg) !important; + -o-transform: rotate(-90deg) !important; + -ms-transform: rotate(-90deg) !important; + transform: rotate(-90deg) !important; +} +#article-container .highlight-tools .code-lang { + position: absolute; + left: 14px; + text-transform: uppercase; + font-weight: bold; + font-size: 1.15em; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +#article-container .highlight-tools .copy-notice { + position: absolute; + right: 2.4em; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transition: opacity 0.4s; + -moz-transition: opacity 0.4s; + -o-transition: opacity 0.4s; + -ms-transition: opacity 0.4s; + transition: opacity 0.4s; +} +#article-container .highlight-tools .copy-button { + position: absolute; + right: 14px; + -webkit-transition: color 0.2s; + -moz-transition: color 0.2s; + -o-transition: color 0.2s; + -ms-transition: color 0.2s; + transition: color 0.2s; +} +#article-container .highlight-tools .copy-button:hover { + color: #49b1f5; +} +#article-container .gutter { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +#article-container .gist table { + width: auto; +} +#article-container .gist table td { + border: none; +} +#article-container figure.highlight { + margin: 0 0 24px; + border-radius: 7px; + -webkit-box-shadow: 0 5px 10px 0 rgba(0,0,0,0.4); + box-shadow: 0 5px 10px 0 rgba(0,0,0,0.4); + -webkit-transform: translateZ(0); +} +#article-container figure.highlight .highlight-tools:after { + position: absolute; + left: 14px; + width: 12px; + height: 12px; + border-radius: 50%; + background: #fc625d; + -webkit-box-shadow: 20px 0 #fdbc40, 40px 0 #35cd4b; + box-shadow: 20px 0 #fdbc40, 40px 0 #35cd4b; + content: ' '; +} +#article-container figure.highlight .highlight-tools .expand { + right: 0; +} +#article-container figure.highlight .highlight-tools .expand.closed { + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; + -webkit-transform: rotate(90deg) !important; + -moz-transform: rotate(90deg) !important; + -o-transform: rotate(90deg) !important; + -ms-transform: rotate(90deg) !important; + transform: rotate(90deg) !important; +} +#article-container figure.highlight .highlight-tools .expand ~ .copy-notice { + right: 3.45em; +} +#article-container figure.highlight .highlight-tools .expand ~ .copy-button { + right: 2.1em; +} +#article-container figure.highlight .highlight-tools .code-lang { + left: 75px; +} +#article-container .code-expand-btn { + position: absolute; + bottom: 0; + z-index: 10; + width: 100%; + background: var(--hlexpand-bg); + text-align: center; + font-size: 14.5px; +} +#article-container .code-expand-btn i { + padding: 6px 0; + color: var(--hlnumber-color); + -webkit-animation: code-expand-key 1.2s infinite; + -moz-animation: code-expand-key 1.2s infinite; + -o-animation: code-expand-key 1.2s infinite; + -ms-animation: code-expand-key 1.2s infinite; + animation: code-expand-key 1.2s infinite; +} +#article-container .code-expand-btn.expand-done > i { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -o-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +#article-container .code-expand-btn.expand-done + table, +#article-container .code-expand-btn.expand-done + pre { + margin-bottom: 1.8em; +} +#article-container .code-expand-btn:not(.expand-done) ~ table, +#article-container .code-expand-btn:not(.expand-done) ~ pre { + overflow: hidden; + height: 230px; +} +@-moz-keyframes code-expand-key { + 0% { + opacity: 0.6; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + } + 50% { + opacity: 0.1; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; + filter: alpha(opacity=10); + } + 100% { + opacity: 0.6; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + } +} +@-webkit-keyframes code-expand-key { + 0% { + opacity: 0.6; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + } + 50% { + opacity: 0.1; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; + filter: alpha(opacity=10); + } + 100% { + opacity: 0.6; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + } +} +@-o-keyframes code-expand-key { + 0% { + opacity: 0.6; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + } + 50% { + opacity: 0.1; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; + filter: alpha(opacity=10); + } + 100% { + opacity: 0.6; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + } +} +@keyframes code-expand-key { + 0% { + opacity: 0.6; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + } + 50% { + opacity: 0.1; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; + filter: alpha(opacity=10); + } + 100% { + opacity: 0.6; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + } +} +.error404 #error-wrap { + position: absolute; + top: 50%; + right: 0; + left: 0; + margin: 0 auto; + padding: 60px 20px 0; + max-width: 1000px; + -webkit-transform: translate(0, -50%); + -moz-transform: translate(0, -50%); + -o-transform: translate(0, -50%); + -ms-transform: translate(0, -50%); + transform: translate(0, -50%); +} +.error404 #error-wrap .error-content { + overflow: hidden; + margin: 0 20px; + height: 360px; +} +@media screen and (max-width: 768px) { + .error404 #error-wrap .error-content { + margin: 0; + height: 500px; + } +} +.error404 #error-wrap .error-content .error-img { + display: inline-block; + overflow: hidden; + width: 50%; + height: 100%; +} +@media screen and (max-width: 768px) { + .error404 #error-wrap .error-content .error-img { + width: 100%; + height: 45%; + } +} +.error404 #error-wrap .error-content .error-img img { + background-color: #49b1f5; +} +.error404 #error-wrap .error-content .error-info { + display: -webkit-inline-box; + display: -moz-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-box; + display: inline-flex; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -moz-box-pack: center; + -o-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; + -ms-flex-line-pack: center; + -webkit-align-content: center; + align-content: center; + width: 50%; + height: 100%; + vertical-align: top; + text-align: center; + font-family: var(--global-font); +} +@media screen and (max-width: 768px) { + .error404 #error-wrap .error-content .error-info { + width: 100%; + height: 55%; + } +} +.error404 #error-wrap .error-content .error-info .error_title { + margin-top: -0.6em; + font-size: 9em; +} +@media screen and (max-width: 768px) { + .error404 #error-wrap .error-content .error-info .error_title { + font-size: 8em; + } +} +.error404 #error-wrap .error-content .error-info .error_subtitle { + margin-top: -3em; + word-break: break-word; + font-size: 1.6em; + -webkit-line-clamp: 2; +} +.error404 + #rightside { + display: none; +} +.article-sort { + margin-left: 10px; + padding-left: 20px; + border-left: 2px solid #aadafa; +} +.article-sort-title { + position: relative; + margin-left: 10px; + padding-bottom: 20px; + padding-left: 20px; + font-size: 1.72em; +} +.article-sort-title:hover:before { + border-color: var(--pseudo-hover); +} +.article-sort-title:before { + position: absolute; + top: calc(((100% - 36px) / 2)); + left: -9px; + z-index: 1; + width: 10px; + height: 10px; + border: 5px solid #49b1f5; + border-radius: 10px; + background: var(--card-bg); + content: ''; + line-height: 10px; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + -ms-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +.article-sort-title:after { + position: absolute; + bottom: 0; + left: 0; + z-index: 0; + width: 2px; + height: 1.5em; + background: #aadafa; + content: ''; +} +.article-sort-item { + position: relative; + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + margin: 0 0 20px 10px; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + -ms-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +.article-sort-item:hover:before { + border-color: var(--pseudo-hover); +} +.article-sort-item:before { + position: absolute; + left: calc(-20px - 17px); + width: 6px; + height: 6px; + border: 3px solid #49b1f5; + border-radius: 6px; + background: var(--card-bg); + content: ''; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + -ms-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +.article-sort-item.no-article-cover { + height: 80px; +} +.article-sort-item.no-article-cover .article-sort-item-info { + padding: 0; +} +.article-sort-item.year { + font-size: 1.43em; +} +.article-sort-item.year:hover:before { + border-color: #49b1f5; +} +.article-sort-item.year:before { + border-color: var(--pseudo-hover); +} +.article-sort-item-time { + color: #858585; + font-size: 95%; +} +.article-sort-item-time time { + padding-left: 6px; + cursor: default; +} +.article-sort-item-title { + color: var(--font-color); + font-size: 1.2em; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; + -webkit-line-clamp: 2; +} +.article-sort-item-title:hover { + color: #49b1f5; + -webkit-transform: translateX(10px); + -moz-transform: translateX(10px); + -o-transform: translateX(10px); + -ms-transform: translateX(10px); + transform: translateX(10px); +} +.article-sort-item-img { + overflow: hidden; + width: 120px; + height: 120px; + border-radius: 12px; +} +.article-sort-item-info { + -webkit-box-flex: 1; + -moz-box-flex: 1; + -o-box-flex: 1; + box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 0 16px; +} +.category-lists .category-title { + font-size: 2.57em; +} +@media screen and (max-width: 768px) { + .category-lists .category-title { + font-size: 2em; + } +} +.category-lists .category-list { + margin-bottom: 0; + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-orient: horizontal; + -moz-box-orient: horizontal; + -o-box-orient: horizontal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-lines: multiple; + -moz-box-lines: multiple; + -o-box-lines: multiple; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: center; + -moz-box-pack: center; + -o-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; +} +.category-lists .category-list a { + color: var(--font-color); +} +.category-lists .category-list a:hover { + color: #49b1f5; +} +.category-lists .category-list .category-list-count { + margin-left: 8px; + color: #858585; +} +.category-lists .category-list .category-list-count:before { + content: '('; +} +.category-lists .category-list .category-list-count:after { + content: ')'; +} +.category-lists ul { + padding: 0 0 0 20px; +} +.category-lists ul ul { + padding-left: 4px; +} +.category-lists ul li { + position: relative; + margin: 6px 0; + padding: 0.12em 1.2em 0.12em 1.4em; +} +#body-wrap { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + min-height: 100vh; +} +.layout { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-flex: 1; + -moz-box-flex: 1; + -o-box-flex: 1; + box-flex: 1; + -webkit-flex: 1 auto; + -ms-flex: 1 auto; + flex: 1 auto; + margin: 0 auto; + padding: 40px 15px; + max-width: 1200px; + width: 100%; +} +@media screen and (max-width: 900px) { + .layout { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + } +} +@media screen and (max-width: 768px) { + .layout { + padding: 20px 5px; + } +} +@media screen and (min-width: 2000px) { + .layout { + max-width: 1500px; + } +} +.layout > div:first-child:not(.recent-posts) { + -webkit-align-self: flex-start; + align-self: flex-start; + -ms-flex-item-align: start; + padding: 50px 40px; +} +@media screen and (max-width: 768px) { + .layout > div:first-child:not(.recent-posts) { + padding: 36px 14px; + } +} +.layout > div:first-child { + width: 74%; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} +@media screen and (max-width: 900px) { + .layout > div:first-child { + width: 100% !important; + } +} +.layout.hide-aside { + max-width: 1000px; +} +@media screen and (min-width: 2000px) { + .layout.hide-aside { + max-width: 1300px; + } +} +.layout.hide-aside > div { + width: 100% !important; +} +.apple #page-header.full_page { + background-attachment: scroll !important; +} +.apple .recent-post-item, +.apple .avatar-img, +.apple .flink-item-icon { + -webkit-transform: translateZ(0); + -moz-transform: translateZ(0); + -o-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0); +} +.site-card-group { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-lines: multiple; + -moz-box-lines: multiple; + -o-box-lines: multiple; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: start; + -moz-box-pack: start; + -o-box-pack: start; + -ms-flex-pack: start; + -webkit-justify-content: flex-start; + justify-content: flex-start; + margin: -8px; + -webkit-box-align: stretch; + -moz-box-align: stretch; + -o-box-align: stretch; + -ms-flex-align: stretch; + -webkit-align-items: stretch; + align-items: stretch; +} +.site-card { + margin: 8px; + width: calc(100% / 4 - 16px); + display: block; + line-height: 1.4; + height: 100%; +} +@media screen and (min-width: 2048px) { + .site-card { + width: calc(100% / 5 - 16px); + } +} +@media screen and (max-width: 768px) { + .site-card { + width: calc(100% / 3 - 16px); + } +} +@media screen and (max-width: 500px) { + .site-card { + width: calc(100% / 2 - 16px); + } +} +.site-card .img { + width: 100%; + height: 120px; + overflow: hidden; + border-radius: 6px; + -webkit-box-shadow: 0 1px 2px 0px rgba(0,0,0,0.2); + box-shadow: 0 1px 2px 0px rgba(0,0,0,0.2); + background: #f6f6f6; +} +@media screen and (max-width: 500px) { + .site-card .img { + height: 100px; + } +} +.site-card .img img { + width: 100%; + height: 100%; + pointer-events: none; + -webkit-transition: -webkit-transform 2s ease; + -moz-transition: -moz-transform 2s ease; + -o-transition: -o-transform 2s ease; + -ms-transition: -ms-transform 2s ease; + transition: transform 2s ease; + object-fit: cover; +} +.site-card .info { + margin-top: 8px; +} +.site-card .info img { + width: 32px; + height: 32px; + pointer-events: none; + border-radius: 16px; + float: left; + margin-right: 8px; + margin-top: 2px; +} +.site-card .info span { + display: block; +} +.site-card .info .title { + font-weight: 600; + font-size: var(--global-font-size); + color: #444; + display: -webkit-box; + -webkit-box-orient: vertical; + overflow: hidden; + -webkit-line-clamp: 1; + -webkit-transition: all 0.28s ease; + -moz-transition: all 0.28s ease; + -o-transition: all 0.28s ease; + -ms-transition: all 0.28s ease; + transition: all 0.28s ease; + -moz-transition: all 0.28s ease; + -webkit-transition: all 0.28s ease; + -o-transition: all 0.28s ease; +} +.site-card .info .desc { + font-size: var(--global-font-size); + word-wrap: break-word; + line-height: 1.2; + color: #888; + display: -webkit-box; + -webkit-box-orient: vertical; + overflow: hidden; + -webkit-line-clamp: 2; +} +.site-card .img { + -webkit-transition: all 0.28s ease; + -moz-transition: all 0.28s ease; + -o-transition: all 0.28s ease; + -ms-transition: all 0.28s ease; + transition: all 0.28s ease; + -moz-transition: all 0.28s ease; + -webkit-transition: all 0.28s ease; + -o-transition: all 0.28s ease; +} +.site-card:hover .img { + -webkit-box-shadow: 0 4px 8px 0px rgba(0,0,0,0.1), 0 2px 4px 0px rgba(0,0,0,0.1), 0 4px 8px 0px rgba(0,0,0,0.1), 0 8px 16px 0px rgba(0,0,0,0.1); + box-shadow: 0 4px 8px 0px rgba(0,0,0,0.1), 0 2px 4px 0px rgba(0,0,0,0.1), 0 4px 8px 0px rgba(0,0,0,0.1), 0 8px 16px 0px rgba(0,0,0,0.1); +} +.site-card:hover .info .title { + color: #ff5722; +} +.recent-posts { + padding: 0 5px 0 5px; + height: fit-content; +} +.recent-posts .recent-post-item { + margin-bottom: 15px; + overflow: hidden; + border-radius: 15px; +} +.recent-posts .recent-post-item .recent-post-content { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + position: relative; +} +.recent-posts .recent-post-item .recent-post-content:hover .recent-post-cover img { + -webkit-transition: all 0.6s ease-in-out; + -moz-transition: all 0.6s ease-in-out; + -o-transition: all 0.6s ease-in-out; + -ms-transition: all 0.6s ease-in-out; + transition: all 0.6s ease-in-out; + scale: 1.08; +} +.recent-posts .recent-post-item .recent-post-content:hover .article-content .article-content-text { + -webkit-transition: all 0.6s ease-in-out; + -moz-transition: all 0.6s ease-in-out; + -o-transition: all 0.6s ease-in-out; + -ms-transition: all 0.6s ease-in-out; + transition: all 0.6s ease-in-out; + scale: 1.08; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-cover { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + background: transparent; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-info { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + background: transparent; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -moz-box-pack: center; + -o-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-info .article-title { + height: 50%; + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + text-align: center; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: end; + -moz-box-pack: end; + -o-box-pack: end; + -ms-flex-pack: end; + -webkit-justify-content: flex-end; + justify-content: flex-end; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-info .article-title .article-title-link { + color: var(--text-highlight-color); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + -ms-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: -webkit-box; + -webkit-box-orient: vertical; + overflow: hidden; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-info .article-title .article-title-link:hover { + color: var(--theme-color); +} +.recent-posts .recent-post-item .recent-post-content .recent-post-info .recent-post-meta { + height: 50%; + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + text-align: center; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: start; + -moz-box-pack: start; + -o-box-pack: start; + -ms-flex-pack: start; + -webkit-justify-content: flex-start; + justify-content: flex-start; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-info .recent-post-meta .article-meta-wrap { + color: #969797; + display: -webkit-box; + -webkit-box-orient: vertical; + overflow: hidden; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-info .recent-post-meta .article-meta-wrap a { + color: var(--text-highlight-color); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + -ms-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + color: #969797; +} +.recent-posts .recent-post-item .recent-post-content .article-content { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + text-align: center; + -webkit-box-orient: horizontal; + -moz-box-orient: horizontal; + -o-box-orient: horizontal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -o-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; +} +.recent-posts .recent-post-item .recent-post-content .article-content .article-content-text { + display: -webkit-box; + -webkit-box-orient: vertical; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; + overflow: hidden; + color: #fff; + text-shadow: 1px 2px 3px #000; +} +.recent-posts .recent-post-item.ads-wrap { + display: block !important; + height: auto !important; +} +.recent-posts nav#pagination { + width: 100%; +} +.recent-posts { + padding: 0 5px 0 5px; + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-orient: horizontal; + -moz-box-orient: horizontal; + -o-box-orient: horizontal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-lines: multiple; + -moz-box-lines: multiple; + -o-box-lines: multiple; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} +.recent-posts .recent-post-item { + border-radius: 15px; + overflow: hidden; +} +.recent-posts .recent-post-item .recent-post-content { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-lines: single; + -moz-box-lines: single; + -o-box-lines: single; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + max-height: 350px; + height: auto; + width: 100%; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-cover { + width: 100%; + height: 200px; + clip-path: polygon(0 130px, 0 0, 100% 0, 100% 130px, 50% 100%); +} +.recent-posts .recent-post-item .recent-post-content .recent-post-cover img { + height: 200px; + width: 100%; + object-fit: cover; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-info { + height: 150px; + width: 100%; + padding: 0px 25px 5px 25px; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-info .article-title { + margin: 0px 40px; + font-size: 19px; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-info .article-title .article-title-link { + -webkit-line-clamp: 2; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-info .recent-post-meta { + margin: 0px 20px; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-info .recent-post-meta .article-meta-wrap { + font-size: 13px; + -webkit-line-clamp: 3; +} +.recent-posts .recent-post-item .recent-post-content .article-content { + position: absolute; + height: 200px; + width: 100%; + background: rgba(25,25,25,0.4); + clip-path: polygon(0 130px, 0 0, 100% 0, 100% 130px, 50% 100%); +} +.recent-posts .recent-post-item .recent-post-content .article-content .article-content-text { + -webkit-line-clamp: 3; + font-size: 16px; + margin: 0px 25px 30px 25px; +} +.recent-posts .recent-post-item .recent-post-content .article-content .article-content-text::before { + content: "「"; + font-size: 20px; +} +.recent-posts .recent-post-item .recent-post-content .article-content .article-content-text::after { + content: "」"; + font-size: 20px; +} +.recent-posts .recent-post-item .recent-post-content .recent-post-arrow { + display: block; + background: var(--text-bg-hover); + position: absolute; + height: 10px; + width: 20px; + clip-path: polygon(0 0, 100% 0, 50% 100%); +} +@media screen and (min-width: 1069px) { + .recent-posts .recent-post-item { + width: 32.3%; + margin: 0px 1% 20px 0px; + } + .recent-posts .recent-post-item .recent-post-content .recent-post-info .article-title { + margin: 0px 5px; + } + .recent-posts .recent-post-item .recent-post-content .recent-post-info .article-title .article-title-link { + -webkit-line-clamp: 1; + } + .recent-posts .recent-post-item .recent-post-content .recent-post-info .recent-post-meta { + margin: 0px 5px; + } + .recent-posts .recent-post-item .recent-post-content .recent-post-info .recent-post-meta .article-meta-wrap { + -webkit-line-clamp: 2; + } +} +@media screen and (min-width: 572px) and (max-width: 1068px) { + .recent-posts .recent-post-item { + width: 47%; + margin: 0px 3% 20px 0px; + } +} +@media screen and (max-width: 572px) { + .recent-posts .recent-post-item { + width: 100%; + } +} +.tag-cloud-list a { + display: inline-block; + padding: 0 8px; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} +.tag-cloud-list a:hover { + color: #49b1f5 !important; + -webkit-transform: scale(1.1); + -moz-transform: scale(1.1); + -o-transform: scale(1.1); + -ms-transform: scale(1.1); + transform: scale(1.1); +} +@media screen and (max-width: 768px) { + .tag-cloud-list a { + zoom: 0.85; + } +} +.tag-cloud-title { + font-size: 2.57em; +} +@media screen and (max-width: 768px) { + .tag-cloud-title { + font-size: 2em; + } +} +h1.page-title + .tag-cloud-list { + text-align: left; +} +#aside-content { + width: 26%; +} +@media screen and (min-width: 900px) { + #aside-content { + padding-left: 15px; + } +} +@media screen and (max-width: 900px) { + #aside-content { + width: 100%; + } +} +#aside-content > .card-widget:first-child { + margin-top: 0; +} +@media screen and (max-width: 900px) { + #aside-content > .card-widget:first-child { + margin-top: 20px; + } +} +#aside-content .card-widget { + position: relative; + overflow: hidden; + margin-top: 20px; + padding: 20px 24px; +} +#aside-content .card-info .author-info__name { + font-weight: 500; + font-size: 1.57em; +} +#aside-content .card-info .author-info__description { + margin-top: -0.42em; +} +#aside-content .card-info .card-info-data { + margin: 14px 0 4px; +} +#aside-content .card-info .card-info-social-icons { + margin: 6px 0 -6px; +} +#aside-content .card-info .card-info-social-icons .social-icon { + margin: 0 10px; + color: var(--font-color); + font-size: 1.4em; +} +#aside-content .card-info .card-info-social-icons i { + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} +#aside-content .card-info .card-info-social-icons i:hover { + -webkit-transform: rotate(540deg); + -moz-transform: rotate(540deg); + -o-transform: rotate(540deg); + -ms-transform: rotate(540deg); + transform: rotate(540deg); +} +#aside-content .card-info #card-info-btn { + display: block; + margin-top: 14px; + background-color: var(--btn-bg); + color: var(--btn-color); + text-align: center; + line-height: 2.4; +} +#aside-content .card-info #card-info-btn:hover { + background-color: var(--btn-hover-color); +} +#aside-content .card-info #card-info-btn span { + padding-left: 10px; +} +#aside-content .item-headline { + padding-bottom: 6px; + font-size: 1.2em; +} +#aside-content .item-headline span { + margin-left: 6px; +} +@media screen and (min-width: 900px) { + #aside-content .sticky_layout { + position: sticky; + position: -webkit-sticky; + top: 20px; + -webkit-transition: top 0.3s; + -moz-transition: top 0.3s; + -o-transition: top 0.3s; + -ms-transition: top 0.3s; + transition: top 0.3s; + } +} +#aside-content .card-tag-cloud a { + display: inline-block; + padding: 0 4px; +} +#aside-content .card-tag-cloud a:hover { + color: #49b1f5 !important; +} +#aside-content .aside-list > span { + display: block; + margin-bottom: 10px; + text-align: center; +} +#aside-content .aside-list > .aside-list-item { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + padding: 6px 0; +} +#aside-content .aside-list > .aside-list-item:first-child { + padding-top: 0; +} +#aside-content .aside-list > .aside-list-item:not(:last-child) { + border-bottom: 1px dashed #f5f5f5; +} +#aside-content .aside-list > .aside-list-item:last-child { + padding-bottom: 0; +} +#aside-content .aside-list > .aside-list-item .thumbnail { + overflow: hidden; + width: 4.2em; + height: 4.2em; +} +#aside-content .aside-list > .aside-list-item .content { + -webkit-box-flex: 1; + -moz-box-flex: 1; + -o-box-flex: 1; + box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + padding-left: 10px; + word-break: break-all; +} +#aside-content .aside-list > .aside-list-item .content > .name { + -webkit-line-clamp: 1; +} +#aside-content .aside-list > .aside-list-item .content > time, +#aside-content .aside-list > .aside-list-item .content > .name { + display: block; + color: #858585; + font-size: 85%; +} +#aside-content .aside-list > .aside-list-item .content > .title, +#aside-content .aside-list > .aside-list-item .content > .comment { + color: var(--font-color); + font-size: 95%; + line-height: 1.5; + -webkit-line-clamp: 2; +} +#aside-content .aside-list > .aside-list-item .content > .title:hover, +#aside-content .aside-list > .aside-list-item .content > .comment:hover { + color: #49b1f5; +} +#aside-content .aside-list > .aside-list-item.no-cover { + min-height: 4.4em; +} +#aside-content .card-archives ul.card-archive-list, +#aside-content .card-categories ul.card-category-list { + margin: 0; + padding: 0; + list-style: none; +} +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a, +#aside-content .card-categories ul.card-category-list > .card-category-list-item a { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-orient: horizontal; + -moz-box-orient: horizontal; + -o-box-orient: horizontal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + padding: 3px 10px; + color: var(--font-color); + -webkit-transition: all 0.4s; + -moz-transition: all 0.4s; + -o-transition: all 0.4s; + -ms-transition: all 0.4s; + transition: all 0.4s; +} +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a:hover, +#aside-content .card-categories ul.card-category-list > .card-category-list-item a:hover { + padding: 3px 17px; + background-color: var(--text-bg-hover); +} +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span:first-child, +#aside-content .card-categories ul.card-category-list > .card-category-list-item a span:first-child { + -webkit-box-flex: 1; + -moz-box-flex: 1; + -o-box-flex: 1; + box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} +#aside-content .card-categories .card-category-list.child { + padding: 0 0 0 16px; +} +#aside-content .card-categories .card-category-list > .parent > a .card-category-list-name { + width: 70% !important; +} +#aside-content .card-categories .card-category-list > .parent > a .card-category-list-count { + width: calc(100% - 70% - 20px); + text-align: right; +} +#aside-content .card-categories .card-category-list > .parent i { + float: right; + margin-right: -0.5em; + padding: 0.5em; + -webkit-transition: -webkit-transform 0.3s; + -moz-transition: -moz-transform 0.3s; + -o-transition: -o-transform 0.3s; + -ms-transition: -ms-transform 0.3s; + transition: transform 0.3s; + -webkit-transform: rotate(0); + -moz-transform: rotate(0); + -o-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); +} +#aside-content .card-categories .card-category-list > .parent i.expand { + -webkit-transform: rotate(-90deg); + -moz-transform: rotate(-90deg); + -o-transform: rotate(-90deg); + -ms-transform: rotate(-90deg); + transform: rotate(-90deg); +} +#aside-content .card-webinfo .webinfo .webinfo-item { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + padding: 2px 10px 0; +} +#aside-content .card-webinfo .webinfo .webinfo-item div:first-child { + -webkit-box-flex: 1; + -moz-box-flex: 1; + -o-box-flex: 1; + box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + padding-right: 20px; +} +@media screen and (min-width: 901px) { + #aside-content #card-toc { + right: 0 !important; + } +} +@media screen and (max-width: 900px) { + #aside-content #card-toc { + position: fixed; + right: -100%; + bottom: 30px; + z-index: 100; + max-width: 380px; + max-height: calc(100% - 60px); + width: calc(100% - 80px); + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transition: initial; + -moz-transition: initial; + -o-transition: initial; + -ms-transition: initial; + transition: initial; + -webkit-transform-origin: right bottom; + -moz-transform-origin: right bottom; + -o-transform-origin: right bottom; + -ms-transform-origin: right bottom; + transform-origin: right bottom; + } +} +#aside-content #card-toc .toc-percentage { + float: right; + margin-top: -9px; + color: #a9a9a9; + font-style: italic; + font-size: 140%; +} +#aside-content #card-toc .toc-content { + overflow-y: scroll; + overflow-y: overlay; + margin: 0 -24px; + max-height: calc(100vh - 120px); +} +@media screen and (max-width: 900px) { + #aside-content #card-toc .toc-content { + max-height: calc(100vh - 140px); + } +} +#aside-content #card-toc .toc-content > * { + margin: 0 20px !important; +} +#aside-content #card-toc .toc-content > * > .toc-item > .toc-child { + margin-left: 10px; + padding-left: 10px; + border-left: 1px solid var(--dark-grey); +} +#aside-content #card-toc .toc-content:not(.is-expand) .toc-child { + display: none; +} +@media screen and (max-width: 900px) { + #aside-content #card-toc .toc-content:not(.is-expand) .toc-child { + display: block !important; + } +} +#aside-content #card-toc .toc-content:not(.is-expand) .toc-item.active .toc-child { + display: block; +} +#aside-content #card-toc .toc-content ol, +#aside-content #card-toc .toc-content li { + list-style: none; +} +#aside-content #card-toc .toc-content > ol { + padding: 0 !important; +} +#aside-content #card-toc .toc-content ol { + margin: 0; + padding-left: 18px; +} +#aside-content #card-toc .toc-content .toc-link { + display: block; + margin: 4px 0; + padding: 1px 6px; + color: var(--toc-link-color); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + -ms-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +#aside-content #card-toc .toc-content .toc-link:hover { + color: #49b1f5; +} +#aside-content #card-toc .toc-content .toc-link.active { + background: #00c4b6; + color: #fff; +} +#aside-content :only-child > .card-widget { + margin-top: 0; +} +#aside-content .card-more-btn { + float: right; + color: inherit; +} +#aside-content .card-more-btn:hover { + -webkit-animation: more-btn-move 1s infinite; + -moz-animation: more-btn-move 1s infinite; + -o-animation: more-btn-move 1s infinite; + -ms-animation: more-btn-move 1s infinite; + animation: more-btn-move 1s infinite; +} +#aside-content .card-announcement .item-headline i { + color: #f00; +} +.avatar-img { + overflow: hidden; + margin: 0 auto; + width: 110px; + height: 110px; + border-radius: 70px; +} +.avatar-img img { + width: 100%; + height: 100%; + -webkit-transition: filter 1000ms cubic-bezier(0.38, 0.21, 0.94, 0.1) 0.2s, -webkit-transform 1s; + -moz-transition: filter 1000ms cubic-bezier(0.38, 0.21, 0.94, 0.1) 0.2s, -moz-transform 1s; + -o-transition: filter 1000ms cubic-bezier(0.38, 0.21, 0.94, 0.1) 0.2s, -o-transform 1s; + -ms-transition: filter 1000ms cubic-bezier(0.38, 0.21, 0.94, 0.1) 0.2s, -ms-transform 1s; + transition: filter 1000ms cubic-bezier(0.38, 0.21, 0.94, 0.1) 0.2s, transform 1s; + object-fit: cover; +} +.avatar-img img:hover { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); +} +.site-data { + display: table; + width: 100%; + table-layout: fixed; +} +.site-data > a { + display: table-cell; +} +.site-data > a div { + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} +.site-data > a:hover div { + color: #49b1f5 !important; +} +.site-data > a .headline { + color: var(--font-color); +} +.site-data > a .length-num { + margin-top: -0.32em; + color: var(--text-highlight-color); + font-size: 1.4em; +} +@media screen and (min-width: 900px) { + html.hide-aside .layout { + -webkit-box-pack: center; + -moz-box-pack: center; + -o-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; + } + html.hide-aside .layout > .aside-content { + display: none; + } + html.hide-aside .layout > div:first-child { + width: 80%; + } +} +.page .sticky_layout { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; +} +@-moz-keyframes more-btn-move { + 0%, 100% { + -webkit-transform: translateX(0); + -moz-transform: translateX(0); + -o-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } + 50% { + -webkit-transform: translateX(3px); + -moz-transform: translateX(3px); + -o-transform: translateX(3px); + -ms-transform: translateX(3px); + transform: translateX(3px); + } +} +@-webkit-keyframes more-btn-move { + 0%, 100% { + -webkit-transform: translateX(0); + -moz-transform: translateX(0); + -o-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } + 50% { + -webkit-transform: translateX(3px); + -moz-transform: translateX(3px); + -o-transform: translateX(3px); + -ms-transform: translateX(3px); + transform: translateX(3px); + } +} +@-o-keyframes more-btn-move { + 0%, 100% { + -webkit-transform: translateX(0); + -moz-transform: translateX(0); + -o-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } + 50% { + -webkit-transform: translateX(3px); + -moz-transform: translateX(3px); + -o-transform: translateX(3px); + -ms-transform: translateX(3px); + transform: translateX(3px); + } +} +@keyframes more-btn-move { + 0%, 100% { + -webkit-transform: translateX(0); + -moz-transform: translateX(0); + -o-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } + 50% { + -webkit-transform: translateX(3px); + -moz-transform: translateX(3px); + -o-transform: translateX(3px); + -ms-transform: translateX(3px); + transform: translateX(3px); + } +} +@-moz-keyframes toc-open { + 0% { + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } + 100% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } +} +@-webkit-keyframes toc-open { + 0% { + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } + 100% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } +} +@-o-keyframes toc-open { + 0% { + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } + 100% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } +} +@keyframes toc-open { + 0% { + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } + 100% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } +} +@-moz-keyframes toc-close { + 0% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + 100% { + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } +} +@-webkit-keyframes toc-close { + 0% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + 100% { + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } +} +@-o-keyframes toc-close { + 0% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + 100% { + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } +} +@keyframes toc-close { + 0% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + 100% { + -webkit-transform: scale(0.7); + -moz-transform: scale(0.7); + -o-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } +} +:root { + --card-friend-class-desc-bgcolor: #e7e7e7; + --card-friend-name-color: #000; + --card-friend-item-hover: var(--text-bg-hover); + --card-friend-descr-color: #797979; +} +[data-theme="dark"] { + --card-friend-class-desc-bgcolor: #111; + --card-friend-name-color: #fff; + --card-friend-item-hover: var(--text-bg-hover); + --card-friend-descr-color: #797979; +} +#aside-content .card-widget.card-friend-link { + padding: 20px; +} +.card-widget.card-friend-link .card-friend-link-container { + max-height: 460px; + overflow: scroll; +} +.card-widget.card-friend-link .card-friend-link-container::-webkit-scrollbar { + display: none; +} +.card-widget.card-friend-link summary.card-friend-class-desc { + padding: 0px 15px; +} +.card-widget.card-friend-link details.card-friend-class-name[open] summary.card-friend-class-desc { + position: sticky; + top: 0px; + background: var(--card-friend-class-desc-bgcolor); + z-index: 1; +} +.card-widget.card-friend-link a.card-friend-item { + padding: 0px 15px; + height: 60px; + width: auto; + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-lines: single; + -moz-box-lines: single; + -o-box-lines: single; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} +.card-widget.card-friend-link a.card-friend-item:hover { + background-color: var(--card-friend-item-hover); + border-radius: 12px; + -webkit-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + -ms-transition: all 0.3s ease-in-out; + transition: all 0.3s ease-in-out; +} +.card-widget.card-friend-link img.card-friend-avatar { + width: 40px; + height: 40px; + border-radius: 50%; + margin: 10px 10px; +} +.card-widget.card-friend-link .offline-friend-link img.card-friend-avatar { + filter: grayscale(100%); +} +.card-widget.card-friend-link .card-friend-details { + width: auto; + height: 60px; + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-lines: single; + -moz-box-lines: single; + -o-box-lines: single; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -moz-box-pack: center; + -o-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; + -webkit-box-align: start; + -moz-box-align: start; + -o-box-align: start; + -ms-flex-align: start; + -webkit-align-items: flex-start; + align-items: flex-start; +} +.card-widget.card-friend-link .card-friend-name { + color: var(--card-friend-name-color); +} +.card-widget.card-friend-link .card-friend-descr { + font-size: 12px; + white-space: nowrap; + overflow: hidden; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; + width: 12em; + color: var(--card-friend-descr-color); +} +#post-comment .comment-head { + margin-bottom: 20px; +} +#post-comment .comment-head .comment-headline { + display: inline-block; + vertical-align: middle; + font-weight: 700; + font-size: 1.43em; +} +#post-comment .comment-head #comment-switch { + display: inline-block; + float: right; + margin: 2px auto 0; + padding: 4px 16px; + width: max-content; + border-radius: 8px; + background: #f6f8fa; +} +#post-comment .comment-head #comment-switch .first-comment { + color: #49b1f5; +} +#post-comment .comment-head #comment-switch .second-comment { + color: #ff7242; +} +#post-comment .comment-head #comment-switch .switch-btn { + position: relative; + display: inline-block; + margin: -4px 8px 0; + width: 42px; + height: 22px; + border-radius: 34px; + background-color: #49b1f5; + vertical-align: middle; + -webkit-transition: 0.4s; + -moz-transition: 0.4s; + -o-transition: 0.4s; + -ms-transition: 0.4s; + transition: 0.4s; +} +#post-comment .comment-head #comment-switch .switch-btn:before { + position: absolute; + bottom: 4px; + left: 4px; + width: 14px; + height: 14px; + border-radius: 50%; + background-color: #fff; + content: ''; + -webkit-transition: 0.4s; + -moz-transition: 0.4s; + -o-transition: 0.4s; + -ms-transition: 0.4s; + transition: 0.4s; +} +#post-comment .comment-head #comment-switch .switch-btn.move { + background-color: #ff7242; +} +#post-comment .comment-head #comment-switch .switch-btn.move:before { + -webkit-transform: translateX(20px); + -moz-transform: translateX(20px); + -o-transform: translateX(20px); + -ms-transform: translateX(20px); + transform: translateX(20px); +} +#post-comment .comment-wrap > div:nth-child(2) { + display: none; +} +#footer { + position: relative; + background-attachment: scroll; + background-position: bottom; + background-size: cover; +} +#footer:before { + position: absolute; + width: 100%; + height: 100%; + background-color: rgba(0,0,0,0.3); + content: ''; +} +#footer-wrap { + position: relative; + padding: 40px 20px; + color: var(--light-grey); + text-align: center; +} +#footer-wrap a { + color: var(--light-grey); +} +#footer-wrap a:hover { + text-decoration: underline; +} +#footer-wrap .footer-separator { + margin: 0 4px; +} +#footer-wrap .icp-icon { + padding: 0 4px; + max-height: 1.4em; + width: auto; + vertical-align: text-bottom; +} +#page-header { + position: relative; + width: 100%; + background-position: center center; + background-size: cover; + background-repeat: no-repeat; + -webkit-transition: all 0.5s; + -moz-transition: all 0.5s; + -o-transition: all 0.5s; + -ms-transition: all 0.5s; + transition: all 0.5s; +} +#page-header:not(.not-top-img):before { + position: absolute; + width: 100%; + height: 100%; + background-color: rgba(0,0,0,0.3); + content: ''; +} +#page-header.full_page { + height: 100vh; + background-attachment: fixed; +} +#page-header.full_page #site-info { + position: absolute; + top: 43%; + padding: 0 10px; + width: 100%; +} +#page-header #site-title, +#page-header #site-subtitle, +#page-header #scroll-down .scroll-down-effects { + text-align: center; + text-shadow: 2px 2px 4px rgba(0,0,0,0.15); + line-height: 1.5; +} +#page-header #site-title { + margin: 0; + color: var(--white); + font-size: 1.85em; +} +@media screen and (min-width: 768px) { + #page-header #site-title { + font-size: 2.85em; + } +} +#page-header #site-subtitle { + color: var(--light-grey); + font-size: 1.15em; +} +@media screen and (min-width: 768px) { + #page-header #site-subtitle { + font-size: 1.72em; + } +} +#page-header #site_social_icons { + display: none; + margin: 0 auto; + width: 300px; + text-align: center; +} +@media screen and (max-width: 768px) { + #page-header #site_social_icons { + display: block; + } +} +#page-header #site_social_icons .social-icon { + margin: 0 10px; + color: var(--light-grey); + text-shadow: 2px 2px 4px rgba(0,0,0,0.15); + font-size: 1.43em; +} +#page-header #scroll-down { + position: absolute; + bottom: 0; + width: 100%; +} +#page-header #scroll-down .scroll-down-effects { + position: relative; + width: 100%; + color: var(--light-grey); + font-size: 30px; +} +#page-header.not-home-page { + height: 400px; +} +@media screen and (max-width: 768px) { + #page-header.not-home-page { + height: 280px; + } +} +#page-header #page-site-info { + position: absolute; + top: 200px; + padding: 0 10px; + width: 100%; +} +@media screen and (max-width: 768px) { + #page-header #page-site-info { + top: 140px; + } +} +#page-header.post-bg { + height: 400px; +} +@media screen and (max-width: 768px) { + #page-header.post-bg { + height: 360px; + } +} +#page-header.post-bg:before { + background-color: rgba(0,0,0,0.5); +} +#page-header #post-info { + position: absolute; + bottom: 100px; + padding: 0 8%; + width: 100%; + text-align: center; +} +@media screen and (max-width: 900px) { + #page-header #post-info { + bottom: 30px; + text-align: left; + } +} +@media screen and (max-width: 768px) { + #page-header #post-info { + bottom: 22px; + padding: 0 22px; + } +} +#page-header.not-top-img { + margin-bottom: 10px; + height: 60px; + background: 0; +} +#page-header.not-top-img #nav { + background: rgba(255,255,255,0.8); + -webkit-box-shadow: 0 5px 6px -5px rgba(133,133,133,0.6); + box-shadow: 0 5px 6px -5px rgba(133,133,133,0.6); +} +#page-header.not-top-img #nav a { + color: var(--font-color); + text-shadow: none; +} +#page-header.nav-fixed #nav { + position: fixed; + top: -60px; + z-index: 91; + background: rgba(255,255,255,0.8); + -webkit-box-shadow: 0 5px 6px -5px rgba(133,133,133,0.6); + box-shadow: 0 5px 6px -5px rgba(133,133,133,0.6); + -webkit-transition: -webkit-transform 0.2s ease-in-out, opacity 0.2s ease-in-out; + -moz-transition: -moz-transform 0.2s ease-in-out, opacity 0.2s ease-in-out; + -o-transition: -o-transform 0.2s ease-in-out, opacity 0.2s ease-in-out; + -ms-transition: -ms-transform 0.2s ease-in-out, opacity 0.2s ease-in-out; + transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out; +} +#page-header.nav-fixed #nav a, +#page-header.nav-fixed #nav #site-name, +#page-header.nav-fixed #nav #toggle-menu { + color: var(--font-color); + text-shadow: none; +} +#page-header.nav-fixed #nav a:hover, +#page-header.nav-fixed #nav #site-name:hover, +#page-header.nav-fixed #nav #toggle-menu:hover { + color: #49b1f5; +} +#page-header.nav-visible #nav { + -webkit-transition: all 0.5s; + -moz-transition: all 0.5s; + -o-transition: all 0.5s; + -ms-transition: all 0.5s; + transition: all 0.5s; + -webkit-transform: translate3d(0, 100%, 0); + -moz-transform: translate3d(0, 100%, 0); + -o-transform: translate3d(0, 100%, 0); + -ms-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); +} +#page-header.nav-visible + .layout > .aside-content > .sticky_layout { + top: 70px; + -webkit-transition: top 0.5s; + -moz-transition: top 0.5s; + -o-transition: top 0.5s; + -ms-transition: top 0.5s; + transition: top 0.5s; +} +#page h1.page-title { + margin: 8px 0 20px; +} +#post > #post-info { + margin-bottom: 30px; +} +#post > #post-info .post-title { + padding-bottom: 4px; + border-bottom: 1px solid var(--light-grey); + color: var(--text-highlight-color); +} +#post > #post-info .post-title .post-edit-link { + float: right; +} +#post > #post-info #post-meta, +#post > #post-info #post-meta a { + color: #78818a; +} +#post-info .post-title { + margin-bottom: 8px; + color: var(--white); + font-weight: normal; + font-size: 2.5em; + line-height: 1.5; + -webkit-line-clamp: 3; +} +@media screen and (max-width: 768px) { + #post-info .post-title { + font-size: 2.1em; + } +} +#post-info .post-title .post-edit-link { + padding-left: 10px; +} +#post-info #post-meta { + color: var(--light-grey); + font-size: 95%; +} +@media screen and (min-width: 768px) { + #post-info #post-meta > .meta-secondline > span:first-child { + display: none; + } +} +@media screen and (max-width: 768px) { + #post-info #post-meta { + font-size: 90%; + } + #post-info #post-meta > .meta-firstline, + #post-info #post-meta > .meta-secondline { + display: inline; + } +} +#post-info #post-meta .post-meta-separator { + margin: 0 8px; +} +#post-info #post-meta .post-meta-icon { + margin-right: 4px; +} +#post-info #post-meta .post-meta-label { + margin-right: 4px; +} +#post-info #post-meta a { + color: var(--light-grey); + -webkit-transition: all 0.3s ease-out; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -ms-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +#post-info #post-meta a:hover { + color: #49b1f5; + text-decoration: underline; +} +#post-info #post-meta time { + display: none; +} +#nav { + position: absolute; + top: 0; + z-index: 90; + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + padding: 0 36px; + width: 100%; + height: 60px; + font-size: 1.3em; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transition: all 0.5s; + -moz-transition: all 0.5s; + -o-transition: all 0.5s; + -ms-transition: all 0.5s; + transition: all 0.5s; +} +@media screen and (max-width: 768px) { + #nav { + padding: 0 16px; + } +} +#nav.show { + opacity: 1; + -ms-filter: none; + filter: none; +} +#nav #blog_name { + -webkit-box-flex: 1; + -moz-box-flex: 1; + -o-box-flex: 1; + box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} +#nav #toggle-menu { + display: none; + padding: 2px 0 0 6px; + vertical-align: top; +} +#nav #toggle-menu:hover { + color: var(--white); +} +#nav a { + color: var(--light-grey); +} +#nav a:hover { + color: var(--white); +} +#nav #site-name { + text-shadow: 2px 2px 4px rgba(0,0,0,0.15); + font-weight: bold; +} +#nav .menus_items { + display: inline; +} +#nav .menus_items .menus_item { + position: relative; + display: inline-block; + padding: 0 0 0 14px; +} +#nav .menus_items .menus_item:hover .menus_item_child { + display: block; +} +#nav .menus_items .menus_item:hover > a > i:last-child { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -o-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +#nav .menus_items .menus_item > a > i:last-child { + padding: 4px; + -webkit-transition: -webkit-transform 0.3s; + -moz-transition: -moz-transform 0.3s; + -o-transition: -o-transform 0.3s; + -ms-transition: -ms-transform 0.3s; + transition: transform 0.3s; +} +#nav .menus_items .menus_item .menus_item_child { + position: absolute; + right: 0; + display: none; + margin-top: 8px; + padding: 0; + width: max-content; + background-color: var(--sidebar-bg); + -webkit-box-shadow: 0 5px 20px -4px rgba(0,0,0,0.5); + box-shadow: 0 5px 20px -4px rgba(0,0,0,0.5); + -webkit-animation: sub_menus 0.3s 0.1s ease both; + -moz-animation: sub_menus 0.3s 0.1s ease both; + -o-animation: sub_menus 0.3s 0.1s ease both; + -ms-animation: sub_menus 0.3s 0.1s ease both; + animation: sub_menus 0.3s 0.1s ease both; + border-radius: 5px; +} +#nav .menus_items .menus_item .menus_item_child:before { + position: absolute; + top: -8px; + left: 0; + width: 100%; + height: 20px; + content: ''; +} +#nav .menus_items .menus_item .menus_item_child li { + list-style: none; +} +#nav .menus_items .menus_item .menus_item_child li:hover { + background: var(--text-bg-hover); +} +#nav .menus_items .menus_item .menus_item_child li:first-child { + border-radius: 5px 5px 0 0; +} +#nav .menus_items .menus_item .menus_item_child li:last-child { + border-radius: 0 0 5px 5px; +} +#nav .menus_items .menus_item .menus_item_child li a { + display: inline-block; + padding: 8px 16px; + width: 100%; + color: var(--font-color) !important; + text-shadow: none !important; +} +#nav.hide-menu #toggle-menu { + display: inline-block !important; +} +#nav.hide-menu #toggle-menu .site-page { + font-size: inherit; +} +#nav.hide-menu .menus_items { + display: none; +} +#nav.hide-menu #search-button span { + display: none; +} +#nav #search-button { + display: inline; + padding: 0px; +} +#nav .site-page { + position: relative; + padding-bottom: 6px; + text-shadow: 1px 1px 2px rgba(0,0,0,0.3); + font-size: 0.78em; +} +#nav .site-page:not(.child):after { + position: absolute; + bottom: 0; + left: 0; + z-index: -1; + width: 0; + height: 3px; + background-color: #80c8f8; + content: ''; + -webkit-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + -ms-transition: all 0.3s ease-in-out; + transition: all 0.3s ease-in-out; +} +#nav .site-page:not(.child):hover:after { + width: 100%; +} +.loading-bg { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + width: 100%; + height: 100%; + position: fixed; + background: var(--loading-color); + z-index: 1001; + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transition: 0.3s; + -moz-transition: 0.3s; + -o-transition: 0.3s; + -ms-transition: 0.3s; + transition: 0.3s; +} +#loading-box .loading-img { + width: 100px; + height: 100px; + border-radius: 50%; + margin: auto; + border: 4px solid #f0f0f2; + -webkit-animation-duration: 0.3s; + -moz-animation-duration: 0.3s; + -o-animation-duration: 0.3s; + -ms-animation-duration: 0.3s; + animation-duration: 0.3s; + -webkit-animation-name: loadingAction; + -moz-animation-name: loadingAction; + -o-animation-name: loadingAction; + -ms-animation-name: loadingAction; + animation-name: loadingAction; + -webkit-animation-iteration-count: infinite; + -moz-animation-iteration-count: infinite; + -o-animation-iteration-count: infinite; + -ms-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-direction: alternate; + -moz-animation-direction: alternate; + -o-animation-direction: alternate; + -ms-animation-direction: alternate; + animation-direction: alternate; +} +#loading-box .loading-image-dot { + width: 30px; + height: 30px; + background: #6bdf8f; + position: absolute; + border-radius: 50%; + border: 6px solid #fff; + top: 50%; + left: 50%; + -webkit-transform: translate(18px, 24px); + -moz-transform: translate(18px, 24px); + -o-transform: translate(18px, 24px); + -ms-transform: translate(18px, 24px); + transform: translate(18px, 24px); +} +#loading-box.loaded .loading-bg { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + z-index: -1000; +} +@-moz-keyframes loadingAction { + 0% { + opacity: 1; + -ms-filter: none; + filter: none; + } + 100% { + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + } +} +@-webkit-keyframes loadingAction { + 0% { + opacity: 1; + -ms-filter: none; + filter: none; + } + 100% { + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + } +} +@-o-keyframes loadingAction { + 0% { + opacity: 1; + -ms-filter: none; + filter: none; + } + 100% { + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + } +} +@keyframes loadingAction { + 0% { + opacity: 1; + -ms-filter: none; + filter: none; + } + 100% { + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + } +} +#pagination .pagination { + margin-top: 20px; + text-align: center; +} +#pagination .page-number.current { + background: #00c4b6; + color: var(--white); +} +#pagination .pagination-info { + position: absolute; + top: 50%; + padding: 20px 40px; + width: 100%; + -webkit-transform: translate(0, -50%); + -moz-transform: translate(0, -50%); + -o-transform: translate(0, -50%); + -ms-transform: translate(0, -50%); + transform: translate(0, -50%); +} +#pagination .prev_info, +#pagination .next_info { + color: var(--white); + font-weight: 500; +} +#pagination .next-post .pagination-info { + text-align: right; +} +#pagination .pull-full { + width: 100% !important; +} +#pagination .prev-post .label, +#pagination .next-post .label { + color: var(--light-grey); + text-transform: uppercase; + font-size: 90%; +} +#pagination .prev-post, +#pagination .next-post { + width: 50%; +} +@media screen and (max-width: 768px) { + #pagination .prev-post, + #pagination .next-post { + width: 100%; + } +} +#pagination .prev-post a, +#pagination .next-post a { + position: relative; + display: block; + overflow: hidden; + height: 150px; +} +#pagination.pagination-post { + overflow: hidden; + margin-top: 40px; + width: 100%; + background: #000; +} +.layout > .recent-posts .pagination > * { + display: inline-block; + margin: 0 6px; + width: 2.5em; + height: 2.5em; + line-height: 2.5em; +} +.layout > .recent-posts .pagination > *:not(.space):hover { + background: var(--btn-hover-color); + color: var(--btn-color); +} +.layout > div:not(.recent-posts) .pagination .page-number { + display: inline-block; + margin: 0 4px; + min-width: 24px; + height: 24px; + text-align: center; + line-height: 24px; +} +#article-container { + word-wrap: break-word; + overflow-wrap: break-word; +} +#article-container a { + color: #a591e0; +} +#article-container a:hover { + text-decoration: underline; +} +#article-container img { + display: block; + margin: 0 auto 20px; + max-width: 100%; + -webkit-transition: filter 375ms ease-in 0.2s; + -moz-transition: filter 375ms ease-in 0.2s; + -o-transition: filter 375ms ease-in 0.2s; + -ms-transition: filter 375ms ease-in 0.2s; + transition: filter 375ms ease-in 0.2s; +} +#article-container p { + margin: 0 0 16px; +} +#article-container iframe { + margin: 0 0 20px; +} +#article-container ol ol, +#article-container ul ol, +#article-container ol ul, +#article-container ul ul { + padding-left: 20px; +} +#article-container ol li, +#article-container ul li { + margin: 4px 0; +} +#article-container ol p, +#article-container ul p { + margin: 0 0 8px; +} +#article-container h1, +#article-container h2, +#article-container h3, +#article-container h4, +#article-container h5, +#article-container h6 { + -webkit-transition: all 0.2s ease-out; + -moz-transition: all 0.2s ease-out; + -o-transition: all 0.2s ease-out; + -ms-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +#article-container h1:before, +#article-container h2:before, +#article-container h3:before, +#article-container h4:before, +#article-container h5:before, +#article-container h6:before { + position: absolute; + top: calc(50% - 7px); + color: #f47466; + content: '\f863'; + line-height: 1; + -webkit-transition: all 0.2s ease-out; + -moz-transition: all 0.2s ease-out; + -o-transition: all 0.2s ease-out; + -ms-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +#article-container h1:hover:before, +#article-container h2:hover:before, +#article-container h3:hover:before, +#article-container h4:hover:before, +#article-container h5:hover:before, +#article-container h6:hover:before { + color: #49b1f5; +} +#article-container h1 { + padding-left: 32px; +} +#article-container h1:before { + margin-left: -26px; + font-size: 20px; +} +#article-container h1:hover { + padding-left: 38px; +} +#article-container h2 { + padding-left: 30px; +} +#article-container h2:before { + margin-left: -24px; + font-size: 18px; +} +#article-container h2:hover { + padding-left: 36px; +} +#article-container h3 { + padding-left: 28px; +} +#article-container h3:before { + margin-left: -22px; + font-size: 16px; +} +#article-container h3:hover { + padding-left: 34px; +} +#article-container h4 { + padding-left: 26px; +} +#article-container h4:before { + margin-left: -20px; + font-size: 14px; +} +#article-container h4:hover { + padding-left: 32px; +} +#article-container h5 { + padding-left: 24px; +} +#article-container h5:before { + margin-left: -18px; + font-size: 12px; +} +#article-container h5:hover { + padding-left: 30px; +} +#article-container h6 { + padding-left: 24px; +} +#article-container h6:before { + margin-left: -18px; + font-size: 12px; +} +#article-container h6:hover { + padding-left: 30px; +} +#article-container ol p, +#article-container ul p { + margin: 0 0 8px; +} +#article-container li::marker { + color: #49b1f5; + font-weight: 600; + font-size: 1.05em; +} +#article-container li:hover::marker { + color: var(--pseudo-hover); +} +#article-container ul > li { + list-style-type: circle; +} +#article-container > :last-child { + margin-bottom: 0 !important; +} +#post .tag_share .post-meta__tag-list { + display: inline-block; +} +#post .tag_share .post-meta__tags { + display: inline-block; + margin: 8px 8px 8px 0; + padding: 0 12px; + width: fit-content; + border: 1px solid #49b1f5; + border-radius: 12px; + color: #49b1f5; + font-size: 0.85em; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + -ms-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +#post .tag_share .post-meta__tags:hover { + background: #49b1f5; + color: var(--white); +} +#post .tag_share .post_share { + display: inline-block; + float: right; + margin: 8px 0; + width: fit-content; +} +#post .tag_share .post_share .social-share { + font-size: 0.85em; +} +#post .tag_share .post_share .social-share .social-share-icon { + margin: 0 4px; + width: 1.85em; + height: 1.85em; + font-size: 1.2em; + line-height: 1.85em; +} +#post .post-copyright { + position: relative; + margin: 40px 0 10px; + padding: 10px 16px; + border: 1px solid var(--light-grey); + -webkit-transition: box-shadow 0.3s ease-in-out; + -moz-transition: box-shadow 0.3s ease-in-out; + -o-transition: box-shadow 0.3s ease-in-out; + -ms-transition: box-shadow 0.3s ease-in-out; + transition: box-shadow 0.3s ease-in-out; + overflow: hidden; + border-radius: 12px !important; + background: -webkit-linear-gradient(45deg, #f6d8f5, #c2f1f0, #f0debf); + background: -moz-linear-gradient(45deg, #f6d8f5, #c2f1f0, #f0debf); + background: -o-linear-gradient(45deg, #f6d8f5, #c2f1f0, #f0debf); + background: -ms-linear-gradient(45deg, #f6d8f5, #c2f1f0, #f0debf); + background: linear-gradient(45deg, #f6d8f5, #c2f1f0, #f0debf); +} +#post .post-copyright:before { + background: var(--heo-post-blockquote-bg); + position: absolute; + right: -26px; + top: -120px; + content: '\f25e'; + font-size: 200px; + font-family: 'Font Awesome 5 Brands'; + opacity: 0.2; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)"; + filter: alpha(opacity=20); +} +#post .post-copyright:hover { + -webkit-box-shadow: 0 0 8px 0 rgba(232,237,250,0.6), 0 2px 4px 0 rgba(232,237,250,0.5); + box-shadow: 0 0 8px 0 rgba(232,237,250,0.6), 0 2px 4px 0 rgba(232,237,250,0.5); +} +#post .post-copyright .post-copyright-meta { + color: #49b1f5; + font-weight: bold; +} +#post .post-copyright .post-copyright-info { + padding-left: 6px; +} +#post .post-copyright .post-copyright-info a { + text-decoration: none; + word-break: break-word; +} +#post .post-copyright .post-copyright-info a:hover { + text-decoration: none; +} +#post .post-copyright-cc-info { + color: #49b1f5; +} +#post .post-outdate-notice { + position: relative; + margin: 0 0 20px; + padding: 0.5em 1.2em; + border-radius: 3px; + background-color: #ffe6e6; + color: #f66; + padding: 0.5em 1em 0.5em 2.6em; + border-left: 5px solid #ff8080; +} +#post .post-outdate-notice:before { + position: absolute; + top: 50%; + left: 0.9em; + color: #ff8080; + content: '\f071'; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -o-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} +#post .ads-wrap { + margin: 40px 0; +} +.post-copyright-m-info .post-copyright-a, +.post-copyright-m-info .post-copyright-c, +.post-copyright-m-info .post-copyright-u { + display: inline-block; + width: fit-content; + padding: 2px 5px; +} +[data-theme="dark"] #post .post-copyright { + background: #07080a; + text-shadow: #bfbeb8 0 0 2px; + border: 1px solid #131201; + -webkit-box-shadow: 0 0 5px var(--theme-color); + box-shadow: 0 0 5px var(--theme-color); + -webkit-animation: flashlight 1s linear infinite alternate; + -moz-animation: flashlight 1s linear infinite alternate; + -o-animation: flashlight 1s linear infinite alternate; + -ms-animation: flashlight 1s linear infinite alternate; + animation: flashlight 1s linear infinite alternate; +} +[data-theme="dark"] .post-copyright-info { + color: #e0e0e4; +} +#post .post-copyright__title { + font-size: 22px; +} +#post .post-copyright__notice { + font-size: 15px; +} +#post .post-copyright { + -webkit-box-shadow: 2px 2px 5px; + box-shadow: 2px 2px 5px; +} +.relatedPosts { + margin-top: 40px; +} +.relatedPosts > .headline { + margin-bottom: 5px; + font-weight: 700; + font-size: 1.43em; +} +.relatedPosts > .relatedPosts-list > div { + position: relative; + display: inline-block; + overflow: hidden; + margin: 3px; + width: calc(33.333% - 6px); + height: 200px; + background: #000; + vertical-align: bottom; +} +@media screen and (max-width: 768px) { + .relatedPosts > .relatedPosts-list > div { + margin: 2px; + width: calc(50% - 4px); + height: 150px; + } +} +@media screen and (max-width: 600px) { + .relatedPosts > .relatedPosts-list > div { + width: calc(100% - 4px); + } +} +.relatedPosts > .relatedPosts-list .content { + position: absolute; + top: 50%; + padding: 0 20px; + width: 100%; + -webkit-transform: translate(0, -50%); + -moz-transform: translate(0, -50%); + -o-transform: translate(0, -50%); + -ms-transform: translate(0, -50%); + transform: translate(0, -50%); +} +.relatedPosts > .relatedPosts-list .content .date { + color: var(--light-grey); + font-size: 90%; +} +.relatedPosts > .relatedPosts-list .content .title { + color: var(--white); + -webkit-line-clamp: 2; +} +.post-reward { + position: relative; + margin-top: 3rem; + width: 100%; + text-align: center; +} +.post-reward .reward-button { + display: inline-block; + padding: 0.2rem 1.2rem; + background: var(--btn-bg); + color: var(--btn-color); + -webkit-transition: all 0.4s; + -moz-transition: all 0.4s; + -o-transition: all 0.4s; + -ms-transition: all 0.4s; + transition: all 0.4s; + border-radius: 30px; +} +.post-reward .reward-button:hover { + -webkit-box-shadow: inset 20em 0 0 0 var(--btn-hover-color); + box-shadow: inset 20em 0 0 0 var(--btn-hover-color); +} +.post-reward .reward-button:hover .reward-main { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; +} +.post-reward .reward-button .reward-main { + position: absolute; + bottom: 40px; + left: -55%; + z-index: 100; + display: none; + padding: 0 0 15px; + width: 150%; +} +.post-reward .reward-button .reward-main .reward-all { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + margin: 0; + padding: 1rem 0.5rem; + border-radius: 12px; + background: var(--reward-pop); +} +.post-reward .reward-button .reward-main .reward-all:before { + position: absolute; + bottom: -10px; + left: 0; + width: 100%; + height: 20px; + content: ''; +} +.post-reward .reward-button .reward-main .reward-all:after { + position: absolute; + right: 0; + bottom: 2px; + left: 0; + margin: 0 auto; + width: 0; + height: 0; + border-top: 13px solid var(--reward-pop); + border-right: 13px solid transparent; + border-left: 13px solid transparent; + content: ''; +} +.post-reward .reward-button .reward-main .reward-all .reward-item { + display: inline-block; + padding: 0 8px; + list-style-type: none; + vertical-align: top; +} +.post-reward .reward-button .reward-main .reward-all .reward-item img { + width: 130px; + height: 130px; +} +.post-reward .reward-button .reward-main .reward-all .reward-item .post-qr-code-desc { + padding-top: 0.4rem; + width: 130px; + color: #858585; +} +#rightside { + position: fixed; + right: -48px; + bottom: 40px; + z-index: 100; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transition: all 0.5s; + -moz-transition: all 0.5s; + -o-transition: all 0.5s; + -ms-transition: all 0.5s; + transition: all 0.5s; +} +#rightside #rightside-config-hide { + height: 0; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transition: -webkit-transform 0.4s; + -moz-transition: -moz-transform 0.4s; + -o-transition: -o-transform 0.4s; + -ms-transition: -ms-transform 0.4s; + transition: transform 0.4s; + -webkit-transform: translate(45px, 0); + -moz-transform: translate(45px, 0); + -o-transform: translate(45px, 0); + -ms-transform: translate(45px, 0); + transform: translate(45px, 0); +} +#rightside #rightside-config-hide.show { + height: auto; + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translate(0, 0); + -moz-transform: translate(0, 0); + -o-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} +#rightside #rightside-config-hide.status { + height: auto; + opacity: 1; + -ms-filter: none; + filter: none; +} +#rightside > div > button, +#rightside > div > a { + display: block; + margin-bottom: 5px; + width: 35px; + height: 35px; + border-radius: 5px; + background-color: var(--btn-bg); + color: var(--btn-color); + text-align: center; + font-size: 16px; + line-height: 35px; +} +#rightside > div > button:hover, +#rightside > div > a:hover { + background-color: var(--btn-hover-color); +} +#rightside #mobile-toc-button { + display: none; +} +@media screen and (max-width: 900px) { + #rightside #mobile-toc-button { + display: block; + } +} +@media screen and (max-width: 900px) { + #rightside #hide-aside-btn { + display: none; + } +} +#sidebar #sidebar-menus { + background: -webkit-linear-gradient(30deg, #ffd7e4 0%, #c8f1ff 100%); + background: -moz-linear-gradient(30deg, #ffd7e4 0%, #c8f1ff 100%); + background: -o-linear-gradient(30deg, #ffd7e4 0%, #c8f1ff 100%); + background: -ms-linear-gradient(30deg, #ffd7e4 0%, #c8f1ff 100%); + background: linear-gradient(60deg, #ffd7e4 0%, #c8f1ff 100%); +} +[data-theme="dark"] #sidebar #sidebar-menus { + background: -webkit-linear-gradient(30deg, #2c0c16 0%, #043749 100%); + background: -moz-linear-gradient(30deg, #2c0c16 0%, #043749 100%); + background: -o-linear-gradient(30deg, #2c0c16 0%, #043749 100%); + background: -ms-linear-gradient(30deg, #2c0c16 0%, #043749 100%); + background: linear-gradient(60deg, #2c0c16 0%, #043749 100%); +} +[data-theme="dark"] #sidebar .site-data { + margin-top: 0.5rem; +/* 分类等字体加粗 */ +} +[data-theme="dark"] #sidebar .site-data .headline { + font-size: 0.875rem; +} +[data-theme="dark"] #sidebar .site-data .length-num { + font-size: 0.8rem !important; +} +[data-theme="dark"] #sidebar #sidebar-avatar { + margin-top: 0.2rem; +/* 作者名 */ +} +[data-theme="dark"] #sidebar #sidebar-avatar .author-info__name { + font-weight: 500; + font-size: 1.57em; +} +[data-theme="dark"] #sidebar #card-info-btn { + display: block; + margin: 0.3rem 1rem 0 1rem; + background-color: var(--btn-bg); + color: var(--btn-color); + text-align: center; + line-height: 2.4; + overflow: hidden; + border-radius: 0.625rem; +} +[data-theme="dark"] #sidebar .menu-info-social-icons { + margin: 0.5rem 0 0 0; +} +[data-theme="dark"] #sidebar .menu-info-social-icons .social-icon { + display: inline; + padding: 0 0.7rem 0 0.7rem; +} +[data-theme="dark"] #menu-mask { + position: fixed; + z-index: 102; + display: none; + width: 100%; + height: 100%; + background: rgba(0,0,0,0.8); +} +[data-theme="dark"] #sidebar-menus { + position: fixed; + top: 0; + right: -300px; + z-index: 103; + overflow-x: hidden; + overflow-y: auto; + width: 300px; + height: 100%; + background: var(--sidebar-bg); + -webkit-transition: all 0.5s; + -moz-transition: all 0.5s; + -o-transition: all 0.5s; + -ms-transition: all 0.5s; + transition: all 0.5s; +} +[data-theme="dark"] #sidebar-menus.open { + -webkit-transform: translate3d(-100%, 0, 0); + -moz-transform: translate3d(-100%, 0, 0); + -o-transform: translate3d(-100%, 0, 0); + -ms-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); +} +[data-theme="dark"] #sidebar-menus > .avatar-img { + margin: 20px auto; +} +[data-theme="dark"] #sidebar-menus .sidebar-site-data { + padding: 0 10px; +} +[data-theme="dark"] #sidebar-menus hr { + margin: 20px auto; +} +[data-theme="dark"] #sidebar-menus .menus_items { + padding: 0 10px 40px; +} +[data-theme="dark"] #sidebar-menus .menus_items .site-page { + position: relative; + display: block; + padding: 6px 30px 6px 22px; + color: var(--font-color); + font-size: 1.15em; +} +[data-theme="dark"] #sidebar-menus .menus_items .site-page:hover { + background: var(--text-bg-hover); +} +[data-theme="dark"] #sidebar-menus .menus_items .site-page i:first-child { + width: 15%; + text-align: left; +} +[data-theme="dark"] #sidebar-menus .menus_items .site-page.group > i:last-child { + position: absolute; + top: 0.78em; + right: 18px; + -webkit-transition: -webkit-transform 0.3s; + -moz-transition: -moz-transform 0.3s; + -o-transition: -o-transform 0.3s; + -ms-transition: -ms-transform 0.3s; + transition: transform 0.3s; +} +[data-theme="dark"] #sidebar-menus .menus_items .site-page.group.hide > i:last-child { + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -o-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +[data-theme="dark"] #sidebar-menus .menus_items .site-page.group.hide + .menus_item_child { + display: none; +} +[data-theme="dark"] #sidebar-menus .menus_items .menus_item_child { + margin: 0; + list-style: none; +} +.Cuteen_DarkSky, +.Cuteen_DarkSky:before { + content: ''; + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; + z-index: 88888888; +} +.Cuteen_DarkSky { + background: -webkit-linear-gradient(bottom, #f8cd71 0, #5bfde9 80%); + background: -moz-linear-gradient(bottom, #f8cd71 0, #5bfde9 80%); + background: -o-linear-gradient(bottom, #f8cd71 0, #5bfde9 80%); + background: -ms-linear-gradient(bottom, #f8cd71 0, #5bfde9 80%); + background: linear-gradient(to top, #f8cd71 0, #5bfde9 80%); +} +.Cuteen_DarkSky:before { + -webkit-transition: 2s ease all; + -moz-transition: 2s ease all; + -o-transition: 2s ease all; + -ms-transition: 2s ease all; + transition: 2s ease all; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + background: -webkit-linear-gradient(bottom, #30cfd0 0, #330867 100%); + background: -moz-linear-gradient(bottom, #30cfd0 0, #330867 100%); + background: -o-linear-gradient(bottom, #30cfd0 0, #330867 100%); + background: -ms-linear-gradient(bottom, #30cfd0 0, #330867 100%); + background: linear-gradient(to top, #30cfd0 0, #330867 100%); +} +.DarkMode .Cuteen_DarkSky:before { + opacity: 1; + -ms-filter: none; + filter: none; +} +.Cuteen_DarkPlanet { + z-index: 99999999; + position: fixed; + left: -50%; + top: -50%; + width: 200%; + height: 200%; + -webkit-animation: CuteenPlanetMove 2s cubic-bezier(0.7, 0, 0, 1); + -webkit-animation: CuteenPlanetMove 2s cubic-bezier(0.7, 0, 0, 1); + -moz-animation: CuteenPlanetMove 2s cubic-bezier(0.7, 0, 0, 1); + -o-animation: CuteenPlanetMove 2s cubic-bezier(0.7, 0, 0, 1); + -ms-animation: CuteenPlanetMove 2s cubic-bezier(0.7, 0, 0, 1); + animation: CuteenPlanetMove 2s cubic-bezier(0.7, 0, 0, 1); + -webkit-transform-origin: center bottom; + -moz-transform-origin: center bottom; + -o-transform-origin: center bottom; + -ms-transform-origin: center bottom; + transform-origin: center bottom; +} +@-webkit-keyframes CuteenPlanetMove { + 0% { + -webkit-transform: rotate(0); + -moz-transform: rotate(0); + -o-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + } + to { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); + } +} +.Cuteen_DarkPlanet #sun { + position: absolute; + border-radius: 100%; + left: 44%; + top: 30%; + height: 6rem; + width: 6rem; + background: #ffee94; + -webkit-box-shadow: 0 0 40px #ffee94; + box-shadow: 0 0 40px #ffee94; +} +.Cuteen_DarkPlanet #moon { + position: absolute; + border-radius: 100%; + left: 44%; + top: 30%; + position: absolute; + border-radius: 100%; + height: 6rem; + width: 6rem; + -webkit-box-shadow: -1.8em 1.8em 0 0.2em #fff; + box-shadow: -1.8em 1.8em 0 0.2em #fff; +} +.search span { + display: none; +} +.menus_item a { + text-decoration: none !important; +} +@-moz-keyframes CuteenPlanetMove { + 0% { + -webkit-transform: rotate(0); + -moz-transform: rotate(0); + -o-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + } + to { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-webkit-keyframes CuteenPlanetMove { + 0% { + -webkit-transform: rotate(0); + -moz-transform: rotate(0); + -o-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + } + to { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-o-keyframes CuteenPlanetMove { + 0% { + -webkit-transform: rotate(0); + -moz-transform: rotate(0); + -o-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + } + to { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes CuteenPlanetMove { + 0% { + -webkit-transform: rotate(0); + -moz-transform: rotate(0); + -o-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + } + to { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); + } +} +#vcomment { + font-size: 1.1em; +} +#vcomment .vbtn { + border: none; + background: var(--btn-bg); + color: var(--btn-color); +} +#vcomment .vbtn:hover { + background: var(--btn-hover-color); +} +#vcomment .vimg { + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} +#vcomment .vimg:hover { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); +} +#vcomment .vcards .vcard .vcontent.expand:before, +#vcomment .vcards .vcard .vcontent.expand:after { + z-index: 22; +} +#waline-wrap { + --waline-font-size: 1.1em; + --waline-theme-color: #49b1f5; + --waline-active-color: #ff7242; +} +#waline-wrap .vuser { + -webkit-transition: all 0.5s; + -moz-transition: all 0.5s; + -o-transition: all 0.5s; + -ms-transition: all 0.5s; + transition: all 0.5s; +} +#waline-wrap .vuser:hover { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); +} +.fireworks { + position: fixed; + top: 0; + left: 0; + z-index: 9999; + pointer-events: none; +} +.medium-zoom-image--opened { + z-index: 99999 !important; + margin: 0 !important; +} +.medium-zoom-overlay { + z-index: 99999 !important; +} +.mermaid-wrap { + margin: 0 0 20px; + text-align: center; +} +.mermaid-wrap > svg { + height: 100%; +} +.utterances, +.fb-comments iframe { + width: 100% !important; +} +#gitalk-container .gt-meta { + margin: 0 0 0.8em; + padding: 6px 0 16px; +} +.katex-wrap { + overflow: auto; +} +.katex-wrap::-webkit-scrollbar { + display: none; +} +mjx-container[display], +.has-jax { + overflow-x: auto; + overflow-y: hidden; + line-height: normal !important; +} +.aplayer { + color: #4c4948; +} +#article-container .aplayer { + margin: 0 0 20px; +} +#article-container .aplayer ol, +#article-container .aplayer ul { + margin: 0; + padding: 0; +} +#article-container .aplayer ol li, +#article-container .aplayer ul li { + margin: 0; + padding: 0 15px; +} +#article-container .aplayer ol li:before, +#article-container .aplayer ul li:before { + content: none; +} +.snackbar-css { + border-radius: 5px !important; +} +[data-theme="dark"] #web_bg { + background: var(--darkmode-bg); + background-attachment: local; + background-position: center; + background-size: cover; + background-repeat: no-repeat; +} +@media screen and (max-width: 800px) { + #web_bg { + background: var(--mobileday-bg); + background-attachment: local !important; + background-position: center !important; + background-size: cover !important; + background-repeat: no-repeat !important; + } + [data-theme="dark"] #web_bg { + background: var(--mobilenight-bg); + background-attachment: local !important; + background-position: center !important; + background-size: cover !important; + background-repeat: no-repeat !important; + } +} +#article-container .btn-center { + margin: 0 0 20px; + text-align: center; +} +#article-container .btn-beautify { + display: inline-block; + margin: 0 4px 6px; + padding: 0 15px; + background-color: var(--btn-beautify-color, #777); + color: #fff; + line-height: 2; +} +#article-container .btn-beautify.blue { + --btn-beautify-color: #428bca; +} +#article-container .btn-beautify.pink { + --btn-beautify-color: #ff69b4; +} +#article-container .btn-beautify.red { + --btn-beautify-color: #f00; +} +#article-container .btn-beautify.purple { + --btn-beautify-color: #6f42c1; +} +#article-container .btn-beautify.orange { + --btn-beautify-color: #ff8c00; +} +#article-container .btn-beautify.green { + --btn-beautify-color: #5cb85c; +} +#article-container .btn-beautify:hover { + background-color: var(--btn-hover-color); +} +#article-container .btn-beautify i + span { + margin-left: 6px; +} +#article-container .btn-beautify:not(.block) + .btn-beautify:not(.block) { + margin: 0 4px 20px; +} +#article-container .btn-beautify.block { + display: block; + margin: 0 0 20px; + width: fit-content; + width: -moz-fit-content; +} +#article-container .btn-beautify.block.center { + margin: 0 auto 20px; +} +#article-container .btn-beautify.block.right { + margin: 0 0 20px auto; +} +#article-container .btn-beautify.larger { + padding: 6px 15px; +} +#article-container .btn-beautify:hover { + text-decoration: none; +} +#article-container .btn-beautify.outline { + border: 1px solid transparent; + border-color: var(--btn-beautify-color, #777); + background-color: transparent; + color: var(--btn-beautify-color, #777); +} +#article-container .btn-beautify.outline:hover { + background-color: var(--btn-beautify-color, #777); +} +#article-container .btn-beautify.outline:hover { + color: #fff !important; +} +#article-container figure.gallery-group { + position: relative; + float: left; + overflow: hidden; + margin: 6px 4px; + width: calc(50% - 8px); + height: 250px; + border-radius: 8px; + background: #000; + -webkit-transform: translate3d(0, 0, 0); +} +@media screen and (max-width: 600px) { + #article-container figure.gallery-group { + width: calc(100% - 8px); + } +} +#article-container figure.gallery-group:hover img { + opacity: 0.4; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} +#article-container figure.gallery-group:hover .gallery-group-name::after { + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} +#article-container figure.gallery-group:hover p { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} +#article-container figure.gallery-group img { + position: relative; + margin: 0; + max-width: none; + width: calc(100% + 20px); + height: 250px; + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + opacity: 0.8; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; + filter: alpha(opacity=80); + -webkit-transition: all 0.3s, filter 375ms ease-in 0.2s; + -moz-transition: all 0.3s, filter 375ms ease-in 0.2s; + -o-transition: all 0.3s, filter 375ms ease-in 0.2s; + -ms-transition: all 0.3s, filter 375ms ease-in 0.2s; + transition: all 0.3s, filter 375ms ease-in 0.2s; + -webkit-transform: translate3d(-10px, 0, 0); + -moz-transform: translate3d(-10px, 0, 0); + -o-transform: translate3d(-10px, 0, 0); + -ms-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + object-fit: cover; +} +#article-container figure.gallery-group figcaption { + position: absolute; + top: 0; + left: 0; + padding: 30px; + width: 100%; + height: 100%; + color: #fff; + text-transform: uppercase; + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; +} +#article-container figure.gallery-group figcaption > a { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1000; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); +} +#article-container figure.gallery-group p { + margin: 0; + padding: 8px 0 0; + letter-spacing: 1px; + font-size: 1.1em; + line-height: 1.5; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transition: opacity 0.35s, -webkit-transform 0.35s; + -moz-transition: opacity 0.35s, -moz-transform 0.35s; + -o-transition: opacity 0.35s, -o-transform 0.35s; + -ms-transition: opacity 0.35s, -ms-transform 0.35s; + transition: opacity 0.35s, transform 0.35s; + -webkit-transform: translate3d(100%, 0, 0); + -moz-transform: translate3d(100%, 0, 0); + -o-transform: translate3d(100%, 0, 0); + -ms-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + -webkit-line-clamp: 4; +} +#article-container figure.gallery-group .gallery-group-name { + position: relative; + margin: 0; + padding: 8px 0; + font-weight: bold; + font-size: 1.65em; + line-height: 1.5; + -webkit-line-clamp: 2; +} +#article-container figure.gallery-group .gallery-group-name:after { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 2px; + background: #fff; + content: ''; + -webkit-transition: -webkit-transform 0.35s; + -moz-transition: -moz-transform 0.35s; + -o-transition: -o-transform 0.35s; + -ms-transition: -ms-transform 0.35s; + transition: transform 0.35s; + -webkit-transform: translate3d(-100%, 0, 0); + -moz-transform: translate3d(-100%, 0, 0); + -o-transform: translate3d(-100%, 0, 0); + -ms-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); +} +#article-container .gallery-group-main { + overflow: auto; + padding: 0 0 16px; +} +#article-container .fj-gallery { + margin: 0 0 16px; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); +} +#article-container .fj-gallery .img-alt { + display: none; +} +blockquote.pullquote { + position: relative; + max-width: 45%; + font-size: 110%; +} +blockquote.pullquote.left { + float: left; + margin: 1em 0.5em 0 0; +} +blockquote.pullquote.right { + float: right; + margin: 1em 0 0 0.5em; +} +.video-container { + position: relative; + overflow: hidden; + margin-bottom: 16px; + padding-top: 56.25%; + height: 0; +} +.video-container iframe { + position: absolute; + top: 0; + left: 0; + margin-top: 0; + width: 100%; + height: 100%; +} +.hide-inline > .hide-button, +.hide-block > .hide-button { + display: inline-block; + padding: 5px 18px; + background: #49b1f5; + color: var(--white); +} +.hide-inline > .hide-button:hover, +.hide-block > .hide-button:hover { + background-color: var(--btn-hover-color); +} +.hide-inline > .hide-button.open, +.hide-block > .hide-button.open { + display: none; +} +.hide-inline > .hide-button.open + div, +.hide-block > .hide-button.open + div { + display: block; +} +.hide-inline > .hide-button.open + span, +.hide-block > .hide-button.open + span { + display: inline; +} +.hide-inline > .hide-content, +.hide-block > .hide-content { + display: none; +} +.hide-inline > .hide-button { + margin: 0 6px; +} +.hide-inline > .hide-content { + margin: 0 6px; +} +.hide-block { + margin: 0 0 16px; +} +.toggle { + margin-bottom: 20px; + border: 1px solid #f0f0f0; +} +.toggle > .toggle-button { + padding: 6px 15px; + background: #f0f0f0; + color: #1f2d3d; +} +.toggle > .toggle-content { + margin: 30px 24px; +} +#article-container .inline-img { + display: inline; + margin: 0 3px; + height: 1.1em; + vertical-align: text-bottom; +} +.hl-label { + padding: 2px 4px; + border-radius: 3px; + color: #fff; +} +.hl-label.default { + background-color: #777; +} +.hl-label.blue { + background-color: #428bca; +} +.hl-label.pink { + background-color: #ff69b4; +} +.hl-label.red { + background-color: #f00; +} +.hl-label.purple { + background-color: #6f42c1; +} +.hl-label.orange { + background-color: #ff8c00; +} +.hl-label.green { + background-color: #5cb85c; +} +.note { + position: relative; + margin: 0 0 20px; + padding: 15px; + border-radius: 3px; +} +.note.icon-padding { + padding-left: 3em; +} +.note > .note-icon { + position: absolute; + top: calc(50% - 0.5em); + left: 0.8em; + font-size: larger; +} +.note.blue:not(.disabled) { + border-left-color: #428bca !important; +} +.note.blue:not(.disabled).modern { + border-left-color: transparent !important; + color: #428bca; +} +.note.blue:not(.disabled):not(.simple) { + background: #e3eef7 !important; +} +.note.blue > .note-icon { + color: #428bca; +} +.note.pink:not(.disabled) { + border-left-color: #ff69b4 !important; +} +.note.pink:not(.disabled).modern { + border-left-color: transparent !important; + color: #ff69b4; +} +.note.pink:not(.disabled):not(.simple) { + background: #ffe9f4 !important; +} +.note.pink > .note-icon { + color: #ff69b4; +} +.note.red:not(.disabled) { + border-left-color: #f00 !important; +} +.note.red:not(.disabled).modern { + border-left-color: transparent !important; + color: #f00; +} +.note.red:not(.disabled):not(.simple) { + background: #ffd9d9 !important; +} +.note.red > .note-icon { + color: #f00; +} +.note.purple:not(.disabled) { + border-left-color: #6f42c1 !important; +} +.note.purple:not(.disabled).modern { + border-left-color: transparent !important; + color: #6f42c1; +} +.note.purple:not(.disabled):not(.simple) { + background: #e9e3f6 !important; +} +.note.purple > .note-icon { + color: #6f42c1; +} +.note.orange:not(.disabled) { + border-left-color: #ff8c00 !important; +} +.note.orange:not(.disabled).modern { + border-left-color: transparent !important; + color: #ff8c00; +} +.note.orange:not(.disabled):not(.simple) { + background: #ffeed9 !important; +} +.note.orange > .note-icon { + color: #ff8c00; +} +.note.green:not(.disabled) { + border-left-color: #5cb85c !important; +} +.note.green:not(.disabled).modern { + border-left-color: transparent !important; + color: #5cb85c; +} +.note.green:not(.disabled):not(.simple) { + background: #e7f4e7 !important; +} +.note.green > .note-icon { + color: #5cb85c; +} +.note.simple { + border: 1px solid #eee; + border-left-width: 5px; +} +.note.modern { + border: 1px solid transparent !important; + background-color: #f5f5f5; + color: #4c4948; +} +.note.flat { + border: initial; + border-left: 5px solid #eee; + background-color: #f9f9f9; + color: #4c4948; +} +.note h2, +.note h3, +.note h4, +.note h5, +.note h6 { + margin-top: 3px; + margin-bottom: 0; + padding-top: 0 !important; + border-bottom: initial; +} +.note p:first-child, +.note ul:first-child, +.note ol:first-child, +.note table:first-child, +.note pre:first-child, +.note blockquote:first-child, +.note img:first-child { + margin-top: 0 !important; +} +.note p:last-child, +.note ul:last-child, +.note ol:last-child, +.note table:last-child, +.note pre:last-child, +.note blockquote:last-child, +.note img:last-child { + margin-bottom: 0 !important; +} +.note:not(.no-icon) { + padding-left: 3em; +} +.note:not(.no-icon)::before { + position: absolute; + top: calc(50% - 0.95em); + left: 0.8em; + font-size: larger; +} +.note.default.flat { + background: #f7f7f7; +} +.note.default.modern { + border-color: #e1e1e1; + background: #f3f3f3; + color: #666; +} +.note.default.modern a:not(.btn) { + color: #666; +} +.note.default.modern a:not(.btn):hover { + color: #454545; +} +.note.default:not(.modern) { + border-left-color: #777; +} +.note.default:not(.modern) h2, +.note.default:not(.modern) h3, +.note.default:not(.modern) h4, +.note.default:not(.modern) h5, +.note.default:not(.modern) h6 { + color: #777; +} +.note.default:not(.no-icon)::before { + content: '\f0a9'; +} +.note.default:not(.no-icon):not(.modern)::before { + color: #777; +} +.note.primary.flat { + background: #f5f0fa; +} +.note.primary.modern { + border-color: #e1c2ff; + background: #f3daff; + color: #6f42c1; +} +.note.primary.modern a:not(.btn) { + color: #6f42c1; +} +.note.primary.modern a:not(.btn):hover { + color: #453298; +} +.note.primary:not(.modern) { + border-left-color: #6f42c1; +} +.note.primary:not(.modern) h2, +.note.primary:not(.modern) h3, +.note.primary:not(.modern) h4, +.note.primary:not(.modern) h5, +.note.primary:not(.modern) h6 { + color: #6f42c1; +} +.note.primary:not(.no-icon)::before { + content: '\f055'; +} +.note.primary:not(.no-icon):not(.modern)::before { + color: #6f42c1; +} +.note.info.flat { + background: #eef7fa; +} +.note.info.modern { + border-color: #b3e5ef; + background: #d9edf7; + color: #31708f; +} +.note.info.modern a:not(.btn) { + color: #31708f; +} +.note.info.modern a:not(.btn):hover { + color: #215761; +} +.note.info:not(.modern) { + border-left-color: #428bca; +} +.note.info:not(.modern) h2, +.note.info:not(.modern) h3, +.note.info:not(.modern) h4, +.note.info:not(.modern) h5, +.note.info:not(.modern) h6 { + color: #428bca; +} +.note.info:not(.no-icon)::before { + content: '\f05a'; +} +.note.info:not(.no-icon):not(.modern)::before { + color: #428bca; +} +.note.success.flat { + background: #eff8f0; +} +.note.success.modern { + border-color: #d0e6be; + background: #dff0d8; + color: #3c763d; +} +.note.success.modern a:not(.btn) { + color: #3c763d; +} +.note.success.modern a:not(.btn):hover { + color: #32562c; +} +.note.success:not(.modern) { + border-left-color: #5cb85c; +} +.note.success:not(.modern) h2, +.note.success:not(.modern) h3, +.note.success:not(.modern) h4, +.note.success:not(.modern) h5, +.note.success:not(.modern) h6 { + color: #5cb85c; +} +.note.success:not(.no-icon)::before { + content: '\f058'; +} +.note.success:not(.no-icon):not(.modern)::before { + color: #5cb85c; +} +.note.warning.flat { + background: #fdf8ea; +} +.note.warning.modern { + border-color: #fae4cd; + background: #fcf4e3; + color: #8a6d3b; +} +.note.warning.modern a:not(.btn) { + color: #8a6d3b; +} +.note.warning.modern a:not(.btn):hover { + color: #714f30; +} +.note.warning:not(.modern) { + border-left-color: #f0ad4e; +} +.note.warning:not(.modern) h2, +.note.warning:not(.modern) h3, +.note.warning:not(.modern) h4, +.note.warning:not(.modern) h5, +.note.warning:not(.modern) h6 { + color: #f0ad4e; +} +.note.warning:not(.no-icon)::before { + content: '\f06a'; +} +.note.warning:not(.no-icon):not(.modern)::before { + color: #f0ad4e; +} +.note.danger.flat { + background: #fcf1f2; +} +.note.danger.modern { + border-color: #ebcdd2; + background: #f2dfdf; + color: #a94442; +} +.note.danger.modern a:not(.btn) { + color: #a94442; +} +.note.danger.modern a:not(.btn):hover { + color: #84333f; +} +.note.danger:not(.modern) { + border-left-color: #d9534f; +} +.note.danger:not(.modern) h2, +.note.danger:not(.modern) h3, +.note.danger:not(.modern) h4, +.note.danger:not(.modern) h5, +.note.danger:not(.modern) h6 { + color: #d9534f; +} +.note.danger:not(.no-icon)::before { + content: '\f056'; +} +.note.danger:not(.no-icon):not(.modern)::before { + color: #d9534f; +} +#article-container .tabs { + position: relative; + margin: 0 0 20px; + border-right: 1px solid var(--tab-border-color); + border-bottom: 1px solid var(--tab-border-color); + border-left: 1px solid var(--tab-border-color); +} +#article-container .tabs > .nav-tabs { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-lines: multiple; + -moz-box-lines: multiple; + -o-box-lines: multiple; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin: 0; + padding: 0; + background: var(--tab-botton-bg); +} +#article-container .tabs > .nav-tabs > .tab { + margin: 0; + padding: 0; + list-style: none; +} +@media screen and (max-width: 768px) { + #article-container .tabs > .nav-tabs > .tab { + -webkit-box-flex: 1; + -moz-box-flex: 1; + -o-box-flex: 1; + -ms-box-flex: 1; + box-flex: 1; + -webkit-flex-grow: 1; + flex-grow: 1; + } +} +#article-container .tabs > .nav-tabs > .tab button { + display: block; + padding: 8px 18px; + width: 100%; + border-top: 2px solid var(--tab-border-color); + background: var(--tab-botton-bg); + color: var(--tab-botton-color); + line-height: 2; + -webkit-transition: all 0.4s; + -moz-transition: all 0.4s; + -o-transition: all 0.4s; + -ms-transition: all 0.4s; + transition: all 0.4s; +} +#article-container .tabs > .nav-tabs > .tab button i { + width: 1.5em; +} +#article-container .tabs > .nav-tabs > .tab.active button { + border-top: 2px solid #49b1f5; + background: var(--tab-button-active-bg); + cursor: default; +} +#article-container .tabs > .nav-tabs > .tab:not(.active) button:hover { + border-top: 2px solid var(--tab-button-hover-bg); + background: var(--tab-button-hover-bg); +} +#article-container .tabs > .tab-contents .tab-item-content { + position: relative; + display: none; + padding: 36px 24px; +} +@media screen and (max-width: 768px) { + #article-container .tabs > .tab-contents .tab-item-content { + padding: 24px 14px; + } +} +#article-container .tabs > .tab-contents .tab-item-content.active { + display: block; + -webkit-animation: tabshow 0.5s; + -moz-animation: tabshow 0.5s; + -o-animation: tabshow 0.5s; + -ms-animation: tabshow 0.5s; + animation: tabshow 0.5s; +} +#article-container .tabs .tab-to-top { + position: relative; + display: block; + margin: 0 0 0 auto; + color: #99a9bf; +} +@-moz-keyframes tabshow { + 0% { + -webkit-transform: translateY(15px); + -moz-transform: translateY(15px); + -o-transform: translateY(15px); + -ms-transform: translateY(15px); + transform: translateY(15px); + } + 100% { + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-webkit-keyframes tabshow { + 0% { + -webkit-transform: translateY(15px); + -moz-transform: translateY(15px); + -o-transform: translateY(15px); + -ms-transform: translateY(15px); + transform: translateY(15px); + } + 100% { + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@-o-keyframes tabshow { + 0% { + -webkit-transform: translateY(15px); + -moz-transform: translateY(15px); + -o-transform: translateY(15px); + -ms-transform: translateY(15px); + transform: translateY(15px); + } + 100% { + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +@keyframes tabshow { + 0% { + -webkit-transform: translateY(15px); + -moz-transform: translateY(15px); + -o-transform: translateY(15px); + -ms-transform: translateY(15px); + transform: translateY(15px); + } + 100% { + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} +#article-container .timeline { + margin: 0 0 20px 10px; + padding: 14px 20px 5px; + border-left: 2px solid var(--timeline-color, #49b1f5); +} +#article-container .timeline.blue { + --timeline-color: #428bca; + --timeline-bg: rgba(66,139,202, 0.2); +} +#article-container .timeline.pink { + --timeline-color: #ff69b4; + --timeline-bg: rgba(255,105,180, 0.2); +} +#article-container .timeline.red { + --timeline-color: #f00; + --timeline-bg: rgba(255,0,0, 0.2); +} +#article-container .timeline.purple { + --timeline-color: #6f42c1; + --timeline-bg: rgba(111,66,193, 0.2); +} +#article-container .timeline.orange { + --timeline-color: #ff8c00; + --timeline-bg: rgba(255,140,0, 0.2); +} +#article-container .timeline.green { + --timeline-color: #5cb85c; + --timeline-bg: rgba(92,184,92, 0.2); +} +#article-container .timeline .timeline-item { + margin: 0 0 15px; +} +#article-container .timeline .timeline-item:hover .item-circle:before { + border-color: var(--timeline-color, #49b1f5); +} +#article-container .timeline .timeline-item.headline .timeline-item-title .item-circle > p { + font-weight: 600; + font-size: 1.2em; +} +#article-container .timeline .timeline-item.headline .timeline-item-title .item-circle:before { + left: -28px; + border: 4px solid var(--timeline-color, #49b1f5); +} +#article-container .timeline .timeline-item.headline:hover .item-circle:before { + border-color: var(--pseudo-hover); +} +#article-container .timeline .timeline-item .timeline-item-title { + position: relative; +} +#article-container .timeline .timeline-item .item-circle:before { + position: absolute; + top: 50%; + left: -27px; + width: 6px; + height: 6px; + border: 3px solid var(--pseudo-hover); + border-radius: 50%; + background: var(--card-bg); + content: ''; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; + -webkit-transform: translate(0, -50%); + -moz-transform: translate(0, -50%); + -o-transform: translate(0, -50%); + -ms-transform: translate(0, -50%); + transform: translate(0, -50%); +} +#article-container .timeline .timeline-item .item-circle > p { + margin: 0 0 8px; + font-weight: 500; +} +#article-container .timeline .timeline-item .timeline-item-content { + position: relative; + padding: 12px 15px; + border-radius: 8px; + background: var(--timeline-bg, #e4f3fd); + font-size: 0.93em; +} +#article-container .timeline .timeline-item .timeline-item-content > :last-child { + margin-bottom: 0; +} +#article-container .timeline + .timeline { + margin-top: -20px; +} +[data-theme='dark'] { + --global-bg: #0d0d0d; + --font-color: rgba(255,255,255,0.7); + --hr-border: rgba(255,255,255,0.4); + --hr-before-color: rgba(255,255,255,0.7); + --search-bg: #121212; + --search-input-color: rgba(255,255,255,0.7); + --search-result-title: rgba(255,255,255,0.9); + --preloader-bg: #0d0d0d; + --preloader-color: rgba(255,255,255,0.7); + --tab-border-color: #2c2c2c; + --tab-botton-bg: #2c2c2c; + --tab-botton-color: rgba(255,255,255,0.7); + --tab-button-hover-bg: #383838; + --tab-button-active-bg: #121212; + --card-bg: #121212; + --sidebar-bg: #121212; + --btn-hover-color: #787878; + --btn-color: rgba(255,255,255,0.7); + --btn-bg: #1f1f1f; + --text-bg-hover: #383838; + --light-grey: rgba(255,255,255,0.7); + --dark-grey: rgba(255,255,255,0.2); + --white: rgba(255,255,255,0.9); + --text-highlight-color: rgba(255,255,255,0.9); + --blockquote-color: rgba(255,255,255,0.7); + --blockquote-bg: #2c2c2c; + --reward-pop: #2c2c2c; + --toc-link-color: rgba(255,255,255,0.6); + --hl-color: rgba(255,255,255,0.7); + --hl-bg: #171717; + --hltools-bg: #1a1a1a; + --hltools-color: #90a4ae; + --hlnumber-bg: #171717; + --hlnumber-color: rgba(255,255,255,0.4); + --hlscrollbar-bg: #1f1f1f; + --hlexpand-bg: linear-gradient(180deg, rgba(23,23,23,0.6), rgba(23,23,23,0.9)); + --scrollbar-color: #1f1f1f; + --timeline-bg: #1f1f1f; +} +[data-theme='dark'] #web_bg:before, +[data-theme='dark'] #footer:before, +[data-theme='dark'] #page-header:before { + position: absolute; + width: 100%; + height: 100%; + background-color: rgba(0,0,0,0.7); + content: ''; +} +[data-theme='dark'] #article-container code { + background: #2c2c2c; +} +[data-theme='dark'] #article-container pre > code { + background: #171717; +} +[data-theme='dark'] #article-container figure.highlight { + -webkit-box-shadow: none; + box-shadow: none; +} +[data-theme='dark'] #article-container .note code { + background: rgba(27,31,35,0.05); +} +[data-theme='dark'] #article-container .aplayer { + filter: brightness(0.8); +} +[data-theme='dark'] #article-container kbd { + border-color: #696969; + background-color: #525252; + color: #e2f1ff; +} +[data-theme='dark'] #page-header.nav-fixed > #nav, +[data-theme='dark'] #page-header.not-top-img > #nav { + background: rgba(18,18,18,0.8); + -webkit-box-shadow: 0 5px 6px -5px rgba(133,133,133,0); + box-shadow: 0 5px 6px -5px rgba(133,133,133,0); +} +[data-theme='dark'] #post-comment #comment-switch { + background: #2c2c2c !important; +} +[data-theme='dark'] #post-comment #comment-switch .switch-btn { + filter: brightness(0.8); +} +[data-theme='dark'] .note { + filter: brightness(0.8); +} +[data-theme='dark'] .hide-button, +[data-theme='dark'] .btn-beautify, +[data-theme='dark'] .hl-label, +[data-theme='dark'] .post-outdate-notice, +[data-theme='dark'] .error-img, +[data-theme='dark'] #article-container iframe, +[data-theme='dark'] .gist, +[data-theme='dark'] .ads-wrap { + filter: brightness(0.8); +} +[data-theme='dark'] img { + filter: blur(0) brightness(0.8); +} +[data-theme='dark'] #aside-content .aside-list > .aside-list-item:not(:last-child) { + border-bottom: 1px dashed rgba(255,255,255,0.1); +} +[data-theme='dark'] #gitalk-container { + filter: brightness(0.8); +} +[data-theme='dark'] #gitalk-container svg { + fill: rgba(255,255,255,0.9) !important; +} +[data-theme='dark'] #disqusjs #dsqjs:hover, +[data-theme='dark'] #disqusjs #dsqjs:focus, +[data-theme='dark'] #disqusjs #dsqjs .dsqjs-tab-active, +[data-theme='dark'] #disqusjs #dsqjs .dsqjs-no-comment { + color: rgba(255,255,255,0.7); +} +[data-theme='dark'] #disqusjs #dsqjs .dsqjs-order-label { + background-color: #1f1f1f; +} +[data-theme='dark'] #disqusjs #dsqjs .dsqjs-post-body { + color: rgba(255,255,255,0.7); +} +[data-theme='dark'] #disqusjs #dsqjs .dsqjs-post-body code, +[data-theme='dark'] #disqusjs #dsqjs .dsqjs-post-body pre { + background: #2c2c2c; +} +[data-theme='dark'] #disqusjs #dsqjs .dsqjs-post-body blockquote { + color: rgba(255,255,255,0.7); +} +[data-theme='dark'] #artitalk_main #lazy { + background: #121212; +} +[data-theme='dark'] #operare_artitalk .c2 { + background: #121212; +} +@media screen and (max-width: 900px) { + [data-theme='dark'] #card-toc { + background: #1f1f1f; + } +} +.read-mode { + --font-color: #4c4948; + --readmode-light-color: #fff; + --white: #4c4948; + --light-grey: #4c4948; + --gray: #d6dbdf; + --hr-border: #d6dbdf; + --hr-before-color: #b9c2c9; + --highlight-bg: #f7f7f7; + --exit-btn-bg: #c0c0c0; + --exit-btn-color: #fff; + --exit-btn-hover: #8d8d8d; + --pseudo-hover: none; +} +[data-theme='dark'] .read-mode { + --font-color: rgba(255,255,255,0.7); + --readmode-light-color: #0d0d0d; + --white: rgba(255,255,255,0.9); + --light-grey: rgba(255,255,255,0.7); + --gray: rgba(255,255,255,0.7); + --hr-border: rgba(255,255,255,0.5); + --hr-before-color: rgba(255,255,255,0.7); + --highlight-bg: #171717; + --exit-btn-bg: #1f1f1f; + --exit-btn-color: rgba(255,255,255,0.9); + --exit-btn-hover: #525252; +} +.read-mode { + background: var(--readmode-light-color); +} +.read-mode .exit-readmode { + position: fixed; + top: 30px; + right: 30px; + z-index: 100; + width: 40px; + height: 40px; + border-radius: 8px; + background: var(--exit-btn-bg); + color: var(--exit-btn-color); + font-size: 16px; + -webkit-transition: background 0.3s; + -moz-transition: background 0.3s; + -o-transition: background 0.3s; + -ms-transition: background 0.3s; + transition: background 0.3s; +} +@media screen and (max-width: 768px) { + .read-mode .exit-readmode { + top: initial; + bottom: 30px; + } +} +.read-mode .exit-readmode:hover { + background: var(--exit-btn-hover); +} +.read-mode #aside-content { + display: none; +} +.read-mode #page-header.post-bg { + background-color: transparent; + background-image: none !important; +} +.read-mode #page-header.post-bg:before { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); +} +.read-mode #page-header.post-bg > #post-info { + text-align: center; +} +.read-mode #post { + margin: 0 auto; + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.read-mode #post:hover { + -webkit-box-shadow: none; + box-shadow: none; +} +.read-mode > canvas { + display: none !important; +} +.read-mode .highlight-tools, +.read-mode #footer, +.read-mode #post > *:not(#post-info):not(.post-content), +.read-mode #nav, +.read-mode .post-outdate-notice, +.read-mode #web_bg, +.read-mode #rightside, +.read-mode .not-top-img { + display: none !important; +} +.read-mode #article-container a { + color: #99a9bf; +} +.read-mode #article-container pre, +.read-mode #article-container .highlight:not(.js-file-line-container) { + background: var(--highlight-bg) !important; +} +.read-mode #article-container pre *, +.read-mode #article-container .highlight:not(.js-file-line-container) * { + color: var(--font-color) !important; +} +.read-mode #article-container figure.highlight { + border-radius: 0 !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +.read-mode #article-container figure.highlight > :not(.highlight-tools) { + display: block !important; +} +.read-mode #article-container figure.highlight .line:before { + color: var(--font-color) !important; +} +.read-mode #article-container figure.highlight .hljs { + background: var(-highlight-bg) !important; +} +.read-mode #article-container h1, +.read-mode #article-container h2, +.read-mode #article-container h3, +.read-mode #article-container h4, +.read-mode #article-container h5, +.read-mode #article-container h6 { + padding: 0; +} +.read-mode #article-container h1:before, +.read-mode #article-container h2:before, +.read-mode #article-container h3:before, +.read-mode #article-container h4:before, +.read-mode #article-container h5:before, +.read-mode #article-container h6:before { + content: ''; +} +.read-mode #article-container h1:hover, +.read-mode #article-container h2:hover, +.read-mode #article-container h3:hover, +.read-mode #article-container h4:hover, +.read-mode #article-container h5:hover, +.read-mode #article-container h6:hover { + padding: 0; +} +.read-mode #article-container ul:hover:before, +.read-mode #article-container li:hover:before, +.read-mode #article-container ol:hover:before { + -webkit-transform: none !important; + -moz-transform: none !important; + -o-transform: none !important; + -ms-transform: none !important; + transform: none !important; +} +.read-mode #article-container ol:before, +.read-mode #article-container li:before { + background: transparent !important; + color: var(--font-color) !important; +} +.read-mode #article-container ul >li:before { + border-color: var(--gray) !important; +} +.read-mode #article-container .tabs { + border: 2px solid var(--tab-border-color); +} +.read-mode #article-container .tabs > .nav-tabs { + background: transparent; +} +.read-mode #article-container .tabs > .nav-tabs > .tab { + border-bottom: 0; +} +.read-mode #article-container .tabs > .nav-tabs > .tab button { + border-top: none !important; + background: transparent; +} +.read-mode #article-container .tabs > .nav-tabs > .tab button:hover { + background: none !important; +} +.read-mode #article-container .tabs > .nav-tabs > .tab.active button { + text-decoration: underline; +} +.read-mode #article-container .tabs > .tab-contents .tab-item-content.active { + -webkit-animation: none; + -moz-animation: none; + -o-animation: none; + -ms-animation: none; + animation: none; +} +.read-mode #article-container code { + color: var(--font-color); +} +.read-mode #article-container blockquote { + border-color: var(--gray); + background-color: var(--readmode-light-color); +} +.read-mode #article-container kbd { + border: 1px solid var(--gray); + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; + color: var(--font-color); +} +.read-mode #article-container .hide-toggle { + border: 1px solid var(--gray) !important; +} +.read-mode #article-container .hide-button, +.read-mode #article-container .btn-beautify, +.read-mode #article-container .hl-label { + border: 1px solid var(--gray) !important; + background: var(--readmode-light-color) !important; + color: var(--font-color) !important; +} +.read-mode #article-container .note { + border: 2px solid var(--gray); + border-left-color: var(--gray) !important; + filter: none; + background-color: var(--readmode-light-color) !important; + color: var(--font-color); +} +.read-mode #article-container .note:before, +.read-mode #article-container .note .note-icon { + color: var(--font-color); +} +/* root伪类指定全局颜色 */ +:root { + --blue-custom: #5ea6e5; + --loading-color: rgba(207, 246, 247, 0.92); + --border-color: #c9c9c9; + --color-red: rgb(241, 71, 71); + --color-orange: rgb(241, 162, 71); + --color-yellow: rgb(241, 238, 71); + --color-purple: rgb(179, 71, 241); + --color-blue: rgb(102, 204, 255); + --color-gray: rgb(226, 226, 226); + --color-green: rgb(57, 197, 187); + --color-whitegray: rgb(241, 241, 241); + --color-pink: rgb(237, 112, 155); + --color-black: rgb(0, 0, 0); + --color-darkblue: rgb(97, 100, 159); + --color-heoblue: rgb(66, 90, 239); + --btn-bg: var(--theme-color) !important; + --scrollbar-color: var(--theme-color) !important; + --border-style: 1px solid rgba(169, 169, 169, 0.7); + /* 代码框行数背景色 */ + --hlnumber-bg: #282c34; + /* 代码框顶部背景色 */ + --hltools-bg: #1c1c1c; + /* 代码框背景色 */ + --hl-bg: #282c34; +} + +/* 滚动条样式 */ +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background-color: rgba(73, 177, 245, 0.2); + border-radius: 2em; +} + +::-webkit-scrollbar-thumb { + background-color: var(--theme-color); + background-image: -webkit-linear-gradient( + 45deg, + rgba(255, 255, 255, 0.4) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.4) 50%, + rgba(255, 255, 255, 0.4) 75%, + transparent 75%, + transparent + ); + border-radius: 2em; +} + +::-webkit-scrollbar-corner { + background-color: transparent; +} + +::-moz-selection { + color: #fff; + background-color: var(--theme-color) !important; +} + +/* 代码框底部滚动条 */ +#article-container figure.highlight > ::-webkit-scrollbar-thumb { + background-color: #35393f !important; + background-image: -webkit-linear-gradient( + 45deg, + rgba(255, 255, 255, 0.1) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.1) 50%, + rgba(255, 255, 255, 0.1) 75%, + transparent 75%, + transparent + ) !important; + border-radius: 2em !important; +} + +/* 字体引入 */ +@font-face { + font-family: BlogFont; + src: url(/fonts/BlogFont.woff2); + font-display: swap; +} + +@font-face { + font-family: YSHST; + src: url(/fonts/优设好身体.woff2); + font-display: swap; +} + +@font-face { + font-family: MiSans; + src: url(/fonts/MiSans.woff2); + font-display: swap; +} + +@font-face { + font-family: HYTMR; + src: url(/fonts/HYTangMeiRen55W.woff2); + font-display: swap; +} + +@font-face { + font-family: LXGW; + src: url(/fonts/霞鹜文楷.woff2); + font-display: swap; +} + +@font-face { + font-family: TTQHB; + src: url(/fonts/甜甜圈海报字体.woff2); + font-display: swap; +} + +@font-face { + font-family: Consolas_1; + src: url(/fonts/Consolas.woff2); + font-display: swap; +} + +@font-face { + font-family: ZhuZiAWan; + src: url(/fonts/ZhuZiAWan2.woff2); + font-display: swap; +} + +/* 特定部件字体调用 */ +div#menus { + font-weight: bold !important; +} +h1#site-title { + font-size: 3em !important; + font-weight: bold !important; +} +a.article-title, +a.blog-slider__title, +a.categoryBar-list-link, +h1.post-title { + font-weight: bold !important; +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 3em; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-zhongbiao::before { + color: #f7c768; +} + +/* 解决artitalk的图标问题 */ +#uploadSource > svg { + width: 1.19em; + height: 1.5em; +} + +/* 滚动显示的标题居中 */ +center#name-container { + position: absolute !important; + width: fit-content !important; + left: 42% !important; + /* transform: translateX(-50%) !important; */ + /* transform: translateY(-100%) !important; */ +} +@media screen and (max-width: 768px) { + center#name-container { + display: none; + } +} + +/* 去掉蓝色条 */ +/* #nav *::after{ + background-color: transparent!important; +} */ + +/* 一级菜单居中 */ +#nav .menus_items { + /* 这个带不带都可以,本来就是inline */ + display: inline; + position: absolute !important; + width: max-content !important; + left: 50% !important; + transform: translateX(-50%) !important; +} +#nav .menus_items .menus_item { + padding: 0 0 0 8px !important; +} +/* 子菜单横向展示 */ +#nav .menus_items .menus_item:hover .menus_item_child { + display: flex !important; +} +/* 这里的2是代表导航栏的第二个元素,即有子菜单的元素,可以按自己需求修改 */ +.menus_items .menus_item:nth-child(2) .menus_item_child { + left: -95px; +} +.menus_items .menus_item:nth-child(3) .menus_item_child { + left: -103px; +} +.menus_items .menus_item:nth-child(4) .menus_item_child { + left: -102px; +} +.menus_items .menus_item:nth-child(5) .menus_item_child { + left: -117px; +} +.menus_items .menus_item:nth-child(6) .menus_item_child { + left: -133px; +} +.menus_items .menus_item:nth-child(7) .menus_item_child { + left: -105px; +} + +/*top-img黑色透明玻璃效果移除,不建议加,除非你执着于完全一图流或者背景图对比色明显 */ +/* #page-header:not(.not-top-img):before { + background-color: transparent !important; +} */ + +/* 置顶滚动圆角 */ +.blog-slider__img img { + border-radius: 20px !important; +} + +/* 首页文章卡片 */ +#recent-posts > .recent-post-item { + background: var(--trans-light); + backdrop-filter: var(--backdrop-filter); + border-radius: 25px; + border: var(--border-style); +} + +/* 首页侧栏卡片 */ +#aside-content .card-widget { + background: var(--trans-light); + backdrop-filter: var(--backdrop-filter); + border-radius: 18px; + border: var(--border-style); + padding: 20px; +} + +/* 文章页、归档页、普通页面 */ +div#post, +div#page, +div#archive { + background: var(--trans-light); + backdrop-filter: var(--backdrop-filter); + border: var(--border-style); + border-radius: 20px; +} + +/* 导航栏颜色 */ +#page-header.nav-fixed #nav { + background: linear-gradient(60deg, #ffd7e4 0, #c8f1ff 93%); + opacity: 0.95; + backdrop-filter: var(--backdrop-filter); +} +[data-theme="dark"] #page-header.nav-fixed #nav { + background: rgba(0, 0, 0, 0.95) !important; +} + +/* 夜间模式遮罩 */ +[data-theme="dark"] #recent-posts > .recent-post-item, +[data-theme="dark"] #aside-content .card-widget, +[data-theme="dark"] div#post, +[data-theme="dark"] div#archive, +[data-theme="dark"] div#page { + background: var(--trans-dark); +} + +/* 白天模式头图与页脚遮罩 */ +[data-theme="light"] #page-header:before, +[data-theme="light"] #footer::before { + background-color: rgba(0, 0, 0, 0.18) !important; + z-index: -3; +} + +/* 头图隐藏 */ +#page-header { + background: transparent !important; +} +/* 夜间模式页脚遮罩隐藏 */ +[data-theme="dark"] #footer::before { + background: transparent !important; +} +/* 夜间模式页脚头部遮罩隐藏 */ +[data-theme="dark"] #page-header::before { + background: transparent !important; +} + +/* 阅读模式 */ +.read-mode #aside-content .card-widget { + background: rgba(158, 204, 171, 0.5) !important; +} +.read-mode div#post { + background: rgba(158, 204, 171, 0.5) !important; +} + +/* 夜间模式下的阅读模式 */ +[data-theme="dark"] .read-mode #aside-content .card-widget { + background: rgba(25, 25, 25, 0.9) !important; + color: #ffffff; +} +[data-theme="dark"] .read-mode div#post { + background: rgba(25, 25, 25, 0.9) !important; + color: #ffffff; +} + +/* 评论框 */ +.vwrap { + box-shadow: 2px 2px 5px #bbb; + background: rgba(255, 255, 255, 0.3); + border-radius: 8px; + padding: 30px; + margin: 30px 0px 30px 0px; +} + +/* 设置评论框 */ +.vcard { + box-shadow: 2px 2px 5px #bbb; + background: rgba(255, 255, 255, 0.3); + border-radius: 8px; + padding: 30px; + margin: 30px 0px 0px 0px; +} + +/* 超链接样式 参考heo */ +#article-container + a:not(.fancybox, .imgbox, .swf, .box, .pimgbox, .magnet_link) { + text-decoration: none; + /* border-bottom: 2px solid var(--theme-color) */ + /* border-radius: 4px 4px 0 0 */ +} + +#article-container + a:not( + .fancybox, + .imgbox, + .swf, + .box, + .pimgbox, + .magnet_link, + .gallery_link + ):hover { + text-decoration: none; + color: #fefefe; + background: var(--text-bg-hover) !important; + border-radius: 4px; + box-shadow: 0 8px 12px -3px #4259ef23; + padding: 2px; + transition: all 0.3s ease-in-out; +} + +#article-container #hpp_talk p img { + display: inline; +} + +/* 代码框主题 */ +#article-container figure.highlight { + border-radius: 10px; +} +[data-theme="dark"] #article-container figure.highlight { + border: 0.5px solid #404040; +} + +/* 鼠标样式 */ +#cursor { + position: fixed; + width: 16px; + height: 16px; + background: var(--theme-color) !important; + border-radius: 8px; + opacity: 0.25; + z-index: 10086; + pointer-events: none; + transition: 0.2s ease-in-out; + transition-property: background, opacity, transform; +} + +#cursor.hidden { + opacity: 0; +} + +#cursor.hover { + opacity: 0.1; + transform: scale(2.5); + -webkit-transform: scale(2.5); + -moz-transform: scale(2.5); + -ms-transform: scale(2.5); + -o-transform: scale(2.5); +} + +#cursor.active { + opacity: 0.5; + transform: scale(0.5); + -webkit-transform: scale(0.5); + -moz-transform: scale(0.5); + -ms-transform: scale(0.5); + -o-transform: scale(0.5); +} + +/* twikoo评论美化 */ +/* 自定义twikoo评论输入框高度 */ +#twikoo .el-textarea textarea { + min-height: 120px !important; + background-size: 90px; +} + +/* 自定义表情优化 */ +#twikoo .OwO-body { + max-width: 100% !important; +} +/* 选择某个框 #twikoo .OwO .OwO-body .OwO-items:nth-child(1) */ +#twikoo .OwO .OwO-body .OwO-items { + max-height: 250px !important; +} + +.OwO .OwO-body .OwO-items-image .OwO-item { + max-width: calc(9% - 10px); + box-sizing: content-box; +} +.OwO .OwO-body .OwO-items-image .OwO-item[title|="Heybox"], +.OwO .OwO-body .OwO-items-image .OwO-item[title|="Tieba"], +.OwO .OwO-body .OwO-items-show .OwO-item[title*="bilibili"] { + max-width: calc(7% - 10px) !important; + box-sizing: content-box; +} + +#twikoo .OwO-items li img { + width: 100% !important; +} + +.tk-comment .vemoji[alt|="Menhera"], +.tk-comment .tk-owo-emotion[alt*="Menhera"], +.tk-comment .vemoji[alt|="Snow"], +.tk-comment .tk-owo-emotion[alt*="Snow"], +.tk-comment .vemoji[alt|="Sweetie"], +.tk-comment .tk-owo-emotion[alt*="Sweetie"], +.tk-comment .vemoji[alt|="Tsuri"], +.tk-comment .tk-owo-emotion[alt*="Tsuri"], +.tk-comment .vemoji[alt|="Yurui"], +.tk-comment .tk-owo-emotion[alt*="Yurui"] { + max-width: 120px !important; + max-height: 120px !important; + width: 120px; + margin: 8px 1px; + display: block !important; +} + +/* 手机端适配 */ +@media screen and (max-width: 768px) { + .tk-comment .vemoji[alt|="Menhera"], + .tk-comment .tk-owo-emotion[alt*="Menhera"], + .tk-comment .vemoji[alt|="Snow"], + .tk-comment .tk-owo-emotion[alt*="Snow"], + .tk-comment .vemoji[alt|="Sweetie"], + .tk-comment .tk-owo-emotion[alt*="Sweetie"], + .tk-comment .vemoji[alt|="Tsuri"], + .tk-comment .tk-owo-emotion[alt*="Tsuri"], + .tk-comment .vemoji[alt|="Yurui"], + .tk-comment .tk-owo-emotion[alt*="Yurui"] { + max-width: calc(100% - 30px) !important; + max-height: calc(100% - 30px) !important; + } + .OwO .OwO-body .OwO-items-image .OwO-item[title*="Menhera"], + .OwO .OwO-body .OwO-items-image .OwO-item[title*="Snow"], + .OwO .OwO-body .OwO-items-image .OwO-item[title*="Sweetie"], + .OwO .OwO-body .OwO-items-image .OwO-item[title*="Tsuri"], + .OwO .OwO-body .OwO-items-image .OwO-item[title*="Yurui"] { + max-width: calc(33% - 10px); + box-sizing: border-box; + } + .OwO .OwO-body .OwO-items-image .OwO-item[title*="Heybox"], + .OwO .OwO-body .OwO-items-image .OwO-item[title*="bilibili"], + .OwO .OwO-body .OwO-items-image .OwO-item[title*="Tieba"], + .OwO .OwO-body .OwO-items-image .OwO-item[title*="QQ"] { + max-width: calc(18% - 10px) !important; + box-sizing: content-box; + } +} + +/* 右下角闭眼 */ +.el-textarea__inner { + background-image: url(/assets/open.webp) !important; +} +.el-textarea__inner:focus { + background-image: url(/assets/close.webp) !important; +} + +/* 调整楼中楼样式 ,整体左移,贴合气泡化效果 */ +.tk-replies { + left: -70px; + width: calc(100% + 70px); +} +/* 头像宽度调整 rem单位与全局字体大小挂钩,需配合自己情况调整大小以保证头像显示完整*/ +.tk-replies .tk-avatar { + width: 2.5rem !important; + height: 2.5rem !important; +} +.tk-replies .tk-avatar img { + width: 2.5rem !important; + height: 2.5rem !important; +} +/* 回复框左移,避免窄屏时出框 */ +.tk-comments-container .tk-submit { + position: relative; + left: -70px; +} +/* 评论块气泡化修改 */ +.tk-content { + /* linear-gradient(to bottom, #2193b0, #6dd5ed); */ + background: linear-gradient( + to top, + #4568dc, + #b06ab3 + ); /*默认模式访客气泡配色*/ + padding: 10px; + color: #fff; /*默认模式访客气泡字体配色*/ + border-radius: 10px; + font-size: 16px !important; + width: fit-content; + max-width: 100%; + position: relative !important; + overflow: visible !important; + max-height: none !important; +} +/* 修复图片出框 */ +.tk-content img { + max-width: 100% !important; +} +/* 修复过长文本出框 */ +.tk-content pre { + white-space: pre-wrap; + word-wrap: break-word; +} +.tk-content a { + color: #eeecaa; /*默认模式超链接配色*/ +} +.tk-content::before { + content: ""; + width: 0; + height: 0; + position: absolute; + top: 20px; + left: -13px; + border-top: 2px solid transparent; + border-bottom: 20px solid transparent; + border-right: 15px solid transparent; /*默认模式访客气泡小三角配色*/ + border-left: 0px solid transparent; +} +.tk-master .tk-content { + background: linear-gradient( + to top, + #43cea2, + #185a9d + ); /*默认模式博主气泡配色*/ + color: #fff; /*默认模式博主气泡字体配色*/ + width: fit-content; + max-width: 100%; +} +.tk-master .tk-content a { + color: #eeecaa; +} +.tk-master .tk-content::before { + content: ""; + width: 0; + height: 0; + position: absolute; + top: 20px; + left: -13px; + border-top: 2px solid transparent; + border-bottom: 20px solid transparent; + border-right: 15px solid transparent; /*默认模式博主气泡小三角配色*/ + border-left: 0px solid transparent; +} +.tk-row[data-v-d82ce9a0] { + max-width: 100%; + width: fit-content; +} +.tk-avatar { + border-radius: 50%; + margin-top: 10px; +} + +/* 夜间模式配色,具体比照上方默认模式class */ +[data-theme="dark"] .tk-content { + background: #000; + color: #fff; +} +[data-theme="dark"] .tk-content a { + color: #dfa036; +} +[data-theme="dark"] .tk-content::before { + border-right: 15px solid #000; +} +[data-theme="dark"] .tk-master .tk-content { + background: #000; + color: #fff; +} +[data-theme="dark"] .tk-master .tk-content a { + color: #dfa036; +} +[data-theme="dark"] .tk-master .tk-content::before { + border-top: 2px solid transparent; + border-bottom: 20px solid transparent; + border-right: 15px solid #000; + border-left: 0px solid transparent; +} +/* 自适应内容 */ +@media screen and (min-width: 1024px) { + /* 设置宽度上限,避免挤压博主头像 */ + .tk-content { + max-width: 75%; + width: fit-content; + } + .tk-master .tk-content { + width: 75%; + } + .tk-master .tk-content::before { + left: 100%; + border-left: 15px solid transparent; + border-right: 0px solid transparent; + } + .tk-master .tk-avatar { + position: relative; + left: calc(75% + 70px); + } + .tk-master .tk-row[data-v-d82ce9a0] { + position: relative; + top: 0px; + left: calc(75% - 230px); + } + [data-theme="dark"] .tk-master .tk-content::before { + border-left: 15px solid #000; + border-right: 0px solid transparent; + } +} +/* 设备名称常态隐藏,悬停评论时显示 */ +.tk-extras { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); +} +.tk-content:hover + .tk-extras { + -webkit-animation: tk-extras-fadeIn 0.5s linear; + -moz-animation: tk-extras-fadeIn 0.5s linear; + -o-animation: tk-extras-fadeIn 0.5s linear; + -ms-animation: tk-extras-fadeIn 0.5s linear; + animation: tk-extras-fadeIn 0.5s linear; + -webkit-animation-fill-mode: forwards; + -moz-animation-fill-mode: forwards; + -o-animation-fill-mode: forwards; + -ms-animation-fill-mode: forwards; + animation-fill-mode: forwards; +} +@-moz-keyframes tk-extras-fadeIn { + from { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + to { + opacity: 1; + -ms-filter: none; + filter: none; + } +} +@-webkit-keyframes tk-extras-fadeIn { + from { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + to { + opacity: 1; + -ms-filter: none; + filter: none; + } +} +@-o-keyframes tk-extras-fadeIn { + from { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + to { + opacity: 1; + -ms-filter: none; + filter: none; + } +} +@keyframes tk-extras-fadeIn { + from { + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + } + to { + opacity: 1; + -ms-filter: none; + filter: none; + } +} + +/* 文章页H1-H6图标样式效果 */ +/* 控制风车转动速度 */ +h1::before, +h2::before, +h3::before, +h4::before, +h5::before, +h6::before { + -webkit-animation: ccc 4s linear infinite; + animation: ccc 4s linear infinite; +} +/* 控制风车转动方向 -1turn 为逆时针转动,1turn 为顺时针转动,相同数字部分记得统一修改 */ +@-webkit-keyframes ccc { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + to { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn); + } +} +@keyframes ccc { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + to { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn); + } +} +/* 设置风车颜色 */ +#content-inner.layout h1::before { + color: #ef50a8; + margin-left: -1.55rem; + font-size: 1.3rem; + margin-top: -0.23rem; +} +#content-inner.layout h2::before { + color: #fb7061; + margin-left: -1.35rem; + font-size: 1.1rem; + margin-top: -0.12rem; +} +#content-inner.layout h3::before { + color: #ffbf00; + margin-left: -1.22rem; + font-size: 0.95rem; + margin-top: -0.09rem; +} +#content-inner.layout h4::before { + color: #a9e000; + margin-left: -1.05rem; + font-size: 0.8rem; + margin-top: -0.09rem; +} +#content-inner.layout h5::before { + color: #57c850; + margin-left: -0.9rem; + font-size: 0.7rem; + margin-top: 0rem; +} +#content-inner.layout h6::before { + color: #5ec1e0; + margin-left: -0.9rem; + font-size: 0.66rem; + margin-top: 0rem; +} +/* s设置风车hover动效 */ +#content-inner.layout h1:hover, +#content-inner.layout h2:hover, +#content-inner.layout h3:hover, +#content-inner.layout h4:hover, +#content-inner.layout h5:hover, +#content-inner.layout h6:hover { + color: var(--theme-color) !important; +} +#content-inner.layout h1:hover::before, +#content-inner.layout h2:hover::before, +#content-inner.layout h3:hover::before, +#content-inner.layout h4:hover::before, +#content-inner.layout h5:hover::before, +#content-inner.layout h6:hover::before { + color: var(--theme-color) !important; + -webkit-animation: ccc 6s linear infinite; + animation: ccc 6s linear infinite; +} + +/*哔哩哔哩视频适配*/ +.aspect-ratio { + position: relative; + width: 90%; + height: auto; + padding-bottom: 75%; + margin: 3% auto; + text-align: center; +} +.aspect-ratio iframe { + position: absolute; + width: 100%; + height: 86%; + left: 0; + top: 0; +} + +/* 图片模糊渐变清晰 */ +/*3s为加载动画的时间,1为加载动画的次数,ease-in-out为动画效果*/ +#page-header, +#web_bg { + -webkit-animation: imgblur 1s 1 ease-in-out; + animation: imgblur 1s 1 ease-in-out; +} +@keyframes imgblur { + 0% { + filter: blur(5px); + } + 100% { + filter: blur(0px); + } +} +/*适配使用-webkit内核的浏览器 */ +@-webkit-keyframes imgblur { + 0% { + -webkit-filter: blur(5px); + } + 100% { + -webkit-filter: blur(0px); + } +} + +/* 全局宽度 参考:https://yisous.xyz/posts/d1fc759/ */ +.layout { + max-width: 1400px; +} + +/* 侧边卡片栏宽度 */ +.aside-content { + max-width: 318px; + min-width: 300px; +} + +/* 平板尺寸自适应(不启用侧边栏宽度限制) */ +@media screen and (max-width: 900px) { + .aside-content { + max-width: none !important; + padding: 0 5px 0 5px; + } +} + +/* 除了首页以外其他页面隐藏卡片,并采用宽屏显示 */ +#archive, +#page, +#category, +#tag { + width: 100%; +} +.page:not(.page.home) .aside-content { + display: none; +} + +/* 友链一行显示更多 */ +.site-card { + width: calc(100% / 5 - 16px) !important; + border-radius: 18px !important; +} +.site-card .img { + height: 165px !important; + border-radius: 18px !important; +} +/* 适应宽度不同的设备 */ +@media screen and (max-width: 1200px) { + .site-card { + width: calc(100% / 4 - 16px) !important; + } +} +@media screen and (max-width: 900px) { + .site-card { + width: calc(100% / 3 - 16px) !important; + } +} +@media screen and (max-width: 600px) { + .site-card { + width: calc(100% / 2 - 16px) !important; + } +} + +/* Gallery一行显示更多 */ +.gallery-group { + width: calc(33% - 8px) !important; +} +/* 适应宽度不同的设备 */ +@media screen and (max-width: 1000px) { + .gallery-group { + width: calc(50% - 8px) !important; + } +} + +/* 标题增强 */ +#site-name::before { + opacity: 0; + background-color: var(--theme-color) !important; + border-radius: 8px; + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + -ms-border-radius: 8px; + -o-border-radius: 8px; + transition: 0.3s; + -webkit-transition: 0.3s; + -moz-transition: 0.3s; + -ms-transition: 0.3s; + -o-transition: 0.3s; + position: absolute; + top: 0 !important; + right: 0 !important; + width: 100%; + height: 100%; + content: "\f015"; + box-shadow: 0 0 5px var(--theme-color) !important; + font-family: "Font Awesome 6 Free"; + text-align: center; + color: white; + line-height: 34px; /*如果有溢出或者垂直不居中的现象微调一下这个参数*/ + font-size: 18px; /*根据个人喜好*/ +} +#site-name:hover::before { + opacity: 1; + scale: 1.03; +} +#site-name { + position: relative; + font-size: 24px; /*一定要把字体调大点,否则效果惨不忍睹!*/ +} + +/* 阅读百分比 */ +/* 返回顶部 */ +button#go-up #percent { + display: none; + font-weight: bold; + font-size: 15px !important; +} + +button#go-up span { + font-size: 12px !important; + margin-right: -1px; +} + +/* 鼠标滑动到按钮上时显示返回顶部图标 */ +button#go-up:hover i { + display: block !important; +} + +button#go-up:hover #percent { + display: none !important; +} + +#rightside > div > a, +#rightside > div > button { + display: flex; + align-items: center; + justify-content: center; + width: 38px; + height: 38px; + font-size: 18px; + border-radius: 6px; +} + +/* 评论表情放大显示 */ +#owo-big { + position: fixed; + align-items: center; + background-color: rgb(255, 255, 255); + border: 1px #aaa solid; + border-radius: 10px; + z-index: 9999; + display: none; + transform: translate(0, -105%); + overflow: hidden; + animation: owoIn 0.3s cubic-bezier(0.42, 0, 0.3, 1.11); +} + +[data-theme="dark"] #owo-big { + background-color: #4a4a4a; +} + +#owo-big img { + width: 100%; +} + +/* 动画效果代码由 Heo:https://blog.zhheo.com/ 提供 */ +@keyframes owoIn { + 0% { + transform: translate(0, -95%); + opacity: 0; + } + 100% { + transform: translate(0, -105%); + opacity: 1; + } +} + +/* 评论区输入提示 */ +/* 设置文字内容 :nth-child(1)的作用是选择第几个 */ +.el-input.el-input--small.el-input-group.el-input-group--prepend:nth-child( + 1 + ):before { + content: "输入QQ号会自动获取昵称和头像🐧"; +} + +.el-input.el-input--small.el-input-group.el-input-group--prepend:nth-child( + 2 + ):before { + content: "收到回复将会发送到您的邮箱📧"; +} + +.el-input.el-input--small.el-input-group.el-input-group--prepend:nth-child( + 3 + ):before { + content: "可以通过昵称访问您的网站🔗"; +} + +/* 当用户点击输入框时显示 */ +.el-input.el-input--small.el-input-group.el-input-group--prepend:focus-within::before, +.el-input.el-input--small.el-input-group.el-input-group--prepend:focus-within::after { + display: block; +} + +/* 主内容区 */ +.el-input.el-input--small.el-input-group.el-input-group--prepend::before { + /* 先隐藏起来 */ + display: none; + /* 绝对定位 */ + position: absolute; + /* 向上移动60像素 */ + top: -60px; + /* 文字强制不换行,防止left:50%导致的文字换行 */ + white-space: nowrap; + /* 圆角 */ + border-radius: 10px; + /* 距离左边50% */ + left: 50%; + /* 然后再向左边挪动自身的一半,即可实现居中 */ + transform: translate(-50%); + /* 填充 */ + padding: 14px 18px; + background: #444; + color: #fff; +} + +/* 小角标 */ +.el-input.el-input--small.el-input-group.el-input-group--prepend::after { + display: none; + content: ""; + position: absolute; + /* 内容大小(宽高)为0且边框大小不为0的情况下,每一条边(4个边)都是一个三角形,组成一个正方形。 + 我们先将所有边框透明,再给其中的一条边添加颜色就可以实现小三角图标 */ + border: 12px solid transparent; + border-top-color: #444; + left: 50%; + transform: translate(-50%, -48px); +} + +/* 美化模块 */ +.winbox { + border-radius: 12px; + overflow: hidden; +} + +.wb-body { + background-color: #e5f1f5; +} + +.wb-full { + display: none; +} + +.wb-min { + background-position: center; +} + +[data-theme="dark"] .wb-body, +[data-theme="dark"] #changeBgBox { + background: #333 !important; +} + +.bgbox { + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} + +.pimgbox, +.imgbox, +.box { + height: 100px; + width: 166px; + margin: 10px; + border-radius: 10px !important; + background-size: cover; +} + +.pimgbox, +.imgbox { + border-radius: 10px; + overflow: hidden; +} + +.imgbox:hover, +.pimgbox:hover, +.box:hover { + scale: 1.05; + transition: all 0.3s ease-in-out; +} + +.pimgbox { + height: 240px; +} + +.imgbox { + height: 95px; +} + +@media screen and (max-width: 768px) { + /* 背景 */ + .pimgbox, + .imgbox, + .box { + height: 73px; + width: 135px; + } + .pimgbox { + height: 205px; + } + + /* 2.0新增内容 */ + .wb-min { + display: none; + } + #changeBgBox .wb-body::-webkit-scrollbar { + display: none; + } +} + +/* 应用监控夜间模式适配 id要# class是直接来就行*/ +[data-theme="dark"] #statistic { + background: #2b2929; +} + +/* 侧边栏个人信息卡片动态渐变色 */ +/* #aside-content > .card-widget.card-info { + background: linear-gradient( + -45deg, + #e8d8b9, + #eccec5, + #a3e9eb, + #bdbdf0, + #eec1ea + ); + box-shadow: 0 0 5px rgb(66, 68, 68); + position: relative; + background-size: 400% 400%; + -webkit-animation: Gradient 10s ease infinite; + -moz-animation: Gradient 10s ease infinite; + animation: Gradient 10s ease infinite !important; +} +@-webkit-keyframes Gradient { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} +@-moz-keyframes Gradient { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} +@keyframes Gradient { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} */ + +/* 个人信息卡片背景图 */ +[data-theme="light"] #aside-content > .card-widget.card-info { + background-image: url(https://pict.tutuxka.eu.org/Qexo/23/12/snowflower_d41d8cd98f00b204e9800998ecf8427e.webp); + background-repeat: no-repeat; + background-attachment: inherit; + background-size: 100%; +} +[data-theme="dark"] #aside-content > .card-widget.card-info { + background-image: url(https://pict.tutuxka.eu.org/Qexo/23/12/aurora_d41d8cd98f00b204e9800998ecf8427e.webp); + background-repeat: no-repeat; + background-attachment: inherit; + background-size: 100%; +} +/* 头像呼吸灯 */ +[data-theme="light"] .avatar-img { + animation: huxi_light 4s ease-in-out infinite; +} +[data-theme="dark"] .avatar-img { + animation: huxi_dark 4s ease-in-out infinite; +} +@keyframes huxi_light { + 0% { + box-shadow: 0px 0px 1px 1px #9ff2d2; + } + 50% { + box-shadow: 0px 0px 5px 5px #9ff2d2; + } + 100% { + box-shadow: 0px 0px 1px 1px #9ff2d2; + } +} +@keyframes huxi_dark { + 0% { + box-shadow: 0px 0px 1px 1px #39c5bb; + } + 50% { + box-shadow: 0px 0px 5px 5px #39c5bb; + } + 100% { + box-shadow: 0px 0px 1px 1px #39c5bb; + } +} + +/* 个人信息Follow me按钮 */ +#aside-content > .card-widget.card-info > #card-info-btn { + background-color: var(--theme-color) !important; + border-radius: 30px; + color: white; +} +#aside-content > .card-widget.card-info > #card-info-btn:hover { + background-color: var(--text-bg-hover) !important; +} + +/* Aplayer字体 */ +#article-container .aplayer { + font-family: var(--global-font) !important; +} + +/* 背景图片链接输入框placeholder*/ +input#pic-link::-webkit-input-placeholder { + color: rgb(150, 150, 150); +} + +input#pic-link { + width: 82%; + border-radius: 30px; + border: 1px solid var(--theme-color) !important; + padding: 5px 10px 5px 10px; + line-height: 2; + outline: 1px solid var(--theme-color) !important; +} + +/* heo 加载动画头像 */ +.loading-img { + background: url(https://tutublog.eu.org/file/62be185fff26d03cda4f1.jpg) + no-repeat center center; + background-size: cover; +} + +/* heo 夜间模式加载背景色 */ +[data-theme="dark"] { + --loading-color: rgba(25, 25, 25, 0.92) !important; +} + +/* 顶栏常驻 */ +.nav-fixed #nav { + transform: translateY(58px) !important; + -webkit-transform: translateY(58px) !important; + -moz-transform: translateY(58px) !important; + -ms-transform: translateY(58px) !important; + -o-transform: translateY(58px) !important; +} +#nav { + transition: none !important; + -webkit-transition: none !important; + -moz-transition: none !important; + -ms-transition: none !important; + -o-transition: none !important; +} + +@media screen and (mai-width: 768px) { + #nav { + padding: 0 28px; + } +} + +/* 导航栏显示标题 */ +#page-name::before { + font-size: 18px; + position: absolute; + width: 100%; + height: 100%; + border-radius: 8px; + color: white !important; + top: 0; + left: 0; + content: "回到顶部"; + background-color: var(--theme-color) !important; + transition: all 0.3s; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -ms-transition: all 0.3s; + -o-transition: all 0.3s; + opacity: 0; + box-shadow: 0 0 3px var(--theme-color) !important; + line-height: 45px; /*如果垂直位置不居中可以微调此值,也可以删了*/ +} +#page-name:hover:before { + opacity: 1; +} +#name-container { + transition: all 0.3s; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -ms-transition: all 0.3s; + -o-transition: all 0.3s; +} +#name-container:hover { + scale: 1.03; +} +#page-name { + position: relative; + padding: 10px 30px; /*如果文字间隔不合理可以微调修改,第二个是水平方向的padding,第一个是垂直的*/ +} + +/* 调节字体显示栏目 */ +#swfs { + display: flex; + flex-wrap: wrap; +} +.swf { + padding: 10px; + font-size: 20px; + background-color: white; + /* 字体选择框边界由js指定 */ + /* border: 2px solid var(--border-color); */ + border-radius: 10px !important; + margin: 10px; +} + +.swf:hover { + text-decoration: none !important; + background: var(--text-bg-hover) !important; +} + +/* 主题色选择 */ +input[name="colors"] { + margin-right: 15px; + min-width: 1rem; + height: 1rem; + appearance: none; + -webkit-appearance: none; + border-radius: 50%; +} +#red { + border: 3px solid var(--color-red); +} +#orange { + border: 3px solid var(--color-orange); +} +#yellow { + border: 3px solid var(--color-yellow); +} +#green { + border: 3px solid var(--color-green); +} +#blue { + border: 3px solid var(--color-blue); +} +#purple { + border: 3px solid var(--color-purple); +} +#pink { + border: 3px solid var(--color-pink); +} +#heoblue { + border: 3px solid var(--color-heoblue); +} +#darkblue { + border: 3px solid var(--color-darkblue); +} +#black { + border: 3px solid var(--color-black); +} +#blackgray { + border: 3px solid var(--color-blackgray); +} +#purple:checked { + box-shadow: 0 0 0 2px #fff inset; + border-radius: 50%; + border: 3px solid var(--color-purple); + background-color: var(--color-purple); +} +#red:checked { + box-shadow: 0 0 0 2px #fff inset; + border-radius: 50%; + border: 3px solid var(--color-red); + background-color: var(--color-red); +} +#orange:checked { + box-shadow: 0 0 0 2px #fff inset; + border-radius: 50%; + border: 3px solid var(--color-orange); + background-color: var(--color-orange); +} +#yellow:checked { + box-shadow: 0 0 0 2px #fff inset; + border-radius: 50%; + border: 3px solid var(--color-yellow); + background-color: var(--color-yellow); +} +#green:checked { + box-shadow: 0 0 0 2px #fff inset; + border-radius: 50%; + border: 3px solid var(--color-green); + background-color: var(--color-green); +} +#blue:checked { + box-shadow: 0 0 0 2px #fff inset; + border-radius: 50%; + border: 3px solid var(--color-blue); + background-color: var(--color-blue); +} +#pink:checked { + box-shadow: 0 0 0 2px #fff inset; + border-radius: 50%; + border: 3px solid var(--color-pink); + background-color: var(--color-pink); +} +#heoblue:checked { + box-shadow: 0 0 0 2px #fff inset; + border-radius: 50%; + border: 3px solid var(--color-heoblue); + background-color: var(--color-heoblue); +} +#darkblue:checked { + box-shadow: 0 0 0 2px #fff inset; + border-radius: 50%; + border: 3px solid var(--color-darkblue); + background-color: var(--color-darkblue); +} +#black:checked { + box-shadow: 0 0 0 2px #fff inset; + border-radius: 50%; + border: 3px solid var(--color-black); + background-color: var(--color-black); +} +#blackgray:checked { + box-shadow: 0 0 0 2px #fff inset; + border-radius: 50%; + border: 3px solid var(--color-blackgray); + background-color: var(--color-blackgray); +} + +/* 主题色适配覆盖区域 */ +.category-lists ul li:before { + border: 0.215em solid var(--theme-color) !important; +} +a.article-meta__tags:hover, +a.article-meta__categories:hover, +a.blog-slider__title:hover, +.tk-footer a:hover { + color: var(--theme-color) !important; +} + +blockquote { + border-left: 3px solid var(--theme-color) !important; +} +#article-container .highlight-tools .copy-button:hover { + color: var(--theme-color) !important; +} +.error404 #error-wrap .error-content .error-img img { + background-color: var(--theme-color) !important; +} +.article-sort-title:before { + border: 5px solid var(--theme-color) !important; +} +.article-sort-item:before { + order: 3px solid var(--theme-color) !important; +} +.article-sort-item.year:hover:before { + border-color: var(--theme-color) !important; +} +.article-sort-item-title:hover { + color: var(--theme-color) !important; +} +.category-lists .category-list a:hover { + color: var(--theme-color) !important; +} +#recent-posts > .recent-post-item > .recent-post-info > .article-title:hover { + color: var(--theme-color) !important; +} +#recent-posts + > .recent-post-item + > .recent-post-info + > .article-meta-wrap + a:hover { + color: var(--theme-color) !important; +} +.tag-cloud-list a:hover { + color: var(--theme-color) !important; +} +#aside-content .card-tag-cloud a:hover { + color: var(--theme-color) !important; +} +#aside-content .aside-list > .aside-list-item .content > .comment:hover { + color: var(--theme-color) !important; +} +#aside-content #card-toc .toc-content .toc-link:hover { + color: var(--theme-color); + scale: 1.03; +} +*::selection { + background: var(--theme-color) !important; +} +#aside-content #card-toc .toc-content .toc-link.active { + background: var(--theme-color); + border-radius: 8px; +} +#aside-content #card-toc .toc-content .toc-link.active:hover { + color: #fefefe; +} +.site-data > a:hover div { + color: var(--theme-color) !important; +} + +#post-comment .comment-head #comment-switch .first-comment { + color: var(--theme-color) !important; +} +#post-comment .comment-head #comment-switch .switch-btn { + background-color: var(--theme-color) !important; +} +#page-header.nav-fixed #nav #toggle-menu:hover { + color: var(--theme-color) !important; +} +#post-info #post-meta a:hover { + color: var(--theme-color) !important; +} +#pagination .page-number.current { + background: var(--theme-color) !important; +} +#article-container h1:hover:before, +#article-container h2:hover:before, +#article-container h3:hover:before, +#article-container h4:hover:before, +#article-container h5:hover:before, +#article-container h6:hover:before { + color: var(--theme-color) !important; +} +#article-container li::marker { + color: var(--theme-color) !important; +} +#post .tag_share .post-meta__tags { + border: 1px solid var(--theme-color) !important; + color: var(--theme-color); + display: flex; +} +a:hover { + color: var(--theme-color); +} +#post .tag_share .post-meta__tags:hover { + background: var(--theme-color) !important; +} +#post .post-copyright .post-copyright-meta { + color: var(--theme-color) !important; +} +#post .post-copyright-cc-info { + color: var(--theme-color) !important; +} +#waline-wrap { + --waline-theme-color: var(--theme-color) !important; +} +.hide-inline > .hide-button, +.hide-block > .hide-button { + background: var(--theme-color) !important; +} +#article-container .tabs > .nav-tabs > .tab.active button { + border-top: 2px solid var(--theme-color) !important; +} +#article-container .timeline { + border-left: 2px solid var(--timeline-color, var(--theme-color)); +} +#article-container .timeline .timeline-item:hover .item-circle:before { + border-color: var(--timeline-color, var(--theme-color)); +} +#article-container + .timeline + .timeline-item.headline + .timeline-item-title + .item-circle:before { + border: 4px solid var(--timeline-color, var(--theme-color)); +} +.search-dialog .search-nav { + color: var(--theme-color) !important; +} +.search-dialog .search-nav .search-close-button:hover { + color: var(--theme-color) !important; +} +#local-search .search-dialog .local-search-box input { + border: 2px solid var(--theme-color) !important; +} +#local-search .search-dialog .local-search__hit-item:before { + border: 3px solid var(--theme-color) !important; +} +#local-search .search-dialog .local-search__hit-item a:hover { + color: var(--theme-color) !important; +} +#nav *::after { + background-color: var(--theme-color) !important; +} + +.article-sort { + border-left: 2px solid var(--theme-color) !important; +} + +.article-sort-title:after { + background: var(--theme-color) !important; +} + +.article-sort-item:before { + border: 3px solid var(--theme-color) !important; +} + +/* 开关按钮 */ +.settings input[type="checkbox"] { + width: 37px; + height: 20px; + position: relative; + border: 1px solid #000000; + background-color: #fdfdfd; + border-radius: 12px; + background-clip: content-box; + display: inline-block; + -webkit-appearance: none; + user-select: none; + outline: none; + transform: translateY(5px); +} +.settings input[type="checkbox"]:before { + content: ""; + width: 14px; + height: 14px; + position: absolute; + top: 2px; + left: 3px; + border-radius: 10px; + background-color: #000; +} +.settings input[type="checkbox"]:checked { + background-color: var(--theme-color) !important; + border-color: var(--theme-color) !important; +} +.settings input[type="checkbox"]:checked:before { + left: 19px; + background-color: white !important; +} +.settings input[type="checkbox"] { + transition: border background-color box-shadow; +} +.settings input[type="checkbox"]:before { + transition: left 0.2s; +} +.settings input[type="checkbox"]:checked { + background-color: var(--theme-color) !important; +} +.settings input[type="checkbox"]:checked:before { + transition: left 0.2s; +} +.settings input[type="checkbox"]:checked:hover { + opacity: 0.8; +} +.settings input[type="checkbox"]:active { + background-color: #666666 !important; + border-color: #666666 !important; +} +.settings input[type="checkbox"]:active::before { + background-color: white !important; +} +.content-text { + margin-right: 5px; +} + +/* 手机侧边菜单栏 */ +#sidebar #sidebar-menus { + background: linear-gradient(60deg, #ffd7e4 0, #c8f1ff 93%); + border-radius: 15px; +} + +/* 手机菜单栏渐变色适配暗黑模式 */ +[data-theme="dark"] #sidebar #sidebar-menus { + background: rgba(25, 25, 25, 0.95) !important; +} + +/* 帧率检测 */ +#fps { + position: fixed; + left: 10px; + bottom: 10px; + z-index: 1919810; +} +[data-theme="light"] #fps { + background-color: rgba(255, 255, 255, 0.85); + backdrop-filter: var(--backdrop-filter); + padding: 4px; + border-radius: 4px; +} +[data-theme="dark"] #fps { + background-color: rgba(0, 0, 0, 0.72); + backdrop-filter: var(--backdrop-filter); + padding: 4px; + border-radius: 4px; +} + +/* 侧边栏 */ +div#rightside { + display: var(--rightside-display); + opacity: 0.98 !important; + transform: translateX(-58px); +} + +/* 标签圆角 */ +.hl-label { + border-radius: 8px; +} + +/* 透明度和模糊半径滑块 */ +input[type="range"] { + display: block; + -webkit-appearance: none; + background-color: #bdc3c7; + width: 100%; + height: 5px; + border-radius: 3px; + margin: 0 auto; + outline: 0; +} +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + background-color: var(--theme-color) !important; + width: 15px; + height: 15px; + border-radius: 50%; + z-index: 100; +} +.range { + position: relative; + width: 300px; + margin: 20px 0px 32px 10px; +} +.rang_width { + position: absolute; + top: 0px; + left: 0px; + background: var(--theme-color) !important; + height: 5px; + border-radius: 2px 0 0 2px; +} + +/* 翻页按钮居中 */ +#pagination { + width: 100%; + margin: auto; +} +/* 翻页按钮上边距 */ +#pagination .pagination { + margin-top: 10px; +} + +/* 文章卡片 */ +/* #recent-posts > .recent-post-item .post_cover { + height: 240px !important; +} */ + +/* 分类磁贴 */ +/* .categoryBar-list { + max-height: 210px !important; +} +@media screen and (max-width: 650px) { + .categoryBar-list { + max-height: 190px !important; + } +} +li.categoryBar-list-item { + border-radius: 20px !important; +} */ + +/* 置顶滚动栏电脑端样式,手机端用默认的 */ +@media screen and (min-width: 600px) { + .blog-slider { + height: 260px !important; + } + .blog-slider__img { + width: 240px !important; + height: 100% !important; + } +} + +/* 自定义颜色框 */ +#define_colors::before { + position: absolute; + color: rgb(255, 255, 255); + left: 45px; + top: 44px; + content: "自定义颜色"; +} +#define_colors { + border: none; + background: 0 0; + width: 166px; + height: 110px; + margin: 5px 10px; + position: relative; + padding: 0; +} + +/* 顶部胶囊加载条 */ +.pace { + -webkit-pointer-events: none; + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + z-index: 2000; + position: fixed; + margin: auto; + top: 10px; + left: 0; + right: 0; + height: 8px; + border-radius: 8px; + width: 5rem; + background: #eaecf2; + border: 1px #e3e8f7; + overflow: hidden; +} + +.pace-inactive .pace-progress { + opacity: 0; + transition: 0.3s ease-in; +} + +.pace .pace-progress { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + -o-box-sizing: border-box; + box-sizing: border-box; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + max-width: 200px; + position: absolute; + z-index: 2000; + display: block; + top: 0; + right: 100%; + height: 100%; + width: 100%; + background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab); + animation: gradient 1.5s ease infinite; + background-size: 200%; +} + +.pace.pace-inactive { + opacity: 0; + transition: 0.3s; + top: -8px; +} +@keyframes gradient { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +/* 右键菜单 */ +#rightMenu { + display: none; + position: fixed; + width: 160px; + height: fit-content; + top: 10%; + left: 10%; + background-color: var(--card-bg); + border: 1px solid var(--font-color); + border-radius: 8px; + z-index: 100; +} +#rightMenu .rightMenu-group { + padding: 7px 6px; +} +#rightMenu .rightMenu-group:not(:nth-last-child(1)) { + border-bottom: 1px solid var(--font-color); +} +#rightMenu .rightMenu-group.rightMenu-small { + display: flex; + justify-content: space-between; +} +#rightMenu .rightMenu-group .rightMenu-item { + height: 30px; + line-height: 30px; + border-radius: 8px; + transition: 0.3s; + color: var(--font-color); +} +#rightMenu .rightMenu-group.rightMenu-line .rightMenu-item { + display: flex; + height: 40px; + line-height: 40px; + padding: 0 4px; +} +#rightMenu .rightMenu-group .rightMenu-item:hover { + background-color: var(--text-bg-hover) !important; +} +#rightMenu .rightMenu-group .rightMenu-item i { + display: inline-block; + text-align: center; + line-height: 30px; + width: 30px; + height: 30px; + padding: 0 5px; +} +#rightMenu .rightMenu-group .rightMenu-item span { + line-height: 30px; +} + +#rightMenu .rightMenu-group.rightMenu-line .rightMenu-item * { + height: 40px; + line-height: 40px; +} +.rightMenu-group.hide { + display: none; +} + +/* 页脚心跳动画 */ +#heartbeat { + color: red; + animation: iconAnimate 1s ease-in-out infinite; +} +@-moz-keyframes iconAnimate { + 0%, + 100% { + transform: scale(1); + } + 10%, + 30% { + transform: scale(0.9); + } + 20%, + 40%, + 60%, + 80% { + transform: scale(1.1); + } + 50%, + 70% { + transform: scale(1.1); + } +} +@-webkit-keyframes iconAnimate { + 0%, + 100% { + transform: scale(1); + } + 10%, + 30% { + transform: scale(0.9); + } + 20%, + 40%, + 60%, + 80% { + transform: scale(1.1); + } + 50%, + 70% { + transform: scale(1.1); + } +} +@-o-keyframes iconAnimate { + 0%, + 100% { + transform: scale(1); + } + 10%, + 30% { + transform: scale(0.9); + } + 20%, + 40%, + 60%, + 80% { + transform: scale(1.1); + } + 50%, + 70% { + transform: scale(1.1); + } +} +@keyframes iconAnimate { + 0%, + 100% { + transform: scale(1); + } + 10%, + 30% { + transform: scale(0.9); + } + 20%, + 40%, + 60%, + 80% { + transform: scale(1.1); + } + 50%, + 70% { + transform: scale(1.1); + } +} + +/* 星空背景 */ +#universe { + position: fixed; + margin: 0; + padding: 0; + border: 0; + outline: 0; + left: 0; + top: 0; + width: 100%; + height: 100%; + pointer-events: none; + /* 星空在底层避免干扰阅读 */ + z-index: -2; +} + +/* 星空手机模式消失 */ +@media screen and (max-width: 768px) { + #universe { + display: none !important; + } +} + +/* 星空白天模式消失 */ +[data-theme="light"] #universe { + display: none !important; +} + +/* 雪花特效 */ +[data-theme="light"] #snow { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: -2; +} + +/* 雪花夜间模式不显示 */ +[data-theme="dark"] #snow { + display: none !important; +} + +/* 雪花手机模式不显示 */ +@media screen and (max-width: 768px) { + #snow { + display: none !important; + } +} + +.neko { + width: 64px; + height: 64px; + position: absolute; + right: 56px !important; + background-repeat: no-repeat; + background-size: contain; + transform: translateX(50%); + font-family: var(--global-font); + font-weight: 600; + font-size: 16px; + color: var(--theme-color) !important; + display: none; +} + +.neko::after { + display: none; + width: 100px; + height: 100px; + background-image: url("https://bu.dusays.com/2022/07/20/62d812d95e6f5.png"); + background-size: contain; + z-index: 9999; + position: absolute; + right: 50%; + text-align: center; + line-height: 106px; + top: -115%; +} + +.neko.showMsg::after { + content: attr(data-msg); + display: block; + overflow: hidden; + text-overflow: ellipsis; +} + +.neko:hover::after { + content: attr(data-msg); + display: block; + overflow: hidden; + text-overflow: ellipsis; +} + +.neko.fontColor::after { + color: #333; +} + +/* By Fomalhaut版权大小 */ +.copyright { + font-size: 16px; +} + +/* 电子钟字体调节 */ +/* .card-clock-location, +.card-clock-windDir, +span.card-clock-weather { + font-family: var(--global-font) !important; +} */ + +/* 二级菜单圆角 */ +#nav .menus_items .menus_item .menus_item_child, +#nav .menus_items .menus_item .menus_item_child li, +#nav .menus_items .menus_item .menus_item_child li:first-child, +#nav .menus_items .menus_item .menus_item_child li:last-child { + border-radius: 8px; +} + +/* 右边的按钮间距 */ +#meihua-button, +#nightmode-button { + padding-left: 12px; +} + +/* 搜索框样式 */ +#algolia-search .search-dialog .ais-SearchBox .ais-SearchBox-form input { + border: 2px solid var(--theme-color) !important; + border-right: 0px !important; +} + +#algolia-search .search-dialog .ais-Hits-list a:hover { + color: var(--theme-color) !important; +} + +#algolia-search .search-dialog .ais-Hits-list li:before { + border: 0.215em solid var(--theme-color) !important; +} + +/* 小冰分类分类磁铁黑夜模式适配 */ +.magnet_item { + margin-right: 5px !important; +} +#catalog_magnet { + padding: 18px 18px 0 18px !important; +} +@media screen and (max-width: 600px) { + .magnet_item { + margin-right: 0px !important; + } +} +[data-theme="dark"] .magnet_link_context { + background: #1e1e1e; + color: antiquewhite; +} +[data-theme="dark"] .magnet_link_context { + border-radius: 6px; +} +[data-theme="dark"] .magnet_link_context:hover { + background: var(--text-bg-hover) !important; + color: #f2f2f2; + border-radius: 6px; +} + +/* 公告栏、微博 */ +.anno_content:hover, +.weibo-title:hover { + border-bottom: 2px solid var(--theme-color) !important; +} + +/* 关于页面区块 */ +.about_page { + background: #fafafa; + border-radius: 20px; + padding: 12px; + margin: 5px; + border: 2px solid #a0a0a0; +} +[data-theme="dark"] .about_page { + background: #252525; +} +/* 首页文章信息彩色图标右边相隔5px */ +.post-ui-icon { + margin-right: 2px; +} +/* 欢迎信息 */ +#welcome-info { + background: linear-gradient(45deg, #b9f4f3, #e3fbf9); + border-radius: 18px; + padding: 8px 8px; +} +[data-theme="dark"] #welcome-info { + background: #212121; +} + +/* 霓虹灯颜色渐变 */ +#site-name, +#site-title, +#site-subtitle, +#post-info, +.author-info__name, +.author-info__description { + transition: text-shadow 1s linear !important; +} + +/* tzy页脚样式 */ +/* 自定义底部 start */ +#ft { + max-width: 1200px; + margin: 0 auto 12px; + display: flex; + color: rgb(255 255 255 / 80%) !important; + text-align: left; + flex-wrap: wrap; +} + +.ft-item-1, +.ft-item-2 { + display: flex; + height: 100%; + padding: 2px 14px; +} + +.ft-item-1 { + flex-direction: column; + flex: 2; +} + +.ft-item-2 { + flex: 1; + flex-direction: column; +} + +.t-top { + display: flex; +} + +.t-top .t-t-l { + display: flex; + flex-direction: column; + flex: 1.4; + margin-right: 10px; +} + +.t-top .t-t-l .bg-ad { + width: 85%; + border-radius: 10px; + padding: 0 10px; +} + +.btn-xz-box { + margin-top: 10px; +} + +.btn-xz { + display: block; + background-color: var(--btn-bg); + color: var(--btn-color); + text-align: center; + line-height: 2.4; + margin: 8px 0; +} + +.btn-xz:hover { + text-decoration: none !important; +} + +.btn-xz-box:hover .btn-xz { + background-color: var(--text-bg-hover) !important; +} + +.t-top .t-t-r { + display: flex; + flex-direction: column; + flex: 1; +} + +.ft-links { + padding: 0 14px; + list-style: none; + margin-top: 0 !important; +} + +.ft-links li a { + display: inline-block !important; + width: 50%; +} + +.ft-links li a:hover { + text-decoration: none !important; + color: var(--theme-color) !important; +} + +.ft-item-2 .ft-img-group { + width: 100%; +} + +.ft-t { + font-size: 1.1rem; + margin-bottom: 20px; + line-height: 1; + font-weight: 600; +} + +.t-l-t { + padding-left: 14px; +} + +.ft-item-2 .ft-img-group .img-group-item { + display: inline-block; + width: 18.4%; + margin-right: 14px; + margin-bottom: 6px; +} + +.ft-item-2 .ft-img-group .img-group-item a { + display: inline-block; + width: 100%; + height: 100%; +} + +.ft-item-2 .ft-img-group .img-group-item a img { + width: 100%; + max-height: 80px; + border-radius: 10px; +} + +.ft-item-2 .ft-img-group .img-group-item a img:hover { + scale: 1.1; + transition: all 0.3s ease-in-out; +} + +@media screen and (max-width: 768px) { + .ft-item-1 { + flex-basis: 100% !important; + } + + .ft-item-2 { + flex-basis: 100% !important; + } + + .t-top .t-t-l .bg-ad { + width: 100%; + } +} + +@media screen and (max-width: 576px) { + .t-top { + flex-wrap: wrap; + } + + .t-top .t-t-l { + flex-basis: 100% !important; + } + + .t-top .t-t-r { + margin-top: 16px; + flex-basis: 100% !important; + } +} +#footer-wrap a { + border-radius: 30px; +} +#footer-wrap { + padding: 20px 20px; +} +/* 自定义底部 End */ + +/* 手机菜单栏选中圆角 */ +#sidebar #sidebar-menus .menus_items .site-page:hover { + border-radius: 10px; +} + +/* 代码框数字行 */ +#article-container figure.highlight .gutter pre { + border-right: 0.5px solid #808080; +} + +/* 右侧栏宽度 */ +@media screen and (min-width: 900px) { + #aside-content { + padding: 0 5px 0 5px; + } +} + +/* 右边栏设置齿轮转速 */ +i.fas.fa-cog.right_side { + animation: fa-spin 5s linear infinite; +} + +/* 文章封面箭头动画 */ +.recent-post-arrow { + animation: ddd 3s linear infinite; +} + +@keyframes ddd { + 0% { + top: 30px; + } + 10% { + top: 20px; + } + 20% { + top: 30px; + } + 30% { + top: 20px; + } + 60% { + top: 22px; + } + 90% { + top: 20px; + } + 100% { + top: 20px; + } +} + +/* 下一篇文章的圆角 */ +.relatedPosts > .relatedPosts-list > div, +#pagination.pagination-post, +.postImgHover img, +#pagination .prev-post img, +#pagination .next-post img, +.relatedPosts > .relatedPosts-list > div img { + border-radius: 12px; +} + +/* 个人信息状态(参考鱼的) */ +.card-info-avatar .author-status-box { + position: absolute; + bottom: 0; + left: calc(100% - 28px); + width: 28px; + height: 28px; + border: 1px solid #d0d7de; + border-radius: 2em; + background-color: #f8f8f8f8; + transition: 0.4s; + overflow: hidden; +} + +[data-theme="dark"] .card-info-avatar .author-status-box { + background-color: #222222f2; + border: 1px solid #5c6060; +} + +.card-info-avatar .author-status-box .author-status { + display: flex; + align-items: center; + justify-content: center; + height: 28px; + padding: 0 5px; +} + +.card-info-avatar .author-status-box:hover { + width: 105px; +} + +.card-info-avatar .author-status-box:hover .author-status span { + width: 105px; + margin-left: 4px; +} + +.card-info-avatar .author-status-box .author-status span { + width: 0; + font-size: 12px; + height: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + transition: 0.4s; +} + +.card-widget .card-info-avatar { + display: inline-block; + position: relative; +} + +/* 波浪css */ +.main-hero-waves-area { + width: 100%; + position: absolute; + left: 0; + bottom: -11px; + z-index: 5; +} +.waves-area .waves-svg { + width: 100%; + height: 5rem; +} +/* Animation */ + +.parallax > use { + animation: move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite; +} +.parallax > use:nth-child(1) { + animation-delay: -2s; + animation-duration: 7s; + fill: #f7f9febd; +} +.parallax > use:nth-child(2) { + animation-delay: -3s; + animation-duration: 10s; + fill: #f7f9fe82; +} +.parallax > use:nth-child(3) { + animation-delay: -4s; + animation-duration: 13s; + fill: #f7f9fe36; +} +.parallax > use:nth-child(4) { + animation-delay: -5s; + animation-duration: 20s; + fill: #f7f9fe; +} +/* 黑色模式背景 */ +[data-theme="dark"] .parallax > use:nth-child(1) { + animation-delay: -2s; + animation-duration: 7s; + fill: #18171dc8; +} +[data-theme="dark"] .parallax > use:nth-child(2) { + animation-delay: -3s; + animation-duration: 10s; + fill: #18171d80; +} +[data-theme="dark"] .parallax > use:nth-child(3) { + animation-delay: -4s; + animation-duration: 13s; + fill: #18171d3e; +} +[data-theme="dark"] .parallax > use:nth-child(4) { + animation-delay: -5s; + animation-duration: 20s; + fill: #18171d; +} + +@keyframes move-forever { + 0% { + transform: translate3d(-90px, 0, 0); + } + 100% { + transform: translate3d(85px, 0, 0); + } +} +/*Shrinking for mobile*/ +@media (max-width: 768px) { + .waves-area .waves-svg { + height: 40px; + min-height: 40px; + } +} +/* 波浪黑夜模式隐藏 */ +[data-theme="dark"] .main-hero-waves-area { + display: none; +} + +/* 图片圆角和边框 */ +.post-content img, +#article-container:has(.fj-gallery, #gitZone, .about_page) img { + border-radius: 12px; + border: 0.5px solid #80808030; +} + +/* twikoo评论框聚焦边框颜色 */ +#twikoo .el-textarea textarea:focus, +.twikoo .el-input__inner:focus { + border-color: var(--theme-color) !important; +} + +/* 友链描述 */ +.flink-desc { + font-size: 1.1em; + padding: 0px 0px 20px 10px; + font-weight: bold; +} + +/* 目录样式 */ +#aside-content #card-toc .toc-content { + margin: 0 -16px 0 -25px; +} + +/* diff块颜色 */ +figure.highlight pre .addition { + color: #13dfa8; +} +figure.highlight pre .deletion { + color: #f669f6; +} + +/* 新年侧边栏 */ + +#newYear { + color: white; + padding: 0 !important; +} + +#newYear p, +#newYear h3 { + font-weight: normal; + color: inherit; + margin: 0; +} + +#newYear .item-headline { + display: none; +} + +#newYear-main { + min-height: 160px; + padding: 1rem; + position: relative; + border-radius: 12px; + background-image: url(https://photo.tutuxka.eu.org/tunian.webp); + background-size: cover; + background-position: center; +} + +#newYear-main * { + position: relative; + line-height: 1.3; +} + +#newYear-main .newYear-time { + font-weight: bold; + text-align: center; +} + +#newYear-main .time, +#newYear-main .happyNewYear { + font-size: 3.5rem; + margin: 1rem 0; + display: block; +} + +#newYear-main .day { + font-size: 5rem; +} + +#newYear-main .day .unit { + font-size: 1rem; +} + +#newYear-main .mask { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; + background-color: rgba(0, 0, 0, 0.1); +} + +/* 夜间模式友链文字颜色 */ +[data-theme="dark"] .site-card .info .desc { + color: #aaa; +} +[data-theme="dark"] .site-card .info .title { + color: #ddd; +} +[data-theme="light"] .site-card:hover .info .title { + color: #444 !important; +} +[data-theme="light"] .site-card:hover .info .desc { + color: #666 !important; +} +[data-theme="dark"] .site-card:hover .info .title { + color: #eee !important; +} +[data-theme="dark"] .site-card:hover .info .desc { + color: #ccc !important; +} + +/* 信息卡片彩带 */ +/* .author_top:hover { + background: url(https://photo.tutuxka.eu.org/snow.gif); + background-size: cover; +} */ + +/* 霓虹灯css实现 light_15px 10s linear infinite */ +[data-theme="light"] #site-name, +[data-theme="light"] #site-title, +[data-theme="light"] #site-subtitle, +[data-theme="light"] #post-info { + animation: none !important; +} + +@keyframes light_15px { + 0% { + text-shadow: #5636ed 0 0 15px; + } + 12.5% { + text-shadow: #11ee5e 0 0 15px; + } + 25% { + text-shadow: #f14747 0 0 15px; + } + 37.5% { + text-shadow: #f1a247 0 0 15px; + } + 50% { + text-shadow: #f1ee47 0 0 15px; + } + 50% { + text-shadow: #b347f1 0 0 15px; + } + 62.5% { + text-shadow: #002afa 0 0 15px; + } + 75% { + text-shadow: #ed709b 0 0 15px; + } + 87.5% { + text-shadow: #39c5bb 0 0 15px; + } + 100% { + text-shadow: #5636ed 0 0 15px; + } +} + +@keyframes light_10px { + 0% { + text-shadow: #5636ed 0 0 10px; + } + 12.5% { + text-shadow: #11ee5e 0 0 10px; + } + 25% { + text-shadow: #f14747 0 0 10px; + } + 37.5% { + text-shadow: #f1a247 0 0 10px; + } + 50% { + text-shadow: #f1ee47 0 0 10px; + } + 50% { + text-shadow: #b347f1 0 0 10px; + } + 62.5% { + text-shadow: #002afa 0 0 10px; + } + 75% { + text-shadow: #ed709b 0 0 10px; + } + 87.5% { + text-shadow: #39c5bb 0 0 10px; + } + 100% { + text-shadow: #5636ed 0 0 10px; + } +} + +@keyframes light_5px { + 0% { + text-shadow: #5636ed 0 0 5px; + } + 12.5% { + text-shadow: #11ee5e 0 0 5px; + } + 25% { + text-shadow: #f14747 0 0 5px; + } + 37.5% { + text-shadow: #f1a247 0 0 15px; + } + 50% { + text-shadow: #f1ee47 0 0 5px; + } + 50% { + text-shadow: #b347f1 0 0 5px; + } + 62.5% { + text-shadow: #002afa 0 0 5px; + } + 75% { + text-shadow: #ed709b 0 0 5px; + } + 87.5% { + text-shadow: #39c5bb 0 0 5px; + } + 100% { + text-shadow: #5636ed 0 0 5px; + } +} + +/* 夜间模式菜单栏发光字 0 0 1px var(--theme-color) */ +[data-theme="light"] .menu_word { + text-shadow: none !important; +} +[data-theme="dark"] .menu_word { + text-shadow: var(--menu-shadow); +} + +/* 评论按钮 */ +.el-button--primary { + background-color: var(--theme-color) !important; + border-color: transparent !important; +} +.el-button--primary.is-disabled, +.el-button--primary.is-disabled:active, +.el-button--primary.is-disabled:focus, +.el-button--primary.is-disabled:hover { + background-color: var(--high-trans-color) !important; +} + +.twikoo .el-button:not(.el-button--primary):not(.el-button--text):active, +.twikoo .el-button:not(.el-button--primary):not(.el-button--text):focus, +.twikoo .el-button:not(.el-button--primary):not(.el-button--text):hover { + color: var(--theme-color) !important; + background-color: rgba(64, 158, 255, 0.063); + border-color: var(--high-trans-color) !important; +} + +.tk-icon.__comments, +.tk-action-icon, +.tk-action-count, +.tk-nick-link:hover { + color: var(--theme-color) !important; +} +.el-textarea__inner { + border-radius: 8px !important; +} + +/* 分割线 */ +hr { + border: 2px dashed var(--high-trans-color) !important; +} + +hr:before { + color: var(--theme-color) !important; +} + +/* 版权下面标签排列 */ +#post .tag_share .post-meta__tag-list { + display: flex; +} +#post .tag_share .post-meta__tags { + border-radius: 20px; +} + +/* 必应壁纸框 */ +#bingDayBox:hover, +#bingHistoryBox:hover, +#EEEDogBox:hover, +#seovxBox:hover, +#picsumBox:hover, +#waiBizhiBox:hover, +#btstuBox:hover, +#unsplashBox:hover { + text-decoration: none !important; +} + +.apiBox::before { + position: relative; + color: aliceblue; + border-radius: 5px; + top: 35px; + padding: 2px 5px; + background: #00000090; +} + +#bingDayBox::before { + left: 34px; + content: "必应每日壁纸"; +} +#bingHistoryBox::before { + left: 34px; + content: "必应历史壁纸"; +} +#EEEDogBox::before { + left: 20px; + content: "EEEDog动漫壁纸"; +} +#seovxBox::before { + left: 30px; + content: "seovx美女壁纸"; +} +#picsumBox::before { + left: 24px; + content: "picsum随机壁纸"; +} +#waiBizhiBox::before { + left: 34px; + content: "小歪高清壁纸"; +} +#btstuBox::before { + left: 34px; + content: "博天随机壁纸"; +} +#unsplashBox::before { + left: 15px; + content: "Unsplash随机壁纸"; +} + +/* 评论区圆角 */ +.tk-meta-input .el-input .el-input-group__prepend { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; +} +.el-input-group--prepend .el-input__inner { + border-bottom-right-radius: 6px; + border-top-right-radius: 6px; +} + +/* Twikoo底部小字样式 */ +.tk-footer { + font-size: 0.9em; +} + +.tk-footer a { + font-weight: bold; + color: #a591e0; +} + +/* Github徽标 */ +.github-badge img:hover { + scale: 1.05; + transition: all 0.3s ease-in-out; +} + +.search-dialog { + position: fixed; + top: 10%; + left: 50%; + z-index: 1001; + display: none; + margin-left: -300px; + padding: 20px; + width: 600px; + border-radius: 8px; + background: var(--search-bg); +} +@media screen and (max-width: 768px) { + .search-dialog { + top: 0; + left: 0; + margin: 0; + width: 100%; + height: 100%; + border-radius: 0; + } +} +.search-dialog hr { + margin: 20px auto; +} +.search-dialog .search-nav { + margin: 0 0 14px; + color: #49b1f5; + font-size: 1.4em; + line-height: 1; +} +.search-dialog .search-nav .search-dialog-title { + margin-right: 10px; +} +.search-dialog .search-nav .search-close-button { + float: right; + color: #858585; + -webkit-transition: color 0.2s ease-in-out; + -moz-transition: color 0.2s ease-in-out; + -o-transition: color 0.2s ease-in-out; + -ms-transition: color 0.2s ease-in-out; + transition: color 0.2s ease-in-out; +} +.search-dialog .search-nav .search-close-button:hover { + color: #49b1f5; +} +#search-mask { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1000; + display: none; + background: rgba(0,0,0,0.6); +} +#local-search .search-dialog .local-search-box { + margin: 0 auto; + max-width: 100%; + width: 100%; +} +#local-search .search-dialog .local-search-box input { + padding: 5px 14px; + width: 100%; + outline: none; + border: 2px solid #49b1f5; + border-radius: 40px; + background: var(--search-bg); + color: var(--search-input-color); + -webkit-appearance: none; +} +#local-search .search-dialog .search-wrap { + display: none; +} +#local-search .search-dialog .local-search__hit-item { + position: relative; + padding-left: 24px; + line-height: 1.7; +} +#local-search .search-dialog .local-search__hit-item:hover:before { + border-color: var(--pseudo-hover); +} +#local-search .search-dialog .local-search__hit-item:before { + position: absolute; + top: 0.45em; + left: 0; + width: 0.5em; + height: 0.5em; + border: 3px solid #49b1f5; + border-radius: 0.5em; + background: transparent; + content: ''; + line-height: 0.5em; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + -ms-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +#local-search .search-dialog .local-search__hit-item a { + display: block; + color: var(--search-result-title); + font-weight: 600; +} +#local-search .search-dialog .local-search__hit-item a:hover { + color: #49b1f5; +} +#local-search .search-dialog .local-search__hit-item .search-result { + margin: 0 8px 8px 0; + word-break: break-all; +} +#local-search .search-dialog .local-search__hit-item .search-keyword { + color: #f47466; + font-weight: bold; +} +#local-search .search-dialog .search-result-list { + overflow-y: auto; + max-height: calc(80vh - 130px); +} +@media screen and (max-width: 768px) { + #local-search .search-dialog .search-result-list { + padding-bottom: 40px; + max-height: 75vh !important; + } +} diff --git a/css/kslink.css b/css/kslink.css new file mode 100644 index 00000000..20eceeb2 --- /dev/null +++ b/css/kslink.css @@ -0,0 +1,38 @@ +/* 添加友链按钮 */ +/* 快速填写格式 */ +.addBtn { + display: flex; + justify-content: center; + flex-wrap: wrap; +} +.addBtn button { + transition: .2s; + display: flex; + margin: 5px auto; + color: var(--global-bg); + padding: 15px; + border-radius: 40px; + background: var(--search-result-title); + align-items: center; +} + +button { + padding: 0; + outline: 0; + border: none; + background: 0 0; + cursor: pointer; + touch-action: manipulation; +} +.fa-solid, .fas { + font-family: "Font Awesome 6 Free"; + font-weight: 900; +} +.addBtn i { + font-size: 1.3rem; + margin-right: 10px; +} +.addBtn button:hover { + background: var(--theme-color); + color: #fff; +} \ No newline at end of file diff --git a/placeholder b/css/var.css similarity index 100% rename from placeholder rename to css/var.css diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 00000000..00c66964 Binary files /dev/null and b/favicon.ico differ diff --git a/fonts/BlogFont.woff2 b/fonts/BlogFont.woff2 new file mode 100644 index 00000000..dd8a1aa4 Binary files /dev/null and b/fonts/BlogFont.woff2 differ diff --git a/fonts/Consolas.woff2 b/fonts/Consolas.woff2 new file mode 100644 index 00000000..b7937157 Binary files /dev/null and b/fonts/Consolas.woff2 differ diff --git a/fonts/HYTangMeiRen55W.woff2 b/fonts/HYTangMeiRen55W.woff2 new file mode 100644 index 00000000..11282617 Binary files /dev/null and b/fonts/HYTangMeiRen55W.woff2 differ diff --git a/fonts/MiSans.woff2 b/fonts/MiSans.woff2 new file mode 100644 index 00000000..fa9e0788 Binary files /dev/null and b/fonts/MiSans.woff2 differ diff --git a/fonts/ZhuZiAWan2.woff2 b/fonts/ZhuZiAWan2.woff2 new file mode 100644 index 00000000..f4873021 Binary files /dev/null and b/fonts/ZhuZiAWan2.woff2 differ diff --git "a/fonts/\344\274\230\350\256\276\345\245\275\350\272\253\344\275\223.woff2" "b/fonts/\344\274\230\350\256\276\345\245\275\350\272\253\344\275\223.woff2" new file mode 100644 index 00000000..629abc83 Binary files /dev/null and "b/fonts/\344\274\230\350\256\276\345\245\275\350\272\253\344\275\223.woff2" differ diff --git "a/fonts/\347\224\234\347\224\234\345\234\210\346\265\267\346\212\245\345\255\227\344\275\223.woff2" "b/fonts/\347\224\234\347\224\234\345\234\210\346\265\267\346\212\245\345\255\227\344\275\223.woff2" new file mode 100644 index 00000000..fd172ff0 Binary files /dev/null and "b/fonts/\347\224\234\347\224\234\345\234\210\346\265\267\346\212\245\345\255\227\344\275\223.woff2" differ diff --git "a/fonts/\351\234\236\351\271\234\346\226\207\346\245\267.woff2" "b/fonts/\351\234\236\351\271\234\346\226\207\346\245\267.woff2" new file mode 100644 index 00000000..ccb9622c Binary files /dev/null and "b/fonts/\351\234\236\351\271\234\346\226\207\346\245\267.woff2" differ diff --git a/img/404.jpg b/img/404.jpg new file mode 100644 index 00000000..4bab3c3f Binary files /dev/null and b/img/404.jpg differ diff --git a/img/favicon.png b/img/favicon.png new file mode 100644 index 00000000..862ebe85 Binary files /dev/null and b/img/favicon.png differ diff --git a/img/friend_404.gif b/img/friend_404.gif new file mode 100644 index 00000000..91dd56a2 Binary files /dev/null and b/img/friend_404.gif differ diff --git a/index.html b/index.html new file mode 100644 index 00000000..ee2d549d --- /dev/null +++ b/index.html @@ -0,0 +1,334 @@ +兔兔博客🇨🇳 + + + + + + + + + + + +
国庆爬个明日方舟立绘并搭建api
这篇文章介绍了作者为大家准备了一份国庆礼物——一个爬虫程序,并感谢了一些大佬。作者在新年前要爬取一些数据,并希望能和大家一起进步。
Markdown 基本语法
这篇文章介绍了Markdown语言的基础语法,它简单易学,使得标记文本变得容易。Markdown支持标题、列表、链接、图片、区块引用和代码区块等语法元素,用户可以利用这些功能编写结构化的文本。此外,文章可能还提及了Markdown的扩展语法和如何在不同平台和软件中使用Markdown。
随身 wifi 综合小记
这篇文章介绍了如何给随身WiFi刷入Debian系统的过程。首先,作者参考了酷安网上一篇文章进行操作。
2023~2024年度记录
这篇文章介绍了作者在2023至2024年度的感悟,表达了对2024年的期待和憧憬,感觉这是一个特别的年份。
记 QQ 无头机器人搭建教程
这篇文章介绍了使用电脑,QQ最新版和科学上网环境进行某种操作或活动的相关内容。
自建腾讯地理位置api
这篇文章介绍了如何搭建博客首页的地理位置欢迎API,并祝大家双节快乐。文章内容涉及了博客首页地理位置欢迎API的搭建方法。
地球online更新
这篇文章介绍了地球online游戏即将进行版本更新和开服的消息。更新和开服时间分别为8月24日的00:00和12:00。
hello-world
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 +1$ hexo new "My New Post" +More info: Writing +Run server +1$ hexo server +More info: Server +Generate static files +1$ hexo generate +More info: Generating +Deploy to remote sites +1$ hexo deploy +More info: Deployment +
新年快乐
祝大家新年快乐吧,虽然年已经过完了,但还是要记录一下的 +
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面
\ No newline at end of file diff --git a/js/bibi.js b/js/bibi.js new file mode 100644 index 00000000..ed500bed --- /dev/null +++ b/js/bibi.js @@ -0,0 +1,70 @@ +let svg = '' +let total = 0 +let nowNum = 0 +let items = [] +let page = 1 +let Url = 'https://kkapi.fomal.cc/api/ispeak?author=6319fedef46fae97dcfa5ee2&page=' // 记住替换为你的API链接 + + +window.addEventListener('DOMContentLoaded', () => { + getNew(); +}); + +// 获取数据 +function getNew() { + let bibi = document.getElementById('bibi'); + try { + bibi.removeChild(document.getElementById('more')) + } catch (error) { } + + bibi.innerHTML += '
bb_loading
' // bb_loading图片可以f12在我网站源码下载,也可以使用其他图片。 + + fetch(Url + page).then(res => res.json()).then((res) => { + total = res.data.total + items = res.data.items + nowNum += items.length + if (page == 1) { + document.querySelector('.bb-info').innerHTML = ' 站长的唠叨(' + total + ')' + } + page += 1 + }).then(() => { + bb(); + if (nowNum < total) { + document.getElementById('bibi').innerHTML += '' + } + document.getElementById('bibi').removeChild(document.getElementById('bb_loading')) + }) +} + +// 渲染数据 +function bb() { + let bb = document.getElementById('bb-main') + items.forEach((item) => { + let time = item.createdAt.substring(0, 10); + let div = document.createElement('div') + item.content = contentFormat(item.content) + + div.className = 'bb-card' + div.innerHTML = '
' + item.author.nickName + '
' + svg + '
' + time + '
' + item.content + '
' + bb.appendChild(div) + }) +} + +// content格式化 +function contentFormat(s) { + let br = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + let re_forimg = /|!\[(.*?)\]\((.*?)\)/g; + let getImgUrl = /(http(.*).[jpg|png|gif])/g; + let ls = s.match(getImgUrl) + s = s.replace(re_forimg, '') + s = s.replace(br, '') + + let html = '
' + if (ls) { + ls.forEach((e) => { + html += '' + }) + } + s += html + return s +} \ No newline at end of file diff --git a/js/census.js b/js/census.js new file mode 100644 index 00000000..419ae219 --- /dev/null +++ b/js/census.js @@ -0,0 +1,329 @@ +var start_date = '20220201' // 开始日期 +var date = new Date(); +var end_date = '' + date.getFullYear() + (date.getMonth() > 8 ? (date.getMonth() + 1) : ("0" + (date.getMonth() + 1))) + (date.getDate() > 9 ? date.getDate() : ("0" + date.getDate())); // 结束日期 + +var access_token = '' // accessToken +var site_id = '' // 网址 id +var dataUrl = '' + access_token + '&site_id=' + site_id +// var dataUrl = 'https://baidu-tongji.fomal.cc/api?site_id=' + site_id +var metrics = 'pv_count' // 统计访问次数 PV 填写 'pv_count',统计访客数 UV 填写 'visitor_count',二选一 +var metricsName = (metrics === 'pv_count' ? '访问次数' : (metrics === 'visitor_count' ? '访客数' : '')) +// 这里为了统一颜色选取的是“明暗模式”下的两种字体颜色,也可以自己定义 +var color = document.documentElement.getAttribute('data-theme') === 'light' ? '#4c4948' : 'rgba(255,255,255,0.7)' + +// 访问地图 +function mapChart() { + let script = document.createElement("script") + // let paramUrl = '&start_date=' + start_date + '&end_date=' + end_date + '&metrics=' + metrics + '&method=visit/district/a'; // 更换请求地址 + let paramUrl = '&start_date=' + start_date + '&end_date=' + end_date + '&metrics=' + metrics + '&method=overview/getDistrictRpt'; + fetch(dataUrl + paramUrl).then(data => data.json()).then(data => { + let mapName = data.result.items[0] + let mapValue = data.result.items[1] + let mapArr = [] + let max = mapValue[0][0] + for (let i = 0; i < mapName.length; i++) { + // mapArr.push({ name: mapName[i][0].name, value: mapValue[i][0] }) + mapArr.push({ name: mapName[i][0], value: mapValue[i][0] }) + } + let mapArrJson = JSON.stringify(mapArr) + script.innerHTML = ` + var mapChart = echarts.init(document.getElementById('map-chart'), 'light'); + var mapOption = { + title: { + text: '网站访客地域分布图🌏', + x: 'center', + textStyle: { + color: '${color}' + } + }, + tooltip: { + trigger: 'item' + }, + visualMap: { + min: 0, + max: ${max}, + left: 'left', + top: 'bottom', + text: ['多','少'], + color: ['#39c5bb', '#b9ebe4'], + textStyle: { + color: '${color}' + }, + calculable: true + }, + series: [{ + name: '${metricsName}', + type: 'map', + mapType: 'china', + showLegendSymbol: false, + label: { + normal: { + show: false + }, + emphasis: { + show: true, + color: '#617282' + } + }, + itemStyle: { + normal: { + areaColor: 'rgb(230, 232, 234)', + borderColor: 'rgb(255, 255, 255)', + borderWidth: 1 + }, + emphasis: { + areaColor: 'gold' + } + }, + data: ${mapArrJson} + }] + }; + mapChart.setOption(mapOption); + window.addEventListener("resize", () => { + mapChart.resize(); + });` + document.getElementById('map-chart').after(script); + }).catch(function (error) { + console.log(error); + }); +} + +// 访问趋势 +function trendsChart() { + let script = document.createElement("script") + let paramUrl = '&start_date=' + start_date + '&end_date=' + end_date + '&metrics=' + metrics + '&method=trend/time/a&gran=month' + fetch(dataUrl + paramUrl).then(data => data.json()).then(data => { + let monthArr = [] + let monthValueArr = [] + let monthName = data.result.items[0] + let monthValue = data.result.items[1] + for (let i = monthName.length - 1; i >= 0; i--) { + monthArr.push(monthName[i][0].substring(0, 7).replace('/', '-')) + monthValueArr.push(monthValue[i][0] !== '--' ? monthValue[i][0] : 0) + } + let monthArrJson = JSON.stringify(monthArr) + let monthValueArrJson = JSON.stringify(monthValueArr) + script.innerHTML = ` + var trendsChart = echarts.init(document.getElementById('trends-chart'), 'light'); + var trendsOption = { + title: { + text: '网站访客日期分布图📅', + x: 'center', + textStyle: { + color: '${color}' + } + }, + tooltip: { + trigger: 'axis' + }, + xAxis: { + name: '日期', + type: 'category', + boundaryGap: false, + nameTextStyle: { + color: '${color}' + }, + axisTick: { + show: false + }, + axisLabel: { + show: true, + color: '${color}' + }, + axisLine: { + show: true, + lineStyle: { + color: '${color}' + } + }, + data: ${monthArrJson} + }, + yAxis: { + name: '${metricsName}', + type: 'value', + nameTextStyle: { + color: '${color}' + }, + splitLine: { + show: false + }, + axisTick: { + show: false + }, + axisLabel: { + show: true, + color: '${color}' + }, + axisLine: { + show: true, + lineStyle: { + color: '${color}' + } + } + }, + series: [{ + name: '${metricsName}', + type: 'line', + smooth: true, + lineStyle: { + width: 0 + }, + showSymbol: false, + itemStyle: { + opacity: 1, + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ + offset: 0, + color: 'rgba(128, 255, 165)' + }, + { + offset: 1, + color: 'rgba(1, 191, 236)' + }]) + }, + areaStyle: { + opacity: 1, + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ + offset: 0, + color: 'rgba(128, 255, 165)' + }, { + offset: 1, + color: 'rgba(1, 191, 236)' + }]) + }, + data: ${monthValueArrJson}, + markLine: { + data: [{ + name: '平均值', + type: 'average', + label: { + color: '${color}' + } + }] + } + }] + }; + trendsChart.setOption(trendsOption); + window.addEventListener("resize", () => { + trendsChart.resize(); + });` + document.getElementById('trends-chart').after(script); + }).catch(function (error) { + console.log(error); + }); +} + +// 访问来源 +function sourcesChart() { + let script = document.createElement("script") + let paramUrl = '&start_date=' + start_date + '&end_date=' + end_date + '&metrics=' + metrics + '&method=source/all/a'; + fetch(dataUrl + paramUrl).then(data => data.json()).then(data => { + let sourcesName = data.result.items[0] + let sourcesValue = data.result.items[1] + let sourcesArr = [] + for (let i = 0; i < sourcesName.length; i++) { + sourcesArr.push({ name: sourcesName[i][0].name, value: sourcesValue[i][0] }) + } + let sourcesArrJson = JSON.stringify(sourcesArr) + script.innerHTML = ` + var sourcesChart = echarts.init(document.getElementById('sources-chart'), 'light'); + var sourcesOption = { + title: { + text: '网站访客来源分布图🎨', + x: 'center', + textStyle: { + color: '${color}' + } + }, + legend: { + top: 'bottom', + textStyle: { + color: '${color}' + } + }, + tooltip: { + trigger: 'item' + }, + series: [{ + name: '${metricsName}', + type: 'pie', + radius: [30, 80], + center: ['50%', '50%'], + roseType: 'area', + label: { + color: '${color}', + formatter: "{b} : {c} ({d}%)" + }, + data: ${sourcesArrJson}, + itemStyle: { + emphasis: { + shadowBlur: 10, + shadowOffsetX: 0, + shadowColor: 'rgba(255, 255, 255, 0.5)' + } + } + }] + }; + sourcesChart.setOption(sourcesOption); + window.addEventListener("resize", () => { + sourcesChart.resize(); + });` + document.getElementById('sources-chart').after(script); + }).catch(function (error) { + console.log(error); + }); +} + +function switchVisitChart() { + // 这里为了统一颜色选取的是“明暗模式”下的两种字体颜色,也可以自己定义 + let color = document.documentElement.getAttribute('data-theme') === 'light' ? '#4c4948' : 'rgba(255,255,255,0.7)' + if (document.getElementById('map-chart') && mapOption) { + try { + let mapOptionNew = mapOption + mapOptionNew.title.textStyle.color = color + mapOptionNew.visualMap.textStyle.color = color + mapChart.setOption(mapOptionNew) + } catch (error) { + console.log(error) + } + } + if (document.getElementById('trends-chart') && trendsOption) { + try { + let trendsOptionNew = trendsOption + trendsOptionNew.title.textStyle.color = color + trendsOptionNew.xAxis.nameTextStyle.color = color + trendsOptionNew.yAxis.nameTextStyle.color = color + trendsOptionNew.xAxis.axisLabel.color = color + trendsOptionNew.yAxis.axisLabel.color = color + trendsOptionNew.xAxis.axisLine.lineStyle.color = color + trendsOptionNew.yAxis.axisLine.lineStyle.color = color + trendsOptionNew.series[0].markLine.data[0].label.color = color + trendsChart.setOption(trendsOptionNew) + } catch (error) { + console.log(error) + } + } + if (document.getElementById('sources-chart') && sourcesOption) { + try { + let sourcesOptionNew = sourcesOption + sourcesOptionNew.title.textStyle.color = color + sourcesOptionNew.legend.textStyle.color = color + sourcesOptionNew.series[0].label.color = color + sourcesChart.setOption(sourcesOptionNew) + } catch (error) { + console.log(error) + } + } +} + +if (document.getElementById('map-chart')) mapChart() +if (document.getElementById('trends-chart')) trendsChart() +if (document.getElementById('sources-chart')) sourcesChart() + +// 切换夜间模式字体颜色适应 +var censusTimer; +try { + document.addEventListener("click", function () { + clearTimeout(censusTimer); + censusTimer = setTimeout(switchVisitChart, 100); + }); +} catch (err) { } diff --git a/js/coin.js b/js/coin.js new file mode 100644 index 00000000..9f7f907c --- /dev/null +++ b/js/coin.js @@ -0,0 +1,90 @@ +var tipButtons = document.querySelectorAll('.tip-button') + +function coinAudio() { + var coinAudio = document.getElementById("coinAudio"); + if (coinAudio) { + coinAudio.play();//有音频时播放 + } +} +// Loop through all buttons (allows for multiple buttons on page) +tipButtons.forEach((button) => { + var coin = button.querySelector('.coin') + + // The larger the number, the slower the animation + coin.maxMoveLoopCount = 90 + + button.addEventListener('click', () => { + if (/Android|webOS|BlackBerry/i.test(navigator.userAgent)) return true; //媒体选择 + if (button.clicked) return + button.classList.add('clicked') + + // Wait to start flipping th coin because of the button tilt animation + setTimeout(() => { + // Randomize the flipping speeds just for fun + coin.sideRotationCount = Math.floor(Math.random() * 5) * 90 + coin.maxFlipAngle = (Math.floor(Math.random() * 4) + 3) * Math.PI + button.clicked = true + flipCoin() + coinAudio() + }, 50) + }) + + var flipCoin = () => { + coin.moveLoopCount = 0 + flipCoinLoop() + } + + var resetCoin = () => { + coin.style.setProperty('--coin-x-multiplier', 0) + coin.style.setProperty('--coin-scale-multiplier', 0) + coin.style.setProperty('--coin-rotation-multiplier', 0) + coin.style.setProperty('--shine-opacity-multiplier', 0.4) + coin.style.setProperty('--shine-bg-multiplier', '50%') + coin.style.setProperty('opacity', 1) + // Delay to give the reset animation some time before you can click again + setTimeout(() => { + button.clicked = false + }, 300) + } + + var flipCoinLoop = () => { + coin.moveLoopCount++ + var percentageCompleted = coin.moveLoopCount / coin.maxMoveLoopCount + coin.angle = -coin.maxFlipAngle * Math.pow((percentageCompleted - 1), 2) + coin.maxFlipAngle + + // Calculate the scale and position of the coin moving through the air + coin.style.setProperty('--coin-y-multiplier', -11 * Math.pow(percentageCompleted * 2 - 1, 4) + 11) + coin.style.setProperty('--coin-x-multiplier', percentageCompleted) + coin.style.setProperty('--coin-scale-multiplier', percentageCompleted * 0.6) + coin.style.setProperty('--coin-rotation-multiplier', percentageCompleted * coin.sideRotationCount) + + // Calculate the scale and position values for the different coin faces + // The math uses sin/cos wave functions to similate the circular motion of 3D spin + coin.style.setProperty('--front-scale-multiplier', Math.max(Math.cos(coin.angle), 0)) + coin.style.setProperty('--front-y-multiplier', Math.sin(coin.angle)) + + coin.style.setProperty('--middle-scale-multiplier', Math.abs(Math.cos(coin.angle), 0)) + coin.style.setProperty('--middle-y-multiplier', Math.cos((coin.angle + Math.PI / 2) % Math.PI)) + + coin.style.setProperty('--back-scale-multiplier', Math.max(Math.cos(coin.angle - Math.PI), 0)) + coin.style.setProperty('--back-y-multiplier', Math.sin(coin.angle - Math.PI)) + + coin.style.setProperty('--shine-opacity-multiplier', 4 * Math.sin((coin.angle + Math.PI / 2) % Math.PI) - 3.2) + coin.style.setProperty('--shine-bg-multiplier', -40 * (Math.cos((coin.angle + Math.PI / 2) % Math.PI) - 0.5) + '%') + + // Repeat animation loop + if (coin.moveLoopCount < coin.maxMoveLoopCount) { + if (coin.moveLoopCount === coin.maxMoveLoopCount - 6) button.classList.add('shrink-landing') + window.requestAnimationFrame(flipCoinLoop) + } else { + button.classList.add('coin-landed') + coin.style.setProperty('opacity', 0) + setTimeout(() => { + button.classList.remove('clicked', 'shrink-landing', 'coin-landed') + setTimeout(() => { + resetCoin() + }, 300) + }, 1500) + } + } +}) \ No newline at end of file diff --git a/js/fomal.js b/js/fomal.js new file mode 100644 index 00000000..9be08e6c --- /dev/null +++ b/js/fomal.js @@ -0,0 +1,3390 @@ +/* 阅读进度 start */ +document.addEventListener('pjax:complete', function () { + window.onscroll = percent; +}); +document.addEventListener('DOMContentLoaded', function () { + window.onscroll = percent; +}); +// 页面百分比 +function percent() { + + // 先让菜单栏消失 + try { + rmf.showRightMenu(false); + $('.rmMask').attr('style', 'display: none'); + } catch (err) { + + } + + let a = document.documentElement.scrollTop, // 卷去高度 + b = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight) - document.documentElement.clientHeight, // 整个网页高度 减去 可视高度 + result = Math.round(a / b * 100), // 计算百分比 + btn = document.querySelector("#go-up"); // 获取按钮 + + if (result < 95) { // 如果阅读进度小于95% 就显示百分比 + btn.childNodes[0].style.display = 'none' + btn.childNodes[1].style.display = 'block' + btn.childNodes[1].innerHTML = result + '%'; + } else { // 如果大于95%就显示回到顶部图标 + btn.childNodes[1].style.display = 'none' + btn.childNodes[0].style.display = 'block' + } +} +/* 阅读进度 end */ + +//---------------------------------------------------------------- + +/* 导航栏显示标题 start */ + +document.addEventListener('pjax:complete', tonav); +document.addEventListener('DOMContentLoaded', tonav); +//响应pjax +function tonav() { + document.getElementById("name-container").setAttribute("style", "display:none"); + var position = $(window).scrollTop(); + $(window).scroll(function () { + var scroll = $(window).scrollTop(); + if (scroll > position) { + document.getElementById("name-container").setAttribute("style", ""); + document.getElementsByClassName("menus_items")[1].setAttribute("style", "display:none!important"); + } else { + document.getElementsByClassName("menus_items")[1].setAttribute("style", ""); + document.getElementById("name-container").setAttribute("style", "display:none"); + } + position = scroll; + }); + //修复没有弄右键菜单的童鞋无法回顶部的问题 + document.getElementById("page-name").innerText = document.title.split(" | 兔兔博客🇨🇳")[0]; +} + +function scrollToTop() { + document.getElementsByClassName("menus_items")[1].setAttribute("style", ""); + document.getElementById("name-container").setAttribute("style", "display:none"); + btf.scrollToDest(0, 500); +} + +/* 导航栏显示标题 end */ + +//---------------------------------------------------------------- + +/* 欢迎信息 start */ +//get请求 +$.ajax({ + type: 'get', + url: 'https://china.tutuxka.eu.org/api/ip', + success: function (res) { + ipLoacation = res; + } +}); +function getDistance(e1, n1, e2, n2) { + const R = 6371 + const { sin, cos, asin, PI, hypot } = Math + let getPoint = (e, n) => { + e *= PI / 180 + n *= PI / 180 + return { x: cos(n) * cos(e), y: cos(n) * sin(e), z: sin(n) } + } + + let a = getPoint(e1, n1) + let b = getPoint(e2, n2) + let c = hypot(a.x - b.x, a.y - b.y, a.z - b.z) + let r = asin(c / 2) * 2 * R + return Math.round(r); +} + +function showWelcome() { + + let dist = getDistance(114.442627,23.090711, ipLoacation.result.location.lng, ipLoacation.result.location.lat); //这里换成自己的经纬度 + let pos = ipLoacation.result.ad_info.nation; + let ip; + let posdesc; + //根据国家、省份、城市信息自定义欢迎语 + switch (ipLoacation.result.ad_info.nation) { + case "日本": + posdesc = "よろしく,一起去看樱花吗"; + break; + case "美国": + posdesc = "Let us live in peace!"; + break; + case "英国": + posdesc = "想同你一起夜乘伦敦眼"; + break; + case "俄罗斯": + posdesc = "干了这瓶伏特加!"; + break; + case "法国": + posdesc = "C'est La Vie"; + break; + case "德国": + posdesc = "Die Zeit verging im Fluge."; + break; + case "澳大利亚": + posdesc = "一起去大堡礁吧!"; + break; + case "加拿大": + posdesc = "拾起一片枫叶赠予你"; + break; + case "中国": + pos = ipLoacation.result.ad_info.province + " " + ipLoacation.result.ad_info.city + " " + ipLoacation.result.ad_info.district; + ip = ipLoacation.result.ip; + switch (ipLoacation.result.ad_info.province) { + case "北京市": + posdesc = "北——京——欢迎你~~~"; + break; + case "天津市": + posdesc = "讲段相声吧。"; + break; + case "河北省": + posdesc = "山势巍巍成壁垒,天下雄关。铁马金戈由此向,无限江山。"; + break; + case "山西省": + posdesc = "展开坐具长三尺,已占山河五百余。"; + break; + case "内蒙古自治区": + posdesc = "天苍苍,野茫茫,风吹草低见牛羊。"; + break; + case "辽宁省": + posdesc = "我想吃烤鸡架!"; + break; + case "吉林省": + posdesc = "状元阁就是东北烧烤之王。"; + break; + case "黑龙江省": + posdesc = "很喜欢哈尔滨大剧院。"; + break; + case "上海市": + posdesc = "众所周知,中国只有两个城市。"; + break; + case "江苏省": + switch (ipLoacation.result.ad_info.city) { + case "南京市": + posdesc = "这是我挺想去的城市啦。"; + break; + case "苏州市": + posdesc = "上有天堂,下有苏杭。"; + break; + default: + posdesc = "散装是必须要散装的。"; + break; + } + break; + case "浙江省": + posdesc = "东风渐绿西湖柳,雁已还人未南归。"; + break; + case "河南省": + switch (ipLoacation.result.ad_info.city) { + case "郑州市": + posdesc = "豫州之域,天地之中。"; + break; + case "南阳市": + posdesc = "臣本布衣,躬耕于南阳。此南阳非彼南阳!"; + break; + case "驻马店市": + posdesc = "峰峰有奇石,石石挟仙气。嵖岈山的花很美哦!"; + break; + case "开封市": + posdesc = "刚正不阿包青天。"; + break; + case "洛阳市": + posdesc = "洛阳牡丹甲天下。"; + break; + default: + posdesc = "可否带我品尝河南烩面啦?"; + break; + } + break; + case "安徽省": + posdesc = "蚌埠住了,芜湖起飞。"; + break; + case "福建省": + posdesc = "井邑白云间,岩城远带山。"; + break; + case "江西省": + posdesc = "落霞与孤鹜齐飞,秋水共长天一色。"; + break; + case "山东省": + posdesc = "遥望齐州九点烟,一泓海水杯中泻。"; + break; + case "湖北省": + posdesc = "来碗热干面!"; + break; + case "湖南省": + posdesc = "74751,长沙斯塔克。"; + break; + case "广东省": + posdesc = "老板来两斤福建人。"; + break; + case "广西壮族自治区": + posdesc = "桂林山水甲天下。"; + break; + case "海南省": + posdesc = "朝观日出逐白浪,夕看云起收霞光。"; + break; + case "四川省": + posdesc = "康康川妹子。"; + break; + case "贵州省": + posdesc = "茅台,学生,再塞200。"; + break; + case "云南省": + posdesc = "玉龙飞舞云缠绕,万仞冰川直耸天。"; + break; + case "西藏自治区": + posdesc = "躺在茫茫草原上,仰望蓝天。"; + break; + case "陕西省": + posdesc = "来份臊子面加馍。"; + break; + case "甘肃省": + posdesc = "羌笛何须怨杨柳,春风不度玉门关。"; + break; + case "青海省": + posdesc = "牛肉干和老酸奶都好好吃。"; + break; + case "宁夏回族自治区": + posdesc = "大漠孤烟直,长河落日圆。"; + break; + case "新疆维吾尔自治区": + posdesc = "驼铃古道丝绸路,胡马犹闻唐汉风。"; + break; + case "台湾省": + posdesc = "我在这头,大陆在那头。"; + break; + case "香港特别行政区": + posdesc = "永定贼有残留地鬼嚎,迎击光非岁玉。"; + break; + case "澳门特别行政区": + posdesc = "性感荷官,在线发牌。"; + break; + default: + posdesc = "带我去你的城市逛逛吧!"; + break; + } + break; + default: + posdesc = "带我去你的国家逛逛吧。"; + break; + } + + //根据本地时间切换欢迎语 + let timeChange; + let date = new Date(); + if (date.getHours() >= 5 && date.getHours() < 11) timeChange = "上午好,一日之计在于晨!"; + else if (date.getHours() >= 11 && date.getHours() < 13) timeChange = "中午好,该摸鱼吃午饭了。"; + else if (date.getHours() >= 13 && date.getHours() < 15) timeChange = "下午好,懒懒地睡个午觉吧!"; + else if (date.getHours() >= 15 && date.getHours() < 16) timeChange = "三点几啦,一起饮茶呀!"; + else if (date.getHours() >= 16 && date.getHours() < 19) timeChange = "夕阳无限好!"; + else if (date.getHours() >= 19 && date.getHours() < 24) timeChange = "晚上好,夜生活嗨起来!"; + else timeChange = "夜深了,早点休息,少熬夜。"; + + try { + //自定义文本和需要放的位置 + document.getElementById("welcome-info").innerHTML = + `
🎉 欢迎信息 🎉
  欢迎来自 ${pos} 的小伙伴,${timeChange}您现在距离站长约 ${dist} 公里,当前的IP地址为: ${ip}, ${posdesc}
`; + } catch (err) { + // console.log("Pjax无法获取#welcome-info元素🙄🙄🙄") + } +} +window.onload = showWelcome; +// 如果使用了pjax在加上下面这行代码 +document.addEventListener('pjax:complete', showWelcome); + +/* 欢迎信息 end */ + +//---------------------------------------------------------------- + +/* 微博热搜 start */ +document.addEventListener('pjax:complete', getWeibo); +document.addEventListener('DOMContentLoaded', getWeibo); + +function getWeibo() { + fetch('https://weibo.tutuxka.eu.org/api').then(data => data.json()).then(data => { // 这里要写上你的API!!! + let html = '' + html += '
' + let hotness = { + '爆': 'weibo-boom', + '热': 'weibo-hot', + '沸': 'weibo-boil', + '新': 'weibo-new', + '荐': 'weibo-recommend', + '音': 'weibo-jyzy', + '影': 'weibo-jyzy', + '剧': 'weibo-jyzy', + '综': 'weibo-jyzy' + } + for (let item of data) { + html += '
' + (item.hot || '荐') + '
' + + '' + item.title + '' + + '
' + item.num + '
' + } + html += '
' + document.getElementById('weibo-container').innerHTML = html + }).catch(function (error) { + console.log(error); + }); +} + +/* 微博热搜 end */ + +//---------------------------------------------------------------- + +/* 禁用f12与按键防抖 start */ +// 防抖全局计时器 +let TT = null; //time用来控制事件的触发 +// 防抖函数:fn->逻辑 time->防抖时间 +function debounce(fn, time) { + if (TT !== null) clearTimeout(TT); + TT = setTimeout(fn, time); +} + +// 复制提醒 +document.addEventListener("copy", function () { + debounce(function () { + new Vue({ + data: function () { + this.$notify({ + title: "哎嘿!复制成功🍬", + message: "若要转载最好保留原文链接哦,给你一个大大的赞!", + position: 'top-left', + offset: 50, + showClose: true, + type: "success", + duration: 5000 + }); + } + }) + }, 300); +}) + + +// f12提醒但不禁用 +document.onkeydown = function (e) { + if (123 == e.keyCode || (e.ctrlKey && e.shiftKey && (74 === e.keyCode || 73 === e.keyCode || 67 === e.keyCode)) || (e.ctrlKey && 85 === e.keyCode)) { + debounce(function () { + new Vue({ + data: function () { + this.$notify({ + title: "你已被发现😜", + message: "小伙子,扒源记住要遵循GPL协议!", + position: 'top-left', + offset: 50, + showClose: true, + type: "warning", + duration: 5000 + }); + } + }) + }, 300); + } +}; +/* 禁用f12与按键防抖 end */ + +//---------------------------------------------------------------- + +/* 雪花特效 start */ +if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) { + // 移动端不显示 +} else { + // document.write(''); + + window && (() => { + let e = { + flakeCount: 50, // 雪花数目 + minDist: 150, // 最小距离 + color: "255, 255, 255", // 雪花颜色 + size: 1.5, // 雪花大小 + speed: .5, // 雪花速度 + opacity: .7, // 雪花透明度 + stepsize: .5 // 步距 + }; + const t = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || function (e) { + window.setTimeout(e, 1e3 / 60) + } + ; + window.requestAnimationFrame = t; + const i = document.getElementById("snow"), + n = i.getContext("2d"), + o = e.flakeCount; + let a = -100, + d = -100, + s = []; + i.width = window.innerWidth, + i.height = window.innerHeight; + const h = () => { + n.clearRect(0, 0, i.width, i.height); + const r = e.minDist; + for (let t = 0; t < o; t++) { + let o = s[t]; + const h = a, + w = d, + m = o.x, + c = o.y, + p = Math.sqrt((h - m) * (h - m) + (w - c) * (w - c)); + if (p < r) { + const e = (h - m) / p, + t = (w - c) / p, + i = r / (p * p) / 2; + o.velX -= i * e, + o.velY -= i * t + } else + o.velX *= .98, + o.velY < o.speed && o.speed - o.velY > .01 && (o.velY += .01 * (o.speed - o.velY)), + o.velX += Math.cos(o.step += .05) * o.stepSize; + n.fillStyle = "rgba(" + e.color + ", " + o.opacity + ")", + o.y += o.velY, + o.x += o.velX, + (o.y >= i.height || o.y <= 0) && l(o), + (o.x >= i.width || o.x <= 0) && l(o), + n.beginPath(), + n.arc(o.x, o.y, o.size, 0, 2 * Math.PI), + n.fill() + } + t(h) + } + , l = e => { + e.x = Math.floor(Math.random() * i.width), + e.y = 0, + e.size = 3 * Math.random() + 2, + e.speed = 1 * Math.random() + .5, + e.velY = e.speed, + e.velX = 0, + e.opacity = .5 * Math.random() + .3 + } + ; + document.addEventListener("mousemove", (e => { + a = e.clientX, + d = e.clientY + } + )), + window.addEventListener("resize", (() => { + i.width = window.innerWidth, + i.height = window.innerHeight + } + )), + (() => { + for (let t = 0; t < o; t++) { + const t = Math.floor(Math.random() * i.width) + , n = Math.floor(Math.random() * i.height) + , o = 3 * Math.random() + e.size + , a = 1 * Math.random() + e.speed + , d = .5 * Math.random() + e.opacity; + s.push({ + speed: a, + velX: 0, + velY: a, + x: t, + y: n, + size: o, + stepSize: Math.random() / 30 * e.stepsize, + step: 0, + angle: 180, + opacity: d + }) + } + h() + } + )() + } + )(); +} + +/* 雪花特效 end */ + +//---------------------------------------------------------------- + +/* 星空特效 start */ +function dark() { + window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame; + var n, e, i, h, t = .05, + s = document.getElementById("universe"), + o = !0, + a = "180,184,240", + r = "226,225,142", + d = "226,225,224", + c = []; + + function f() { + n = window.innerWidth, e = window.innerHeight, i = .216 * n, s.setAttribute("width", n), s.setAttribute("height", e) + } + function u() { + h.clearRect(0, 0, n, e); + for (var t = c.length, i = 0; i < t; i++) { + var s = c[i]; + s.move(), s.fadeIn(), s.fadeOut(), s.draw() + } + } + function y() { + this.reset = function () { + this.giant = m(3), this.comet = !this.giant && !o && m(10), this.x = l(0, n - 10), this.y = l(0, e), this.r = l(1.1, 2.6), this.dx = l(t, 6 * t) + (this.comet + 1 - 1) * t * l(50, 120) + 2 * t, this.dy = -l(t, 6 * t) - (this.comet + 1 - 1) * t * l(50, 120), this.fadingOut = null, this.fadingIn = !0, this.opacity = 0, this.opacityTresh = l(.2, 1 - .4 * (this.comet + 1 - 1)), this.do = l(5e-4, .002) + .001 * (this.comet + 1 - 1) + }, this.fadeIn = function () { + this.fadingIn && (this.fadingIn = !(this.opacity > this.opacityTresh), this.opacity += this.do) + }, this.fadeOut = function () { + this.fadingOut && (this.fadingOut = !(this.opacity < 0), this.opacity -= this.do / 2, (this.x > n || this.y < 0) && (this.fadingOut = !1, this.reset())) + }, this.draw = function () { + if (h.beginPath(), this.giant) h.fillStyle = "rgba(" + a + "," + this.opacity + ")", h.arc(this.x, this.y, 2, 0, 2 * Math.PI, !1); else if (this.comet) { + h.fillStyle = "rgba(" + d + "," + this.opacity + ")", h.arc(this.x, this.y, 1.5, 0, 2 * Math.PI, !1); for (var t = 0; t < 30; t++)h.fillStyle = "rgba(" + d + "," + (this.opacity - this.opacity / 20 * t) + ")", h.rect(this.x - this.dx / 4 * t, this.y - this.dy / 4 * t - 2, 2, 2), h.fill() + } else h.fillStyle = "rgba(" + r + "," + this.opacity + ")", h.rect(this.x, this.y, this.r, this.r); + h.closePath(), h.fill() + }, this.move = function () { + this.x += this.dx, this.y += this.dy, !1 === this.fadingOut && this.reset(), (this.x > n - n / 4 || this.y < 0) && (this.fadingOut = !0) + }, setTimeout(function () { + o = !1 + }, 50) + } + function m(t) { + return Math.floor(1e3 * Math.random()) + 1 < 10 * t + } + function l(t, i) { + return Math.random() * (i - t) + t + } + f(), window.addEventListener("resize", f, !1), function () { + h = s.getContext("2d"); + for (var t = 0; t < i; t++) c[t] = new y, c[t].reset(); + u() + }(), function t() { + document.getElementsByTagName('html')[0].getAttribute('data-theme') == 'dark' && u(), window.requestAnimationFrame(t) + }() +}; +dark() +/* 星空特效 end */ + +//---------------------------------------------------------------- + +/* 表情放大 start */ +document.addEventListener('pjax:complete', function () { + if (document.getElementById('post-comment')) owoBig(); +}); +document.addEventListener('DOMContentLoaded', function () { + if (document.getElementById('post-comment')) owoBig(); +}); + +// 表情放大 +function owoBig() { + let flag = 1, // 设置节流阀 + owo_time = '', // 设置计时器 + m = 3; // 设置放大倍数 + // 创建盒子 + let div = document.createElement('div'), + body = document.querySelector('body'); + // 设置ID + div.id = 'owo-big'; + // 插入盒子 + body.appendChild(div) + + // 构造observer + let observer = new MutationObserver(mutations => { + + for (let i = 0; i < mutations.length; i++) { + let dom = mutations[i].addedNodes, + owo_body = ''; + if (dom.length == 2 && dom[1].className == 'OwO-body') owo_body = dom[1]; + // 如果需要在评论内容中启用此功能请解除下面的注释 + // else if (dom.length == 1 && dom[0].className == 'tk-comment') owo_body = dom[0]; + else continue; + + // 禁用右键(手机端长按会出现右键菜单,为了体验给禁用掉) + if (document.body.clientWidth <= 768) owo_body.addEventListener('contextmenu', e => e.preventDefault()); + // 鼠标移入 + owo_body.onmouseover = (e) => { + if (flag && e.target.tagName == 'IMG') { + flag = 0; + // 移入300毫秒后显示盒子 + owo_time = setTimeout(() => { + let height = e.path[0].clientHeight * m, // 盒子高 + width = e.path[0].clientWidth * m, // 盒子宽 + left = (e.x - e.offsetX) - (width - e.path[0].clientWidth) / 2, // 盒子与屏幕左边距离 + top = e.y - e.offsetY; // 盒子与屏幕顶部距离 + + if ((left + width) > body.clientWidth) left -= ((left + width) - body.clientWidth + 10); // 右边缘检测,防止超出屏幕 + if (left < 0) left = 10; // 左边缘检测,防止超出屏幕 + // 设置盒子样式 + div.style.cssText = `display:flex; height:${height}px; width:${width}px; left:${left}px; top:${top}px;`; + // 在盒子中插入图片 + div.innerHTML = `` + }, 300); + } + }; + // 鼠标移出隐藏盒子 + owo_body.onmouseout = () => { div.style.display = 'none', flag = 1, clearTimeout(owo_time); } + } + + }) + observer.observe(document.getElementById('post-comment'), { subtree: true, childList: true }) +} +/* 表情放大 end */ + +//---------------------------------------------------------------- + +/* 随便逛逛 start */ +// 随便逛逛 +// 发现有时会和当前页面重复,加一个判断 +function randomPost() { + fetch('/baidusitemap.xml').then(res => res.text()).then(str => (new window.DOMParser()).parseFromString(str, "text/xml")).then(data => { + let ls = data.querySelectorAll('url loc'); + while (true) { + let url = ls[Math.floor(Math.random() * ls.length)].innerHTML; + if (location.href == url) continue; + location.href = url; + return; + } + }) +} +/* 随便逛逛 end */ + +//---------------------------------------------------------------- + +/* 右键菜单 start */ +function setMask() { + //设置遮罩 + if (document.getElementsByClassName("rmMask")[0] != undefined) + return document.getElementsByClassName("rmMask")[0]; + mask = document.createElement('div'); + mask.className = "rmMask"; + mask.style.width = window.innerWidth + 'px'; + mask.style.height = window.innerHeight + 'px'; + mask.style.background = '#fff'; + mask.style.opacity = '.0'; + mask.style.position = 'fixed'; + mask.style.top = '0'; + mask.style.left = '0'; + mask.style.zIndex = 998; + document.body.appendChild(mask); + document.getElementById("rightMenu").style.zIndex = 19198; + return mask; +} + +function insertAtCursor(myField, myValue) { + + //IE 浏览器 + if (document.selection) { + myField.focus(); + sel = document.selection.createRange(); + sel.text = myValue; + sel.select(); + } + + //FireFox、Chrome等 + else if (myField.selectionStart || myField.selectionStart == '0') { + var startPos = myField.selectionStart; + var endPos = myField.selectionEnd; + + // 保存滚动条 + var restoreTop = myField.scrollTop; + myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); + + if (restoreTop > 0) { + myField.scrollTop = restoreTop; + } + + myField.focus(); + myField.selectionStart = startPos + myValue.length; + myField.selectionEnd = startPos + myValue.length; + } else { + myField.value += myValue; + myField.focus(); + } +} + +let rmf = {}; +rmf.showRightMenu = function (isTrue, x = 0, y = 0) { + let $rightMenu = $('#rightMenu'); + $rightMenu.css('top', x + 'px').css('left', y + 'px'); + + if (isTrue) { + $rightMenu.show(); + } else { + $rightMenu.hide(); + } +} + +rmf.copyWordsLink = function () { + let url = window.location.href + let txa = document.createElement("textarea"); + txa.value = url; + document.body.appendChild(txa) + txa.select(); + document.execCommand("Copy"); + document.body.removeChild(txa); +} +rmf.switchReadMode = function () { + const $body = document.body + $body.classList.add('read-mode') + const newEle = document.createElement('button') + newEle.type = 'button' + newEle.className = 'fas fa-sign-out-alt exit-readmode' + $body.appendChild(newEle) + + function clickFn() { + $body.classList.remove('read-mode') + newEle.remove() + newEle.removeEventListener('click', clickFn) + } + + newEle.addEventListener('click', clickFn) +} + +//复制选中文字 +rmf.copySelect = function () { + document.execCommand('Copy', false, null); +} + +//回到顶部 +rmf.scrollToTop = function () { + document.getElementsByClassName("menus_items")[1].setAttribute("style", ""); + document.getElementById("name-container").setAttribute("style", "display:none"); + btf.scrollToDest(0, 500); +} + +document.body.addEventListener('touchmove', function () { + +}, { passive: false }); + +function popupMenu() { + window.oncontextmenu = function (event) { + // if (event.ctrlKey) return true; + + // 当关掉自定义右键时候直接返回 + if (mouseMode == "off") return true; + + $('.rightMenu-group.hide').hide(); + if (document.getSelection().toString()) { + $('#menu-text').show(); + } + if (document.getElementById('post')) { + $('#menu-post').show(); + } else { + if (document.getElementById('page')) { + $('#menu-post').show(); + } + } + var el = window.document.body; + el = event.target; + var a = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\*\+,;=.]+$/ + if (a.test(window.getSelection().toString()) && el.tagName != "A") { + $('#menu-too').show() + } + if (el.tagName == 'A') { + $('#menu-to').show() + rmf.open = function () { + if (el.href.indexOf("http://") == -1 && el.href.indexOf("https://") == -1 || el.href.indexOf("yisous.xyz") != -1) { + pjax.loadUrl(el.href) + } + else { + location.href = el.href + } + } + rmf.openWithNewTab = function () { + window.open(el.href); + // window.location.reload(); + } + rmf.copyLink = function () { + let url = el.href + let txa = document.createElement("textarea"); + txa.value = url; + document.body.appendChild(txa) + txa.select(); + document.execCommand("Copy"); + document.body.removeChild(txa); + } + } else if (el.tagName == 'IMG') { + $('#menu-img').show() + rmf.openWithNewTab = function () { + window.open(el.src); + // window.location.reload(); + } + rmf.click = function () { + el.click() + } + rmf.copyLink = function () { + let url = el.src + let txa = document.createElement("textarea"); + txa.value = url; + document.body.appendChild(txa) + txa.select(); + document.execCommand("Copy"); + document.body.removeChild(txa); + } + rmf.saveAs = function () { + var a = document.createElement('a'); + var url = el.src; + var filename = url.split("/")[-1]; + a.href = url; + a.download = filename; + a.click(); + window.URL.revokeObjectURL(url); + } + } else if (el.tagName == "TEXTAREA" || el.tagName == "INPUT") { + $('#menu-paste').show(); + rmf.paste = function () { + navigator.permissions + .query({ + name: 'clipboard-read' + }) + .then(result => { + if (result.state == 'granted' || result.state == 'prompt') { + //读取剪贴板 + navigator.clipboard.readText().then(text => { + console.log(text) + insertAtCursor(el, text) + }) + } else { + Snackbar.show({ + text: '请允许读取剪贴板!', + pos: 'top-center', + showAction: false, + }) + } + }) + } + } + let pageX = event.clientX + 10; + let pageY = event.clientY; + let rmWidth = $('#rightMenu').width(); + let rmHeight = $('#rightMenu').height(); + if (pageX + rmWidth > window.innerWidth) { + pageX -= rmWidth + 10; + } + if (pageY + rmHeight > window.innerHeight) { + pageY -= pageY + rmHeight - window.innerHeight; + } + mask = setMask(); + // 滚动消失的代码和阅读进度有冲突,因此放到readPercent.js里面了 + $(".rightMenu-item").click(() => { + $('.rmMask').attr('style', 'display: none'); + }) + $(window).resize(() => { + rmf.showRightMenu(false); + $('.rmMask').attr('style', 'display: none'); + }) + mask.onclick = () => { + $('.rmMask').attr('style', 'display: none'); + } + rmf.showRightMenu(true, pageY, pageX); + $('.rmMask').attr('style', 'display: flex'); + return false; + }; + + window.addEventListener('click', function () { + rmf.showRightMenu(false); + }); +} +if (!(navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) { + popupMenu() +} +const box = document.documentElement + +function addLongtabListener(target, callback) { + let timer = 0 // 初始化timer + + target.ontouchstart = () => { + timer = 0 // 重置timer + timer = setTimeout(() => { + callback(); + timer = 0 + }, 380) // 超时器能成功执行,说明是长按 + } + + target.ontouchmove = () => { + clearTimeout(timer) // 如果来到这里,说明是滑动 + timer = 0 + } + + target.ontouchend = () => { // 到这里如果timer有值,说明此触摸时间不足380ms,是点击 + if (timer) { + clearTimeout(timer) + } + } +} + +addLongtabListener(box, popupMenu) + +// 全屏 +rmf.fullScreen = function () { + if (document.fullscreenElement) document.exitFullscreen(); + else document.documentElement.requestFullscreen(); +} + +// 右键开关 +if (localStorage.getItem("mouse") == undefined) { + localStorage.setItem("mouse", "on"); +} +var mouseMode = localStorage.getItem("mouse"); +function changeMouseMode() { + if (localStorage.getItem("mouse") == "on") { + mouseMode = "off"; + localStorage.setItem("mouse", "off"); + debounce(function () { + new Vue({ + data: function () { + this.$notify({ + title: "切换右键模式成功🍔", + message: "当前鼠标右键已恢复为系统默认!", + position: 'top-left', + offset: 50, + showClose: true, + type: "success", + duration: 5000 + }); + } + }) + }, 300); + } else { + mouseMode = "on"; + localStorage.setItem("mouse", "on"); + debounce(function () { + new Vue({ + data: function () { + this.$notify({ + title: "切换右键模式成功🍔", + message: "当前鼠标右键已更换为网站指定样式!", + position: 'top-left', + offset: 50, + showClose: true, + type: "success", + duration: 5000 + }); + } + }) + }, 300); + } +} +/* 右键菜单 end */ + +//---------------------------------------------------------------- + +/* 控制台输出字符画 start */ +var now1 = new Date(); + +function createtime1() { + var grt = new Date("08/09/2022 00:00:00"); //此处修改你的建站时间或者网站上线时间 + now1.setTime(now1.getTime() + 250); + var days = (now1 - grt) / 1000 / 60 / 60 / 24; + var dnum = Math.floor(days); + + var ascll = [ + `欢迎来到兔兔博客🇨🇳の小家!`, + `Future is now 🍭🍭🍭`, + ` + +███████ ██ ██ ███████ ██ ██ ██ ██ ██ + ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ + ██ ██ ██ ██ ██ ██ ██ ██ ██ + ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ + ██ ████ ██ ████ ██ ██ ██ ██ + +`, + "小站已经苟活", + dnum, + "天啦!", + "©2022 By 兔兔博客🇨🇳", + ]; + + setTimeout( + console.log.bind( + console, + `\n%c${ascll[0]} %c ${ascll[1]} %c ${ascll[2]} %c${ascll[3]}%c ${ascll[4]}%c ${ascll[5]}\n\n%c ${ascll[6]}\n`, + "color:#39c5bb", + "", + "color:#39c5bb", + "color:#39c5bb", + "", + "color:#39c5bb", + "" + ) + ); +} + +createtime1(); + +function createtime2() { + var ascll2 = [`NCC2-036`, `调用前置摄像头拍照成功,识别为「大聪明」`, `Photo captured: `, ` 🤪 `]; + + setTimeout( + console.log.bind( + console, + `%c ${ascll2[0]} %c ${ascll2[1]} %c \n${ascll2[2]} %c\n${ascll2[3]}`, + "color:white; background-color:#10bcc0", + "", + "", + 'background:url("https://unpkg.zhimg.com/anzhiyu-assets@latest/image/common/tinggge.gif") no-repeat;font-size:450%' + ) + ); + + setTimeout(console.log.bind(console, "%c WELCOME %c 欢迎光临,大聪明", "color:white; background-color:#23c682", "")); + + setTimeout( + console.warn.bind( + console, + "%c ⚡ Powered by 兔兔博客🇨🇳 %c 你正在访问兔兔博客🇨🇳の小家", + "color:white; background-color:#f0ad4e", + "" + ) + ); + + setTimeout(console.log.bind(console, "%c W23-12 %c 系统监测到你已打开控制台", "color:white; background-color:#4f90d9", "")); + setTimeout( + console.warn.bind(console, "%c S013-782 %c 你现在正处于监控中", "color:white; background-color:#d9534f", "") + ); +} +createtime2(); + +// 重写console方法 +console.log = function () { }; +console.error = function () { }; +console.warn = function () { }; + +/* 控制台输出字符画 end */ + +//---------------------------------------------------------------- + +/* 夜间模式切换动画 start */ +function switchNightMode() { + document.querySelector('body').insertAdjacentHTML('beforeend', '
'), + setTimeout(function () { + document.querySelector('body').classList.contains('DarkMode') ? (document.querySelector('body').classList.remove('DarkMode'), localStorage.setItem('isDark', '0'), document.getElementById('modeicon').setAttribute('xlink:href', '#icon-moon')) : (document.querySelector('body').classList.add('DarkMode'), localStorage.setItem('isDark', '1'), document.getElementById('modeicon').setAttribute('xlink:href', '#icon-sun')), + setTimeout(function () { + document.getElementsByClassName('Cuteen_DarkSky')[0].style.transition = 'opacity 3s'; + document.getElementsByClassName('Cuteen_DarkSky')[0].style.opacity = '0'; + setTimeout(function () { + document.getElementsByClassName('Cuteen_DarkSky')[0].remove(); + }, 1e3); + }, 2e3) + }) + const nowMode = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'light' + if (nowMode === 'light') { + // 先设置太阳月亮透明度 + document.getElementById("sun").style.opacity = "1"; + document.getElementById("moon").style.opacity = "0"; + setTimeout(function () { + document.getElementById("sun").style.opacity = "0"; + document.getElementById("moon").style.opacity = "1"; + }, 1000); + + activateDarkMode() + saveToLocal.set('theme', 'dark', 2) + // GLOBAL_CONFIG.Snackbar !== undefined && btf.snackbarShow(GLOBAL_CONFIG.Snackbar.day_to_night) + document.getElementById('modeicon').setAttribute('xlink:href', '#icon-sun') + // 延时弹窗提醒 + setTimeout(() => { + new Vue({ + data: function () { + this.$notify({ + title: "关灯啦🌙", + message: "当前已成功切换至夜间模式!", + position: 'top-left', + offset: 50, + showClose: true, + type: "success", + duration: 5000 + }); + } + }) + }, 2000) + } else { + // 先设置太阳月亮透明度 + document.getElementById("sun").style.opacity = "0"; + document.getElementById("moon").style.opacity = "1"; + setTimeout(function () { + document.getElementById("sun").style.opacity = "1"; + document.getElementById("moon").style.opacity = "0"; + }, 1000); + + activateLightMode() + saveToLocal.set('theme', 'light', 2) + document.querySelector('body').classList.add('DarkMode'), document.getElementById('modeicon').setAttribute('xlink:href', '#icon-moon') + setTimeout(() => { + new Vue({ + data: function () { + this.$notify({ + title: "开灯啦🌞", + message: "当前已成功切换至白天模式!", + position: 'top-left', + offset: 50, + showClose: true, + type: "success", + duration: 5000 + }); + } + }) + }, 2000) + } + // handle some cases + typeof utterancesTheme === 'function' && utterancesTheme() + typeof FB === 'object' && window.loadFBComment() + window.DISQUS && document.getElementById('disqus_thread').children.length && setTimeout(() => window.disqusReset(), 200) +} + +/* 夜间模式切换动画 end */ + +//---------------------------------------------------------------- + +/* 分享按钮 start */ +// 分享本页 +function share_() { + let url = window.location.origin + window.location.pathname + try { + // 截取标题 + var title = document.title; + var subTitle = title.endsWith("| 兔兔博客🇨🇳") ? title.substring(0, title.length - 14) : title; + navigator.clipboard.writeText('兔兔博客🇨🇳的站内分享\n标题:' + subTitle + '\n链接:' + url + '\n欢迎来访!🍭🍭🍭'); + new Vue({ + data: function () { + this.$notify({ + title: "成功复制分享信息🎉", + message: "您现在可以通过粘贴直接跟小伙伴分享了!", + position: 'top-left', + offset: 50, + showClose: true, + type: "success", + duration: 5000 + }); + // return { visible: false } + } + }) + } catch (err) { + console.error('复制失败!', err); + } + // new ClipboardJS(".share", { text: function () { return '标题:' + document.title + '\n链接:' + url } }); + // btf.snackbarShow("本页链接已复制到剪切板,快去分享吧~") +} + +// 防抖 +function share() { + debounce(share_, 300); +} + +/* 分享按钮 end */ + +//---------------------------------------------------------------- + +/* 恶搞标题 start */ +//动态标题 +var OriginTitile = document.title; +var titleTime; +document.addEventListener('visibilitychange', function () { + if (document.hidden) { + //离开当前页面时标签显示内容 + document.title = '👀跑哪里去了~'; + clearTimeout(titleTime); + } else { + //返回当前页面时标签显示内容 + document.title = '🐖抓到你啦~'; + //两秒后变回正常标题 + titleTime = setTimeout(function () { + document.title = OriginTitile; + }, 2000); + } +}); +/* 恶搞标题 end */ + +//---------------------------------------------------------------- + + +/* 农历转换 start */ +/** + +* @1900-2100区间内的公历、农历互转 + +* @charset UTF-8 + +* @Author jiangjiazhi + +* @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0] + +* @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0] + +*/ + + + +/** + +* 农历1900-2100的润大小信息表 + +* @Array Of Property + +* @return Hex + +*/ + +var lunarInfo = [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, // 1900-1909 + + 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, // 1910-1919 + + 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, // 1920-1929 + + 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, // 1930-1939 + + 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, // 1940-1949 + + 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, // 1950-1959 + + 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, // 1960-1969 + + 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, // 1970-1979 + + 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, // 1980-1989 + + 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, // 1990-1999 + + 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, // 2000-2009 + + 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, // 2010-2019 + + 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, // 2020-2029 + + 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, // 2030-2039 + + 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, // 2040-2049 + + 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, // 2050-2059 + + 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, // 2060-2069 + + 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, // 2070-2079 + + 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, // 2080-2089 + + 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, // 2090-2099 + + 0x0d520] // 2100 + + + +var solarMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] + + + +/** + +* 天干地支之天干速查表 + +* @Array Of Property trans['甲','乙','丙','丁','戊','己','庚','辛','壬','癸'] + +* @return Cn string + +*/ + +var Gan = ['\u7532', '\u4e59', '\u4e19', '\u4e01', '\u620a', '\u5df1', '\u5e9a', '\u8f9b', '\u58ec', '\u7678'] + + + +/** + +* 天干地支之地支速查表 + +* @Array Of Property + +* @trans['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥'] + +* @return Cn string + +*/ + +var Zhi = ['\u5b50', '\u4e11', '\u5bc5', '\u536f', '\u8fb0', '\u5df3', '\u5348', '\u672a', '\u7533', '\u9149', '\u620c', '\u4ea5'] + + + +/** + +* 天干地支之地支速查表<=>生肖 + +* @Array Of Property + +* @trans['鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪'] + +* @return Cn string + +*/ + +var Animals = ['\u9f20', '\u725b', '\u864e', '\u5154', '\u9f99', '\u86c7', '\u9a6c', '\u7f8a', '\u7334', '\u9e21', '\u72d7', '\u732a'] + + + +/** + +* 24节气速查表 + +* @Array Of Property + +* @trans['小寒','大寒','立春','雨水','惊蛰','春分','清明','谷雨','立夏','小满','芒种','夏至','小暑','大暑','立秋','处暑','白露','秋分','寒露','霜降','立冬','小雪','大雪','冬至'] + +* @return Cn string + +*/ + +var solarTerm = ['\u5c0f\u5bd2', '\u5927\u5bd2', '\u7acb\u6625', '\u96e8\u6c34', '\u60ca\u86f0', '\u6625\u5206', '\u6e05\u660e', '\u8c37\u96e8', '\u7acb\u590f', '\u5c0f\u6ee1', '\u8292\u79cd', '\u590f\u81f3', '\u5c0f\u6691', '\u5927\u6691', '\u7acb\u79cb', '\u5904\u6691', '\u767d\u9732', '\u79cb\u5206', '\u5bd2\u9732', '\u971c\u964d', '\u7acb\u51ac', '\u5c0f\u96ea', '\u5927\u96ea', '\u51ac\u81f3'] + + + +/** + +* 1900-2100各年的24节气日期速查表 + +* @Array Of Property + +* @return 0x string For splice + +*/ + +var sTermInfo = ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', + + '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + + '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', + + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', + + 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f', + + '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa', + + '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', + + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f', + + '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', + + '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + + '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', + + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', + + '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + + '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722', + + '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f', + + '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + + '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722', + + '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + + '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + + '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722', + + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + + '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + + '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + + '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', + + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + + '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + + '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + + '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + + '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + + '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + + '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + + '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + + '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721', + + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2', + + '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + + '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd', + + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + + '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', + + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + + '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721', + + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5', + + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722', + + '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + + '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', + + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721', + + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd', + + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35', + + '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721', + + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5', + + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35', + + '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + + '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35', + + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'] + + + +/** + + * 数字转中文速查表 + +* @Array Of Property + +* @trans ['日','一','二','三','四','五','六','七','八','九','十'] + +* @return Cn string + + */ + +var nStr1 = ['\u65e5', '\u4e00', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341'] + + + +/** + +* 日期转农历称呼速查表 + +* @Array Of Property + +* @trans ['初','十','廿','卅'] + +* @return Cn string + +*/ + +var nStr2 = ['\u521d', '\u5341', '\u5eff', '\u5345'] + + + +/** + +* 月份转农历称呼速查表 + +* @Array Of Property + +* @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] + +* @return Cn string + +*/ + +var nStr3 = ['\u6b63', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341', '\u51ac', '\u814a'] + + + +/** + +* 返回农历y年一整年的总天数 + +* @param lunar Year + + * @return Number + +* @eg:var count = calendar.lYearDays(1987) ;//count=387 + +*/ + +function lYearDays(y) { + + var i + + var sum = 348 + + for (i = 0x8000; i > 0x8; i >>= 1) { sum += (lunarInfo[y - 1900] & i) ? 1 : 0 } + + return (sum + leapDays(y)) + +} + + + +/** + +* 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 + +* @param lunar Year + +* @return Number (0-12) + + * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 + +*/ + +function leapMonth(y) { // 闰字编码 \u95f0 + + return (lunarInfo[y - 1900] & 0xf) + +} + + + +/** + +* 返回农历y年闰月的天数 若该年没有闰月则返回0 + +* @param lunar Year + +* @return Number (0、29、30) + +* @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 + +*/ + +function leapDays(y) { + + if (leapMonth(y)) { + + return ((lunarInfo[y - 1900] & 0x10000) ? 30 : 29) + + } + + return (0) + +} + + + +/** + +* 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 + +* @param lunar Year + +* @return Number (-1、29、30) + + * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 + +*/ + +function monthDays(y, m) { + + if (m > 12 || m < 1) { return -1 }// 月份参数从1至12,参数错误返回-1 + + return ((lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29) + +} + + + +/** + +* 返回公历(!)y年m月的天数 + +* @param solar Year + +* @return Number (-1、28、29、30、31) + +* @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 + +*/ + +function solarDays(y, m) { + + if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 + + var ms = m - 1 + + if (ms === 1) { // 2月份的闰平规律测算后确认返回28或29 + + return (((y % 4 === 0) && (y % 100 !== 0) || (y % 400 === 0)) ? 29 : 28) + + } else { + + return (solarMonth[ms]) + + } + +} + + + +/** + +* 农历年份转换为干支纪年 + +* @param lYear 农历年的年份数 + +* @return Cn string + +*/ + +function toGanZhiYear(lYear) { + + var ganKey = (lYear - 3) % 10 + + var zhiKey = (lYear - 3) % 12 + + if (ganKey === 0) ganKey = 10 // 如果余数为0则为最后一个天干 + + if (zhiKey === 0) zhiKey = 12 // 如果余数为0则为最后一个地支 + + return Gan[ganKey - 1] + Zhi[zhiKey - 1] + +} + + + +/** + +* 公历月、日判断所属星座 + +* @param cMonth [description] + +* @param cDay [description] + +* @return Cn string + +*/ + +function toAstro(cMonth, cDay) { + + var s = '\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf' + + var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22] + + return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + '\u5ea7' // 座 + +} + + + +/** + +* 传入offset偏移量返回干支 + +* @param offset 相对甲子的偏移量 + +* @return Cn string + +*/ + +function toGanZhi(offset) { + + return Gan[offset % 10] + Zhi[offset % 12] + +} + + + +/** + +* 传入公历(!)y年获得该年第n个节气的公历日期 + +* @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起 + +* @return day Number + +* @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春 + +*/ + +function getTerm(y, n) { + + if (y < 1900 || y > 2100) { return -1 } + + if (n < 1 || n > 24) { return -1 } + + var _table = sTermInfo[y - 1900] + + var _info = [ + + parseInt('0x' + _table.substr(0, 5)).toString(), + + parseInt('0x' + _table.substr(5, 5)).toString(), + + parseInt('0x' + _table.substr(10, 5)).toString(), + + parseInt('0x' + _table.substr(15, 5)).toString(), + + parseInt('0x' + _table.substr(20, 5)).toString(), + + parseInt('0x' + _table.substr(25, 5)).toString() + + ] + + var _calday = [ + + _info[0].substr(0, 1), + + _info[0].substr(1, 2), + + _info[0].substr(3, 1), + + _info[0].substr(4, 2), + + + + _info[1].substr(0, 1), + + _info[1].substr(1, 2), + + _info[1].substr(3, 1), + + _info[1].substr(4, 2), + + + + _info[2].substr(0, 1), + + _info[2].substr(1, 2), + + _info[2].substr(3, 1), + + _info[2].substr(4, 2), + + + + _info[3].substr(0, 1), + + _info[3].substr(1, 2), + + _info[3].substr(3, 1), + + _info[3].substr(4, 2), + + + + _info[4].substr(0, 1), + + _info[4].substr(1, 2), + + _info[4].substr(3, 1), + + _info[4].substr(4, 2), + + + + _info[5].substr(0, 1), + + _info[5].substr(1, 2), + + _info[5].substr(3, 1), + + _info[5].substr(4, 2) + + ] + + return parseInt(_calday[n - 1]) + +} + + + +/** + +* 传入农历数字月份返回汉语通俗表示法 + +* @param lunar month + +* @return Cn string + +* @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' + +*/ + +function toChinaMonth(m) { // 月 => \u6708 + + if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 + + var s = nStr3[m - 1] + + s += '\u6708' // 加上月字 + + return s + +} + + + +/** + +* 传入农历日期数字返回汉字表示法 + +* @param lunar day + +* @return Cn string + +* @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' + +*/ + +function toChinaDay(d) { // 日 => \u65e5 + + var s + + switch (d) { + + case 10: + + s = '\u521d\u5341' + + break + + case 20: + + s = '\u4e8c\u5341' + + break + + case 30: + + s = '\u4e09\u5341' + + break + + default: + + s = nStr2[Math.floor(d / 10)] + + s += nStr1[d % 10] + + } + + return (s) + +} + + + +/** + +* 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” + +* @param y year + +* @return Cn string + +* @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' + +*/ + +function getAnimal(y) { + + return Animals[(y - 4) % 12] + +} + + + +/** + +* 传入阳历年月日获得详细的公历、农历object信息 <=>JSON + +* @param y solar year + +* @param m solar month + +* @param d solar day + +* @return JSON object + +* @eg:console.log(calendar.solar2lunar(1987,11,01)); + +*/ + +function solar2lunar(y, m, d) { // 参数区间1900.1.31~2100.12.31 + + // 年份限定、上限 + + if (y < 1900 || y > 2100) { + + return -1 // undefined转换为数字变为NaN + + } + + // 公历传参最下限 + + if (y === 1900 && m === 1 && d < 31) { + + return -1 + + } + + // 未传参 获得当天 + + var objDate = null + + if (!y) { + + objDate = new Date() + + } else { + + objDate = new Date(y, parseInt(m) - 1, d) + + } + + var i + + var leap = 0 + + var temp = 0 + + // 修正ymd参数 + + y = objDate.getFullYear() + + m = objDate.getMonth() + 1 + + d = objDate.getDate() + + var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000 + + for (i = 1900; i < 2101 && offset > 0; i++) { + + temp = lYearDays(i) + + offset -= temp + + } + + if (offset < 0) { + + offset += temp; i-- + + } + + + + // 是否今天 + + var isTodayObj = new Date() + + var isToday = false + + if (isTodayObj.getFullYear() === y && isTodayObj.getMonth() + 1 === m && isTodayObj.getDate() === d) { + + isToday = true + + } + + // 星期几 + + var nWeek = objDate.getDay() + + var cWeek = nStr1[nWeek] + + // 数字表示周几顺应天朝周一开始的惯例 + + if (nWeek === 0) { + + nWeek = 7 + + } + + // 农历年 + + var year = i + + leap = leapMonth(i) // 闰哪个月 + + var isLeap = false + + + + // 效验闰月 + + for (i = 1; i < 13 && offset > 0; i++) { + + // 闰月 + + if (leap > 0 && i === (leap + 1) && isLeap === false) { + + --i + + isLeap = true; temp = leapDays(year) // 计算农历闰月天数 + + } else { + + temp = monthDays(year, i)// 计算农历普通月天数 + + } + + // 解除闰月 + + if (isLeap === true && i === (leap + 1)) { isLeap = false } + + offset -= temp + + } + + // 闰月导致数组下标重叠取反 + + if (offset === 0 && leap > 0 && i === leap + 1) { + + if (isLeap) { + + isLeap = false + + } else { + + isLeap = true; --i + + } + + } + + if (offset < 0) { + + offset += temp; --i + + } + + // 农历月 + + var month = i + + // 农历日 + + var day = offset + 1 + + // 天干地支处理 + + var sm = m - 1 + + var gzY = toGanZhiYear(year) + + + + // 当月的两个节气 + + // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year` + + var firstNode = getTerm(y, (m * 2 - 1)) // 返回当月「节」为几日开始 + + var secondNode = getTerm(y, (m * 2)) // 返回当月「节」为几日开始 + + + + // 依据12节气修正干支月 + + var gzM = toGanZhi((y - 1900) * 12 + m + 11) + + if (d >= firstNode) { + + gzM = toGanZhi((y - 1900) * 12 + m + 12) + + } + + // 传入的日期的节气与否 + + var isTerm = false + + var Term = null + + if (firstNode === d) { + + isTerm = true + + Term = solarTerm[m * 2 - 2] + + } + + if (secondNode === d) { + + isTerm = true + + Term = solarTerm[m * 2 - 1] + + } + + // 日柱 当月一日与 1900/1/1 相差天数 + + var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10 + + var gzD = toGanZhi(dayCyclical + d - 1) + + // 该日期所属的星座 + + var astro = toAstro(m, d) + + return { 'lYear': year, 'lMonth': month, 'lDay': day, 'Animal': getAnimal(year), 'IMonthCn': (isLeap ? '\u95f0' : '') + toChinaMonth(month), 'IDayCn': toChinaDay(day), 'cYear': y, 'cMonth': m, 'cDay': d, 'gzYear': gzY, 'gzMonth': gzM, 'gzDay': gzD, 'isToday': isToday, 'isLeap': isLeap, 'nWeek': nWeek, 'ncWeek': '\u661f\u671f' + cWeek, 'isTerm': isTerm, 'Term': Term, 'astro': astro } + +} + + + + + +var calendarFormatter = { + + // 传入阳历年月日获得详细的公历、农历object信息 <=>JSON + + solar2lunar: function (y, m, d) { // 参数区间1900.1.31~2100.12.31 + + return solar2lunar(y, m, d) + + }, + + /** + + * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON + + * @param y lunar year + + * @param m lunar month + + * @param d lunar day + + * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可] + + * @return JSON object + + * @eg:console.log(calendar.lunar2solar(1987,9,10)); + + */ + + lunar2solar: function (y, m, d, isLeapMonth) { // 参数区间1900.1.31~2100.12.1 + + isLeapMonth = !!isLeapMonth + + if (isLeapMonth && (leapMonth !== m)) { return -1 }// 传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同 + + if (y === 2100 && m === 12 && d > 1 || y === 1900 && m === 1 && d < 31) { return -1 } // 超出了最大极限值 + + var day = monthDays(y, m) + + var _day = day + + // bugFix 2016-9-25 + + // if month is leap, _day use leapDays method + + if (isLeapMonth) { + + _day = leapDays(y, m) + + } + + if (y < 1900 || y > 2100 || d > _day) { return -1 }// 参数合法性效验 + + + + // 计算农历的时间差 + + var offset = 0 + + for (var i = 1900; i < y; i++) { + + offset += lYearDays(i) + + } + + var leap = 0 + + var isAdd = false + + for (i = 1; i < m; i++) { + + leap = leapMonth(y) + + if (!isAdd) { // 处理闰月 + + if (leap <= i && leap > 0) { + + offset += leapDays(y); isAdd = true + + } + + } + + offset += monthDays(y, i) + + } + + // 转换闰月农历 需补充该年闰月的前一个月的时差 + + if (isLeapMonth) { offset += day } + + // 1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点) + + var stmap = Date.UTC(1900, 1, 30, 0, 0, 0) + + var calObj = new Date((offset + d - 31) * 86400000 + stmap) + + var cY = calObj.getUTCFullYear() + + var cM = calObj.getUTCMonth() + 1 + + var cD = calObj.getUTCDate() + + return solar2lunar(cY, cM, cD) + + } + +} + +/* 农历转换 end */ + +//---------------------------------------------------------------- + +/* 节日弹窗 start */ +var d = new Date(); +m = d.getMonth() + 1; +dd = d.getDate(); +y = d.getFullYear(); + +// 公祭日 +if (m == 9 && dd == 18) { + document.getElementsByTagName("html")[0].setAttribute("style", "filter: grayscale(60%);"); + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("今天是九一八事变" + (y - 1931).toString() + "周年纪念日\n🪔勿忘国耻,振兴中华🪔"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if (m == 7 && dd == 7) { + document.getElementsByTagName("html")[0].setAttribute("style", "filter: grayscale(60%);"); + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("今天是卢沟桥事变" + (y - 1937).toString() + "周年纪念日\n🪔勿忘国耻,振兴中华🪔"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if (m == 12 && dd == 13) { + document.getElementsByTagName("html")[0].setAttribute("style", "filter: grayscale(60%);"); + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("今天是南京大屠杀" + (y - 1937).toString() + "周年纪念日\n🪔勿忘国耻,振兴中华🪔"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if (m == 8 && dd == 14) { + document.getElementsByTagName("html")[0].setAttribute("style", "filter: grayscale(60%);"); + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("今天是世界慰安妇纪念日\n🪔勿忘国耻,振兴中华🪔"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} + + +// 节假日 +if (m == 10 && dd <= 3) {//国庆节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("祝祖国" + (y - 1949).toString() + "岁生日快乐!"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if (m == 8 && dd == 15) {//搞来玩的,小日子投降 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("小日子已经投降" + (y - 1945).toString() + "年了😃"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if (m == 1 && dd == 1) {//元旦节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire(y.toString() + "年元旦快乐!🎉"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if (m == 3 && dd == 8) {//妇女节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("各位女神们,妇女节快乐!👩"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +l = ["非常抱歉,因为不可控原因,博客将于明天停止运营!", "好消息,日本没了!", "美国垮了,原因竟然是川普!", "微软垮了!", "你的电脑已经过载,建议立即关机!", "你知道吗?站长很喜欢你哦!", "一分钟有61秒哦", "你喜欢的人跟别人跑了!"] +if (m == 4 && dd == 1) {//愚人节,随机谎话 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire(l[Math.floor(Math.random() * l.length)]); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if (m == 5 && dd == 1) {//劳动节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("劳动节快乐\n为各行各业辛勤工作的人们致敬!"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if (m == 5 && dd == 4) {//青年节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("青年节快乐\n青春不是回忆逝去,而是把握现在!"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if (m == 5 && dd == 20) {//520 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("今年是520情人节\n快和你喜欢的人一起过吧!💑"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if (m == 7 && dd == 1) {//建党节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("祝中国共产党" + (y - 1921).toString() + "岁生日快乐!"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if (m == 9 && dd == 10) {//教师节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("各位老师们教师节快乐!👩‍🏫"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if (m == 12 && dd == 25) {//圣诞节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("圣诞节快乐!🎄"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} + +//传统节日部分 + +if ((y == 2023 && m == 4 && dd == 5) || (y == 2024 && m == 4 && dd == 4) || (y == 2025 && m == 4 && dd == 4)) {//清明节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("清明时节雨纷纷,一束鲜花祭故人💐"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if ((y == 2023 && m == 12 && dd == 22) || (y == 2024 && m == 12 && dd == 21) || (y == 2025 && m == 12 && dd == 21)) {//冬至 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("冬至快乐\n快吃上一碗热热的汤圆和饺子吧🧆"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} + +var lunar = calendarFormatter.solar2lunar(); + +//农历采用汉字计算,防止出现闰月导致问题 + +if ((lunar["IMonthCn"] == "正月" && lunar["IDayCn"] == "初六") || (lunar["IMonthCn"] == "正月" && lunar["IDayCn"] == "初五") || (lunar["IMonthCn"] == "正月" && lunar["IDayCn"] == "初四") || (lunar["IMonthCn"] == "正月" && lunar["IDayCn"] == "初三") || (lunar["IMonthCn"] == "正月" && lunar["IDayCn"] == "初二") || (lunar["IMonthCn"] == "正月" && lunar["IDayCn"] == "初一") || (lunar["IMonthCn"] == "腊月" && lunar["IDayCn"] == "三十") || (lunar["IMonthCn"] == "腊月" && lunar["IDayCn"] == "廿九")) { + //春节,本来只有大年三十到初六,但是有时候除夕是大年二十九,所以也加上了 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire(y.toString() + "年新年快乐\n🎊祝你心想事成,诸事顺利🎊"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if ((lunar["IMonthCn"] == "正月" && lunar["IDayCn"] == "十五")) { + //元宵节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("元宵节快乐\n送你一个大大的灯笼🧅"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if ((lunar["IMonthCn"] == "五月" && lunar["IDayCn"] == "初五")) { + //端午节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("端午节快乐\n请你吃一条粽子🍙"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if ((lunar["IMonthCn"] == "七月" && lunar["IDayCn"] == "初七")) { + //七夕节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("七夕节快乐\n黄昏后,柳梢头,牛郎织女来碰头"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if ((lunar["IMonthCn"] == "八月" && lunar["IDayCn"] == "十五")) { + //中秋节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("中秋节快乐\n请你吃一块月饼🍪"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if ((lunar["IMonthCn"] == "九月" && lunar["IDayCn"] == "初九")) { + //重阳节 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("重阳节快乐\n独在异乡为异客,每逢佳节倍思亲"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} +if ((lunar["IMonthCn"] == "腊月" && lunar["IDayCn"] == "廿六")) { + //站长生日 + if (sessionStorage.getItem("isPopupWindow") != "1") { + Swal.fire("祝站长" + (y - 2010).toString() + "岁生日快乐!🥝"); + sessionStorage.setItem("isPopupWindow", "1"); + } +} + +// 切换主题提醒 +// if (y == 2022 && m == 12 && (dd >= 18 && dd <= 20)) { +// if (sessionStorage.getItem("isPopupWindow") != "1") { +// Swal.fire("网站换成冬日限定主题啦⛄"); +// sessionStorage.setItem("isPopupWindow", "1"); +// } +// } + + +/* 节日弹窗 end */ + +//---------------------------------------------------------------- + +/* 听话鼠标 start */ +var CURSOR; + +Math.lerp = (a, b, n) => (1 - n) * a + n * b; + +const getStyle2 = (el, attr) => { + try { + return window.getComputedStyle + ? window.getComputedStyle(el)[attr] + : el.currentStyle[attr]; + } catch (e) { } + return ""; +}; + +// 为了屏蔽异步加载导致无法读取颜色值,这里统一用哈希表预处理 +const map = new Map(); +map.set('red', "rgb(241, 71, 71)"); +map.set('orange', "rgb(241, 162, 71)"); +map.set('yellow', "rgb(241, 238, 71)") +map.set('purple', "rgb(179, 71, 241)"); +map.set('blue', "rgb(102, 204, 255)"); +map.set('gray', "rgb(226, 226, 226)"); +map.set('green', "rgb(57, 197, 187)"); +map.set('whitegray', "rgb(241, 241, 241)"); +map.set('pink', "rgb(237, 112, 155)"); +map.set('black', "rgb(0, 0, 0)"); +map.set('darkblue', "rgb(97, 100, 159)"); +map.set('heoblue', "rgb(66, 90, 239)"); + +class Cursor { + constructor() { + this.pos = { curr: null, prev: null }; + this.pt = []; + this.create(); + this.init(); + this.render(); + } + + move(left, top) { + this.cursor.style["left"] = `${left}px`; + this.cursor.style["top"] = `${top}px`; + } + + create() { + if (!this.cursor) { + this.cursor = document.createElement("div"); + this.cursor.id = "cursor"; + this.cursor.classList.add("hidden"); + document.body.append(this.cursor); + } + var el = document.getElementsByTagName('*'); + for (let i = 0; i < el.length; i++) + if (getStyle2(el[i], "cursor") == "pointer") + this.pt.push(el[i].outerHTML); + var colorVal = map.get(localStorage.getItem("themeColor")); + document.body.appendChild((this.scr = document.createElement("style"))); + this.scr.innerHTML = `* {cursor: url("data:image/svg+xml,") 4 4, auto}`; + } + + refresh() { + this.scr.remove(); + this.cursor.classList.remove("hover"); + this.cursor.classList.remove("active"); + this.pos = { curr: null, prev: null }; + this.pt = []; + + this.create(); + this.init(); + this.render(); + } + + init() { + document.onmouseover = e => this.pt.includes(e.target.outerHTML) && this.cursor.classList.add("hover"); + document.onmouseout = e => this.pt.includes(e.target.outerHTML) && this.cursor.classList.remove("hover"); + document.onmousemove = e => { (this.pos.curr == null) && this.move(e.clientX - 8, e.clientY - 8); this.pos.curr = { x: e.clientX - 8, y: e.clientY - 8 }; this.cursor.classList.remove("hidden"); }; + document.onmouseenter = e => this.cursor.classList.remove("hidden"); + document.onmouseleave = e => this.cursor.classList.add("hidden"); + document.onmousedown = e => this.cursor.classList.add("active"); + document.onmouseup = e => this.cursor.classList.remove("active"); + } + + render() { + if (this.pos.prev) { + // 跟踪速度调节 + this.pos.prev.x = Math.lerp(this.pos.prev.x, this.pos.curr.x, 0.15); + this.pos.prev.y = Math.lerp(this.pos.prev.y, this.pos.curr.y, 0.15); + this.move(this.pos.prev.x, this.pos.prev.y); + } else { + this.pos.prev = this.pos.curr; + } + requestAnimationFrame(() => this.render()); + } +} + +(() => { + CURSOR = new Cursor(); + // 需要重新获取列表时,使用 CURSOR.refresh() +})(); + +/* 听话鼠标 end */ + +//---------------------------------------------------------------- + +/* 新年倒计时 start */ +// let newYearTimer = null; +// var newYear = () => { +// clearTimeout(newYearTimer); +// if (!document.querySelector('#newYear')) return; +// // 新年时间戳 and 星期对象 +// let newYear = new Date('2023-01-22 00:00:00').getTime() / 1000, +// week = { 0: '周日', 1: '周一', 2: '周二', 3: '周三', 4: '周四', 5: '周五', 6: '周六' } + +// time(); + +// // 补零函数 +// function nol(h) { return h > 9 ? h : '0' + h; }; + +// function time() { +// // 现在 时间对象 +// let now = new Date(); + +// // 右下角 今天 +// document.querySelector('#newYear .today').innerHTML = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate() + ' ' + week[now.getDay()] + +// // 现在与新年相差秒数 +// let second = newYear - Math.round(now.getTime() / 1000); + +// // 小于0则表示已经过年 +// if (second < 0) { +// document.querySelector('#newYear .title').innerHTML = 'Happy New Year!'; +// document.querySelector('#newYear .newYear-time').innerHTML = '新年快乐

'; +// } else { +// // 大于0则还未过年 +// document.querySelector('#newYear .title').innerHTML = '距离2025年春节:' + +// // 大于一天则直接渲染天数 +// if (second > 86400) { +// document.querySelector('#newYear .newYear-time').innerHTML = `${Math.ceil(second / 86400)}` +// } else { +// // 小于一天则使用时分秒计时。 +// let h = nol(parseInt(second / 3600)); +// second %= 3600; +// let m = nol(parseInt(second / 60)); +// second %= 60; +// let s = nol(second); +// document.querySelector('#newYear .newYear-time').innerHTML = `${h}:${m}:${s}
`; +// // 计时 +// newYearTimer = setTimeout(time, 1000); +// } +// } +// } + +// // 元宝飘落 +// jQuery(document).ready(function ($) { +// $('#newYear').wpSuperSnow({ +// flakes: ['https://photo.tutuxka.eu.org/yb1.webp', 'https://photo.tutuxka.eu.org/yb2.webp', 'https://photo.tutuxka.eu.org/yb3.webp'], +// totalFlakes: '100', +// zIndex: '999999', +// maxSize: '30', +// maxDuration: '20', +// useFlakeTrans: false +// }); +// }); +// } +// // Pjax适配:若没有开启Pjax这里直接是newYear()即可 +// // 开了Pjax的用以下两句 +// document.addEventListener('pjax:complete', newYear); +// document.addEventListener('DOMContentLoaded', newYear); + +/* 新年倒计时 end */ + +//---------------------------------------------------------------- + +/* 页脚计时器 start */ +var now = new Date(); +function createtime() { + // 当前时间 + now.setTime(now.getTime() + 1000); + var start = new Date("02/09/2022 00:00:00"); // 旅行者1号开始计算的时间 + var dis = Math.trunc(23400000000 + ((now - start) / 1000) * 17); // 距离=秒数*速度 记住转换毫秒 + var unit = (dis / 149600000).toFixed(6); // 天文单位 + // 网站诞生时间 + var grt = new Date("02/09/2022 00:00:00"); + var days = (now - grt) / 1e3 / 60 / 60 / 24, + dnum = Math.floor(days), + hours = (now - grt) / 1e3 / 60 / 60 - 24 * dnum, + hnum = Math.floor(hours); + 1 == String(hnum).length && (hnum = "0" + hnum); + var minutes = (now - grt) / 1e3 / 60 - 1440 * dnum - 60 * hnum, + mnum = Math.floor(minutes); + 1 == String(mnum).length && (mnum = "0" + mnum); + var seconds = (now - grt) / 1e3 - 86400 * dnum - 3600 * hnum - 60 * mnum, + snum = Math.round(seconds); + 1 == String(snum).length && (snum = "0" + snum); + let currentTimeHtml = ""; + (currentTimeHtml = + hnum < 18 && hnum >= 9 + ? `
本站居然运行了 ${dnum} 天 ${hnum} 小时 ${mnum} 分 ${snum} 秒
旅行者 1 号当前距离地球 ${dis} 千米,约为 ${unit} 个天文单位 🚀
` + : `
本站居然运行了 ${dnum} 天 ${hnum} 小时 ${mnum} 分 ${snum} 秒
旅行者 1 号当前距离地球 ${dis} 千米,约为 ${unit} 个天文单位 🚀
`), + document.getElementById("workboard") && + (document.getElementById("workboard").innerHTML = currentTimeHtml); +} +// 设置重复执行函数,周期1000ms +setInterval(() => { + createtime(); +}, 1000); + +/*页脚计时器 end */ + +//---------------------------------------------------------------- + + +/* fps检测 start */ +if (window.localStorage.getItem("fpson") == undefined || window.localStorage.getItem("fpson") == "1") { + var rAF = function () { + return ( + window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + function (callback) { + window.setTimeout(callback, 1000 / 60); + } + ); + }(); + var frame = 0; + var allFrameCount = 0; + var lastTime = Date.now(); + var lastFameTime = Date.now(); + var loop = function () { + var now = Date.now(); + var fs = (now - lastFameTime); + var fps = Math.round(1000 / fs); + + lastFameTime = now; + // 不置 0,在动画的开头及结尾记录此值的差值算出 FPS + allFrameCount++; + frame++; + + if (now > 1000 + lastTime) { + var fps = Math.round((frame * 1000) / (now - lastTime)); + if (fps <= 5) { + var kd = `卡成ppt🤢` + } else if (fps <= 15) { + var kd = `电竞级帧率😖` + } else if (fps <= 25) { + var kd = `有点难受😨` + } else if (fps < 35) { + var kd = `不太流畅🙄` + } else if (fps <= 45) { + var kd = `还不错哦😁` + } else { + var kd = `十分流畅🤣` + } + document.getElementById("fps").innerHTML = `FPS:${fps} ${kd}`; + frame = 0; + lastTime = now; + }; + + rAF(loop); + } + + loop(); +} else { + document.getElementById("fps").style = "display:none!important" +} +/* fps检测 end */ + +//---------------------------------------------------------------- + +/* 美化模块 start */ + +// 更新版本需要每个用户都恢复一次默认设置 +if (localStorage.getItem("reset_4") == undefined) { + localStorage.setItem("reset_4", "1"); + // 清空之前的标记值 + for (var i = 1; i <= 3; i++) { + localStorage.removeItem("reset_" + i); + } + clearItem(); + setTimeout(function () { + new Vue({ + data: function () { + this.$notify({ + title: "提示🍒", + message: " (。・∀・)ノ゙由于网站部分设置项更新,当前已为您重置所有设置,祝您愉快!", + position: 'top-left', + offset: 50, + showClose: true, + type: "success", + duration: 8000 + }); + } + }) + }, 1500); +} + +// 清除localStorage配置项 +function clearItem() { + localStorage.removeItem('blogbg'); + localStorage.removeItem('universe'); + localStorage.removeItem('blur'); + localStorage.removeItem('fpson'); + localStorage.removeItem('transNum'); + localStorage.removeItem('blurRad'); + localStorage.removeItem('font'); + localStorage.removeItem('themeColor'); + localStorage.removeItem('rs'); + localStorage.removeItem('mouse'); + localStorage.removeItem('light'); + localStorage.removeItem('snow'); +} + + +// 设置字体 +if (localStorage.getItem("font") == undefined) { + localStorage.setItem("font", "BlogFont"); +} +setFont(localStorage.getItem("font")); +function setFont(n) { + localStorage.setItem("font", n) + if (n == "default") { + document.documentElement.style.setProperty('--global-font', '-apple-system'); + document.body.style.fontFamily = "-apple-system, Consolas_1, BlinkMacSystemFont, 'Segoe UI' , 'Helvetica Neue' , Lato, Roboto, 'PingFang SC' , 'Microsoft JhengHei' , 'Microsoft YaHei' , sans-serif"; + } + else { + document.documentElement.style.setProperty('--global-font', n); + document.body.style.fontFamily = "var(--global-font),-apple-system, IBM Plex Mono ,monosapce,'微软雅黑', sans-serif"; + } + try { setFontBorder(); } catch (err) { }; +} + +// 设置字体选择框边界 +function setFontBorder() { + var curFont = localStorage.getItem("font"); + var swfId = "swf_" + curFont; + document.getElementById(swfId).style.border = "2px solid var(--theme-color)"; + Array.prototype.forEach.call(document.getElementsByClassName("swf"), function (ee) { + if (ee.id != swfId) ee.style.border = "2px solid var(--border-color)"; + }); +} + + +// 设置主题色 +if (localStorage.getItem("themeColor") == undefined) { + localStorage.setItem("themeColor", "green"); +} +setColor(localStorage.getItem("themeColor")); +function setColor(c) { + document.getElementById("themeColor").innerText = `:root{--theme-color:` + map.get(c) + ` !important}`; + localStorage.setItem("themeColor", c); + // 刷新鼠标颜色 + CURSOR.refresh(); + // 设置一个带有透明度的主题色,用于菜单栏的悬浮颜色 + var theme_color = map.get(c); + var trans_theme_color = "rgba" + theme_color.substring(3, theme_color.length - 1) + ", 0.7)"; + var high_trans_color = "rgba" + theme_color.substring(3, theme_color.length - 1) + ", 0.5)"; + document.documentElement.style.setProperty("--text-bg-hover", trans_theme_color); + document.documentElement.style.setProperty("--high-trans-color", high_trans_color); +} + + +// 星空背景开关 +if (localStorage.getItem("universe") == undefined) { + localStorage.setItem("universe", "block"); +} +setUniverse2(localStorage.getItem("universe")); +function setUniverse2(c) { + document.getElementById("universe").style.display = c; + localStorage.setItem("universe", c); +} +function setUniverse() { + if (document.getElementById("universeSet").checked) { + setUniverse2("block"); + } else { + setUniverse2("none"); + } +} + +// 雪花开关 +if (localStorage.getItem("snow") == undefined) { + localStorage.setItem("snow", "none"); +} +document.getElementById("snow").style.display = localStorage.getItem("snow"); +function setSnow() { + if (document.getElementById("snowSet").checked) { + document.getElementById("snow").style.display = "block"; + localStorage.setItem("snow", "block"); + } else { + document.getElementById("snow").style.display = "none"; + localStorage.setItem("snow", "none"); + } +} + + +// 帧率监测开关 +if (localStorage.getItem("fpson") == undefined) { + localStorage.setItem("fpson", "1"); +} +function fpssw() { + if (document.getElementById("fpson").checked) { + localStorage.setItem("fpson", "1"); + } else { + localStorage.setItem("fpson", "0"); + } + setTimeout(reload, 600); +} + +// 刷新窗口 +function reload() { + window.location.reload(); +} + +// 侧边栏开关 +if (localStorage.getItem("rs") == undefined) { + localStorage.setItem("rs", "block"); +} +if (localStorage.getItem("rs") == "block") { + document.getElementById("rightSide").innerText = `:root{--rightside-display: block}`; +} else { + document.getElementById("rightSide").innerText = `:root{--rightside-display: none}`; +} +function toggleRightside() { + // 先设置localStorage变量 + if (document.getElementById("rightSideSet").checked) { + localStorage.setItem("rs", "block"); + document.getElementById("rightSide").innerText = `:root{--rightside-display: block}`; + } else { + localStorage.setItem("rs", "none"); + document.getElementById("rightSide").innerText = `:root{--rightside-display: none}`; + } +} + + +// 透明度调节滑块 +if (localStorage.getItem("transNum") == undefined) { + localStorage.setItem("transNum", 95); +} +var curTransNum = localStorage.getItem("transNum"); +var curTransMini = curTransNum * 0.95; +document.getElementById("transPercent").innerText = `:root{--trans-light: rgba(253, 253, 253, ${curTransNum}%) !important; --trans-dark: rgba(25, 25, 25, ${curTransNum}%) !important} `; +function setTrans() { + var elem = document.getElementById("transSet"); + var newTransNum = elem.value; + var target = document.querySelector('.transValue'); + target.innerHTML = "透明度 (0%-100%): " + newTransNum + "%"; + localStorage.setItem("transNum", newTransNum); + curTransMini = newTransNum * 0.95; + curTransNum = newTransNum; // 更新当前透明度 + document.querySelector('#rang_trans').style.width = curTransMini + "%"; + document.getElementById("transPercent").innerText = `:root{--trans-light: rgba(253, 253, 253, ${newTransNum}%) !important; --trans-dark: rgba(25, 25, 25, ${newTransNum}%) !important} `; +}; + + +// 模糊度调节滑块 +if (localStorage.getItem("blurRad") == undefined) { + localStorage.setItem("blurRad", 20); +} +var curBlur = localStorage.getItem("blurRad"); // 当前模糊半径 +var miniBlur = curBlur * 0.95; +document.getElementById("blurNum").innerText = `:root{--blur-num: blur(${curBlur}px) saturate(120%) !important`; +function setBlurNum() { + var elem = document.getElementById("blurSet"); + var newBlur = elem.value; + var target = document.querySelector('.blurValue'); + target.innerHTML = "模糊半径 (开启模糊生效 0px-100px): " + newBlur + "px"; + localStorage.setItem("blurRad", newBlur); + curBlur = newBlur; + miniBlur = curBlur * 0.95; + // var max = elem.getAttribute("max"); + document.querySelector('#rang_blur').style.width = miniBlur + "%"; + document.getElementById("blurNum").innerText = `:root{--blur-num: blur(${curBlur}px) saturate(120%) !important`; +}; + + +// 模糊效果开关 +if (localStorage.getItem("blur") == undefined) { + localStorage.setItem("blur", 0); +} +if (localStorage.getItem("blur") == 0) { + document.getElementById("settingStyle").innerText = `:root{--backdrop-filter: none}`; +} else { + document.getElementById("settingStyle").innerText = `:root{--backdrop-filter: var(--blur-num)}`; +} +function setBlur() { + if (document.getElementById("blur").checked) { + localStorage.setItem("blur", 1); + document.getElementById("settingStyle").innerText = `:root{--backdrop-filter: var(--blur-num)}`; + } else { + localStorage.setItem("blur", 0); + document.getElementById("settingStyle").innerText = `:root{--backdrop-filter: none}`; + } +} + +// 更换背景(原来Leonus的代码) +// 存数据 +// name:命名 data:数据 +// function saveData(name, data) { +// localStorage.setItem(name, JSON.stringify({ time: Date.now(), data: data })); +// } +// 取数据 +// name:命名 time:过期时长,单位分钟,如传入30,即加载数据时如果超出30分钟返回0,否则返回数据 +// function loadData(name, time) { +// let d = JSON.parse(localStorage.getItem(name)); +// // 过期或有错误返回 0 否则返回数据 +// if (d) { +// let t = Date.now() - d.time; +// if (t < time * 60 * 1000 && t > -1) return d.data; +// } +// return 0; +// } +// 上面两个函数如果你有其他需要存取数据的功能,也可以直接使用 +// 读取背景 +// try { +// let data = loadData("blogbg", 1440); +// if (data) changeBg(data, 1); +// else localStorage.removeItem("blogbg"); +// } catch (error) { +// localStorage.removeItem("blogbg"); +// } +// 切换背景函数 +// 此处的flag是为了每次读取时都重新存储一次,导致过期时间不稳定 +// 如果flag为0则存储,即设置背景. 为1则不存储,即每次加载自动读取背景. +// function changeBg(s, flag) { +// let bg = document.getElementById("web_bg"); +// if (s.charAt(0) == "#") { +// bg.style.backgroundColor = s; +// bg.style.backgroundImage = "none"; +// } else { +// bg.style.backgroundImage = s +// }; +// if (!flag) { +// saveData("blogbg", s); +// } +// } + +// 切换自定义颜色 +var defineColor = localStorage.getItem("blogbg") && localStorage.getItem("blogbg").charAt(0) == '#' ? localStorage.getItem("blogbg") : '#F4D88A'; +function changeBgColor() { + changeBg(document.querySelector("#define_colors").value); +} + +// 必应每日壁纸API +let bingDayBg = screen.width <= 768 ? "url(https://bing.img.run/m.php)" : "url(https://bing.img.run/1920x1080.php)"; +// 必应历史壁纸API +let bingHistoryBg = screen.width <= 768 ? "url(https://bing.img.run/rand_m.php)" : "url(https://bing.img.run/rand.php)"; +// EEE.DOG +let EEEDog = "url(https://api.yimian.xyz/img?type=moe&size=1920x1080)"; +// 随机美图cdn.seovx.com +let seovx = "url(https://cdn.seovx.com/?mom=302)"; +// picsum随机 +let picsum = "url(https://picsum.photos/1920/1080.webp)"; +// 小歪二次元 +// let waiDongman = "url(https://api.ixiaowai.cn/api/api.php)"; +// 小歪高清壁纸 +let waiBizhi = "url(https://api.ixiaowai.cn/gqapi/gqapi.php)"; +// 博天随机 +let btstu = "url(http://api.btstu.cn/sjbz/?lx=suiji)"; +// tuapi 动漫 +// let tuapi = "url(https://tuapi.eees.cc/api.php?category=dongman)"; +// unsplash随机 https://source.unsplash.com/random/1920x1080/daily (weekly) +let unsplash = "url(https://source.unsplash.com/random/1920x1080/)"; + + +// 更换背景(自己的代码) +if (localStorage.getItem("blogbg") != undefined) { + setBg(localStorage.getItem("blogbg")); +} else { + document.getElementById("defineBg").innerText = `:root{ + --default-bg: url(/assets/tutu.jpg); + --darkmode-bg:url(/assets/tutu.jpg); + --mobileday-bg: url(/assets/tutu.jpg); + --mobilenight-bg: url(/assets/tutu.jpg); + }`; +} +// 切换背景主函数 +function changeBg(s) { + // 自定义颜色框 + defineColor = s.charAt(0) == "#" ? s : '#F4D88A'; + setBg(s); + localStorage.setItem("blogbg", s); +} +// 设置背景属性 +function setBg(s) { + document.getElementById("defineBg").innerText = `:root{ + --default-bg: ${s}; + --darkmode-bg: ${s}; + --mobileday-bg: ${s}; + --mobilenight-bg: ${s}; + }`; +} + +// 切换链接对应的背景(加入了链接检验与防抖) +function getPicture() { + debounce(getPicture_, 300); +} + +function getPicture_() { + checkImgExists(document.getElementById("pic-link").value).then(() => { + // 有效的图片链接 + var link = "url(" + document.getElementById("pic-link").value + ")"; + changeBg(link); + // 提示切换成功 + new Vue({ + data: function () { + this.$notify({ + title: "可以啦🍨", + message: "切换自定义背景成功!", + position: 'top-left', + offset: 50, + showClose: true, + type: "success", + duration: 5000 + }); + } + }) + }).catch(() => { + // 无效的图片链接,提示无效 + new Vue({ + data: function () { + this.$notify({ + title: "链接不对🤣", + message: "请输入有效的图片链接!", + position: 'top-left', + offset: 50, + showClose: true, + type: "warning", + duration: 5000 + }); + } + }) + }) +} +// 判断图片链接是否可用 +function checkImgExists(imgurl) { + return new Promise(function (resolve, reject) { + var ImgObj = new Image(); + ImgObj.src = imgurl; + ImgObj.onload = function (res) { + resolve(res); + } + ImgObj.onerror = function (err) { + reject(err); + } + }) +} + +// 黑夜霓虹灯开关 +if (localStorage.getItem("light") == undefined) { + localStorage.setItem("light", "true"); +} +// 这里要适配Pjax +document.addEventListener('pjax:complete', function () { + changeLight(localStorage.getItem("light") == "true" ? true : false) +}); +document.addEventListener('DOMContentLoaded', function () { + changeLight(localStorage.getItem("light") == "true" ? true : false) +}); +function setLight() { + if (document.getElementById("lightSet").checked) { + changeLight(true); + localStorage.setItem("light", "true"); + } else { + changeLight(false); + localStorage.setItem("light", "false"); + } +} +// 更换霓虹灯状态 +function changeLight(flag) { + if (document.getElementById("site-name")) + document.getElementById("site-name").style.animation = flag ? "light_15px 10s linear infinite" : "none"; + if (document.getElementById("site-title")) + document.getElementById("site-title").style.animation = flag ? "light_15px 10s linear infinite" : "none"; + if (document.getElementById("site-subtitle")) + document.getElementById("site-subtitle").style.animation = flag ? "light_10px 10s linear infinite" : "none"; + if (document.getElementById("post-info")) + document.getElementById("post-info").style.animation = flag ? "light_5px 10s linear infinite" : "none"; + document.getElementById("menu_shadow").innerText = flag ? `:root{--menu-shadow: 0 0 1px var(--theme-color);}` : `:root{--menu-shadow: none;}`; +} + + + +// 解决开启Pjax的问题 +// function whenDOMReady() { +// try { +// let data = loadData('blogbg', 1440) +// if (data) changeBg_noWindow(data, 0) +// else localStorage.removeItem('blogbg'); +// } catch (error) { localStorage.removeItem('blogbg'); } +// } +// whenDOMReady() +// document.addEventListener("pjax:success", whenDOMReady) + +// 无弹窗提醒更换背景 +// function changeBg_noWindow(s, flag) { +// let bg = document.getElementById("web_bg"); +// if (s.charAt(0) == "#") { +// bg.style.backgroundColor = s; +// bg.style.backgroundImage = "none"; +// } else bg.style.backgroundImage = s; +// if (!flag) { +// saveData("blogbg", s); +// } +// } + +// 创建窗口 +var winbox = ""; + +function createWinbox() { + let div = document.createElement("div"); + document.body.appendChild(div); + winbox = WinBox({ + id: "meihuaBox", + index: 99, + title: "美化设置", + x: "left", + y: "center", + minwidth: "300px", + height: "60%", + // "#76c8f1" + background: 'var(--theme-color)', + onmaximize: () => { + div.innerHTML = ``; + }, + onrestore: () => { + div.innerHTML = ""; + }, + }); + winResize(); + window.addEventListener("resize", winResize); + + // 每一类我放了一个演示,直接往下复制粘贴 a标签 就可以,需要注意的是 函数里面的链接 冒号前面需要添加反斜杠\进行转义 + winbox.body.innerHTML = ` +
+
+
+

+ +

一、显示偏好

+ +
透明度 (0%-100%): ${curTransNum}%
+
+ +

+
+ +
模糊半径 (开启模糊生效 0px-100px): ${curBlur} px
+
+ +

+
+ + +
+
星空特效 (夜间模式)
+
霓虹灯 (夜间模式)
+
+ +
+
模糊效果 (消耗性能)
+
侧边栏 (默认开)
+
+ +
+
帧率监测 (刷新生效)
+
雪花特效 (白天模式)
+
+ + +

二、字体设置

+

非商免字体未经授权只能个人使用。本站为完全非商业、非盈利性质的网站,平时用于个人学习交流,如有侵权请联系站长删除,谢谢! —— 致版权方

+
+

+BlogFont +筑紫A丸标准体2.0 +汉仪唐美人 +霞鹜文楷 +甜甜圈海报 +优设好身体 +MiSans +系统默认 +

+ +

三、主题色设置

+
+ +

四、背景设置

+
+ +

1. 二次元

+
查看二次元背景 +
+
+
+
+ + +

2. 风景

+ +
查看风景背景 +
+
+
+
+ +

3. 萌宠

+ +
查看萌宠背景 +
+
+
+
+ +

4. 渐变色

+
查看渐变色背景 +
+
+
+
+ + +

5. 纯色

+
查看纯色背景 +
+
+
+
+ + + +

6. 适配手机

+
查看适配手机的背景 +
+
+
+
+ + +

7. 壁纸API

+
查看壁纸API系列背景 +
+
+
+
+ + +

8. 自定义背景

+
设置自定义背景 +
+

+
+
+ +
+
------ ( •̀ ω •́ )y 到底啦 ------
+
+ +
+ +
+ +`; + + // 打开小窗时候初始化 + $("#" + localStorage.getItem("themeColor")).attr("checked", true); + if (localStorage.getItem("blur") == 1) { + document.getElementById("blur").checked = true; + } else { + document.getElementById("blur").checked = false; + } + if (localStorage.getItem("universe") == "block") { + document.getElementById("universeSet").checked = true; + } else if (localStorage.getItem("universe") == "none") { + document.getElementById("universeSet").checked = false; + } + if (localStorage.getItem("fpson") == "1") { + document.getElementById("fpson").checked = true; + } else { + document.getElementById("fpson").checked = false; + } + if (localStorage.getItem("rs") == "block") { + document.getElementById("rightSideSet").checked = true; + } else if (localStorage.getItem("rs") == "none") { + document.getElementById("rightSideSet").checked = false; + } + if (localStorage.getItem("light") == "true") { + document.getElementById("lightSet").checked = true; + } else { + document.getElementById("lightSet").checked = false; + } + setFontBorder(); + if (localStorage.getItem("snow") == "block") { + document.getElementById("snowSet").checked = true; + } else if (localStorage.getItem("snow") == "none") { + document.getElementById("snowSet").checked = false; + } +} + +// 恢复默认背景 +function resetBg() { + localStorage.removeItem('blogbg'); + reload(); +} + +// 恢复默认设置并刷新页面 +function reset() { + clearItem(); + reload(); +} + +// 适应窗口大小 +function winResize() { + try { + var offsetWid = document.documentElement.clientWidth; + if (offsetWid <= 768) { + winbox.resize(offsetWid * 0.95 + "px", "90%").move("center", "center"); + } else { + winbox.resize(offsetWid * 0.6 + "px", "70%").move("center", "center"); + } + } catch (err) { + // console.log("Pjax毒瘤抽风运行winResize方法🙄🙄🙄"); + } +} + +// 切换状态,窗口已创建则控制窗口显示和隐藏,没窗口则创建窗口 +function toggleWinbox() { + if (document.querySelector("#meihuaBox")) { + winbox.toggleClass("hide"); + } else { + createWinbox(); + }; +} + +/* 美化模块 end */ diff --git a/js/kslink.js b/js/kslink.js new file mode 100644 index 00000000..b9926438 --- /dev/null +++ b/js/kslink.js @@ -0,0 +1,38 @@ +var leonus = { + linkCom: e => { + var t = document.querySelector(".el-textarea__inner"); + "bf" == e ? (t.value = "```yml\n", t.value += "- name: \n link: \n avatar: \n descr: \n siteshot: ", t.value += "\n```", t.setSelectionRange(15, 15)) : (t.value = "站点名称:\n站点地址:\n头像链接:\n站点描述:\n站点截图:", t.setSelectionRange(5, 5)), t.focus() + }, + owoBig: () => { + if (!document.getElementById("post-comment") || document.body.clientWidth < 768) return; + let e = 1, + t = "", + o = document.createElement("div"), + n = document.querySelector("body"); + o.id = "owo-big", n.appendChild(o), new MutationObserver((l => { + for (let a = 0; a < l.length; a++) { + let i = l[a].addedNodes, + s = ""; + if (2 == i.length && "OwO-body" == i[1].className) s = i[1]; + else { + if (1 != i.length || "tk-comment" != i[0].className) continue; + s = i[0] + } + s.onmouseover = l => { + e && ("OwO-body" == s.className && "IMG" == l.target.tagName || "tk-owo-emotion" == l.target.className) && (e = 0, t = setTimeout((() => { + let e = 3 * l.path[0].clientHeight, + t = 3 * l.path[0].clientWidth, + a = l.x - l.offsetX - (t - l.path[0].clientWidth) / 2, + i = l.y - l.offsetY; + a + t > n.clientWidth && (a -= a + t - n.clientWidth + 10), a < 0 && (a = 10), o.style.cssText = `display:flex; height:${e}px; width:${t}px; left:${a}px; top:${i}px;`, o.innerHTML = `` + }), 300)) + }, s.onmouseout = () => { + o.style.display = "none", e = 1, clearTimeout(t) + } + } + })).observe(document.getElementById("post-comment"), { + subtree: !0, + childList: !0 + }) + }, +}; \ No newline at end of file diff --git a/js/main.js b/js/main.js new file mode 100644 index 00000000..6cd75e3b --- /dev/null +++ b/js/main.js @@ -0,0 +1,779 @@ +document.addEventListener('DOMContentLoaded', function () { + let blogNameWidth, menusWidth, searchWidth, $nav + let mobileSidebarOpen = false + + const adjustMenu = (init) => { + if (init) { + blogNameWidth = document.getElementById('site-name').offsetWidth + const $menusEle = document.querySelectorAll('#menus .menus_item') + menusWidth = 0 + $menusEle.length && $menusEle.forEach(i => { menusWidth += i.offsetWidth }) + const $searchEle = document.querySelector('#search-button') + searchWidth = $searchEle ? $searchEle.offsetWidth : 0 + $nav = document.getElementById('nav') + } + + let hideMenuIndex = '' + if (window.innerWidth <= 800) hideMenuIndex = true + // 这行会引起缩放异常,删掉 + // else hideMenuIndex = blogNameWidth + menusWidth + searchWidth > $nav.offsetWidth - 120 + + if (hideMenuIndex) { + $nav.classList.add('hide-menu') + } else { + $nav.classList.remove('hide-menu') + } + } + + // 初始化header + const initAdjust = () => { + adjustMenu(true) + $nav.classList.add('show') + } + + // sidebar menus + const sidebarFn = { + open: () => { + btf.sidebarPaddingR() + document.body.style.overflow = 'hidden' + btf.animateIn(document.getElementById('menu-mask'), 'to_show 0.5s') + document.getElementById('sidebar-menus').classList.add('open') + mobileSidebarOpen = true + }, + close: () => { + const $body = document.body + $body.style.overflow = '' + $body.style.paddingRight = '' + btf.animateOut(document.getElementById('menu-mask'), 'to_hide 0.5s') + document.getElementById('sidebar-menus').classList.remove('open') + mobileSidebarOpen = false + } + } + + /** + * 首頁top_img底下的箭頭 + */ + const scrollDownInIndex = () => { + const $scrollDownEle = document.getElementById('scroll-down') + $scrollDownEle && $scrollDownEle.addEventListener('click', function () { + btf.scrollToDest(document.getElementById('content-inner').offsetTop, 300) + }) + } + + /** + * 代碼 + * 只適用於Hexo默認的代碼渲染 + */ + const addHighlightTool = function () { + const highLight = GLOBAL_CONFIG.highlight + if (!highLight) return + + const isHighlightCopy = highLight.highlightCopy + const isHighlightLang = highLight.highlightLang + const isHighlightShrink = GLOBAL_CONFIG_SITE.isHighlightShrink + const highlightHeightLimit = highLight.highlightHeightLimit + const isShowTool = isHighlightCopy || isHighlightLang || isHighlightShrink !== undefined + const $figureHighlight = highLight.plugin === 'highlighjs' ? document.querySelectorAll('figure.highlight') : document.querySelectorAll('pre[class*="language-"]') + + if (!((isShowTool || highlightHeightLimit) && $figureHighlight.length)) return + + const isPrismjs = highLight.plugin === 'prismjs' + + let highlightShrinkEle = '' + let highlightCopyEle = '' + const highlightShrinkClass = isHighlightShrink === true ? 'closed' : '' + + if (isHighlightShrink !== undefined) { + highlightShrinkEle = `` + } + + if (isHighlightCopy) { + highlightCopyEle = '
' + } + + const copy = (text, ctx) => { + if (document.queryCommandSupported && document.queryCommandSupported('copy')) { + document.execCommand('copy') + if (GLOBAL_CONFIG.Snackbar !== undefined) { + // btf.snackbarShow(GLOBAL_CONFIG.copy.success) + } else { + const prevEle = ctx.previousElementSibling + prevEle.innerText = GLOBAL_CONFIG.copy.success + prevEle.style.opacity = 1 + setTimeout(() => { prevEle.style.opacity = 0 }, 700) + } + } else { + if (GLOBAL_CONFIG.Snackbar !== undefined) { + // btf.snackbarShow(GLOBAL_CONFIG.copy.noSupport) + } else { + ctx.previousElementSibling.innerText = GLOBAL_CONFIG.copy.noSupport + } + } + } + + // click events + const highlightCopyFn = (ele) => { + const $buttonParent = ele.parentNode + $buttonParent.classList.add('copy-true') + const selection = window.getSelection() + const range = document.createRange() + if (isPrismjs) range.selectNodeContents($buttonParent.querySelectorAll('pre code')[0]) + else range.selectNodeContents($buttonParent.querySelectorAll('table .code pre')[0]) + selection.removeAllRanges() + selection.addRange(range) + const text = selection.toString() + copy(text, ele.lastChild) + selection.removeAllRanges() + $buttonParent.classList.remove('copy-true') + } + + const highlightShrinkFn = (ele) => { + const $nextEle = [...ele.parentNode.children].slice(1) + ele.firstChild.classList.toggle('closed') + if (btf.isHidden($nextEle[$nextEle.length - 1])) { + $nextEle.forEach(e => { e.style.display = 'block' }) + } else { + $nextEle.forEach(e => { e.style.display = 'none' }) + } + } + + const highlightToolsFn = function (e) { + const $target = e.target.classList + if ($target.contains('expand')) highlightShrinkFn(this) + else if ($target.contains('copy-button')) highlightCopyFn(this) + } + + const expandCode = function () { + this.classList.toggle('expand-done') + } + + function createEle (lang, item, service) { + const fragment = document.createDocumentFragment() + + if (isShowTool) { + const hlTools = document.createElement('div') + hlTools.className = `highlight-tools ${highlightShrinkClass}` + hlTools.innerHTML = highlightShrinkEle + lang + highlightCopyEle + hlTools.addEventListener('click', highlightToolsFn) + fragment.appendChild(hlTools) + } + + if (highlightHeightLimit && item.offsetHeight > highlightHeightLimit + 30) { + const ele = document.createElement('div') + ele.className = 'code-expand-btn' + ele.innerHTML = '' + ele.addEventListener('click', expandCode) + fragment.appendChild(ele) + } + + if (service === 'hl') { + item.insertBefore(fragment, item.firstChild) + } else { + item.parentNode.insertBefore(fragment, item) + } + } + + if (isHighlightLang) { + if (isPrismjs) { + $figureHighlight.forEach(function (item) { + const langName = item.getAttribute('data-language') ? item.getAttribute('data-language') : 'Code' + const highlightLangEle = `
${langName}
` + btf.wrap(item, 'figure', { class: 'highlight' }) + createEle(highlightLangEle, item) + }) + } else { + $figureHighlight.forEach(function (item) { + let langName = item.getAttribute('class').split(' ')[1] + if (langName === 'plain' || langName === undefined) langName = 'Code' + const highlightLangEle = `
${langName}
` + createEle(highlightLangEle, item, 'hl') + }) + } + } else { + if (isPrismjs) { + $figureHighlight.forEach(function (item) { + btf.wrap(item, 'figure', { class: 'highlight' }) + createEle('', item) + }) + } else { + $figureHighlight.forEach(function (item) { + createEle('', item, 'hl') + }) + } + } + } + + /** + * PhotoFigcaption + */ + function addPhotoFigcaption () { + document.querySelectorAll('#article-container img').forEach(function (item) { + const parentEle = item.parentNode + const altValue = item.title || item.alt + if (altValue && !parentEle.parentNode.classList.contains('justified-gallery')) { + const ele = document.createElement('div') + ele.className = 'img-alt is-center' + ele.textContent = altValue + parentEle.insertBefore(ele, item.nextSibling) + } + }) + } + + /** + * Lightbox + */ + const runLightbox = () => { + btf.loadLightbox(document.querySelectorAll('#article-container img:not(.no-lightbox)')) + } + + /** + * justified-gallery 圖庫排版 + */ + const runJustifiedGallery = function (ele) { + ele.forEach(item => { + const $imgList = item.querySelectorAll('img') + + $imgList.forEach(i => { + const dataLazySrc = i.getAttribute('data-lazy-src') + if (dataLazySrc) i.src = dataLazySrc + btf.wrap(i, 'div', { class: 'fj-gallery-item' }) + }) + }) + + if (window.fjGallery) { + setTimeout(() => { btf.initJustifiedGallery(ele) }, 100) + return + } + + const newEle = document.createElement('link') + newEle.rel = 'stylesheet' + newEle.href = GLOBAL_CONFIG.source.justifiedGallery.css + document.body.appendChild(newEle) + getScript(`${GLOBAL_CONFIG.source.justifiedGallery.js}`).then(() => { btf.initJustifiedGallery(ele) }) + } + + /** + * 滾動處理 + */ + const scrollFn = function () { + const $rightside = document.getElementById('rightside') + const innerHeight = window.innerHeight + 56 + + // 當滾動條小于 56 的時候 + if (document.body.scrollHeight <= innerHeight) { + $rightside.style.cssText = 'opacity: 1; transform: translateX(-58px)' + return + } + + // find the scroll direction + function scrollDirection (currentTop) { + const result = currentTop > initTop // true is down & false is up + initTop = currentTop + return result + } + + let initTop = 0 + let isChatShow = true + const $header = document.getElementById('page-header') + const isChatBtnHide = typeof chatBtnHide === 'function' + const isChatBtnShow = typeof chatBtnShow === 'function' + + window.scrollCollect = () => { + return btf.throttle(function (e) { + const currentTop = window.scrollY || document.documentElement.scrollTop + const isDown = scrollDirection(currentTop) + if (currentTop > 56) { + if (isDown) { + if ($header.classList.contains('nav-visible')) $header.classList.remove('nav-visible') + if (isChatBtnShow && isChatShow === true) { + chatBtnHide() + isChatShow = false + } + } else { + if (!$header.classList.contains('nav-visible')) $header.classList.add('nav-visible') + if (isChatBtnHide && isChatShow === false) { + chatBtnShow() + isChatShow = true + } + } + $header.classList.add('nav-fixed') + if (window.getComputedStyle($rightside).getPropertyValue('opacity') === '0') { + $rightside.style.cssText = 'opacity: 0.8; transform: translateX(-58px)' + } + } else { + if (currentTop === 0) { + $header.classList.remove('nav-fixed', 'nav-visible') + } + $rightside.style.cssText = "opacity: ''; transform: ''" + } + + if (document.body.scrollHeight <= innerHeight) { + $rightside.style.cssText = 'opacity: 0.8; transform: translateX(-58px)' + } + }, 200)() + } + + window.addEventListener('scroll', scrollCollect) + } + + /** + * toc,anchor + */ + const scrollFnToDo = function () { + const isToc = GLOBAL_CONFIG_SITE.isToc + const isAnchor = GLOBAL_CONFIG.isAnchor + const $article = document.getElementById('article-container') + + if (!($article && (isToc || isAnchor))) return + + let $tocLink, $cardToc, scrollPercent, autoScrollToc, isExpand + + if (isToc) { + const $cardTocLayout = document.getElementById('card-toc') + $cardToc = $cardTocLayout.getElementsByClassName('toc-content')[0] + $tocLink = $cardToc.querySelectorAll('.toc-link') + const $tocPercentage = $cardTocLayout.querySelector('.toc-percentage') + isExpand = $cardToc.classList.contains('is-expand') + + scrollPercent = currentTop => { + const docHeight = $article.clientHeight + const winHeight = document.documentElement.clientHeight + const headerHeight = $article.offsetTop + const contentMath = (docHeight > winHeight) ? (docHeight - winHeight) : (document.documentElement.scrollHeight - winHeight) + const scrollPercent = (currentTop - headerHeight) / (contentMath) + const scrollPercentRounded = Math.round(scrollPercent * 100) + const percentage = (scrollPercentRounded > 100) ? 100 : (scrollPercentRounded <= 0) ? 0 : scrollPercentRounded + $tocPercentage.textContent = percentage + } + + window.mobileToc = { + open: () => { + $cardTocLayout.style.cssText = 'animation: toc-open .3s; opacity: 1; right: 55px' + }, + + close: () => { + $cardTocLayout.style.animation = 'toc-close .2s' + setTimeout(() => { + $cardTocLayout.style.cssText = "opacity:''; animation: ''; right: ''" + }, 100) + } + } + + // toc元素點擊 + $cardToc.addEventListener('click', e => { + e.preventDefault() + const target = e.target.classList + if (target.contains('toc-content')) return + const $target = target.contains('toc-link') + ? e.target + : e.target.parentElement + btf.scrollToDest(btf.getEleTop(document.getElementById(decodeURI($target.getAttribute('href')).replace('#', ''))), 300) + if (window.innerWidth < 900) { + window.mobileToc.close() + } + }) + + autoScrollToc = item => { + const activePosition = item.getBoundingClientRect().top + const sidebarScrollTop = $cardToc.scrollTop + if (activePosition > (document.documentElement.clientHeight - 100)) { + $cardToc.scrollTop = sidebarScrollTop + 150 + } + if (activePosition < 100) { + $cardToc.scrollTop = sidebarScrollTop - 150 + } + } + } + + // find head position & add active class + const list = $article.querySelectorAll('h1,h2,h3,h4,h5,h6') + let detectItem = '' + const findHeadPosition = function (top) { + if (top === 0) { + return false + } + + let currentId = '' + let currentIndex = '' + + list.forEach(function (ele, index) { + if (top > btf.getEleTop(ele) - 80) { + const id = ele.id + currentId = id ? '#' + encodeURI(id) : '' + currentIndex = index + } + }) + + if (detectItem === currentIndex) return + + if (isAnchor) btf.updateAnchor(currentId) + + detectItem = currentIndex + + if (isToc) { + $cardToc.querySelectorAll('.active').forEach(i => { i.classList.remove('active') }) + + if (currentId === '') { + return + } + + const currentActive = $tocLink[currentIndex] + currentActive.classList.add('active') + + setTimeout(() => { + autoScrollToc(currentActive) + }, 0) + + if (isExpand) return + let parent = currentActive.parentNode + + for (; !parent.matches('.toc'); parent = parent.parentNode) { + if (parent.matches('li')) parent.classList.add('active') + } + } + } + + // main of scroll + window.tocScrollFn = function () { + return btf.throttle(function () { + const currentTop = window.scrollY || document.documentElement.scrollTop + isToc && scrollPercent(currentTop) + findHeadPosition(currentTop) + }, 100)() + } + window.addEventListener('scroll', tocScrollFn) + } + + /** + * Rightside + */ + const rightSideFn = { + switchReadMode: () => { // read-mode + const $body = document.body + $body.classList.add('read-mode') + const newEle = document.createElement('button') + newEle.type = 'button' + newEle.className = 'fas fa-sign-out-alt exit-readmode' + $body.appendChild(newEle) + + function clickFn () { + $body.classList.remove('read-mode') + newEle.remove() + newEle.removeEventListener('click', clickFn) + } + + newEle.addEventListener('click', clickFn) + }, + switchDarkMode: () => { // Switch Between Light And Dark Mode + const nowMode = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'light' + if (nowMode === 'light') { + activateDarkMode() + saveToLocal.set('theme', 'dark', 2) + // GLOBAL_CONFIG.Snackbar !== undefined && btf.snackbarShow(GLOBAL_CONFIG.Snackbar.day_to_night) + } else { + activateLightMode() + saveToLocal.set('theme', 'light', 2) + // GLOBAL_CONFIG.Snackbar !== undefined && btf.snackbarShow(GLOBAL_CONFIG.Snackbar.night_to_day) + } + // handle some cases + typeof utterancesTheme === 'function' && utterancesTheme() + typeof changeGiscusTheme === 'function' && changeGiscusTheme() + typeof FB === 'object' && window.loadFBComment() + typeof runMermaid === 'function' && window.runMermaid() + }, + showOrHideBtn: (e) => { // rightside 點擊設置 按鈕 展開 + const rightsideHideClassList = document.getElementById('rightside-config-hide').classList + rightsideHideClassList.toggle('show') + if (e.classList.contains('show')) { + rightsideHideClassList.add('status') + setTimeout(() => { + rightsideHideClassList.remove('status') + }, 300) + } + e.classList.toggle('show') + }, + scrollToTop: () => { // Back to top + btf.scrollToDest(0, 500) + }, + hideAsideBtn: () => { // Hide aside + const $htmlDom = document.documentElement.classList + $htmlDom.contains('hide-aside') + ? saveToLocal.set('aside-status', 'show', 2) + : saveToLocal.set('aside-status', 'hide', 2) + $htmlDom.toggle('hide-aside') + }, + + runMobileToc: () => { + if (window.getComputedStyle(document.getElementById('card-toc')).getPropertyValue('opacity') === '0') window.mobileToc.open() + else window.mobileToc.close() + } + } + + document.getElementById('rightside').addEventListener('click', function (e) { + const $target = e.target.id ? e.target : e.target.parentNode + switch ($target.id) { + case 'go-up': + rightSideFn.scrollToTop() + break + case 'rightside_config': + rightSideFn.showOrHideBtn($target) + break + case 'mobile-toc-button': + rightSideFn.runMobileToc() + break + case 'readmode': + rightSideFn.switchReadMode() + break + case 'darkmode': + rightSideFn.switchDarkMode() + break + case 'hide-aside-btn': + rightSideFn.hideAsideBtn() + break + default: + break + } + }) + + /** + * menu + * 側邊欄sub-menu 展開/收縮 + */ + const clickFnOfSubMenu = () => { + document.querySelectorAll('#sidebar-menus .site-page.group').forEach(function (item) { + item.addEventListener('click', function () { + this.classList.toggle('hide') + }) + }) + } + + /** + * 複製時加上版權信息 + */ + const addCopyright = () => { + const copyright = GLOBAL_CONFIG.copyright + document.body.oncopy = (e) => { + e.preventDefault() + let textFont; const copyFont = window.getSelection(0).toString() + if (copyFont.length > copyright.limitCount) { + textFont = copyFont + '\n' + '\n' + '\n' + + copyright.languages.author + '\n' + + copyright.languages.link + window.location.href + '\n' + + copyright.languages.source + '\n' + + copyright.languages.info + } else { + textFont = copyFont + } + if (e.clipboardData) { + return e.clipboardData.setData('text', textFont) + } else { + return window.clipboardData.setData('text', textFont) + } + } + } + + /** + * 網頁運行時間 + */ + const addRuntime = () => { + const $runtimeCount = document.getElementById('runtimeshow') + if ($runtimeCount) { + const publishDate = $runtimeCount.getAttribute('data-publishDate') + $runtimeCount.innerText = btf.diffDate(publishDate) + ' ' + GLOBAL_CONFIG.runtime + } + } + + /** + * 最後一次更新時間 + */ + const addLastPushDate = () => { + const $lastPushDateItem = document.getElementById('last-push-date') + if ($lastPushDateItem) { + const lastPushDate = $lastPushDateItem.getAttribute('data-lastPushDate') + $lastPushDateItem.innerText = btf.diffDate(lastPushDate, true) + } + } + + /** + * table overflow + */ + const addTableWrap = () => { + const $table = document.querySelectorAll('#article-container :not(.highlight) > table, #article-container > table') + if ($table.length) { + $table.forEach(item => { + btf.wrap(item, 'div', { class: 'table-wrap' }) + }) + } + } + + /** + * tag-hide + */ + const clickFnOfTagHide = function () { + const $hideInline = document.querySelectorAll('#article-container .hide-button') + if ($hideInline.length) { + $hideInline.forEach(function (item) { + item.addEventListener('click', function (e) { + const $this = this + $this.classList.add('open') + const $fjGallery = $this.nextElementSibling.querySelectorAll('.fj-gallery') + $fjGallery.length && btf.initJustifiedGallery($fjGallery) + }) + }) + } + } + + const tabsFn = { + clickFnOfTabs: function () { + document.querySelectorAll('#article-container .tab > button').forEach(function (item) { + item.addEventListener('click', function (e) { + const $this = this + const $tabItem = $this.parentNode + + if (!$tabItem.classList.contains('active')) { + const $tabContent = $tabItem.parentNode.nextElementSibling + const $siblings = btf.siblings($tabItem, '.active')[0] + $siblings && $siblings.classList.remove('active') + $tabItem.classList.add('active') + const tabId = $this.getAttribute('data-href').replace('#', '') + const childList = [...$tabContent.children] + childList.forEach(item => { + if (item.id === tabId) item.classList.add('active') + else item.classList.remove('active') + }) + const $isTabJustifiedGallery = $tabContent.querySelectorAll(`#${tabId} .fj-gallery`) + if ($isTabJustifiedGallery.length > 0) { + btf.initJustifiedGallery($isTabJustifiedGallery) + } + } + }) + }) + }, + backToTop: () => { + document.querySelectorAll('#article-container .tabs .tab-to-top').forEach(function (item) { + item.addEventListener('click', function () { + btf.scrollToDest(btf.getEleTop(btf.getParents(this, '.tabs')), 300) + }) + }) + } + } + + const toggleCardCategory = function () { + const $cardCategory = document.querySelectorAll('#aside-cat-list .card-category-list-item.parent i') + if ($cardCategory.length) { + $cardCategory.forEach(function (item) { + item.addEventListener('click', function (e) { + e.preventDefault() + const $this = this + $this.classList.toggle('expand') + const $parentEle = $this.parentNode.nextElementSibling + if (btf.isHidden($parentEle)) { + $parentEle.style.display = 'block' + } else { + $parentEle.style.display = 'none' + } + }) + }) + } + } + + const switchComments = function () { + let switchDone = false + const $switchBtn = document.querySelector('#comment-switch > .switch-btn') + $switchBtn && $switchBtn.addEventListener('click', function () { + this.classList.toggle('move') + document.querySelectorAll('#post-comment > .comment-wrap > div').forEach(function (item) { + if (btf.isHidden(item)) { + item.style.cssText = 'display: block;animation: tabshow .5s' + } else { + item.style.cssText = "display: none;animation: ''" + } + }) + + if (!switchDone && typeof loadOtherComment === 'function') { + switchDone = true + loadOtherComment() + } + }) + } + + const addPostOutdateNotice = function () { + const data = GLOBAL_CONFIG.noticeOutdate + const diffDay = btf.diffDate(GLOBAL_CONFIG_SITE.postUpdate) + if (diffDay >= data.limitDay) { + const ele = document.createElement('div') + ele.className = 'post-outdate-notice' + ele.textContent = data.messagePrev + ' ' + diffDay + ' ' + data.messageNext + const $targetEle = document.getElementById('article-container') + if (data.position === 'top') { + $targetEle.insertBefore(ele, $targetEle.firstChild) + } else { + $targetEle.appendChild(ele) + } + } + } + + const lazyloadImg = () => { + window.lazyLoadInstance = new LazyLoad({ + elements_selector: 'img', + threshold: 0, + data_src: 'lazy-src' + }) + } + + const relativeDate = function (selector) { + selector.forEach(item => { + const $this = item + const timeVal = $this.getAttribute('datetime') + $this.innerText = btf.diffDate(timeVal, true) + $this.style.display = 'inline' + }) + } + + const unRefreshFn = function () { + window.addEventListener('resize', () => { + adjustMenu(false) + btf.isHidden(document.getElementById('toggle-menu')) && mobileSidebarOpen && sidebarFn.close() + }) + + document.getElementById('menu-mask').addEventListener('click', e => { sidebarFn.close() }) + + clickFnOfSubMenu() + GLOBAL_CONFIG.islazyload && lazyloadImg() + GLOBAL_CONFIG.copyright !== undefined && addCopyright() + } + + window.refreshFn = function () { + initAdjust() + + if (GLOBAL_CONFIG_SITE.isPost) { + GLOBAL_CONFIG.noticeOutdate !== undefined && addPostOutdateNotice() + GLOBAL_CONFIG.relativeDate.post && relativeDate(document.querySelectorAll('#post-meta time')) + } else { + GLOBAL_CONFIG.relativeDate.homepage && relativeDate(document.querySelectorAll('#recent-posts time')) + GLOBAL_CONFIG.runtime && addRuntime() + addLastPushDate() + toggleCardCategory() + } + + scrollFnToDo() + GLOBAL_CONFIG_SITE.isHome && scrollDownInIndex() + addHighlightTool() + GLOBAL_CONFIG.isPhotoFigcaption && addPhotoFigcaption() + scrollFn() + + const $jgEle = document.querySelectorAll('#article-container .fj-gallery') + $jgEle.length && runJustifiedGallery($jgEle) + + runLightbox() + addTableWrap() + clickFnOfTagHide() + tabsFn.clickFnOfTabs() + tabsFn.backToTop() + switchComments() + document.getElementById('toggle-menu').addEventListener('click', () => { sidebarFn.open() }) + } + + refreshFn() + unRefreshFn() +}) diff --git a/js/qexo-dao.min.js b/js/qexo-dao.min.js new file mode 100644 index 00000000..db6c9784 --- /dev/null +++ b/js/qexo-dao.min.js @@ -0,0 +1,2 @@ +/*! For license information please see qexo-dao.min.js.LICENSE.txt */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.qexoDaodao=t():e.qexoDaodao=t()}(self,(function(){return function(){var e={2557:function(e,t,n){"use strict";e.exports=n(9302)},6965:function(e,t,n){"use strict";var r=n(1966),o=n(5889),a=n(1763),i=n(5565),u=n(4852),s=n(6892),c=n(8830),l=n(8124);e.exports=function(e){return new Promise((function(t,n){var f=e.data,d=e.headers,p=e.responseType;r.isFormData(f)&&delete d["Content-Type"];var v=new XMLHttpRequest;if(e.auth){var y=e.auth.username||"",h=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";d.Authorization="Basic "+btoa(y+":"+h)}var m=u(e.baseURL,e.url);function b(){if(v){var r="getAllResponseHeaders"in v?s(v.getAllResponseHeaders()):null,a={data:p&&"text"!==p&&"json"!==p?v.response:v.responseText,status:v.status,statusText:v.statusText,headers:r,config:e,request:v};o(t,n,a),v=null}}if(v.open(e.method.toUpperCase(),i(m,e.params,e.paramsSerializer),!0),v.timeout=e.timeout,"onloadend"in v?v.onloadend=b:v.onreadystatechange=function(){v&&4===v.readyState&&(0!==v.status||v.responseURL&&0===v.responseURL.indexOf("file:"))&&setTimeout(b)},v.onabort=function(){v&&(n(l("Request aborted",e,"ECONNABORTED",v)),v=null)},v.onerror=function(){n(l("Network Error",e,null,v)),v=null},v.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(l(t,e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",v)),v=null},r.isStandardBrowserEnv()){var g=(e.withCredentials||c(m))&&e.xsrfCookieName?a.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}"setRequestHeader"in v&&r.forEach(d,(function(e,t){void 0===f&&"content-type"===t.toLowerCase()?delete d[t]:v.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(v.withCredentials=!!e.withCredentials),p&&"json"!==p&&(v.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&v.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&v.upload&&v.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){v&&(v.abort(),n(e),v=null)})),f||(f=null),v.send(f)}))}},9302:function(e,t,n){"use strict";var r=n(1966),o=n(7509),a=n(9401),i=n(2636);function u(e){var t=new a(e),n=o(a.prototype.request,t);return r.extend(n,a.prototype,t),r.extend(n,t),n}var s=u(n(6338));s.Axios=a,s.create=function(e){return u(i(s.defaults,e))},s.Cancel=n(9387),s.CancelToken=n(8745),s.isCancel=n(4227),s.all=function(e){return Promise.all(e)},s.spread=n(262),s.isAxiosError=n(8668),e.exports=s,e.exports.default=s},9387:function(e){"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},8745:function(e,t,n){"use strict";var r=n(9387);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},4227:function(e){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},9401:function(e,t,n){"use strict";var r=n(1966),o=n(5565),a=n(801),i=n(9440),u=n(2636),s=n(199),c=s.validators;function l(e){this.defaults=e,this.interceptors={request:new a,response:new a}}l.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=u(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&s.assertOptions(t,{silentJSONParsing:c.transitional(c.boolean,"1.0.0"),forcedJSONParsing:c.transitional(c.boolean,"1.0.0"),clarifyTimeoutError:c.transitional(c.boolean,"1.0.0")},!1);var n=[],r=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(r=r&&t.synchronous,n.unshift(t.fulfilled,t.rejected))}));var o,a=[];if(this.interceptors.response.forEach((function(e){a.push(e.fulfilled,e.rejected)})),!r){var l=[i,void 0];for(Array.prototype.unshift.apply(l,n),l=l.concat(a),o=Promise.resolve(e);l.length;)o=o.then(l.shift(),l.shift());return o}for(var f=e;n.length;){var d=n.shift(),p=n.shift();try{f=d(f)}catch(e){p(e);break}}try{o=i(f)}catch(e){return Promise.reject(e)}for(;a.length;)o=o.then(a.shift(),a.shift());return o},l.prototype.getUri=function(e){return e=u(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){l.prototype[e]=function(t,n){return this.request(u(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){l.prototype[e]=function(t,n,r){return this.request(u(r||{},{method:e,url:t,data:n}))}})),e.exports=l},801:function(e,t,n){"use strict";var r=n(1966);function o(){this.handlers=[]}o.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},4852:function(e,t,n){"use strict";var r=n(4622),o=n(8825);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},8124:function(e,t,n){"use strict";var r=n(9984);e.exports=function(e,t,n,o,a){var i=new Error(e);return r(i,t,n,o,a)}},9440:function(e,t,n){"use strict";var r=n(1966),o=n(3926),a=n(4227),i=n(6338);function u(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return u(e),e.headers=e.headers||{},e.data=o.call(e,e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||i.adapter)(e).then((function(t){return u(e),t.data=o.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return a(t)||(u(e),t&&t.response&&(t.response.data=o.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},9984:function(e){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},2636:function(e,t,n){"use strict";var r=n(1966);e.exports=function(e,t){t=t||{};var n={},o=["url","method","data"],a=["headers","auth","proxy","params"],i=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],u=["validateStatus"];function s(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function c(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=s(void 0,e[o])):n[o]=s(e[o],t[o])}r.forEach(o,(function(e){r.isUndefined(t[e])||(n[e]=s(void 0,t[e]))})),r.forEach(a,c),r.forEach(i,(function(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=s(void 0,e[o])):n[o]=s(void 0,t[o])})),r.forEach(u,(function(r){r in t?n[r]=s(e[r],t[r]):r in e&&(n[r]=s(void 0,e[r]))}));var l=o.concat(a).concat(i).concat(u),f=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===l.indexOf(e)}));return r.forEach(f,c),n}},5889:function(e,t,n){"use strict";var r=n(8124);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},3926:function(e,t,n){"use strict";var r=n(1966),o=n(6338);e.exports=function(e,t,n){var a=this||o;return r.forEach(n,(function(n){e=n.call(a,e,t)})),e}},6338:function(e,t,n){"use strict";var r=n(1966),o=n(9419),a=n(9984),i={"Content-Type":"application/x-www-form-urlencoded"};function u(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var s,c={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(s=n(6965)),s),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(u(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)||t&&"application/json"===t["Content-Type"]?(u(t,"application/json"),function(e,t,n){if(r.isString(e))try{return(0,JSON.parse)(e),r.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional,n=t&&t.silentJSONParsing,o=t&&t.forcedJSONParsing,i=!n&&"json"===this.responseType;if(i||o&&r.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(i){if("SyntaxError"===e.name)throw a(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){c.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){c.headers[e]=r.merge(i)})),e.exports=c},7509:function(e){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r=0)return;i[t]="set-cookie"===t?(i[t]?i[t]:[]).concat([n]):i[t]?i[t]+", "+n:n}})),i):i}},262:function(e){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},199:function(e,t,n){"use strict";var r=n(3330)(n(9767)),o=n(8593),a={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){a[e]=function(n){return(0,r.default)(n)===e||"a"+(t<1?"n ":" ")+e}}));var i={},u=o.version.split(".");function s(e,t){for(var n=t?t.split("."):u,r=e.split("."),o=0;o<3;o++){if(n[o]>r[o])return!0;if(n[o]0;){var i=o[a],u=t[i];if(u){var s=e[i],c=void 0===s||u(s,i,e);if(!0!==c)throw new TypeError("option "+i+" must be "+c)}else if(!0!==n)throw Error("Unknown option "+i)}},validators:a}},1966:function(e,t,n){"use strict";var r=n(3330)(n(9767)),o=n(7509),a=Object.prototype.toString;function i(e){return"[object Array]"===a.call(e)}function u(e){return void 0===e}function s(e){return null!==e&&"object"===(0,r.default)(e)}function c(e){if("[object Object]"!==a.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function l(e){return"[object Function]"===a.call(e)}function f(e,t){if(null!=e)if("object"!==(0,r.default)(e)&&(e=[e]),i(e))for(var n=0,o=e.length;n0?"-":"+",r=Math.abs(e),o=Math.floor(r/60),a=r%60;if(0===a)return n+String(o);var i=t||"";return n+String(o)+i+(0,c.default)(a,2)}function d(e,t){return e%60==0?(e>0?"-":"+")+(0,c.default)(Math.abs(e)/60,2):p(e,t)}function p(e,t){var n=t||"",r=e>0?"-":"+",o=Math.abs(e);return r+(0,c.default)(Math.floor(o/60),2)+n+(0,c.default)(o%60,2)}var v={G:function(e,t,n){var r=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var r=e.getUTCFullYear(),o=r>0?r:1-r;return n.ordinalNumber(o,{unit:"year"})}return l.default.y(e,t)},Y:function(e,t,n,r){var o=(0,s.default)(e,r),a=o>0?o:1-o;if("YY"===t){var i=a%100;return(0,c.default)(i,2)}return"Yo"===t?n.ordinalNumber(a,{unit:"year"}):(0,c.default)(a,t.length)},R:function(e,t){var n=(0,i.default)(e);return(0,c.default)(n,t.length)},u:function(e,t){var n=e.getUTCFullYear();return(0,c.default)(n,t.length)},Q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return(0,c.default)(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return(0,c.default)(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){var r=e.getUTCMonth();switch(t){case"M":case"MM":return l.default.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){var r=e.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return(0,c.default)(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){var o=(0,u.default)(e,r);return"wo"===t?n.ordinalNumber(o,{unit:"week"}):(0,c.default)(o,t.length)},I:function(e,t,n){var r=(0,a.default)(e);return"Io"===t?n.ordinalNumber(r,{unit:"week"}):(0,c.default)(r,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):l.default.d(e,t)},D:function(e,t,n){var r=(0,o.default)(e);return"Do"===t?n.ordinalNumber(r,{unit:"dayOfYear"}):(0,c.default)(r,t.length)},E:function(e,t,n){var r=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){var o=e.getUTCDay(),a=(o-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(a);case"ee":return(0,c.default)(a,2);case"eo":return n.ordinalNumber(a,{unit:"day"});case"eee":return n.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){var o=e.getUTCDay(),a=(o-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(a);case"cc":return(0,c.default)(a,t.length);case"co":return n.ordinalNumber(a,{unit:"day"});case"ccc":return n.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(o,{width:"narrow",context:"standalone"});case"cccccc":return n.day(o,{width:"short",context:"standalone"});default:return n.day(o,{width:"wide",context:"standalone"})}},i:function(e,t,n){var r=e.getUTCDay(),o=0===r?7:r;switch(t){case"i":return String(o);case"ii":return(0,c.default)(o,t.length);case"io":return n.ordinalNumber(o,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){var r,o=e.getUTCHours();switch(r=12===o?"noon":0===o?"midnight":o/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){var r,o=e.getUTCHours();switch(r=o>=17?"evening":o>=12?"afternoon":o>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var r=e.getUTCHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return l.default.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):l.default.H(e,t)},K:function(e,t,n){var r=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(r,{unit:"hour"}):(0,c.default)(r,t.length)},k:function(e,t,n){var r=e.getUTCHours();return 0===r&&(r=24),"ko"===t?n.ordinalNumber(r,{unit:"hour"}):(0,c.default)(r,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):l.default.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):l.default.s(e,t)},S:function(e,t){return l.default.S(e,t)},X:function(e,t,n,r){var o=(r._originalDate||e).getTimezoneOffset();if(0===o)return"Z";switch(t){case"X":return d(o);case"XXXX":case"XX":return p(o);default:return p(o,":")}},x:function(e,t,n,r){var o=(r._originalDate||e).getTimezoneOffset();switch(t){case"x":return d(o);case"xxxx":case"xx":return p(o);default:return p(o,":")}},O:function(e,t,n,r){var o=(r._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+f(o,":");default:return"GMT"+p(o,":")}},z:function(e,t,n,r){var o=(r._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+f(o,":");default:return"GMT"+p(o,":")}},t:function(e,t,n,r){var o=r._originalDate||e,a=Math.floor(o.getTime()/1e3);return(0,c.default)(a,t.length)},T:function(e,t,n,r){var o=(r._originalDate||e).getTime();return(0,c.default)(o,t.length)}};t.default=v},2851:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(5115)),a={y:function(e,t){var n=e.getUTCFullYear(),r=n>0?n:1-n;return(0,o.default)("yy"===t?r%100:r,t.length)},M:function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):(0,o.default)(n+1,2)},d:function(e,t){return(0,o.default)(e.getUTCDate(),t.length)},a:function(e,t){var n=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:function(e,t){return(0,o.default)(e.getUTCHours()%12||12,t.length)},H:function(e,t){return(0,o.default)(e.getUTCHours(),t.length)},m:function(e,t){return(0,o.default)(e.getUTCMinutes(),t.length)},s:function(e,t){return(0,o.default)(e.getUTCSeconds(),t.length)},S:function(e,t){var n=t.length,r=e.getUTCMilliseconds(),a=Math.floor(r*Math.pow(10,n-3));return(0,o.default)(a,t.length)}};t.default=a},1696:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},r=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},o={p:r,P:function(e,t){var o,a=e.match(/(P+)(p+)?/)||[],i=a[1],u=a[2];if(!u)return n(e,t);switch(i){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;default:o=t.dateTime({width:"full"})}return o.replace("1728144042937",n(i,t)).replace("",r(u,t))}};t.default=o},7955:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}},3570:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var r=t.getTime(),u=n-r;return Math.floor(u/i)+1};var o=r(n(2368)),a=r(n(9652)),i=864e5},7378:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getUTCFullYear(),r=new Date(0);r.setUTCFullYear(n+1,0,4),r.setUTCHours(0,0,0,0);var u=(0,i.default)(r),s=new Date(0);s.setUTCFullYear(n,0,4),s.setUTCHours(0,0,0,0);var c=(0,i.default)(s);return t.getTime()>=u.getTime()?n+1:t.getTime()>=c.getTime()?n:n-1};var o=r(n(2368)),a=r(n(9652)),i=r(n(7295))},8949:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,u.default)(1,arguments);var t=(0,o.default)(e),n=(0,a.default)(t).getTime()-(0,i.default)(t).getTime();return Math.round(n/s)+1};var o=r(n(2368)),a=r(n(7295)),i=r(n(7435)),u=r(n(9652)),s=6048e5},5970:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n,r,c,l,f,d,p,v;(0,a.default)(1,arguments);var y=(0,o.default)(e),h=y.getUTCFullYear(),m=(0,s.getDefaultOptions)(),b=(0,u.default)(null!==(n=null!==(r=null!==(c=null!==(l=null==t?void 0:t.firstWeekContainsDate)&&void 0!==l?l:null==t||null===(f=t.locale)||void 0===f||null===(d=f.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==c?c:m.firstWeekContainsDate)&&void 0!==r?r:null===(p=m.locale)||void 0===p||null===(v=p.options)||void 0===v?void 0:v.firstWeekContainsDate)&&void 0!==n?n:1);if(!(b>=1&&b<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(h+1,0,b),g.setUTCHours(0,0,0,0);var _=(0,i.default)(g,t),w=new Date(0);w.setUTCFullYear(h,0,b),w.setUTCHours(0,0,0,0);var O=(0,i.default)(w,t);return y.getTime()>=_.getTime()?h+1:y.getTime()>=O.getTime()?h:h-1};var o=r(n(2368)),a=r(n(9652)),i=r(n(9087)),u=r(n(2449)),s=n(7014)},838:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,u.default)(1,arguments);var n=(0,o.default)(e),r=(0,a.default)(n,t).getTime()-(0,i.default)(n,t).getTime();return Math.round(r/s)+1};var o=r(n(2368)),a=r(n(9087)),i=r(n(6828)),u=r(n(9652)),s=6048e5},8343:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isProtectedDayOfYearToken=function(e){return-1!==n.indexOf(e)},t.isProtectedWeekYearToken=function(e){return-1!==r.indexOf(e)},t.throwProtectedError=function(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))};var n=["D","DD"],r=["YY","YYYY"]},9652:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}},3671:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getRoundingMethod=function(e){return e?n[e]:n.trunc};var n={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(e){return e<0?Math.ceil(e):Math.floor(e)}}},7169:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var r,s,c,l,f,d,p,v;(0,a.default)(2,arguments);var y=(0,u.getDefaultOptions)(),h=(0,i.default)(null!==(r=null!==(s=null!==(c=null!==(l=null==n?void 0:n.weekStartsOn)&&void 0!==l?l:null==n||null===(f=n.locale)||void 0===f||null===(d=f.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==c?c:y.weekStartsOn)&&void 0!==s?s:null===(p=y.locale)||void 0===p||null===(v=p.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==r?r:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=(0,o.default)(e),b=(0,i.default)(t),g=m.getUTCDay(),_=b%7,w=(_+7)%7,O=(w=0&&y<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var h=(0,o.default)(e),m=h.getUTCDay(),b=(m0;)n.setDate(n.getDate()+d),(0,o.default)(n)||(v-=1);return r&&(0,o.default)(n)&&0!==l&&((0,c.default)(n)&&n.setDate(n.getDate()+(d<0?2:-1)),(0,s.default)(n)&&n.setDate(n.getDate()+(d<0?1:-2))),n.setHours(f),n};var o=r(n(9018)),a=r(n(2368)),i=r(n(2449)),u=r(n(9652)),s=r(n(7568)),c=r(n(7768))},971:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t);return isNaN(r)?new Date(NaN):r?(n.setDate(n.getDate()+r),n):n};var o=r(n(2449)),a=r(n(2368)),i=r(n(9652))},2823:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,o.default)(t);return(0,a.default)(e,n*u)};var o=r(n(2449)),a=r(n(7684)),i=r(n(9652)),u=36e5},7592:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,u.default)(2,arguments);var n=(0,o.default)(t);return(0,i.default)(e,(0,a.default)(e)+n)};var o=r(n(2449)),a=r(n(4314)),i=r(n(3040)),u=r(n(9652))},7684:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e).getTime(),r=(0,o.default)(t);return new Date(n+r)};var o=r(n(2449)),a=r(n(2368)),i=r(n(9652))},5117:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,o.default)(t);return(0,a.default)(e,6e4*n)};var o=r(n(2449)),a=r(n(7684)),i=r(n(9652))},1899:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t);if(isNaN(r))return new Date(NaN);if(!r)return n;var u=n.getDate(),s=new Date(n.getTime());s.setMonth(n.getMonth()+r+1,0);var c=s.getDate();return u>=c?s:(n.setFullYear(s.getFullYear(),s.getMonth(),u),n)};var o=r(n(2449)),a=r(n(2368)),i=r(n(9652))},2420:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,o.default)(t),r=3*n;return(0,a.default)(e,r)};var o=r(n(2449)),a=r(n(1899)),i=r(n(9652))},1917:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,o.default)(t);return(0,a.default)(e,1e3*n)};var o=r(n(2449)),a=r(n(7684)),i=r(n(9652))},7518:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,o.default)(t),r=7*n;return(0,a.default)(e,r)};var o=r(n(2449)),a=r(n(971)),i=r(n(9652))},7491:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,o.default)(t);return(0,a.default)(e,12*n)};var o=r(n(2449)),a=r(n(1899)),i=r(n(9652))},6222:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,u.default)(2,arguments),!t||"object"!==c(t))return new Date(NaN);var n=t.years?(0,s.default)(t.years):0,r=t.months?(0,s.default)(t.months):0,l=t.weeks?(0,s.default)(t.weeks):0,f=t.days?(0,s.default)(t.days):0,d=t.hours?(0,s.default)(t.hours):0,p=t.minutes?(0,s.default)(t.minutes):0,v=t.seconds?(0,s.default)(t.seconds):0,y=(0,i.default)(e),h=r||n?(0,a.default)(y,r+12*n):y,m=f||l?(0,o.default)(h,f+7*l):h,b=p+60*d,g=v+60*b,_=1e3*g,w=new Date(m.getTime()+_);return w};var o=r(n(971)),a=r(n(1899)),i=r(n(2368)),u=r(n(9652)),s=r(n(2449));function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}},3630:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){(0,a.default)(2,arguments);var r=(0,o.default)(null==e?void 0:e.start).getTime(),i=(0,o.default)(null==e?void 0:e.end).getTime(),u=(0,o.default)(null==t?void 0:t.start).getTime(),s=(0,o.default)(null==t?void 0:t.end).getTime();if(!(r<=i&&u<=s))throw new RangeError("Invalid interval");return null!=n&&n.inclusive?r<=s&&u<=i:r0?1:i};var o=r(n(2368)),a=r(n(9652))},313:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,a.default)(2,arguments);var n=(0,o.default)(e),r=(0,o.default)(t),i=n.getTime()-r.getTime();return i>0?-1:i<0?1:i};var o=r(n(2368)),a=r(n(9652))},1186:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.secondsInYear=t.secondsInWeek=t.secondsInQuarter=t.secondsInMonth=t.secondsInMinute=t.secondsInHour=t.secondsInDay=t.quartersInYear=t.monthsInYear=t.monthsInQuarter=t.minutesInHour=t.minTime=t.millisecondsInSecond=t.millisecondsInMinute=t.millisecondsInHour=t.maxTime=t.daysInYear=t.daysInWeek=void 0,t.daysInWeek=7;t.daysInYear=365.2425;var n=24*Math.pow(10,8)*60*60*1e3;t.maxTime=n,t.millisecondsInMinute=6e4,t.millisecondsInHour=36e5,t.millisecondsInSecond=1e3;var r=-n;t.minTime=r,t.minutesInHour=60,t.monthsInQuarter=3,t.monthsInYear=12,t.quartersInYear=4,t.secondsInHour=3600,t.secondsInMinute=60;t.secondsInDay=86400,t.secondsInWeek=604800;t.secondsInYear=31556952;t.secondsInMonth=2629746,t.secondsInQuarter=7889238},9352:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(1,arguments);var t=e/a.daysInWeek;return Math.floor(t)};var o=r(n(9652)),a=n(1186)},4130:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,l.default)(2,arguments);var n=(0,c.default)(e),r=(0,c.default)(t);if(!(0,u.default)(n)||!(0,u.default)(r))return NaN;var d=(0,a.default)(n,r),p=d<0?-1:1,v=(0,f.default)(d/7),y=5*v;for(r=(0,o.default)(r,7*v);!(0,i.default)(n,r);)y+=(0,s.default)(r)?0:p,r=(0,o.default)(r,p);return 0===y?0:y};var o=r(n(971)),a=r(n(4639)),i=r(n(3652)),u=r(n(7707)),s=r(n(9018)),c=r(n(2368)),l=r(n(9652)),f=r(n(2449))},4639:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e),r=(0,a.default)(t),s=n.getTime()-(0,o.default)(n),c=r.getTime()-(0,o.default)(r);return Math.round((s-c)/u)};var o=r(n(7955)),a=r(n(2127)),i=r(n(9652)),u=864e5},8710:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,a.default)(2,arguments),(0,o.default)(e)-(0,o.default)(t)};var o=r(n(4314)),a=r(n(9652))},8342:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e),r=(0,a.default)(t),s=n.getTime()-(0,o.default)(n),c=r.getTime()-(0,o.default)(r);return Math.round((s-c)/u)};var o=r(n(7955)),a=r(n(740)),i=r(n(9652)),u=6048e5},8547:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,a.default)(2,arguments);var n=(0,o.default)(e),r=(0,o.default)(t),i=n.getFullYear()-r.getFullYear(),u=n.getMonth()-r.getMonth();return 12*i+u};var o=r(n(2368)),a=r(n(9652))},4181:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e),r=(0,a.default)(t),u=n.getFullYear()-r.getFullYear(),s=(0,o.default)(n)-(0,o.default)(r);return 4*u+s};var o=r(n(4812)),a=r(n(2368)),i=r(n(9652))},5743:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){(0,i.default)(2,arguments);var r=(0,o.default)(e,n),s=(0,o.default)(t,n),c=r.getTime()-(0,a.default)(r),l=s.getTime()-(0,a.default)(s);return Math.round((c-l)/u)};var o=r(n(384)),a=r(n(7955)),i=r(n(9652)),u=6048e5},2857:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,a.default)(2,arguments);var n=(0,o.default)(e),r=(0,o.default)(t);return n.getFullYear()-r.getFullYear()};var o=r(n(2368)),a=r(n(9652))},1604:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,o.default)(e),r=(0,o.default)(t),s=u(n,r),c=Math.abs((0,a.default)(n,r));n.setDate(n.getDate()-s*c);var l=Number(u(n,r)===-s),f=s*(c-l);return 0===f?0:f};var o=r(n(2368)),a=r(n(4639)),i=r(n(9652));function u(e,t){var n=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return n<0?-1:n>0?1:n}},1038:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){(0,i.default)(2,arguments);var r=(0,a.default)(e,t)/o.millisecondsInHour;return(0,u.getRoundingMethod)(null==n?void 0:n.roundingMethod)(r)};var o=n(1186),a=r(n(6063)),i=r(n(9652)),u=n(3671)},648:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,s.default)(2,arguments);var n=(0,o.default)(e),r=(0,o.default)(t),c=(0,i.default)(n,r),l=Math.abs((0,a.default)(n,r));n=(0,u.default)(n,c*l);var f=Number((0,i.default)(n,r)===-c),d=c*(l-f);return 0===d?0:d};var o=r(n(2368)),a=r(n(8710)),i=r(n(4765)),u=r(n(3185)),s=r(n(9652))},6063:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,a.default)(2,arguments),(0,o.default)(e).getTime()-(0,o.default)(t).getTime()};var o=r(n(2368)),a=r(n(9652))},8875:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){(0,i.default)(2,arguments);var r=(0,a.default)(e,t)/o.millisecondsInMinute;return(0,u.getRoundingMethod)(null==n?void 0:n.roundingMethod)(r)};var o=n(1186),a=r(n(6063)),i=r(n(9652)),u=n(3671)},2645:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,u.default)(2,arguments);var n,r=(0,o.default)(e),c=(0,o.default)(t),l=(0,i.default)(r,c),f=Math.abs((0,a.default)(r,c));if(f<1)n=0;else{1===r.getMonth()&&r.getDate()>27&&r.setDate(30),r.setMonth(r.getMonth()-l*f);var d=(0,i.default)(r,c)===-l;(0,s.default)((0,o.default)(e))&&1===f&&1===(0,i.default)(e,c)&&(d=!1),n=l*(f-Number(d))}return 0===n?0:n};var o=r(n(2368)),a=r(n(8547)),i=r(n(4765)),u=r(n(9652)),s=r(n(160))},250:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){(0,a.default)(2,arguments);var r=(0,o.default)(e,t)/3;return(0,i.getRoundingMethod)(null==n?void 0:n.roundingMethod)(r)};var o=r(n(2645)),a=r(n(9652)),i=n(3671)},4864:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){(0,a.default)(2,arguments);var r=(0,o.default)(e,t)/1e3;return(0,i.getRoundingMethod)(null==n?void 0:n.roundingMethod)(r)};var o=r(n(6063)),a=r(n(9652)),i=n(3671)},80:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){(0,a.default)(2,arguments);var r=(0,o.default)(e,t)/7;return(0,i.getRoundingMethod)(null==n?void 0:n.roundingMethod)(r)};var o=r(n(1604)),a=r(n(9652)),i=n(3671)},6643:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,u.default)(2,arguments);var n=(0,o.default)(e),r=(0,o.default)(t),s=(0,i.default)(n,r),c=Math.abs((0,a.default)(n,r));n.setFullYear(1584),r.setFullYear(1584);var l=(0,i.default)(n,r)===-s,f=s*(c-Number(l));return 0===f?0:f};var o=r(n(2368)),a=r(n(2857)),i=r(n(4765)),u=r(n(9652))},6674:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n;(0,a.default)(1,arguments);var r=e||{},i=(0,o.default)(r.start),u=(0,o.default)(r.end),s=u.getTime();if(!(i.getTime()<=s))throw new RangeError("Invalid interval");var c=[],l=i;l.setHours(0,0,0,0);var f=Number(null!==(n=null==t?void 0:t.step)&&void 0!==n?n:1);if(f<1||isNaN(f))throw new RangeError("`options.step` must be a number greater than 1");for(;l.getTime()<=s;)c.push((0,o.default)(l)),l.setDate(l.getDate()+f),l.setHours(0,0,0,0);return c};var o=r(n(2368)),a=r(n(9652))},2274:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n;(0,i.default)(1,arguments);var r=e||{},u=(0,a.default)(r.start),s=(0,a.default)(r.end),c=u.getTime(),l=s.getTime();if(!(c<=l))throw new RangeError("Invalid interval");var f=[],d=u;d.setMinutes(0,0,0);var p=Number(null!==(n=null==t?void 0:t.step)&&void 0!==n?n:1);if(p<1||isNaN(p))throw new RangeError("`options.step` must be a number greater than 1");for(;d.getTime()<=l;)f.push((0,a.default)(d)),d=(0,o.default)(d,p);return f};var o=r(n(2823)),a=r(n(2368)),i=r(n(9652))},58:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n;(0,u.default)(1,arguments);var r=(0,i.default)((0,a.default)(e.start)),s=(0,a.default)(e.end),c=r.getTime(),l=s.getTime();if(c>=l)throw new RangeError("Invalid interval");var f=[],d=r,p=Number(null!==(n=null==t?void 0:t.step)&&void 0!==n?n:1);if(p<1||isNaN(p))throw new RangeError("`options.step` must be a number equal to or greater than 1");for(;d.getTime()<=l;)f.push((0,a.default)(d)),d=(0,o.default)(d,p);return f};var o=r(n(5117)),a=r(n(2368)),i=r(n(7013)),u=r(n(9652))},1761:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=e||{},n=(0,o.default)(t.start),r=(0,o.default)(t.end),i=r.getTime(),u=[];if(!(n.getTime()<=i))throw new RangeError("Invalid interval");var s=n;for(s.setHours(0,0,0,0),s.setDate(1);s.getTime()<=i;)u.push((0,o.default)(s)),s.setMonth(s.getMonth()+1);return u};var o=r(n(2368)),a=r(n(9652))},2362:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,u.default)(1,arguments);var t=e||{},n=(0,i.default)(t.start),r=(0,i.default)(t.end),s=r.getTime();if(!(n.getTime()<=s))throw new RangeError("Invalid interval");var c=(0,a.default)(n),l=(0,a.default)(r);s=l.getTime();for(var f=[],d=c;d.getTime()<=s;)f.push((0,i.default)(d)),d=(0,o.default)(d,1);return f};var o=r(n(2420)),a=r(n(4715)),i=r(n(2368)),u=r(n(9652))},9246:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,u.default)(1,arguments);var n=e||{},r=(0,i.default)(n.start),s=(0,i.default)(n.end),c=s.getTime();if(!(r.getTime()<=c))throw new RangeError("Invalid interval");var l=(0,a.default)(r,t),f=(0,a.default)(s,t);l.setHours(15),f.setHours(15),c=f.getTime();for(var d=[],p=l;p.getTime()<=c;)p.setHours(0),d.push((0,i.default)(p)),(p=(0,o.default)(p,1)).setHours(15);return d};var o=r(n(7518)),a=r(n(384)),i=r(n(2368)),u=r(n(9652))},7402:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,u.default)(1,arguments);for(var t=(0,o.default)(e),n=[],r=0;r=0&&y<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var h=(0,a.default)(e),m=h.getDay(),b=6+(m0?(w=(0,u.default)(t),O=(0,u.default)(e)):(w=(0,u.default)(e),O=(0,u.default)(t));var x,j=String(null!==(m=null==n?void 0:n.roundingMethod)&&void 0!==m?m:"round");if("floor"===j)x=Math.floor;else if("ceil"===j)x=Math.ceil;else{if("round"!==j)throw new RangeError("roundingMethod must be 'floor', 'ceil' or 'round'");x=Math.round}var T,k=O.getTime()-w.getTime(),S=k/d,M=(0,a.default)(O)-(0,a.default)(w),D=(k-M)/d,C=null==n?void 0:n.unit;if("second"===(T=C?String(C):S<1?"second":S<60?"minute":S0?(_=(0,c.default)(t),w=(0,c.default)(e)):(_=(0,c.default)(e),w=(0,c.default)(t));var P,x=(0,u.default)(w,_),j=((0,d.default)(w)-(0,d.default)(_))/1e3,T=Math.round((x-j)/60);if(T<2)return null!=n&&n.includeSeconds?x<5?b.formatDistance("lessThanXSeconds",5,O):x<10?b.formatDistance("lessThanXSeconds",10,O):x<20?b.formatDistance("lessThanXSeconds",20,O):x<40?b.formatDistance("halfAMinute",0,O):x<60?b.formatDistance("lessThanXMinutes",1,O):b.formatDistance("xMinutes",1,O):0===T?b.formatDistance("lessThanXMinutes",1,O):b.formatDistance("xMinutes",T,O);if(T<45)return b.formatDistance("xMinutes",T,O);if(T<90)return b.formatDistance("aboutXHours",1,O);if(T=0&&s<=3))throw new RangeError("fractionDigits must be between 0 and 3 inclusively");var c=(0,i.default)(r.getDate(),2),l=(0,i.default)(r.getMonth()+1,2),f=r.getFullYear(),d=(0,i.default)(r.getHours(),2),p=(0,i.default)(r.getMinutes(),2),v=(0,i.default)(r.getSeconds(),2),y="";if(s>0){var h=r.getMilliseconds(),m=Math.floor(h*Math.pow(10,s-3));y="."+(0,i.default)(m,s)}var b="",g=r.getTimezoneOffset();if(0!==g){var _=Math.abs(g),w=(0,i.default)((0,u.default)(_/60),2),O=(0,i.default)(_%60,2),P=g<0?"+":"-";b="".concat(P).concat(w,":").concat(O)}else b="Z";return"".concat(f,"-").concat(l,"-").concat(c,"T").concat(d,":").concat(p,":").concat(v).concat(y).concat(b)};var o=r(n(2368)),a=r(n(7707)),i=r(n(5115)),u=r(n(2449))},9883:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if(arguments.length<1)throw new TypeError("1 arguments required, but only ".concat(arguments.length," present"));var t=(0,o.default)(e);if(!(0,a.default)(t))throw new RangeError("Invalid time value");var n=u[t.getUTCDay()],r=(0,i.default)(t.getUTCDate(),2),c=s[t.getUTCMonth()],l=t.getUTCFullYear(),f=(0,i.default)(t.getUTCHours(),2),d=(0,i.default)(t.getUTCMinutes(),2),p=(0,i.default)(t.getUTCSeconds(),2);return"".concat(n,", ").concat(r," ").concat(c," ").concat(l," ").concat(f,":").concat(d,":").concat(p," GMT")};var o=r(n(2368)),a=r(n(7707)),i=r(n(5115)),u=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},6553:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var r,p,v,y,h,m,b,g,_,w;(0,f.default)(2,arguments);var O=(0,c.default)(e),P=(0,c.default)(t),x=(0,o.getDefaultOptions)(),j=null!==(r=null!==(p=null==n?void 0:n.locale)&&void 0!==p?p:x.locale)&&void 0!==r?r:u.default,T=(0,d.default)(null!==(v=null!==(y=null!==(h=null!==(m=null==n?void 0:n.weekStartsOn)&&void 0!==m?m:null==n||null===(b=n.locale)||void 0===b||null===(g=b.options)||void 0===g?void 0:g.weekStartsOn)&&void 0!==h?h:x.weekStartsOn)&&void 0!==y?y:null===(_=x.locale)||void 0===_||null===(w=_.options)||void 0===w?void 0:w.weekStartsOn)&&void 0!==v?v:0);if(!j.localize)throw new RangeError("locale must contain localize property");if(!j.formatLong)throw new RangeError("locale must contain formatLong property");if(!j.formatRelative)throw new RangeError("locale must contain formatRelative property");var k,S=(0,a.default)(O,P);if(isNaN(S))throw new RangeError("Invalid time value");k=S<-6?"other":S<-1?"lastWeek":S<0?"yesterday":S<1?"today":S<2?"tomorrow":S<7?"nextWeek":"other";var M=(0,s.default)(O,(0,l.default)(O)),D=(0,s.default)(P,(0,l.default)(P)),C=j.formatRelative(k,M,D,{locale:j,weekStartsOn:T});return(0,i.default)(O,C,{locale:j,weekStartsOn:T})};var o=n(7014),a=r(n(4639)),i=r(n(3665)),u=r(n(3096)),s=r(n(6128)),c=r(n(2368)),l=r(n(7955)),f=r(n(9652)),d=r(n(2449))},3665:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var r,m,b,w,O,P,x,j,T,k,S,M,D,C,E,R,I,N;(0,d.default)(2,arguments);var A=String(t),Y=(0,p.getDefaultOptions)(),L=null!==(r=null!==(m=null==n?void 0:n.locale)&&void 0!==m?m:Y.locale)&&void 0!==r?r:v.default,B=(0,f.default)(null!==(b=null!==(w=null!==(O=null!==(P=null==n?void 0:n.firstWeekContainsDate)&&void 0!==P?P:null==n||null===(x=n.locale)||void 0===x||null===(j=x.options)||void 0===j?void 0:j.firstWeekContainsDate)&&void 0!==O?O:Y.firstWeekContainsDate)&&void 0!==w?w:null===(T=Y.locale)||void 0===T||null===(k=T.options)||void 0===k?void 0:k.firstWeekContainsDate)&&void 0!==b?b:1);if(!(B>=1&&B<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var U=(0,f.default)(null!==(S=null!==(M=null!==(D=null!==(C=null==n?void 0:n.weekStartsOn)&&void 0!==C?C:null==n||null===(E=n.locale)||void 0===E||null===(R=E.options)||void 0===R?void 0:R.weekStartsOn)&&void 0!==D?D:Y.weekStartsOn)&&void 0!==M?M:null===(I=Y.locale)||void 0===I||null===(N=I.options)||void 0===N?void 0:N.weekStartsOn)&&void 0!==S?S:0);if(!(U>=0&&U<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!L.localize)throw new RangeError("locale must contain localize property");if(!L.formatLong)throw new RangeError("locale must contain formatLong property");var F=(0,i.default)(e);if(!(0,o.default)(F))throw new RangeError("Invalid time value");var H=(0,c.default)(F),$=(0,a.default)(F,H),W={firstWeekContainsDate:B,weekStartsOn:U,locale:L,_originalDate:F},V=A.match(h).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,s.default[t])(e,L.formatLong):e})).join("").match(y).map((function(r){if("''"===r)return"'";var o=r[0];if("'"===o)return _(r);var a=u.default[o];if(a)return null!=n&&n.useAdditionalWeekYearTokens||!(0,l.isProtectedWeekYearToken)(r)||(0,l.throwProtectedError)(r,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!(0,l.isProtectedDayOfYearToken)(r)||(0,l.throwProtectedError)(r,t,String(e)),a($,r,L.localize,W);if(o.match(g))throw new RangeError("Format string contains an unescaped latin alphabet character `"+o+"`");return r})).join("");return V};var o=r(n(7707)),a=r(n(6128)),i=r(n(2368)),u=r(n(1387)),s=r(n(1696)),c=r(n(7955)),l=n(8343),f=r(n(2449)),d=r(n(9652)),p=n(7014),v=r(n(3096)),y=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,h=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,m=/^'([^]*?)'?$/,b=/''/g,g=/[a-zA-Z]/;function _(e){var t=e.match(m);return t?t[1].replace(b,"'"):e}},6737:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,i.default)(1,arguments);var t=(0,a.default)(e);return(0,o.default)(1e3*t)};var o=r(n(2368)),a=r(n(2449)),i=r(n(9652))},6142:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getDate();return n};var o=r(n(2368)),a=r(n(9652))},9981:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,u.default)(1,arguments);var t=(0,o.default)(e),n=(0,i.default)(t,(0,a.default)(t)),r=n+1;return r};var o=r(n(2368)),a=r(n(2403)),i=r(n(4639)),u=r(n(9652))},4858:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getDay();return n};var o=r(n(2368)),a=r(n(9652))},8368:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getFullYear(),r=t.getMonth(),i=new Date(0);return i.setFullYear(n,r+1,0),i.setHours(0,0,0,0),i.getDate()};var o=r(n(2368)),a=r(n(9652))},941:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,i.default)(1,arguments);var t=(0,o.default)(e);return"Invalid Date"===String(new Date(t))?NaN:(0,a.default)(t)?366:365};var o=r(n(2368)),a=r(n(4102)),i=r(n(9652))},8123:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getFullYear(),r=10*Math.floor(n/10);return r};var o=r(n(2368)),a=r(n(9652))},5910:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return(0,a.default)({},(0,o.getDefaultOptions)())};var o=n(7014),a=r(n(619))},7282:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getHours();return n};var o=r(n(2368)),a=r(n(9652))},821:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getDay();return 0===n&&(n=7),n};var o=r(n(2368)),a=r(n(9652))},4314:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,i.default)(1,arguments);var t=(0,o.default)(e),n=t.getFullYear(),r=new Date(0);r.setFullYear(n+1,0,4),r.setHours(0,0,0,0);var u=(0,a.default)(r),s=new Date(0);s.setFullYear(n,0,4),s.setHours(0,0,0,0);var c=(0,a.default)(s);return t.getTime()>=u.getTime()?n+1:t.getTime()>=c.getTime()?n:n-1};var o=r(n(2368)),a=r(n(740)),i=r(n(9652))},5832:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,u.default)(1,arguments);var t=(0,o.default)(e),n=(0,a.default)(t).getTime()-(0,i.default)(t).getTime();return Math.round(n/s)+1};var o=r(n(2368)),a=r(n(740)),i=r(n(5030)),u=r(n(9652)),s=6048e5},5758:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,i.default)(1,arguments);var t=(0,o.default)(e),n=(0,o.default)((0,a.default)(t,60)),r=n.valueOf()-t.valueOf();return Math.round(r/u)};var o=r(n(5030)),a=r(n(7518)),i=r(n(9652)),u=6048e5},2735:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getMilliseconds();return n};var o=r(n(2368)),a=r(n(9652))},9437:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getMinutes();return n};var o=r(n(2368)),a=r(n(9652))},8975:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getMonth();return n};var o=r(n(2368)),a=r(n(9652))},9046:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,a.default)(2,arguments);var n=e||{},r=t||{},u=(0,o.default)(n.start).getTime(),s=(0,o.default)(n.end).getTime(),c=(0,o.default)(r.start).getTime(),l=(0,o.default)(r.end).getTime();if(!(u<=s&&c<=l))throw new RangeError("Invalid interval");var f=us?s:l,v=p-d;return Math.ceil(v/i)};var o=r(n(2368)),a=r(n(9652)),i=864e5},4812:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=Math.floor(t.getMonth()/3)+1;return n};var o=r(n(2368)),a=r(n(9652))},3856:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getSeconds();return n};var o=r(n(2368)),a=r(n(9652))},1063:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getTime();return n};var o=r(n(2368)),a=r(n(9652))},6794:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),Math.floor((0,o.default)(e)/1e3)};var o=r(n(1063)),a=r(n(9652))},732:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n,r,l,f,d,p,v,y;(0,s.default)(1,arguments);var h=(0,o.getDefaultOptions)(),m=(0,c.default)(null!==(n=null!==(r=null!==(l=null!==(f=null==t?void 0:t.weekStartsOn)&&void 0!==f?f:null==t||null===(d=t.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.weekStartsOn)&&void 0!==l?l:h.weekStartsOn)&&void 0!==r?r:null===(v=h.locale)||void 0===v||null===(y=v.options)||void 0===y?void 0:y.weekStartsOn)&&void 0!==n?n:0);if(!(m>=0&&m<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var b=(0,a.default)(e);if(isNaN(b))return NaN;var g=(0,i.default)((0,u.default)(e)),_=m-g;_<=0&&(_+=7);var w=b-_;return Math.ceil(w/7)+1};var o=n(7014),a=r(n(6142)),i=r(n(4858)),u=r(n(7265)),s=r(n(9652)),c=r(n(2449))},4548:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n,r,c,l,f,d,p,v;(0,u.default)(1,arguments);var y=(0,a.default)(e),h=y.getFullYear(),m=(0,s.getDefaultOptions)(),b=(0,i.default)(null!==(n=null!==(r=null!==(c=null!==(l=null==t?void 0:t.firstWeekContainsDate)&&void 0!==l?l:null==t||null===(f=t.locale)||void 0===f||null===(d=f.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==c?c:m.firstWeekContainsDate)&&void 0!==r?r:null===(p=m.locale)||void 0===p||null===(v=p.options)||void 0===v?void 0:v.firstWeekContainsDate)&&void 0!==n?n:1);if(!(b>=1&&b<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setFullYear(h+1,0,b),g.setHours(0,0,0,0);var _=(0,o.default)(g,t),w=new Date(0);w.setFullYear(h,0,b),w.setHours(0,0,0,0);var O=(0,o.default)(w,t);return y.getTime()>=_.getTime()?h+1:y.getTime()>=O.getTime()?h:h-1};var o=r(n(384)),a=r(n(2368)),i=r(n(2449)),u=r(n(9652)),s=n(7014)},6714:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,u.default)(1,arguments);var n=(0,i.default)(e),r=(0,o.default)(n,t).getTime()-(0,a.default)(n,t).getTime();return Math.round(r/s)+1};var o=r(n(384)),a=r(n(1514)),i=r(n(2368)),u=r(n(9652)),s=6048e5},4719:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,u.default)(1,arguments),(0,o.default)((0,a.default)(e),(0,i.default)(e),t)+1};var o=r(n(5743)),a=r(n(3763)),i=r(n(7265)),u=r(n(9652))},1280:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),(0,o.default)(e).getFullYear()};var o=r(n(2368)),a=r(n(9652))},2484:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(1,arguments),Math.floor(e*a.millisecondsInHour)};var o=r(n(9652)),a=n(1186)},7758:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(1,arguments),Math.floor(e*a.minutesInHour)};var o=r(n(9652)),a=n(1186)},5369:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(1,arguments),Math.floor(e*a.secondsInHour)};var o=r(n(9652)),a=n(1186)},7153:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0});var o={add:!0,addBusinessDays:!0,addDays:!0,addHours:!0,addISOWeekYears:!0,addMilliseconds:!0,addMinutes:!0,addMonths:!0,addQuarters:!0,addSeconds:!0,addWeeks:!0,addYears:!0,areIntervalsOverlapping:!0,clamp:!0,closestIndexTo:!0,closestTo:!0,compareAsc:!0,compareDesc:!0,daysToWeeks:!0,differenceInBusinessDays:!0,differenceInCalendarDays:!0,differenceInCalendarISOWeekYears:!0,differenceInCalendarISOWeeks:!0,differenceInCalendarMonths:!0,differenceInCalendarQuarters:!0,differenceInCalendarWeeks:!0,differenceInCalendarYears:!0,differenceInDays:!0,differenceInHours:!0,differenceInISOWeekYears:!0,differenceInMilliseconds:!0,differenceInMinutes:!0,differenceInMonths:!0,differenceInQuarters:!0,differenceInSeconds:!0,differenceInWeeks:!0,differenceInYears:!0,eachDayOfInterval:!0,eachHourOfInterval:!0,eachMinuteOfInterval:!0,eachMonthOfInterval:!0,eachQuarterOfInterval:!0,eachWeekOfInterval:!0,eachWeekendOfInterval:!0,eachWeekendOfMonth:!0,eachWeekendOfYear:!0,eachYearOfInterval:!0,endOfDay:!0,endOfDecade:!0,endOfHour:!0,endOfISOWeek:!0,endOfISOWeekYear:!0,endOfMinute:!0,endOfMonth:!0,endOfQuarter:!0,endOfSecond:!0,endOfToday:!0,endOfTomorrow:!0,endOfWeek:!0,endOfYear:!0,endOfYesterday:!0,format:!0,formatDistance:!0,formatDistanceStrict:!0,formatDistanceToNow:!0,formatDistanceToNowStrict:!0,formatDuration:!0,formatISO:!0,formatISO9075:!0,formatISODuration:!0,formatRFC3339:!0,formatRFC7231:!0,formatRelative:!0,fromUnixTime:!0,getDate:!0,getDay:!0,getDayOfYear:!0,getDaysInMonth:!0,getDaysInYear:!0,getDecade:!0,getDefaultOptions:!0,getHours:!0,getISODay:!0,getISOWeek:!0,getISOWeekYear:!0,getISOWeeksInYear:!0,getMilliseconds:!0,getMinutes:!0,getMonth:!0,getOverlappingDaysInIntervals:!0,getQuarter:!0,getSeconds:!0,getTime:!0,getUnixTime:!0,getWeek:!0,getWeekOfMonth:!0,getWeekYear:!0,getWeeksInMonth:!0,getYear:!0,hoursToMilliseconds:!0,hoursToMinutes:!0,hoursToSeconds:!0,intervalToDuration:!0,intlFormat:!0,intlFormatDistance:!0,isAfter:!0,isBefore:!0,isDate:!0,isEqual:!0,isExists:!0,isFirstDayOfMonth:!0,isFriday:!0,isFuture:!0,isLastDayOfMonth:!0,isLeapYear:!0,isMatch:!0,isMonday:!0,isPast:!0,isSameDay:!0,isSameHour:!0,isSameISOWeek:!0,isSameISOWeekYear:!0,isSameMinute:!0,isSameMonth:!0,isSameQuarter:!0,isSameSecond:!0,isSameWeek:!0,isSameYear:!0,isSaturday:!0,isSunday:!0,isThisHour:!0,isThisISOWeek:!0,isThisMinute:!0,isThisMonth:!0,isThisQuarter:!0,isThisSecond:!0,isThisWeek:!0,isThisYear:!0,isThursday:!0,isToday:!0,isTomorrow:!0,isTuesday:!0,isValid:!0,isWednesday:!0,isWeekend:!0,isWithinInterval:!0,isYesterday:!0,lastDayOfDecade:!0,lastDayOfISOWeek:!0,lastDayOfISOWeekYear:!0,lastDayOfMonth:!0,lastDayOfQuarter:!0,lastDayOfWeek:!0,lastDayOfYear:!0,lightFormat:!0,max:!0,milliseconds:!0,millisecondsToHours:!0,millisecondsToMinutes:!0,millisecondsToSeconds:!0,min:!0,minutesToHours:!0,minutesToMilliseconds:!0,minutesToSeconds:!0,monthsToQuarters:!0,monthsToYears:!0,nextDay:!0,nextFriday:!0,nextMonday:!0,nextSaturday:!0,nextSunday:!0,nextThursday:!0,nextTuesday:!0,nextWednesday:!0,parse:!0,parseISO:!0,parseJSON:!0,previousDay:!0,previousFriday:!0,previousMonday:!0,previousSaturday:!0,previousSunday:!0,previousThursday:!0,previousTuesday:!0,previousWednesday:!0,quartersToMonths:!0,quartersToYears:!0,roundToNearestMinutes:!0,secondsToHours:!0,secondsToMilliseconds:!0,secondsToMinutes:!0,set:!0,setDate:!0,setDay:!0,setDayOfYear:!0,setDefaultOptions:!0,setHours:!0,setISODay:!0,setISOWeek:!0,setISOWeekYear:!0,setMilliseconds:!0,setMinutes:!0,setMonth:!0,setQuarter:!0,setSeconds:!0,setWeek:!0,setWeekYear:!0,setYear:!0,startOfDay:!0,startOfDecade:!0,startOfHour:!0,startOfISOWeek:!0,startOfISOWeekYear:!0,startOfMinute:!0,startOfMonth:!0,startOfQuarter:!0,startOfSecond:!0,startOfToday:!0,startOfTomorrow:!0,startOfWeek:!0,startOfWeekYear:!0,startOfYear:!0,startOfYesterday:!0,sub:!0,subBusinessDays:!0,subDays:!0,subHours:!0,subISOWeekYears:!0,subMilliseconds:!0,subMinutes:!0,subMonths:!0,subQuarters:!0,subSeconds:!0,subWeeks:!0,subYears:!0,toDate:!0,weeksToDays:!0,yearsToMonths:!0,yearsToQuarters:!0};Object.defineProperty(t,"add",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"addBusinessDays",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"addDays",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"addHours",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"addISOWeekYears",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"addMilliseconds",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"addMinutes",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(t,"addMonths",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(t,"addQuarters",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(t,"addSeconds",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(t,"addWeeks",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(t,"addYears",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(t,"areIntervalsOverlapping",{enumerable:!0,get:function(){return m.default}}),Object.defineProperty(t,"clamp",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(t,"closestIndexTo",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(t,"closestTo",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(t,"compareAsc",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(t,"compareDesc",{enumerable:!0,get:function(){return O.default}}),Object.defineProperty(t,"daysToWeeks",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(t,"differenceInBusinessDays",{enumerable:!0,get:function(){return x.default}}),Object.defineProperty(t,"differenceInCalendarDays",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(t,"differenceInCalendarISOWeekYears",{enumerable:!0,get:function(){return T.default}}),Object.defineProperty(t,"differenceInCalendarISOWeeks",{enumerable:!0,get:function(){return k.default}}),Object.defineProperty(t,"differenceInCalendarMonths",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(t,"differenceInCalendarQuarters",{enumerable:!0,get:function(){return M.default}}),Object.defineProperty(t,"differenceInCalendarWeeks",{enumerable:!0,get:function(){return D.default}}),Object.defineProperty(t,"differenceInCalendarYears",{enumerable:!0,get:function(){return C.default}}),Object.defineProperty(t,"differenceInDays",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(t,"differenceInHours",{enumerable:!0,get:function(){return R.default}}),Object.defineProperty(t,"differenceInISOWeekYears",{enumerable:!0,get:function(){return I.default}}),Object.defineProperty(t,"differenceInMilliseconds",{enumerable:!0,get:function(){return N.default}}),Object.defineProperty(t,"differenceInMinutes",{enumerable:!0,get:function(){return A.default}}),Object.defineProperty(t,"differenceInMonths",{enumerable:!0,get:function(){return Y.default}}),Object.defineProperty(t,"differenceInQuarters",{enumerable:!0,get:function(){return L.default}}),Object.defineProperty(t,"differenceInSeconds",{enumerable:!0,get:function(){return B.default}}),Object.defineProperty(t,"differenceInWeeks",{enumerable:!0,get:function(){return U.default}}),Object.defineProperty(t,"differenceInYears",{enumerable:!0,get:function(){return F.default}}),Object.defineProperty(t,"eachDayOfInterval",{enumerable:!0,get:function(){return H.default}}),Object.defineProperty(t,"eachHourOfInterval",{enumerable:!0,get:function(){return $.default}}),Object.defineProperty(t,"eachMinuteOfInterval",{enumerable:!0,get:function(){return W.default}}),Object.defineProperty(t,"eachMonthOfInterval",{enumerable:!0,get:function(){return V.default}}),Object.defineProperty(t,"eachQuarterOfInterval",{enumerable:!0,get:function(){return z.default}}),Object.defineProperty(t,"eachWeekOfInterval",{enumerable:!0,get:function(){return q.default}}),Object.defineProperty(t,"eachWeekendOfInterval",{enumerable:!0,get:function(){return X.default}}),Object.defineProperty(t,"eachWeekendOfMonth",{enumerable:!0,get:function(){return Q.default}}),Object.defineProperty(t,"eachWeekendOfYear",{enumerable:!0,get:function(){return Z.default}}),Object.defineProperty(t,"eachYearOfInterval",{enumerable:!0,get:function(){return G.default}}),Object.defineProperty(t,"endOfDay",{enumerable:!0,get:function(){return J.default}}),Object.defineProperty(t,"endOfDecade",{enumerable:!0,get:function(){return K.default}}),Object.defineProperty(t,"endOfHour",{enumerable:!0,get:function(){return ee.default}}),Object.defineProperty(t,"endOfISOWeek",{enumerable:!0,get:function(){return te.default}}),Object.defineProperty(t,"endOfISOWeekYear",{enumerable:!0,get:function(){return ne.default}}),Object.defineProperty(t,"endOfMinute",{enumerable:!0,get:function(){return re.default}}),Object.defineProperty(t,"endOfMonth",{enumerable:!0,get:function(){return oe.default}}),Object.defineProperty(t,"endOfQuarter",{enumerable:!0,get:function(){return ae.default}}),Object.defineProperty(t,"endOfSecond",{enumerable:!0,get:function(){return ie.default}}),Object.defineProperty(t,"endOfToday",{enumerable:!0,get:function(){return ue.default}}),Object.defineProperty(t,"endOfTomorrow",{enumerable:!0,get:function(){return se.default}}),Object.defineProperty(t,"endOfWeek",{enumerable:!0,get:function(){return ce.default}}),Object.defineProperty(t,"endOfYear",{enumerable:!0,get:function(){return le.default}}),Object.defineProperty(t,"endOfYesterday",{enumerable:!0,get:function(){return fe.default}}),Object.defineProperty(t,"format",{enumerable:!0,get:function(){return de.default}}),Object.defineProperty(t,"formatDistance",{enumerable:!0,get:function(){return pe.default}}),Object.defineProperty(t,"formatDistanceStrict",{enumerable:!0,get:function(){return ve.default}}),Object.defineProperty(t,"formatDistanceToNow",{enumerable:!0,get:function(){return ye.default}}),Object.defineProperty(t,"formatDistanceToNowStrict",{enumerable:!0,get:function(){return he.default}}),Object.defineProperty(t,"formatDuration",{enumerable:!0,get:function(){return me.default}}),Object.defineProperty(t,"formatISO",{enumerable:!0,get:function(){return be.default}}),Object.defineProperty(t,"formatISO9075",{enumerable:!0,get:function(){return ge.default}}),Object.defineProperty(t,"formatISODuration",{enumerable:!0,get:function(){return _e.default}}),Object.defineProperty(t,"formatRFC3339",{enumerable:!0,get:function(){return we.default}}),Object.defineProperty(t,"formatRFC7231",{enumerable:!0,get:function(){return Oe.default}}),Object.defineProperty(t,"formatRelative",{enumerable:!0,get:function(){return Pe.default}}),Object.defineProperty(t,"fromUnixTime",{enumerable:!0,get:function(){return xe.default}}),Object.defineProperty(t,"getDate",{enumerable:!0,get:function(){return je.default}}),Object.defineProperty(t,"getDay",{enumerable:!0,get:function(){return Te.default}}),Object.defineProperty(t,"getDayOfYear",{enumerable:!0,get:function(){return ke.default}}),Object.defineProperty(t,"getDaysInMonth",{enumerable:!0,get:function(){return Se.default}}),Object.defineProperty(t,"getDaysInYear",{enumerable:!0,get:function(){return Me.default}}),Object.defineProperty(t,"getDecade",{enumerable:!0,get:function(){return De.default}}),Object.defineProperty(t,"getDefaultOptions",{enumerable:!0,get:function(){return Ce.default}}),Object.defineProperty(t,"getHours",{enumerable:!0,get:function(){return Ee.default}}),Object.defineProperty(t,"getISODay",{enumerable:!0,get:function(){return Re.default}}),Object.defineProperty(t,"getISOWeek",{enumerable:!0,get:function(){return Ie.default}}),Object.defineProperty(t,"getISOWeekYear",{enumerable:!0,get:function(){return Ne.default}}),Object.defineProperty(t,"getISOWeeksInYear",{enumerable:!0,get:function(){return Ae.default}}),Object.defineProperty(t,"getMilliseconds",{enumerable:!0,get:function(){return Ye.default}}),Object.defineProperty(t,"getMinutes",{enumerable:!0,get:function(){return Le.default}}),Object.defineProperty(t,"getMonth",{enumerable:!0,get:function(){return Be.default}}),Object.defineProperty(t,"getOverlappingDaysInIntervals",{enumerable:!0,get:function(){return Ue.default}}),Object.defineProperty(t,"getQuarter",{enumerable:!0,get:function(){return Fe.default}}),Object.defineProperty(t,"getSeconds",{enumerable:!0,get:function(){return He.default}}),Object.defineProperty(t,"getTime",{enumerable:!0,get:function(){return $e.default}}),Object.defineProperty(t,"getUnixTime",{enumerable:!0,get:function(){return We.default}}),Object.defineProperty(t,"getWeek",{enumerable:!0,get:function(){return Ve.default}}),Object.defineProperty(t,"getWeekOfMonth",{enumerable:!0,get:function(){return ze.default}}),Object.defineProperty(t,"getWeekYear",{enumerable:!0,get:function(){return qe.default}}),Object.defineProperty(t,"getWeeksInMonth",{enumerable:!0,get:function(){return Xe.default}}),Object.defineProperty(t,"getYear",{enumerable:!0,get:function(){return Qe.default}}),Object.defineProperty(t,"hoursToMilliseconds",{enumerable:!0,get:function(){return Ze.default}}),Object.defineProperty(t,"hoursToMinutes",{enumerable:!0,get:function(){return Ge.default}}),Object.defineProperty(t,"hoursToSeconds",{enumerable:!0,get:function(){return Je.default}}),Object.defineProperty(t,"intervalToDuration",{enumerable:!0,get:function(){return Ke.default}}),Object.defineProperty(t,"intlFormat",{enumerable:!0,get:function(){return et.default}}),Object.defineProperty(t,"intlFormatDistance",{enumerable:!0,get:function(){return tt.default}}),Object.defineProperty(t,"isAfter",{enumerable:!0,get:function(){return nt.default}}),Object.defineProperty(t,"isBefore",{enumerable:!0,get:function(){return rt.default}}),Object.defineProperty(t,"isDate",{enumerable:!0,get:function(){return ot.default}}),Object.defineProperty(t,"isEqual",{enumerable:!0,get:function(){return at.default}}),Object.defineProperty(t,"isExists",{enumerable:!0,get:function(){return it.default}}),Object.defineProperty(t,"isFirstDayOfMonth",{enumerable:!0,get:function(){return ut.default}}),Object.defineProperty(t,"isFriday",{enumerable:!0,get:function(){return st.default}}),Object.defineProperty(t,"isFuture",{enumerable:!0,get:function(){return ct.default}}),Object.defineProperty(t,"isLastDayOfMonth",{enumerable:!0,get:function(){return lt.default}}),Object.defineProperty(t,"isLeapYear",{enumerable:!0,get:function(){return ft.default}}),Object.defineProperty(t,"isMatch",{enumerable:!0,get:function(){return dt.default}}),Object.defineProperty(t,"isMonday",{enumerable:!0,get:function(){return pt.default}}),Object.defineProperty(t,"isPast",{enumerable:!0,get:function(){return vt.default}}),Object.defineProperty(t,"isSameDay",{enumerable:!0,get:function(){return yt.default}}),Object.defineProperty(t,"isSameHour",{enumerable:!0,get:function(){return ht.default}}),Object.defineProperty(t,"isSameISOWeek",{enumerable:!0,get:function(){return mt.default}}),Object.defineProperty(t,"isSameISOWeekYear",{enumerable:!0,get:function(){return bt.default}}),Object.defineProperty(t,"isSameMinute",{enumerable:!0,get:function(){return gt.default}}),Object.defineProperty(t,"isSameMonth",{enumerable:!0,get:function(){return _t.default}}),Object.defineProperty(t,"isSameQuarter",{enumerable:!0,get:function(){return wt.default}}),Object.defineProperty(t,"isSameSecond",{enumerable:!0,get:function(){return Ot.default}}),Object.defineProperty(t,"isSameWeek",{enumerable:!0,get:function(){return Pt.default}}),Object.defineProperty(t,"isSameYear",{enumerable:!0,get:function(){return xt.default}}),Object.defineProperty(t,"isSaturday",{enumerable:!0,get:function(){return jt.default}}),Object.defineProperty(t,"isSunday",{enumerable:!0,get:function(){return Tt.default}}),Object.defineProperty(t,"isThisHour",{enumerable:!0,get:function(){return kt.default}}),Object.defineProperty(t,"isThisISOWeek",{enumerable:!0,get:function(){return St.default}}),Object.defineProperty(t,"isThisMinute",{enumerable:!0,get:function(){return Mt.default}}),Object.defineProperty(t,"isThisMonth",{enumerable:!0,get:function(){return Dt.default}}),Object.defineProperty(t,"isThisQuarter",{enumerable:!0,get:function(){return Ct.default}}),Object.defineProperty(t,"isThisSecond",{enumerable:!0,get:function(){return Et.default}}),Object.defineProperty(t,"isThisWeek",{enumerable:!0,get:function(){return Rt.default}}),Object.defineProperty(t,"isThisYear",{enumerable:!0,get:function(){return It.default}}),Object.defineProperty(t,"isThursday",{enumerable:!0,get:function(){return Nt.default}}),Object.defineProperty(t,"isToday",{enumerable:!0,get:function(){return At.default}}),Object.defineProperty(t,"isTomorrow",{enumerable:!0,get:function(){return Yt.default}}),Object.defineProperty(t,"isTuesday",{enumerable:!0,get:function(){return Lt.default}}),Object.defineProperty(t,"isValid",{enumerable:!0,get:function(){return Bt.default}}),Object.defineProperty(t,"isWednesday",{enumerable:!0,get:function(){return Ut.default}}),Object.defineProperty(t,"isWeekend",{enumerable:!0,get:function(){return Ft.default}}),Object.defineProperty(t,"isWithinInterval",{enumerable:!0,get:function(){return Ht.default}}),Object.defineProperty(t,"isYesterday",{enumerable:!0,get:function(){return $t.default}}),Object.defineProperty(t,"lastDayOfDecade",{enumerable:!0,get:function(){return Wt.default}}),Object.defineProperty(t,"lastDayOfISOWeek",{enumerable:!0,get:function(){return Vt.default}}),Object.defineProperty(t,"lastDayOfISOWeekYear",{enumerable:!0,get:function(){return zt.default}}),Object.defineProperty(t,"lastDayOfMonth",{enumerable:!0,get:function(){return qt.default}}),Object.defineProperty(t,"lastDayOfQuarter",{enumerable:!0,get:function(){return Xt.default}}),Object.defineProperty(t,"lastDayOfWeek",{enumerable:!0,get:function(){return Qt.default}}),Object.defineProperty(t,"lastDayOfYear",{enumerable:!0,get:function(){return Zt.default}}),Object.defineProperty(t,"lightFormat",{enumerable:!0,get:function(){return Gt.default}}),Object.defineProperty(t,"max",{enumerable:!0,get:function(){return Jt.default}}),Object.defineProperty(t,"milliseconds",{enumerable:!0,get:function(){return Kt.default}}),Object.defineProperty(t,"millisecondsToHours",{enumerable:!0,get:function(){return en.default}}),Object.defineProperty(t,"millisecondsToMinutes",{enumerable:!0,get:function(){return tn.default}}),Object.defineProperty(t,"millisecondsToSeconds",{enumerable:!0,get:function(){return nn.default}}),Object.defineProperty(t,"min",{enumerable:!0,get:function(){return rn.default}}),Object.defineProperty(t,"minutesToHours",{enumerable:!0,get:function(){return on.default}}),Object.defineProperty(t,"minutesToMilliseconds",{enumerable:!0,get:function(){return an.default}}),Object.defineProperty(t,"minutesToSeconds",{enumerable:!0,get:function(){return un.default}}),Object.defineProperty(t,"monthsToQuarters",{enumerable:!0,get:function(){return sn.default}}),Object.defineProperty(t,"monthsToYears",{enumerable:!0,get:function(){return cn.default}}),Object.defineProperty(t,"nextDay",{enumerable:!0,get:function(){return ln.default}}),Object.defineProperty(t,"nextFriday",{enumerable:!0,get:function(){return fn.default}}),Object.defineProperty(t,"nextMonday",{enumerable:!0,get:function(){return dn.default}}),Object.defineProperty(t,"nextSaturday",{enumerable:!0,get:function(){return pn.default}}),Object.defineProperty(t,"nextSunday",{enumerable:!0,get:function(){return vn.default}}),Object.defineProperty(t,"nextThursday",{enumerable:!0,get:function(){return yn.default}}),Object.defineProperty(t,"nextTuesday",{enumerable:!0,get:function(){return hn.default}}),Object.defineProperty(t,"nextWednesday",{enumerable:!0,get:function(){return mn.default}}),Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return bn.default}}),Object.defineProperty(t,"parseISO",{enumerable:!0,get:function(){return gn.default}}),Object.defineProperty(t,"parseJSON",{enumerable:!0,get:function(){return _n.default}}),Object.defineProperty(t,"previousDay",{enumerable:!0,get:function(){return wn.default}}),Object.defineProperty(t,"previousFriday",{enumerable:!0,get:function(){return On.default}}),Object.defineProperty(t,"previousMonday",{enumerable:!0,get:function(){return Pn.default}}),Object.defineProperty(t,"previousSaturday",{enumerable:!0,get:function(){return xn.default}}),Object.defineProperty(t,"previousSunday",{enumerable:!0,get:function(){return jn.default}}),Object.defineProperty(t,"previousThursday",{enumerable:!0,get:function(){return Tn.default}}),Object.defineProperty(t,"previousTuesday",{enumerable:!0,get:function(){return kn.default}}),Object.defineProperty(t,"previousWednesday",{enumerable:!0,get:function(){return Sn.default}}),Object.defineProperty(t,"quartersToMonths",{enumerable:!0,get:function(){return Mn.default}}),Object.defineProperty(t,"quartersToYears",{enumerable:!0,get:function(){return Dn.default}}),Object.defineProperty(t,"roundToNearestMinutes",{enumerable:!0,get:function(){return Cn.default}}),Object.defineProperty(t,"secondsToHours",{enumerable:!0,get:function(){return En.default}}),Object.defineProperty(t,"secondsToMilliseconds",{enumerable:!0,get:function(){return Rn.default}}),Object.defineProperty(t,"secondsToMinutes",{enumerable:!0,get:function(){return In.default}}),Object.defineProperty(t,"set",{enumerable:!0,get:function(){return Nn.default}}),Object.defineProperty(t,"setDate",{enumerable:!0,get:function(){return An.default}}),Object.defineProperty(t,"setDay",{enumerable:!0,get:function(){return Yn.default}}),Object.defineProperty(t,"setDayOfYear",{enumerable:!0,get:function(){return Ln.default}}),Object.defineProperty(t,"setDefaultOptions",{enumerable:!0,get:function(){return Bn.default}}),Object.defineProperty(t,"setHours",{enumerable:!0,get:function(){return Un.default}}),Object.defineProperty(t,"setISODay",{enumerable:!0,get:function(){return Fn.default}}),Object.defineProperty(t,"setISOWeek",{enumerable:!0,get:function(){return Hn.default}}),Object.defineProperty(t,"setISOWeekYear",{enumerable:!0,get:function(){return $n.default}}),Object.defineProperty(t,"setMilliseconds",{enumerable:!0,get:function(){return Wn.default}}),Object.defineProperty(t,"setMinutes",{enumerable:!0,get:function(){return Vn.default}}),Object.defineProperty(t,"setMonth",{enumerable:!0,get:function(){return zn.default}}),Object.defineProperty(t,"setQuarter",{enumerable:!0,get:function(){return qn.default}}),Object.defineProperty(t,"setSeconds",{enumerable:!0,get:function(){return Xn.default}}),Object.defineProperty(t,"setWeek",{enumerable:!0,get:function(){return Qn.default}}),Object.defineProperty(t,"setWeekYear",{enumerable:!0,get:function(){return Zn.default}}),Object.defineProperty(t,"setYear",{enumerable:!0,get:function(){return Gn.default}}),Object.defineProperty(t,"startOfDay",{enumerable:!0,get:function(){return Jn.default}}),Object.defineProperty(t,"startOfDecade",{enumerable:!0,get:function(){return Kn.default}}),Object.defineProperty(t,"startOfHour",{enumerable:!0,get:function(){return er.default}}),Object.defineProperty(t,"startOfISOWeek",{enumerable:!0,get:function(){return tr.default}}),Object.defineProperty(t,"startOfISOWeekYear",{enumerable:!0,get:function(){return nr.default}}),Object.defineProperty(t,"startOfMinute",{enumerable:!0,get:function(){return rr.default}}),Object.defineProperty(t,"startOfMonth",{enumerable:!0,get:function(){return or.default}}),Object.defineProperty(t,"startOfQuarter",{enumerable:!0,get:function(){return ar.default}}),Object.defineProperty(t,"startOfSecond",{enumerable:!0,get:function(){return ir.default}}),Object.defineProperty(t,"startOfToday",{enumerable:!0,get:function(){return ur.default}}),Object.defineProperty(t,"startOfTomorrow",{enumerable:!0,get:function(){return sr.default}}),Object.defineProperty(t,"startOfWeek",{enumerable:!0,get:function(){return cr.default}}),Object.defineProperty(t,"startOfWeekYear",{enumerable:!0,get:function(){return lr.default}}),Object.defineProperty(t,"startOfYear",{enumerable:!0,get:function(){return fr.default}}),Object.defineProperty(t,"startOfYesterday",{enumerable:!0,get:function(){return dr.default}}),Object.defineProperty(t,"sub",{enumerable:!0,get:function(){return pr.default}}),Object.defineProperty(t,"subBusinessDays",{enumerable:!0,get:function(){return vr.default}}),Object.defineProperty(t,"subDays",{enumerable:!0,get:function(){return yr.default}}),Object.defineProperty(t,"subHours",{enumerable:!0,get:function(){return hr.default}}),Object.defineProperty(t,"subISOWeekYears",{enumerable:!0,get:function(){return mr.default}}),Object.defineProperty(t,"subMilliseconds",{enumerable:!0,get:function(){return br.default}}),Object.defineProperty(t,"subMinutes",{enumerable:!0,get:function(){return gr.default}}),Object.defineProperty(t,"subMonths",{enumerable:!0,get:function(){return _r.default}}),Object.defineProperty(t,"subQuarters",{enumerable:!0,get:function(){return wr.default}}),Object.defineProperty(t,"subSeconds",{enumerable:!0,get:function(){return Or.default}}),Object.defineProperty(t,"subWeeks",{enumerable:!0,get:function(){return Pr.default}}),Object.defineProperty(t,"subYears",{enumerable:!0,get:function(){return xr.default}}),Object.defineProperty(t,"toDate",{enumerable:!0,get:function(){return jr.default}}),Object.defineProperty(t,"weeksToDays",{enumerable:!0,get:function(){return Tr.default}}),Object.defineProperty(t,"yearsToMonths",{enumerable:!0,get:function(){return kr.default}}),Object.defineProperty(t,"yearsToQuarters",{enumerable:!0,get:function(){return Sr.default}});var a=r(n(6222)),i=r(n(4992)),u=r(n(971)),s=r(n(2823)),c=r(n(7592)),l=r(n(7684)),f=r(n(5117)),d=r(n(1899)),p=r(n(2420)),v=r(n(1917)),y=r(n(7518)),h=r(n(7491)),m=r(n(3630)),b=r(n(5639)),g=r(n(2987)),_=r(n(570)),w=r(n(4765)),O=r(n(313)),P=r(n(9352)),x=r(n(4130)),j=r(n(4639)),T=r(n(8710)),k=r(n(8342)),S=r(n(8547)),M=r(n(4181)),D=r(n(5743)),C=r(n(2857)),E=r(n(1604)),R=r(n(1038)),I=r(n(648)),N=r(n(6063)),A=r(n(8875)),Y=r(n(2645)),L=r(n(250)),B=r(n(4864)),U=r(n(80)),F=r(n(6643)),H=r(n(6674)),$=r(n(2274)),W=r(n(58)),V=r(n(1761)),z=r(n(2362)),q=r(n(9246)),X=r(n(7402)),Q=r(n(2827)),Z=r(n(1860)),G=r(n(2522)),J=r(n(1581)),K=r(n(5515)),ee=r(n(7650)),te=r(n(7673)),ne=r(n(4343)),re=r(n(4744)),oe=r(n(1171)),ae=r(n(6089)),ie=r(n(7845)),ue=r(n(7271)),se=r(n(1589)),ce=r(n(2638)),le=r(n(7307)),fe=r(n(6115)),de=r(n(3665)),pe=r(n(2033)),ve=r(n(3786)),ye=r(n(5015)),he=r(n(1032)),me=r(n(6387)),be=r(n(8740)),ge=r(n(7657)),_e=r(n(8220)),we=r(n(469)),Oe=r(n(9883)),Pe=r(n(6553)),xe=r(n(6737)),je=r(n(6142)),Te=r(n(4858)),ke=r(n(9981)),Se=r(n(8368)),Me=r(n(941)),De=r(n(8123)),Ce=r(n(5910)),Ee=r(n(7282)),Re=r(n(821)),Ie=r(n(5832)),Ne=r(n(4314)),Ae=r(n(5758)),Ye=r(n(2735)),Le=r(n(9437)),Be=r(n(8975)),Ue=r(n(9046)),Fe=r(n(4812)),He=r(n(3856)),$e=r(n(1063)),We=r(n(6794)),Ve=r(n(6714)),ze=r(n(732)),qe=r(n(4548)),Xe=r(n(4719)),Qe=r(n(1280)),Ze=r(n(2484)),Ge=r(n(7758)),Je=r(n(5369)),Ke=r(n(2684)),et=r(n(1880)),tt=r(n(6837)),nt=r(n(8725)),rt=r(n(1660)),ot=r(n(8026)),at=r(n(888)),it=r(n(5877)),ut=r(n(9742)),st=r(n(4665)),ct=r(n(4994)),lt=r(n(160)),ft=r(n(4102)),dt=r(n(4293)),pt=r(n(1911)),vt=r(n(2335)),yt=r(n(3652)),ht=r(n(1340)),mt=r(n(5228)),bt=r(n(5164)),gt=r(n(3111)),_t=r(n(4317)),wt=r(n(3358)),Ot=r(n(8753)),Pt=r(n(6340)),xt=r(n(2377)),jt=r(n(7768)),Tt=r(n(7568)),kt=r(n(9605)),St=r(n(7093)),Mt=r(n(5057)),Dt=r(n(9011)),Ct=r(n(9462)),Et=r(n(4772)),Rt=r(n(3158)),It=r(n(7761)),Nt=r(n(4830)),At=r(n(6572)),Yt=r(n(4750)),Lt=r(n(5265)),Bt=r(n(7707)),Ut=r(n(7214)),Ft=r(n(9018)),Ht=r(n(6376)),$t=r(n(5195)),Wt=r(n(4400)),Vt=r(n(3983)),zt=r(n(7132)),qt=r(n(3763)),Xt=r(n(6453)),Qt=r(n(8292)),Zt=r(n(6870)),Gt=r(n(6495)),Jt=r(n(7821)),Kt=r(n(9804)),en=r(n(5394)),tn=r(n(2848)),nn=r(n(7907)),rn=r(n(1853)),on=r(n(6175)),an=r(n(8015)),un=r(n(935)),sn=r(n(653)),cn=r(n(7275)),ln=r(n(8749)),fn=r(n(6189)),dn=r(n(9653)),pn=r(n(2459)),vn=r(n(6645)),yn=r(n(1263)),hn=r(n(7382)),mn=r(n(2829)),bn=r(n(1504)),gn=r(n(7731)),_n=r(n(8515)),wn=r(n(1105)),On=r(n(4467)),Pn=r(n(7074)),xn=r(n(1265)),jn=r(n(123)),Tn=r(n(8783)),kn=r(n(6864)),Sn=r(n(9495)),Mn=r(n(6688)),Dn=r(n(2064)),Cn=r(n(6009)),En=r(n(5341)),Rn=r(n(1213)),In=r(n(3645)),Nn=r(n(9393)),An=r(n(8785)),Yn=r(n(7607)),Ln=r(n(4118)),Bn=r(n(4241)),Un=r(n(4326)),Fn=r(n(8727)),Hn=r(n(196)),$n=r(n(3040)),Wn=r(n(1152)),Vn=r(n(7304)),zn=r(n(7277)),qn=r(n(8033)),Xn=r(n(9597)),Qn=r(n(3193)),Zn=r(n(950)),Gn=r(n(7764)),Jn=r(n(2127)),Kn=r(n(855)),er=r(n(4615)),tr=r(n(740)),nr=r(n(5030)),rr=r(n(7013)),or=r(n(7265)),ar=r(n(4715)),ir=r(n(4755)),ur=r(n(9182)),sr=r(n(3740)),cr=r(n(384)),lr=r(n(1514)),fr=r(n(2403)),dr=r(n(5166)),pr=r(n(6273)),vr=r(n(6383)),yr=r(n(1286)),hr=r(n(8049)),mr=r(n(3185)),br=r(n(6128)),gr=r(n(6390)),_r=r(n(5501)),wr=r(n(4811)),Or=r(n(4710)),Pr=r(n(9416)),xr=r(n(1149)),jr=r(n(2368)),Tr=r(n(917)),kr=r(n(5309)),Sr=r(n(4969)),Mr=n(1186);Object.keys(Mr).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===Mr[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return Mr[e]}}))}))},2684:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,p.default)(1,arguments);var t=(0,d.default)(e.start),n=(0,d.default)(e.end);if(isNaN(t.getTime()))throw new RangeError("Start Date is invalid");if(isNaN(n.getTime()))throw new RangeError("End Date is invalid");var r={};r.years=Math.abs((0,f.default)(n,t));var v=(0,o.default)(n,t),y=(0,a.default)(t,{years:v*r.years});r.months=Math.abs((0,c.default)(n,y));var h=(0,a.default)(y,{months:v*r.months});r.days=Math.abs((0,i.default)(n,h));var m=(0,a.default)(h,{days:v*r.days});r.hours=Math.abs((0,u.default)(n,m));var b=(0,a.default)(m,{hours:v*r.hours});r.minutes=Math.abs((0,s.default)(n,b));var g=(0,a.default)(b,{minutes:v*r.minutes});return r.seconds=Math.abs((0,l.default)(n,g)),r};var o=r(n(4765)),a=r(n(6222)),i=r(n(1604)),u=r(n(1038)),s=r(n(8875)),c=r(n(2645)),l=r(n(4864)),f=r(n(6643)),d=r(n(2368)),p=r(n(9652))},6837:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){(0,v.default)(2,arguments);var r,y=0,h=(0,p.default)(e),m=(0,p.default)(t);if(null!=n&&n.unit)"second"===(r=null==n?void 0:n.unit)?y=(0,d.default)(h,m):"minute"===r?y=(0,f.default)(h,m):"hour"===r?y=(0,l.default)(h,m):"day"===r?y=(0,a.default)(h,m):"week"===r?y=(0,s.default)(h,m):"month"===r?y=(0,i.default)(h,m):"quarter"===r?y=(0,u.default)(h,m):"year"===r&&(y=(0,c.default)(h,m));else{var b=(0,d.default)(h,m);Math.abs(b)r.getTime()};var o=r(n(2368)),a=r(n(9652))},1660:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,a.default)(2,arguments);var n=(0,o.default)(e),r=(0,o.default)(t);return n.getTime()Date.now()};var o=r(n(2368)),a=r(n(9652))},160:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,u.default)(1,arguments);var t=(0,o.default)(e);return(0,a.default)(t).getTime()===(0,i.default)(t).getTime()};var o=r(n(2368)),a=r(n(1581)),i=r(n(1171)),u=r(n(9652))},4102:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getFullYear();return n%400==0||n%4==0&&n%100!=0};var o=r(n(2368)),a=r(n(9652))},4293:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){return(0,i.default)(2,arguments),(0,a.default)((0,o.default)(e,t,new Date,n))};var o=r(n(1504)),a=r(n(7707)),i=r(n(9652))},1911:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),1===(0,o.default)(e).getDay()};var o=r(n(2368)),a=r(n(9652))},2335:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),(0,o.default)(e).getTime()=r&&n<=i};var o=r(n(2368)),a=r(n(9652))},5195:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(1,arguments),(0,o.default)(e,(0,a.default)(Date.now(),1))};var o=r(n(3652)),a=r(n(1286)),i=r(n(9652))},4400:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getFullYear(),r=9+10*Math.floor(n/10);return t.setFullYear(r+1,0,0),t.setHours(0,0,0,0),t};var o=r(n(2368)),a=r(n(9652))},7132:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,i.default)(1,arguments);var t=(0,o.default)(e),n=new Date(0);n.setFullYear(t+1,0,4),n.setHours(0,0,0,0);var r=(0,a.default)(n);return r.setDate(r.getDate()-1),r};var o=r(n(4314)),a=r(n(740)),i=r(n(9652))},3983:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),(0,o.default)(e,{weekStartsOn:1})};var o=r(n(8292)),a=r(n(9652))},3763:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(0,0,0,0),t};var o=r(n(2368)),a=r(n(9652))},6453:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getMonth(),r=n-n%3+3;return t.setMonth(r,0),t.setHours(0,0,0,0),t};var o=r(n(2368)),a=r(n(9652))},8292:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n,r,s,c,l,f,d,p;(0,i.default)(1,arguments);var v=(0,u.getDefaultOptions)(),y=(0,a.default)(null!==(n=null!==(r=null!==(s=null!==(c=null==t?void 0:t.weekStartsOn)&&void 0!==c?c:null==t||null===(l=t.locale)||void 0===l||null===(f=l.options)||void 0===f?void 0:f.weekStartsOn)&&void 0!==s?s:v.weekStartsOn)&&void 0!==r?r:null===(d=v.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.weekStartsOn)&&void 0!==n?n:0);if(!(y>=0&&y<=6))throw new RangeError("weekStartsOn must be between 0 and 6");var h=(0,o.default)(e),m=h.getDay(),b=6+(m0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth,r=e.formats[n]||e.formats[e.defaultWidth];return r}}},8844:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t,n){var r;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var o=e.defaultFormattingWidth||e.defaultWidth,a=null!=n&&n.width?String(n.width):o;r=e.formattingValues[a]||e.formattingValues[o]}else{var i=e.defaultWidth,u=null!=n&&n.width?String(n.width):e.defaultWidth;r=e.values[u]||e.values[i]}return r[e.argumentCallback?e.argumentCallback(t):t]}}},8793:function(e,t){"use strict";function n(e,t){for(var n in e)if(e.hasOwnProperty(n)&&t(e[n]))return n}function r(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},a=o.width,i=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],u=t.match(i);if(!u)return null;var s,c=u[0],l=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],f=Array.isArray(l)?r(l,(function(e){return e.test(c)})):n(l,(function(e){return e.test(c)}));s=e.valueCallback?e.valueCallback(f):f,s=o.valueCallback?o.valueCallback(s):s;var d=t.slice(c.length);return{value:s,rest:d}}}},8730:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.match(e.matchPattern);if(!r)return null;var o=r[0],a=t.match(e.parsePattern);if(!a)return null;var i=e.valueCallback?e.valueCallback(a[0]):a[0];i=n.valueCallback?n.valueCallback(i):i;var u=t.slice(o.length);return{value:i,rest:u}}}},2019:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={lessThanXSeconds:{one:"less than a second",other:"less than seconds"},xSeconds:{one:"1 second",other:" seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than minutes"},xMinutes:{one:"1 minute",other:" minutes"},aboutXHours:{one:"about 1 hour",other:"about hours"},xHours:{one:"1 hour",other:" hours"},xDays:{one:"1 day",other:" days"},aboutXWeeks:{one:"about 1 week",other:"about weeks"},xWeeks:{one:"1 week",other:" weeks"},aboutXMonths:{one:"about 1 month",other:"about months"},xMonths:{one:"1 month",other:" months"},aboutXYears:{one:"about 1 year",other:"about years"},xYears:{one:"1 year",other:" years"},overXYears:{one:"over 1 year",other:"over years"},almostXYears:{one:"almost 1 year",other:"almost years"}};t.default=function(e,t,r){var o,a=n[e];return o="string"==typeof a?a:1===t?a.one:a.other.replace("",t.toString()),null!=r&&r.addSuffix?r.comparison&&r.comparison>0?"in "+o:o+" ago":o}},8296:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(7198)),a={date:(0,o.default)({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:(0,o.default)({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:(0,o.default)({formats:{full:"1728144042937 'at' ",long:"1728144042937 'at' ",medium:"1728144042937, ",short:"1728144042937, "},defaultWidth:"full"})};t.default=a},8651:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};t.default=function(e,t,r,o){return n[e]}},3871:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(8844)),a={ordinalNumber:function(e,t){var n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:(0,o.default)({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:(0,o.default)({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:(0,o.default)({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:(0,o.default)({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:(0,o.default)({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};t.default=a},7480:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(8793)),a={ordinalNumber:(0,r(n(8730)).default)({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}}),era:(0,o.default)({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:(0,o.default)({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:(0,o.default)({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:(0,o.default)({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:(0,o.default)({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})};t.default=a},5038:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(2019)),a=r(n(8296)),i=r(n(8651)),u=r(n(3871)),s=r(n(7480)),c={code:"en-US",formatDistance:o.default,formatLong:a.default,formatRelative:i.default,localize:u.default,match:s.default,options:{weekStartsOn:0,firstWeekContainsDate:1}};t.default=c},7821:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n;if((0,a.default)(1,arguments),e&&"function"==typeof e.forEach)t=e;else{if("object"!==i(e)||null===e)return new Date(NaN);t=Array.prototype.slice.call(e)}return t.forEach((function(e){var t=(0,o.default)(e);(void 0===n||nt||isNaN(t.getDate()))&&(n=t)})),n||new Date(NaN)};var o=r(n(2368)),a=r(n(9652));function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}},6175:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(1,arguments);var t=e/a.minutesInHour;return Math.floor(t)};var o=r(n(9652)),a=n(1186)},8015:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(1,arguments),Math.floor(e*a.millisecondsInMinute)};var o=r(n(9652)),a=n(1186)},935:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(1,arguments),Math.floor(e*a.secondsInMinute)};var o=r(n(9652)),a=n(1186)},653:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(1,arguments);var t=e/a.monthsInQuarter;return Math.floor(t)};var o=r(n(9652)),a=n(1186)},7275:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(1,arguments);var t=e/a.monthsInYear;return Math.floor(t)};var o=r(n(9652)),a=n(1186)},8749:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=t-(0,a.default)(e);return n<=0&&(n+=7),(0,o.default)(e,n)};var o=r(n(971)),a=r(n(4858)),i=r(n(9652))},6189:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),(0,o.default)(e,5)};var o=r(n(8749)),a=r(n(9652))},9653:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),(0,o.default)(e,1)};var o=r(n(8749)),a=r(n(9652))},2459:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),(0,o.default)(e,6)};var o=r(n(8749)),a=r(n(9652))},6645:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),(0,o.default)(e,0)};var o=r(n(8749)),a=r(n(9652))},1263:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),(0,o.default)(e,4)};var o=r(n(8749)),a=r(n(9652))},7382:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),(0,o.default)(e,2)};var o=r(n(8749)),a=r(n(9652))},2829:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),(0,o.default)(e,3)};var o=r(n(8749)),a=r(n(9652))},7731:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n;(0,a.default)(1,arguments);var r=(0,i.default)(null!==(n=null==t?void 0:t.additionalDigits)&&void 0!==n?n:2);if(2!==r&&1!==r&&0!==r)throw new RangeError("additionalDigits must be 0, 1 or 2");if("string"!=typeof e&&"[object String]"!==Object.prototype.toString.call(e))return new Date(NaN);var o,u=f(e);if(u.date){var s=d(u.date,r);o=p(s.restDateString,s.year)}if(!o||isNaN(o.getTime()))return new Date(NaN);var c,l=o.getTime(),v=0;if(u.time&&(v=y(u.time),isNaN(v)))return new Date(NaN);if(!u.timezone){var h=new Date(l+v),b=new Date(0);return b.setFullYear(h.getUTCFullYear(),h.getUTCMonth(),h.getUTCDate()),b.setHours(h.getUTCHours(),h.getUTCMinutes(),h.getUTCSeconds(),h.getUTCMilliseconds()),b}return c=m(u.timezone),isNaN(c)?new Date(NaN):new Date(l+v+c)};var o=n(1186),a=r(n(9652)),i=r(n(2449)),u={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},s=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,c=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,l=/^([+-])(\d{2})(?::?(\d{2}))?$/;function f(e){var t,n={},r=e.split(u.dateTimeDelimiter);if(r.length>2)return n;if(/:/.test(r[0])?t=r[0]:(n.date=r[0],t=r[1],u.timeZoneDelimiter.test(n.date)&&(n.date=e.split(u.timeZoneDelimiter)[0],t=e.substr(n.date.length,e.length))),t){var o=u.timezone.exec(t);o?(n.time=t.replace(o[1],""),n.timezone=o[1]):n.time=t}return n}function d(e,t){var n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),r=e.match(n);if(!r)return{year:NaN,restDateString:""};var o=r[1]?parseInt(r[1]):null,a=r[2]?parseInt(r[2]):null;return{year:null===a?o:100*a,restDateString:e.slice((r[1]||r[2]).length)}}function p(e,t){if(null===t)return new Date(NaN);var n=e.match(s);if(!n)return new Date(NaN);var r=!!n[4],o=v(n[1]),a=v(n[2])-1,i=v(n[3]),u=v(n[4]),c=v(n[5])-1;if(r)return function(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}(0,u,c)?function(e,t,n){var r=new Date(0);r.setUTCFullYear(e,0,4);var o=7*(t-1)+n+1-(r.getUTCDay()||7);return r.setUTCDate(r.getUTCDate()+o),r}(t,u,c):new Date(NaN);var l=new Date(0);return function(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(b[t]||(g(e)?29:28))}(t,a,i)&&function(e,t){return t>=1&&t<=(g(e)?366:365)}(t,o)?(l.setUTCFullYear(t,a,Math.max(o,i)),l):new Date(NaN)}function v(e){return e?parseInt(e):1}function y(e){var t=e.match(c);if(!t)return NaN;var n=h(t[1]),r=h(t[2]),a=h(t[3]);return function(e,t,n){return 24===e?0===t&&0===n:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}(n,r,a)?n*o.millisecondsInHour+r*o.millisecondsInMinute+1e3*a:NaN}function h(e){return e&&parseFloat(e.replace(",","."))||0}function m(e){if("Z"===e)return 0;var t=e.match(l);if(!t)return 0;var n="+"===t[1]?-1:1,r=parseInt(t[2]),a=t[3]&&parseInt(t[3])||0;return function(e,t){return t>=0&&t<=59}(0,a)?n*(r*o.millisecondsInHour+a*o.millisecondsInMinute):NaN}var b=[31,null,31,30,31,30,31,31,30,31,30,31];function g(e){return e%400==0||e%4==0&&e%100!=0}},8515:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if((0,a.default)(1,arguments),"string"==typeof e){var t=e.match(/(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(?:\.(\d{0,7}))?(?:Z|(.)(\d{2}):?(\d{2})?)?/);return t?new Date(Date.UTC(+t[1],+t[2]-1,+t[3],+t[4]-(+t[9]||0)*("-"==t[8]?-1:1),+t[5]-(+t[10]||0)*("-"==t[8]?-1:1),+t[6],+((t[7]||"0")+"00").substring(0,3))):new Date(NaN)}return(0,o.default)(e)};var o=r(n(2368)),a=r(n(9652))},8086:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Parser=void 0;var r=n(2247);function o(e,t){for(var n=0;n=1&&t<=y[a]:t>=1&&t<=v[a]}},{key:"set",value:function(e,t,n){return e.setUTCDate(n),e.setUTCHours(0,0,0,0),e}}])&&s(t.prototype,n),m}(o.Parser);t.DateParser=h},1069:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DayOfYearParser=void 0;var r=n(8086),o=n(712),a=n(2526);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n=1&&t<=366:t>=1&&t<=365}},{key:"set",value:function(e,t,n){return e.setUTCMonth(0,n),e.setUTCHours(0,0,0,0),e}}])&&s(t.prototype,n),y}(r.Parser);t.DayOfYearParser=v},2826:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.DayParser=void 0;var o=n(8086),a=r(n(7169));function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n=0&&t<=6}},{key:"set",value:function(e,t,n,r){return(e=(0,a.default)(e,n,r)).setUTCHours(0,0,0,0),e}}])&&s(t.prototype,n),v}(o.Parser);t.DayParser=v},1446:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DayPeriodParser=void 0;var r=n(8086),o=n(2526);function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n=0&&t<=11}},{key:"set",value:function(e,t,n){return e.getUTCHours()>=12&&n<12?e.setUTCHours(n+12,0,0,0):e.setUTCHours(n,0,0,0),e}}])&&s(t.prototype,n),y}(r.Parser);t.Hour0To11Parser=v},9457:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hour0to23Parser=void 0;var r=n(8086),o=n(712),a=n(2526);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n=0&&t<=23}},{key:"set",value:function(e,t,n){return e.setUTCHours(n,0,0,0),e}}])&&s(t.prototype,n),y}(r.Parser);t.Hour0to23Parser=v},8275:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hour1To24Parser=void 0;var r=n(8086),o=n(712),a=n(2526);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n=1&&t<=24}},{key:"set",value:function(e,t,n){var r=n<=24?n%24:n;return e.setUTCHours(r,0,0,0),e}}])&&s(t.prototype,n),y}(r.Parser);t.Hour1To24Parser=v},4146:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hour1to12Parser=void 0;var r=n(8086),o=n(712),a=n(2526);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n=1&&t<=12}},{key:"set",value:function(e,t,n){var r=e.getUTCHours()>=12;return r&&n<12?e.setUTCHours(n+12,0,0,0):r||12!==n?e.setUTCHours(n,0,0,0):e.setUTCHours(0,0,0,0),e}}])&&s(t.prototype,n),y}(r.Parser);t.Hour1to12Parser=v},9839:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.ISODayParser=void 0;var o=n(8086),a=n(2526),i=r(n(7454));function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var n=0;n=1&&t<=7}},{key:"set",value:function(e,t,n){return(e=(0,i.default)(e,n)).setUTCHours(0,0,0,0),e}}])&&c(t.prototype,n),y}(o.Parser);t.ISODayParser=y},3178:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ISOTimezoneParser=void 0;var r=n(8086),o=n(712),a=n(2526);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n=1&&t<=53}},{key:"set",value:function(e,t,n){return(0,s.default)((0,u.default)(e,n))}}])&&f(t.prototype,n),m}(o.Parser);t.ISOWeekParser=m},4714:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.ISOWeekYearParser=void 0;var o=n(8086),a=n(2526),i=r(n(7295));function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var n=0;n=0&&t<=6}},{key:"set",value:function(e,t,n,r){return(e=(0,i.default)(e,n,r)).setUTCHours(0,0,0,0),e}}])&&c(t.prototype,n),y}(o.Parser);t.LocalDayParser=y},4284:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.LocalWeekParser=void 0;var o=n(8086),a=n(712),i=n(2526),u=r(n(9137)),s=r(n(9087));function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var n=0;n=1&&t<=53}},{key:"set",value:function(e,t,n,r){return(0,s.default)((0,u.default)(e,n,r),r)}}])&&f(t.prototype,n),m}(o.Parser);t.LocalWeekParser=m},1235:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.LocalWeekYearParser=void 0;var o=n(8086),a=n(2526),i=r(n(5970)),u=r(n(9087));function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){for(var n=0;n0}},{key:"set",value:function(e,t,n,r){var o=(0,i.default)(e,r);if(n.isTwoDigitYear){var s=(0,a.normalizeTwoDigitYear)(n.year,o);return e.setUTCFullYear(s,0,r.firstWeekContainsDate),e.setUTCHours(0,0,0,0),(0,u.default)(e,r)}var c="era"in t&&1!==t.era?1-n.year:n.year;return e.setUTCFullYear(c,0,r.firstWeekContainsDate),e.setUTCHours(0,0,0,0),(0,u.default)(e,r)}}])&&l(t.prototype,n),h}(o.Parser);t.LocalWeekYearParser=h},4303:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MinuteParser=void 0;var r=n(8086),o=n(712),a=n(2526);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n=0&&t<=59}},{key:"set",value:function(e,t,n){return e.setUTCMinutes(n,0,0),e}}])&&s(t.prototype,n),y}(r.Parser);t.MinuteParser=v},5282:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MonthParser=void 0;var r=n(2526),o=n(8086),a=n(712);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n=0&&t<=11}},{key:"set",value:function(e,t,n){return e.setUTCMonth(n,1),e.setUTCHours(0,0,0,0),e}}])&&s(t.prototype,n),y}(o.Parser);t.MonthParser=v},3357:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuarterParser=void 0;var r=n(8086),o=n(2526);function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n=1&&t<=4}},{key:"set",value:function(e,t,n){return e.setUTCMonth(3*(n-1),1),e.setUTCHours(0,0,0,0),e}}])&&u(t.prototype,n),v}(r.Parser);t.QuarterParser=p},9806:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SecondParser=void 0;var r=n(8086),o=n(712),a=n(2526);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n=0&&t<=59}},{key:"set",value:function(e,t,n){return e.setUTCSeconds(n,0),e}}])&&s(t.prototype,n),y}(r.Parser);t.SecondParser=v},8333:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.StandAloneLocalDayParser=void 0;var o=n(8086),a=n(2526),i=r(n(7169));function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var n=0;n=0&&t<=6}},{key:"set",value:function(e,t,n,r){return(e=(0,i.default)(e,n,r)).setUTCHours(0,0,0,0),e}}])&&c(t.prototype,n),y}(o.Parser);t.StandAloneLocalDayParser=y},6231:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandAloneMonthParser=void 0;var r=n(8086),o=n(712),a=n(2526);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n=0&&t<=11}},{key:"set",value:function(e,t,n){return e.setUTCMonth(n,1),e.setUTCHours(0,0,0,0),e}}])&&s(t.prototype,n),y}(r.Parser);t.StandAloneMonthParser=v},8298:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandAloneQuarterParser=void 0;var r=n(8086),o=n(2526);function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n=1&&t<=4}},{key:"set",value:function(e,t,n){return e.setUTCMonth(3*(n-1),1),e.setUTCHours(0,0,0,0),e}}])&&u(t.prototype,n),v}(r.Parser);t.StandAloneQuarterParser=p},7804:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TimestampMillisecondsParser=void 0;var r=n(8086),o=n(2526);function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n0}},{key:"set",value:function(e,t,n){var r=e.getUTCFullYear();if(n.isTwoDigitYear){var a=(0,o.normalizeTwoDigitYear)(n.year,r);return e.setUTCFullYear(a,0,1),e.setUTCHours(0,0,0,0),e}var i="era"in t&&1!==t.era?1-n.year:n.year;return e.setUTCFullYear(i,0,1),e.setUTCHours(0,0,0,0),e}}])&&u(t.prototype,n),v}(r.Parser);t.YearParser=p},9076:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parsers=void 0;var r=n(6529),o=n(6274),a=n(1235),i=n(4714),u=n(879),s=n(3357),c=n(8298),l=n(5282),f=n(6231),d=n(4284),p=n(9564),v=n(6617),y=n(1069),h=n(2826),m=n(2410),b=n(8333),g=n(9839),_=n(4142),w=n(1628),O=n(1446),P=n(4146),x=n(9457),j=n(8953),T=n(8275),k=n(4303),S=n(9806),M=n(9071),D=n(8845),C=n(3178),E=n(8098),R=n(7804),I={G:new r.EraParser,y:new o.YearParser,Y:new a.LocalWeekYearParser,R:new i.ISOWeekYearParser,u:new u.ExtendedYearParser,Q:new s.QuarterParser,q:new c.StandAloneQuarterParser,M:new l.MonthParser,L:new f.StandAloneMonthParser,w:new d.LocalWeekParser,I:new p.ISOWeekParser,d:new v.DateParser,D:new y.DayOfYearParser,E:new h.DayParser,e:new m.LocalDayParser,c:new b.StandAloneLocalDayParser,i:new g.ISODayParser,a:new _.AMPMParser,b:new w.AMPMMidnightParser,B:new O.DayPeriodParser,h:new P.Hour1to12Parser,H:new x.Hour0to23Parser,K:new j.Hour0To11Parser,k:new T.Hour1To24Parser,m:new k.MinuteParser,s:new S.SecondParser,S:new M.FractionOfSecondParser,X:new D.ISOTimezoneWithZParser,x:new C.ISOTimezoneParser,t:new E.TimestampSecondsParser,T:new R.TimestampMillisecondsParser};t.parsers=I},2526:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dayPeriodEnumToHours=function(e){switch(e){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}},t.isLeapYearIndex=function(e){return e%400==0||e%4==0&&e%100!=0},t.mapValue=function(e,t){return e?{value:t(e.value),rest:e.rest}:e},t.normalizeTwoDigitYear=function(e,t){var n,r=t>0,o=r?t:1-t;if(o<=50)n=e||100;else{var a=o+50;n=e+100*Math.floor(a/100)-(e>=a%100?100:0)}return r?n:1-n},t.parseAnyDigitsSigned=function(e){return a(o.numericPatterns.anyDigitsSigned,e)},t.parseNDigits=function(e,t){switch(e){case 1:return a(o.numericPatterns.singleDigit,t);case 2:return a(o.numericPatterns.twoDigits,t);case 3:return a(o.numericPatterns.threeDigits,t);case 4:return a(o.numericPatterns.fourDigits,t);default:return a(new RegExp("^\\d{1,"+e+"}"),t)}},t.parseNDigitsSigned=function(e,t){switch(e){case 1:return a(o.numericPatterns.singleDigitSigned,t);case 2:return a(o.numericPatterns.twoDigitsSigned,t);case 3:return a(o.numericPatterns.threeDigitsSigned,t);case 4:return a(o.numericPatterns.fourDigitsSigned,t);default:return a(new RegExp("^-?\\d{1,"+e+"}"),t)}},t.parseNumericPattern=a,t.parseTimezonePattern=function(e,t){var n=t.match(e);if(!n)return null;if("Z"===n[0])return{value:0,rest:t.slice(1)};var o="+"===n[1]?1:-1,a=n[2]?parseInt(n[2],10):0,i=n[3]?parseInt(n[3],10):0,u=n[5]?parseInt(n[5],10):0;return{value:o*(a*r.millisecondsInHour+i*r.millisecondsInMinute+u*r.millisecondsInSecond),rest:t.slice(n[0].length)}};var r=n(1186),o=n(712);function a(e,t){var n=t.match(e);return n?{value:parseInt(n[0],10),rest:t.slice(n[0].length)}:null}},1504:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n,r){var b,w,O,T,k,S,M,D,C,E,R,I,N,A,Y,L,B,U;(0,d.default)(3,arguments);var F=String(e),H=String(t),$=(0,y.getDefaultOptions)(),W=null!==(b=null!==(w=null==r?void 0:r.locale)&&void 0!==w?w:$.locale)&&void 0!==b?b:o.default;if(!W.match)throw new RangeError("locale must contain match property");var V=(0,f.default)(null!==(O=null!==(T=null!==(k=null!==(S=null==r?void 0:r.firstWeekContainsDate)&&void 0!==S?S:null==r||null===(M=r.locale)||void 0===M||null===(D=M.options)||void 0===D?void 0:D.firstWeekContainsDate)&&void 0!==k?k:$.firstWeekContainsDate)&&void 0!==T?T:null===(C=$.locale)||void 0===C||null===(E=C.options)||void 0===E?void 0:E.firstWeekContainsDate)&&void 0!==O?O:1);if(!(V>=1&&V<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var z=(0,f.default)(null!==(R=null!==(I=null!==(N=null!==(A=null==r?void 0:r.weekStartsOn)&&void 0!==A?A:null==r||null===(Y=r.locale)||void 0===Y||null===(L=Y.options)||void 0===L?void 0:L.weekStartsOn)&&void 0!==N?N:$.weekStartsOn)&&void 0!==I?I:null===(B=$.locale)||void 0===B||null===(U=B.options)||void 0===U?void 0:U.weekStartsOn)&&void 0!==R?R:0);if(!(z>=0&&z<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(""===H)return""===F?(0,i.default)(n):new Date(NaN);var q,X={firstWeekContainsDate:V,weekStartsOn:z,locale:W},Q=[new p.DateToSystemTimezoneSetter],Z=H.match(_).map((function(e){var t=e[0];return t in s.default?(0,s.default[t])(e,W.formatLong):e})).join("").match(g),G=[],J=m(Z);try{var K=function(){var t=q.value;null!=r&&r.useAdditionalWeekYearTokens||!(0,l.isProtectedWeekYearToken)(t)||(0,l.throwProtectedError)(t,H,e),null!=r&&r.useAdditionalDayOfYearTokens||!(0,l.isProtectedDayOfYearToken)(t)||(0,l.throwProtectedError)(t,H,e);var n=t[0],o=v.parsers[n];if(o){var a=o.incompatibleTokens;if(Array.isArray(a)){var i=G.find((function(e){return a.includes(e.token)||e.token===n}));if(i)throw new RangeError("The format string mustn't contain `".concat(i.fullToken,"` and `").concat(t,"` at the same time"))}else if("*"===o.incompatibleTokens&&G.length>0)throw new RangeError("The format string mustn't contain `".concat(t,"` and any other token at the same time"));G.push({token:n,fullToken:t});var u=o.run(F,t,W.match,X);if(!u)return{v:new Date(NaN)};Q.push(u.setter),F=u.rest}else{if(n.match(x))throw new RangeError("Format string contains an unescaped latin alphabet character `"+n+"`");if("''"===t?t="'":"'"===n&&(t=j(t)),0!==F.indexOf(t))return{v:new Date(NaN)};F=F.slice(t.length)}};for(J.s();!(q=J.n()).done;){var ee=K();if("object"===h(ee))return ee.v}}catch(e){J.e(e)}finally{J.f()}if(F.length>0&&P.test(F))return new Date(NaN);var te=Q.map((function(e){return e.priority})).sort((function(e,t){return t-e})).filter((function(e,t,n){return n.indexOf(e)===t})).map((function(e){return Q.filter((function(t){return t.priority===e})).sort((function(e,t){return t.subPriority-e.subPriority}))})).map((function(e){return e[0]})),ne=(0,i.default)(n);if(isNaN(ne.getTime()))return new Date(NaN);var re,oe=(0,a.default)(ne,(0,c.default)(ne)),ae={},ie=m(te);try{for(ie.s();!(re=ie.n()).done;){var ue=re.value;if(!ue.validate(oe,X))return new Date(NaN);var se=ue.set(oe,ae,X);Array.isArray(se)?(oe=se[0],(0,u.default)(ae,se[1])):oe=se}}catch(e){ie.e(e)}finally{ie.f()}return oe};var o=r(n(3096)),a=r(n(6128)),i=r(n(2368)),u=r(n(619)),s=r(n(1696)),c=r(n(7955)),l=n(8343),f=r(n(2449)),d=r(n(9652)),p=n(2247),v=n(9076),y=n(7014);function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function m(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){u=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(u)throw a}}}}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n30)throw new RangeError("`options.nearestTo` must be between 1 and 30");var u=(0,o.default)(e),s=u.getSeconds(),c=u.getMinutes()+s/60,l=(0,a.getRoundingMethod)(null==t?void 0:t.roundingMethod),f=l(c/r)*r,d=c%r,p=Math.round(d/r)*r;return new Date(u.getFullYear(),u.getMonth(),u.getDate(),u.getHours(),f+p)};var o=r(n(2368)),a=n(3671),i=r(n(2449))},5341:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(1,arguments);var t=e/a.secondsInHour;return Math.floor(t)};var o=r(n(9652)),a=n(1186)},1213:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(1,arguments),e*a.millisecondsInSecond};var o=r(n(9652)),a=n(1186)},3645:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(1,arguments);var t=e/a.secondsInMinute;return Math.floor(t)};var o=r(n(9652)),a=n(1186)},8785:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t);return n.setDate(r),n};var o=r(n(2449)),a=r(n(2368)),i=r(n(9652))},4118:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t);return n.setMonth(0),n.setDate(r),n};var o=r(n(2449)),a=r(n(2368)),i=r(n(9652))},7607:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var r,c,l,f,d,p,v,y;(0,u.default)(2,arguments);var h=(0,s.getDefaultOptions)(),m=(0,i.default)(null!==(r=null!==(c=null!==(l=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(d=n.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.weekStartsOn)&&void 0!==l?l:h.weekStartsOn)&&void 0!==c?c:null===(v=h.locale)||void 0===v||null===(y=v.options)||void 0===y?void 0:y.weekStartsOn)&&void 0!==r?r:0);if(!(m>=0&&m<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var b=(0,a.default)(e),g=(0,i.default)(t),_=b.getDay(),w=g%7,O=(w+7)%7,P=7-m,x=g<0||g>6?g-(_+P)%7:(O+P)%7-(_+P)%7;return(0,o.default)(b,x)};var o=r(n(971)),a=r(n(2368)),i=r(n(2449)),u=r(n(9652)),s=n(7014)},4241:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t={},n=(0,o.getDefaultOptions)();for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r]);for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(void 0===e[i]?delete t[i]:t[i]=e[i]);(0,o.setDefaultOptions)(t)};var o=n(7014),a=r(n(9652))},4326:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t);return n.setHours(r),n};var o=r(n(2449)),a=r(n(2368)),i=r(n(9652))},8727:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,s.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t),c=(0,u.default)(n),l=r-c;return(0,i.default)(n,l)};var o=r(n(2449)),a=r(n(2368)),i=r(n(971)),u=r(n(821)),s=r(n(9652))},3040:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,s.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t),c=(0,u.default)(n,(0,i.default)(n)),l=new Date(0);return l.setFullYear(r,0,4),l.setHours(0,0,0,0),(n=(0,i.default)(l)).setDate(n.getDate()+c),n};var o=r(n(2449)),a=r(n(2368)),i=r(n(5030)),u=r(n(4639)),s=r(n(9652))},196:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,u.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t),s=(0,i.default)(n)-r;return n.setDate(n.getDate()-7*s),n};var o=r(n(2449)),a=r(n(2368)),i=r(n(5832)),u=r(n(9652))},1152:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t);return n.setMilliseconds(r),n};var o=r(n(2449)),a=r(n(2368)),i=r(n(9652))},7304:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t);return n.setMinutes(r),n};var o=r(n(2449)),a=r(n(2368)),i=r(n(9652))},7277:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,u.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t),s=n.getFullYear(),c=n.getDate(),l=new Date(0);l.setFullYear(s,r,15),l.setHours(0,0,0,0);var f=(0,i.default)(l);return n.setMonth(r,Math.min(c,f)),n};var o=r(n(2449)),a=r(n(2368)),i=r(n(8368)),u=r(n(9652))},8033:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,u.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t),s=Math.floor(n.getMonth()/3)+1,c=r-s;return(0,i.default)(n,n.getMonth()+3*c)};var o=r(n(2449)),a=r(n(2368)),i=r(n(7277)),u=r(n(9652))},9597:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t);return n.setSeconds(r),n};var o=r(n(2449)),a=r(n(2368)),i=r(n(9652))},950:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var r,l,f,d,p,v,y,h;(0,s.default)(2,arguments);var m=(0,c.getDefaultOptions)(),b=(0,u.default)(null!==(r=null!==(l=null!==(f=null!==(d=null==n?void 0:n.firstWeekContainsDate)&&void 0!==d?d:null==n||null===(p=n.locale)||void 0===p||null===(v=p.options)||void 0===v?void 0:v.firstWeekContainsDate)&&void 0!==f?f:m.firstWeekContainsDate)&&void 0!==l?l:null===(y=m.locale)||void 0===y||null===(h=y.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==r?r:1),g=(0,i.default)(e),_=(0,u.default)(t),w=(0,o.default)(g,(0,a.default)(g,n)),O=new Date(0);return O.setFullYear(_,0,b),O.setHours(0,0,0,0),(g=(0,a.default)(O,n)).setDate(g.getDate()+w),g};var o=r(n(4639)),a=r(n(1514)),i=r(n(2368)),u=r(n(2449)),s=r(n(9652)),c=n(7014)},3193:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){(0,i.default)(2,arguments);var r=(0,a.default)(e),s=(0,u.default)(t),c=(0,o.default)(r,n)-s;return r.setDate(r.getDate()-7*c),r};var o=r(n(6714)),a=r(n(2368)),i=r(n(9652)),u=r(n(2449))},7764:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(2,arguments);var n=(0,a.default)(e),r=(0,o.default)(t);return isNaN(n.getTime())?new Date(NaN):(n.setFullYear(r),n)};var o=r(n(2449)),a=r(n(2368)),i=r(n(9652))},9393:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,u.default)(2,arguments),"object"!==s(t)||null===t)throw new RangeError("values parameter must be an object");var n=(0,o.default)(e);return isNaN(n.getTime())?new Date(NaN):(null!=t.year&&n.setFullYear(t.year),null!=t.month&&(n=(0,a.default)(n,t.month)),null!=t.date&&n.setDate((0,i.default)(t.date)),null!=t.hours&&n.setHours((0,i.default)(t.hours)),null!=t.minutes&&n.setMinutes((0,i.default)(t.minutes)),null!=t.seconds&&n.setSeconds((0,i.default)(t.seconds)),null!=t.milliseconds&&n.setMilliseconds((0,i.default)(t.milliseconds)),n)};var o=r(n(2368)),a=r(n(7277)),i=r(n(2449)),u=r(n(9652));function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}},2127:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e);return t.setHours(0,0,0,0),t};var o=r(n(2368)),a=r(n(9652))},855:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getFullYear(),r=10*Math.floor(n/10);return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t};var o=r(n(2368)),a=r(n(9652))},4615:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e);return t.setMinutes(0,0,0),t};var o=r(n(2368)),a=r(n(9652))},5030:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,i.default)(1,arguments);var t=(0,o.default)(e),n=new Date(0);n.setFullYear(t,0,4),n.setHours(0,0,0,0);var r=(0,a.default)(n);return r};var o=r(n(4314)),a=r(n(740)),i=r(n(9652))},740:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(1,arguments),(0,o.default)(e,{weekStartsOn:1})};var o=r(n(384)),a=r(n(9652))},7013:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e);return t.setSeconds(0,0),t};var o=r(n(2368)),a=r(n(9652))},7265:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e);return t.setDate(1),t.setHours(0,0,0,0),t};var o=r(n(2368)),a=r(n(9652))},4715:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e),n=t.getMonth(),r=n-n%3;return t.setMonth(r,1),t.setHours(0,0,0,0),t};var o=r(n(2368)),a=r(n(9652))},4755:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,o.default)(e);return t.setMilliseconds(0),t};var o=r(n(2368)),a=r(n(9652))},9182:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return(0,o.default)(Date.now())};var o=r(n(2127))},3740:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=new Date,t=e.getFullYear(),n=e.getMonth(),r=e.getDate(),o=new Date(0);return o.setFullYear(t,n,r+1),o.setHours(0,0,0,0),o}},1514:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n,r,c,l,f,d,p,v;(0,u.default)(1,arguments);var y=(0,s.getDefaultOptions)(),h=(0,i.default)(null!==(n=null!==(r=null!==(c=null!==(l=null==t?void 0:t.firstWeekContainsDate)&&void 0!==l?l:null==t||null===(f=t.locale)||void 0===f||null===(d=f.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==c?c:y.firstWeekContainsDate)&&void 0!==r?r:null===(p=y.locale)||void 0===p||null===(v=p.options)||void 0===v?void 0:v.firstWeekContainsDate)&&void 0!==n?n:1),m=(0,o.default)(e,t),b=new Date(0);b.setFullYear(m,0,h),b.setHours(0,0,0,0);var g=(0,a.default)(b,t);return g};var o=r(n(4548)),a=r(n(384)),i=r(n(2449)),u=r(n(9652)),s=n(7014)},384:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n,r,s,c,l,f,d,p;(0,i.default)(1,arguments);var v=(0,u.getDefaultOptions)(),y=(0,a.default)(null!==(n=null!==(r=null!==(s=null!==(c=null==t?void 0:t.weekStartsOn)&&void 0!==c?c:null==t||null===(l=t.locale)||void 0===l||null===(f=l.options)||void 0===f?void 0:f.weekStartsOn)&&void 0!==s?s:v.weekStartsOn)&&void 0!==r?r:null===(d=v.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.weekStartsOn)&&void 0!==n?n:0);if(!(y>=0&&y<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var h=(0,o.default)(e),m=h.getDay(),b=(m1&&(r+="s"),[e+" "+r+" ago","in "+e+" "+r]};var n=["second","minute","hour","day","week","month","year"]},6882:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if(0===t)return["刚刚","片刻后"];var r=n[~~(t/2)];return[e+" "+r+"前",e+" "+r+"后"]};var n=["秒","分钟","小时","天","周","个月","年"]},8110:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.cancel=function(e){e?u((0,r.getTimerId)(e)):Object.keys(i).forEach(u)},t.render=function(e,t,n){var o=e.length?e:[e];return o.forEach((function(e){s(e,(0,r.getDateAttribute)(e),(0,a.getLocale)(t),n||{})})),o};var r=n(3759),o=n(4280),a=n(5722),i={},u=function(e){clearTimeout(e),delete i[e]};function s(e,t,n,a){u((0,r.getTimerId)(e));var c=a.relativeDate,l=a.minInterval,f=(0,o.diffSec)(t,c);e.innerText=(0,o.formatDiff)(f,n);var d=setTimeout((function(){s(e,t,n,a)}),Math.min(1e3*Math.max((0,o.nextInterval)(f),l||1),2147483647));i[d]=0,(0,r.setTimerId)(e,d)}},5722:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.register=t.getLocale=void 0;var n={};t.register=function(e,t){n[e]=t},t.getLocale=function(e){return n[e]||n.en_US}},4280:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.diffSec=function(e,t){return(+(t?r(t):new Date)-+r(e))/1e3},t.formatDiff=function(e,t){for(var r=e<0?1:0,o=e=Math.abs(e),a=0;e>=n[a]&&a(0==(a*=2)?9:1)&&(a+=1),t(e,a,o)[r].replace("%s",e.toString())},t.nextInterval=function(e){for(var t=1,r=0,o=Math.abs(e);e>=n[r]&&r
<\/p>*|


<\/p>*$/g,""),null!==(e=this.format)&&void 0!==e&&e.trim().length)this.date=(0,i.format)(Number(this.time.padEnd(13,0)),this.format);else{var t=new Date(1e3*parseInt(this.time)),n=(new Date).getTime()-new Date(t).getTime(),r=(new Date(this.bbData.date).getTime(),new Date(1e3*parseInt(this.time)).toJSON());r=r.substr(0,10).replace("T"," "),this.date=n>26784e5?r:(0,a.format)(new Date(1e3*parseInt(this.time)),"zh_CN")}window.ViewImage&&ViewImage.init(".xk-card-content img")},methods:{handleLike:function(){this.$emit("changeLike",this.id)}}},c=function(){(0,o.useCssVars)((function(e,t){return{f4afac4a:e.labelColor,"23240d2a":e.labelColor+"1a"}}))},l=s.setup;s.setup=l?function(e,t){return c(),l(e,t)}:c;var f=s;t.Z=f},6049:function(e,t,n){"use strict";Object.defineProperty(t,"X",{value:!0}),t.Z=void 0;var r=n(4147),o={data:function(){return{version:r.version,name:r.name,warehouse:r.warehouse}}};t.Z=o},5997:function(e,t){"use strict";Object.defineProperty(t,"X",{value:!0}),t.Z=void 0,t.Z={props:["count","title"]}},934:function(e,t,n){"use strict";var r=n(3330);Object.defineProperty(t,"X",{value:!0}),t.Z=void 0;var o=r(n(818)),a=r(n(8711)),i=r(n(1848)),u=r(n(9414)),s=r(n(1291)),c=r(n(5930)),l={components:{XkCard:u.default,XkInfo:s.default,XkFooter:c.default},data:function(){return{title:"",name:"",avatar:"",bbList:[],total:0,message:"让叨叨飞一会~",loading:!0,page:1,limit:5,showMessage:!1,fromColor:"",labelColor:"",loadingImg:"https://blog-img-1258635493.cos.ap-chengdu.myqcloud.com/cdn/img/loader/dogloading.gif",useLoadingImg:!0,execIng:!1,baseURL:"",format:""}},methods:{getData:function(){var e=this;return(0,a.default)(o.default.mark((function t(){var n,r,a,i,u,s,c;return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.loading=e.showMessage=!0,t.next=3,e.$http({url:e.baseURL+"pub/talks/",method:"get",params:{page:e.page,limit:e.limit}});case 3:if(n=t.sent,r=n.data,a=r.count,i=void 0===a?0:a,u=r.data,s=void 0===u?[]:u,void 0===(c=r.status)||!c){t.next=11;break}e.total=i,e.bbList=e.bbList.concat(s),e.page+=1,t.next=14;break;case 11:return e.message="哦吼,加载失败了,刷新看看~",e.showMessage=!0,t.abrupt("return");case 14:e.loading=e.showMessage=!1,e.bbList.length===e.total&&(e.message="当你看到这段话的时候,就说明已经全部加载完了...",e.showMessage=!0);case 16:case"end":return t.stop()}}),t)})))()},handleChageLike:function(e,t){var n=this;return(0,a.default)(o.default.mark((function r(){return o.default.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(e&&!n.execIng){r.next=2;break}return r.abrupt("return");case 2:if(!n.bbList[t].liked){r.next=7;break}return n.$toast.error("哈哈哈,点赞了就休想取消啦~"),r.abrupt("return");case 7:n.$toast.success("点赞成功,只不过有点慢,让点赞飞一会~");case 8:return n.execIng=!0,r.next=11,n.$http({url:n.baseURL+"pub/like_talk/",method:"post",data:"id=".concat(e)});case 11:r.sent.data.status&&(n.bbList[t].like=n.bbList[t].liked?n.bbList[t].like-1:n.bbList[t].like+1,n.bbList[t].liked=!n.bbList[t].liked),n.execIng=!1;case 15:case"end":return r.stop()}}),r)})))()}},mounted:function(){var e=this;return(0,a.default)(o.default.mark((function t(){var n,r,a,u,s,c,l,f,d,p,v,y,h,m,b;return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=i.default.prototype.$speakData,r=n.title,a=void 0===r?"叨叨":r,u=n.name,s=n.avatar,c=n.baseURL,l=n.limit,f=void 0===l?5:l,d=n.fromColor,p=void 0===d?"black":d,v=n.labelColor,y=void 0===v?"#000a85":v,n.loadingImg,h=n.useLoadingImg,m=void 0===h||h,b=n.format,e.title=a,e.name=u,e.baseURL=c.endsWith("/")?c:c+"/",e.avatar=s,e.useLoadingImg=m,e.limit=f,e.fromColor=p,e.labelColor=y,e.format=b,e.getData();case 11:case"end":return t.stop()}}),t)})))()}};t.Z=l},9990:function(e,t){"use strict";t.xk=t.sY=void 0;var n=function(){var e=this._self._c;return e("div",{staticClass:"ispeak",attrs:{id:"ispeak"}},[e("xk-issue")],1)};t.sY=n,t.xk=[],n._withStripped=!0},5957:function(e,t){"use strict";t.xk=t.sY=void 0;var n=function(){var e,t=this,n=t._self._c;return n("div",{staticClass:"xk-card wow animate__zoomIn"},[n("div",{staticClass:"xk-card-header"},[n("div",{staticClass:"xk-card-name"},[n("div",{staticClass:"avatar"},[n("img",{staticClass:"avatar-img",attrs:{src:t.avatar}})]),t._v(" "),n("div",{staticClass:"name-info"},[n("div",{staticClass:"name"},[t._v(t._s(t.name))]),t._v(" "),n("span",{staticClass:"xk-card-time",attrs:{title:t.time_title}},[t._v(t._s(t.date))])])]),t._v(" "),t.label?n("div",{staticClass:"dao-label"},[t._v("#"+t._s(t.label))]):t._e()]),t._v(" "),n("div",{staticClass:"xk-card-content",domProps:{innerHTML:t._s(t.content)}}),t._v(" "),n("div",{staticClass:"xk-card-footer"},[n("div",{staticClass:"xk-card-label",style:{background:t.fromColor,color:"white"}},[n("span",[t._v(t._s(null!==(e=t.from)&&void 0!==e?e:"Chrome"))])]),t._v(" "),n("div",{staticClass:"dao-like"},[t.liked?[n("svg",{staticClass:"like-svg",staticStyle:{"margin-right":"2px"},attrs:{xmlns:"http://www.w3.org/2000/svg",height:"16",width:"16",fill:"red"},on:{click:t.handleLike}},[n("path",{attrs:{transform:"scale(0.03,0.03)",d:"M0 190.9V185.1C0 115.2 50.52 55.58 119.4 44.1C164.1 36.51 211.4 51.37 244 84.02L256 96L267.1 84.02C300.6 51.37 347 36.51 392.6 44.1C461.5 55.58 512 115.2 512 185.1V190.9C512 232.4 494.8 272.1 464.4 300.4L283.7 469.1C276.2 476.1 266.3 480 256 480C245.7 480 235.8 476.1 228.3 469.1L47.59 300.4C17.23 272.1 .0003 232.4 .0003 190.9L0 190.9z"}})]),t._v("\n "+t._s(t.like)+"\n ")]:[n("svg",{staticClass:"like-svg",attrs:{xmlns:"http://www.w3.org/2000/svg",height:"16",width:"16"},on:{click:t.handleLike}},[n("path",{attrs:{transform:"scale(0.03,0.03)",d:"M244 84L255.1 96L267.1 84.02C300.6 51.37 347 36.51 392.6 44.1C461.5 55.58 512 115.2 512 185.1V190.9C512 232.4 494.8 272.1 464.4 300.4L283.7 469.1C276.2 476.1 266.3 480 256 480C245.7 480 235.8 476.1 228.3 469.1L47.59 300.4C17.23 272.1 0 232.4 0 190.9V185.1C0 115.2 50.52 55.58 119.4 44.1C164.1 36.51 211.4 51.37 244 84C243.1 84 244 84.01 244 84L244 84zM255.1 163.9L210.1 117.1C188.4 96.28 157.6 86.4 127.3 91.44C81.55 99.07 48 138.7 48 185.1V190.9C48 219.1 59.71 246.1 80.34 265.3L256 429.3L431.7 265.3C452.3 246.1 464 219.1 464 190.9V185.1C464 138.7 430.4 99.07 384.7 91.44C354.4 86.4 323.6 96.28 301.9 117.1L255.1 163.9z"}})]),t._v("\n "+t._s(t.like)+"\n ")]],2)])])};t.sY=n,t.xk=[],n._withStripped=!0},8497:function(e,t){"use strict";t.xk=t.sY=void 0;var n=function(){var e=this,t=e._self._c;return t("div",{staticClass:"xk-footer"},[e._v("\n Powered by\n "),t("a",{attrs:{href:e.warehouse,target:"_blank"}},[e._v(e._s(e.name))]),e._v("\n v"+e._s(e.version)+"\n")])};t.sY=n,t.xk=[],n._withStripped=!0},547:function(e,t){"use strict";t.xk=t.sY=void 0;var n=function(){var e=this,t=e._self._c;return t("div",{staticClass:"xk-info"},[t("div",{staticClass:"count"},[t("i",{staticClass:"iconfont icon-pinlun"}),e._v("\n "+e._s(e.title)+" 「"),t("span",{staticStyle:{"font-size":"26px"}},[e._v(e._s(e.count))]),e._v("」\n ")])])};t.sY=n,t.xk=[],n._withStripped=!0},9674:function(e,t){"use strict";t.xk=t.sY=void 0;var n=function(){var e=this,t=e._self._c;return t("div",{staticStyle:{"padding-bottom":"40px"}},[t("xk-info",{attrs:{count:e.total,title:e.title}}),e._v(" "),t("transition-group",{attrs:{name:"list",tag:"div"}},[e._l(e.bbList,(function(n,r){return[t("xk-card",{key:n.id,attrs:{bbData:n.content,id:n.id,name:e.name,avatar:e.avatar,fromColor:e.fromColor,time:n.time,label:n.tags[0],from:n.tags[1],like:n.like,liked:n.liked,labelColor:e.labelColor,format:e.format},on:{changeLike:function(t){return e.handleChageLike(t,r)}}})]}))],2),e._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:e.loading,expression:"loading"}],staticClass:"loading"},[t("img",{directives:[{name:"show",rawName:"v-show",value:e.useLoadingImg,expression:"useLoadingImg"}],attrs:{src:e.loadingImg,alt:"loading"}}),e._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:!e.useLoadingImg,expression:"!useLoadingImg"}],staticClass:"bbddloading-inner"},[e._m(0),e._v(" "),e._m(1),e._v(" "),e._m(2),e._v(" "),e._m(3),e._v(" "),e._m(4)])]),e._v(" "),t("div",{staticClass:"btn-area"},[e.bbList.length0},O=function(e){return"number"==typeof e},P=function(e){return void 0===e},x=function(e){return"object"===(0,c.default)(e)&&null!==e},j=function(e){return D(e,"tag")&&w(e.tag)},T=function(e){return window.TouchEvent&&e instanceof TouchEvent},k=function(e){return D(e,"component")&&S(e.component)},S=function(e){return!P(e)&&(_(e)||function(e){return e instanceof l.default||(!!function(e){return g(e)&&D(e,"cid")}(t=e)||!!x(t)&&(!(!t.extends&&!t._Ctor)||!!_(t.template)||C(t)));var t}(e)||C(e)||j(e)||k(e))},M=function(e){return x(e)&&O(e.height)&&O(e.width)&&O(e.right)&&O(e.left)&&O(e.top)&&O(e.bottom)},D=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},C=function(e){return D(e,"render")&&g(e.render)},E=(f=0,function(){return f++});function R(e){return T(e)?e.targetTouches[0].clientX:e.clientX}function I(e){return T(e)?e.targetTouches[0].clientY:e.clientY}var N=function(e){P(e.remove)?e.parentNode&&e.parentNode.removeChild(e):e.remove()},A=function e(t){return k(t)?e(t.component):j(t)?{render:function(){return t}}:t};function Y(e,t,n,r,o,a,i,u,s,c){"boolean"!=typeof i&&(s=u,u=i,i=!1);var l,f="function"==typeof n?n.options:n;if(e&&e.render&&(f.render=e.render,f.staticRenderFns=e.staticRenderFns,f._compiled=!0,o&&(f.functional=!0)),r&&(f._scopeId=r),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,s(e)),e&&e._registeredComponents&&e._registeredComponents.add(a)},f._ssrRegister=l):t&&(l=i?function(e){t.call(this,c(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,u(e))}),l)if(f.functional){var d=f.render;f.render=function(e,t){return l.call(t),d(e,t)}}else{var p=f.beforeCreate;f.beforeCreate=p?[].concat(p,l):[l]}return n}var L=l.default.extend({props:b.PROGRESS_BAR,data:function(){return{hasClass:!0}},computed:{style:function(){return{animationDuration:"".concat(this.timeout,"ms"),animationPlayState:this.isRunning?"running":"paused",opacity:this.hideProgressBar?0:1}},cpClass:function(){return this.hasClass?"".concat(d,"__progress-bar"):""}},mounted:function(){this.$el.addEventListener("animationend",this.animationEnded)},beforeDestroy:function(){this.$el.removeEventListener("animationend",this.animationEnded)},methods:{animationEnded:function(){this.$emit("close-toast")}},watch:{timeout:function(){var e=this;this.hasClass=!1,this.$nextTick((function(){return e.hasClass=!0}))}}}),B=function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{class:e.cpClass,style:e.style})};B._withStripped=!0;var U=Y({render:B,staticRenderFns:[]},void 0,L,void 0,!1,void 0,!1,void 0,void 0,void 0),F=l.default.extend({props:b.CLOSE_BUTTON,computed:{buttonComponent:function(){return!1!==this.component?A(this.component):"button"},classes:function(){var e=["".concat(d,"__close-button")];return this.showOnHover&&e.push("show-on-hover"),e.concat(this.classNames)}}}),H=function(){var e=this,t=e.$createElement;return(e._self._c||t)(e.buttonComponent,e._g({tag:"component",class:e.classes,attrs:{"aria-label":e.ariaLabel}},e.$listeners),[e._v("\n ×\n")])};H._withStripped=!0;var $=Y({render:H,staticRenderFns:[]},void 0,F,void 0,!1,void 0,!1,void 0,void 0,void 0),W={},V=function(){var e=this.$createElement,t=this._self._c||e;return t("svg",{staticClass:"svg-inline--fa fa-check-circle fa-w-16",attrs:{"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"check-circle",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"}},[t("path",{attrs:{fill:"currentColor",d:"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"}})])};V._withStripped=!0;var z=Y({render:V,staticRenderFns:[]},void 0,W,void 0,!1,void 0,!1,void 0,void 0,void 0),q={},X=function(){var e=this.$createElement,t=this._self._c||e;return t("svg",{staticClass:"svg-inline--fa fa-info-circle fa-w-16",attrs:{"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"info-circle",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"}},[t("path",{attrs:{fill:"currentColor",d:"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"}})])};X._withStripped=!0;var Q=Y({render:X,staticRenderFns:[]},void 0,q,void 0,!1,void 0,!1,void 0,void 0,void 0),Z={},G=function(){var e=this.$createElement,t=this._self._c||e;return t("svg",{staticClass:"svg-inline--fa fa-exclamation-circle fa-w-16",attrs:{"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"exclamation-circle",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"}},[t("path",{attrs:{fill:"currentColor",d:"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"}})])};G._withStripped=!0;var J=Y({render:G,staticRenderFns:[]},void 0,Z,void 0,!1,void 0,!1,void 0,void 0,void 0),K={},ee=function(){var e=this.$createElement,t=this._self._c||e;return t("svg",{staticClass:"svg-inline--fa fa-exclamation-triangle fa-w-18",attrs:{"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"exclamation-triangle",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"}},[t("path",{attrs:{fill:"currentColor",d:"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"}})])};ee._withStripped=!0;var te=Y({render:ee,staticRenderFns:[]},void 0,K,void 0,!1,void 0,!1,void 0,void 0,void 0),ne=l.default.extend({props:b.ICON,computed:{customIconChildren:function(){return D(this.customIcon,"iconChildren")?this.trimValue(this.customIcon.iconChildren):""},customIconClass:function(){return _(this.customIcon)?this.trimValue(this.customIcon):D(this.customIcon,"iconClass")?this.trimValue(this.customIcon.iconClass):""},customIconTag:function(){return D(this.customIcon,"iconTag")?this.trimValue(this.customIcon.iconTag,"i"):"i"},hasCustomIcon:function(){return this.customIconClass.length>0},component:function(){return this.hasCustomIcon?this.customIconTag:S(this.customIcon)?A(this.customIcon):this.iconTypeComponent},iconTypeComponent:function(){var e;return(e={},(0,s.default)(e,o.DEFAULT,Q),(0,s.default)(e,o.INFO,Q),(0,s.default)(e,o.SUCCESS,z),(0,s.default)(e,o.ERROR,te),(0,s.default)(e,o.WARNING,J),e)[this.type]},iconClasses:function(){var e=["".concat(d,"__icon")];return this.hasCustomIcon?e.concat(this.customIconClass):e}},methods:{trimValue:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return w(e)?e.trim():t}}}),re=ne,oe=function(){var e=this,t=e.$createElement;return(e._self._c||t)(e.component,{tag:"component",class:e.iconClasses},[e._v(e._s(e.customIconChildren))])};oe._withStripped=!0;var ae=Y({render:oe,staticRenderFns:[]},void 0,re,void 0,!1,void 0,!1,void 0,void 0,void 0),ie=l.default.extend({components:{ProgressBar:U,CloseButton:$,Icon:ae},inheritAttrs:!1,props:Object.assign({},b.CORE_TOAST,b.TOAST),data:function(){return{isRunning:!0,disableTransitions:!1,beingDragged:!1,dragStart:0,dragPos:{x:0,y:0},dragRect:{}}},computed:{classes:function(){var e=["".concat(d,"__toast"),"".concat(d,"__toast--").concat(this.type),"".concat(this.position)].concat(this.toastClassName);return this.disableTransitions&&e.push("disable-transition"),this.rtl&&e.push("".concat(d,"__toast--rtl")),e},bodyClasses:function(){return["".concat(d,"__toast-").concat(_(this.content)?"body":"component-body")].concat(this.bodyClassName)},draggableStyle:function(){return this.dragStart===this.dragPos.x?{}:this.beingDragged?{transform:"translateX(".concat(this.dragDelta,"px)"),opacity:1-Math.abs(this.dragDelta/this.removalDistance)}:{transition:"transform 0.2s, opacity 0.2s",transform:"translateX(0)",opacity:1}},dragDelta:function(){return this.beingDragged?this.dragPos.x-this.dragStart:0},removalDistance:function(){return M(this.dragRect)?(this.dragRect.right-this.dragRect.left)*this.draggablePercent:0}},mounted:function(){this.draggable&&this.draggableSetup(),this.pauseOnFocusLoss&&this.focusSetup()},beforeDestroy:function(){this.draggable&&this.draggableCleanup(),this.pauseOnFocusLoss&&this.focusCleanup()},destroyed:function(){var e=this;setTimeout((function(){N(e.$el)}),1e3)},methods:{getVueComponentFromObj:A,closeToast:function(){this.eventBus.$emit(i.DISMISS,this.id)},clickHandler:function(){this.onClick&&this.onClick(this.closeToast),this.closeOnClick&&(this.beingDragged&&this.dragStart!==this.dragPos.x||this.closeToast())},timeoutHandler:function(){this.closeToast()},hoverPause:function(){this.pauseOnHover&&(this.isRunning=!1)},hoverPlay:function(){this.pauseOnHover&&(this.isRunning=!0)},focusPause:function(){this.isRunning=!1},focusPlay:function(){this.isRunning=!0},focusSetup:function(){addEventListener("blur",this.focusPause),addEventListener("focus",this.focusPlay)},focusCleanup:function(){removeEventListener("blur",this.focusPause),removeEventListener("focus",this.focusPlay)},draggableSetup:function(){var e=this.$el;e.addEventListener("touchstart",this.onDragStart,{passive:!0}),e.addEventListener("mousedown",this.onDragStart),addEventListener("touchmove",this.onDragMove,{passive:!1}),addEventListener("mousemove",this.onDragMove),addEventListener("touchend",this.onDragEnd),addEventListener("mouseup",this.onDragEnd)},draggableCleanup:function(){var e=this.$el;e.removeEventListener("touchstart",this.onDragStart),e.removeEventListener("mousedown",this.onDragStart),removeEventListener("touchmove",this.onDragMove),removeEventListener("mousemove",this.onDragMove),removeEventListener("touchend",this.onDragEnd),removeEventListener("mouseup",this.onDragEnd)},onDragStart:function(e){this.beingDragged=!0,this.dragPos={x:R(e),y:I(e)},this.dragStart=R(e),this.dragRect=this.$el.getBoundingClientRect()},onDragMove:function(e){this.beingDragged&&(e.preventDefault(),this.isRunning&&(this.isRunning=!1),this.dragPos={x:R(e),y:I(e)})},onDragEnd:function(){var e=this;this.beingDragged&&(Math.abs(this.dragDelta)>=this.removalDistance?(this.disableTransitions=!0,this.$nextTick((function(){return e.closeToast()}))):setTimeout((function(){e.beingDragged=!1,M(e.dragRect)&&e.pauseOnHover&&e.dragRect.bottom>=e.dragPos.y&&e.dragPos.y>=e.dragRect.top&&e.dragRect.left<=e.dragPos.x&&e.dragPos.x<=e.dragRect.right?e.isRunning=!1:e.isRunning=!0})))}}}),ue=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:e.classes,style:e.draggableStyle,on:{click:e.clickHandler,mouseenter:e.hoverPause,mouseleave:e.hoverPlay}},[e.icon?n("Icon",{attrs:{"custom-icon":e.icon,type:e.type}}):e._e(),e._v(" "),n("div",{class:e.bodyClasses,attrs:{role:e.accessibility.toastRole||"alert"}},["string"==typeof e.content?[e._v(e._s(e.content))]:n(e.getVueComponentFromObj(e.content),e._g(e._b({tag:"component",attrs:{"toast-id":e.id},on:{"close-toast":e.closeToast}},"component",e.content.props,!1),e.content.listeners))],2),e._v(" "),e.closeButton?n("CloseButton",{attrs:{component:e.closeButton,"class-names":e.closeButtonClassName,"show-on-hover":e.showCloseButtonOnHover,"aria-label":e.accessibility.closeButtonLabel},on:{click:function(t){return t.stopPropagation(),e.closeToast(t)}}}):e._e(),e._v(" "),e.timeout?n("ProgressBar",{attrs:{"is-running":e.isRunning,"hide-progress-bar":e.hideProgressBar,timeout:e.timeout},on:{"close-toast":e.timeoutHandler}}):e._e()],1)};ue._withStripped=!0;var se=Y({render:ue,staticRenderFns:[]},void 0,ie,void 0,!1,void 0,!1,void 0,void 0,void 0),ce=l.default.extend({inheritAttrs:!1,props:b.TRANSITION,methods:{beforeEnter:function(e){var t="number"==typeof this.transitionDuration?this.transitionDuration:this.transitionDuration.enter;e.style.animationDuration="".concat(t,"ms"),e.style.animationFillMode="both",this.$emit("before-enter",e)},afterEnter:function(e){this.cleanUpStyles(e),this.$emit("after-enter",e)},afterLeave:function(e){this.cleanUpStyles(e),this.$emit("after-leave",e)},beforeLeave:function(e){var t="number"==typeof this.transitionDuration?this.transitionDuration:this.transitionDuration.leave;e.style.animationDuration="".concat(t,"ms"),e.style.animationFillMode="both",this.$emit("before-leave",e)},leave:function(e,t){this.setAbsolutePosition(e),this.$emit("leave",e,t)},setAbsolutePosition:function(e){e.style.left=e.offsetLeft+"px",e.style.top=e.offsetTop+"px",e.style.width=getComputedStyle(e).width,e.style.height=getComputedStyle(e).height,e.style.position="absolute"},cleanUpStyles:function(e){e.style.animationFillMode="",e.style.animationDuration=""}}}),le=function(){var e=this,t=e.$createElement;return(e._self._c||t)("transition-group",{attrs:{tag:"div","enter-active-class":e.transition.enter?e.transition.enter:e.transition+"-enter-active","move-class":e.transition.move?e.transition.move:e.transition+"-move","leave-active-class":e.transition.leave?e.transition.leave:e.transition+"-leave-active"},on:{leave:e.leave,"before-enter":e.beforeEnter,"before-leave":e.beforeLeave,"after-enter":e.afterEnter,"after-leave":e.afterLeave}},[e._t("default")],2)};le._withStripped=!0;var fe=Y({render:le,staticRenderFns:[]},void 0,ce,void 0,!1,void 0,!1,void 0,void 0,void 0),de=l.default.extend({components:{Toast:se,VtTransition:fe},props:Object.assign({},b.CORE_TOAST,b.CONTAINER,b.TRANSITION),data:function(){return{count:0,positions:Object.values(a),toasts:{},defaults:{}}},computed:{toastArray:function(){return Object.values(this.toasts)},filteredToasts:function(){return this.defaults.filterToasts(this.toastArray)}},beforeMount:function(){this.setup(this.container);var e=this.eventBus;e.$on(i.ADD,this.addToast),e.$on(i.CLEAR,this.clearToasts),e.$on(i.DISMISS,this.dismissToast),e.$on(i.UPDATE,this.updateToast),e.$on(i.UPDATE_DEFAULTS,this.updateDefaults),this.defaults=this.$props},methods:{setup:function(e){return t=this,n=void 0,r=void 0,o=u.default.mark((function t(){return u.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!g(e)){t.next=4;break}return t.next=3,e();case 3:e=t.sent;case 4:N(this.$el),e.appendChild(this.$el);case 6:case"end":return t.stop()}}),t,this)})),new(r||(r=Promise))((function(e,a){function i(e){try{s(o.next(e))}catch(e){a(e)}}function u(e){try{s(o.throw(e))}catch(e){a(e)}}function s(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r((function(e){e(n)}))).then(i,u)}s((o=o.apply(t,n||[])).next())}));var t,n,r,o},setToast:function(e){P(e.id)||this.$set(this.toasts,e.id,e)},addToast:function(e){var t=Object.assign({},this.defaults,e.type&&this.defaults.toastDefaults&&this.defaults.toastDefaults[e.type],e),n=this.defaults.filterBeforeCreate(t,this.toastArray);n&&this.setToast(n)},dismissToast:function(e){var t=this.toasts[e];P(t)||P(t.onClose)||t.onClose(),this.$delete(this.toasts,e)},clearToasts:function(){var e=this;Object.keys(this.toasts).forEach((function(t){e.dismissToast(t)}))},getPositionToasts:function(e){var t=this.filteredToasts.filter((function(t){return t.position===e})).slice(0,this.defaults.maxToasts);return this.defaults.newestOnTop?t.reverse():t},updateDefaults:function(e){P(e.container)||this.setup(e.container),this.defaults=Object.assign({},this.defaults,e)},updateToast:function(e){var t=e.id,n=e.options,r=e.create;this.toasts[t]?(n.timeout&&n.timeout===this.toasts[t].timeout&&n.timeout++,this.setToast(Object.assign({},this.toasts[t],n))):r&&this.addToast(Object.assign({},{id:t},n))},getClasses:function(e){return["".concat(d,"__container"),e].concat(this.defaults.containerClassName)}}}),pe=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",e._l(e.positions,(function(t){return n("div",{key:t},[n("VtTransition",{class:e.getClasses(t),attrs:{transition:e.defaults.transition,"transition-duration":e.defaults.transitionDuration}},e._l(e.getPositionToasts(t),(function(t){return n("Toast",e._b({key:t.id},"Toast",t,!1))})),1)],1)})),0)};pe._withStripped=!0;var ve=Y({render:pe,staticRenderFns:[]},void 0,de,void 0,!1,void 0,!1,void 0,void 0,void 0),ye=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=t.eventBus=t.eventBus||new e;if(n){var a=new(e.extend(ve))({el:document.createElement("div"),propsData:t}),u=t.onMounted;P(u)||u(a)}var s=function(e,t){var n=Object.assign({},{id:E(),type:o.DEFAULT},t,{content:e});return r.$emit(i.ADD,n),n.id};function c(e,t){var n=t.content,o=t.options,a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];r.$emit(i.UPDATE,{id:e,options:Object.assign({},o,{content:n}),create:a})}return s.clear=function(){return r.$emit(i.CLEAR)},s.updateDefaults=function(e){r.$emit(i.UPDATE_DEFAULTS,e)},s.dismiss=function(e){r.$emit(i.DISMISS,e)},s.update=c,s.success=function(e,t){return s(e,Object.assign({},t,{type:o.SUCCESS}))},s.info=function(e,t){return s(e,Object.assign({},t,{type:o.INFO}))},s.error=function(e,t){return s(e,Object.assign({},t,{type:o.ERROR}))},s.warning=function(e,t){return s(e,Object.assign({},t,{type:o.WARNING}))},s};function he(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default,n=function(e){return e instanceof t};return n(e)?ye(t,{eventBus:e},!1):ye(t,e,!0)}t.default=function(e,t){var n=he(t,e);e.$toast=n,e.prototype.$toast=n}},1848:function(e,t,n){"use strict";e.exports=n(8265)},8265:function(e,t,n){"use strict";var r=n(3330),o=r(n(5272)),a=r(n(8946)),i=r(n(9767)),u=Object.freeze({}),s=Array.isArray;function c(e){return null==e}function l(e){return null!=e}function f(e){return!0===e}function d(e){return"string"==typeof e||"number"==typeof e||"symbol"==(0,i.default)(e)||"boolean"==typeof e}function p(e){return"function"==typeof e}function v(e){return null!==e&&"object"==(0,i.default)(e)}var y=Object.prototype.toString;function h(e){return"[object Object]"===y.call(e)}function m(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function b(e){return l(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function g(e){return null==e?"":Array.isArray(e)||h(e)&&e.toString===y?JSON.stringify(e,null,2):String(e)}function _(e){var t=parseFloat(e);return isNaN(t)?e:t}function w(e,t){for(var n=Object.create(null),r=e.split(","),o=0;o-1)return e.splice(n,1)}}var x=Object.prototype.hasOwnProperty;function j(e,t){return x.call(e,t)}function T(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var k=/-(\w)/g,S=T((function(e){return e.replace(k,(function(e,t){return t?t.toUpperCase():""}))})),M=T((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),D=/\B([A-Z])/g,C=T((function(e){return e.replace(D,"-$1").toLowerCase()})),E=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function R(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function I(e,t){for(var n in t)e[n]=t[n];return e}function N(e){for(var t={},n=0;n0,ee=G&&G.indexOf("edge/")>0;G&&G.indexOf("android");var te=G&&/iphone|ipad|ipod|ios/.test(G);G&&/chrome\/\d+/.test(G),G&&/phantomjs/.test(G);var ne,re=G&&G.match(/firefox\/(\d+)/),oe={}.watch,ae=!1;if(Z)try{var ie={};Object.defineProperty(ie,"passive",{get:function(){ae=!0}}),window.addEventListener("test-passive",null,ie)}catch(u){}var ue=function(){return void 0===ne&&(ne=!Z&&void 0!==n.g&&n.g.process&&"server"===n.g.process.env.VUE_ENV),ne},se=Z&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ce(e){return"function"==typeof e&&/native code/.test(e.toString())}var le,fe="undefined"!=typeof Symbol&&ce(Symbol)&&"undefined"!=typeof Reflect&&ce(Reflect.ownKeys);le="undefined"!=typeof Set&&ce(Set)?Set:function(){function e(){(0,o.default)(this,e),this.set=Object.create(null)}return(0,a.default)(e,[{key:"has",value:function(e){return!0===this.set[e]}},{key:"add",value:function(e){this.set[e]=!0}},{key:"clear",value:function(){this.set=Object.create(null)}}]),e}();var de=null;function pe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e||de&&de._scope.off(),de=e,e&&e._scope.on()}var ve=function(){function e(t,n,r,a,i,u,s,c){(0,o.default)(this,e),this.tag=t,this.data=n,this.children=r,this.text=a,this.elm=i,this.ns=void 0,this.context=u,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=n&&n.key,this.componentOptions=s,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=c,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return(0,a.default)(e,[{key:"child",get:function(){return this.componentInstance}}]),e}(),ye=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=new ve;return t.text=e,t.isComment=!0,t};function he(e){return new ve(void 0,void 0,void 0,String(e))}function me(e){var t=new ve(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.asyncMeta=e.asyncMeta,t.isCloned=!0,t}var be=0,ge=function(){function e(){(0,o.default)(this,e),this.id=be++,this.subs=[]}return(0,a.default)(e,[{key:"addSub",value:function(e){this.subs.push(e)}},{key:"removeSub",value:function(e){P(this.subs,e)}},{key:"depend",value:function(t){e.target&&e.target.addDep(this)}},{key:"notify",value:function(e){for(var t=this.subs.slice(),n=0,r=t.length;n1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if((0,o.default)(this,e),this.value=t,this.shallow=n,this.mock=r,this.dep=r?Me:new ge,this.vmCount=0,q(t,"__ob__",this),s(t)){if(!r)if(Q)t.__proto__=xe;else for(var a=0,i=je.length;a2&&void 0!==arguments[2]?arguments[2]:u,a=o.immediate,i=o.deep,c=o.flush,l=void 0===c?"pre":c,f=(o.onTrack,o.onTrigger,de),d=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Ut(e,null,n,f,t)},v=!1,y=!1;if(Fe(e)?(n=function(){return e.value},v=Be(e)):Le(e)?(n=function(){return e.__ob__.dep.depend(),e},i=!0):s(e)?(y=!0,v=e.some((function(e){return Le(e)||Be(e)})),n=function(){return e.map((function(e){return Fe(e)?e.value:Le(e)?yn(e):p(e)?d(e,"watcher getter"):void 0}))}):n=p(e)?t?function(){return d(e,"watcher getter")}:function(){if(!f||!f._isDestroyed)return r&&r(),d(e,"watcher",[m])}:A,t&&i){var h=n;n=function(){return yn(h())}}var m=function(e){r=b.onStop=function(){d(e,"watcher cleanup")}};if(ue())return m=A,t?a&&d(t,"watcher callback",[n(),y?[]:void 0,m]):n(),A;var b=new gn(de,n,A,{lazy:!0});b.noRecurse=!t;var g=y?[]:Ze;return b.run=function(){if(b.active)if(t){var e=b.get();(i||v||(y?e.some((function(e,t){return H(e,g[t])})):H(e,g)))&&(r&&r(),d(t,"watcher callback",[e,g===Ze?void 0:g,m]),g=e)}else b.get()},"sync"===l?b.update=b.run:"post"===l?(b.post=!0,b.update=function(){return Fn(b)}):b.update=function(){if(f&&f===de&&!f._isMounted){var e=f._preWatchers||(f._preWatchers=[]);e.indexOf(b)<0&&e.push(b)}else Fn(b)},t?a?b.run():g=b.get():"post"===l&&f?f.$once("hook:mounted",(function(){return b.get()})):b.get(),function(){b.teardown()}}var Je=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];(0,o.default)(this,e),this.active=!0,this.effects=[],this.cleanups=[],!t&&Qe&&(this.parent=Qe,this.index=(Qe.scopes||(Qe.scopes=[])).push(this)-1)}return(0,a.default)(e,[{key:"run",value:function(e){if(this.active){var t=Qe;try{return Qe=this,e()}finally{Qe=t}}}},{key:"on",value:function(){Qe=this}},{key:"off",value:function(){Qe=this.parent}},{key:"stop",value:function(e){if(this.active){var t,n;for(t=0,n=this.effects.length;t0&&(it((r=ut(r,"".concat(t||"","_").concat(n)))[0])&&it(a)&&(i[o]=he(a.text+r[0].text),r.shift()),i.push.apply(i,r)):d(r)?it(a)?i[o]=he(a.text+r):""!==r&&i.push(he(r)):it(r)&&it(a)?i[o]=he(a.text+r.text):(f(e._isVList)&&l(r.tag)&&c(r.key)&&l(t)&&(r.key="__vlist".concat(t,"_").concat(n,"__")),i.push(r)));return i}function st(e,t){var n,r,o,a,i=null;if(s(e)||"string"==typeof e)for(i=new Array(e.length),n=0,r=e.length;n0,i=t?!!t.$stable:!a,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(i&&r&&r!==u&&s===r.$key&&!a&&!r.$hasNormal)return r;for(var c in o={},t)t[c]&&"$"!==c[0]&&(o[c]=kt(e,n,c,t[c]))}else o={};for(var l in n)l in o||(o[l]=St(n,l));return t&&Object.isExtensible(t)&&(t._normalized=o),q(o,"$stable",i),q(o,"$key",s),q(o,"$hasNormal",a),o}function kt(e,t,n,r){var o=function(){var t=de;pe(e);var n=arguments.length?r.apply(null,arguments):r({}),o=(n=n&&"object"==(0,i.default)(n)&&!s(n)?[n]:at(n))&&n[0];return pe(t),n&&(!o||1===n.length&&o.isComment&&!jt(o))?void 0:n};return r.proxy&&Object.defineProperty(t,n,{get:o,enumerable:!0,configurable:!0}),o}function St(e,t){return function(){return e[t]}}function Mt(e){return{get attrs(){if(!e._attrsProxy){var t=e._attrsProxy={};q(t,"_v_attr_proxy",!0),Dt(t,e.$attrs,u,e,"$attrs")}return e._attrsProxy},get listeners(){return e._listenersProxy||Dt(e._listenersProxy={},e.$listeners,u,e,"$listeners"),e._listenersProxy},get slots(){return function(e){return e._slotsProxy||Et(e._slotsProxy={},e.$scopedSlots),e._slotsProxy}(e)},emit:E(e.$emit,e),expose:function(t){t&&Object.keys(t).forEach((function(n){return $e(e,t,n)}))}}}function Dt(e,t,n,r,o){var a=!1;for(var i in t)i in e?t[i]!==n[i]&&(a=!0):(a=!0,Ct(e,i,r,o));for(var u in e)u in t||(a=!0,delete e[u]);return a}function Ct(e,t,n,r){Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){return n[r][t]}})}function Et(e,t){for(var n in t)e[n]=t[n];for(var r in e)r in t||delete e[r]}function Rt(){var e=de;return e._setupContext||(e._setupContext=Mt(e))}var It=null;function Nt(e,t){return(e.__esModule||fe&&"Module"===e[Symbol.toStringTag])&&(e=e.default),v(e)?t.extend(e):e}function At(e){if(s(e))for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:de;if(n)return function(e,t,n){var r=e.$options;r[t]=tr(r[t],n)}(n,e,t)}}var en=Kt("beforeMount"),tn=Kt("mounted"),nn=Kt("beforeUpdate"),rn=Kt("updated"),on=Kt("beforeDestroy"),an=Kt("destroyed"),un=Kt("activated"),sn=Kt("deactivated"),cn=Kt("serverPrefetch"),ln=Kt("renderTracked"),fn=Kt("renderTriggered"),dn=Kt("errorCaptured"),pn=Object.freeze({__proto__:null,version:"2.7.10",defineComponent:function(e){return e},ref:function(e){return He(e,!1)},shallowRef:function(e){return He(e,!0)},isRef:Fe,toRef:We,toRefs:function(e){var t=s(e)?new Array(e.length):{};for(var n in e)t[n]=We(e,n);return t},unref:function(e){return Fe(e)?e.value:e},proxyRefs:function(e){if(Le(e))return e;for(var t={},n=Object.keys(e),r=0;r2&&void 0!==arguments[2]&&arguments[2],r=de;if(r){var o=r.$parent&&r.$parent._provided;if(o&&e in o)return o[e];if(arguments.length>1)return n&&p(t)?t.call(r):t}},h:function(e,t,n){return Yt(de,e,t,n,2,!0)},getCurrentInstance:function(){return de&&{proxy:de}},useSlots:function(){return Rt().slots},useAttrs:function(){return Rt().attrs},useListeners:function(){return Rt().listeners},mergeDefaults:function(e,t){var n=s(e)?e.reduce((function(e,t){return e[t]={},e}),{}):e;for(var r in t){var o=n[r];o?s(o)||p(o)?n[r]={type:o,default:t[r]}:o.default=t[r]:null===o&&(n[r]={default:t[r]})}return n},nextTick:Jt,set:Re,del:Ie,useCssModule:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"$style";if(!de)return u;var t=de[e];return t||u},useCssVars:function(e){if(Z){var t=de;t&&Xe((function(){var n=t.$el,r=e(t,t._setupProxy);if(n&&1===n.nodeType){var o=n.style;for(var a in r)o.setProperty("--".concat(a),r[a])}}))}},defineAsyncComponent:function(e){p(e)&&(e={loader:e});var t=e,n=t.loader,r=t.loadingComponent,o=t.errorComponent,a=t.delay,i=void 0===a?200:a,u=t.timeout,s=(t.suspensible,t.onError),c=null,l=0,f=function e(){var t;return c||(t=c=n().catch((function(t){if(t=t instanceof Error?t:new Error(String(t)),s)return new Promise((function(n,r){s(t,(function(){return n((l++,c=null,e()))}),(function(){return r(t)}),l+1)}));throw t})).then((function(e){return t!==c&&c?c:(e&&(e.__esModule||"Module"===e[Symbol.toStringTag])&&(e=e.default),e)})))};return function(){return{component:f(),delay:i,timeout:u,error:o,loading:r}}},onBeforeMount:en,onMounted:tn,onBeforeUpdate:nn,onUpdated:rn,onBeforeUnmount:on,onUnmounted:an,onActivated:un,onDeactivated:sn,onServerPrefetch:cn,onRenderTracked:ln,onRenderTriggered:fn,onErrorCaptured:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:de;dn(e,t)}}),vn=new le;function yn(e){return hn(e,vn),vn.clear(),e}function hn(e,t){var n,r,o=s(e);if(!(!o&&!v(e)||Object.isFrozen(e)||e instanceof ve)){if(e.__ob__){var a=e.__ob__.dep.id;if(t.has(a))return;t.add(a)}if(o)for(n=e.length;n--;)hn(e[n],t);else if(Fe(e))hn(e.value,t);else for(n=(r=Object.keys(e)).length;n--;)hn(e[r[n]],t)}}var mn,bn=0,gn=function(){function e(t,n,r,a,i){(0,o.default)(this,e),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Qe;t&&t.active&&t.effects.push(e)}(this,Qe&&!Qe._vm?Qe:t?t._scope:void 0),(this.vm=t)&&i&&(t._watcher=this),a?(this.deep=!!a.deep,this.user=!!a.user,this.lazy=!!a.lazy,this.sync=!!a.sync,this.before=a.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=r,this.id=++bn,this.active=!0,this.post=!1,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new le,this.newDepIds=new le,this.expression="",p(n)?this.getter=n:(this.getter=function(e){if(!X.test(e)){var t=e.split(".");return function(e){for(var n=0;n3&&void 0!==arguments[3])||arguments[3];we();var o=de;r&&pe(e);var a=e.$options[t],i="".concat(t," hook");if(a)for(var u=0,s=a.length;udocument.createEvent("Event").timeStamp&&(Yn=function(){return Ln.now()})}var Bn=function(e,t){if(e.post){if(!t.post)return 1}else if(t.post)return-1;return e.id-t.id};function Un(){var e,t;for(An=Yn(),In=!0,Dn.sort(Bn),Nn=0;NnNn&&Dn[n].id>e.id;)n--;Dn.splice(n+1,0,e)}else Dn.push(e);Rn||(Rn=!0,Jt(Un))}}function Hn(e,t){if(e){for(var n=Object.create(null),r=fe?Reflect.ownKeys(e):Object.keys(e),o=0;o-1)if(a&&!j(o,"default"))i=!1;else if(""===i||i===C(e)){var s=lr(String,o.type);(s<0||u-1:"string"==typeof e?e.split(",").indexOf(t)>-1:(n=e,"[object RegExp]"===y.call(n)&&e.test(t));var n}function xr(e,t){var n=e.cache,r=e.keys,o=e._vnode;for(var a in n){var i=n[a];if(i){var u=i.name;u&&!t(u)&&jr(n,a,r,o)}}}function jr(e,t,n,r){var o=e[t];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),e[t]=null,P(n,t)}!function(e){e.prototype._init=function(e){var t=this;t._uid=gr++,t._isVue=!0,t.__v_skip=!0,t._scope=new Je(!0),t._scope._vm=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=or(_r(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._provided=n?n._provided:Object.create(null),e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Pn(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,n=e.$vnode=t._parentVnode,r=n&&n.context;e.$slots=Pt(t._renderChildren,r),e.$scopedSlots=n?Tt(e.$parent,n.data.scopedSlots,e.$slots):u,e._c=function(t,n,r,o){return Yt(e,t,n,r,o,!1)},e.$createElement=function(t,n,r,o){return Yt(e,t,n,r,o,!0)};var o=n&&n.data;Ee(e,"$attrs",o&&o.attrs||u,null,!0),Ee(e,"$listeners",t._parentListeners||u,null,!0)}(t),Mn(t,"beforeCreate",void 0,!1),function(e){var t=Hn(e.$options.inject,e);t&&(Se(!1),Object.keys(t).forEach((function(n){Ee(e,n,t[n])})),Se(!0))}(t),pr(t),function(e){var t=e.$options.provide;if(t){var n=p(t)?t.call(e):t;if(!v(n))return;for(var r=Ke(e),o=fe?Reflect.ownKeys(n):Object.keys(n),a=0;a1?R(n):n;for(var r=R(arguments,1),o='event handler for "'.concat(e,'"'),a=0,i=n.length;aparseInt(this.max)&&jr(e,t[0],t,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)jr(this.cache,e,this.keys)},mounted:function(){var e=this;this.cacheVNode(),this.$watch("include",(function(t){xr(e,(function(e){return Pr(t,e)}))})),this.$watch("exclude",(function(t){xr(e,(function(e){return!Pr(t,e)}))}))},updated:function(){this.cacheVNode()},render:function(){var e=this.$slots.default,t=At(e),n=t&&t.componentOptions;if(n){var r=Or(n),o=this.include,a=this.exclude;if(o&&(!r||!Pr(o,r))||a&&r&&Pr(a,r))return t;var i=this.cache,u=this.keys,s=null==t.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):t.key;i[s]?(t.componentInstance=i[s].componentInstance,P(u,s),u.push(s)):(this.vnodeToCache=t,this.keyToCache=s),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return V}};Object.defineProperty(e,"config",t),e.util={warn:Gn,extend:I,mergeOptions:or,defineReactive:Ee},e.set=Re,e.delete=Ie,e.nextTick=Jt,e.observable=function(e){return Ce(e),e},e.options=Object.create(null),$.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,I(e.options.components,kr),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=R(arguments,1);return n.unshift(this),p(e.install)?e.install.apply(e,n):p(e)&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=or(this.options,e),this}}(e),function(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,o=e._Ctor||(e._Ctor={});if(o[r])return o[r];var a=zn(e)||zn(n.options),i=function(e){this._init(e)};return(i.prototype=Object.create(n.prototype)).constructor=i,i.cid=t++,i.options=or(n.options,e),i.super=n,i.options.props&&function(e){var t=e.options.props;for(var n in t)dr(e.prototype,"_props",n)}(i),i.options.computed&&function(e){var t=e.options.computed;for(var n in t)yr(e.prototype,n,t[n])}(i),i.extend=n.extend,i.mixin=n.mixin,i.use=n.use,$.forEach((function(e){i[e]=n[e]})),a&&(i.options.components[a]=i),i.superOptions=n.options,i.extendOptions=e,i.sealedOptions=I({},i.options),o[r]=i,i}}(e),function(e){$.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&h(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&p(n)&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}(e)}(wr),Object.defineProperty(wr.prototype,"$isServer",{get:ue}),Object.defineProperty(wr.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(wr,"FunctionalRenderContext",{value:$n}),wr.version="2.7.10";var Sr=w("style,class"),Mr=w("input,textarea,option,select,progress"),Dr=w("contenteditable,draggable,spellcheck"),Cr=w("events,caret,typing,plaintext-only"),Er=w("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),Rr="http://www.w3.org/1999/xlink",Ir=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Nr=function(e){return Ir(e)?e.slice(6,e.length):""},Ar=function(e){return null==e||!1===e};function Yr(e,t){return{staticClass:Lr(e.staticClass,t.staticClass),class:l(e.class)?[e.class,t.class]:t.class}}function Lr(e,t){return e?t?e+" "+t:e:t||""}function Br(e){return Array.isArray(e)?function(e){for(var t,n="",r=0,o=e.length;r-1?co(e,t,n):Er(t)?Ar(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Dr(t)?e.setAttribute(t,function(e,t){return Ar(t)||"false"===t?"false":"contenteditable"===e&&Cr(t)?t:"true"}(t,n)):Ir(t)?Ar(n)?e.removeAttributeNS(Rr,Nr(t)):e.setAttributeNS(Rr,t,n):co(e,t,n)}function co(e,t,n){Ar(n)?e.removeAttribute(t):(!J||K||"TEXTAREA"!==e.tagName||"placeholder"!==t||""===n||e.__ieph||(e.addEventListener("input",(function t(n){n.stopImmediatePropagation(),e.removeEventListener("input",t)})),e.__ieph=!0),e.setAttribute(t,n))}var lo={create:uo,update:uo};function fo(e,t){var n=t.elm,r=t.data,o=e.data;if(!(c(r.staticClass)&&c(r.class)&&(c(o)||c(o.staticClass)&&c(o.class)))){var a=function(e){for(var t=e.data,n=e,r=e;l(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=Yr(r.data,t));for(;l(n=n.parent);)n&&n.data&&(t=Yr(t,n.data));return function(e,t){return l(e)||l(t)?Lr(e,Br(t)):""}(t.staticClass,t.class)}(t),i=n._transitionClasses;l(i)&&(a=Lr(a,Br(i))),a!==n._prevClass&&(n.setAttribute("class",a),n._prevClass=a)}}var po,vo={create:fo,update:fo};function yo(e,t,n){var r=po;return function o(){var a=t.apply(null,arguments);null!==a&&bo(e,o,n,r)}}var ho=Wt&&!(re&&Number(re[1])<=53);function mo(e,t,n,r){if(ho){var o=An,a=t;t=a._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=o||e.timeStamp<=0||e.target.ownerDocument!==document)return a.apply(this,arguments)}}po.addEventListener(e,t,ae?{capture:n,passive:r}:n)}function bo(e,t,n,r){(r||po).removeEventListener(e,t._wrapper||t,n)}function go(e,t){if(!c(e.data.on)||!c(t.data.on)){var n=t.data.on||{},r=e.data.on||{};po=t.elm||e.elm,function(e){if(l(e.__r)){var t=J?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}l(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(n),nt(n,r,mo,bo,yo,t.context),po=void 0}}var _o,wo={create:go,update:go,destroy:function(e){return go(e,Zr)}};function Oo(e,t){if(!c(e.data.domProps)||!c(t.data.domProps)){var n,r,o=t.elm,a=e.data.domProps||{},i=t.data.domProps||{};for(n in(l(i.__ob__)||f(i._v_attr_proxy))&&(i=t.data.domProps=I({},i)),a)n in i||(o[n]="");for(n in i){if(r=i[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),r===a[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=r;var u=c(r)?"":String(r);Po(o,u)&&(o.value=u)}else if("innerHTML"===n&&Hr(o.tagName)&&c(o.innerHTML)){(_o=_o||document.createElement("div")).innerHTML="".concat(r,"");for(var s=_o.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;s.firstChild;)o.appendChild(s.firstChild)}else if(r!==a[n])try{o[n]=r}catch(e){}}}}function Po(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,r=e._vModifiers;if(l(r)){if(r.number)return _(n)!==_(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var xo={create:Oo,update:Oo},jo=T((function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}})),t}));function To(e){var t=ko(e.style);return e.staticStyle?I(e.staticStyle,t):t}function ko(e){return Array.isArray(e)?N(e):"string"==typeof e?jo(e):e}var So,Mo=/^--/,Do=/\s*!important$/,Co=function(e,t,n){if(Mo.test(t))e.style.setProperty(t,n);else if(Do.test(n))e.style.setProperty(C(t),n.replace(Do,""),"important");else{var r=Ro(t);if(Array.isArray(n))for(var o=0,a=n.length;o-1?t.split(Ao).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" ".concat(e.getAttribute("class")||""," ");n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function Lo(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(Ao).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" ".concat(e.getAttribute("class")||""," "),r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function Bo(e){if(e){if("object"==(0,i.default)(e)){var t={};return!1!==e.css&&I(t,Uo(e.name||"v")),I(t,e),t}return"string"==typeof e?Uo(e):void 0}}var Uo=T((function(e){return{enterClass:"".concat(e,"-enter"),enterToClass:"".concat(e,"-enter-to"),enterActiveClass:"".concat(e,"-enter-active"),leaveClass:"".concat(e,"-leave"),leaveToClass:"".concat(e,"-leave-to"),leaveActiveClass:"".concat(e,"-leave-active")}})),Fo=Z&&!K,Ho="transition",$o="transitionend",Wo="animation",Vo="animationend";Fo&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ho="WebkitTransition",$o="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Wo="WebkitAnimation",Vo="webkitAnimationEnd"));var zo=Z?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function qo(e){zo((function(){zo(e)}))}function Xo(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),Yo(e,t))}function Qo(e,t){e._transitionClasses&&P(e._transitionClasses,t),Lo(e,t)}function Zo(e,t,n){var r=Jo(e,t),o=r.type,a=r.timeout,i=r.propCount;if(!o)return n();var u="transition"===o?$o:Vo,s=0,c=function(){e.removeEventListener(u,l),n()},l=function(t){t.target===e&&++s>=i&&c()};setTimeout((function(){s0&&(n="transition",l=i,f=a.length):"animation"===t?c>0&&(n="animation",l=c,f=s.length):f=(n=(l=Math.max(i,c))>0?i>c?"transition":"animation":null)?"transition"===n?a.length:s.length:0,{type:n,timeout:l,propCount:f,hasTransform:"transition"===n&&Go.test(r[Ho+"Property"])}}function Ko(e,t){for(;e.length1}function aa(e,t){!0!==t.data.show&&ta(t)}var ia=function(e){var t,n,r={},o=e.modules,a=e.nodeOps;for(t=0;tv?g(e,c(n[m+1])?null:n[m+1].elm,n,p,m,r):p>m&&O(t,d,v)}(d,y,m,n,s):l(m)?(l(e.text)&&a.setTextContent(d,""),g(d,null,m,0,m.length-1,n)):l(y)?O(y,0,y.length-1):l(e.text)&&a.setTextContent(d,""):e.text!==t.text&&a.setTextContent(d,t.text),l(v)&&l(p=v.hook)&&l(p=p.postpatch)&&p(e,t)}}}function T(e,t,n){if(f(n)&&l(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r-1,i.selected!==a&&(i.selected=a);else if(B(fa(i),r))return void(e.selectedIndex!==u&&(e.selectedIndex=u));o||(e.selectedIndex=-1)}}function la(e,t){return t.every((function(t){return!B(t,e)}))}function fa(e){return"_value"in e?e._value:e.value}function da(e){e.target.composing=!0}function pa(e){e.target.composing&&(e.target.composing=!1,va(e.target,"input"))}function va(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function ya(e){return!e.componentInstance||e.data&&e.data.transition?e:ya(e.componentInstance._vnode)}var ha={bind:function(e,t,n){var r=t.value,o=(n=ya(n)).data&&n.data.transition,a=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&o?(n.data.show=!0,ta(n,(function(){e.style.display=a}))):e.style.display=r?a:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=ya(n)).data&&n.data.transition?(n.data.show=!0,r?ta(n,(function(){e.style.display=e.__vOriginalDisplay})):na(n,(function(){e.style.display="none"}))):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,o){o||(e.style.display=e.__vOriginalDisplay)}},ma={model:ua,show:ha},ba={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function ga(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?ga(At(t.children)):e}function _a(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var o=n._parentListeners;for(var a in o)t[S(a)]=o[a];return t}function wa(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var Oa=function(e){return e.tag||jt(e)},Pa=function(e){return"show"===e.name},xa={name:"transition",props:ba,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(Oa)).length){var r=this.mode,o=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return o;var a=ga(o);if(!a)return o;if(this._leaving)return wa(e,o);var i="__transition-".concat(this._uid,"-");a.key=null==a.key?a.isComment?i+"comment":i+a.tag:d(a.key)?0===String(a.key).indexOf(i)?a.key:i+a.key:a.key;var u=(a.data||(a.data={})).transition=_a(this),s=this._vnode,c=ga(s);if(a.data.directives&&a.data.directives.some(Pa)&&(a.data.show=!0),c&&c.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(a,c)&&!jt(c)&&(!c.componentInstance||!c.componentInstance._vnode.isComment)){var l=c.data.transition=I({},u);if("out-in"===r)return this._leaving=!0,rt(l,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),wa(e,o);if("in-out"===r){if(jt(a))return s;var f,p=function(){f()};rt(u,"afterEnter",p),rt(u,"enterCancelled",p),rt(l,"delayLeave",(function(e){f=e}))}}return o}}},ja=I({tag:String,moveClass:String},ba);delete ja.mode;var Ta={props:ja,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var o=jn(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,o(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],a=this.children=[],i=_a(this),u=0;u-1?Wr[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Wr[e]=/HTMLUnknownElement/.test(t.toString())},I(wr.options.directives,ma),I(wr.options.components,Da),wr.prototype.__patch__=Z?ia:A,wr.prototype.$mount=function(e,t){return function(e,t,n){var r;e.$el=t,e.$options.render||(e.$options.render=ye),Mn(e,"beforeMount"),r=function(){e._update(e._render(),n)},new gn(e,r,A,{before:function(){e._isMounted&&!e._isDestroyed&&Mn(e,"beforeUpdate")}},!0),n=!1;var o=e._preWatchers;if(o)for(var a=0;a0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return o.default.prototype.$marked=t,o.default.prototype.$speakData=e,o.default.prototype.$http=i.default,o.default.prototype.$eventHub=s,o.default.use(a.default,c),new o.default({render:function(e){return e(u.default)}}).$mount(e.el||"#ispeak")}},8126:function(){"use strict";var e=e||{};e.scope={},e.createTemplateTagFirstArg=function(e){return e.raw=e},e.createTemplateTagFirstArgWithRaw=function(e,t){return e.raw=t,e},e.arrayIteratorImpl=function(e){var t=0;return function(){return t\n \n

\n
\n
\n
\n
\n
\n
\n '+(n+1)+"/"+e.length+'\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n \n ',"text/html").body.firstChild,o=function(e){var t={Escape:"close",ArrowLeft:"tools__flip-prev",ArrowRight:"tools__flip-next"};t[e.key]&&r.querySelector(".view-image-"+t[e.key]).click()},a=function(e){var t=new Image,n=r.querySelector(".view-image-lead");n.className="view-image-lead view-image-lead__out",setTimeout((function(){n.innerHTML="",t.onload=function(){setTimeout((function(){n.innerHTML='ViewImage',n.className="view-image-lead view-image-lead__in"}),100)},t.src=e}),300)};document.body.appendChild(r),a(t),window.addEventListener("keydown",o),r.onclick=function(t){t.target.closest(".view-image-close")?(window.removeEventListener("keydown",o),r.onclick=null,r.classList.add("view-image__out"),setTimeout((function(){return r.remove()}),290)):t.target.closest(".view-image-tools__flip")&&(n=t.target.closest(".view-image-tools__flip-prev")?0===n?e.length-1:n-1:n===e.length-1?0:n+1,a(e[n]),r.querySelector(".view-image-index").innerHTML=n+1)}}}},7152:function(e,t,n){(t=n(8161)(!1)).push([e.id,'\n.xk-card[data-v-7d45a7d6] {\r\n padding: 15px 20px 2px;\r\n border-radius: 10px;\r\n background: rgba(255, 255, 255, 0.1);\r\n box-shadow: 0 0px 14px 2px rgb(7 17 27 / 6%);\r\n overflow: hidden;\r\n margin-top: 20px;\r\n user-select: none;\r\n position: relative;\r\n transition: all 0.15s ease-in-out;\n}\n.xk-card[data-v-7d45a7d6]:hover {\r\n box-shadow: 0 5px 10px 8px rgba(7, 17, 27, 0.16);\r\n transform: scale(1.015);\n}\n.xk-card .xk-card-time[data-v-7d45a7d6] {\r\n font-size: 12px;\r\n /* text-shadow: #d9d9d9 0 0 1px, #fffffb 0 0 1px, #fffffb 0 0 2px; */\r\n /* margin-left: 10px; */\r\n font-weight: 400;\r\n font-style: oblique;\n}\n.xk-card .xk-card-header[data-v-7d45a7d6] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.xk-card .xk-card-header .xk-card-name[data-v-7d45a7d6] {\r\n display: flex;\r\n align-items: center;\n}\n.xk-card .xk-card-header .xk-card-name .is-badge[data-v-7d45a7d6] {\r\n height: 20px;\r\n width: 20px;\r\n margin-left: 5px;\n}\n.xk-card .xk-card-header .xk-card-name .avatar[data-v-7d45a7d6] {\r\n width: 40px;\r\n height: 40px;\r\n margin-right: 10px;\n}\n.xk-card .xk-card-header .xk-card-name .name-info[data-v-7d45a7d6] {\r\n display: inline-flex;\r\n flex-direction: column;\r\n align-items: flex-start;\n}\n.xk-card .xk-card-header .xk-card-name .avatar-img[data-v-7d45a7d6] {\r\n width: 100%;\r\n height: unset;\r\n border-radius: 0.6em;\r\n box-shadow: 0px 0px 3px 0px #00000066;\n}\n.name[data-v-7d45a7d6] {\r\n font-weight: bold;\r\n transition: letter-spacing 0.2s ease;\n}\n.xk-card .xk-card-content[data-v-7d45a7d6] {\r\n padding: 0.8rem 0;\n}\n.xk-card-content > div > iframe[data-v-7d45a7d6] {\r\n width: 100% !important;\n}\n.dao-label[data-v-7d45a7d6] {\r\n color: var(--f4afac4a);\r\n font-weight: bold;\r\n font-style: oblique;\r\n font-size: 13px;\r\n background-color: var(--23240d2a);\r\n padding: 2px 6px;\r\n border-radius: 0.4em;\n}\n.dao-like[data-v-7d45a7d6] {\r\n display: inline-flex;\r\n align-items: center;\n}\n.like-svg[data-v-7d45a7d6] {\r\n cursor: pointer;\n}\n@media screen and (min-width: 768px) {\n#article-container .xk-card-content[data-v-7d45a7d6] .fancybox,\r\n #article-container .xk-card-content[data-v-7d45a7d6] video {\r\n display: inline-block;\r\n max-width: 50%;\n}\n}\n@media screen and (max-width: 768px) {\n#article-container .xk-card-content[data-v-7d45a7d6] .fancybox,\r\n #article-container .xk-card-content[data-v-7d45a7d6] video {\r\n display: inline-block;\r\n max-width: 100%;\n}\n}\n.xk-card .xk-card-footer[data-v-7d45a7d6] {\r\n display: flex;\r\n padding-bottom: 10px;\r\n justify-content: space-between;\n}\n.xk-card .xk-card-footer .xk-card-label[data-v-7d45a7d6] {\r\n height: fit-content;\r\n padding: 1px 5px;\r\n border-radius: 0.3rem;\r\n\r\n /* padding: 0 5px;\r\n font-weight: 600;\r\n line-height: 24px; */\r\n font-size: 12px;\r\n /* cursor: pointer;\r\n user-select: none;\r\n margin-right: 10px; */\n}\n.xk-card-header[data-v-7d45a7d6]::before {\r\n content: " ";\r\n width: 4.5px;\r\n height: 30px;\r\n background-color: var(--f4afac4a);\r\n position: absolute;\r\n left: 0px;\r\n border-top-right-radius: 5px;\r\n border-bottom-right-radius: 5px;\r\n transition: height 0.2s ease;\n}\n.xk-card-label > span[data-v-7d45a7d6]::before {\r\n content: " ";\r\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAAEvElEQVR4nO2aT2zbVBzHP892kiZuGK2hYUXTVqRqVO0FDkyCE5uGEEi7TOJSisQBxoEJ0MR2GxO7ICHQJv6IjQPSChdOlD8TQmxHxMSBSyc2/mxllHTtllRakrZpbD8OadPW6dYkfrEbls+pec9+/n2+9rMT90GbNm3atGnT5m5FHDv2ZTR5M38cxAiwNeyCAiKNYDRnmUeNZKbwNojDYVcUML1IjiQzBQwkIwADz+6is6cr7MICITc9y6WzF0AyogG9wF0jD5BMVVx7DW/nb99dID8zG2xFikimunj4mV3A+h6r+5epBKCnLABELNLsOptGLB6lr/8BAK4mouQ9/UbHSv8vy23eQQaH9zazxpowhKDH1DE0saY9O++QL7mVz4mIhhXXEZ79HQkDw3spObLS1h3X6YxoVceqbgkZFfIzc3ZN8rDJAghaHjZRAH7kTc1pSB4UBrDDlBtvdBv8yCc0hy7DprBYvzwoCsCKQW9cYsXq39eP/BbdptuwARhIOvTEygHUKg8KArBi0GeWC+0z3bpC8Dvns7ZBer7c+mdOMFMUdcnDOo/BethhSnrjK5ddVIOdSZe0IZgoeMv1HFjRDc92BFLCjQbkwWcAEwVBzhb0mS5RDRZduFrQyBQ3OKjiu/3fc43Jg4IpkCmWpQGuhCAP9c35qnoa2stDpghpQ5BtMXlQ+BgMas6rlAdFV8BG6EKQ6tTRxVqtzLxDYZW8uSTvxZUwXbCx3RV5K65j+pSHAAJYPvNe+axHPhHR6F5HvnK3d9eeeT/yswtO5e+mfhXejJf97IJDbnHl2E0LoBXkoUkBtIo8NCGAVpIHxQG0mjwoDKAV5UFRAH7khQhPHhQE4EsesIwSt4rhyIPPAPxe9p2aTYdw2R530Zc6g5QHH98EVcz533OwNSaYnBe4Mnh5aDAAlTe8a3Pl3jDkoYEp0Kp3+9tR11H/b/JQRwCbQf6+Ux9hnf648nl2weH4P19xcvqbNduNXZph7PJMTWNW7gE/v/NFzYUExT2pe3nq4D40rRxS5NpEpW/5zF8tTlftdz1f/Wrq4ugP5P69UdUeyAuRRnFLLpnrWYQoB7C8fufmVBaAxKptE4Vc1f6r23S5/jSpBLD74D6f5Tafua3b8M6tfuN+PO9aeDBhVE3BR/c/sebz+Q++Bjb5FeDlr/3PV7Ud3rKnqu257Z01j1kJIJdfbLCs1kYD0lBeOHS3kF9xTRsIRpEcuXT2Qpg1hYKAM0bOMo8mMwWWlsv1hl1UQKQRjN6yzLfu/N8Mhbz36mcSwNo9dMftMufHATj04YuB1LZpVoiERTuAsAsIG+Xz7NTLpxL5aPSQlAwLwUOA35WXJSm5omnyc7NYev/A6QNzKupcRmkA775ypkcz7O9BPKJy3BXkr65tPP3mJy/U9lOvBpQFcOK1T1OOY5wDBiOJqNs1uE3rsDoRur9ZJh2XhUye7PiktOeLArio6/ae10++VP0zsAGUBFA+8+45kEORRKyYerw/pitec+wu2kz99EfRLizEpOSyHjGefOPEyJTfcZX8GNIizrdIhgBKc8XY5I/jKoZdjxiAEOx0HXsMeMzvgGqeAq70LsxuOkJS/QKgTZs2berkP82M1TLgT8x4AAAAAElFTkSuQmCC");\n}\n.xk-card:hover .xk-card-header[data-v-7d45a7d6]::before {\r\n height: 45px;\n}\n.xk-card:hover .xk-card-header .name[data-v-7d45a7d6] {\r\n letter-spacing: 1px;\n}\r\n',""]),e.exports=t},3355:function(e,t,n){(t=n(8161)(!1)).push([e.id,"\n.xk-footer[data-v-5b309de0] {\r\n width: 100%;\r\n text-align: end;\r\n font-size: 0.75em;\r\n color: #999999;\r\n margin-top: 1em;\n}\r\n",""]),e.exports=t},374:function(e,t,n){(t=n(8161)(!1)).push([e.id,'\n.xk-info[data-v-4fed8636] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.xk-info .count[data-v-4fed8636] {\r\n font-weight: 700;\r\n font-size: 16px;\r\n /* color: #49b1f5; */\n}\n.xk-info .count i[data-v-4fed8636] {\r\n /* color: black; */\r\n font-size: 20px;\n}\n@font-face {\r\n font-family: "iconfont";\r\n src: url("//at.alicdn.com/t/font_2434936_h1orv7ic88t.eot?t=1616336275189"); /* IE9 */\r\n src: url("//at.alicdn.com/t/font_2434936_h1orv7ic88t.eot?t=1616336275189#iefix")\r\n format("embedded-opentype"),\r\n /* IE6-IE8 */\r\n url("data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAMUAAsAAAAABswAAALIAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCcAqBWIFdATYCJAMICwYABCAFhG0HMBsDBsiemjwpUokNLPAZtJlEAoQIov3Yz947VJNLIopHtaRJSyVBhhYowRL5awlvck0zIE7JjQhkMf8FTPMDhUDn5xDUpuZ2E47y4rM+PUz6Di6nP8VbB5TLHJPHBAwsDXCsRZEVSGDeIruI7YlHxHECtXr4M1jLzC8H5jIYF4hbGS0E5g2vLBuJaqGSsjSLFxWq01O6BsBz9v34D0LDnKSiACXbNxkSkPyrB1OMGsoG5wmCt5wZxioKTAEysU+1bjIqolOM1HpRYwPAsQqDX/7LhHvYPx5BVIL8etAlc5+JF/EfNT+BXHSvAy4mXU2aIe6KHBubHndZtXp7q3r9rnz+LG942RidnFhxDUOv0Xh0TCvpfvkKeWkoP6BPE3RtTXlVja+vjjqXj4y6FSxNPCFP/9cWMbjH+Vr8HJw1ut80qkdWEp41nEkP1fYpibiTYR+wW5ODOSm89IJsVvIfIxgL2yCsVPRXsw6wUuzttbP2T3cpoRceFtw8Qi9NSOn5G8O6c2SUFT+SAZQfxUoR8HN/47U4O+XbzW1el8HP1cOZu/zIYJgdqL4FW/AreQObsi8AXcouj2pP1ieFE2oxQAmcrT6mKjvuOxmqddy9vUp3BYVqQ2gmp6BCnVmoVG0Rak3KWl2nDWYkcg0mtEoQmu1D0ugdCs1u0Ey+Q4VO31CpOYyg1mG0bVlnJGSWqxgJCZJAUR2UiTVqihiIZV5YimhGKcR1QUapRFgvC8CQwOB2IgupEV5ihr6aDiWEghTWqGCmdBpSKjVQizVyJCaBUkK0sUFBFO1NgWKNClhahSFCBCIBidSBZMQ01KikM2HZ+XwphMZQEsKcsh5zJQTTk/UOhQgUPADNkqoHlT3KK3rVaKEIggJRMA0VKFMahCgpaUBa+iA5RIwIJJ0Q1ooVhO2oodLA7eWqH8gxqgBVCuxXqHyUqZWMGgA=")\r\n format("woff2"),\r\n url("//at.alicdn.com/t/font_2434936_h1orv7ic88t.woff?t=1616336275189")\r\n format("woff"),\r\n url("//at.alicdn.com/t/font_2434936_h1orv7ic88t.ttf?t=1616336275189")\r\n format("truetype"),\r\n /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */\r\n url("//at.alicdn.com/t/font_2434936_h1orv7ic88t.svg?t=1616336275189#iconfont")\r\n format("svg"); /* iOS 4.1- */\n}\n.iconfont[data-v-4fed8636] {\r\n font-family: "iconfont" !important;\r\n font-size: 16px;\r\n font-style: normal;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\n}\n@keyframes change-4fed8636 {\n0% {\r\n color: rgb(255, 0, 0);\r\n text-shadow: 0 0 5px rgb(255, 0, 0), 0 0 10px rgb(255, 0, 0),\r\n 0 0 15px rgb(255, 0, 0);\n}\n10% {\r\n color: rgb(255, 187, 0);\r\n text-shadow: 0 0 5px rgb(255, 187, 0), 0 0 10px rgb(255, 187, 0),\r\n 0 0 15px rgb(255, 187, 0);\n}\n20% {\r\n color: rgb(72, 255, 0);\r\n text-shadow: 0 0 5px rgb(72, 255, 0), 0 0 10px rgb(72, 255, 0),\r\n 0 0 15px rgb(72, 255, 0);\n}\n30% {\r\n color: rgb(0, 162, 255);\r\n text-shadow: 0 0 5px rgb(0, 162, 255), 0 0 10px rgb(0, 162, 255),\r\n 0 0 25px rgb(0, 162, 255);\n}\n40% {\r\n color: rgb(0, 60, 255);\r\n text-shadow: 0 0 5px rgb(0, 60, 255), 0 0 10px rgb(0, 60, 255),\r\n 0 0 15px rgb(0, 60, 255);\n}\n50% {\r\n color: rgb(0, 60, 255);\r\n text-shadow: 0 0 5px rgb(0, 60, 255), 0 0 10px rgb(0, 60, 255),\r\n 0 0 15px rgb(0, 60, 255);\n}\n60% {\r\n color: rgb(183, 0, 255);\r\n text-shadow: 0 0 5px rgb(183, 0, 255), 0 0 15px rgb(183, 0, 255),\r\n 0 0 15px rgb(183, 0, 255);\n}\n70% {\r\n color: rgb(0, 255, 213);\r\n text-shadow: 0 0 5px rgb(0, 255, 213), 0 0 15px rgb(0, 255, 213),\r\n 0 0 25px rgb(0, 255, 213);\n}\n80% {\r\n color: rgb(0, 26, 255);\r\n text-shadow: 0 0 5px rgb(0, 26, 255), 0 0 10px rgb(0, 26, 255),\r\n 0 0 15px rgb(0, 26, 255);\n}\n90% {\r\n color: rgb(212, 0, 255);\r\n text-shadow: 0 0 5px rgb(212, 0, 255), 0 0 10px rgb(212, 0, 255),\r\n 0 0 15px rgb(212, 0, 255);\n}\n100% {\r\n color: rgb(255, 0, 0);\r\n text-shadow: 0 0 5px rgb(255, 0, 0), 0 0 10px rgb(255, 0, 0),\r\n 0 0 15px rgb(255, 0, 0);\n}\n}\n.icon-pinlun[data-v-4fed8636]:before {\r\n content: "\\e61e";\r\n animation: change-4fed8636 5s linear 0s infinite;\r\n font-size: larger;\n}\r\n',""]),e.exports=t},1030:function(e,t,n){(t=n(8161)(!1)).push([e.id,"\n.bbddloading-inner[data-v-5103719c] {\r\n height: 100px;\r\n margin: auto;\r\n position: relative;\r\n width: 100px;\n}\n.bbddloading-line-wrap[data-v-5103719c] {\r\n animation: spin-5103719c 2000ms cubic-bezier(0.175, 0.885, 0.32, 1.275) infinite;\r\n box-sizing: border-box;\r\n height: 50px;\r\n left: 0;\r\n overflow: hidden;\r\n position: absolute;\r\n top: 0;\r\n transform-origin: 50% 100%;\r\n width: 100px;\n}\n.bbddloading-line[data-v-5103719c] {\r\n border: 4px solid transparent;\r\n border-radius: 100%;\r\n box-sizing: border-box;\r\n height: 100px;\r\n left: 0;\r\n margin: 0 auto;\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n width: 100px;\n}\n.bbddloading-line-wrap[data-v-5103719c]:nth-child(1) {\r\n animation-delay: -50ms;\n}\n.bbddloading-line-wrap[data-v-5103719c]:nth-child(2) {\r\n animation-delay: -100ms;\n}\n.bbddloading-line-wrap[data-v-5103719c]:nth-child(3) {\r\n animation-delay: -150ms;\n}\n.bbddloading-line-wrap[data-v-5103719c]:nth-child(4) {\r\n animation-delay: -200ms;\n}\n.bbddloading-line-wrap[data-v-5103719c]:nth-child(5) {\r\n animation-delay: -250ms;\n}\n.bbddloading-line-wrap:nth-child(1) .bbddloading-line[data-v-5103719c] {\r\n border-color: hsl(0, 80%, 60%);\r\n height: 90px;\r\n width: 90px;\r\n top: 7px;\n}\n.bbddloading-line-wrap:nth-child(2) .bbddloading-line[data-v-5103719c] {\r\n border-color: hsl(60, 80%, 60%);\r\n height: 76px;\r\n width: 76px;\r\n top: 14px;\n}\n.bbddloading-line-wrap:nth-child(3) .bbddloading-line[data-v-5103719c] {\r\n border-color: hsl(120, 80%, 60%);\r\n height: 62px;\r\n width: 62px;\r\n top: 21px;\n}\n.bbddloading-line-wrap:nth-child(4) .bbddloading-line[data-v-5103719c] {\r\n border-color: hsl(180, 80%, 60%);\r\n height: 48px;\r\n width: 48px;\r\n top: 28px;\n}\n.bbddloading-line-wrap:nth-child(5) .bbddloading-line[data-v-5103719c] {\r\n border-color: hsl(240, 80%, 60%);\r\n height: 34px;\r\n width: 34px;\r\n top: 35px;\n}\n@keyframes spin-5103719c {\n0%,\r\n 15% {\r\n transform: rotate(0);\n}\n100% {\r\n transform: rotate(360deg);\n}\n}\n.list-enter-active[data-v-5103719c],\r\n.list-leave-active[data-v-5103719c] {\r\n transition: all 0.2s cubic-bezier(0.55, 0.085, 0.68, 0.53);\r\n transform-origin: 50% 50%;\n}\n.list-enter[data-v-5103719c],\r\n.list-leave-to[data-v-5103719c] {\r\n transform-origin: 50% 50%;\r\n transform: scaleY(0) translateZ(0);\r\n opacity: 0;\n}\n.loading[data-v-5103719c] {\r\n text-align: center;\r\n padding: 20px;\n}\n@keyframes Gradient-5103719c {\n0% {\r\n background-position: 0 50%;\n}\n50% {\r\n background-position: 100% 50%;\n}\nto {\r\n background-position: 0 50%;\n}\n}\n.push-btn.color-1[data-v-5103719c] {\r\n background-image: linear-gradient(\r\n to right,\r\n #29323c,\r\n #485563,\r\n #2b5876,\r\n #4e4376\r\n );\r\n box-shadow: 0 4px 15px 0 rgba(45, 54, 65, 0.75);\n}\n.btn-area[data-v-5103719c] {\r\n text-align: center;\n}\n.push-btn[data-v-5103719c] {\r\n width: 148px;\r\n font-size: 16px;\r\n font-weight: 600;\r\n color: #fff;\r\n cursor: pointer;\r\n margin: 20px;\r\n height: 55px;\r\n text-align: center;\r\n border: none;\r\n background-size: 300% 100%;\r\n\r\n border-radius: 50px;\r\n moz-transition: all 0.4s ease-in-out;\r\n -o-transition: all 0.4s ease-in-out;\r\n -webkit-transition: all 0.4s ease-in-out;\r\n transition: all 0.4s ease-in-out;\n}\n.push-btn[data-v-5103719c]:hover {\r\n background-position: 100% 0;\r\n moz-transition: all 0.4s ease-in-out;\r\n -o-transition: all 0.4s ease-in-out;\r\n -webkit-transition: all 0.4s ease-in-out;\r\n transition: all 0.4s ease-in-out;\n}\n.push-btn[data-v-5103719c]:focus {\r\n outline: none;\n}\r\n",""]),e.exports=t},5588:function(e,t,n){(t=n(8161)(!1)).push([e.id,'.Vue-Toastification__container {\n z-index: 9999;\n position: fixed;\n padding: 4px;\n width: 600px;\n box-sizing: border-box;\n display: flex;\n min-height: 100%;\n color: #fff;\n flex-direction: column;\n pointer-events: none;\n}\n@media only screen and (min-width : 600px) {\n .Vue-Toastification__container.top-left, .Vue-Toastification__container.top-right, .Vue-Toastification__container.top-center {\n top: 1em;\n }\n .Vue-Toastification__container.bottom-left, .Vue-Toastification__container.bottom-right, .Vue-Toastification__container.bottom-center {\n bottom: 1em;\n flex-direction: column-reverse;\n }\n .Vue-Toastification__container.top-left, .Vue-Toastification__container.bottom-left {\n left: 1em;\n }\n .Vue-Toastification__container.top-left .Vue-Toastification__toast, .Vue-Toastification__container.bottom-left .Vue-Toastification__toast {\n margin-right: auto;\n }\n @supports not (-moz-appearance: none) {\n .Vue-Toastification__container.top-left .Vue-Toastification__toast--rtl, .Vue-Toastification__container.bottom-left .Vue-Toastification__toast--rtl {\n margin-right: unset;\n margin-left: auto;\n }\n }\n .Vue-Toastification__container.top-right, .Vue-Toastification__container.bottom-right {\n right: 1em;\n }\n .Vue-Toastification__container.top-right .Vue-Toastification__toast, .Vue-Toastification__container.bottom-right .Vue-Toastification__toast {\n margin-left: auto;\n }\n @supports not (-moz-appearance: none) {\n .Vue-Toastification__container.top-right .Vue-Toastification__toast--rtl, .Vue-Toastification__container.bottom-right .Vue-Toastification__toast--rtl {\n margin-left: unset;\n margin-right: auto;\n }\n }\n .Vue-Toastification__container.top-center, .Vue-Toastification__container.bottom-center {\n left: 50%;\n margin-left: -300px;\n }\n .Vue-Toastification__container.top-center .Vue-Toastification__toast, .Vue-Toastification__container.bottom-center .Vue-Toastification__toast {\n margin-left: auto;\n margin-right: auto;\n }\n}\n@media only screen and (max-width : 600px) {\n .Vue-Toastification__container {\n width: 100vw;\n padding: 0;\n left: 0;\n margin: 0;\n }\n .Vue-Toastification__container .Vue-Toastification__toast {\n width: 100%;\n }\n .Vue-Toastification__container.top-left, .Vue-Toastification__container.top-right, .Vue-Toastification__container.top-center {\n top: 0;\n }\n .Vue-Toastification__container.bottom-left, .Vue-Toastification__container.bottom-right, .Vue-Toastification__container.bottom-center {\n bottom: 0;\n flex-direction: column-reverse;\n }\n}\n\n.Vue-Toastification__toast {\n display: inline-flex;\n position: relative;\n max-height: 800px;\n min-height: 64px;\n box-sizing: border-box;\n margin-bottom: 1rem;\n padding: 22px 24px;\n border-radius: 8px;\n box-shadow: 0 1px 10px 0 rgba(0, 0, 0, 0.1), 0 2px 15px 0 rgba(0, 0, 0, 0.05);\n justify-content: space-between;\n font-family: "Lato", Helvetica, "Roboto", Arial, sans-serif;\n max-width: 600px;\n min-width: 326px;\n pointer-events: auto;\n overflow: hidden;\n transform: translateZ(0);\n direction: ltr;\n}\n.Vue-Toastification__toast--rtl {\n direction: rtl;\n}\n.Vue-Toastification__toast--default {\n background-color: #1976d2;\n color: #fff;\n}\n.Vue-Toastification__toast--info {\n background-color: #2196f3;\n color: #fff;\n}\n.Vue-Toastification__toast--success {\n background-color: #4caf50;\n color: #fff;\n}\n.Vue-Toastification__toast--error {\n background-color: #ff5252;\n color: #fff;\n}\n.Vue-Toastification__toast--warning {\n background-color: #ffc107;\n color: #fff;\n}\n@media only screen and (max-width : 600px) {\n .Vue-Toastification__toast {\n border-radius: 0px;\n margin-bottom: 0.5rem;\n }\n}\n.Vue-Toastification__toast-body {\n flex: 1;\n line-height: 24px;\n font-size: 16px;\n word-break: break-word;\n white-space: pre-wrap;\n}\n.Vue-Toastification__toast-component-body {\n flex: 1;\n}\n.Vue-Toastification__toast.disable-transition {\n transition: none !important;\n animation: none !important;\n}\n\n.Vue-Toastification__close-button {\n font-weight: bold;\n font-size: 24px;\n line-height: 24px;\n background: transparent;\n outline: none;\n border: none;\n padding: 0;\n padding-left: 10px;\n cursor: pointer;\n transition: 0.3s ease;\n align-items: center;\n color: #fff;\n opacity: 0.3;\n transition: visibility 0s, opacity 0.2s linear;\n}\n.Vue-Toastification__close-button:hover, .Vue-Toastification__close-button:focus {\n opacity: 1;\n}\n.Vue-Toastification__toast:not(:hover) .Vue-Toastification__close-button.show-on-hover {\n opacity: 0;\n}\n.Vue-Toastification__toast--rtl .Vue-Toastification__close-button {\n padding-left: unset;\n padding-right: 10px;\n}\n\n@keyframes scale-x-frames {\n 0% {\n transform: scaleX(1);\n }\n 100% {\n transform: scaleX(0);\n }\n}\n.Vue-Toastification__progress-bar {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 5px;\n z-index: 10000;\n background-color: rgba(255, 255, 255, 0.7);\n transform-origin: left;\n animation: scale-x-frames linear 1 forwards;\n}\n.Vue-Toastification__toast--rtl .Vue-Toastification__progress-bar {\n right: 0;\n left: unset;\n transform-origin: right;\n}\n\n.Vue-Toastification__icon {\n margin: auto 18px auto 0px;\n background: transparent;\n outline: none;\n border: none;\n padding: 0;\n transition: 0.3s ease;\n align-items: center;\n width: 20px;\n height: 100%;\n}\n.Vue-Toastification__toast--rtl .Vue-Toastification__icon {\n margin: auto 0px auto 18px;\n}\n\n@keyframes bounceInRight {\n from, 60%, 75%, 90%, to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n transform: translate3d(3000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(-25px, 0, 0);\n }\n 75% {\n transform: translate3d(10px, 0, 0);\n }\n 90% {\n transform: translate3d(-5px, 0, 0);\n }\n to {\n transform: none;\n }\n}\n@keyframes bounceOutRight {\n 40% {\n opacity: 1;\n transform: translate3d(-20px, 0, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(1000px, 0, 0);\n }\n}\n@keyframes bounceInLeft {\n from, 60%, 75%, 90%, to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: translate3d(-3000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(25px, 0, 0);\n }\n 75% {\n transform: translate3d(-10px, 0, 0);\n }\n 90% {\n transform: translate3d(5px, 0, 0);\n }\n to {\n transform: none;\n }\n}\n@keyframes bounceOutLeft {\n 20% {\n opacity: 1;\n transform: translate3d(20px, 0, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n}\n@keyframes bounceInUp {\n from, 60%, 75%, 90%, to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n transform: translate3d(0, 3000px, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(0, -20px, 0);\n }\n 75% {\n transform: translate3d(0, 10px, 0);\n }\n 90% {\n transform: translate3d(0, -5px, 0);\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes bounceOutUp {\n 20% {\n transform: translate3d(0, -10px, 0);\n }\n 40%, 45% {\n opacity: 1;\n transform: translate3d(0, 20px, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n}\n@keyframes bounceInDown {\n from, 60%, 75%, 90%, to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: translate3d(0, -3000px, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(0, 25px, 0);\n }\n 75% {\n transform: translate3d(0, -10px, 0);\n }\n 90% {\n transform: translate3d(0, 5px, 0);\n }\n to {\n transform: none;\n }\n}\n@keyframes bounceOutDown {\n 20% {\n transform: translate3d(0, 10px, 0);\n }\n 40%, 45% {\n opacity: 1;\n transform: translate3d(0, -20px, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n}\n.Vue-Toastification__bounce-enter-active.top-left, .Vue-Toastification__bounce-enter-active.bottom-left {\n animation-name: bounceInLeft;\n}\n.Vue-Toastification__bounce-enter-active.top-right, .Vue-Toastification__bounce-enter-active.bottom-right {\n animation-name: bounceInRight;\n}\n.Vue-Toastification__bounce-enter-active.top-center {\n animation-name: bounceInDown;\n}\n.Vue-Toastification__bounce-enter-active.bottom-center {\n animation-name: bounceInUp;\n}\n\n.Vue-Toastification__bounce-leave-active.top-left, .Vue-Toastification__bounce-leave-active.bottom-left {\n animation-name: bounceOutLeft;\n}\n.Vue-Toastification__bounce-leave-active.top-right, .Vue-Toastification__bounce-leave-active.bottom-right {\n animation-name: bounceOutRight;\n}\n.Vue-Toastification__bounce-leave-active.top-center {\n animation-name: bounceOutUp;\n}\n.Vue-Toastification__bounce-leave-active.bottom-center {\n animation-name: bounceOutDown;\n}\n\n.Vue-Toastification__bounce-move {\n transition-timing-function: ease-in-out;\n transition-property: all;\n transition-duration: 400ms;\n}\n\n/* ----------------------------------------------\n * Modified version from Animista\n * Animista is Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n@keyframes fadeOutTop {\n 0% {\n transform: translateY(0);\n opacity: 1;\n }\n 100% {\n transform: translateY(-50px);\n opacity: 0;\n }\n}\n@keyframes fadeOutLeft {\n 0% {\n transform: translateX(0);\n opacity: 1;\n }\n 100% {\n transform: translateX(-50px);\n opacity: 0;\n }\n}\n@keyframes fadeOutBottom {\n 0% {\n transform: translateY(0);\n opacity: 1;\n }\n 100% {\n transform: translateY(50px);\n opacity: 0;\n }\n}\n@keyframes fadeOutRight {\n 0% {\n transform: translateX(0);\n opacity: 1;\n }\n 100% {\n transform: translateX(50px);\n opacity: 0;\n }\n}\n@keyframes fadeInLeft {\n 0% {\n transform: translateX(-50px);\n opacity: 0;\n }\n 100% {\n transform: translateX(0);\n opacity: 1;\n }\n}\n@keyframes fadeInRight {\n 0% {\n transform: translateX(50px);\n opacity: 0;\n }\n 100% {\n transform: translateX(0);\n opacity: 1;\n }\n}\n@keyframes fadeInTop {\n 0% {\n transform: translateY(-50px);\n opacity: 0;\n }\n 100% {\n transform: translateY(0);\n opacity: 1;\n }\n}\n@keyframes fadeInBottom {\n 0% {\n transform: translateY(50px);\n opacity: 0;\n }\n 100% {\n transform: translateY(0);\n opacity: 1;\n }\n}\n.Vue-Toastification__fade-enter-active.top-left, .Vue-Toastification__fade-enter-active.bottom-left {\n animation-name: fadeInLeft;\n}\n.Vue-Toastification__fade-enter-active.top-right, .Vue-Toastification__fade-enter-active.bottom-right {\n animation-name: fadeInRight;\n}\n.Vue-Toastification__fade-enter-active.top-center {\n animation-name: fadeInTop;\n}\n.Vue-Toastification__fade-enter-active.bottom-center {\n animation-name: fadeInBottom;\n}\n\n.Vue-Toastification__fade-leave-active.top-left, .Vue-Toastification__fade-leave-active.bottom-left {\n animation-name: fadeOutLeft;\n}\n.Vue-Toastification__fade-leave-active.top-right, .Vue-Toastification__fade-leave-active.bottom-right {\n animation-name: fadeOutRight;\n}\n.Vue-Toastification__fade-leave-active.top-center {\n animation-name: fadeOutTop;\n}\n.Vue-Toastification__fade-leave-active.bottom-center {\n animation-name: fadeOutBottom;\n}\n\n.Vue-Toastification__fade-move {\n transition-timing-function: ease-in-out;\n transition-property: all;\n transition-duration: 400ms;\n}\n\n/* ----------------------------------------------\n * Modified version from Animista\n * Animista is Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n@keyframes slideInBlurredLeft {\n 0% {\n transform: translateX(-1000px) scaleX(2.5) scaleY(0.2);\n transform-origin: 100% 50%;\n filter: blur(40px);\n opacity: 0;\n }\n 100% {\n transform: translateX(0) scaleY(1) scaleX(1);\n transform-origin: 50% 50%;\n filter: blur(0);\n opacity: 1;\n }\n}\n@keyframes slideInBlurredTop {\n 0% {\n transform: translateY(-1000px) scaleY(2.5) scaleX(0.2);\n transform-origin: 50% 0%;\n filter: blur(240px);\n opacity: 0;\n }\n 100% {\n transform: translateY(0) scaleY(1) scaleX(1);\n transform-origin: 50% 50%;\n filter: blur(0);\n opacity: 1;\n }\n}\n@keyframes slideInBlurredRight {\n 0% {\n transform: translateX(1000px) scaleX(2.5) scaleY(0.2);\n transform-origin: 0% 50%;\n filter: blur(40px);\n opacity: 0;\n }\n 100% {\n transform: translateX(0) scaleY(1) scaleX(1);\n transform-origin: 50% 50%;\n filter: blur(0);\n opacity: 1;\n }\n}\n@keyframes slideInBlurredBottom {\n 0% {\n transform: translateY(1000px) scaleY(2.5) scaleX(0.2);\n transform-origin: 50% 100%;\n filter: blur(240px);\n opacity: 0;\n }\n 100% {\n transform: translateY(0) scaleY(1) scaleX(1);\n transform-origin: 50% 50%;\n filter: blur(0);\n opacity: 1;\n }\n}\n@keyframes slideOutBlurredTop {\n 0% {\n transform: translateY(0) scaleY(1) scaleX(1);\n transform-origin: 50% 0%;\n filter: blur(0);\n opacity: 1;\n }\n 100% {\n transform: translateY(-1000px) scaleY(2) scaleX(0.2);\n transform-origin: 50% 0%;\n filter: blur(240px);\n opacity: 0;\n }\n}\n@keyframes slideOutBlurredBottom {\n 0% {\n transform: translateY(0) scaleY(1) scaleX(1);\n transform-origin: 50% 50%;\n filter: blur(0);\n opacity: 1;\n }\n 100% {\n transform: translateY(1000px) scaleY(2) scaleX(0.2);\n transform-origin: 50% 100%;\n filter: blur(240px);\n opacity: 0;\n }\n}\n@keyframes slideOutBlurredLeft {\n 0% {\n transform: translateX(0) scaleY(1) scaleX(1);\n transform-origin: 50% 50%;\n filter: blur(0);\n opacity: 1;\n }\n 100% {\n transform: translateX(-1000px) scaleX(2) scaleY(0.2);\n transform-origin: 100% 50%;\n filter: blur(40px);\n opacity: 0;\n }\n}\n@keyframes slideOutBlurredRight {\n 0% {\n transform: translateX(0) scaleY(1) scaleX(1);\n transform-origin: 50% 50%;\n filter: blur(0);\n opacity: 1;\n }\n 100% {\n transform: translateX(1000px) scaleX(2) scaleY(0.2);\n transform-origin: 0% 50%;\n filter: blur(40px);\n opacity: 0;\n }\n}\n.Vue-Toastification__slideBlurred-enter-active.top-left, .Vue-Toastification__slideBlurred-enter-active.bottom-left {\n animation-name: slideInBlurredLeft;\n}\n.Vue-Toastification__slideBlurred-enter-active.top-right, .Vue-Toastification__slideBlurred-enter-active.bottom-right {\n animation-name: slideInBlurredRight;\n}\n.Vue-Toastification__slideBlurred-enter-active.top-center {\n animation-name: slideInBlurredTop;\n}\n.Vue-Toastification__slideBlurred-enter-active.bottom-center {\n animation-name: slideInBlurredBottom;\n}\n\n.Vue-Toastification__slideBlurred-leave-active.top-left, .Vue-Toastification__slideBlurred-leave-active.bottom-left {\n animation-name: slideOutBlurredLeft;\n}\n.Vue-Toastification__slideBlurred-leave-active.top-right, .Vue-Toastification__slideBlurred-leave-active.bottom-right {\n animation-name: slideOutBlurredRight;\n}\n.Vue-Toastification__slideBlurred-leave-active.top-center {\n animation-name: slideOutBlurredTop;\n}\n.Vue-Toastification__slideBlurred-leave-active.bottom-center {\n animation-name: slideOutBlurredBottom;\n}\n\n.Vue-Toastification__slideBlurred-move {\n transition-timing-function: ease-in-out;\n transition-property: all;\n transition-duration: 400ms;\n}',""]),e.exports=t},4166:function(e,t,n){"use strict";n.r(t),n.d(t,{__esModule:function(){return o.X},default:function(){return i}});var r=n(9990),o=n(3294),a=o.Z,i=(0,n(1900).Z)(a,r.sY,r.xk,!1,null,"c0a7b186",null).exports},9414:function(e,t,n){"use strict";n.r(t),n.d(t,{__esModule:function(){return o.X},default:function(){return i}});var r=n(5957),o=n(4764),a=o.Z,i=(n(6777),(0,n(1900).Z)(a,r.sY,r.xk,!1,null,"7d45a7d6",null).exports)},5930:function(e,t,n){"use strict";n.r(t),n.d(t,{__esModule:function(){return o.X},default:function(){return i}});var r=n(8497),o=n(6049),a=o.Z,i=(n(2801),(0,n(1900).Z)(a,r.sY,r.xk,!1,null,"5b309de0",null).exports)},1291:function(e,t,n){"use strict";n.r(t),n.d(t,{__esModule:function(){return o.X},default:function(){return i}});var r=n(547),o=n(5997),a=o.Z,i=(n(9361),(0,n(1900).Z)(a,r.sY,r.xk,!1,null,"4fed8636",null).exports)},4649:function(e,t,n){"use strict";n.r(t),n.d(t,{__esModule:function(){return o.X},default:function(){return i}});var r=n(9674),o=n(934),a=o.Z,i=(n(6731),(0,n(1900).Z)(a,r.sY,r.xk,!1,null,"5103719c",null).exports)},1900:function(e,t,n){"use strict";function r(e,t,n,r,o,a,i,u){var s,c="function"==typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),r&&(c.functional=!0),a&&(c._scopeId="data-v-"+a),i?(s=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},c._ssrRegister=s):o&&(s=u?function(){o.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:o),s)if(c.functional){c._injectStyles=s;var l=c.render;c.render=function(e,t){return s.call(t),l(e,t)}}else{var f=c.beforeCreate;c.beforeCreate=f?[].concat(f,s):[s]}return{exports:e,options:c}}n.d(t,{Z:function(){return r}})},6777:function(e,t,n){var r=n(7152);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals),(0,n(7913).Z)("084c8940",r,!1,{})},2801:function(e,t,n){var r=n(3355);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals),(0,n(7913).Z)("171c514a",r,!1,{})},9361:function(e,t,n){var r=n(374);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals),(0,n(7913).Z)("31093e88",r,!1,{})},6731:function(e,t,n){var r=n(1030);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals),(0,n(7913).Z)("875cfc92",r,!1,{})},8726:function(e,t,n){var r=n(5588);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals),(0,n(7913).Z)("100436cf",r,!1,{})},7913:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(8666),o="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!o)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var a={},i=o&&(document.head||document.getElementsByTagName("head")[0]),u=null,s=0,c=!1,l=function(){},f=null,d="data-vue-ssr-id",p="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function v(e,t,n,o){c=n,f=o||{};var i=(0,r.Z)(e,t);return y(i),function(t){for(var n=[],o=0;on.parts.length&&(r.parts.length=n.parts.length)}else{var i=[];for(o=0;o=0;--r){var o=this.tryEntries[r],i=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var u=a.call(o,"catchLoc"),s=a.call(o,"finallyLoc");if(u&&s){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&a.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),j(n),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;j(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:k(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),p}},t}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},9767:function(e){"use strict";function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},818:function(e,t,n){"use strict";var r=n(3330)(n(9767)),o=n(9207)();e.exports=o;try{regeneratorRuntime=o}catch(e){"object"===("undefined"==typeof globalThis?"undefined":(0,r.default)(globalThis))?globalThis.regeneratorRuntime=o:Function("r","regeneratorRuntime = r")(o)}},8593:function(e){"use strict";e.exports=JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}]}')},4147:function(e){"use strict";e.exports=JSON.parse('{"name":"qexo-daodao","version":"1.0.2","warehouse":"https://github.com/Uyoahz26/daodao","description":"基于Qexo的叨叨展示","main":"dist/qexo-daodao.min.js","dependencies":{"@cloudbase/js-sdk":"^1.4.1","axios":"^0.21.4","date-fns":"^2.29.3","marked":"^2.0.0","timeago.js":"^4.0.2","vue":"^2.6.12","vue-toastification":"^1.7.14"},"devDependencies":{"@babel/cli":"^7.12.13","@babel/core":"^7.12.13","@babel/plugin-transform-modules-commonjs":"^7.12.13","@babel/plugin-transform-runtime":"^7.12.15","@babel/preset-env":"^7.12.13","@babel/runtime":"^7.12.13","@webpack-cli/serve":"^1.3.0","babel-loader":"^8.2.2","copy-webpack-plugin":"^7.0.0","cross-env":"^7.0.3","css-loader":"^3.6.0","eslint":"^7.19.0","eslint-config-standard":"^16.0.2","eslint-plugin-import":"^2.22.1","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.1.0","eslint-plugin-vue":"^7.5.0","svg-inline-loader":"^0.8.2","terser-webpack-plugin":"^5.1.1","vue-loader":"^15.9.6","vue-template-compiler":"^2.6.12","webpack":"^5.21.2","webpack-bundle-analyzer":"^4.4.0","webpack-cli":"^4.5.0","webpack-dev-server":"^4.0.0-beta.0"},"homepage":"https://uyoahz.cn/daodao/","scripts":{"dev":"webpack serve --mode development","serve":"webpack serve --mode development","build":"webpack --mode production","analyze":"webpack --profile --json > stats.json && webpack-bundle-analyzer stats.json","lint":"eslint src/** --ignore-path .eslintignore"},"repository":{"type":"git","url":"git+ssh://git@github.com/kuole-o/bber-ispeak.git"},"author":"guole","license":"Apache-2.0","bugs":{"url":"https://github.com/Uyoahz26/daodao/issues"}}')}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={id:r,exports:{}};return e[r](a,a.exports,n),a.exports}n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return function(){"use strict";var e=r,t=n(3330);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.init=u;var o=t(n(818)),a=t(n(8711)),i=n(1007);function u(e){return s.apply(this,arguments)}function s(){return(s=(0,a.default)(o.default.mark((function e(t){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:(0,i.render)(t);case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var c=u;e.default=c}(),r}()})); \ No newline at end of file diff --git a/js/search/algolia.js b/js/search/algolia.js new file mode 100644 index 00000000..7acf712d --- /dev/null +++ b/js/search/algolia.js @@ -0,0 +1,164 @@ +window.addEventListener('load', () => { + const openSearch = () => { + const bodyStyle = document.body.style + bodyStyle.width = '100%' + bodyStyle.overflow = 'hidden' + btf.animateIn(document.getElementById('search-mask'), 'to_show 0.5s') + btf.animateIn(document.querySelector('#algolia-search .search-dialog'), 'titleScale 0.5s') + setTimeout(() => { document.querySelector('#algolia-search .ais-SearchBox-input').focus() }, 100) + + // shortcut: ESC + document.addEventListener('keydown', function f (event) { + if (event.code === 'Escape') { + closeSearch() + document.removeEventListener('keydown', f) + } + }) + } + + const closeSearch = () => { + const bodyStyle = document.body.style + bodyStyle.width = '' + bodyStyle.overflow = '' + btf.animateOut(document.querySelector('#algolia-search .search-dialog'), 'search_close .5s') + btf.animateOut(document.getElementById('search-mask'), 'to_hide 0.5s') + } + + const searchClickFn = () => { + document.querySelector('#search-button > .search').addEventListener('click', openSearch) + } + + const searchClickFnOnce = () => { + document.getElementById('search-mask').addEventListener('click', closeSearch) + document.querySelector('#algolia-search .search-close-button').addEventListener('click', closeSearch) + } + + const cutContent = content => { + if (content === '') return '' + + const firstOccur = content.indexOf('') + + let start = firstOccur - 30 + let end = firstOccur + 120 + let pre = '' + let post = '' + + if (start <= 0) { + start = 0 + end = 140 + } else { + pre = '...' + } + + if (end > content.length) { + end = content.length + } else { + post = '...' + } + + let matchContent = pre + content.substring(start, end) + post + return matchContent + } + + const algolia = GLOBAL_CONFIG.algolia + const isAlgoliaValid = algolia.appId && algolia.apiKey && algolia.indexName + if (!isAlgoliaValid) { + return console.error('Algolia setting is invalid!') + } + + const search = instantsearch({ + indexName: algolia.indexName, + searchClient: algoliasearch(algolia.appId, algolia.apiKey), + searchFunction(helper) { + helper.state.query && helper.search() + }, + }) + + const configure = instantsearch.widgets.configure({ + hitsPerPage: 5 + }) + + const searchBox = instantsearch.widgets.searchBox({ + container: '#algolia-search-input', + showReset: false, + showSubmit: true, // 设为true 可以通过按钮搜索 + searchAsYouType: false, // 新增 可以实现回车或点击按钮搜索,不会每次输入都搜索 + placeholder: GLOBAL_CONFIG.algolia.languages.input_placeholder, + showLoadingIndicator: true + }) + + const hits = instantsearch.widgets.hits({ + container: '#algolia-hits', + templates: { + item(data) { + const link = data.permalink ? data.permalink : (GLOBAL_CONFIG.root + data.path) + const result = data._highlightResult + const content = result.contentStripTruncate + ? cutContent(result.contentStripTruncate.value) + : result.contentStrip + ? cutContent(result.contentStrip.value) + : result.content + ? cutContent(result.content.value) + : '' + return ` + + ${result.title.value || 'no-title'} + +

${content}

` + }, + empty: function (data) { + return ( + '
' + + GLOBAL_CONFIG.algolia.languages.hits_empty.replace(/\$\{query}/, data.query) + + '
' + ) + } + } + }) + + const stats = instantsearch.widgets.stats({ + container: '#algolia-info > .algolia-stats', + templates: { + text: function (data) { + const stats = GLOBAL_CONFIG.algolia.languages.hits_stats + .replace(/\$\{hits}/, data.nbHits) + .replace(/\$\{time}/, data.processingTimeMS) + return ( + `
${stats}` + ) + } + } + }) + + const powerBy = instantsearch.widgets.poweredBy({ + container: '#algolia-info > .algolia-poweredBy', + }) + + const pagination = instantsearch.widgets.pagination({ + container: '#algolia-pagination', + totalPages: 5, + templates: { + first: '', + last: '', + previous: '', + next: '' + } + }) + + + search.addWidgets([configure,searchBox,hits,stats,powerBy,pagination]) // add the widgets to the instantsearch instance + + search.start() + + searchClickFn() + searchClickFnOnce() + + window.addEventListener('pjax:complete', () => { + getComputedStyle(document.querySelector('#algolia-search .search-dialog')).display === 'block' && closeSearch() + searchClickFn() + }) + + window.pjax && search.on('render', () => { + window.pjax.refresh(document.getElementById('algolia-hits')) + }) +}) diff --git a/js/search/local-search.js b/js/search/local-search.js new file mode 100644 index 00000000..6c1ca7dc --- /dev/null +++ b/js/search/local-search.js @@ -0,0 +1,188 @@ +window.addEventListener('load', () => { + let loadFlag = false + let dataObj = [] + const $searchMask = document.getElementById('search-mask') + + const openSearch = () => { + const bodyStyle = document.body.style + bodyStyle.width = '100%' + bodyStyle.overflow = 'hidden' + btf.animateIn($searchMask, 'to_show 0.5s') + btf.animateIn(document.querySelector('#local-search .search-dialog'), 'titleScale 0.5s') + setTimeout(() => { document.querySelector('#local-search-input input').focus() }, 100) + if (!loadFlag) { + search() + loadFlag = true + } + // shortcut: ESC + document.addEventListener('keydown', function f (event) { + if (event.code === 'Escape') { + closeSearch() + document.removeEventListener('keydown', f) + } + }) + } + + const closeSearch = () => { + const bodyStyle = document.body.style + bodyStyle.width = '' + bodyStyle.overflow = '' + btf.animateOut(document.querySelector('#local-search .search-dialog'), 'search_close .5s') + btf.animateOut($searchMask, 'to_hide 0.5s') + } + + const searchClickFn = () => { + document.querySelector('#search-button > .search').addEventListener('click', openSearch) + } + + const searchClickFnOnce = () => { + document.querySelector('#local-search .search-close-button').addEventListener('click', closeSearch) + $searchMask.addEventListener('click', closeSearch) + if (GLOBAL_CONFIG.localSearch.preload) dataObj = fetchData(GLOBAL_CONFIG.localSearch.path) + } + + // check url is json or not + const isJson = url => { + const reg = /\.json$/ + return reg.test(url) + } + + const fetchData = async (path) => { + let data = [] + const response = await fetch(path) + if (isJson(path)) { + data = await response.json() + } else { + const res = await response.text() + const t = await new window.DOMParser().parseFromString(res, 'text/xml') + const a = await t + data = [...a.querySelectorAll('entry')].map(item =>{ + return { + title: item.querySelector('title').textContent, + content: item.querySelector('content') && item.querySelector('content').textContent, + url: item.querySelector('url').textContent + } + }) + } + if (response.ok) { + const $loadDataItem = document.getElementById('loading-database') + $loadDataItem.nextElementSibling.style.display = 'block' + $loadDataItem.remove() + } + return data + } + + const search = () => { + if (!GLOBAL_CONFIG.localSearch.preload) { + dataObj = fetchData(GLOBAL_CONFIG.localSearch.path) + } + + const $input = document.querySelector('#local-search-input input') + const $resultContent = document.getElementById('local-search-results') + const $loadingStatus = document.getElementById('loading-status') + + $input.addEventListener('input', function () { + const keywords = this.value.trim().toLowerCase().split(/[\s]+/) + if (keywords[0] !== '') $loadingStatus.innerHTML = '' + + $resultContent.innerHTML = '' + let str = '
' + if (keywords.length <= 0) return + let count = 0 + // perform local searching + dataObj.then(data => { + data.forEach(data => { + let isMatch = true + let dataTitle = data.title ? data.title.trim().toLowerCase() : '' + const dataContent = data.content ? data.content.trim().replace(/<[^>]+>/g, '').toLowerCase() : '' + const dataUrl = data.url.startsWith('/') ? data.url : GLOBAL_CONFIG.root + data.url + let indexTitle = -1 + let indexContent = -1 + let firstOccur = -1 + // only match articles with not empty titles and contents + if (dataTitle !== '' || dataContent !== '') { + keywords.forEach((keyword, i) => { + indexTitle = dataTitle.indexOf(keyword) + indexContent = dataContent.indexOf(keyword) + if (indexTitle < 0 && indexContent < 0) { + isMatch = false + } else { + if (indexContent < 0) { + indexContent = 0 + } + if (i === 0) { + firstOccur = indexContent + } + } + }) + } else { + isMatch = false + } + + // show search results + if (isMatch) { + if (firstOccur >= 0) { + // cut out 130 characters + // let start = firstOccur - 30 < 0 ? 0 : firstOccur - 30 + // let end = firstOccur + 50 > dataContent.length ? dataContent.length : firstOccur + 50 + let start = firstOccur - 30 + let end = firstOccur + 100 + let pre = '' + let post = '' + + if (start < 0) { + start = 0 + } + + if (start === 0) { + end = 100 + } else { + pre = '...' + } + + if (end > dataContent.length) { + end = dataContent.length + } else { + post = '...' + } + + let matchContent = dataContent.substring(start, end) + + // highlight all keywords + keywords.forEach(keyword => { + const regS = new RegExp(keyword, 'gi') + matchContent = matchContent.replace(regS, '' + keyword + '') + dataTitle = dataTitle.replace(regS, '' + keyword + '') + }) + + str += '
' + dataTitle + '' + count += 1 + + if (dataContent !== '') { + str += '

' + pre + matchContent + post + '

' + } + } + str += '
' + } + }) + if (count === 0) { + str += '
' + GLOBAL_CONFIG.localSearch.languages.hits_empty.replace(/\$\{query}/, this.value.trim()) + + '
' + } + str += '
' + $resultContent.innerHTML = str + if (keywords[0] !== '') $loadingStatus.innerHTML = '' + window.pjax && window.pjax.refresh($resultContent) + }) + }) + } + + searchClickFn() + searchClickFnOnce() + + // pjax + window.addEventListener('pjax:complete', () => { + !btf.isHidden($searchMask) && closeSearch() + searchClickFn() + }) +}) diff --git a/js/tw_cn.js b/js/tw_cn.js new file mode 100644 index 00000000..78dbd6d9 --- /dev/null +++ b/js/tw_cn.js @@ -0,0 +1,100 @@ +/* eslint-disable no-undef */ +document.addEventListener('DOMContentLoaded', function () { + const translate = GLOBAL_CONFIG.translate + const snackbarData = GLOBAL_CONFIG.Snackbar + const defaultEncoding = translate.defaultEncoding // 網站默認語言,1: 繁體中文, 2: 簡體中文 + const translateDelay = translate.translateDelay // 延遲時間,若不在前, 要設定延遲翻譯時間, 如100表示100ms,默認為0 + const msgToTraditionalChinese = translate.msgToTraditionalChinese // 此處可以更改為你想要顯示的文字 + const msgToSimplifiedChinese = translate.msgToSimplifiedChinese // 同上,但兩處均不建議更改 + let currentEncoding = defaultEncoding + const targetEncodingCookie = 'translate-chn-cht' + let targetEncoding = + saveToLocal.get(targetEncodingCookie) === undefined + ? defaultEncoding + : Number(saveToLocal.get('translate-chn-cht')) + let translateButtonObject + const isSnackbar = GLOBAL_CONFIG.Snackbar !== undefined + + function translateText (txt) { + if (txt === '' || txt == null) return '' + if (currentEncoding === 1 && targetEncoding === 2) return Simplized(txt) + else if (currentEncoding === 2 && targetEncoding === 1) { return Traditionalized(txt) } else return txt + } + function translateBody (fobj) { + let objs + if (typeof fobj === 'object') objs = fobj.childNodes + else objs = document.body.childNodes + for (let i = 0; i < objs.length; i++) { + const obj = objs.item(i) + if ( + '||BR|HR|'.indexOf('|' + obj.tagName + '|') > 0 || + obj === translateButtonObject + ) { continue } + if (obj.title !== '' && obj.title != null) { obj.title = translateText(obj.title) } + if (obj.alt !== '' && obj.alt != null) obj.alt = translateText(obj.alt) + if (obj.placeholder !== '' && obj.placeholder != null) obj.placeholder = translateText(obj.placeholder) + if ( + obj.tagName === 'INPUT' && + obj.value !== '' && + obj.type !== 'text' && + obj.type !== 'hidden' + ) { obj.value = translateText(obj.value) } + if (obj.nodeType === 3) obj.data = translateText(obj.data) + else translateBody(obj) + } + } + function translatePage () { + if (targetEncoding === 1) { + currentEncoding = 1 + targetEncoding = 2 + translateButtonObject.innerHTML = msgToTraditionalChinese + saveToLocal.set(targetEncodingCookie, targetEncoding, 2) + translateBody() + if (isSnackbar) btf.snackbarShow(snackbarData.cht_to_chs) + } else if (targetEncoding === 2) { + currentEncoding = 2 + targetEncoding = 1 + translateButtonObject.innerHTML = msgToSimplifiedChinese + saveToLocal.set(targetEncodingCookie, targetEncoding, 2) + translateBody() + if (isSnackbar) btf.snackbarShow(snackbarData.chs_to_cht) + } + } + function JTPYStr () { + return '万与丑专业丛东丝丢两严丧个丬丰临为丽举么义乌乐乔习乡书买乱争于亏云亘亚产亩亲亵亸亿仅从仑仓仪们价众优伙会伛伞伟传伤伥伦伧伪伫体余佣佥侠侣侥侦侧侨侩侪侬俣俦俨俩俪俭债倾偬偻偾偿傥傧储傩儿兑兖党兰关兴兹养兽冁内冈册写军农冢冯冲决况冻净凄凉凌减凑凛几凤凫凭凯击凼凿刍划刘则刚创删别刬刭刽刿剀剂剐剑剥剧劝办务劢动励劲劳势勋勐勚匀匦匮区医华协单卖卢卤卧卫却卺厂厅历厉压厌厍厕厢厣厦厨厩厮县参叆叇双发变叙叠叶号叹叽吁后吓吕吗吣吨听启吴呒呓呕呖呗员呙呛呜咏咔咙咛咝咤咴咸哌响哑哒哓哔哕哗哙哜哝哟唛唝唠唡唢唣唤唿啧啬啭啮啰啴啸喷喽喾嗫呵嗳嘘嘤嘱噜噼嚣嚯团园囱围囵国图圆圣圹场坂坏块坚坛坜坝坞坟坠垄垅垆垒垦垧垩垫垭垯垱垲垴埘埙埚埝埯堑堕塆墙壮声壳壶壸处备复够头夸夹夺奁奂奋奖奥妆妇妈妩妪妫姗姜娄娅娆娇娈娱娲娴婳婴婵婶媪嫒嫔嫱嬷孙学孪宁宝实宠审宪宫宽宾寝对寻导寿将尔尘尧尴尸尽层屃屉届属屡屦屿岁岂岖岗岘岙岚岛岭岳岽岿峃峄峡峣峤峥峦崂崃崄崭嵘嵚嵛嵝嵴巅巩巯币帅师帏帐帘帜带帧帮帱帻帼幂幞干并广庄庆庐庑库应庙庞废庼廪开异弃张弥弪弯弹强归当录彟彦彻径徕御忆忏忧忾怀态怂怃怄怅怆怜总怼怿恋恳恶恸恹恺恻恼恽悦悫悬悭悯惊惧惨惩惫惬惭惮惯愍愠愤愦愿慑慭憷懑懒懔戆戋戏戗战戬户扎扑扦执扩扪扫扬扰抚抛抟抠抡抢护报担拟拢拣拥拦拧拨择挂挚挛挜挝挞挟挠挡挢挣挤挥挦捞损捡换捣据捻掳掴掷掸掺掼揸揽揿搀搁搂搅携摄摅摆摇摈摊撄撑撵撷撸撺擞攒敌敛数斋斓斗斩断无旧时旷旸昙昼昽显晋晒晓晔晕晖暂暧札术朴机杀杂权条来杨杩杰极构枞枢枣枥枧枨枪枫枭柜柠柽栀栅标栈栉栊栋栌栎栏树栖样栾桊桠桡桢档桤桥桦桧桨桩梦梼梾检棂椁椟椠椤椭楼榄榇榈榉槚槛槟槠横樯樱橥橱橹橼檐檩欢欤欧歼殁殇残殒殓殚殡殴毁毂毕毙毡毵氇气氢氩氲汇汉污汤汹沓沟没沣沤沥沦沧沨沩沪沵泞泪泶泷泸泺泻泼泽泾洁洒洼浃浅浆浇浈浉浊测浍济浏浐浑浒浓浔浕涂涌涛涝涞涟涠涡涢涣涤润涧涨涩淀渊渌渍渎渐渑渔渖渗温游湾湿溃溅溆溇滗滚滞滟滠满滢滤滥滦滨滩滪漤潆潇潋潍潜潴澜濑濒灏灭灯灵灾灿炀炉炖炜炝点炼炽烁烂烃烛烟烦烧烨烩烫烬热焕焖焘煅煳熘爱爷牍牦牵牺犊犟状犷犸犹狈狍狝狞独狭狮狯狰狱狲猃猎猕猡猪猫猬献獭玑玙玚玛玮环现玱玺珉珏珐珑珰珲琎琏琐琼瑶瑷璇璎瓒瓮瓯电画畅畲畴疖疗疟疠疡疬疮疯疱疴痈痉痒痖痨痪痫痴瘅瘆瘗瘘瘪瘫瘾瘿癞癣癫癯皑皱皲盏盐监盖盗盘眍眦眬着睁睐睑瞒瞩矫矶矾矿砀码砖砗砚砜砺砻砾础硁硅硕硖硗硙硚确硷碍碛碜碱碹磙礼祎祢祯祷祸禀禄禅离秃秆种积称秽秾稆税稣稳穑穷窃窍窑窜窝窥窦窭竖竞笃笋笔笕笺笼笾筑筚筛筜筝筹签简箓箦箧箨箩箪箫篑篓篮篱簖籁籴类籼粜粝粤粪粮糁糇紧絷纟纠纡红纣纤纥约级纨纩纪纫纬纭纮纯纰纱纲纳纴纵纶纷纸纹纺纻纼纽纾线绀绁绂练组绅细织终绉绊绋绌绍绎经绐绑绒结绔绕绖绗绘给绚绛络绝绞统绠绡绢绣绤绥绦继绨绩绪绫绬续绮绯绰绱绲绳维绵绶绷绸绹绺绻综绽绾绿缀缁缂缃缄缅缆缇缈缉缊缋缌缍缎缏缐缑缒缓缔缕编缗缘缙缚缛缜缝缞缟缠缡缢缣缤缥缦缧缨缩缪缫缬缭缮缯缰缱缲缳缴缵罂网罗罚罢罴羁羟羡翘翙翚耢耧耸耻聂聋职聍联聩聪肃肠肤肷肾肿胀胁胆胜胧胨胪胫胶脉脍脏脐脑脓脔脚脱脶脸腊腌腘腭腻腼腽腾膑臜舆舣舰舱舻艰艳艹艺节芈芗芜芦苁苇苈苋苌苍苎苏苘苹茎茏茑茔茕茧荆荐荙荚荛荜荞荟荠荡荣荤荥荦荧荨荩荪荫荬荭荮药莅莜莱莲莳莴莶获莸莹莺莼萚萝萤营萦萧萨葱蒇蒉蒋蒌蓝蓟蓠蓣蓥蓦蔷蔹蔺蔼蕲蕴薮藁藓虏虑虚虫虬虮虽虾虿蚀蚁蚂蚕蚝蚬蛊蛎蛏蛮蛰蛱蛲蛳蛴蜕蜗蜡蝇蝈蝉蝎蝼蝾螀螨蟏衅衔补衬衮袄袅袆袜袭袯装裆裈裢裣裤裥褛褴襁襕见观觃规觅视觇览觉觊觋觌觍觎觏觐觑觞触觯詟誉誊讠计订讣认讥讦讧讨让讪讫训议讯记讱讲讳讴讵讶讷许讹论讻讼讽设访诀证诂诃评诅识诇诈诉诊诋诌词诎诏诐译诒诓诔试诖诗诘诙诚诛诜话诞诟诠诡询诣诤该详诧诨诩诪诫诬语诮误诰诱诲诳说诵诶请诸诹诺读诼诽课诿谀谁谂调谄谅谆谇谈谊谋谌谍谎谏谐谑谒谓谔谕谖谗谘谙谚谛谜谝谞谟谠谡谢谣谤谥谦谧谨谩谪谫谬谭谮谯谰谱谲谳谴谵谶谷豮贝贞负贠贡财责贤败账货质贩贪贫贬购贮贯贰贱贲贳贴贵贶贷贸费贺贻贼贽贾贿赀赁赂赃资赅赆赇赈赉赊赋赌赍赎赏赐赑赒赓赔赕赖赗赘赙赚赛赜赝赞赟赠赡赢赣赪赵赶趋趱趸跃跄跖跞践跶跷跸跹跻踊踌踪踬踯蹑蹒蹰蹿躏躜躯车轧轨轩轪轫转轭轮软轰轱轲轳轴轵轶轷轸轹轺轻轼载轾轿辀辁辂较辄辅辆辇辈辉辊辋辌辍辎辏辐辑辒输辔辕辖辗辘辙辚辞辩辫边辽达迁过迈运还这进远违连迟迩迳迹适选逊递逦逻遗遥邓邝邬邮邹邺邻郁郄郏郐郑郓郦郧郸酝酦酱酽酾酿释里鉅鉴銮錾钆钇针钉钊钋钌钍钎钏钐钑钒钓钔钕钖钗钘钙钚钛钝钞钟钠钡钢钣钤钥钦钧钨钩钪钫钬钭钮钯钰钱钲钳钴钵钶钷钸钹钺钻钼钽钾钿铀铁铂铃铄铅铆铈铉铊铋铍铎铏铐铑铒铕铗铘铙铚铛铜铝铞铟铠铡铢铣铤铥铦铧铨铪铫铬铭铮铯铰铱铲铳铴铵银铷铸铹铺铻铼铽链铿销锁锂锃锄锅锆锇锈锉锊锋锌锍锎锏锐锑锒锓锔锕锖锗错锚锜锞锟锠锡锢锣锤锥锦锨锩锫锬锭键锯锰锱锲锳锴锵锶锷锸锹锺锻锼锽锾锿镀镁镂镃镆镇镈镉镊镌镍镎镏镐镑镒镕镖镗镙镚镛镜镝镞镟镠镡镢镣镤镥镦镧镨镩镪镫镬镭镮镯镰镱镲镳镴镶长门闩闪闫闬闭问闯闰闱闲闳间闵闶闷闸闹闺闻闼闽闾闿阀阁阂阃阄阅阆阇阈阉阊阋阌阍阎阏阐阑阒阓阔阕阖阗阘阙阚阛队阳阴阵阶际陆陇陈陉陕陧陨险随隐隶隽难雏雠雳雾霁霉霭靓静靥鞑鞒鞯鞴韦韧韨韩韪韫韬韵页顶顷顸项顺须顼顽顾顿颀颁颂颃预颅领颇颈颉颊颋颌颍颎颏颐频颒颓颔颕颖颗题颙颚颛颜额颞颟颠颡颢颣颤颥颦颧风飏飐飑飒飓飔飕飖飗飘飙飚飞飨餍饤饥饦饧饨饩饪饫饬饭饮饯饰饱饲饳饴饵饶饷饸饹饺饻饼饽饾饿馀馁馂馃馄馅馆馇馈馉馊馋馌馍馎馏馐馑馒馓馔馕马驭驮驯驰驱驲驳驴驵驶驷驸驹驺驻驼驽驾驿骀骁骂骃骄骅骆骇骈骉骊骋验骍骎骏骐骑骒骓骔骕骖骗骘骙骚骛骜骝骞骟骠骡骢骣骤骥骦骧髅髋髌鬓魇魉鱼鱽鱾鱿鲀鲁鲂鲄鲅鲆鲇鲈鲉鲊鲋鲌鲍鲎鲏鲐鲑鲒鲓鲔鲕鲖鲗鲘鲙鲚鲛鲜鲝鲞鲟鲠鲡鲢鲣鲤鲥鲦鲧鲨鲩鲪鲫鲬鲭鲮鲯鲰鲱鲲鲳鲴鲵鲶鲷鲸鲹鲺鲻鲼鲽鲾鲿鳀鳁鳂鳃鳄鳅鳆鳇鳈鳉鳊鳋鳌鳍鳎鳏鳐鳑鳒鳓鳔鳕鳖鳗鳘鳙鳛鳜鳝鳞鳟鳠鳡鳢鳣鸟鸠鸡鸢鸣鸤鸥鸦鸧鸨鸩鸪鸫鸬鸭鸮鸯鸰鸱鸲鸳鸴鸵鸶鸷鸸鸹鸺鸻鸼鸽鸾鸿鹀鹁鹂鹃鹄鹅鹆鹇鹈鹉鹊鹋鹌鹍鹎鹏鹐鹑鹒鹓鹔鹕鹖鹗鹘鹚鹛鹜鹝鹞鹟鹠鹡鹢鹣鹤鹥鹦鹧鹨鹩鹪鹫鹬鹭鹯鹰鹱鹲鹳鹴鹾麦麸黄黉黡黩黪黾' + } + function FTPYStr () { + return '萬與醜專業叢東絲丟兩嚴喪個爿豐臨為麗舉麼義烏樂喬習鄉書買亂爭於虧雲亙亞產畝親褻嚲億僅從侖倉儀們價眾優夥會傴傘偉傳傷倀倫傖偽佇體餘傭僉俠侶僥偵側僑儈儕儂俁儔儼倆儷儉債傾傯僂僨償儻儐儲儺兒兌兗黨蘭關興茲養獸囅內岡冊寫軍農塚馮衝決況凍淨淒涼淩減湊凜幾鳳鳧憑凱擊氹鑿芻劃劉則剛創刪別剗剄劊劌剴劑剮劍剝劇勸辦務勱動勵勁勞勢勳猛勩勻匭匱區醫華協單賣盧鹵臥衛卻巹廠廳曆厲壓厭厙廁廂厴廈廚廄廝縣參靉靆雙發變敘疊葉號歎嘰籲後嚇呂嗎唚噸聽啟吳嘸囈嘔嚦唄員咼嗆嗚詠哢嚨嚀噝吒噅鹹呱響啞噠嘵嗶噦嘩噲嚌噥喲嘜嗊嘮啢嗩唕喚呼嘖嗇囀齧囉嘽嘯噴嘍嚳囁嗬噯噓嚶囑嚕劈囂謔團園囪圍圇國圖圓聖壙場阪壞塊堅壇壢壩塢墳墜壟壟壚壘墾坰堊墊埡墶壋塏堖塒塤堝墊垵塹墮壪牆壯聲殼壺壼處備複夠頭誇夾奪奩奐奮獎奧妝婦媽嫵嫗媯姍薑婁婭嬈嬌孌娛媧嫻嫿嬰嬋嬸媼嬡嬪嬙嬤孫學孿寧寶實寵審憲宮寬賓寢對尋導壽將爾塵堯尷屍盡層屭屜屆屬屢屨嶼歲豈嶇崗峴嶴嵐島嶺嶽崠巋嶨嶧峽嶢嶠崢巒嶗崍嶮嶄嶸嶔崳嶁脊巔鞏巰幣帥師幃帳簾幟帶幀幫幬幘幗冪襆幹並廣莊慶廬廡庫應廟龐廢廎廩開異棄張彌弳彎彈強歸當錄彠彥徹徑徠禦憶懺憂愾懷態慫憮慪悵愴憐總懟懌戀懇惡慟懨愷惻惱惲悅愨懸慳憫驚懼慘懲憊愜慚憚慣湣慍憤憒願懾憖怵懣懶懍戇戔戲戧戰戩戶紮撲扡執擴捫掃揚擾撫拋摶摳掄搶護報擔擬攏揀擁攔擰撥擇掛摯攣掗撾撻挾撓擋撟掙擠揮撏撈損撿換搗據撚擄摑擲撣摻摜摣攬撳攙擱摟攪攜攝攄擺搖擯攤攖撐攆擷擼攛擻攢敵斂數齋斕鬥斬斷無舊時曠暘曇晝曨顯晉曬曉曄暈暉暫曖劄術樸機殺雜權條來楊榪傑極構樅樞棗櫪梘棖槍楓梟櫃檸檉梔柵標棧櫛櫳棟櫨櫟欄樹棲樣欒棬椏橈楨檔榿橋樺檜槳樁夢檮棶檢欞槨櫝槧欏橢樓欖櫬櫚櫸檟檻檳櫧橫檣櫻櫫櫥櫓櫞簷檁歡歟歐殲歿殤殘殞殮殫殯毆毀轂畢斃氈毿氌氣氫氬氳彙漢汙湯洶遝溝沒灃漚瀝淪滄渢溈滬濔濘淚澩瀧瀘濼瀉潑澤涇潔灑窪浹淺漿澆湞溮濁測澮濟瀏滻渾滸濃潯濜塗湧濤澇淶漣潿渦溳渙滌潤澗漲澀澱淵淥漬瀆漸澠漁瀋滲溫遊灣濕潰濺漵漊潷滾滯灩灄滿瀅濾濫灤濱灘澦濫瀠瀟瀲濰潛瀦瀾瀨瀕灝滅燈靈災燦煬爐燉煒熗點煉熾爍爛烴燭煙煩燒燁燴燙燼熱煥燜燾煆糊溜愛爺牘犛牽犧犢強狀獷獁猶狽麅獮獰獨狹獅獪猙獄猻獫獵獼玀豬貓蝟獻獺璣璵瑒瑪瑋環現瑲璽瑉玨琺瓏璫琿璡璉瑣瓊瑤璦璿瓔瓚甕甌電畫暢佘疇癤療瘧癘瘍鬁瘡瘋皰屙癰痙癢瘂癆瘓癇癡癉瘮瘞瘺癟癱癮癭癩癬癲臒皚皺皸盞鹽監蓋盜盤瞘眥矓著睜睞瞼瞞矚矯磯礬礦碭碼磚硨硯碸礪礱礫礎硜矽碩硤磽磑礄確鹼礙磧磣堿镟滾禮禕禰禎禱禍稟祿禪離禿稈種積稱穢穠穭稅穌穩穡窮竊竅窯竄窩窺竇窶豎競篤筍筆筧箋籠籩築篳篩簹箏籌簽簡籙簀篋籜籮簞簫簣簍籃籬籪籟糴類秈糶糲粵糞糧糝餱緊縶糸糾紆紅紂纖紇約級紈纊紀紉緯紜紘純紕紗綱納紝縱綸紛紙紋紡紵紖紐紓線紺絏紱練組紳細織終縐絆紼絀紹繹經紿綁絨結絝繞絰絎繪給絢絳絡絕絞統綆綃絹繡綌綏絛繼綈績緒綾緓續綺緋綽緔緄繩維綿綬繃綢綯綹綣綜綻綰綠綴緇緙緗緘緬纜緹緲緝縕繢緦綞緞緶線緱縋緩締縷編緡緣縉縛縟縝縫縗縞纏縭縊縑繽縹縵縲纓縮繆繅纈繚繕繒韁繾繰繯繳纘罌網羅罰罷羆羈羥羨翹翽翬耮耬聳恥聶聾職聹聯聵聰肅腸膚膁腎腫脹脅膽勝朧腖臚脛膠脈膾髒臍腦膿臠腳脫腡臉臘醃膕齶膩靦膃騰臏臢輿艤艦艙艫艱豔艸藝節羋薌蕪蘆蓯葦藶莧萇蒼苧蘇檾蘋莖蘢蔦塋煢繭荊薦薘莢蕘蓽蕎薈薺蕩榮葷滎犖熒蕁藎蓀蔭蕒葒葤藥蒞蓧萊蓮蒔萵薟獲蕕瑩鶯蓴蘀蘿螢營縈蕭薩蔥蕆蕢蔣蔞藍薊蘺蕷鎣驀薔蘞藺藹蘄蘊藪槁蘚虜慮虛蟲虯蟣雖蝦蠆蝕蟻螞蠶蠔蜆蠱蠣蟶蠻蟄蛺蟯螄蠐蛻蝸蠟蠅蟈蟬蠍螻蠑螿蟎蠨釁銜補襯袞襖嫋褘襪襲襏裝襠褌褳襝褲襇褸襤繈襴見觀覎規覓視覘覽覺覬覡覿覥覦覯覲覷觴觸觶讋譽謄訁計訂訃認譏訐訌討讓訕訖訓議訊記訒講諱謳詎訝訥許訛論訩訟諷設訪訣證詁訶評詛識詗詐訴診詆謅詞詘詔詖譯詒誆誄試詿詩詰詼誠誅詵話誕詬詮詭詢詣諍該詳詫諢詡譸誡誣語誚誤誥誘誨誑說誦誒請諸諏諾讀諑誹課諉諛誰諗調諂諒諄誶談誼謀諶諜謊諫諧謔謁謂諤諭諼讒諮諳諺諦謎諞諝謨讜謖謝謠謗諡謙謐謹謾謫譾謬譚譖譙讕譜譎讞譴譫讖穀豶貝貞負貟貢財責賢敗賬貨質販貪貧貶購貯貫貳賤賁貰貼貴貺貸貿費賀貽賊贄賈賄貲賃賂贓資賅贐賕賑賚賒賦賭齎贖賞賜贔賙賡賠賧賴賵贅賻賺賽賾贗讚贇贈贍贏贛赬趙趕趨趲躉躍蹌蹠躒踐躂蹺蹕躚躋踴躊蹤躓躑躡蹣躕躥躪躦軀車軋軌軒軑軔轉軛輪軟轟軲軻轤軸軹軼軤軫轢軺輕軾載輊轎輈輇輅較輒輔輛輦輩輝輥輞輬輟輜輳輻輯轀輸轡轅轄輾轆轍轔辭辯辮邊遼達遷過邁運還這進遠違連遲邇逕跡適選遜遞邐邏遺遙鄧鄺鄔郵鄒鄴鄰鬱郤郟鄶鄭鄆酈鄖鄲醞醱醬釅釃釀釋裏钜鑒鑾鏨釓釔針釘釗釙釕釷釺釧釤鈒釩釣鍆釹鍚釵鈃鈣鈈鈦鈍鈔鍾鈉鋇鋼鈑鈐鑰欽鈞鎢鉤鈧鈁鈥鈄鈕鈀鈺錢鉦鉗鈷缽鈳鉕鈽鈸鉞鑽鉬鉭鉀鈿鈾鐵鉑鈴鑠鉛鉚鈰鉉鉈鉍鈹鐸鉶銬銠鉺銪鋏鋣鐃銍鐺銅鋁銱銦鎧鍘銖銑鋌銩銛鏵銓鉿銚鉻銘錚銫鉸銥鏟銃鐋銨銀銣鑄鐒鋪鋙錸鋱鏈鏗銷鎖鋰鋥鋤鍋鋯鋨鏽銼鋝鋒鋅鋶鐦鐧銳銻鋃鋟鋦錒錆鍺錯錨錡錁錕錩錫錮鑼錘錐錦鍁錈錇錟錠鍵鋸錳錙鍥鍈鍇鏘鍶鍔鍤鍬鍾鍛鎪鍠鍰鎄鍍鎂鏤鎡鏌鎮鎛鎘鑷鐫鎳鎿鎦鎬鎊鎰鎔鏢鏜鏍鏰鏞鏡鏑鏃鏇鏐鐔钁鐐鏷鑥鐓鑭鐠鑹鏹鐙鑊鐳鐶鐲鐮鐿鑔鑣鑞鑲長門閂閃閆閈閉問闖閏闈閑閎間閔閌悶閘鬧閨聞闥閩閭闓閥閣閡閫鬮閱閬闍閾閹閶鬩閿閽閻閼闡闌闃闠闊闋闔闐闒闕闞闤隊陽陰陣階際陸隴陳陘陝隉隕險隨隱隸雋難雛讎靂霧霽黴靄靚靜靨韃鞽韉韝韋韌韍韓韙韞韜韻頁頂頃頇項順須頊頑顧頓頎頒頌頏預顱領頗頸頡頰頲頜潁熲頦頤頻頮頹頷頴穎顆題顒顎顓顏額顳顢顛顙顥纇顫顬顰顴風颺颭颮颯颶颸颼颻飀飄飆飆飛饗饜飣饑飥餳飩餼飪飫飭飯飲餞飾飽飼飿飴餌饒餉餄餎餃餏餅餑餖餓餘餒餕餜餛餡館餷饋餶餿饞饁饃餺餾饈饉饅饊饌饢馬馭馱馴馳驅馹駁驢駔駛駟駙駒騶駐駝駑駕驛駘驍罵駰驕驊駱駭駢驫驪騁驗騂駸駿騏騎騍騅騌驌驂騙騭騤騷騖驁騮騫騸驃騾驄驏驟驥驦驤髏髖髕鬢魘魎魚魛魢魷魨魯魴魺鮁鮃鯰鱸鮋鮓鮒鮊鮑鱟鮍鮐鮭鮚鮳鮪鮞鮦鰂鮜鱠鱭鮫鮮鮺鯗鱘鯁鱺鰱鰹鯉鰣鰷鯀鯊鯇鮶鯽鯒鯖鯪鯕鯫鯡鯤鯧鯝鯢鯰鯛鯨鯵鯴鯔鱝鰈鰏鱨鯷鰮鰃鰓鱷鰍鰒鰉鰁鱂鯿鰠鼇鰭鰨鰥鰩鰟鰜鰳鰾鱈鱉鰻鰵鱅鰼鱖鱔鱗鱒鱯鱤鱧鱣鳥鳩雞鳶鳴鳲鷗鴉鶬鴇鴆鴣鶇鸕鴨鴞鴦鴒鴟鴝鴛鴬鴕鷥鷙鴯鴰鵂鴴鵃鴿鸞鴻鵐鵓鸝鵑鵠鵝鵒鷳鵜鵡鵲鶓鵪鶤鵯鵬鵮鶉鶊鵷鷫鶘鶡鶚鶻鶿鶥鶩鷊鷂鶲鶹鶺鷁鶼鶴鷖鸚鷓鷚鷯鷦鷲鷸鷺鸇鷹鸌鸏鸛鸘鹺麥麩黃黌黶黷黲黽' + } + function Traditionalized (cc) { + let str = '' + const ss = JTPYStr() + const tt = FTPYStr() + for (let i = 0; i < cc.length; i++) { + if (cc.charCodeAt(i) > 10000 && ss.indexOf(cc.charAt(i)) !== -1) { str += tt.charAt(ss.indexOf(cc.charAt(i))) } else str += cc.charAt(i) + } + return str + } + function Simplized (cc) { + let str = '' + const ss = JTPYStr() + const tt = FTPYStr() + for (let i = 0; i < cc.length; i++) { + if (cc.charCodeAt(i) > 10000 && tt.indexOf(cc.charAt(i)) !== -1) { str += ss.charAt(tt.indexOf(cc.charAt(i))) } else str += cc.charAt(i) + } + return str + } + function translateInitialization () { + translateButtonObject = document.getElementById('translateLink') + if (translateButtonObject) { + if (currentEncoding !== targetEncoding) { + setTimeout(translateBody, translateDelay) + if (targetEncoding === 1) translateButtonObject.innerHTML = msgToSimplifiedChinese + else translateButtonObject.innerHTML = msgToTraditionalChinese + } + translateButtonObject.addEventListener('click', translatePage, false) + } + } + translateInitialization() + document.addEventListener('pjax:complete', translateInitialization) +}) diff --git a/js/utils.js b/js/utils.js new file mode 100644 index 00000000..a1be3680 --- /dev/null +++ b/js/utils.js @@ -0,0 +1,278 @@ +const btf = { + debounce: function (func, wait, immediate) { + let timeout + return function () { + const context = this + const args = arguments + const later = function () { + timeout = null + if (!immediate) func.apply(context, args) + } + const callNow = immediate && !timeout + clearTimeout(timeout) + timeout = setTimeout(later, wait) + if (callNow) func.apply(context, args) + } + }, + + throttle: function (func, wait, options) { + let timeout, context, args + let previous = 0 + if (!options) options = {} + + const later = function () { + previous = options.leading === false ? 0 : new Date().getTime() + timeout = null + func.apply(context, args) + if (!timeout) context = args = null + } + + const throttled = function () { + const now = new Date().getTime() + if (!previous && options.leading === false) previous = now + const remaining = wait - (now - previous) + context = this + args = arguments + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout) + timeout = null + } + previous = now + func.apply(context, args) + if (!timeout) context = args = null + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining) + } + } + + return throttled + }, + + sidebarPaddingR: () => { + const innerWidth = window.innerWidth + const clientWidth = document.body.clientWidth + const paddingRight = innerWidth - clientWidth + if (innerWidth !== clientWidth) { + document.body.style.paddingRight = paddingRight + 'px' + } + }, + + snackbarShow: (text, showAction = false, duration = 2000) => { + const { position, bgLight, bgDark } = GLOBAL_CONFIG.Snackbar + const bg = document.documentElement.getAttribute('data-theme') === 'light' ? bgLight : bgDark + Snackbar.show({ + text: text, + backgroundColor: bg, + showAction: showAction, + duration: duration, + pos: position, + customClass: 'snackbar-css' + }) + }, + + diffDate: (d, more = false) => { + const dateNow = new Date() + const datePost = new Date(d) + const dateDiff = dateNow.getTime() - datePost.getTime() + const minute = 1000 * 60 + const hour = minute * 60 + const day = hour * 24 + const month = day * 30 + + let result + if (more) { + const monthCount = dateDiff / month + const dayCount = dateDiff / day + const hourCount = dateDiff / hour + const minuteCount = dateDiff / minute + + if (monthCount > 12) { + result = datePost.toLocaleDateString().replace(/\//g, '-') + } else if (monthCount >= 1) { + result = parseInt(monthCount) + ' ' + GLOBAL_CONFIG.date_suffix.month + } else if (dayCount >= 1) { + result = parseInt(dayCount) + ' ' + GLOBAL_CONFIG.date_suffix.day + } else if (hourCount >= 1) { + result = parseInt(hourCount) + ' ' + GLOBAL_CONFIG.date_suffix.hour + } else if (minuteCount >= 1) { + result = parseInt(minuteCount) + ' ' + GLOBAL_CONFIG.date_suffix.min + } else { + result = GLOBAL_CONFIG.date_suffix.just + } + } else { + result = parseInt(dateDiff / day) + } + return result + }, + + loadComment: (dom, callback) => { + if ('IntersectionObserver' in window) { + const observerItem = new IntersectionObserver((entries) => { + if (entries[0].isIntersecting) { + callback() + observerItem.disconnect() + } + }, { threshold: [0] }) + observerItem.observe(dom) + } else { + callback() + } + }, + + scrollToDest: (pos, time = 500) => { + const currentPos = window.pageYOffset + if (currentPos > pos) pos = pos - 70 + + if ('scrollBehavior' in document.documentElement.style) { + window.scrollTo({ + top: pos, + behavior: 'smooth' + }) + return + } + + let start = null + pos = +pos + window.requestAnimationFrame(function step (currentTime) { + start = !start ? currentTime : start + const progress = currentTime - start + if (currentPos < pos) { + window.scrollTo(0, ((pos - currentPos) * progress / time) + currentPos) + } else { + window.scrollTo(0, currentPos - ((currentPos - pos) * progress / time)) + } + if (progress < time) { + window.requestAnimationFrame(step) + } else { + window.scrollTo(0, pos) + } + }) + }, + + animateIn: (ele, text) => { + ele.style.display = 'block' + ele.style.animation = text + }, + + animateOut: (ele, text) => { + ele.addEventListener('animationend', function f () { + ele.style.display = '' + ele.style.animation = '' + ele.removeEventListener('animationend', f) + }) + ele.style.animation = text + }, + + getParents: (elem, selector) => { + for (; elem && elem !== document; elem = elem.parentNode) { + if (elem.matches(selector)) return elem + } + return null + }, + + siblings: (ele, selector) => { + return [...ele.parentNode.children].filter((child) => { + if (selector) { + return child !== ele && child.matches(selector) + } + return child !== ele + }) + }, + + /** + * @param {*} selector + * @param {*} eleType the type of create element + * @param {*} options object key: value + */ + wrap: (selector, eleType, options) => { + const creatEle = document.createElement(eleType) + for (const [key, value] of Object.entries(options)) { + creatEle.setAttribute(key, value) + } + selector.parentNode.insertBefore(creatEle, selector) + creatEle.appendChild(selector) + }, + + unwrap: el => { + const elParentNode = el.parentNode + if (elParentNode !== document.body) { + elParentNode.parentNode.insertBefore(el, elParentNode) + elParentNode.parentNode.removeChild(elParentNode) + } + }, + + isHidden: ele => ele.offsetHeight === 0 && ele.offsetWidth === 0, + + getEleTop: ele => { + let actualTop = ele.offsetTop + let current = ele.offsetParent + + while (current !== null) { + actualTop += current.offsetTop + current = current.offsetParent + } + + return actualTop + }, + + loadLightbox: ele => { + const service = GLOBAL_CONFIG.lightbox + + if (service === 'mediumZoom') { + const zoom = mediumZoom(ele) + zoom.on('open', e => { + const photoBg = document.documentElement.getAttribute('data-theme') === 'dark' ? '#121212' : '#fff' + zoom.update({ + background: photoBg + }) + }) + } + + if (service === 'fancybox') { + ele.forEach(i => { + if (i.parentNode.tagName !== 'A') { + const dataSrc = i.dataset.lazySrc || i.src + const dataCaption = i.title || i.alt || '' + btf.wrap(i, 'a', { href: dataSrc, 'data-fancybox': 'gallery', 'data-caption': dataCaption, 'data-thumb': dataSrc }) + } + }) + + if (!window.fancyboxRun) { + Fancybox.bind('[data-fancybox]', { + Hash: false, + Thumbs: { + autoStart: false + } + }) + window.fancyboxRun = true + } + } + }, + + initJustifiedGallery: function (selector) { + selector.forEach(function (i) { + if (!btf.isHidden(i)) { + fjGallery(i, { + itemSelector: '.fj-gallery-item', + rowHeight: 220, + gutter: 4, + onJustify: function () { + this.$container.style.opacity = '1' + } + }) + } + }) + }, + + updateAnchor: (anchor) => { + if (anchor !== window.location.hash) { + if (!anchor) anchor = location.pathname + const title = GLOBAL_CONFIG_SITE.title + window.history.replaceState({ + url: location.href, + title: title + }, title, anchor) + } + } +} diff --git a/lib/hbe.js b/lib/hbe.js new file mode 100644 index 00000000..71205dd7 --- /dev/null +++ b/lib/hbe.js @@ -0,0 +1,297 @@ +(() => { + 'use strict'; + + const cryptoObj = window.crypto || window.msCrypto; + const storage = window.localStorage; + + const storageName = 'hexo-blog-encrypt:#' + window.location.pathname; + const keySalt = textToArray('hexo-blog-encrypt的作者们都是大帅比!'); + const ivSalt = textToArray('hexo-blog-encrypt是地表最强Hexo加密插件!'); + +// As we can't detect the wrong password with AES-CBC, +// so adding an empty div and check it when decrption. +const knownPrefix = ""; + + const mainElement = document.getElementById('hexo-blog-encrypt'); + const wrongPassMessage = mainElement.dataset['wpm']; + const wrongHashMessage = mainElement.dataset['whm']; + const dataElement = mainElement.getElementsByTagName('script')['hbeData']; + const encryptedData = dataElement.innerText; + const HmacDigist = dataElement.dataset['hmacdigest']; + + function hexToArray(s) { + return new Uint8Array(s.match(/[\da-f]{2}/gi).map((h => { + return parseInt(h, 16); + }))); + } + + function textToArray(s) { + var i = s.length; + var n = 0; + var ba = new Array() + + for (var j = 0; j < i;) { + var c = s.codePointAt(j); + if (c < 128) { + ba[n++] = c; + j++; + } else if ((c > 127) && (c < 2048)) { + ba[n++] = (c >> 6) | 192; + ba[n++] = (c & 63) | 128; + j++; + } else if ((c > 2047) && (c < 65536)) { + ba[n++] = (c >> 12) | 224; + ba[n++] = ((c >> 6) & 63) | 128; + ba[n++] = (c & 63) | 128; + j++; + } else { + ba[n++] = (c >> 18) | 240; + ba[n++] = ((c >> 12) & 63) | 128; + ba[n++] = ((c >> 6) & 63) | 128; + ba[n++] = (c & 63) | 128; + j += 2; + } + } + return new Uint8Array(ba); + } + + function arrayBufferToHex(arrayBuffer) { + if (typeof arrayBuffer !== 'object' || arrayBuffer === null || typeof arrayBuffer.byteLength !== 'number') { + throw new TypeError('Expected input to be an ArrayBuffer') + } + + var view = new Uint8Array(arrayBuffer) + var result = '' + var value + + for (var i = 0; i < view.length; i++) { + value = view[i].toString(16) + result += (value.length === 1 ? '0' + value : value) + } + + return result + } + + async function getExecutableScript(oldElem) { + let out = document.createElement('script'); + const attList = ['type', 'text', 'src', 'crossorigin', 'defer', 'referrerpolicy']; + attList.forEach((att) => { + if (oldElem[att]) + out[att] = oldElem[att]; + }) + + return out; + } + + async function convertHTMLToElement(content) { + let out = document.createElement('div'); + out.innerHTML = content; + out.querySelectorAll('script').forEach(async (elem) => { + elem.replaceWith(await getExecutableScript(elem)); + }); + + return out; + } + + function getKeyMaterial(password) { + let encoder = new TextEncoder(); + return cryptoObj.subtle.importKey( + 'raw', + encoder.encode(password), + { + 'name': 'PBKDF2', + }, + false, + [ + 'deriveKey', + 'deriveBits', + ] + ); + } + + function getHmacKey(keyMaterial) { + return cryptoObj.subtle.deriveKey({ + 'name': 'PBKDF2', + 'hash': 'SHA-256', + 'salt': keySalt.buffer, + 'iterations': 1024 + }, keyMaterial, { + 'name': 'HMAC', + 'hash': 'SHA-256', + 'length': 256, + }, true, [ + 'verify', + ]); + } + + function getDecryptKey(keyMaterial) { + return cryptoObj.subtle.deriveKey({ + 'name': 'PBKDF2', + 'hash': 'SHA-256', + 'salt': keySalt.buffer, + 'iterations': 1024, + }, keyMaterial, { + 'name': 'AES-CBC', + 'length': 256, + }, true, [ + 'decrypt', + ]); + } + + function getIv(keyMaterial) { + return cryptoObj.subtle.deriveBits({ + 'name': 'PBKDF2', + 'hash': 'SHA-256', + 'salt': ivSalt.buffer, + 'iterations': 512, + }, keyMaterial, 16 * 8); + } + + async function verifyContent(key, content) { + const encoder = new TextEncoder(); + const encoded = encoder.encode(content); + + let signature = hexToArray(HmacDigist); + + const result = await cryptoObj.subtle.verify({ + 'name': 'HMAC', + 'hash': 'SHA-256', + }, key, signature, encoded); + console.log(`Verification result: ${result}`); + if (!result) { + alert(wrongHashMessage); + console.log(`${wrongHashMessage}, got `, signature, ` but proved wrong.`); + } + return result; + } + + async function decrypt(decryptKey, iv, hmacKey) { + let typedArray = hexToArray(encryptedData); + + const result = await cryptoObj.subtle.decrypt({ + 'name': 'AES-CBC', + 'iv': iv, + }, decryptKey, typedArray.buffer).then(async (result) => { + const decoder = new TextDecoder(); + const decoded = decoder.decode(result); + + // check the prefix, if not then we can sure here is wrong password. + if (!decoded.startsWith(knownPrefix)) { + throw "Decode successfully but not start with KnownPrefix."; + } + + const hideButton = document.createElement('button'); + hideButton.textContent = 'Encrypt again'; + hideButton.type = 'button'; + hideButton.classList.add("hbe-button"); + hideButton.addEventListener('click', () => { + window.localStorage.removeItem(storageName); + window.location.reload(); + }); + + document.getElementById('hexo-blog-encrypt').style.display = 'inline'; + document.getElementById('hexo-blog-encrypt').innerHTML = ''; + document.getElementById('hexo-blog-encrypt').appendChild(await convertHTMLToElement(decoded)); + document.getElementById('hexo-blog-encrypt').appendChild(hideButton); + + // support html5 lazyload functionality. + document.querySelectorAll('img').forEach((elem) => { + if (elem.getAttribute("data-src") && !elem.src) { + elem.src = elem.getAttribute('data-src'); + } + }); + + // support theme-next refresh + window.NexT && NexT.boot && typeof NexT.boot.refresh === 'function' && NexT.boot.refresh(); + + // TOC part + var tocDiv = document.getElementById("toc-div"); + if (tocDiv) { + tocDiv.style.display = 'inline'; + } + + var tocDivs = document.getElementsByClassName('toc-div-class'); + if (tocDivs && tocDivs.length > 0) { + for (var idx = 0; idx < tocDivs.length; idx++) { + tocDivs[idx].style.display = 'inline'; + } + } + + // trigger event + var event = new Event('hexo-blog-decrypt'); + window.dispatchEvent(event); + + return await verifyContent(hmacKey, decoded); + }).catch((e) => { + alert(wrongPassMessage); + console.log(e); + return false; + }); + + return result; + + } + + function hbeLoader() { + + const oldStorageData = JSON.parse(storage.getItem(storageName)); + + if (oldStorageData) { + console.log(`Password got from localStorage(${storageName}): `, oldStorageData); + + const sIv = hexToArray(oldStorageData.iv).buffer; + const sDk = oldStorageData.dk; + const sHmk = oldStorageData.hmk; + + cryptoObj.subtle.importKey('jwk', sDk, { + 'name': 'AES-CBC', + 'length': 256, + }, true, [ + 'decrypt', + ]).then((dkCK) => { + cryptoObj.subtle.importKey('jwk', sHmk, { + 'name': 'HMAC', + 'hash': 'SHA-256', + 'length': 256, + }, true, [ + 'verify', + ]).then((hmkCK) => { + decrypt(dkCK, sIv, hmkCK).then((result) => { + if (!result) { + storage.removeItem(storageName); + } + }); + }); + }); + } + + mainElement.addEventListener('keydown', async (event) => { + if (event.isComposing || event.keyCode === 13) { + const password = document.getElementById('hbePass').value; + const keyMaterial = await getKeyMaterial(password); + const hmacKey = await getHmacKey(keyMaterial); + const decryptKey = await getDecryptKey(keyMaterial); + const iv = await getIv(keyMaterial); + + decrypt(decryptKey, iv, hmacKey).then((result) => { + console.log(`Decrypt result: ${result}`); + if (result) { + cryptoObj.subtle.exportKey('jwk', decryptKey).then((dk) => { + cryptoObj.subtle.exportKey('jwk', hmacKey).then((hmk) => { + const newStorageData = { + 'dk': dk, + 'iv': arrayBufferToHex(iv), + 'hmk': hmk, + }; + storage.setItem(storageName, JSON.stringify(newStorageData)); + }); + }); + } + }); + } + }); + } + + hbeLoader(); + +})(); diff --git a/personal/about/index.html b/personal/about/index.html new file mode 100644 index 00000000..5136578b --- /dev/null +++ b/personal/about/index.html @@ -0,0 +1,670 @@ +关于 | 兔兔博客🇨🇳 + + + + + + + + + + + + + +
+
+
+ +
+
+
+ +

熙熙攘攘,做个人间过客

+
+
+ +
+
+

个人信息

+
    +
    +
    +
  • 姓名: 兔兔
  • +
  • 住址: 广东省
  • +
  • 学校: 不知名的小学校
  • +
    +
    +
  • 性别: 颜控
  • +
  • 年级: 二年级
  • +
  • 擅长: 人工智能,网站开发
  • +
    +
    +
  • 邮箱: 1742305143@qq.com
  • +
+
+
+
+
+ +
+

教育背景

+
    +
  • 学校: 野鸡大学
  • +
  • 主要专业课程: 干饭.jpg(101.5)
  • +
+
+
+
+ +
+

主要项目

+
    +
  • hexo 博客
  • +
  • GitHub action 自动打包
  • +
  • 搜狗词库自动转谷歌
  • +
  • 基于 php 实现即时通讯
  • +
  • 基于 github 实现自动签到
  • +
+
+
+
+ +
+

技能

+
    +
  • 语言技能: 汉语
  • +
  • 专业技能: C++、Java、Python、Linux、HTML、CSS、JavaScript
  • +
  • 通用技能: 干饭
  • +
+
+
+
+ +
+

自我评价

+
    +
  • 思想上乐观开朗,乐于助人,具有团队协作精神及创新意识。
  • +
  • 工作上极富责任心与信念感,对待工作认真负责,有较强的组织管理及动手能力。
  • +
  • 总结:人嘎嘎好!
  • +
+
+
+

评论
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git a/personal/bb/index.html b/personal/bb/index.html new file mode 100644 index 00000000..8d8c60e3 --- /dev/null +++ b/personal/bb/index.html @@ -0,0 +1,360 @@ +唠叨 | 兔兔博客🇨🇳 + + + + + + + + + + + + + +
+ + + + + + +
+ +
+

评论
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git a/personal/love/index.html b/personal/love/index.html new file mode 100644 index 00000000..0800e137 --- /dev/null +++ b/personal/love/index.html @@ -0,0 +1,354 @@ +恋爱小屋 | 兔兔博客🇨🇳 + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

评论
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git a/posts/2b9cc7eb.html b/posts/2b9cc7eb.html new file mode 100644 index 00000000..f7f1a3bd --- /dev/null +++ b/posts/2b9cc7eb.html @@ -0,0 +1,336 @@ +新年快乐 | 兔兔博客🇨🇳 + + + + + + + + + + + + + +

新年快乐

祝大家新年快乐吧,虽然年已经过完了,但还是要记录一下的

+
新年快乐
https://blog.tutuxka.eu.org/posts/2b9cc7eb.html
作者
兔兔博客🇨🇳
发布于
2023-01-29
更新于
2023-01-29
许可协议
CC BY-NC-SA 4.0

评论
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
\ No newline at end of file diff --git a/posts/368ec568.html b/posts/368ec568.html new file mode 100644 index 00000000..8230e6b5 --- /dev/null +++ b/posts/368ec568.html @@ -0,0 +1,500 @@ +随身 wifi 综合小记 | 兔兔博客🇨🇳 + + + + + + + + + + + + + +

随身 wifi 综合小记

一、首先给随身wifi刷入Debian系统

+

1.我是参考酷安的这篇文章:

+

随身wifi刷入Debian系统(详细图文教程)有很详细的教程。

+

2.给随身WiFi debain系统更换源

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99

# 删除并重新创建 /etc/apt/sources.list 文件

sudo rm /etc/apt/sources.list

sudo touch /etc/apt/sources.list



# 写入阿里云的 Debian 软件源到 /etc/apt/sources.list 文件

sudo bash -c 'cat <<EOF > /etc/apt/sources.list

deb http://mirrors.aliyun.com/debian/ bullseye main non-free contrib

deb-src http://mirrors.aliyun.com/debian/ bullseye main non-free contrib

deb http://mirrors.aliyun.com/debian-security/ bullseye-security main

deb-src http://mirrors.aliyun.com/debian-security/ bullseye-security main

deb http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib

deb-src http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib

deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib

deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib

EOF'



echo -e '1、默认软件源修改完成!nn'



# 修改 AdoptOpenJDK 软件源列表

sudo sed -i '1c deb http://mirrors.tuna.tsinghua.edu.cn/Adoptium/deb buster main' /etc/apt/sources.list.d/AdoptOpenJDK.list

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 843C48A565F8F04B

sudo gpg --armor --export 843C48A565F8F04B | sudo apt-key add -



echo -e 'nn2、AdoptOpenJDK报错修复完成!nn'



# 屏蔽 Mobian 软件源

sudo sed -i '1c #deb http://repo.mobian-project.org/ bullseye main non-free' /etc/apt/sources.list.d/mobian.list

echo -e '3、Mobian源报已屏蔽!'



echo -e 'nn####################################nn即将开始更新软件源list......n'

sleep 5



# 更新软件源列表

sudo apt-get update

echo -e 'nn4、更新软件源list更新完成!'



echo -e 'nn####################################nn即将开始升级系统程序至最新版......'

sleep 5



# 持保 openssh-server 包不被更新

sudo apt-mark hold openssh-server



# 升级系统所有包

sudo apt-get -y upgrade



# 解除 openssh-server 包的持保

sudo apt-mark unhold openssh-server



echo -e '5、系统升级完成!'

+

二、给随身wifi刷入typecho

+

这里用全自动安装脚本,自动安装配置Nginx MySQL PHP,安装完毕大约占用500MB空间。

+
1
2
3

wget -O /root/install_typecho.sh https://www.weirain.com/install_typecho.sh && chmod +x /root/install_typecho.sh && /root/install_typecho.sh

+

备份命令 /root/backup_typecho.sh

+

还原命令 /root/restore_typecho.sh

+

三、搭建frp实现内网穿透

+

1.服务端配置 使用frp一键部署脚本,

+

项目地址

+

Aliyun(国内推荐)

+
1
2
3
4
5
6
7

wget https://code.aliyun.com/MvsCode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh

chmod 700 ./install-frps.sh

./install-frps.sh install

+

Gitee

+
1
2
3
4
5
6
7

wget https://gitee.com/mvscode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh

chmod 700 ./install-frps.sh

./install-frps.sh install

+

Github

+
1
2
3
4
5
6
7

wget https://raw.githubusercontent.com/mvscode/frps-onekey/master/install-frps.sh -O ./install-frps.sh

chmod 700 ./install-frps.sh

./install-frps.sh install

+

Uninstall(卸载)

+
1
2
3

./install-frps.sh uninstall

+

Update(更新)

+
1
2
3

./install-frps.sh update

+

服务端相关命令frps start #启动frps服务端

+

frps stop #停止frps服务端

+

frps restart #重启frps服务端

+

frps status #显示frps状态

+

frps config #配置frps服务端

+

frps version #显示frps版本

+

2.步骤说明:

+

2.github (default)输入下载frp服务端配置文件的服务器,默认GitHub

+

Please input frps bind_port1-65535:

+

输入frp提供服务的端口,用于服务器端和客户端通信,默认5443

+

Please input frps vhost_http_port1-65535:

+

输入frp进行http穿透的http服务端口,默认80

+

Please input frps vhost_https_port1-65535:

+

输入frp进行https穿透的https服务端口,默认443

+

Please input frps dashboard_port [1-65535]

+

(Default : 6443):

+

输入frp的控制台服务端口,用于查看frp工作状态,默认6443

+

Please input frps dashboard_user(Default :admin):

+

输入frp的控制台服务账号,默认admin

+

Please input frps dashboard_pwd(Default :):

+

输入frp的控制台服务密码,默认是随机生成的

+

Please input frps token(Default :):

+

输入frp服务器和客户端通信的密码,默认是随机生成的

+

Please input frps subdomain_host(Default :…):

+

输入frp服务器自定义域名,支持自定义二次域名,默认是服务器IP地址

+

Please input frps max_pool_count [1-200]

+

(Default : 50):

+

设置每个代理可以创建的连接池上限,默认50

+

Please select log_level

+

1: info (default)

+

2: warn

+

3: error

+

4: debug

+

设置日志等级,4个选项,默认是info

+

Please input frps log_max_days [1-30]

+

(Default : 3 day):

+

设置日志保留天数,范围是1到30天,默认保留3天

+

Please select log_file

+

1: enable (default)

+

2: disable

+

设置是否开启日志记录,默认开启,开启后日志等级及保留天数生效,否则等级和保留天数无效

+

Please select tcp_mux

+

1: enable (default)

+

2: disable

+

客户端和服务器端之间的连接支持多路复用,默认开启

+

Please select kcp support

+

1: enable (default)

+

2: disable

+

选择是否开启kcp 协议,默认开启,弱网环境下传输效率提升明显,但会有额外的流量消耗

+

启动成功后自定义域名:6443即可访问控制台,服务端就安装成功了。

+

客户端配置

+

首先,前往Github上下载frp客户端文件,Github ,我的随身WiFi是arm64的,我下载的版本是0.51.3。

+

3.1.配置frp

+

解压frp_*_linux_arm.tar.gz,修改frpc.ini

+

[common]server_addr = xx.xx.xx.xx

+

公网服务器ip

+

server_port = 5443

+

与服务器bind_port一致

+

token = MaOB49PlIgfQDuTy

+

与服务器token一致

+

[wifi]

+

type = http

+

连接协议 ssh http https tcp等

+

local_ip = 192.168.2.233

+

内网服务器ip 为本地web服务对应地址

+

local_port = 8080

+

本地web服务端口

+

remote_port = 6000

+

自定义访问内部端口

+

custom_domains =xx.xx

+

绑定域名

+

3.2.运行frp

+

根据自己的需求把frpc和frpc.ini上传到运行的目录,root权限输入

+
1
2
3

./frpc -c ./frpc.ini

+

3.3.远程访问

+

此时,就可以在外网访问网内资源了。

+

3.4.frpc后台运行并自启wifi

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

sudo nano /etc/systemd/system/frpc.service



把下面的内容写入frpc.service中


[Unit]

Description=FRPC Client

After=network.target



[Service]

User=user

WorkingDirectory=/home/user/frp

ExecStart=/home/user/frp/frpc -c /home/user/frp/frpc.ini

Restart=always

RestartSec=5s

Type=simple

# StandardOutput=syslog # 这两行可以删除,因为它们已经被废弃

# StandardError=syslog



[Install]

WantedBy=multi-user.target



然后运行下面的命令

sudo systemctl daemon-reload



sudo systemctl start frpc



sudo systemctl status frpc



sudo systemctl enable frpc



+

根据自己的需求改就好。

+

四、给随身wifi安装docker

+

1.从软件源一键安装docker

+
1
2
3

apt install -y docker.io docker-compose

+

自启动Docker

+
1
2
3

systemctl enable --now docker

+

2.Docker官方一键安装脚本

+

使用官方源安装(国内直接访问较慢)

+
1
2
3

curl -fsSL https://get.docker.com | bash

+

使用阿里源安装

+
1
2
3

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

+

使用中国区Azure源安装

+
1
2
3

curl -fsSL https://get.docker.com | bash -s docker --mirror AzureChinaCloud

+

自启动Docker

+
1
2
3

systemctl enable --now docker

+

一键安装最新版Docker Compose:

+
1
2
3
4
5
6
7

COMPOSE_VERSION=`git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oP "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | sort --version-sort | tail -n 1`

sh -c "curl -L https://github.com/docker/compose/releases/download/v${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"

chmod +x /usr/local/bin/docker-compose

+

到这里就安装好docker了。

+

随身wifi目前已经稳定运行了十多天了,很不错。

+
随身 wifi 综合小记
https://blog.tutuxka.eu.org/posts/368ec568.html
作者
兔兔博客🇨🇳
发布于
2024-10-02
更新于
2024-10-02
许可协议
CC BY-NC-SA 4.0

评论
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
\ No newline at end of file diff --git a/posts/427ff66d.html b/posts/427ff66d.html new file mode 100644 index 00000000..cbf95465 --- /dev/null +++ b/posts/427ff66d.html @@ -0,0 +1,384 @@ +记 QQ 无头机器人搭建教程 | 兔兔博客🇨🇳 + + + + + + + + + + + + + +

记 QQ 无头机器人搭建教程

First. 环境

+

电脑一枚, QQ 最新版,以及一个科学的上网环境,加一个灵活的双手

+

Second.电脑登入 QQ,并再手机上开启自动登入,然后退出 QQ(是退出程序,不是退出登入哈😊)

+

Than.下载最新版 QQ 无头框架 https://github.com/NapNeko/NapCatQQ-Desktop/releases,然后启动,点击 Napcat,点击下载,然后等待下载完成,然后添加机器人,名称随便写,机器人 QQ 号就填你刚才电脑登入的那个 QQ 号,其他的不用管,点击连接配置,点击 websocket 服务,点击启用,主机填 127.0.0.1,端口填 6700,最后点击添加到机器人列表,启动,便可以了,后续可自行对接插件

+
记 QQ 无头机器人搭建教程
https://blog.tutuxka.eu.org/posts/427ff66d.html
作者
兔兔博客🇨🇳
发布于
2024-07-26
更新于
2024-07-26
许可协议
CC BY-NC-SA 4.0

评论
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
\ No newline at end of file diff --git a/posts/4ecf8221.html b/posts/4ecf8221.html new file mode 100644 index 00000000..5127ea0f --- /dev/null +++ b/posts/4ecf8221.html @@ -0,0 +1,385 @@ +自建腾讯地理位置api | 兔兔博客🇨🇳 + + + + + + + + + + + + + +

自建腾讯地理位置api

祝大家双节快乐,这里分享一下怎么自己搭建博客首页的地理位置欢迎api

+

首先你要有一个vercel的账号,没有的可以自行百度注册一个

+

然后点击部署

+

部署

+

部署成功和可以自己换一个域名,根据页面内的教程替换代码便可以了。

+
自建腾讯地理位置api
https://blog.tutuxka.eu.org/posts/4ecf8221.html
作者
兔兔博客🇨🇳
发布于
2023-09-30
更新于
2024-01-31
许可协议
CC BY-NC-SA 4.0

评论
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
\ No newline at end of file diff --git a/posts/7894e390.html b/posts/7894e390.html new file mode 100644 index 00000000..d1903514 --- /dev/null +++ b/posts/7894e390.html @@ -0,0 +1,568 @@ +分类: Markdown | 兔兔博客🇨🇳 + + + + + + + + + + + + + +

Markdown 基本语法

既然是一门语言,就会有语法规范。Markdown 的基础语法十分简单,保证你几分钟就可以掌握。

+

2.1. 标题

+

使用 #,可以表示 1-6 级标题。

+
+

# 一级标题

+

## 二级标题

+

### 三级标题

+

#### 四级标题

+

##### 五级标题

+

###### 六级标题

+
+

效果:

+
+

一级标题

+

二级标题

+

三级标题

+

四级标题

+
五级标题
+
六级标题
+
+

2.2. 区块引用

+

在段落的每行或者只在第一行使用符号>,还可使用多个嵌套引用,如:

+
+

> 区块引用

+

>> 嵌套引用

+
+

效果:

+
+

区块引用

+
+

嵌套引用

+
+
+

2.3. 代码区块

+

代码区块的建立是在每行加上4个空格或者一个制表符(如同写代码一样)。

+

如果你只想高亮语句中的某个函数名或关键字,可以使用反引号 函数名 实现。

+

通常编辑器根据代码片段适配合适的高亮方法,但你也可以用 3 个 ` 包裹一段代码,并指定一种语言,如:

+
+

普通段落:

+

```c(指定以下代码为 C 语言)

+

void main()

+

{

+

printf(“Hello, Markdown!”);

+

}

+

```

+
+

代码区块:

+
1
2
3
4
void main()
{
printf("Hello, Markdown!");
}
+

2.4. 强调(加粗、斜体)

+

在强调内容两侧分别加上 1 个 * 或者 _,如:

+
+

*斜体*,_斜体_

+

*粗体*,_粗体_

+
+

效果:

+
+

斜体斜体

+

粗体粗体

+
+

2.5. 删除线

+

使用双波浪线 ~~ 将需要删除线的文本括起来,如:

+
+

~~删除线~~

+
+

效果:

+
+

删除线

+
+

2.6. 无序列表

+

使用 ·+、或 - 标记无序列表,如:

+
+

- 第一项

+

- 第二项

+

- 第三项

+
+

效果:

+
+
    +
  • 第一项
  • +
  • 第二项
  • +
  • 第三项
  • +
+
+

2.7. 有序列表

+

有序列表的标记方式是将上述的符号换成数字,并辅以 .,如:

+
+

1. 第一项

+

2. 第二项

+

3. 第三项

+
+

效果:

+
+
    +
  1. 第一项
  2. +
  3. 第一项
  4. +
  5. 第一项
  6. +
+
+

2.8. 分割线

+

分割线最常使用就是三个或以上 *,还可以使用 -_,如:

+
+

***

+

+

___

+
+

效果:

+
+

注意: 分割线与之前的内容要用空行。

+
+

2.9. 链接

+

链接使用方法是 [链接名称](链接地址),如:

+
+

这是 GitHub 的链接地址:[GitHub](https://github.com/)

+
+

效果:

+
+

这是 GitHub 的链接地址:GitHub

+
+

2.10. 表格

+

Markdown 制作表格使用 | 来分隔不同的单元格,使用 - 来分隔表头和其他行。

+

语法格式如下:

+
+

| 表头 | 表头 |

+

| ---- | ---- |

+

| 单元格 | 单元格 |

+

| 单元格 | 单元格 |

+
+

效果:

+ + + + + + + + + + + + + + + + + +
表头表头
单元格单元格
单元格单元格
+
对齐方式
+

我们可以设置表格的对齐方式:

+
    +
  1. -: 居右对齐。
  2. +
  3. :- 居左对齐。
  4. +
  5. :-: 居中对齐。
  6. +
+

例如:

+
+

| 左对齐左对齐 | 右对齐右对齐 | 居中对齐居中对齐 |

+

| :-----| ----: | :----: |

+

| 单元格 | 单元格 | 单元格 |

+

| 单元格 | 单元格 | 单元格 |

+
+

效果:

+ + + + + + + + + + + + + + + + + + + + +
左对齐左对齐右对齐右对齐居中对齐居中对齐
单元格单元格单元格
单元格单元格单元格
+

2.11. 图片

+

Markdown 图片语法格式有三部分组成:

+
    +
  • 开头一个感叹号 !
  • +
  • 接着一个方括号,里面放上图片的替代文字
  • +
  • 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上选择性的 ‘title’ 属性的文字。
    +如: +
    +

    ![alt 属性文本](图片地址)

    +
    +
  • +
+

2.12. 转义字符

+

Markdown 使用了很多特殊符号来表示特定的意义,例如 #_{} 等,如果需要显示特定的符号则需要使用转义字符,Markdown 使用反斜杠 \ 转义特殊字符,如:

+
+

\*\* 正常显示星号 \*\*

+
+

效果:

+
+

** 正常显示星号 **

+
+

2.13. 脚注

+

在需要添加注脚的文字后加上脚注名: [^注脚名] 。 然后在文本的任意位置(一般在最后)添加脚注,如:

+
+

约翰·格鲁伯[^1]是 Markdown 的创始人。

+

注释在页尾,可以通过点击注脚到达。

+

[^1]: 百度百科 -

+
+

2.14. LaTex 公式

+

默认下的分隔符:

+

$$...$$ 或者 \[...\] 或者 ````math` 中的数学表达式将会在块内显示。

+

如:

+
+

$$

+

\begin{Bmatrix}

+

a & b \

+

c & d

+

\end{Bmatrix}

+

$$

+
+

效果:

+
+

$$
+\begin{Bmatrix}
+a & b \
+c & d
+\end{Bmatrix}
+$$

+
+

2.15. Markdown 高阶用法

+

对于纯 Markdown 编辑器来说,基础语法已经足够了,而高阶用法可能并不兼容。并且,有些高阶语法真的很鸡肋,学习意义不大,建议了解。比如 Markdown 支持 HTML元素,可以画流程图、时序图、甘特图等等。

+
Markdown 基本语法
https://blog.tutuxka.eu.org/posts/7894e390.html
作者
兔兔博客🇨🇳
发布于
2024-10-02
更新于
2024-10-02
许可协议
CC BY-NC-SA 4.0

评论
\ No newline at end of file diff --git a/posts/a15ff491.html b/posts/a15ff491.html new file mode 100644 index 00000000..1cee6baf --- /dev/null +++ b/posts/a15ff491.html @@ -0,0 +1,395 @@ +2023~2024年度记录 | 兔兔博客🇨🇳 + + + + + + + + + + + + + +

2023~2024年度记录

+ +
+
+ + + + + + +
+
+
+
2023~2024年度记录
https://blog.tutuxka.eu.org/posts/a15ff491.html
作者
兔兔博客🇨🇳
发布于
2024-09-07
更新于
2024-10-05
许可协议
CC BY-NC-SA 4.0

评论
\ No newline at end of file diff --git a/posts/b1d4025b.html b/posts/b1d4025b.html new file mode 100644 index 00000000..e9f0f540 --- /dev/null +++ b/posts/b1d4025b.html @@ -0,0 +1,394 @@ +hello-world | 兔兔博客🇨🇳 + + + + + + + + + + + + + +

hello-world

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

+
1
$ hexo new "My New Post"
+

More info: Writing

+

Run server

+
1
$ hexo server
+

More info: Server

+

Generate static files

+
1
$ hexo generate
+

More info: Generating

+

Deploy to remote sites

+
1
$ hexo deploy
+

More info: Deployment

+
hello-world
https://blog.tutuxka.eu.org/posts/b1d4025b.html
作者
兔兔博客🇨🇳
发布于
2023-02-09
更新于
2024-10-05
许可协议
CC BY-NC-SA 4.0

评论
\ No newline at end of file diff --git a/posts/ee601c8a.html b/posts/ee601c8a.html new file mode 100644 index 00000000..0eba9276 --- /dev/null +++ b/posts/ee601c8a.html @@ -0,0 +1,420 @@ +国庆爬个明日方舟立绘并搭建api | 兔兔博客🇨🇳 + + + + + + + + + + + + + + +

国庆爬个明日方舟立绘并搭建api

大家国庆快乐呀,写了个爬虫送给大家

+
+

先感谢着几位大佬🍭
+新年前爬个明日方舟的立绘
+明日方舟干员立绘爬虫
+CloudFlare Worker搭建随机图片API
+无意间刷到了大佬的博客,看到了这个明日方舟的立绘挺有意思的,想直接抄作业,但奈何代码失效了,就自己改了一下,发出来记录一下

+
+

看了一下,应该是后面爬链接的那一块失效了,原文是这样的"给的是 /images/thumb/6/65/%E7%AB%8B%E7%BB%98_%E5%87%AF%E5%B0%94%E5%B8%8C_2.png ,我要的是这个 http://prts.wiki/images/6/65/立绘_凯尔希_2.png 嘛!
+现在应该是更新了,给的链接是https://prts.wiki/w/文件:立绘_12F_1.png,但需要的是https://media.prts.wiki/6/61/立绘_12F_1.png

+

现在完全牛头不对马嘴嘛🌚

+
+

所以研究了一下之后,感觉应该可以
+我就直接上代码了

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# 引入程序需要的相应包(类似C语言中的# include<stdio.h> 、include<math.h>等)
import os
from bs4 import BeautifulSoup
import time
import requests

# 设置爬取图片的网址
url = "http://prts.wiki/index.php?title=%E7%89%B9%E6%AE%8A:%E6%90%9C%E7%B4%A2&limit=500&offset=0&profile=images&search=%E7%AB%8B%E7%BB%98"


# 重定义请求头,防止被网页发现是爬虫,从而进行反爬操作
headers = {
"Cookie": "arccount62298=c; arccount62019=c",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66"
}


# 爬取模块
html = requests.get(url, headers=headers) ## 这里是使用requests函数用之前重定义的请求头读取网页信息
### 测试代码
### print(html.text)
html.encoding = html.apparent_encoding ## encoding是从http中的header中的charset字段中提取的编码方式,若header中没有charset字段则默认为ISO-8859-1编码模式,无法解析中文,这是乱码的原因,apparent_encoding会从网页的内容中分析网页编码的方式,所以apparent_encoding比encoding更加准确,当网页出现乱码时可以把apparent_encoding的编码格式赋值给encoding。
soup = BeautifulSoup(html.text, "html.parser") ## "html.parser"是为了让解析速度快,容错率高,具体讲解网址为https://blog.csdn.net/yangjiajia123456/article/details/80959896
list = soup.find_all(class_ = "searchResultImage") ## 注一:对爬取页面进行“检查”操作后发现,所有的图片都包含在一个<table class="searchResultImage">的class中,所以这行代码的作用是查找html代码中标签为class且值为searchRusultImgge的所有代码块
### 测试代码
### print(list)
### 可以看到,相比于html.text,list里没有大量的网页配置信息,只有以图片名称为核心的列表


# 检查项目文件夹下是否有“Arknights”这个文件夹,没有的话新建一个,有的话就不新建了
try:
os.mkdir("./Arknights") ## 注二:创建文件夹(这个文件夹创建在现在的项目文件夹里,比方说我这里用的是“明日方舟干员立绘项目”项目文件夹,爬取到的图片就存在“明日方舟干员立绘项目”项目文件夹下的“Arknights”文件夹里,该函数具体介绍网址为https://blog.csdn.net/qq_20412595/article/details/82423764)
## 项目文件夹默认在代码存放的地方,如果你放在桌面,那后面生成的Arknights文件夹就在桌面
except:
pass

# 将当前工作路径切换为“Arknights”这个文件夹
os.chdir("./Arknights") ## 切换当前工作路径(本函数的具体介绍在https://www.runoob.com/python3/python3-os-chdir.html)

# 将最初读取的图片设置为第一张图片
num=0

# 测试用参数
# num1 = 0
# num2 = 0

# 图片的爬取与本地存储
for s in list:
string = str(s) ## 将list中的单个元素化为字符串,再针对该字符串进行处理

namebegin = string.find('title="文件') ## 注三:显然,所有立绘的文件名开头都有“文件”二字,找到“文件”二字就相当于找到了立绘 注四:为了读取图片里包含的干员名,我们发现能够通过title入手,向后搜索名称,这里找到了"title"中"t”的位置
# name_point_1 = namebegin+12 ## 为了读取干员名称,我们这里找到第一个空格的位置name_point_1(这里空格刚好在namebegin后的第二格)
# name_point_2 = string.find(' 1'or' 2'or' skin') ## 这里找到第二个空格的位置name_point_2(本方法返回值远小于namebegin的数值,是错误的)
nameend = string[namebegin:].find('png') ## 找到图片文件名末尾的"png"字样对应的位置

## 测试代码
# print(namebegin)
# print(name_point_1)
# print(name_point_2)
# print(nameend)

## 这里如果使用name_point_2 = string.find(' 1'or' 2'or' skin'),会显示位置为54,远小于namebegin的位置值,是错误的,所以用这种方法难以找到第二个空格的位置,所以我们将"干员名 1/2/skin(b/_V).png"整体令为name1,再在name1里寻找空格位置
name1 = string[namebegin+13:namebegin+nameend-1]
name1begin = name1.find('"干员名"')
name1_point_1 = name1begin
name1_point_2 = name1.find(' 1'or' 2'or' skin') ## 根据测试代码我们有,输出结果为-1,即name1[name1begin]对应于name1的最后一个字符

# 测试代码
# print(name1) # 输出结果格式"暗索 skin1 V1"
# print(name1begin)
# print(name1[name1begin])
# print(name1_point_1)
# print(name1_point_2)

# print(string[(namebegin+nameend-3):(namebegin+nameend-1)]) ## 本代码用来查看后两位并进行检验

if(string[namebegin+nameend-3:namebegin+nameend-1] in ['V1','V2']): ## 若后两位为V1或V2
# num1+=1
# print('num1={}'.format(num1))
continue
elif(string[namebegin+nameend-2:namebegin+nameend-1]=='b'): ## 若最后一位为b
# num2+=1
# print('num2={}'.format(num2))
continue
else:
name1 = name1 + '.png'

# 测试代码
# print(name1)

# 修改文件名称
name1 = name1.replace(" ","_") ## 将图片文件名里的空格转为”_“

# 设置显示的链接名
urlbegin = string.find('https://media.prts.wiki/thumb/')
if urlbegin != -1:
urlend = string.find('.png', urlbegin)
imgurl_suffix = string[urlbegin+30:urlend+4] # 获取https://media.prts.wiki/thumb/后面的内容
imgurl = 'https://media.prts.wiki/' + imgurl_suffix
# 爬取图片
img = requests.get(imgurl, headers=headers).content

# 测试代码
# print(name1)

# 图片写入本地文件夹
if(name1 not in ['精二立绘A.png','Pith_2.png','Sharp_2.png','Stormeye_2.png','Touch_2.png','阿米娅(近卫)_2.png']): ## 为了不读取”精二立绘A“与五位特殊干员(前面博文有说到)的图片,专门做了一个循环(其实爬取后再直接寻找删除也可以)
## 经过noionion大佬的提示,or的优先级不高,所以不能用if(name1 != '精二立绘A.png' or 'Pith_2.png' or 'Sharp_2.png' or 'Stormeye_2.png' or 'Touch_2.png' or '阿米娅(近卫)_2.png'):写法
## 他还建议我对列表进行硬操作,而不是用!=这种逻辑运算符(说可能会炸,我慌的一批)
## 所以我去除了if(name1 != ('精二立绘A.png' or 'Pith_2.png' or 'Sharp_2.png' or 'Stormeye_2.png' or 'Touch_2.png' or '阿米娅(近卫)_2.png')),改用全新的判断语法
with open(name1, 'wb') as f:
f.write(img) ## 将爬取到的图片写入“Arknights”这个文件夹里
num+=1 ## num=num+1,使得下面print函数里的”已爬取{}张“中的{}对应数值加1
print("已爬取{}张,图片名称为:{},链接为:{}".format(num,name1,imgurl)) ## 这里{}的意义与C语言中的"%d"/"%f"十分相近,是从format()函数里读取对应位置的参数
# "r"--以读方式打开,只能读文件,如果文件不存在,会发生异常
# "w"--以写方式打开,只能写文件,如果文件不存在,创建该文件;如果文件已存在,先清空,再打开文件
# "rb"--以二进制读方式打开,只能读文件,如果文件不存在,会发生异常
# "wb"--以二进制写方式打开,只能写文件,如果文件不存在,创建该文件;如果文件已存在,先清空,再打开文件(所以这个程序就算运行多次,文件夹里也不会出现重复的立绘)
time.sleep(1) ## 休息一秒后爬取下一张图片,这个函数在链接https://blog.csdn.net/weixin_45949073/article/details/104989562里讲得很清楚
+

这里参照了https://www.heart-of-engine.top/posts/fccf.html的代码,小小改动了一点,成功运行起来了🌝

+
+

后面由于想做成随机图片api所以就用CloudFlare Worker搭建了
+直接上教程了

+
+

图片转 Webp
+这步骤可选,转换为 webp 格式后,图片体积压缩而分辨率不变,可以更快地加载。

+

为了在引用时方便,先把名称按 1、2、3…顺序标号,再通过 PIL 库,将 jpg 和 png 格式的图片转换成 webp。

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import os
from PIL import Image

def rename_and_convert_images(directory):
# 获取目录中的所有文件
files = os.listdir(directory)
# 过滤出 png 和 webp 格式的文件
png_files = [f for f in files if f.lower().endswith('.png')]
webp_files = [f for f in files if f.lower().endswith('.webp')]

# 找到现有的最大序号
max_index = 0
for f in webp_files:
try:
index = int(os.path.splitext(f)[0])
if index > max_index:
max_index = index
except ValueError:
continue

# 按顺序重命名文件并转换格式
for index, filename in enumerate(png_files, start=max_index + 1):
# 构建新的文件名
new_filename = f"{index}.webp"
# 构建完整的文件路径
old_filepath = os.path.join(directory, filename)
new_filepath = os.path.join(directory, new_filename)

# 打开图像并转换为 webp 格式
with Image.open(old_filepath) as img:
img.save(new_filepath, 'webp')

# 删除原始文件
os.remove(old_filepath)
print(f"Converted {filename} to {new_filename}")

# 使用示例
directory = './Arknights' # 替换为你的目录路径
rename_and_convert_images(directory)
+
+

文件上传 Github
+这步骤不具体说了,图片通过 jsdeliver 引用。

+
+

CloudFlare Worker
+新建一个 worker,代码参考如下:

+

+因为改了文件名,所以下面只需要修改图片总数 total,就能生成一个随机数访问
++个人通过 type 区别宽屏和竖屏图片,自己按需修改

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
addEventListener('fetch', event => {
event.respondWith(
handleRequest(event.request).catch((err) =>
new Response('cfworker error:\n' + err.stack, {
status: 502,
})
)
);
});

async function handleRequest(request) {
const url = new URL(request.url);
switch (url.pathname) {
case "/img":
var type = url.searchParams.has("type") ? url.searchParams.get("type") : "pc";
const total = getTotal(type);
if (total == 0) return handleImage("pc", getTotal("pc"));
return handleImage(type, total);
case "/favicon.ico":
return fetch("https://gcore.jsdelivr.net/gh/SukiEva/assets/blog/favicon.ico");
default:
return handleNotFound();
}
}

function getTotal(type) {
switch (type) {
case "pc": return 175;
case "mb": return 0;
default: return 0;
}
}

async function handleImage(type, total) {
var index = Math.floor((Math.random() * total)) + 1;
var img = "https://gcore.jsdelivr.net/gh/SukiEva/assets/webp/" + type + "/" + index + ".webp";
res = await fetch(img);
return new Response(res.body, {
headers: {
'content-type': 'image/webp',
},
});
}

function handleNotFound() {
return new Response('Not Found', {
status: 404,
});
}
+
+

自定义域名
+默认是一个 CF 的域名,但是目前已经被国内 ban 了,需要自行添加域名路由。

+

最后再次祝看到这篇博客的小伙伴:

+

2024,国庆快乐鸭!

+

在小小的洞里爬呀爬呀爬( 逃

+
国庆爬个明日方舟立绘并搭建api
https://blog.tutuxka.eu.org/posts/ee601c8a.html
作者
兔兔博客🇨🇳
发布于
2024-10-05
更新于
2024-10-05
许可协议
CC BY-NC-SA 4.0

评论
\ No newline at end of file diff --git a/posts/fae67b61.html b/posts/fae67b61.html new file mode 100644 index 00000000..badb8955 --- /dev/null +++ b/posts/fae67b61.html @@ -0,0 +1,406 @@ +地球online更新 | 兔兔博客🇨🇳 + + + + + + + + + + + + + + +

地球online更新

地球onile将在8.24日00:00分进行版本更新并将于12点开服

+

更新内容:新增核废水太平洋

+

主线任务:活到成年

+

更新团队:🇯🇵

+

更新计划:制造哥斯拉

+

更新内容尽情期待

+

停服补偿:奇异海鲜及墓碑蓝图一份

+

PS:可能由于网络(天气)延迟,导致开服时间推后

+

——地球onile运营团队

+

《地球online》更新预告

+

亲爱的玩家你好:

+

本次更新于8月24日早上7~10点,系统检测到《地球online》玩家对海洋的探索进度低于30%做出此不关服更新

+

新增:

+

绿色的海洋 本次海洋拥有全新元素与新的生物和新的文明遗址

+

地球OL要迎来新的赛季“辐射”

+

1.添加了新的地形“被污染的海”“被污染的土地”

+

2.给人物增添了新的健康条“辐射值”

+

3.盖格计数器被新增词条“必需品”“任务”

+

4.新增词条“辐射”“被污染”

+

5.更多的DNA分支

+

6.将更新大部分设施

+

7.削弱全体玩家

+

8.将“防护服”归为平民用品

+

以上是赛季“辐射”的更新内容

+

祝各位玩家游戏愉快😋

+
地球online更新
https://blog.tutuxka.eu.org/posts/fae67b61.html
作者
兔兔博客🇨🇳
发布于
2023-08-24
更新于
2024-01-26
许可协议
CC BY-NC-SA 4.0

评论
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
\ No newline at end of file diff --git a/search.xml b/search.xml new file mode 100644 index 00000000..a3d15154 --- /dev/null +++ b/search.xml @@ -0,0 +1,170 @@ + + + + + + + 国庆爬个明日方舟立绘并搭建api + + /posts/ee601c8a.html + + 大家国庆快乐呀,写了个爬虫送给大家


先感谢着几位大佬🍭
新年前爬个明日方舟的立绘
明日方舟干员立绘爬虫
CloudFlare Worker搭建随机图片API
无意间刷到了大佬的博客,看到了这个明日方舟的立绘挺有意思的,想直接抄作业,但奈何代码失效了,就自己改了一下,发出来记录一下


看了一下,应该是后面爬链接的那一块失效了,原文是这样的"给的是 /images/thumb/6/65/%E7%AB%8B%E7%BB%98_%E5%87%AF%E5%B0%94%E5%B8%8C_2.png ,我要的是这个 http://prts.wiki/images/6/65/立绘_凯尔希_2.png 嘛!
现在应该是更新了,给的链接是https://prts.wiki/w/文件:立绘_12F_1.png,但需要的是https://media.prts.wiki/6/61/立绘_12F_1.png

现在完全牛头不对马嘴嘛🌚


所以研究了一下之后,感觉应该可以
我就直接上代码了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# 引入程序需要的相应包(类似C语言中的# include<stdio.h> 、include<math.h>等)
import os
from bs4 import BeautifulSoup
import time
import requests

# 设置爬取图片的网址
url = "http://prts.wiki/index.php?title=%E7%89%B9%E6%AE%8A:%E6%90%9C%E7%B4%A2&limit=500&offset=0&profile=images&search=%E7%AB%8B%E7%BB%98"


# 重定义请求头,防止被网页发现是爬虫,从而进行反爬操作
headers = {
"Cookie": "arccount62298=c; arccount62019=c",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66"
}


# 爬取模块
html = requests.get(url, headers=headers) ## 这里是使用requests函数用之前重定义的请求头读取网页信息
### 测试代码
### print(html.text)
html.encoding = html.apparent_encoding ## encoding是从http中的header中的charset字段中提取的编码方式,若header中没有charset字段则默认为ISO-8859-1编码模式,无法解析中文,这是乱码的原因,apparent_encoding会从网页的内容中分析网页编码的方式,所以apparent_encoding比encoding更加准确,当网页出现乱码时可以把apparent_encoding的编码格式赋值给encoding。
soup = BeautifulSoup(html.text, "html.parser") ## "html.parser"是为了让解析速度快,容错率高,具体讲解网址为https://blog.csdn.net/yangjiajia123456/article/details/80959896
list = soup.find_all(class_ = "searchResultImage") ## 注一:对爬取页面进行“检查”操作后发现,所有的图片都包含在一个<table class="searchResultImage">的class中,所以这行代码的作用是查找html代码中标签为class且值为searchRusultImgge的所有代码块
### 测试代码
### print(list)
### 可以看到,相比于html.text,list里没有大量的网页配置信息,只有以图片名称为核心的列表


# 检查项目文件夹下是否有“Arknights”这个文件夹,没有的话新建一个,有的话就不新建了
try:
os.mkdir("./Arknights") ## 注二:创建文件夹(这个文件夹创建在现在的项目文件夹里,比方说我这里用的是“明日方舟干员立绘项目”项目文件夹,爬取到的图片就存在“明日方舟干员立绘项目”项目文件夹下的“Arknights”文件夹里,该函数具体介绍网址为https://blog.csdn.net/qq_20412595/article/details/82423764)
## 项目文件夹默认在代码存放的地方,如果你放在桌面,那后面生成的Arknights文件夹就在桌面
except:
pass

# 将当前工作路径切换为“Arknights”这个文件夹
os.chdir("./Arknights") ## 切换当前工作路径(本函数的具体介绍在https://www.runoob.com/python3/python3-os-chdir.html)

# 将最初读取的图片设置为第一张图片
num=0

# 测试用参数
# num1 = 0
# num2 = 0

# 图片的爬取与本地存储
for s in list:
string = str(s) ## 将list中的单个元素化为字符串,再针对该字符串进行处理

namebegin = string.find('title="文件') ## 注三:显然,所有立绘的文件名开头都有“文件”二字,找到“文件”二字就相当于找到了立绘 注四:为了读取图片里包含的干员名,我们发现能够通过title入手,向后搜索名称,这里找到了"title"中"t”的位置
# name_point_1 = namebegin+12 ## 为了读取干员名称,我们这里找到第一个空格的位置name_point_1(这里空格刚好在namebegin后的第二格)
# name_point_2 = string.find(' 1'or' 2'or' skin') ## 这里找到第二个空格的位置name_point_2(本方法返回值远小于namebegin的数值,是错误的)
nameend = string[namebegin:].find('png') ## 找到图片文件名末尾的"png"字样对应的位置

## 测试代码
# print(namebegin)
# print(name_point_1)
# print(name_point_2)
# print(nameend)

## 这里如果使用name_point_2 = string.find(' 1'or' 2'or' skin'),会显示位置为54,远小于namebegin的位置值,是错误的,所以用这种方法难以找到第二个空格的位置,所以我们将"干员名 1/2/skin(b/_V).png"整体令为name1,再在name1里寻找空格位置
name1 = string[namebegin+13:namebegin+nameend-1]
name1begin = name1.find('"干员名"')
name1_point_1 = name1begin
name1_point_2 = name1.find(' 1'or' 2'or' skin') ## 根据测试代码我们有,输出结果为-1,即name1[name1begin]对应于name1的最后一个字符

# 测试代码
# print(name1) # 输出结果格式"暗索 skin1 V1"
# print(name1begin)
# print(name1[name1begin])
# print(name1_point_1)
# print(name1_point_2)

# print(string[(namebegin+nameend-3):(namebegin+nameend-1)]) ## 本代码用来查看后两位并进行检验

if(string[namebegin+nameend-3:namebegin+nameend-1] in ['V1','V2']): ## 若后两位为V1或V2
# num1+=1
# print('num1={}'.format(num1))
continue
elif(string[namebegin+nameend-2:namebegin+nameend-1]=='b'): ## 若最后一位为b
# num2+=1
# print('num2={}'.format(num2))
continue
else:
name1 = name1 + '.png'

# 测试代码
# print(name1)

# 修改文件名称
name1 = name1.replace(" ","_") ## 将图片文件名里的空格转为”_“

# 设置显示的链接名
urlbegin = string.find('https://media.prts.wiki/thumb/')
if urlbegin != -1:
urlend = string.find('.png', urlbegin)
imgurl_suffix = string[urlbegin+30:urlend+4] # 获取https://media.prts.wiki/thumb/后面的内容
imgurl = 'https://media.prts.wiki/' + imgurl_suffix
# 爬取图片
img = requests.get(imgurl, headers=headers).content

# 测试代码
# print(name1)

# 图片写入本地文件夹
if(name1 not in ['精二立绘A.png','Pith_2.png','Sharp_2.png','Stormeye_2.png','Touch_2.png','阿米娅(近卫)_2.png']): ## 为了不读取”精二立绘A“与五位特殊干员(前面博文有说到)的图片,专门做了一个循环(其实爬取后再直接寻找删除也可以)
## 经过noionion大佬的提示,or的优先级不高,所以不能用if(name1 != '精二立绘A.png' or 'Pith_2.png' or 'Sharp_2.png' or 'Stormeye_2.png' or 'Touch_2.png' or '阿米娅(近卫)_2.png'):写法
## 他还建议我对列表进行硬操作,而不是用!=这种逻辑运算符(说可能会炸,我慌的一批)
## 所以我去除了if(name1 != ('精二立绘A.png' or 'Pith_2.png' or 'Sharp_2.png' or 'Stormeye_2.png' or 'Touch_2.png' or '阿米娅(近卫)_2.png')),改用全新的判断语法
with open(name1, 'wb') as f:
f.write(img) ## 将爬取到的图片写入“Arknights”这个文件夹里
num+=1 ## num=num+1,使得下面print函数里的”已爬取{}张“中的{}对应数值加1
print("已爬取{}张,图片名称为:{},链接为:{}".format(num,name1,imgurl)) ## 这里{}的意义与C语言中的"%d"/"%f"十分相近,是从format()函数里读取对应位置的参数
# "r"--以读方式打开,只能读文件,如果文件不存在,会发生异常
# "w"--以写方式打开,只能写文件,如果文件不存在,创建该文件;如果文件已存在,先清空,再打开文件
# "rb"--以二进制读方式打开,只能读文件,如果文件不存在,会发生异常
# "wb"--以二进制写方式打开,只能写文件,如果文件不存在,创建该文件;如果文件已存在,先清空,再打开文件(所以这个程序就算运行多次,文件夹里也不会出现重复的立绘)
time.sleep(1) ## 休息一秒后爬取下一张图片,这个函数在链接https://blog.csdn.net/weixin_45949073/article/details/104989562里讲得很清楚

这里参照了https://www.heart-of-engine.top/posts/fccf.html的代码,小小改动了一点,成功运行起来了🌝


后面由于想做成随机图片api所以就用CloudFlare Worker搭建了
直接上教程了


图片转 Webp
这步骤可选,转换为 webp 格式后,图片体积压缩而分辨率不变,可以更快地加载。

为了在引用时方便,先把名称按 1、2、3…顺序标号,再通过 PIL 库,将 jpg 和 png 格式的图片转换成 webp。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import os
from PIL import Image

def rename_and_convert_images(directory):
# 获取目录中的所有文件
files = os.listdir(directory)
# 过滤出 png 和 webp 格式的文件
png_files = [f for f in files if f.lower().endswith('.png')]
webp_files = [f for f in files if f.lower().endswith('.webp')]

# 找到现有的最大序号
max_index = 0
for f in webp_files:
try:
index = int(os.path.splitext(f)[0])
if index > max_index:
max_index = index
except ValueError:
continue

# 按顺序重命名文件并转换格式
for index, filename in enumerate(png_files, start=max_index + 1):
# 构建新的文件名
new_filename = f"{index}.webp"
# 构建完整的文件路径
old_filepath = os.path.join(directory, filename)
new_filepath = os.path.join(directory, new_filename)

# 打开图像并转换为 webp 格式
with Image.open(old_filepath) as img:
img.save(new_filepath, 'webp')

# 删除原始文件
os.remove(old_filepath)
print(f"Converted {filename} to {new_filename}")

# 使用示例
directory = './Arknights' # 替换为你的目录路径
rename_and_convert_images(directory)

文件上传 Github
这步骤不具体说了,图片通过 jsdeliver 引用。


CloudFlare Worker
新建一个 worker,代码参考如下:

+因为改了文件名,所以下面只需要修改图片总数 total,就能生成一个随机数访问
+个人通过 type 区别宽屏和竖屏图片,自己按需修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
addEventListener('fetch', event => {
event.respondWith(
handleRequest(event.request).catch((err) =>
new Response('cfworker error:\n' + err.stack, {
status: 502,
})
)
);
});

async function handleRequest(request) {
const url = new URL(request.url);
switch (url.pathname) {
case "/img":
var type = url.searchParams.has("type") ? url.searchParams.get("type") : "pc";
const total = getTotal(type);
if (total == 0) return handleImage("pc", getTotal("pc"));
return handleImage(type, total);
case "/favicon.ico":
return fetch("https://gcore.jsdelivr.net/gh/SukiEva/assets/blog/favicon.ico");
default:
return handleNotFound();
}
}

function getTotal(type) {
switch (type) {
case "pc": return 175;
case "mb": return 0;
default: return 0;
}
}

async function handleImage(type, total) {
var index = Math.floor((Math.random() * total)) + 1;
var img = "https://gcore.jsdelivr.net/gh/SukiEva/assets/webp/" + type + "/" + index + ".webp";
res = await fetch(img);
return new Response(res.body, {
headers: {
'content-type': 'image/webp',
},
});
}

function handleNotFound() {
return new Response('Not Found', {
status: 404,
});
}

自定义域名
默认是一个 CF 的域名,但是目前已经被国内 ban 了,需要自行添加域名路由。

最后再次祝看到这篇博客的小伙伴:

2024,国庆快乐鸭!

在小小的洞里爬呀爬呀爬( 逃

]]>
+ + + + + + 爬虫 + + Worker + + + +
+ + + + + Markdown 基本语法 + + /posts/7894e390.html + + 既然是一门语言,就会有语法规范。Markdown 的基础语法十分简单,保证你几分钟就可以掌握。

2.1. 标题

使用 #,可以表示 1-6 级标题。

# 一级标题

## 二级标题

### 三级标题

#### 四级标题

##### 五级标题

###### 六级标题

效果:

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

2.2. 区块引用

在段落的每行或者只在第一行使用符号>,还可使用多个嵌套引用,如:

> 区块引用

>> 嵌套引用

效果:

区块引用

嵌套引用

2.3. 代码区块

代码区块的建立是在每行加上4个空格或者一个制表符(如同写代码一样)。

如果你只想高亮语句中的某个函数名或关键字,可以使用反引号 函数名 实现。

通常编辑器根据代码片段适配合适的高亮方法,但你也可以用 3 个 ` 包裹一段代码,并指定一种语言,如:

普通段落:

```c(指定以下代码为 C 语言)

void main()

{

printf(“Hello, Markdown!”);

}

```

代码区块:

1
2
3
4
void main()
{
printf("Hello, Markdown!");
}

2.4. 强调(加粗、斜体)

在强调内容两侧分别加上 1 个 * 或者 _,如:

*斜体*,_斜体_

*粗体*,_粗体_

效果:

斜体斜体

粗体粗体

2.5. 删除线

使用双波浪线 ~~ 将需要删除线的文本括起来,如:

~~删除线~~

效果:

删除线

2.6. 无序列表

使用 ·+、或 - 标记无序列表,如:

- 第一项

- 第二项

- 第三项

效果:

  • 第一项
  • 第二项
  • 第三项

2.7. 有序列表

有序列表的标记方式是将上述的符号换成数字,并辅以 .,如:

1. 第一项

2. 第二项

3. 第三项

效果:

  1. 第一项
  2. 第一项
  3. 第一项

2.8. 分割线

分割线最常使用就是三个或以上 *,还可以使用 -_,如:

***

___

效果:

注意: 分割线与之前的内容要用空行。

2.9. 链接

链接使用方法是 [链接名称](链接地址),如:

这是 GitHub 的链接地址:[GitHub](https://github.com/)

效果:

这是 GitHub 的链接地址:GitHub

2.10. 表格

Markdown 制作表格使用 | 来分隔不同的单元格,使用 - 来分隔表头和其他行。

语法格式如下:

| 表头 | 表头 |

| ---- | ---- |

| 单元格 | 单元格 |

| 单元格 | 单元格 |

效果:

表头表头
单元格单元格
单元格单元格
对齐方式

我们可以设置表格的对齐方式:

  1. -: 居右对齐。
  2. :- 居左对齐。
  3. :-: 居中对齐。

例如:

| 左对齐左对齐 | 右对齐右对齐 | 居中对齐居中对齐 |

| :-----| ----: | :----: |

| 单元格 | 单元格 | 单元格 |

| 单元格 | 单元格 | 单元格 |

效果:

左对齐左对齐右对齐右对齐居中对齐居中对齐
单元格单元格单元格
单元格单元格单元格

2.11. 图片

Markdown 图片语法格式有三部分组成:

  • 开头一个感叹号 !
  • 接着一个方括号,里面放上图片的替代文字
  • 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上选择性的 ‘title’ 属性的文字。
    如:

    ![alt 属性文本](图片地址)

2.12. 转义字符

Markdown 使用了很多特殊符号来表示特定的意义,例如 #_{} 等,如果需要显示特定的符号则需要使用转义字符,Markdown 使用反斜杠 \ 转义特殊字符,如:

\*\* 正常显示星号 \*\*

效果:

** 正常显示星号 **

2.13. 脚注

在需要添加注脚的文字后加上脚注名: [^注脚名] 。 然后在文本的任意位置(一般在最后)添加脚注,如:

约翰·格鲁伯[^1]是 Markdown 的创始人。

注释在页尾,可以通过点击注脚到达。

[^1]: 百度百科 -

2.14. LaTex 公式

默认下的分隔符:

$$...$$ 或者 \[...\] 或者 ````math` 中的数学表达式将会在块内显示。

如:

$$

\begin{Bmatrix}

a & b \

c & d

\end{Bmatrix}

$$

效果:

$$
\begin{Bmatrix}
a & b \
c & d
\end{Bmatrix}
$$

2.15. Markdown 高阶用法

对于纯 Markdown 编辑器来说,基础语法已经足够了,而高阶用法可能并不兼容。并且,有些高阶语法真的很鸡肋,学习意义不大,建议了解。比如 Markdown 支持 HTML元素,可以画流程图、时序图、甘特图等等。

]]>
+ + + +
+ + + + + 随身 wifi 综合小记 + + /posts/368ec568.html + + 一、首先给随身wifi刷入Debian系统

1.我是参考酷安的这篇文章:

随身wifi刷入Debian系统(详细图文教程)有很详细的教程。

2.给随身WiFi debain系统更换源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99

# 删除并重新创建 /etc/apt/sources.list 文件

sudo rm /etc/apt/sources.list

sudo touch /etc/apt/sources.list



# 写入阿里云的 Debian 软件源到 /etc/apt/sources.list 文件

sudo bash -c 'cat <<EOF > /etc/apt/sources.list

deb http://mirrors.aliyun.com/debian/ bullseye main non-free contrib

deb-src http://mirrors.aliyun.com/debian/ bullseye main non-free contrib

deb http://mirrors.aliyun.com/debian-security/ bullseye-security main

deb-src http://mirrors.aliyun.com/debian-security/ bullseye-security main

deb http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib

deb-src http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib

deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib

deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib

EOF'



echo -e '1、默认软件源修改完成!nn'



# 修改 AdoptOpenJDK 软件源列表

sudo sed -i '1c deb http://mirrors.tuna.tsinghua.edu.cn/Adoptium/deb buster main' /etc/apt/sources.list.d/AdoptOpenJDK.list

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 843C48A565F8F04B

sudo gpg --armor --export 843C48A565F8F04B | sudo apt-key add -



echo -e 'nn2、AdoptOpenJDK报错修复完成!nn'



# 屏蔽 Mobian 软件源

sudo sed -i '1c #deb http://repo.mobian-project.org/ bullseye main non-free' /etc/apt/sources.list.d/mobian.list

echo -e '3、Mobian源报已屏蔽!'



echo -e 'nn####################################nn即将开始更新软件源list......n'

sleep 5



# 更新软件源列表

sudo apt-get update

echo -e 'nn4、更新软件源list更新完成!'



echo -e 'nn####################################nn即将开始升级系统程序至最新版......'

sleep 5



# 持保 openssh-server 包不被更新

sudo apt-mark hold openssh-server



# 升级系统所有包

sudo apt-get -y upgrade



# 解除 openssh-server 包的持保

sudo apt-mark unhold openssh-server



echo -e '5、系统升级完成!'

二、给随身wifi刷入typecho

这里用全自动安装脚本,自动安装配置Nginx MySQL PHP,安装完毕大约占用500MB空间。

1
2
3

wget -O /root/install_typecho.sh https://www.weirain.com/install_typecho.sh && chmod +x /root/install_typecho.sh && /root/install_typecho.sh

备份命令 /root/backup_typecho.sh

还原命令 /root/restore_typecho.sh

三、搭建frp实现内网穿透

1.服务端配置 使用frp一键部署脚本,

项目地址

Aliyun(国内推荐)

1
2
3
4
5
6
7

wget https://code.aliyun.com/MvsCode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh

chmod 700 ./install-frps.sh

./install-frps.sh install

Gitee

1
2
3
4
5
6
7

wget https://gitee.com/mvscode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh

chmod 700 ./install-frps.sh

./install-frps.sh install

Github

1
2
3
4
5
6
7

wget https://raw.githubusercontent.com/mvscode/frps-onekey/master/install-frps.sh -O ./install-frps.sh

chmod 700 ./install-frps.sh

./install-frps.sh install

Uninstall(卸载)

1
2
3

./install-frps.sh uninstall

Update(更新)

1
2
3

./install-frps.sh update

服务端相关命令frps start #启动frps服务端

frps stop #停止frps服务端

frps restart #重启frps服务端

frps status #显示frps状态

frps config #配置frps服务端

frps version #显示frps版本

2.步骤说明:

2.github (default)输入下载frp服务端配置文件的服务器,默认GitHub

Please input frps bind_port1-65535:

输入frp提供服务的端口,用于服务器端和客户端通信,默认5443

Please input frps vhost_http_port1-65535:

输入frp进行http穿透的http服务端口,默认80

Please input frps vhost_https_port1-65535:

输入frp进行https穿透的https服务端口,默认443

Please input frps dashboard_port [1-65535]

(Default : 6443):

输入frp的控制台服务端口,用于查看frp工作状态,默认6443

Please input frps dashboard_user(Default :admin):

输入frp的控制台服务账号,默认admin

Please input frps dashboard_pwd(Default :):

输入frp的控制台服务密码,默认是随机生成的

Please input frps token(Default :):

输入frp服务器和客户端通信的密码,默认是随机生成的

Please input frps subdomain_host(Default :…):

输入frp服务器自定义域名,支持自定义二次域名,默认是服务器IP地址

Please input frps max_pool_count [1-200]

(Default : 50):

设置每个代理可以创建的连接池上限,默认50

Please select log_level

1: info (default)

2: warn

3: error

4: debug

设置日志等级,4个选项,默认是info

Please input frps log_max_days [1-30]

(Default : 3 day):

设置日志保留天数,范围是1到30天,默认保留3天

Please select log_file

1: enable (default)

2: disable

设置是否开启日志记录,默认开启,开启后日志等级及保留天数生效,否则等级和保留天数无效

Please select tcp_mux

1: enable (default)

2: disable

客户端和服务器端之间的连接支持多路复用,默认开启

Please select kcp support

1: enable (default)

2: disable

选择是否开启kcp 协议,默认开启,弱网环境下传输效率提升明显,但会有额外的流量消耗

启动成功后自定义域名:6443即可访问控制台,服务端就安装成功了。

客户端配置

首先,前往Github上下载frp客户端文件,Github ,我的随身WiFi是arm64的,我下载的版本是0.51.3。

3.1.配置frp

解压frp_*_linux_arm.tar.gz,修改frpc.ini

[common]server_addr = xx.xx.xx.xx

公网服务器ip

server_port = 5443

与服务器bind_port一致

token = MaOB49PlIgfQDuTy

与服务器token一致

[wifi]

type = http

连接协议 ssh http https tcp等

local_ip = 192.168.2.233

内网服务器ip 为本地web服务对应地址

local_port = 8080

本地web服务端口

remote_port = 6000

自定义访问内部端口

custom_domains =xx.xx

绑定域名

3.2.运行frp

根据自己的需求把frpc和frpc.ini上传到运行的目录,root权限输入

1
2
3

./frpc -c ./frpc.ini

3.3.远程访问

此时,就可以在外网访问网内资源了。

3.4.frpc后台运行并自启wifi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

sudo nano /etc/systemd/system/frpc.service



把下面的内容写入frpc.service中


[Unit]

Description=FRPC Client

After=network.target



[Service]

User=user

WorkingDirectory=/home/user/frp

ExecStart=/home/user/frp/frpc -c /home/user/frp/frpc.ini

Restart=always

RestartSec=5s

Type=simple

# StandardOutput=syslog # 这两行可以删除,因为它们已经被废弃

# StandardError=syslog



[Install]

WantedBy=multi-user.target



然后运行下面的命令

sudo systemctl daemon-reload



sudo systemctl start frpc



sudo systemctl status frpc



sudo systemctl enable frpc



根据自己的需求改就好。

四、给随身wifi安装docker

1.从软件源一键安装docker

1
2
3

apt install -y docker.io docker-compose

自启动Docker

1
2
3

systemctl enable --now docker

2.Docker官方一键安装脚本

使用官方源安装(国内直接访问较慢)

1
2
3

curl -fsSL https://get.docker.com | bash

使用阿里源安装

1
2
3

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

使用中国区Azure源安装

1
2
3

curl -fsSL https://get.docker.com | bash -s docker --mirror AzureChinaCloud

自启动Docker

1
2
3

systemctl enable --now docker

一键安装最新版Docker Compose:

1
2
3
4
5
6
7

COMPOSE_VERSION=`git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oP "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | sort --version-sort | tail -n 1`

sh -c "curl -L https://github.com/docker/compose/releases/download/v${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"

chmod +x /usr/local/bin/docker-compose

到这里就安装好docker了。

随身wifi目前已经稳定运行了十多天了,很不错。

]]>
+ + + +
+ + + + + 2023~2024年度记录 + + /posts/a15ff491.html + +
]]>
+ + + + + 生活点滴 + + + + + + + 生活 + + + +
+ + + + + 记 QQ 无头机器人搭建教程 + + /posts/427ff66d.html + + First. 环境

电脑一枚, QQ 最新版,以及一个科学的上网环境,加一个灵活的双手

Second.电脑登入 QQ,并再手机上开启自动登入,然后退出 QQ(是退出程序,不是退出登入哈😊)

Than.下载最新版 QQ 无头框架 https://github.com/NapNeko/NapCatQQ-Desktop/releases,然后启动,点击 Napcat,点击下载,然后等待下载完成,然后添加机器人,名称随便写,机器人 QQ 号就填你刚才电脑登入的那个 QQ 号,其他的不用管,点击连接配置,点击 websocket 服务,点击启用,主机填 127.0.0.1,端口填 6700,最后点击添加到机器人列表,启动,便可以了,后续可自行对接插件

]]>
+ + + + + + 教程 + + + +
+ + + + + 自建腾讯地理位置api + + /posts/4ecf8221.html + + 祝大家双节快乐,这里分享一下怎么自己搭建博客首页的地理位置欢迎api

首先你要有一个vercel的账号,没有的可以自行百度注册一个

然后点击部署

部署

部署成功和可以自己换一个域名,根据页面内的教程替换代码便可以了。

]]>
+ + + + + 技术教程 + + + + +
+ + + + + 地球online更新 + + /posts/fae67b61.html + + 地球onile将在8.24日00:00分进行版本更新并将于12点开服

更新内容:新增核废水太平洋

主线任务:活到成年

更新团队:🇯🇵

更新计划:制造哥斯拉

更新内容尽情期待

停服补偿:奇异海鲜及墓碑蓝图一份

PS:可能由于网络(天气)延迟,导致开服时间推后

——地球onile运营团队

《地球online》更新预告

亲爱的玩家你好:

本次更新于8月24日早上7~10点,系统检测到《地球online》玩家对海洋的探索进度低于30%做出此不关服更新

新增:

绿色的海洋 本次海洋拥有全新元素与新的生物和新的文明遗址

地球OL要迎来新的赛季“辐射”

1.添加了新的地形“被污染的海”“被污染的土地”

2.给人物增添了新的健康条“辐射值”

3.盖格计数器被新增词条“必需品”“任务”

4.新增词条“辐射”“被污染”

5.更多的DNA分支

6.将更新大部分设施

7.削弱全体玩家

8.将“防护服”归为平民用品

以上是赛季“辐射”的更新内容

祝各位玩家游戏愉快😋

]]>
+ + + + + + 日本 + + 核废水 + + + +
+ + + + + hello-world + + /posts/b1d4025b.html + + 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

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

]]>
+ + + +
+ + + + + 新年快乐 + + /posts/2b9cc7eb.html + + 祝大家新年快乐吧,虽然年已经过完了,但还是要记录一下的

]]>
+ + + + + 生活点滴 + + + + +
+ + + + +
diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..b52397db --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,233 @@ + + + + + https://blog.tutuxka.eu.org/tags/index.html + + 2024-10-05 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/social/fcircle/index.html + + 2024-10-05 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/social/link/index.html + + 2024-10-05 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/personal/about/index.html + + 2024-10-05 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/personal/love/index.html + + 2024-10-05 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/bangumis/index.html + + 2024-10-05 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/categories/index.html + + 2024-10-05 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/posts/a15ff491.html + + 2024-10-05 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/posts/b1d4025b.html + + 2024-10-05 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/posts/ee601c8a.html + + 2024-10-05 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/posts/7894e390.html + + 2024-10-02 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/posts/368ec568.html + + 2024-10-02 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/time/index.html + + 2024-09-07 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/posts/427ff66d.html + + 2024-07-26 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/posts/4ecf8221.html + + 2024-01-31 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/posts/fae67b61.html + + 2024-01-26 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/personal/bb/index.html + + 2023-04-05 + + monthly + 0.6 + + + + https://blog.tutuxka.eu.org/posts/2b9cc7eb.html + + 2023-01-29 + + monthly + 0.6 + + + + + https://blog.tutuxka.eu.org/ + 2024-10-05 + daily + 1.0 + + + + + https://blog.tutuxka.eu.org/tags/%E7%94%9F%E6%B4%BB/ + 2024-10-05 + weekly + 0.2 + + + + https://blog.tutuxka.eu.org/tags/%E7%88%AC%E8%99%AB/ + 2024-10-05 + weekly + 0.2 + + + + https://blog.tutuxka.eu.org/tags/Worker/ + 2024-10-05 + weekly + 0.2 + + + + https://blog.tutuxka.eu.org/tags/%E6%97%A5%E6%9C%AC/ + 2024-10-05 + weekly + 0.2 + + + + https://blog.tutuxka.eu.org/tags/%E6%A0%B8%E5%BA%9F%E6%B0%B4/ + 2024-10-05 + weekly + 0.2 + + + + https://blog.tutuxka.eu.org/tags/%E6%95%99%E7%A8%8B/ + 2024-10-05 + weekly + 0.2 + + + + + + https://blog.tutuxka.eu.org/categories/%E7%94%9F%E6%B4%BB%E7%82%B9%E6%BB%B4/ + 2024-10-05 + weekly + 0.2 + + + + https://blog.tutuxka.eu.org/categories/%E6%8A%80%E6%9C%AF%E6%95%99%E7%A8%8B/ + 2024-10-05 + weekly + 0.2 + + + diff --git a/social/fcircle/index.html b/social/fcircle/index.html new file mode 100644 index 00000000..223d5759 --- /dev/null +++ b/social/fcircle/index.html @@ -0,0 +1,355 @@ +朋友圈 | 兔兔博客🇨🇳 + + + + + + + + + + + + + +
+ + + + +

评论
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git a/social/link/index.html b/social/link/index.html new file mode 100644 index 00000000..a42cb83c --- /dev/null +++ b/social/link/index.html @@ -0,0 +1,393 @@ +友人帐 | 兔兔博客🇨🇳 + + + + + + + + + + + + + +

本站友链添加方式:

+ +

加入本站友链方式

+

参照以下格式留言即可

+
1
2
3
4
5
- name: #站点名称
link: #站点链接
avatar: #站长头像
descr: #站点描述
siteshot: #站点截图
+

站点截图可以自己提供,尺寸尽量不要大于 600*600,图片压缩后最好小于200KB。
+未提供站点预览图的,本站会根据贵站链接调用以下 API 自动获取贵站的站点截图。
+对于做了反扒措施的站点,API 获取的将是反扒页面,望知悉。
+站点截图建议使用以下 API 获取以匹配本站样式
+有部分朋友的截图体积过大影响加载速度,后面一律采用小体积截图代替望周知

+
1
https://image.thum.io/get/allowJPG/wait/20/width/600/crop/950/https://<你的域名>/
+

🎉本站支持交换友链,在您提出申请之前,请将本站添加至友链
+🥗为了保障本站用户,本站仅支持个人网站的友链申请
+🍧申请本站友链需要拥有独立域名(非免费域名),建议开启全站HTTPS
+🥫如果友情链接已经添加,请保持网站的正常访问,会定期清理僵尸网站
+🍖网站有一定的实质性内容和主题,不能是空壳网站和练手网站
+💕感谢您对本站的支持,如果您已经满足上述要求,请在下方表单提交友链申请~~~

+
+
+ + +

评论
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git a/tags/Worker/index.html b/tags/Worker/index.html new file mode 100644 index 00000000..9326d059 --- /dev/null +++ b/tags/Worker/index.html @@ -0,0 +1,289 @@ +标签: Worker | 兔兔博客🇨🇳 + + + + + + + + + + + +
标签 - Worker
2024
国庆爬个明日方舟立绘并搭建api
国庆爬个明日方舟立绘并搭建api
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 00000000..b642c5aa --- /dev/null +++ b/tags/index.html @@ -0,0 +1,291 @@ +标签 | 兔兔博客🇨🇳 + + + + + + + + + + + + + +
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git "a/tags/\346\225\231\347\250\213/index.html" "b/tags/\346\225\231\347\250\213/index.html" new file mode 100644 index 00000000..98589749 --- /dev/null +++ "b/tags/\346\225\231\347\250\213/index.html" @@ -0,0 +1,289 @@ +标签: 教程 | 兔兔博客🇨🇳 + + + + + + + + + + + +
标签 - 教程
2024
记 QQ 无头机器人搭建教程
记 QQ 无头机器人搭建教程
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git "a/tags/\346\227\245\346\234\254/index.html" "b/tags/\346\227\245\346\234\254/index.html" new file mode 100644 index 00000000..13643845 --- /dev/null +++ "b/tags/\346\227\245\346\234\254/index.html" @@ -0,0 +1,289 @@ +标签: 日本 | 兔兔博客🇨🇳 + + + + + + + + + + + +
标签 - 日本
2023
地球online更新
地球online更新
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git "a/tags/\346\240\270\345\272\237\346\260\264/index.html" "b/tags/\346\240\270\345\272\237\346\260\264/index.html" new file mode 100644 index 00000000..ca6d084a --- /dev/null +++ "b/tags/\346\240\270\345\272\237\346\260\264/index.html" @@ -0,0 +1,289 @@ +标签: 核废水 | 兔兔博客🇨🇳 + + + + + + + + + + + +
标签 - 核废水
2023
地球online更新
地球online更新
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git "a/tags/\347\210\254\350\231\253/index.html" "b/tags/\347\210\254\350\231\253/index.html" new file mode 100644 index 00000000..85d43339 --- /dev/null +++ "b/tags/\347\210\254\350\231\253/index.html" @@ -0,0 +1,289 @@ +标签: 爬虫 | 兔兔博客🇨🇳 + + + + + + + + + + + +
标签 - 爬虫
2024
国庆爬个明日方舟立绘并搭建api
国庆爬个明日方舟立绘并搭建api
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git "a/tags/\347\224\237\346\264\273/index.html" "b/tags/\347\224\237\346\264\273/index.html" new file mode 100644 index 00000000..07fdd44d --- /dev/null +++ "b/tags/\347\224\237\346\264\273/index.html" @@ -0,0 +1,289 @@ +标签: 生活 | 兔兔博客🇨🇳 + + + + + + + + + + + +
标签 - 生活
2024
2023~2024年度记录
2023~2024年度记录
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git a/time/index.html b/time/index.html new file mode 100644 index 00000000..42682cdb --- /dev/null +++ b/time/index.html @@ -0,0 +1,298 @@ +旧时光 | 兔兔博客🇨🇳 + + + + + + + + + + + + + +
    +
  1. 兔兔博客启动啦
  2. +
  3. 修了一下bug
  4. +
  5. 紧急修复了图床失效问题
  6. +
  7. 更新了一些小功能
  8. +
  9. 7.6 重构了博客,优化了访问速度,修复了一些失效图片
  10. +
+
avatar
🐟认真内卷中
兔兔博客🇨🇳
万事都要全力以赴,包括开心
前往小窝
公告栏
--- 主域名 ---
blog.tutuxka.eu.org
--- 备用域名 ---
netlify.tutuxka.eu.org🍧
小站资讯
文章数目 :
9
本站总字数 :
6331
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file