jekyll-theme-chirpy-customized-upe 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d4cdcfbbfc79f8d9c480fa2461382b8e0b6b93556c237c1c307f648af5834814
4
- data.tar.gz: 5d5562cdd43424a76ae0c938d8306ecfa105570e758c50465f5b3258e973aa14
3
+ metadata.gz: a6743e1d57385617ea45d144d7e6ccc0f1425787c36c03c3e9f09c23d192c664
4
+ data.tar.gz: 984b663331973f39addf1a9af13ef7d33f1e8c5ae55bed6a0abdfc23fd15e13c
5
5
  SHA512:
6
- metadata.gz: 3c2a863cccbbe4dbb8182be1ec3d102442e3275fb39c7d85b150aa7289e6e6d31f487549362e17faf933ca07693a9dd4f18ee169161eadeafef799a17379391e
7
- data.tar.gz: 7595347ae1243479c229574a57db3722cf891432e67927a62676036b7d3dad7abc11c86871d23be255aabb4dd717785916f50eec04794adf39c1978f104d982e
6
+ metadata.gz: 2df78e174e0d328cfb7ea97f6a23c6d0ce41fb9499232f8f5eedbc9dcf1a38d9a58890abdc65c0f54dcac8cf7a702be78ea0bb4d912c68fad19b99069780dc8a
7
+ data.tar.gz: a3159235331edbe7e5a49bfda0f378227704094d70d328c3c32eee8a320e3db44e14e913c1cf42b9bfaf5014e19bce607e85b98c1746757a3990fc6832db192a
data/_data/locales/en.yml CHANGED
@@ -11,7 +11,6 @@ layout:
11
11
  tabs:
12
12
  # format: <filename_without_extension>: <value>
13
13
  home: Home
14
- gallery: Gallery
15
14
  categories: Categories
16
15
  tags: Tags
17
16
  archives: Archives
@@ -82,15 +81,35 @@ categories:
82
81
  login:
83
82
  username: Username
84
83
  password: Password
84
+ enter_username: Please enter your username
85
+ enter_password: Please enter your password
85
86
  login: Login
87
+ login_fail: Login failed!
88
+ enter_vaild_email: Please enter valid email address!
89
+ waiting_for_verification: Registration successful, waiting for email verification. Message has been sent!
86
90
  register: Register
91
+ register_fail: Register failed!
92
+ email_not_verified: The current user's email has not been verified and cannot be logged in temporarily.
87
93
  logout: Logout
88
94
  forgot: Forgot
89
- forgot_prompt: Enter the email you used to login
95
+ forgot_prompt: Enter your registered email address
90
96
  forgot_password: Forgot Password?
97
+ go_to_login: Go to Login
91
98
  go_to_register: Go to Register
92
99
  new_username: New Username
93
100
  new_password: New Password
94
101
  email: Email(MUST)
102
+ reset_password_success: Password reset email has been sent!
103
+ email_missing: Please enter your email address.
95
104
  confirm: Confirm
96
105
 
106
+ # sidebar
107
+ sidebar:
108
+ new_avatar: Please provide the URL of the new avatar
109
+ new_nickname: Please enter your new nickname
110
+ optional: Optioinal
111
+ invalid_url: Invalid URL
112
+ submit: Submit
113
+ cancel: Cancel
114
+ save_success: Save Successfully!
115
+
@@ -80,15 +80,35 @@ categories:
80
80
  # login and forgot page
81
81
  login:
82
82
  username: 사용자 이름
83
- password: 암호
83
+ password: 비밀번호
84
+ enter_username: 사용자 이름을 입력하세요
85
+ enter_password: 비밀번호를 입력해주세요
84
86
  login: 로그인
85
- register: 등록
86
- logout: 로그오프
87
- forgot: 비밀번호를 잊어버렸습니다
88
- forgot_prompt: 등록할 때 사용한 이메일 주소를 입력하세요.
89
- forgot_password: 비밀번호를 잊으셨나요?
90
- go_to_register: 등록으로 이동
87
+ login_fail: 로그인 실패!
88
+ enter_vaild_email: 유효한 이메일 주소를 입력해주세요!
89
+ waiting_for_verification: 등록이 완료되었습니다. 이메일 확인을 기다리는 중입니다. 메시지가 전송되었습니다!
90
+ register: 등록하다
91
+ register_fail: 등록 실패!
92
+ email_not_verified: 현재 사용자의 이메일은 인증되지 않아 일시적으로 로그인이 불가능합니다.
93
+ logout: 로그 아웃
94
+ forgot: 암호를 재설정
95
+ forgot_prompt: 등록된 이메일 주소를 입력하세요
96
+ forgot_password: 비밀번호를 잊으 셨나요?
97
+ go_to_login: 로그인으로 이동
98
+ go_to_register: 등록하러 가기
91
99
  new_username: 새 사용자 이름
92
100
  new_password: 새 비밀번호
93
- email: 이메일 (필수)
94
- confirm: 확실한가요
101
+ email: 이메일(필수)
102
+ reset_password_success: 비밀번호 재설정 메일이 발송되었습니다!
103
+ email_missing: 당신의 이메일 주소를 입력하십시오.
104
+ confirm: 확신하는
105
+
106
+ # sidebar
107
+ sidebar:
108
+ new_avatar: 새 아바타의 URL을 제공해 주세요.
109
+ new_nickname: 새로운 닉네임을 입력해주세요
110
+ optional: 선택 과목
111
+ invalid_url: 잘못된 URL
112
+ submit: 제출하다
113
+ cancel: 취소
114
+ save_success: 성공적으로 저장되었습니다!
@@ -11,7 +11,6 @@ layout:
11
11
  tabs:
12
12
  # format: <filename_without_extension>: <value>
13
13
  home: 首页
14
- gallery: 画廊
15
14
  categories: 分类
16
15
  tags: 标签
17
16
  archives: 归档
@@ -81,14 +80,34 @@ categories:
81
80
  login:
82
81
  username: 用户名
83
82
  password: 密码
83
+ enter_username: 请输入您的用户名
84
+ enter_password: 请输入您的密码
84
85
  login: 登录
86
+ login_fail: 登录失败!
87
+ enter_vaild_email: 请输入有效的邮箱地址!
88
+ waiting_for_verification: 注册成功,等待验证邮箱。邮件已发送!
85
89
  register: 注册
90
+ register_fail: 注册失败!
91
+ email_not_verified: 当前用户邮箱未通过验证,暂时无法登录
86
92
  logout: 登出
87
- forgot: 忘记密码
93
+ forgot: 重置密码
88
94
  forgot_prompt: 输入您注册时的邮箱
89
95
  forgot_password: 忘记密码?
96
+ go_to_login: 去登录
90
97
  go_to_register: 去注册
91
98
  new_username: 新用户名
92
99
  new_password: 新密码
93
100
  email: 邮箱(必填)
94
- confirm: 确定
101
+ reset_password_success: 密码重置电子邮件已发送!
102
+ email_missing: 请输入您的电子邮件地址。
103
+ confirm: 确定
104
+
105
+ # sidebar
106
+ sidebar:
107
+ new_avatar: 请提供新头像的网址
108
+ new_nickname: 请输入您的新昵称
109
+ optional: 选填
110
+ invalid_url: 非法URL!
111
+ submit: 提交
112
+ cancel: 取消
113
+ save_success: 保存成功!
@@ -86,14 +86,35 @@ categories:
86
86
  login:
87
87
  username: 用戶名
88
88
  password: 密碼
89
+ enter_username: 請輸入您的用戶名
90
+ enter_password: 請輸入您的密碼
89
91
  login: 登入
90
- register: 注冊
92
+ login_fail: 登入失敗!
93
+ enter_vaild_email: 請輸入有效的電子郵件地址!
94
+ waiting_for_verification: 註冊成功,等待郵件驗證。 消息已發送!
95
+ register: 註冊
96
+ register_fail: 註冊失敗!
97
+ email_not_verified: 目前使用者的郵箱尚未驗證,暫時無法登入。
91
98
  logout: 登出
92
- forgot: 忘記密碼
93
- forgot_prompt: 輸入您用於登入的電子郵件
99
+ forgot: 重設密碼
100
+ forgot_prompt: 輸入您註冊的電子郵件地址
94
101
  forgot_password: 忘記密碼?
95
- go_to_register: 去注冊
102
+ go_to_login: 前往登入
103
+ go_to_register: 前往註冊
96
104
  new_username: 新用戶名
97
105
  new_password: 新密碼
98
- email: 郵箱(必填)
99
- confirm: 確定
106
+ email: 電子郵件(必須)
107
+ reset_password_success: 密碼重設電子郵件已發送!
108
+ email_missing: 請輸入您的電子郵件地址。
109
+ confirm: 確認
110
+
111
+ # sidebar
112
+ sidebar:
113
+ new_avatar: 請提供新頭像的網址
114
+ new_nickname: 請輸入您的新暱稱
115
+ optional: 選填
116
+ invalid_url: 無效的網址
117
+ submit: 提交
118
+ cancel: 取消
119
+ save_success: 保存成功!
120
+
@@ -8,8 +8,6 @@ cdns:
8
8
  - url: https://fonts.googleapis.com
9
9
  # jsDelivr CDN
10
10
  - url: https://cdn.jsdelivr.net
11
- # polyfill.io for math
12
- - url: https://polyfill.io
13
11
 
14
12
  # fonts
15
13
 
@@ -35,7 +33,7 @@ search:
35
33
  js: https://cdn.jsdelivr.net/npm/simple-jekyll-search@1.10.0/dest/simple-jekyll-search.min.js
36
34
 
37
35
  mermaid:
38
- js: https://cdn.jsdelivr.net/npm/mermaid@10.8.0/dist/mermaid.min.js
36
+ js: https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js
39
37
 
40
38
  dayjs:
41
39
  js:
@@ -1,4 +1,5 @@
1
1
  <script src="https://cdn.jsdelivr.net/npm/leancloud-storage/dist/av-min.js"></script>
2
+
2
3
  <script type="text/javascript">
3
4
  let appId = '{{ site.Leancloud.appId }}';
4
5
  let appKey = '{{ site.Leancloud.appKey }}';
@@ -35,4 +36,57 @@
35
36
  };
36
37
  /* 在页面加载时调用checkLogin函数检查登录状态 */
37
38
  window.addEventListener('load', checkLogin);
39
+ </script>
40
+
41
+ <script src="https://code.jquery.com/jquery-3.2.0.min.js"></script>
42
+ <script>
43
+
44
+ const visitors_record = AV.Object.extend('visitors_record');
45
+ const visitors = new visitors_record();
46
+
47
+ function getPageInfo() {
48
+ return new Promise(function (resolve, reject) {
49
+ $.getJSON("https://2024.ipchaxun.com/", function (data) {
50
+ resolve(data);
51
+ });
52
+ });
53
+ }
54
+
55
+ getPageInfo().then(function (locationData) {
56
+ if (AV.User.current() == null || AV.User.current().get('username') != 'JoCruise') {
57
+ var currentUrl = window.location.href;
58
+ var ip = locationData.ip;
59
+ var country = locationData.data[0];
60
+ var province = locationData.data[1];
61
+ var city = locationData.data[2];
62
+ var district = locationData.data[3];
63
+ var isp = locationData.data[4];
64
+ var userAgent = navigator.userAgent;
65
+ var loadTime = window.performance.timing.domContentLoadedEventEnd - window.performance.timing.navigationStart;
66
+
67
+ visitors.set('visitor_ip', ip);
68
+ visitors.set('visited_url', currentUrl);
69
+ visitors.set('visitor_country', country);
70
+ visitors.set('visitor_province', province);
71
+ visitors.set('visitor_city', city);
72
+ visitors.set('visitor_district', district);
73
+ visitors.set('visitor_isp', isp);
74
+ visitors.set('visitor_ua', userAgent);
75
+ visitors.set('page_load_time', loadTime);
76
+ console.log('Page load time is ' + loadTime);
77
+
78
+
79
+ visitors.save().then(
80
+ (visitors) => {
81
+ console.log(`${visitors.id}`);
82
+ },
83
+ (error) => {
84
+ console.log(error);
85
+ }
86
+ );
87
+ }
88
+
89
+ });
90
+
91
+
38
92
  </script>
@@ -4,7 +4,7 @@
4
4
  display: none;
5
5
  justify-content: center;
6
6
  align-items: center;
7
- position: absolute;
7
+ position: fixed;
8
8
  top: 50%;
9
9
  left: 50%;
10
10
  transform: translate(-50%, -50%);
@@ -23,7 +23,7 @@
23
23
  transform: translate(-50%, -50%);
24
24
  }
25
25
  }
26
-
26
+
27
27
  .form-changeInfo input[type="text"],
28
28
  input[type="url"]
29
29
  {
@@ -69,25 +69,26 @@
69
69
  }
70
70
  </style>
71
71
 
72
+ {% include lang.html %}
72
73
  <div id = "InfoForm">
73
74
  <div class = "info">
74
75
  <form target="_self" class="form-changeInfo">
75
76
  <div class="form-avatar">
76
- <label for="avatar">请提供新头像的URL:</label>
77
- <input type="url" name="avatar" placeholder="Optional" id="newAvatar" onblur="formValidate.checkAvatar()"/>
77
+ <label for="avatar">{{ site.data.locales[lang].sidebar.new_avatar }}</label>
78
+ <input type="url" name="avatar" placeholder="{{ site.data.locales[lang].sidebar.optional }}" id="newAvatar" onblur="formValidate.checkAvatar()"/>
78
79
  <span class="validatemsg" id="isAvatarValid"></span>
79
80
  </div>
80
81
  <div class="form-nickname">
81
- <label for="nickname">请输入您的新昵称: </label>
82
- <input type="text" name="nickname" maxlength="15" placeholder="Optional" id="newNickname" onblur="formValidate.checkNickname()"/>
82
+ <label for="nickname">{{ site.data.locales[lang].sidebar.new_nickname }}</label>
83
+ <input type="text" name="nickname" maxlength="15" placeholder="{{ site.data.locales[lang].sidebar.optional }}" id="newNickname" onblur="formValidate.checkNickname()"/>
83
84
  <span class="validatemsg" id="isNicknameValid"></span>
84
85
  </div>
85
86
  <div class="form-buttons">
86
87
  <div class="form-submit">
87
- <input type="button" class="submitChange" value="Submit" onclick="updateUserInfo()"/>
88
+ <input type="button" class="submitChange" value="{{ site.data.locales[lang].sidebar.submit }}" onclick="updateUserInfo()"/>
88
89
  </div>
89
90
  <div class="form-cancel">
90
- <input type="button" class="cancelChange" value="Cancel"/>
91
+ <input type="button" class="cancelChange" value="{{ site.data.locales[lang].sidebar.cancel }}"/>
91
92
  </div>
92
93
  </div>
93
94
  </form>
@@ -120,7 +121,7 @@
120
121
  <!-- home -->
121
122
  <li class="nav-item{% if page.layout == 'home' %}{{ " active" }}{% endif %}">
122
123
  <a href="{{ '/' | relative_url }}" class="nav-link">
123
- <i class="fa-fw fas fa-home"></i>
124
+ <i class="fa-fw fas fa-eye-slash"></i>
124
125
  <span>{{ site.data.locales[include.lang].tabs.home | upcase }}</span>
125
126
  </a>
126
127
  </li>
@@ -190,7 +191,7 @@
190
191
  </a>
191
192
  {% endif %}
192
193
  {% endfor %}
193
- <a href="javascript:void(0);" onclick="AV.User.logOut();setTimeout(function() { window.location.reload(); }, 1000)">
194
+ <a href="javascript:void(0);" onclick="AV.User.logOut();setTimeout(function() { window.location.reload(); }, 1000)" title="{{ site.data.locales[lang].login.logout }}">
194
195
  <i class="fas fa-right-from-bracket" style="color: rgb(181, 27, 27);"></i>
195
196
  </a>
196
197
  </div>
@@ -221,7 +222,7 @@
221
222
  document.getElementById('isAvatarValid').style.color = 'green';
222
223
  return true;
223
224
  } else if (document.getElementById('newAvatar').value.trim() !='') {
224
- document.getElementById('isAvatarValid').innerHTML = '<i class="fa-fw fas fa-xmark"></i>Invalid URL';
225
+ document.getElementById('isAvatarValid').innerHTML = '<i class="fa-fw fas fa-xmark"></i>{{ site.data.locales[lang].sidebar.invalid_url }}';
225
226
  document.getElementById('isAvatarValid').style.color = 'red';
226
227
  } else {
227
228
  document.getElementById('isAvatarValid').innerHTML = '';
@@ -245,7 +246,7 @@
245
246
  currentUser.save().then((user) => {
246
247
  console.log('保存成功!');
247
248
  if (newAvatar != '' || newNickname != '') {
248
- alert("Save Successfully!");
249
+ alert("{{ site.data.locales[lang].sidebar.save_success }}");
249
250
  window.location.reload();
250
251
  }
251
252
  }).catch((error) => {
@@ -1,17 +1,17 @@
1
1
  {% if site.valine_comment.enable %}
2
- <div id="comments"></div>
3
- <script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
4
- <script src='//unpkg.com/valine/dist/Valine.min.js'></script>
5
- <script>
6
- new Valine({
7
- el: '#comments',
8
- app_id: '{{ site.valine_comment.leancloud_appid }}',
9
- app_key: '{{ site.valine_comment.leancloud_appkey }}',
10
- placeholder: '🥳 快来发表一条评论吧!(允许匿名评论)\n📨 呢称填入QQ号可以自动补全邮箱和显示头像 \n📬 留下您的邮箱,如有回复消息,会通过邮件向您发送通知 \n📝 请遵守网络道德',
11
- avatar: 'monsterid',
12
- serverURLs: '{{ site.valine_comment.serverURLs }}',
13
- visitor: true,
14
- enableQQ: '{{ site.valine_comment.enableQQ }}'
15
- });
16
- </script>
2
+ <div id="comments"></div>
3
+ <script src='https://cdn1.lncld.net/static/js/3.0.4/av-min.js'></script>
4
+ <script src='https://unpkg.com/valine/dist/Valine.min.js'></script>
5
+ <script>
6
+ new Valine({
7
+ el: '#comments',
8
+ app_id: '{{ site.valine_comment.leancloud_appid }}',
9
+ app_key: '{{ site.valine_comment.leancloud_appkey }}',
10
+ placeholder: '🥳 快来发表一条评论吧!(允许匿名评论)\n📨 呢称填入QQ号可以自动补全邮箱和显示头像 \n📬 留下您的邮箱,如有回复消息,会通过邮件向您发送通知 \n📝 请遵守网络道德',
11
+ avatar: 'monsterid',
12
+ serverURLs: '{{ site.valine_comment.serverURLs }}',
13
+ visitor: true,
14
+ enableQQ: '{{ site.valine_comment.enableQQ }}'
15
+ });
16
+ </script>
17
17
  {% endif %}
@@ -135,4 +135,4 @@ layout: page
135
135
 
136
136
  {% assign group_index = group_index | plus: 1 %}
137
137
  {% endif %}
138
- {% endfor %}
138
+ {% endfor %}
@@ -21,4 +21,4 @@ layout: page
21
21
  </li>
22
22
  {% endfor %}
23
23
  </ul>
24
- </div>
24
+ </div>
@@ -8,3 +8,4 @@
8
8
 
9
9
  {% capture _LINE_FEED %}
10
10
  {% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
11
+
@@ -15,8 +15,10 @@ layout: compress
15
15
  <!-- `site.alt_lang` can specify a language different from the UI -->
16
16
  <html lang="{{ site.alt_lang | default: site.lang }}" {{ prefer_mode }}>
17
17
  {% include head.html %}
18
+ {% include mathjax_support.html %}
19
+ <body style="display: none;">
20
+ {% include loader.html %}
18
21
 
19
- <body>
20
22
  {% include sidebar.html lang=lang %}
21
23
 
22
24
  <div id="main-wrapper" class="d-flex justify-content-center">
@@ -76,6 +78,10 @@ layout: compress
76
78
 
77
79
  <!-- JavaScripts -->
78
80
 
81
+ {% include login-check.html %}
82
+
83
+ <!-- {% include visits.html %} -->
84
+
79
85
  {% include js-selector.html %}
80
86
 
81
87
  {% if page.mermaid %}
@@ -83,5 +89,7 @@ layout: compress
83
89
  {% endif %}
84
90
 
85
91
  {% include_cached search-loader.html %}
92
+
93
+
86
94
  </body>
87
95
  </html>
data/_layouts/forgot.html CHANGED
@@ -31,6 +31,7 @@
31
31
  font-size: 60px;
32
32
  font-family: 'Times New Roman', Times, serif;
33
33
  margin-bottom: 30px;
34
+ white-space: nowrap;
34
35
  }
35
36
 
36
37
  input[type="text"],
@@ -124,10 +125,11 @@
124
125
  </head>
125
126
 
126
127
  <body>
128
+ {% include lang.html %}
127
129
  <div class="shell">
128
- <h2 class="title">Forgot</h2>
129
- <input type="email" id="email" placeholder="Enter the email you used to login">
130
- <input type="submit" value="Confirm" id="loginBtn">
130
+ <h2 class="title">{{ site.data.locales[lang].login.forgot }}</h2>
131
+ <input type="email" id="email" placeholder="{{ site.data.locales[lang].login.forgot_prompt }}">
132
+ <input type="submit" value="{{ site.data.locales[lang].login.confirm }}" id="loginBtn">
131
133
  </div>
132
134
 
133
135
 
@@ -145,13 +147,13 @@
145
147
  var email = document.getElementById("email").value.trim();
146
148
  try {
147
149
  await AV.User.requestPasswordReset(email);
148
- alert('The reset-password email was successfully!');
150
+ alert('');
149
151
  } catch (error) {
150
152
  if (error.code == '204') {
151
- alert('The email is missing, please enter your email address.');
153
+ alert('{{ site.data.locales[lang].login.email_missing }}');
152
154
  }
153
155
  else if (error.code == '205') {
154
- alert('The email is invalid.');
156
+ alert('{{ site.data.locales[lang].login.enter_valid_email }}');
155
157
  } else {
156
158
  alert('An unknown error occurred');
157
159
  }
data/_layouts/login.html CHANGED
@@ -133,17 +133,18 @@ layout: compress
133
133
  </head>
134
134
 
135
135
  <body>
136
+ {% include lang.html %}
136
137
  <div class="shell">
137
- <h2 class="title">Login</h2>
138
- <input type="text" id="username" placeholder="Username">
139
- <input type="password" id="password" placeholder="Password">
140
- <input type="email" id="email" placeholder="Email(MUST)">
141
- <input type="submit" value="Login" id="loginBtn">
138
+ <h2 class="title">{{ site.data.locales[lang].login.login }}</h2>
139
+ <input type="text" id="username" placeholder="{{ site.data.locales[lang].login.username }}">
140
+ <input type="password" id="password" placeholder="{{ site.data.locales[lang].login.password }}">
141
+ <input type="email" id="email" placeholder="{{ site.data.locales[lang].login.email }}">
142
+ <input type="submit" value="{{ site.data.locales[lang].login.login }}" id="loginBtn">
142
143
  <div class="footer">
143
144
  {% if site.Leancloud.allowRegister %}
144
- <button id="signUp">Go to Register</button>
145
+ <button id="signUp">{{ site.data.locales[lang].login.go_to_register }}</button>
145
146
  {% endif %}
146
- <button id="forgotPassword">Forgot Password?</button>
147
+ <button id="forgotPassword">{{ site.data.locales[lang].login.forgot_password }}</button>
147
148
  </div>
148
149
  </div>
149
150
 
@@ -153,22 +154,22 @@ layout: compress
153
154
  var title = document.querySelector('.title');
154
155
  var loginBtn = document.getElementById('loginBtn');
155
156
  var signUpBtn = document.getElementById('signUp');
156
- if (title.innerText == 'Login') {
157
- title.innerText = 'Register';
158
- loginBtn.value = 'Register';
159
- signUpBtn.innerText = 'Go to login';
157
+ if (title.innerText == '{{ site.data.locales[lang].login.login }}') {
158
+ title.innerText = '{{ site.data.locales[lang].login.register }}';
159
+ loginBtn.value = '{{ site.data.locales[lang].login.register }}';
160
+ signUpBtn.innerText = '{{ site.data.locales[lang].login.go_to_login }}';
160
161
  document.getElementById('username').value = '';
161
162
  document.getElementById('password').value = '';
162
- document.getElementById('username').placeholder = 'New User Name';
163
- document.getElementById('password').placeholder = 'New Password';
163
+ document.getElementById('username').placeholder = '{{ site.data.locales[lang].login.new_username }}';
164
+ document.getElementById('password').placeholder = '{{ site.data.locales[lang].login.new_password }}';
164
165
  document.getElementById('password').type = 'password';
165
166
  document.getElementById('email').style.display = 'block';
166
167
  } else {
167
- title.innerText = 'Login';
168
- loginBtn.value = 'Login';
169
- signUpBtn.innerText = 'Go to register';
170
- document.getElementById('username').placeholder = 'Username';
171
- document.getElementById('password').placeholder = 'Password';
168
+ title.innerText = '{{ site.data.locales[lang].login.login }}';
169
+ loginBtn.value = '{{ site.data.locales[lang].login.login }}';
170
+ signUpBtn.innerText = '{{ site.data.locales[lang].login.go_to_register }}';
171
+ document.getElementById('username').placeholder = '{{ site.data.locales[lang].login.username }}';
172
+ document.getElementById('password').placeholder = '{{ site.data.locales[lang].login.password }}';
172
173
  document.getElementById('password').type = 'password';
173
174
  document.getElementById('email').style.display = 'none';
174
175
  }
@@ -202,11 +203,11 @@ layout: compress
202
203
  document.getElementById('loginBtn').addEventListener("click", function () {
203
204
  var username = document.getElementById('username').value.trim();
204
205
  var password = document.getElementById('password').value.trim();
205
- if (document.querySelector('.title').innerText == 'Login') {
206
+ if (document.querySelector('.title').innerText == '{{ site.data.locales[lang].login.login }}') {
206
207
  AV.User.logIn(username, password).then(function (user) {
207
208
  if (user.get("emailVerified")) {
208
209
  /* 登录成功 */
209
- console.log('登录成功');
210
+ console.log('Successfully logged in');
210
211
  console.log(AV.User.emailVerified);
211
212
  /* document.getElementById('username').value = '';
212
213
  document.getElementById('password').value = ''; */
@@ -216,23 +217,23 @@ layout: compress
216
217
  window.location.href = redirectUrl;
217
218
  /* window.location.href = '{{ site.baseurl }}'; */
218
219
  } else {
219
- alert('当前用户邮箱未通过验证,暂时无法登录');
220
+ alert('{{ site.data.locales[lang].login.email_not_verified }}');
220
221
  }
221
222
  }).catch(function (error) {
222
223
  /* 登录失败,处理错误信息 */
223
- console.log('登录失败:', error);
224
- alert('登录失败!');
224
+ console.log('Login failed:', error);
225
+ alert('{{ site.data.locales[lang].login.login_fail }}');
225
226
  });
226
227
  } else {
227
228
  var email = document.getElementById('email').value;
228
229
  if (!validateEmail(email)) {
229
- alert('请输入有效的电子邮件地址!');
230
+ alert('{{ site.data.locales[lang].login.enter_vaild_email }}');
230
231
  return;
231
232
  } else if (username == '') {
232
- alert('请输入用户名');
233
+ alert('{{ site.data.locales[lang].login.enter_username }}');
233
234
  return;
234
235
  } else if (password == '') {
235
- alert('请输入密码');
236
+ alert('{{ site.data.locales[lang].login.enter_password }}');
236
237
  return;
237
238
  } else {
238
239
  const user = new AV.User();
@@ -243,13 +244,13 @@ layout: compress
243
244
 
244
245
  user.signUp().then(function (user) {
245
246
  /* 注册成功 */
246
- alert('注册成功,等待验证邮箱。邮件已发送!');
247
+ alert('{{ site.data.locales[lang].login.waiting_for_verification }}');
247
248
  console.log('注册成功,等待验证邮箱');
248
249
  window.location.reload();
249
250
  }).catch(function (error) {
250
251
  /* 注册失败,处理错误信息 */
251
252
  console.log('注册失败:', error);
252
- alert('注册失败!');
253
+ alert('{{ site.data.locales[lang].login.register_fail }}');
253
254
  });
254
255
  }
255
256
  };
data/_layouts/post.html CHANGED
@@ -137,3 +137,15 @@ tail_includes:
137
137
  </div>
138
138
  <!-- div.post-tail-wrapper -->
139
139
  </article>
140
+
141
+ {% if site.valine_comment.enable and page.comments %}
142
+ <div class="row">
143
+ <div class="col-12">
144
+ <div class="pl-1 pr-1 pl-sm-2 pr-sm-2 pl-md-4 pr-md-4">
145
+
146
+ {% include valine.html %}
147
+
148
+ </div> <!-- .pl-1 pr-1 -->
149
+ </div> <!-- .col-12 -->
150
+ </div> <!-- .row -->
151
+ {% endif %}
@@ -1,4 +1,6 @@
1
- /* The common styles */
1
+ /*
2
+ The common styles
3
+ */
2
4
 
3
5
  html {
4
6
  @media (prefers-color-scheme: light) {
@@ -105,6 +107,7 @@ blockquote {
105
107
  text-rendering: auto;
106
108
  -webkit-font-smoothing: antialiased;
107
109
  }
110
+
108
111
  }
109
112
 
110
113
  @include prompt('tip', '\f0eb', 'regular');
@@ -144,10 +147,6 @@ footer {
144
147
  }
145
148
  }
146
149
 
147
- em {
148
- @extend %text-highlight;
149
- }
150
-
151
150
  p {
152
151
  text-align: center;
153
152
  margin-bottom: 0;
@@ -689,7 +688,7 @@ $btn-mb: 0.5rem;
689
688
  top: 0;
690
689
  left: 0;
691
690
  height: 100%;
692
- overflow-y: auto;
691
+ // overflow-y: auto;
693
692
  width: $sidebar-width;
694
693
  z-index: 99;
695
694
  background: var(--sidebar-bg);
@@ -27,12 +27,10 @@
27
27
  --checkbox-color: rgb(118, 120, 121);
28
28
  --checkbox-checked-color: var(--link-color);
29
29
  --img-bg: radial-gradient(circle, rgb(22, 22, 24) 0%, rgb(32, 32, 32) 100%);
30
- --shimmer-bg: linear-gradient(
31
- 90deg,
32
- rgba(255, 255, 255, 0) 0%,
33
- rgba(58, 55, 55, 0.4) 50%,
34
- rgba(255, 255, 255, 0) 100%
35
- );
30
+ --shimmer-bg: linear-gradient(90deg,
31
+ rgba(255, 255, 255, 0) 0%,
32
+ rgba(58, 55, 55, 0.4) 50%,
33
+ rgba(255, 255, 255, 0) 100%);
36
34
 
37
35
  /* Sidebar */
38
36
  --site-title-color: #717070;
@@ -61,8 +59,10 @@
61
59
  /* Posts */
62
60
  --toc-highlight: rgb(116, 178, 243);
63
61
  --tag-hover: rgb(43, 56, 62);
64
- --tb-odd-bg: #252526; /* odd rows of the posts' table */
65
- --tb-even-bg: rgb(31, 31, 34); /* even rows of the posts' table */
62
+ --tb-odd-bg: #252526;
63
+ /* odd rows of the posts' table */
64
+ --tb-even-bg: rgb(31, 31, 34);
65
+ /* even rows of the posts' table */
66
66
  --tb-border-color: var(--tb-odd-bg);
67
67
  --footnote-target-bg: rgb(63, 81, 181);
68
68
  --btn-share-color: #6c757d;
@@ -100,6 +100,13 @@
100
100
  --timeline-color: rgb(63, 65, 68);
101
101
  --timeline-year-dot-color: var(--timeline-color);
102
102
 
103
+ /* Gallery */
104
+ --gallery-card-bg: rgba(31, 31, 31, 0.8);
105
+ --gallery-card-border-top: rgba(255, 255, 255, 0.2);
106
+ --gallery-card-border-right: rgba(255, 255, 255, 0.2);
107
+ --gallery-card-border-bottom: rgba(255, 255, 255, 0.1);
108
+ --gallery-card-border-left: rgba(255, 255, 255, 0.1);
109
+
103
110
  .light {
104
111
  display: none;
105
112
  }
@@ -132,14 +139,12 @@
132
139
  }
133
140
 
134
141
  #archives li:nth-child(odd) {
135
- background-image: linear-gradient(
136
- to left,
137
- rgb(26, 26, 30),
138
- rgb(39, 39, 45),
139
- rgb(39, 39, 45),
140
- rgb(39, 39, 45),
141
- rgb(26, 26, 30)
142
- );
142
+ background-image: linear-gradient(to left,
143
+ rgb(26, 26, 30),
144
+ rgb(39, 39, 45),
145
+ rgb(39, 39, 45),
146
+ rgb(39, 39, 45),
147
+ rgb(26, 26, 30));
143
148
  }
144
149
 
145
150
  color-scheme: dark;
@@ -148,4 +153,6 @@
148
153
  #disqus_thread {
149
154
  color-scheme: none;
150
155
  }
151
- } /* dark-scheme */
156
+ }
157
+
158
+ /* dark-scheme */
@@ -109,4 +109,11 @@
109
109
  --timeline-color: rgba(0, 0, 0, 0.075);
110
110
  --timeline-node-bg: #c2c6cc;
111
111
  --timeline-year-dot-color: #ffffff;
112
+
113
+ /* Gallery */
114
+ --gallery-card-bg: rgba(224, 224, 224, 0.6);
115
+ --gallery-card-border-top: rgba(255, 255, 255, 0.5);
116
+ --gallery-card-border-right: rgba(255, 255, 255, 0.5);
117
+ --gallery-card-border-bottom: rgba(255, 255, 255, 0.3);
118
+ --gallery-card-border-left: rgba(255, 255, 255, 0.3);
112
119
  } /* light-scheme */
@@ -90,9 +90,9 @@ h1 + .post-meta {
90
90
  }
91
91
 
92
92
  button {
93
+ position: relative;
94
+ bottom: 1px;
93
95
  padding: 0;
94
- border: none;
95
- line-height: inherit;
96
96
 
97
97
  @extend %cursor-pointer;
98
98
  }
data/_sass/main.scss CHANGED
@@ -11,3 +11,5 @@
11
11
  @import 'layout/archives';
12
12
  @import 'layout/categories';
13
13
  @import 'layout/category-tag';
14
+ @import 'layout/gallery';
15
+ @import 'addon/loader.scss';
data/assets/.DS_Store ADDED
Binary file
@@ -0,0 +1 @@
1
+ if ('serviceWorker' in navigator) { const isEnabled = 'true' === 'true'; if (isEnabled) { const swUrl = '/sw.min.js'; const $notification = $('#notification'); const $btnRefresh = $('#notification .toast-body>button'); navigator.serviceWorker.register(swUrl).then((registration) => { if (registration.waiting) { $notification.toast('show'); } registration.addEventListener('updatefound', () => { registration.installing.addEventListener('statechange', () => { if (registration.waiting) { if (navigator.serviceWorker.controller) { $notification.toast('show'); } } }); }); $btnRefresh.on('click', () => { if (registration.waiting) { registration.waiting.postMessage('SKIP_WAITING'); } $notification.toast('hide'); }); }); let refreshing = false; navigator.serviceWorker.addEventListener('controllerchange', () => { if (!refreshing) { window.location.reload(); refreshing = true; } }); } else { navigator.serviceWorker.getRegistrations().then(function (registrations) { for (let registration of registrations) { registration.unregister(); } }); } }
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * Chirpy v6.5.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
3
+ */
4
+ !function(){"use strict";const o=$(".mode-toggle");function t(o){var t=function(o,t){if("object"!=typeof o||!o)return o;var s=o[Symbol.toPrimitive];if(void 0!==s){var e=s.call(o,t||"default");if("object"!=typeof e)return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(o)}(o,"string");return"symbol"==typeof t?t:String(t)}function s(o,s,e){return(s=t(s))in o?Object.defineProperty(o,s,{value:e,enumerable:!0,configurable:!0,writable:!0}):o[s]=e,o}const e=$("body"),a="sidebar-display";class r{static toggle(){!1===r.isExpanded?e.attr(a,""):e.removeAttr(a),r.isExpanded=!r.isExpanded}}s(r,"isExpanded",!1);const l=$("#sidebar-trigger"),n=$("#search-trigger"),i=$("#search-cancel"),c=$("#main-wrapper>.container>.row"),f=$("#topbar-title"),d=$("search"),u=$("#search-result-wrapper"),p=$("#search-results"),b=$("#search-input"),g=$("#search-hints"),m=$("html,body"),C="loaded",v="unloaded",h="input-focus",w="d-flex";class y{static on(){y.offset=window.scrollY,m.scrollTop(0)}static off(){m.scrollTop(y.offset)}}s(y,"offset",0),s(y,"resultVisible",!1);class k{static on(){l.addClass(v),f.addClass(v),n.addClass(v),d.addClass(w),i.addClass(C)}static off(){i.removeClass(C),d.removeClass(w),l.removeClass(v),f.removeClass(v),n.removeClass(v)}}class T{static on(){y.resultVisible||(y.on(),u.removeClass(v),c.addClass(v),y.resultVisible=!0)}static off(){y.resultVisible&&(p.empty(),g.hasClass(v)&&g.removeClass(v),u.addClass(v),c.removeClass(v),y.off(),b.val(""),y.resultVisible=!1)}}function x(){return i.hasClass(C)}const E=$(".collapse");$(".code-header>button").children().attr("class"),function(){const o=$(window),t=$("#back-to-top");o.on("scroll",(()=>{o.scrollTop()>50?t.fadeIn():t.fadeOut()})),t.on("click",(()=>{o.scrollTop(0)}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((o=>new bootstrap.Tooltip(o))),0!==o.length&&o.off().on("click",(o=>{const t=$(o.target);let s=t.prop("tagName")==="button".toUpperCase()?t:t.parent();modeToggle.flipMode(),s.trigger("blur")})),$("#sidebar-trigger").on("click",r.toggle),$("#mask").on("click",r.toggle),n.on("click",(function(){k.on(),T.on(),b.trigger("focus")})),i.on("click",(function(){k.off(),T.off()})),b.on("focus",(function(){d.addClass(h)})),b.on("focusout",(function(){d.removeClass(h)})),b.on("input",(()=>{""===b.val()?x()?g.removeClass(v):T.off():(T.on(),x()&&g.addClass(v))})),E.on("hide.bs.collapse",(function(){const o="h_"+$(this).attr("id").substring(2);o&&($("#".concat(o," .far.fa-folder-open")).attr("class","far fa-folder fa-fw"),$("#".concat(o," i.fas")).addClass("rotate"),$("#".concat(o)).removeClass("hide-border-bottom"))})),E.on("show.bs.collapse",(function(){const o="h_"+$(this).attr("id").substring(2);o&&($("#".concat(o," .far.fa-folder")).attr("class","far fa-folder-open fa-fw"),$("#".concat(o," i.fas")).removeClass("rotate"),$("#".concat(o)).addClass("hide-border-bottom"))}))}();
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * Chirpy v6.5.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
3
+ */
4
+ !function(){"use strict";const e=$(".mode-toggle");function s(e){var s=function(e,s){if("object"!=typeof e||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var t=o.call(e,s||"default");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===s?String:Number)(e)}(e,"string");return"symbol"==typeof s?s:String(s)}function o(e,o,t){return(o=s(o))in e?Object.defineProperty(e,o,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[o]=t,e}const t=$("body"),r="sidebar-display";class a{static toggle(){!1===a.isExpanded?t.attr(r,""):t.removeAttr(r),a.isExpanded=!a.isExpanded}}o(a,"isExpanded",!1);const l=$("#sidebar-trigger"),i=$("#search-trigger"),n=$("#search-cancel"),c=$("#main-wrapper>.container>.row"),d=$("#topbar-title"),f=$("search"),u=$("#search-result-wrapper"),p=$("#search-results"),g=$("#search-input"),m=$("#search-hints"),b=$("html,body"),v="loaded",C="unloaded",h="input-focus",y="d-flex";class w{static on(){w.offset=window.scrollY,b.scrollTop(0)}static off(){b.scrollTop(w.offset)}}o(w,"offset",0),o(w,"resultVisible",!1);class k{static on(){l.addClass(C),d.addClass(C),i.addClass(C),f.addClass(y),n.addClass(v)}static off(){n.removeClass(v),f.removeClass(y),l.removeClass(C),d.removeClass(C),i.removeClass(C)}}class T{static on(){w.resultVisible||(w.on(),u.removeClass(C),c.addClass(C),w.resultVisible=!0)}static off(){w.resultVisible&&(p.empty(),m.hasClass(C)&&m.removeClass(C),u.addClass(C),c.removeClass(C),w.off(),g.val(""),w.resultVisible=!1)}}function x(){return n.hasClass(v)}!function(){const e=$(window),s=$("#back-to-top");e.on("scroll",(()=>{e.scrollTop()>50?s.fadeIn():s.fadeOut()})),s.on("click",(()=>{e.scrollTop(0)}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((e=>new bootstrap.Tooltip(e))),0!==e.length&&e.off().on("click",(e=>{const s=$(e.target);let o=s.prop("tagName")==="button".toUpperCase()?s:s.parent();modeToggle.flipMode(),o.trigger("blur")})),$("#sidebar-trigger").on("click",a.toggle),$("#mask").on("click",a.toggle),i.on("click",(function(){k.on(),T.on(),g.trigger("focus")})),n.on("click",(function(){k.off(),T.off()})),g.on("focus",(function(){f.addClass(h)})),g.on("focusout",(function(){f.removeClass(h)})),g.on("input",(()=>{""===g.val()?x()?m.removeClass(C):T.off():(T.on(),x()&&m.addClass(C))}))}();
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * Chirpy v6.5.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
3
+ */
4
+ !function(){"use strict";const t=$(".mode-toggle");function e(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var a=t[Symbol.toPrimitive];if(void 0!==a){var s=a.call(t,e||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function a(t,a,s){return(a=e(a))in t?Object.defineProperty(t,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[a]=s,t}const s=$("body"),o="sidebar-display";class r{static toggle(){!1===r.isExpanded?s.attr(o,""):s.removeAttr(o),r.isExpanded=!r.isExpanded}}a(r,"isExpanded",!1);const i=$("#sidebar-trigger"),l=$("#search-trigger"),n=$("#search-cancel"),c=$("#main-wrapper>.container>.row"),d=$("#topbar-title"),u=$("search"),m=$("#search-result-wrapper"),f=$("#search-results"),p=$("#search-input"),g=$("#search-hints"),h=$("html,body"),b="loaded",v="unloaded",C="input-focus",y="d-flex";class w{static on(){w.offset=window.scrollY,h.scrollTop(0)}static off(){h.scrollTop(w.offset)}}a(w,"offset",0),a(w,"resultVisible",!1);class T{static on(){i.addClass(v),d.addClass(v),l.addClass(v),u.addClass(y),n.addClass(b)}static off(){n.removeClass(b),u.removeClass(y),i.removeClass(v),d.removeClass(v),l.removeClass(v)}}class k{static on(){w.resultVisible||(w.on(),m.removeClass(v),c.addClass(v),w.resultVisible=!0)}static off(){w.resultVisible&&(f.empty(),g.hasClass(v)&&g.removeClass(v),m.addClass(v),c.removeClass(v),w.off(),p.val(""),w.resultVisible=!1)}}function x(){return n.hasClass(b)}$(".collapse");$(".code-header>button").children().attr("class");const E="data-src",j="data-lqip",M={SHIMMER:"shimmer",BLUR:"blur"};function S(t){$(this).parent().removeClass(t)}function A(){this.complete&&(this.hasAttribute(j)?S.call(this,M.BLUR):S.call(this,M.SHIMMER))}function F(){const t=$(this),e=t.attr(E);t.attr("src",encodeURI(e)),t.removeAttr(E)}class R{static get attrTimestamp(){return"data-ts"}static get attrDateFormat(){return"data-df"}static get locale(){return $("html").attr("lang").substring(0,2)}static getTimestamp(t){return Number(t.attr(R.attrTimestamp))}static getDateFormat(t){return t.attr(R.attrDateFormat)}}!function(){const t=$(window),e=$("#back-to-top");t.on("scroll",(()=>{t.scrollTop()>50?e.fadeIn():e.fadeOut()})),e.on("click",(()=>{t.scrollTop(0)}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((t=>new bootstrap.Tooltip(t))),0!==t.length&&t.off().on("click",(t=>{const e=$(t.target);let a=e.prop("tagName")==="button".toUpperCase()?e:e.parent();modeToggle.flipMode(),a.trigger("blur")})),$("#sidebar-trigger").on("click",r.toggle),$("#mask").on("click",r.toggle),l.on("click",(function(){T.on(),k.on(),p.trigger("focus")})),n.on("click",(function(){T.off(),k.off()})),p.on("focus",(function(){u.addClass(C)})),p.on("focusout",(function(){u.removeClass(C)})),p.on("input",(()=>{""===p.val()?x()?g.removeClass(v):k.off():(k.on(),x()&&g.addClass(v))})),dayjs.locale(R.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),$("[".concat(R.attrTimestamp,"]")).each((function(){const t=dayjs.unix(R.getTimestamp($(this))),e=t.format(R.getDateFormat($(this)));$(this).text(e),$(this).removeAttr(R.attrTimestamp),$(this).removeAttr(R.attrDateFormat);const a=$(this).attr("data-bs-toggle");if(void 0===a||"tooltip"!==a)return;const s=t.format("llll");$(this).attr("data-bs-title",s),new bootstrap.Tooltip($(this))})),function(){const t=$("article img");t.length&&t.on("load",A),$('article img[loading="lazy"]').each((function(){this.complete&&S.call(this,M.SHIMMER)}));const e=$("article img[".concat(j,'="true"]'));e.length&&e.each(F)}()}();
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * Chirpy v6.5.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
3
+ */
4
+ !function(){"use strict";const t=$(".mode-toggle");function e(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var a=t[Symbol.toPrimitive];if(void 0!==a){var s=a.call(t,e||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function a(t,a,s){return(a=e(a))in t?Object.defineProperty(t,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[a]=s,t}const s=$("body"),o="sidebar-display";class r{static toggle(){!1===r.isExpanded?s.attr(o,""):s.removeAttr(o),r.isExpanded=!r.isExpanded}}a(r,"isExpanded",!1);const l=$("#sidebar-trigger"),i=$("#search-trigger"),n=$("#search-cancel"),c=$("#main-wrapper>.container>.row"),d=$("#topbar-title"),u=$("search"),f=$("#search-result-wrapper"),m=$("#search-results"),p=$("#search-input"),g=$("#search-hints"),b=$("html,body"),h="loaded",v="unloaded",C="input-focus",y="d-flex";class w{static on(){w.offset=window.scrollY,b.scrollTop(0)}static off(){b.scrollTop(w.offset)}}a(w,"offset",0),a(w,"resultVisible",!1);class T{static on(){l.addClass(v),d.addClass(v),i.addClass(v),u.addClass(y),n.addClass(h)}static off(){n.removeClass(h),u.removeClass(y),l.removeClass(v),d.removeClass(v),i.removeClass(v)}}class k{static on(){w.resultVisible||(w.on(),f.removeClass(v),c.addClass(v),w.resultVisible=!0)}static off(){w.resultVisible&&(m.empty(),g.hasClass(v)&&g.removeClass(v),f.addClass(v),c.removeClass(v),w.off(),p.val(""),w.resultVisible=!1)}}function x(){return n.hasClass(h)}$(".collapse");$(".code-header>button").children().attr("class");class j{static get attrTimestamp(){return"data-ts"}static get attrDateFormat(){return"data-df"}static get locale(){return $("html").attr("lang").substring(0,2)}static getTimestamp(t){return Number(t.attr(j.attrTimestamp))}static getDateFormat(t){return t.attr(j.attrDateFormat)}}!function(){const t=$(window),e=$("#back-to-top");t.on("scroll",(()=>{t.scrollTop()>50?e.fadeIn():e.fadeOut()})),e.on("click",(()=>{t.scrollTop(0)}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((t=>new bootstrap.Tooltip(t))),0!==t.length&&t.off().on("click",(t=>{const e=$(t.target);let a=e.prop("tagName")==="button".toUpperCase()?e:e.parent();modeToggle.flipMode(),a.trigger("blur")})),$("#sidebar-trigger").on("click",r.toggle),$("#mask").on("click",r.toggle),i.on("click",(function(){T.on(),k.on(),p.trigger("focus")})),n.on("click",(function(){T.off(),k.off()})),p.on("focus",(function(){u.addClass(C)})),p.on("focusout",(function(){u.removeClass(C)})),p.on("input",(()=>{""===p.val()?x()?g.removeClass(v):k.off():(k.on(),x()&&g.addClass(v))})),dayjs.locale(j.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),$("[".concat(j.attrTimestamp,"]")).each((function(){const t=dayjs.unix(j.getTimestamp($(this))),e=t.format(j.getDateFormat($(this)));$(this).text(e),$(this).removeAttr(j.attrTimestamp),$(this).removeAttr(j.attrDateFormat);const a=$(this).attr("data-bs-toggle");if(void 0===a||"tooltip"!==a)return;const s=t.format("llll");$(this).attr("data-bs-title",s),new bootstrap.Tooltip($(this))}))}();
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * Chirpy v6.5.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
3
+ */
4
+ !function(){"use strict";const t=$(".mode-toggle");function e(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var s=o.call(t,e||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function o(t,o,s){return(o=e(o))in t?Object.defineProperty(t,o,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[o]=s,t}const s=$("body"),n="sidebar-display";class a{static toggle(){!1===a.isExpanded?s.attr(n,""):s.removeAttr(n),a.isExpanded=!a.isExpanded}}o(a,"isExpanded",!1);const r=$("#sidebar-trigger"),i=$("#search-trigger"),l=$("#search-cancel"),c=$("#main-wrapper>.container>.row"),u=$("#topbar-title"),d=$("search"),f=$("#search-result-wrapper"),p=$("#search-results"),m=$("#search-input"),g=$("#search-hints"),h=$("html,body"),b="loaded",v="unloaded",C="input-focus",w="d-flex";class y{static on(){y.offset=window.scrollY,h.scrollTop(0)}static off(){h.scrollTop(y.offset)}}o(y,"offset",0),o(y,"resultVisible",!1);class k{static on(){r.addClass(v),u.addClass(v),i.addClass(v),d.addClass(w),l.addClass(b)}static off(){l.removeClass(b),d.removeClass(w),r.removeClass(v),u.removeClass(v),i.removeClass(v)}}class S{static on(){y.resultVisible||(y.on(),f.removeClass(v),c.addClass(v),y.resultVisible=!0)}static off(){y.resultVisible&&(p.empty(),g.hasClass(v)&&g.removeClass(v),f.addClass(v),c.removeClass(v),y.off(),m.val(""),y.resultVisible=!1)}}function T(){return l.hasClass(b)}$(".collapse");const E=".code-header>button",A="fas fa-check",x="timeout",M="data-title-succeed",R="data-bs-original-title",I=2e3;function V(t){if($(t)[0].hasAttribute(x)){let e=$(t).attr(x);if(Number(e)>Date.now())return!0}return!1}function q(t){$(t).attr(x,Date.now()+I)}function N(t){$(t).removeAttr(x)}const P=$(E).children().attr("class");const U="data-src",j="data-lqip",B={SHIMMER:"shimmer",BLUR:"blur"};function H(t){$(this).parent().removeClass(t)}function O(){this.complete&&(this.hasAttribute(j)?H.call(this,B.BLUR):H.call(this,B.SHIMMER))}function z(){const t=$(this),e=t.attr(U);t.attr("src",encodeURI(e)),t.removeAttr(U)}!function(){const t=$(window),e=$("#back-to-top");t.on("scroll",(()=>{t.scrollTop()>50?e.fadeIn():e.fadeOut()})),e.on("click",(()=>{t.scrollTop(0)}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((t=>new bootstrap.Tooltip(t))),0!==t.length&&t.off().on("click",(t=>{const e=$(t.target);let o=e.prop("tagName")==="button".toUpperCase()?e:e.parent();modeToggle.flipMode(),o.trigger("blur")})),$("#sidebar-trigger").on("click",a.toggle),$("#mask").on("click",a.toggle),i.on("click",(function(){k.on(),S.on(),m.trigger("focus")})),l.on("click",(function(){k.off(),S.off()})),m.on("focus",(function(){d.addClass(C)})),m.on("focusout",(function(){d.removeClass(C)})),m.on("input",(()=>{""===m.val()?T()?g.removeClass(v):S.off():(S.on(),T()&&g.addClass(v))})),function(){const t=$("article img");t.length&&t.on("load",O),$('article img[loading="lazy"]').each((function(){this.complete&&H.call(this,B.SHIMMER)}));const e=$("article img[".concat(j,'="true"]'));e.length&&e.each(z)}(),$(".popup")<=0||$(".popup").magnificPopup({type:"image",closeOnContentClick:!0,showCloseBtn:!1,zoom:{enabled:!0,duration:300,easing:"ease-in-out"}}),function(){if($(E).length){const t=new ClipboardJS(E,{target:t=>t.parentNode.nextElementSibling.querySelector("code .rouge-code")});[...document.querySelectorAll(E)].map((t=>new bootstrap.Tooltip(t,{placement:"left"}))),t.on("success",(t=>{t.clearSelection();const e=t.trigger;V(e)||(!function(t){$(t).children().attr("class",A)}(e),function(t){const e=$(t).attr(M);$(t).attr(R,e).tooltip("show")}(e),q(e),setTimeout((()=>{!function(t){$(t).tooltip("hide").removeAttr(R)}(e),function(t){$(t).children().attr("class",P)}(e),N(e)}),I))}))}const t=$("#copy-link");t.on("click",(t=>{let e=$(t.target);V(e)||navigator.clipboard.writeText(window.location.href).then((()=>{const t=e.attr(R),o=e.attr(M);e.attr(R,o).tooltip("show"),q(e),setTimeout((()=>{e.attr(R,t),N(e)}),I)}))})),t.on("mouseleave",(function(t){$(t.target).tooltip("hide")}))}()}();
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * Chirpy v6.5.0 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
3
+ */
4
+ !function(){"use strict";const t=$(".mode-toggle");function e(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var a=o.call(t,e||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function o(t,o,a){return(o=e(o))in t?Object.defineProperty(t,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[o]=a,t}const a=$("body"),r="sidebar-display";class s{static toggle(){!1===s.isExpanded?a.attr(r,""):a.removeAttr(r),s.isExpanded=!s.isExpanded}}o(s,"isExpanded",!1);const i=$("#sidebar-trigger"),n=$("#search-trigger"),l=$("#search-cancel"),c=$("#main-wrapper>.container>.row"),u=$("#topbar-title"),d=$("search"),m=$("#search-result-wrapper"),f=$("#search-results"),p=$("#search-input"),g=$("#search-hints"),h=$("html,body"),b="loaded",v="unloaded",C="input-focus",w="d-flex";class y{static on(){y.offset=window.scrollY,h.scrollTop(0)}static off(){h.scrollTop(y.offset)}}o(y,"offset",0),o(y,"resultVisible",!1);class S{static on(){i.addClass(v),u.addClass(v),n.addClass(v),d.addClass(w),l.addClass(b)}static off(){l.removeClass(b),d.removeClass(w),i.removeClass(v),u.removeClass(v),n.removeClass(v)}}class T{static on(){y.resultVisible||(y.on(),m.removeClass(v),c.addClass(v),y.resultVisible=!0)}static off(){y.resultVisible&&(f.empty(),g.hasClass(v)&&g.removeClass(v),m.addClass(v),c.removeClass(v),y.off(),p.val(""),y.resultVisible=!1)}}function k(){return l.hasClass(b)}$(".collapse");const x=".code-header>button",A="fas fa-check",E="timeout",j="data-title-succeed",D="data-bs-original-title",M=2e3;function F(t){if($(t)[0].hasAttribute(E)){let e=$(t).attr(E);if(Number(e)>Date.now())return!0}return!1}function R(t){$(t).attr(E,Date.now()+M)}function q(t){$(t).removeAttr(E)}const I=$(x).children().attr("class");const N="data-src",V="data-lqip",P={SHIMMER:"shimmer",BLUR:"blur"};function U(t){$(this).parent().removeClass(t)}function z(){this.complete&&(this.hasAttribute(V)?U.call(this,P.BLUR):U.call(this,P.SHIMMER))}function B(){const t=$(this),e=t.attr(N);t.attr("src",encodeURI(e)),t.removeAttr(N)}class H{static get attrTimestamp(){return"data-ts"}static get attrDateFormat(){return"data-df"}static get locale(){return $("html").attr("lang").substring(0,2)}static getTimestamp(t){return Number(t.attr(H.attrTimestamp))}static getDateFormat(t){return t.attr(H.attrDateFormat)}}0!==t.length&&t.off().on("click",(t=>{const e=$(t.target);let o=e.prop("tagName")==="button".toUpperCase()?e:e.parent();modeToggle.flipMode(),o.trigger("blur")})),$("#sidebar-trigger").on("click",s.toggle),$("#mask").on("click",s.toggle),n.on("click",(function(){S.on(),T.on(),p.trigger("focus")})),l.on("click",(function(){S.off(),T.off()})),p.on("focus",(function(){d.addClass(C)})),p.on("focusout",(function(){d.removeClass(C)})),p.on("input",(()=>{""===p.val()?k()?g.removeClass(v):T.off():(T.on(),k()&&g.addClass(v))})),function(){const t=$("article img");t.length&&t.on("load",z),$('article img[loading="lazy"]').each((function(){this.complete&&U.call(this,P.SHIMMER)}));const e=$("article img[".concat(V,'="true"]'));e.length&&e.each(B)}(),$(".popup")<=0||$(".popup").magnificPopup({type:"image",closeOnContentClick:!0,showCloseBtn:!1,zoom:{enabled:!0,duration:300,easing:"ease-in-out"}}),dayjs.locale(H.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),$("[".concat(H.attrTimestamp,"]")).each((function(){const t=dayjs.unix(H.getTimestamp($(this))),e=t.format(H.getDateFormat($(this)));$(this).text(e),$(this).removeAttr(H.attrTimestamp),$(this).removeAttr(H.attrDateFormat);const o=$(this).attr("data-bs-toggle");if(void 0===o||"tooltip"!==o)return;const a=t.format("llll");$(this).attr("data-bs-title",a),new bootstrap.Tooltip($(this))})),function(){if($(x).length){const t=new ClipboardJS(x,{target:t=>t.parentNode.nextElementSibling.querySelector("code .rouge-code")});[...document.querySelectorAll(x)].map((t=>new bootstrap.Tooltip(t,{placement:"left"}))),t.on("success",(t=>{t.clearSelection();const e=t.trigger;F(e)||(!function(t){$(t).children().attr("class",A)}(e),function(t){const e=$(t).attr(j);$(t).attr(D,e).tooltip("show")}(e),R(e),setTimeout((()=>{!function(t){$(t).tooltip("hide").removeAttr(D)}(e),function(t){$(t).children().attr("class",I)}(e),q(e)}),M))}))}const t=$("#copy-link");t.on("click",(t=>{let e=$(t.target);F(e)||navigator.clipboard.writeText(window.location.href).then((()=>{const t=e.attr(D),o=e.attr(j);e.attr(D,o).tooltip("show"),R(e),setTimeout((()=>{e.attr(D,t),q(e)}),M)}))})),t.on("mouseleave",(function(t){$(t.target).tooltip("hide")}))}(),document.querySelector("main h2, main h3")&&tocbot.init({tocSelector:"#toc",contentSelector:".content",ignoreSelector:"[data-toc-skip]",headingSelector:"h2, h3, h4",orderedList:!1,scrollSmooth:!1}),function(){const t=$(window),e=$("#back-to-top");t.on("scroll",(()=>{t.scrollTop()>50?e.fadeIn():e.fadeOut()})),e.on("click",(()=>{t.scrollTop(0)}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((t=>new bootstrap.Tooltip(t)))}();
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-chirpy-customized-upe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jo Cruise
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-22 00:00:00.000000000 Z
11
+ date: 2024-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -195,6 +195,7 @@ files:
195
195
  - _sass/layout/tags.scss
196
196
  - _sass/main.scss
197
197
  - _sass/variables-hook.scss
198
+ - assets/.DS_Store
198
199
  - assets/404.html
199
200
  - assets/css/jekyll-theme-chirpy-customized-upe.scss
200
201
  - assets/feed.xml
@@ -209,6 +210,13 @@ files:
209
210
  - assets/img/favicons/site.webmanifest
210
211
  - assets/js/data/search.json
211
212
  - assets/js/data/swconf.js
213
+ - assets/js/dist/app.min.js
214
+ - assets/js/dist/categories.min.js
215
+ - assets/js/dist/commons.min.js
216
+ - assets/js/dist/home.min.js
217
+ - assets/js/dist/misc.min.js
218
+ - assets/js/dist/page.min.js
219
+ - assets/js/dist/post.min.js
212
220
  - assets/js/pwa/app.js
213
221
  - assets/js/pwa/sw.js
214
222
  - assets/robots.txt