hexo-theme-solitude 1.4.2 → 1.4.4

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.
Files changed (77) hide show
  1. package/CONTRIBUTING.md +1 -1
  2. package/README.md +1 -1
  3. package/README_EN.md +1 -1
  4. package/_config.yml +165 -151
  5. package/languages/en-US.yml +31 -2
  6. package/languages/zh-CN.yml +32 -2
  7. package/languages/zh-TW.yml +147 -0
  8. package/layout/includes/footer.pug +2 -5
  9. package/layout/includes/head/config.pug +15 -2
  10. package/layout/includes/inject/body.pug +13 -4
  11. package/layout/includes/inject/head.pug +1 -4
  12. package/layout/includes/layout.pug +4 -0
  13. package/layout/includes/loading.pug +1 -1
  14. package/layout/includes/page/album.pug +4 -22
  15. package/layout/includes/page/gallery.pug +2 -2
  16. package/layout/includes/page/music.pug +1 -4
  17. package/layout/includes/page/says.pug +1 -3
  18. package/layout/includes/widgets/aside/asideInfoCard.pug +1 -1
  19. package/layout/includes/widgets/home/bb/json.pug +3 -2
  20. package/layout/includes/widgets/home/bb/local.pug +2 -3
  21. package/layout/includes/widgets/home/bb/memos.pug +4 -2
  22. package/layout/includes/widgets/page/about/authorinfo.pug +1 -1
  23. package/layout/includes/widgets/page/about/award.pug +6 -3
  24. package/layout/includes/widgets/page/about/hobbies.pug +2 -2
  25. package/layout/includes/widgets/page/about/motto.pug +17 -15
  26. package/layout/includes/widgets/page/about/skillsinfo.pug +38 -36
  27. package/layout/includes/widgets/page/about/tenyear.pug +1 -1
  28. package/layout/includes/widgets/page/says/json.pug +13 -9
  29. package/layout/includes/widgets/page/says/local.pug +1 -1
  30. package/layout/includes/widgets/page/says/memos.pug +10 -6
  31. package/layout/includes/widgets/rightside/index.pug +33 -22
  32. package/package.json +1 -1
  33. package/plugins.yml +7 -3
  34. package/scripts/event/cdn.js +5 -1
  35. package/scripts/event/init.js +18 -19
  36. package/scripts/event/page.js +0 -5
  37. package/scripts/filter/checkThemeConfig.js +23 -7
  38. package/scripts/filter/lazyload.js +2 -3
  39. package/scripts/generator/gallery.js +47 -0
  40. package/scripts/helper/related_post.js +0 -6
  41. package/scripts/helper/stylus.js +8 -3
  42. package/source/css/_layout/basic.styl +0 -3
  43. package/source/css/_layout/index.styl +54 -34
  44. package/source/css/_page/_about/index.styl +49 -0
  45. package/source/css/_page/{about → _about}/reward.styl +7 -0
  46. package/source/css/_page/{gallery → _gallery}/index.styl +16 -8
  47. package/source/css/_page/_home/home-top.styl +125 -302
  48. package/source/css/_page/_home/index.styl +9 -4
  49. package/source/css/_page/_home/recent-post.styl +1 -0
  50. package/source/css/_page/index.styl +3 -152
  51. package/source/css/_page/share.styl +318 -0
  52. package/source/css/_widgets/_aside/info.styl +3 -0
  53. package/source/css/_widgets/_comment/twikoo.styl +1 -1
  54. package/source/img/loading.gif +0 -0
  55. package/source/js/covercolor/local.js +11 -11
  56. package/source/js/main.js +63 -55
  57. package/source/js/rightside.js +159 -342
  58. package/source/js/search/algolia.js +1 -3
  59. package/source/js/search/local.js +1 -3
  60. package/source/js/tw_cn.js +76 -0
  61. package/source/js/utils.js +8 -27
  62. package/layout/includes/page/not_configured.pug +0 -18
  63. package/scripts/helper/cdn.js +0 -12
  64. package/source/css/_page/about/index.styl +0 -39
  65. /package/source/css/_page/{about → _about}/author.styl +0 -0
  66. /package/source/css/_page/{about → _about}/buff.styl +0 -0
  67. /package/source/css/_page/{about → _about}/careers.styl +0 -0
  68. /package/source/css/_page/{about → _about}/contentinfo.styl +0 -0
  69. /package/source/css/_page/{about → _about}/game.styl +0 -0
  70. /package/source/css/_page/{about → _about}/like.styl +0 -0
  71. /package/source/css/_page/{about → _about}/maxim.styl +0 -0
  72. /package/source/css/_page/{about → _about}/myphoto.styl +0 -0
  73. /package/source/css/_page/{about → _about}/oneself.styl +0 -0
  74. /package/source/css/_page/{about → _about}/personalities.styl +0 -0
  75. /package/source/css/_page/{about → _about}/skills.styl +0 -0
  76. /package/source/css/_page/{about → _about}/statistic.styl +0 -0
  77. /package/source/css/_page/{about → _about}/tenyear.styl +0 -0
@@ -0,0 +1,318 @@
1
+ // banner
2
+
3
+ div#banners
4
+ display none
5
+ +minWidth1200()
6
+ display flex
7
+ width 100%
8
+ height 76%
9
+ background var(--sco-card-bg)
10
+ margin-bottom .5rem
11
+ border var(--style-border)
12
+ border-radius 12px
13
+ overflow hidden
14
+ position relative
15
+ box-shadow var(--sco-shadow-border)
16
+ flex-direction column
17
+ transition .3s
18
+ will-change transform
19
+ animation slide-in .6s .1s backwards
20
+
21
+ :not(.flink)&:hover
22
+ box-shadow var(--sco-shadow-main)
23
+
24
+ .banner-button-group
25
+ position absolute
26
+ right 2rem
27
+ top 2rem
28
+ display flex
29
+
30
+ .banner-button
31
+ padding 8px 12px
32
+ background var(--sco-fontcolor)
33
+ border-radius 12px
34
+ color var(--sco-card-bg)
35
+ display flex
36
+ align-items center
37
+ z-index 1
38
+ transition .3s
39
+ cursor pointer
40
+ box-shadow var(--sco-shadow-black)
41
+
42
+ &.secondary
43
+ background var(--sco-secondbg)
44
+ border var(--style-border-always)
45
+ color var(--sco-lighttext)
46
+ margin-right 1rem
47
+ box-shadow var(--sco-shadow-border)
48
+
49
+ &:hover
50
+ background var(--sco-theme)
51
+ color var(--sco-white)
52
+
53
+ i
54
+ margin-right 8px
55
+ font-size 1rem
56
+
57
+ .banners-title
58
+ top 2rem
59
+ left 1.5rem
60
+ position absolute
61
+ display flex
62
+ flex-direction column
63
+
64
+ &-big
65
+ font-size 36px
66
+ line-height 1
67
+ font-weight 700
68
+ margin-bottom 8px
69
+
70
+ &-small
71
+ font-size 12px
72
+ line-height 1
73
+ color var(--sco-secondtext)
74
+ margin-top 8px
75
+ margin-bottom .5rem
76
+
77
+ #banner-hover
78
+ position absolute
79
+ width 100%
80
+ height 100%
81
+ top 0
82
+ left 0
83
+ border-radius 12px
84
+ background var(--sco-theme)
85
+ color var(--sco-card-bg)
86
+ padding-left .5rem
87
+ display flex
88
+ flex-direction column
89
+ justify-content center
90
+ opacity 0
91
+ transition cubic-bezier(.71, .15, .16, 1.15) .6s
92
+
93
+ i
94
+ font-size 80px
95
+ opacity .4
96
+
97
+ &:hover
98
+ #banner-hover
99
+ opacity 1
100
+ padding-left 2rem
101
+ background var(--sco-theme-op-deep)
102
+ backdrop-filter blur(15px)
103
+ transform translateZ(0)
104
+ transition .3s
105
+ background-size 200%
106
+ cursor pointer
107
+
108
+ .flink
109
+ .banners-title
110
+ top 1.5rem
111
+
112
+ .bannerText
113
+ font-size 4rem
114
+ line-height 4rem
115
+ font-weight 700
116
+
117
+ .tags-group-all
118
+ display flex
119
+ transform rotate(-30deg)
120
+
121
+ &.nowrapMove
122
+ transform rotate(0)
123
+ padding-bottom 2rem
124
+
125
+ .tags-group-wrapper
126
+ margin-top: 7rem
127
+ animation: rowup 120s linear infinite
128
+
129
+ .tags-group-icon
130
+ border-radius 50%
131
+
132
+ img
133
+ min-width 100%
134
+ min-height 100%
135
+ border-radius 50%
136
+ object-fit cover
137
+
138
+ .tags-group-wrapper
139
+ margin-top: 5rem
140
+ display: flex
141
+ flex-wrap: nowrap
142
+ animation: rowup 60s linear infinite
143
+
144
+ /.tags-group-icon-pair
145
+ margin-left 1rem
146
+ user-select none
147
+
148
+ a img
149
+ border-radius 50%
150
+
151
+ .tags-group-icon
152
+ width 120px
153
+ height 120px
154
+ display flex
155
+ align-items center
156
+ justify-content center
157
+ color #fff
158
+ font-size 66px
159
+ font-weight 700
160
+ box-shadow var(--sco-shadow-blackdeep)
161
+
162
+ &:nth-child(even)
163
+ margin-top 1rem
164
+ transform translate(-60px)
165
+
166
+ img
167
+ width 60%
168
+
169
+ .author-content
170
+ display flex
171
+ flex-wrap wrap
172
+ justify-content space-between
173
+ width 100%
174
+ margin-top 1rem
175
+
176
+ +maxWidth768()
177
+ margin-top 0
178
+
179
+ .author-content-item
180
+ +maxWidth1300()
181
+ animation slide-in .6s 0s backwards
182
+ +maxWidth768()
183
+ width 100% !important
184
+ margin-top 1rem
185
+ padding 1rem
186
+
187
+ .author-content.author-content-item.sharePage
188
+ height 19rem
189
+ background-size cover
190
+ color var(--sco-white)
191
+ overflow hidden
192
+ margin-top 0
193
+
194
+ .author-content-item
195
+ width 49%
196
+ border-radius 12px
197
+ background var(--sco-card-bg)
198
+ border var(--style-border-always)
199
+ box-shadow var(--sco-shadow-border)
200
+ position relative
201
+ overflow hidden
202
+ padding 1rem 2rem
203
+
204
+ +maxWidth768()
205
+ width 100%
206
+ margin-top 1rem
207
+ padding 1rem
208
+
209
+ &.single
210
+ width 100%
211
+
212
+ .author-content-item-title
213
+ font-size 36px
214
+ font-weight 700
215
+ line-height 1
216
+
217
+ .author-content-item-tips
218
+ opacity .8
219
+ font-size .6rem
220
+ margin-bottom .5rem
221
+
222
+ .content-bottom
223
+ margin-top auto
224
+ display flex
225
+ align-items center
226
+ justify-content space-between
227
+
228
+ .icon-group
229
+ display flex
230
+
231
+ i
232
+ display inline-block
233
+ width 22px
234
+ height 18px
235
+ margin-right .5rem
236
+
237
+ .card-content
238
+ position absolute
239
+ width 100%
240
+ height 100%
241
+ top 0
242
+ left 0
243
+ display flex
244
+ flex-direction column
245
+ padding 1rem 2rem
246
+
247
+ +maxWidth768()
248
+ padding 1rem
249
+
250
+ .author-content-item-title
251
+ margin-bottom .5rem
252
+
253
+ .banner-button-group
254
+ position absolute
255
+ bottom 1.5rem
256
+ right 2rem
257
+
258
+ .banner-button
259
+ height 40px
260
+ width 118px
261
+ border-radius 20px
262
+ justify-content center
263
+ background var(--sco-black-op)
264
+ color var(--sco-white)
265
+ display flex
266
+ align-items center
267
+ z-index 1
268
+ transition .3s
269
+ cursor pointer
270
+ backdrop-filter saturate(180%) blur(20px)
271
+ -webkit-backdrop-filter blur(20px)
272
+ transform translateZ(0)
273
+
274
+ &:hover
275
+ background var(--sco-main)
276
+ color var(--sco-card-bg)
277
+
278
+ i
279
+ margin-right 8px
280
+ font-size 22px
281
+
282
+ +maxWidth900()
283
+ .author-content-item
284
+ .card-content
285
+ .banner-button-group
286
+ right 1rem
287
+ bottom 1rem
288
+
289
+ .banner-button-group
290
+ .banner-button
291
+ background 0 0
292
+ color var(--sco-white)
293
+ padding 0
294
+ width 30px
295
+ height 30px
296
+
297
+ i
298
+ margin-right 0
299
+ font-size 1.5rem
300
+
301
+ .banner-button-text
302
+ display none
303
+
304
+ #page
305
+ p
306
+ a
307
+ &:not(.headerlink)
308
+ text-decoration none
309
+ border-bottom 2px dotted var(--sco-lighttext)
310
+ color var(--sco-fontcolor)
311
+ font-weight 700
312
+ padding 0 4px
313
+ border-radius 4px 4px 0 0
314
+
315
+ &:hover
316
+ color var(--sco-white)
317
+ border-radius 4px
318
+ background var(--sco-main)
@@ -177,6 +177,9 @@
177
177
  bottom 0
178
178
  align-items center
179
179
 
180
+ a.author-info__bottom-group-left:hover
181
+ opacity .8
182
+
180
183
  .card-info-data
181
184
  display table
182
185
  margin .7rem 0 .2rem
@@ -151,7 +151,7 @@
151
151
  top -132px
152
152
 
153
153
  .tk-row-actions-start
154
- top -210px
154
+ top -170px
155
155
 
156
156
  .tk-comments-title
157
157
  position absolute
Binary file
@@ -3,10 +3,10 @@ const coverColor = () => {
3
3
  if (path) {
4
4
  localColor(path);
5
5
  } else {
6
- document.documentElement.style.setProperty('--sco-main', 'let(--sco-theme)');
7
- document.documentElement.style.setProperty('--sco-main-op', 'let(--sco-theme-op)');
8
- document.documentElement.style.setProperty('--sco-main-op-deep', 'let(--sco-theme-op-deep)');
9
- document.documentElement.style.setProperty('--sco-main-none', 'let(--sco-theme-none)');
6
+ document.documentElement.style.setProperty('--sco-main', 'var(--sco-theme)');
7
+ document.documentElement.style.setProperty('--sco-main-op', 'var(--sco-theme-op)');
8
+ document.documentElement.style.setProperty('--sco-main-op-deep', 'var(--sco-theme-op-deep)');
9
+ document.documentElement.style.setProperty('--sco-main-none', 'var(--sco-theme-none)');
10
10
  initThemeColor()
11
11
  }
12
12
  }
@@ -119,22 +119,22 @@ function setThemeColors(value, r = null, g = null, b = null) {
119
119
  if (r && g && b) {
120
120
  let brightness = Math.round(((parseInt(r) * 299) + (parseInt(g) * 587) + (parseInt(b) * 114)) / 1000);
121
121
  for (let i = 0; i < cardContents.length; i++) {
122
- cardContents[i].style.setProperty('--sco-card-bg', 'let(--sco-white)');
122
+ cardContents[i].style.setProperty('--sco-card-bg', 'var(--sco-white)');
123
123
  }
124
124
 
125
125
  for (let i = 0; i < authorInfo.length; i++) {
126
- authorInfo[i].style.setProperty('background', 'let(--sco-white-op)');
127
- authorInfo[i].style.setProperty('color', 'let(--sco-white)');
126
+ authorInfo[i].style.setProperty('background', 'var(--sco-white-op)');
127
+ authorInfo[i].style.setProperty('color', 'var(--sco-white)');
128
128
  }
129
129
  }
130
130
 
131
131
  document.getElementById("coverdiv").classList.add("loaded");
132
132
  initThemeColor();
133
133
  } else {
134
- document.documentElement.style.setProperty('--sco-main', 'let(--sco-theme)');
135
- document.documentElement.style.setProperty('--sco-main-op', 'let(--sco-theme-op)');
136
- document.documentElement.style.setProperty('--sco-main-op-deep', 'let(--sco-theme-op-deep)');
137
- document.documentElement.style.setProperty('--sco-main-none', 'let(--sco-theme-none)');
134
+ document.documentElement.style.setProperty('--sco-main', 'var(--sco-theme)');
135
+ document.documentElement.style.setProperty('--sco-main-op', 'var(--sco-theme-op)');
136
+ document.documentElement.style.setProperty('--sco-main-op-deep', 'var(--sco-theme-op-deep)');
137
+ document.documentElement.style.setProperty('--sco-main-none', 'var(--sco-theme-none)');
138
138
  initThemeColor();
139
139
  }
140
140
  }
package/source/js/main.js CHANGED
@@ -64,37 +64,45 @@ const scrollFn = function () {
64
64
  }
65
65
  }
66
66
 
67
+ let ticking = false;
68
+
67
69
  const percent = () => {
68
- let scrollTop = document.documentElement.scrollTop || window.pageYOffset
69
- let totalHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight) - document.documentElement.clientHeight
70
- let scrollPercent = Math.round(scrollTop / totalHeight * 100)
71
- let percentElement = document.querySelector("#percent")
72
- let viewportBottom = window.scrollY + document.documentElement.clientHeight
73
- let remainingScroll = totalHeight - scrollTop
74
-
75
- if ((document.getElementById("post-comment") || document.getElementById("footer")).offsetTop < viewportBottom || scrollPercent > 90) {
76
- document.querySelector("#nav-totop").classList.add("long")
77
- percentElement.innerHTML = "返回顶部"
78
- } else {
79
- document.querySelector("#nav-totop").classList.remove("long")
80
- if (scrollPercent >= 0) {
81
- percentElement.innerHTML = scrollPercent + ""
82
- }
83
- }
70
+ if (!ticking) {
71
+ window.requestAnimationFrame(() => {
72
+ let scrollTop = document.documentElement.scrollTop || window.pageYOffset;
73
+ let totalHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight) - document.documentElement.clientHeight;
74
+ let scrollPercent = Math.round(scrollTop / totalHeight * 100);
75
+ let percentElement = document.querySelector("#percent");
76
+ let viewportBottom = window.scrollY + document.documentElement.clientHeight;
77
+ let remainingScroll = totalHeight - scrollTop;
78
+
79
+ if ((document.getElementById("post-comment") || document.getElementById("footer")).offsetTop < viewportBottom || scrollPercent > 90) {
80
+ document.querySelector("#nav-totop").classList.add("long");
81
+ percentElement.innerHTML = "返回顶部";
82
+ } else {
83
+ document.querySelector("#nav-totop").classList.remove("long");
84
+ if (scrollPercent >= 0) {
85
+ percentElement.innerHTML = scrollPercent + "";
86
+ }
87
+ }
84
88
 
85
- let elementsToHide = document.querySelectorAll(".needEndHide")
86
- if (remainingScroll < 100) {
87
- elementsToHide.forEach(function (element) {
88
- element.classList.add("hide")
89
- })
90
- } else {
91
- elementsToHide.forEach(function (element) {
92
- element.classList.remove("hide")
93
- })
89
+ let elementsToHide = document.querySelectorAll(".needEndHide");
90
+ if (remainingScroll < 100) {
91
+ elementsToHide.forEach(function (element) {
92
+ element.classList.add("hide");
93
+ });
94
+ } else {
95
+ elementsToHide.forEach(function (element) {
96
+ element.classList.remove("hide");
97
+ });
98
+ }
99
+ ticking = false;
100
+ });
101
+ ticking = true;
94
102
  }
103
+ };
95
104
 
96
- window.onscroll = percent
97
- }
105
+ window.onscroll = percent;
98
106
 
99
107
 
100
108
  const showTodayCard = () => {
@@ -109,10 +117,15 @@ const showTodayCard = () => {
109
117
  }
110
118
 
111
119
  const changeTimeFormat = () => {
112
- const timeElements = document.getElementsByTagName("time"), lang = GLOBAL_CONFIG.lang.time
113
- for (let i = 0; i < timeElements.length; i++) {
114
- const datetime = timeElements[i].getAttribute("datetime"), timeObj = new Date(datetime),
115
- daysDiff = utils.timeDiff(timeObj, new Date())
120
+ const timeElements = Array.from(document.getElementsByTagName("time"));
121
+ const lang = GLOBAL_CONFIG.lang.time;
122
+ const currentDate = new Date();
123
+
124
+ timeElements.forEach(timeElement => {
125
+ const datetime = timeElement.getAttribute("datetime");
126
+ const timeObj = new Date(datetime);
127
+ const daysDiff = utils.timeDiff(timeObj, currentDate);
128
+
116
129
  let timeString;
117
130
  if (daysDiff === 0) {
118
131
  timeString = lang.recent;
@@ -121,16 +134,16 @@ const changeTimeFormat = () => {
121
134
  } else if (daysDiff === 2) {
122
135
  timeString = lang.berforeyesterday;
123
136
  } else if (daysDiff <= 7) {
124
- timeString = daysDiff + lang.daybefore;
137
+ timeString = `${daysDiff}${lang.daybefore}`;
125
138
  } else {
126
- if (timeObj.getFullYear() !== new Date().getFullYear()) {
127
- timeString = timeObj.getFullYear() + "/" + (timeObj.getMonth() + 1) + "/" + timeObj.getDate();
139
+ if (timeObj.getFullYear() !== currentDate.getFullYear()) {
140
+ timeString = `${timeObj.getFullYear()}/${timeObj.getMonth() + 1}/${timeObj.getDate()}`;
128
141
  } else {
129
- timeString = (timeObj.getMonth() + 1) + "/" + timeObj.getDate();
142
+ timeString = `${timeObj.getMonth() + 1}/${timeObj.getDate()}`;
130
143
  }
131
144
  }
132
- timeElements[i].textContent = timeString;
133
- }
145
+ timeElement.textContent = timeString;
146
+ });
134
147
  }
135
148
 
136
149
  const initObserver = () => {
@@ -281,7 +294,7 @@ let sco = {
281
294
  htmlClassList.toggle("hide-aside");
282
295
  htmlClassList.contains("hide-aside") ? document.querySelector("#consoleHideAside").classList.add("on") : document.querySelector("#consoleHideAside").classList.remove("on");
283
296
  },
284
- switchKeyboard: function() {
297
+ switchKeyboard: function () {
285
298
  sco_keyboards = !sco_keyboards;
286
299
  const consoleKeyboard = document.querySelector("#consoleKeyboard");
287
300
  if (sco_keyboards) {
@@ -323,37 +336,31 @@ let sco = {
323
336
  GLOBAL_CONFIG.rightside && (document.querySelector(".menu-darkmode-text").textContent = "深色模式");
324
337
  }
325
338
  },
326
- hideTodayCard: function () {
327
- document.getElementById('todayCard').classList.add('hide')
328
- },
329
- toTop: function () {
330
- utils.scrollToDest(0)
331
- },
339
+ hideTodayCard: () => document.getElementById('todayCard').classList.add('hide'),
340
+ toTop: () => utils.scrollToDest(0),
341
+
332
342
  showConsole: function () {
333
343
  let el = document.getElementById('console')
334
- if (!el.classList.contains('show')) {
344
+ if (el && !el.classList.contains('show')) {
335
345
  el.classList.add('show')
336
346
  }
337
347
  },
338
348
  hideConsole: function () {
339
349
  const el = document.getElementById('console')
340
- if (el.classList.contains('show')) {
341
- el.classList.remove('show')
342
- }
350
+ el && el.classList.remove('show')
343
351
  },
344
352
  reflashEssayWaterFall: function () {
345
- if (document.getElementById('waterfall')) {
353
+ const el = document.getElementById('waterfall')
354
+ el && (() => {
346
355
  setTimeout(function () {
347
356
  waterfall('#waterfall');
348
- document.getElementById("waterfall").classList.add('show');
357
+ el.classList.add('show');
349
358
  }, 500);
350
- }
359
+ })();
351
360
  },
352
361
  addRuntime: function () {
353
362
  let el = document.getElementById('runtimeshow')
354
- if (el && GLOBAL_CONFIG.runtime) {
355
- el.innerText = utils.timeDiff(new Date(GLOBAL_CONFIG.runtime), new Date()) + GLOBAL_CONFIG.lang.time.runtime
356
- }
363
+ el && GLOBAL_CONFIG.runtime && (el.innerText = utils.timeDiff(new Date(GLOBAL_CONFIG.runtime), new Date()) + GLOBAL_CONFIG.lang.time.runtime)
357
364
  },
358
365
  toTalk: function (txt) {
359
366
  const inputs = ["#wl-edit", ".el-textarea__inner"]
@@ -832,5 +839,6 @@ document.addEventListener('DOMContentLoaded', function () {
832
839
  })
833
840
 
834
841
  window.onkeydown = function (e) {
835
- 123 === e.keyCode && utils.snackbarShow("开发者模式已打开,请遵循GPL协议", !1, 3e3)
842
+ (123 === e.keyCode || (17 === e.ctrlKey && 16 === e.shiftKey && 67 === e.keyCode)) && utils.snackbarShow("开发者模式已打开,请遵循GPL协议", !1, 3e3);
843
+ (27 === e.keyCode) && sco.hideConsole();
836
844
  }