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

Sign up to get free protection for your applications and to get access to all the features.
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