hexo-theme-shokax 0.2.10 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. package/LICENSE +68 -81
  2. package/README.md +17 -6
  3. package/UsageRestrictions.md +21 -0
  4. package/_config.yml +5 -12
  5. package/layout/_mixin/comment.pug +1 -2
  6. package/layout/_mixin/widgets.pug +2 -1
  7. package/layout/_partials/layout.pug +23 -23
  8. package/package.json +16 -12
  9. package/scripts/generaters/script.js +29 -8
  10. package/scripts/helpers/summary_ai.js +0 -1
  11. package/scripts/plugin/check.js +30 -0
  12. package/scripts/plugin/index.js +5 -0
  13. package/source/css/_common/components/tags/tabs.styl +0 -2
  14. package/source/css/_common/scaffolding/normalize.styl +165 -180
  15. package/source/js/_app/globals/globalVars.js +26 -0
  16. package/source/js/_app/globals/handles.js +105 -0
  17. package/source/js/_app/globals/themeColor.js +48 -0
  18. package/source/js/_app/globals/thirdparty.js +60 -0
  19. package/source/js/_app/globals/tools.js +75 -0
  20. package/source/js/_app/library/anime.js +85 -0
  21. package/source/js/_app/library/dom.js +22 -0
  22. package/source/js/_app/library/loadFile.js +32 -0
  23. package/source/js/_app/library/proto.js +105 -0
  24. package/source/js/_app/library/scriptPjax.js +57 -0
  25. package/source/js/_app/library/storage.js +11 -0
  26. package/source/js/_app/page/comment.js +19 -0
  27. package/source/js/_app/page/common.js +57 -0
  28. package/source/js/_app/page/fancybox.js +59 -0
  29. package/source/js/_app/page/post.js +232 -0
  30. package/source/js/_app/page/search.js +111 -0
  31. package/source/js/_app/page/tab.js +50 -0
  32. package/source/js/_app/pjax/domInit.js +68 -0
  33. package/source/js/_app/pjax/refresh.js +42 -0
  34. package/source/js/_app/pjax/siteInit.js +34 -0
  35. package/source/js/_app/player.js +1 -1
  36. package/source/js/_app/global.js +0 -314
  37. package/source/js/_app/library.js +0 -312
  38. package/source/js/_app/page.js +0 -673
  39. /package/source/js/_app/{components.js → components/sidebar.js} +0 -0
  40. /package/source/js/_app/{vue.js → library/vue.js} +0 -0
@@ -1,108 +1,116 @@
1
- /* normalize.css v8..1 | MIT License | github.com/necolas/normalize.css */
2
- /* Document
3
- ========================================================================== */
1
+ /*! modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
2
+
3
+ /*
4
+ Document
5
+ ========
6
+ */
7
+
4
8
  /**
5
- * 1. Correct the line height in all browsers.
6
- * 2. Prevent adjustments of font size after orientation changes in iOS.
7
- */
9
+ Use a better box model (opinionated).
10
+ */
11
+
12
+ *,
13
+ ::before,
14
+ ::after {
15
+ box-sizing: border-box;
16
+ }
17
+
8
18
  html {
9
- line-height: 1.15; /* 1 */
10
- -webkit-text-size-adjust: 100%; /* 2 */
19
+ /* Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */
20
+ font-family:
21
+ system-ui,
22
+ 'Segoe UI',
23
+ Roboto,
24
+ Helvetica,
25
+ Arial,
26
+ sans-serif,
27
+ 'Apple Color Emoji',
28
+ 'Segoe UI Emoji';
29
+ line-height: 1.15; /* 1. Correct the line height in all browsers. */
30
+ -webkit-text-size-adjust: 100%; /* 2. Prevent adjustments of font size after orientation changes in iOS. */
31
+ -moz-tab-size: 4; /* 3. Use a more readable tab size (opinionated). */
32
+ tab-size: 4; /* 3 */
11
33
  }
12
34
 
13
- /* Sections
14
- ========================================================================== */
15
- /**
16
- * Remove the margin in all browsers.
17
- */
35
+ /*
36
+ Sections
37
+ ========
38
+ */
39
+
18
40
  body {
19
- margin: 0;
41
+ margin: 0; /* Remove the margin in all browsers. */
20
42
  }
21
43
 
22
- /**
23
- * Render the `main` element consistently in IE.
24
- */
25
- main {
26
- display: block;
27
- }
44
+ /*
45
+ Grouping content
46
+ ================
47
+ */
28
48
 
29
49
  /**
30
- * Correct the font size and margin on `h1` elements within `section` and
31
- * `article` contexts in Chrome, Firefox, and Safari.
32
- */
33
- h1 {
34
- font-size: 2em;
35
- margin: .67em 0;
36
- }
50
+ 1. Add the correct height in Firefox.
51
+ 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
52
+ */
37
53
 
38
- /* Grouping content
39
- ========================================================================== */
40
- /**
41
- * 1. Add the correct box sizing in Firefox.
42
- * 2. Show the overflow in Edge and IE.
43
- */
44
54
  hr {
45
- box-sizing: content-box; /* 1 */
46
55
  height: 0; /* 1 */
47
- overflow: visible; /* 2 */
56
+ color: inherit; /* 2 */
48
57
  }
49
58
 
50
- /**
51
- * 1. Correct the inheritance and scaling of font size in all browsers.
52
- * 2. Correct the odd `em` font sizing in all browsers.
53
- */
54
- pre {
55
- font-family: monospace, monospace; /* 1 */
56
- font-size: 1em; /* 2 */
57
- }
59
+ /*
60
+ Text-level semantics
61
+ ====================
62
+ */
58
63
 
59
- /* Text-level semantics
60
- ========================================================================== */
61
64
  /**
62
- * Remove the gray background on active links in IE 1.
63
- */
64
- a {
65
- background: transparent;
66
- }
65
+ Add the correct text decoration in Chrome, Edge, and Safari.
66
+ */
67
67
 
68
- /**
69
- * 1. Remove the bottom border in Chrome 57-
70
- * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
71
- */
72
68
  abbr[title] {
73
- border-bottom: none; /* 1 */
74
- text-decoration: underline; /* 2 */
75
- //text-decoration: underline dotted; /* 2 */
69
+ text-decoration: underline dotted;
76
70
  }
77
71
 
78
72
  /**
79
- * Add the correct font weight in Chrome, Edge, and Safari.
80
- */
81
- b, strong {
73
+ Add the correct font weight in Edge and Safari.
74
+ */
75
+
76
+ b,
77
+ strong {
82
78
  font-weight: bolder;
83
79
  }
84
80
 
85
81
  /**
86
- * 1. Correct the inheritance and scaling of font size in all browsers.
87
- * 2. Correct the odd `em` font sizing in all browsers.
88
- */
89
- code, kbd, samp {
90
- font-family: monospace, monospace; /* 1 */
82
+ 1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
83
+ 2. Correct the odd 'em' font sizing in all browsers.
84
+ */
85
+
86
+ code,
87
+ kbd,
88
+ samp,
89
+ pre {
90
+ font-family:
91
+ ui-monospace,
92
+ SFMono-Regular,
93
+ Consolas,
94
+ 'Liberation Mono',
95
+ Menlo,
96
+ monospace; /* 1 */
91
97
  font-size: 1em; /* 2 */
92
98
  }
93
99
 
94
100
  /**
95
- * Add the correct font size in all browsers.
96
- */
101
+ Add the correct font size in all browsers.
102
+ */
103
+
97
104
  small {
98
105
  font-size: 80%;
99
106
  }
100
107
 
101
108
  /**
102
- * Prevent `sub` and `sup` elements from affecting the line height in
103
- * all browsers.
104
- */
105
- sub, sup {
109
+ Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
110
+ */
111
+
112
+ sub,
113
+ sup {
106
114
  font-size: 75%;
107
115
  line-height: 0;
108
116
  position: relative;
@@ -110,29 +118,43 @@ sub, sup {
110
118
  }
111
119
 
112
120
  sub {
113
- bottom: -.25em;
121
+ bottom: -0.25em;
114
122
  }
115
123
 
116
124
  sup {
117
- top: -.5em;
125
+ top: -0.5em;
118
126
  }
119
127
 
120
- /* Embedded content
121
- ========================================================================== */
128
+ /*
129
+ Tabular data
130
+ ============
131
+ */
132
+
122
133
  /**
123
- * Remove the border on images inside links in IE 1.
124
- */
125
- img {
126
- border-style: none;
134
+ 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
135
+ 2. Correct table border color inheritance in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
136
+ */
137
+
138
+ table {
139
+ text-indent: 0; /* 1 */
140
+ border-color: inherit; /* 2 */
127
141
  }
128
142
 
129
- /* Forms
130
- ========================================================================== */
143
+ /*
144
+ Forms
145
+ =====
146
+ */
147
+
131
148
  /**
132
- * 1. Change the font styles in all browsers.
133
- * 2. Remove the margin in Firefox and Safari.
134
- */
135
- button, input, optgroup, select, textarea {
149
+ 1. Change the font styles in all browsers.
150
+ 2. Remove the margin in Firefox and Safari.
151
+ */
152
+
153
+ button,
154
+ input,
155
+ optgroup,
156
+ select,
157
+ textarea {
136
158
  font-family: inherit; /* 1 */
137
159
  font-size: 100%; /* 1 */
138
160
  line-height: 1.15; /* 1 */
@@ -140,150 +162,113 @@ button, input, optgroup, select, textarea {
140
162
  }
141
163
 
142
164
  /**
143
- * Show the overflow in IE.
144
- * 1. Show the overflow in Edge.
145
- */
146
- button, input {
147
- /* 1 */
148
- overflow: visible;
149
- }
165
+ Remove the inheritance of text transform in Edge and Firefox.
166
+ */
150
167
 
151
- /**
152
- * Remove the inheritance of text transform in Edge, Firefox, and IE.
153
- * 1. Remove the inheritance of text transform in Firefox.
154
- */
155
- button, select {
156
- /* 1 */
168
+ button,
169
+ select {
157
170
  text-transform: none;
158
171
  }
159
172
 
160
173
  /**
161
- * Correct the inability to style clickable types in iOS and Safari.
162
- */
163
- button, [type='button'], [type='reset'], [type='submit'] {
174
+ Correct the inability to style clickable types in iOS and Safari.
175
+ */
176
+
177
+ button,
178
+ [type='button'],
179
+ [type='reset'],
180
+ [type='submit'] {
164
181
  -webkit-appearance: button;
165
182
  }
166
183
 
167
184
  /**
168
- * Remove the inner border and padding in Firefox.
169
- */
170
- button::-moz-focus-inner, [type='button']::-moz-focus-inner, [type='reset']::-moz-focus-inner, [type='submit']::-moz-focus-inner {
185
+ Remove the inner border and padding in Firefox.
186
+ */
187
+
188
+ ::-moz-focus-inner {
171
189
  border-style: none;
172
190
  padding: 0;
173
191
  }
174
192
 
175
193
  /**
176
- * Restore the focus styles unset by the previous rule.
177
- */
178
- button:-moz-focusring, [type='button']:-moz-focusring, [type='reset']:-moz-focusring, [type='submit']:-moz-focusring {
179
- outline: .0625rem dotted ButtonText;
194
+ Restore the focus styles unset by the previous rule.
195
+ */
196
+
197
+ :-moz-focusring {
198
+ outline: 1px dotted ButtonText;
180
199
  }
181
200
 
182
201
  /**
183
- * Correct the padding in Firefox.
184
- */
185
- fieldset {
186
- padding: .35em .75em .625em;
202
+ Remove the additional ':invalid' styles in Firefox.
203
+ See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
204
+ */
205
+
206
+ :-moz-ui-invalid {
207
+ box-shadow: none;
187
208
  }
188
209
 
189
210
  /**
190
- * 1. Correct the text wrapping in Edge and IE.
191
- * 2. Correct the color inheritance from `fieldset` elements in IE.
192
- * 3. Remove the padding so developers are not caught out when they zero out
193
- * `fieldset` elements in all browsers.
194
- */
211
+ Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
212
+ */
213
+
195
214
  legend {
196
- box-sizing: border-box; /* 1 */
197
- color: inherit; /* 2 */
198
- display: table; /* 1 */
199
- max-width: 100%; /* 1 */
200
- padding: 0; /* 3 */
201
- white-space: normal; /* 1 */
215
+ padding: 0;
202
216
  }
203
217
 
204
218
  /**
205
- * Add the correct vertical alignment in Chrome, Firefox, and Opera.
206
- */
219
+ Add the correct vertical alignment in Chrome and Firefox.
220
+ */
221
+
207
222
  progress {
208
223
  vertical-align: baseline;
209
224
  }
210
225
 
211
226
  /**
212
- * Remove the default vertical scrollbar in IE 10+.
213
- */
214
- textarea {
215
- overflow: auto;
216
- }
227
+ Correct the cursor style of increment and decrement buttons in Safari.
228
+ */
217
229
 
218
- /**
219
- * 1. Add the correct box sizing in IE 1.
220
- * 2. Remove the padding in IE 1.
221
- */
222
- [type='checkbox'], [type='radio'] {
223
- box-sizing: border-box; /* 1 */
224
- padding: 0; /* 2 */
225
- }
226
-
227
- /**
228
- * Correct the cursor style of increment and decrement buttons in Chrome.
229
- */
230
- [type='number']::-webkit-inner-spin-button, [type='number']::-webkit-outer-spin-button {
230
+ ::-webkit-inner-spin-button,
231
+ ::-webkit-outer-spin-button {
231
232
  height: auto;
232
233
  }
233
234
 
234
235
  /**
235
- * 1. Correct the odd appearance in Chrome and Safari.
236
- * 2. Correct the outline style in Safari.
237
- */
236
+ 1. Correct the odd appearance in Chrome and Safari.
237
+ 2. Correct the outline style in Safari.
238
+ */
239
+
238
240
  [type='search'] {
239
- outline-offset: -.125rem; /* 2 */
240
241
  -webkit-appearance: textfield; /* 1 */
242
+ outline-offset: -2px; /* 2 */
241
243
  }
242
244
 
243
245
  /**
244
- * Remove the inner padding in Chrome and Safari on macOS.
245
- */
246
- [type='search']::-webkit-search-decoration {
246
+ Remove the inner padding in Chrome and Safari on macOS.
247
+ */
248
+
249
+ ::-webkit-search-decoration {
247
250
  -webkit-appearance: none;
248
251
  }
249
252
 
250
253
  /**
251
- * 1. Correct the inability to style clickable types in iOS and Safari.
252
- * 2. Change font properties to `inherit` in Safari.
253
- */
254
+ 1. Correct the inability to style clickable types in iOS and Safari.
255
+ 2. Change font properties to 'inherit' in Safari.
256
+ */
257
+
254
258
  ::-webkit-file-upload-button {
255
- font: inherit; /* 2 */
256
259
  -webkit-appearance: button; /* 1 */
260
+ font: inherit; /* 2 */
257
261
  }
258
262
 
259
- /* Interactive
260
- ========================================================================== */
261
263
  /*
262
- * Add the correct display in Edge, IE 10+, and Firefox.
263
- */
264
- details {
265
- display: block;
266
- }
264
+ Interactive
265
+ ===========
266
+ */
267
267
 
268
268
  /*
269
- * Add the correct display in all browsers.
270
- */
269
+ Add the correct display in Chrome and Safari.
270
+ */
271
+
271
272
  summary {
272
273
  display: list-item;
273
- }
274
-
275
- /* Misc
276
- ========================================================================== */
277
- /**
278
- * Add the correct display in IE 10+.
279
- */
280
- template {
281
- display: none;
282
- }
283
-
284
- /**
285
- * Add the correct display in IE 1.
286
- */
287
- [hidden] {
288
- display: none;
289
- }
274
+ }
@@ -0,0 +1,26 @@
1
+ const statics = CONFIG.statics.indexOf('//') > 0 ? CONFIG.statics : CONFIG.root;
2
+ const scrollAction = { x: 0, y: 0 };
3
+ let diffY = 0;
4
+ let originTitle, titleTime;
5
+ const BODY = document.getElementsByTagName('body')[0];
6
+ const HTML = document.documentElement;
7
+ const Container = $dom('#container');
8
+ const loadCat = $dom('#loading');
9
+ const siteNav = $dom('#nav');
10
+ const siteHeader = $dom('#header');
11
+ const menuToggle = siteNav.child('.toggle');
12
+ const quickBtn = $dom('#quick');
13
+ const sideBar = $dom('#sidebar');
14
+ const siteBrand = $dom('#brand');
15
+ let toolBtn = $dom('#tool');
16
+ let toolPlayer;
17
+ let backToTop;
18
+ let goToComment;
19
+ let showContents;
20
+ let siteSearch = $dom('#search');
21
+ let siteNavHeight, headerHightInner, headerHight;
22
+ let oWinHeight = window.innerHeight;
23
+ let oWinWidth = window.innerWidth;
24
+ let LOCAL_HASH = 0;
25
+ let LOCAL_URL = window.location.href;
26
+ let pjax;
@@ -0,0 +1,105 @@
1
+ const resizeHandle = () => {
2
+ siteNavHeight = siteNav.changeOrGetHeight();
3
+ headerHightInner = siteHeader.changeOrGetHeight();
4
+ headerHight = headerHightInner + $dom('#waves').changeOrGetHeight();
5
+ if (oWinWidth !== window.innerWidth) {
6
+ sideBarToggleHandle(null, 1);
7
+ }
8
+ oWinHeight = window.innerHeight;
9
+ oWinWidth = window.innerWidth;
10
+ };
11
+ const scrollHandle = () => {
12
+ const winHeight = window.innerHeight;
13
+ const docHeight = getDocHeight();
14
+ const contentVisibilityHeight = docHeight > winHeight ? docHeight - winHeight : document.body.scrollHeight - winHeight;
15
+ const SHOW = window.scrollY > headerHightInner;
16
+ const startScroll = window.scrollY > 0;
17
+ if (SHOW) {
18
+ changeMetaTheme('#FFF');
19
+ }
20
+ else {
21
+ changeMetaTheme('#222');
22
+ }
23
+ siteNav.toggleClass('show', SHOW);
24
+ toolBtn.toggleClass('affix', startScroll);
25
+ siteBrand.toggleClass('affix', startScroll);
26
+ sideBar.toggleClass('affix', window.scrollY > headerHight && document.body.offsetWidth > 991);
27
+ if (typeof scrollAction.y === 'undefined') {
28
+ scrollAction.y = window.scrollY;
29
+ }
30
+ diffY = scrollAction.y - window.scrollY;
31
+ if (diffY < 0) {
32
+ siteNav.removeClass('up');
33
+ siteNav.toggleClass('down', SHOW);
34
+ }
35
+ else if (diffY > 0) {
36
+ siteNav.removeClass('down');
37
+ siteNav.toggleClass('up', SHOW);
38
+ }
39
+ else { }
40
+ scrollAction.y = window.scrollY;
41
+ const scrollPercent = Math.round(Math.min(100 * window.scrollY / contentVisibilityHeight, 100)) + '%';
42
+ if (backToTop.child('span').innerText !== scrollPercent) {
43
+ backToTop.child('span').innerText = scrollPercent;
44
+ }
45
+ if ($dom('#sidebar').hasClass('affix') || $dom('#sidebar').hasClass('on')) {
46
+ $dom('.percent').changeOrGetWidth(scrollPercent);
47
+ }
48
+ };
49
+ const clickMenu = () => {
50
+ const menuElement = $dom('#clickMenu');
51
+ window.oncontextmenu = function (event) {
52
+ if (event.ctrlKey) {
53
+ return;
54
+ }
55
+ event.preventDefault();
56
+ let x = event.offsetX;
57
+ let y = event.offsetY;
58
+ const winWidth = window.innerWidth;
59
+ const winHeight = window.innerHeight;
60
+ const menuWidth = menuElement.offsetWidth;
61
+ const menuHeight = menuElement.offsetHeight;
62
+ x = winWidth - menuWidth >= x ? x : winWidth - menuWidth;
63
+ y = winHeight - menuHeight >= y ? y : winHeight - menuHeight;
64
+ menuElement.style.top = y + 'px';
65
+ menuElement.style.left = x + 'px';
66
+ menuElement.classList.add('active');
67
+ $dom.each('.clickSubmenu', (submenu) => {
68
+ if (x > (winWidth - menuWidth - submenu.offsetWidth)) {
69
+ submenu.style.left = '-200px';
70
+ }
71
+ else {
72
+ submenu.style.left = '';
73
+ submenu.style.right = '-200px';
74
+ }
75
+ });
76
+ };
77
+ window.addEventListener('click', () => {
78
+ menuElement.classList.remove('active');
79
+ });
80
+ };
81
+ const visibilityListener = () => {
82
+ const iconNode = $dom('[rel="icon"]');
83
+ document.addEventListener('visibilitychange', () => {
84
+ switch (document.visibilityState) {
85
+ case 'hidden':
86
+ iconNode.attr('href', statics + CONFIG.favicon.hidden);
87
+ document.title = LOCAL.favicon.hide;
88
+ if (CONFIG.loader.switch) {
89
+ Loader.show();
90
+ }
91
+ clearTimeout(titleTime);
92
+ break;
93
+ case 'visible':
94
+ iconNode.attr('href', statics + CONFIG.favicon.normal);
95
+ document.title = LOCAL.favicon.show;
96
+ if (CONFIG.loader.switch) {
97
+ Loader.hide(1000);
98
+ }
99
+ titleTime = setTimeout(() => {
100
+ document.title = originTitle;
101
+ }, 2000);
102
+ break;
103
+ }
104
+ });
105
+ };
@@ -0,0 +1,48 @@
1
+ const changeTheme = (type) => {
2
+ const btn = $dom('.theme .ic');
3
+ if (type === 'dark') {
4
+ HTML.attr('data-theme', type);
5
+ btn.removeClass('i-sun');
6
+ btn.addClass('i-moon');
7
+ }
8
+ else {
9
+ HTML.attr('data-theme', null);
10
+ btn.removeClass('i-moon');
11
+ btn.addClass('i-sun');
12
+ }
13
+ };
14
+ const autoDarkmode = () => {
15
+ if (CONFIG.auto_dark.enable) {
16
+ if (new Date().getHours() >= CONFIG.auto_dark.start || new Date().getHours() <= CONFIG.auto_dark.end) {
17
+ changeTheme('dark');
18
+ }
19
+ else {
20
+ changeTheme();
21
+ }
22
+ }
23
+ };
24
+ const changeMetaTheme = (color) => {
25
+ if (HTML.attr('data-theme') === 'dark') {
26
+ color = '#222';
27
+ }
28
+ $dom('meta[name="theme-color"]').attr('content', color);
29
+ };
30
+ const themeColorListener = () => {
31
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (mediaQueryList) => {
32
+ if (mediaQueryList.matches) {
33
+ changeTheme('dark');
34
+ }
35
+ else {
36
+ changeTheme();
37
+ }
38
+ });
39
+ const t = $storage.get('theme');
40
+ if (t) {
41
+ changeTheme(t);
42
+ }
43
+ else {
44
+ if (CONFIG.darkmode) {
45
+ changeTheme('dark');
46
+ }
47
+ }
48
+ };
@@ -0,0 +1,60 @@
1
+ const lazyload = lozad('img, [data-background-image]', {
2
+ loaded(el) {
3
+ el.addClass('lozaded');
4
+ }
5
+ });
6
+ const Loader = {
7
+ timer: undefined,
8
+ lock: false,
9
+ show() {
10
+ clearTimeout(this.timer);
11
+ document.body.removeClass('loaded');
12
+ loadCat.attr('style', 'display:block');
13
+ Loader.lock = false;
14
+ },
15
+ hide(sec) {
16
+ if (!CONFIG.loader.start) {
17
+ sec = -1;
18
+ }
19
+ this.timer = setTimeout(this.vanish, sec || 3000);
20
+ },
21
+ vanish() {
22
+ if (Loader.lock) {
23
+ return;
24
+ }
25
+ if (CONFIG.loader.start) {
26
+ transition(loadCat, 0);
27
+ }
28
+ document.body.addClass('loaded');
29
+ Loader.lock = true;
30
+ }
31
+ };
32
+ const isOutime = () => {
33
+ let updateTime;
34
+ if (CONFIG.outime.enable && LOCAL.outime) {
35
+ const times = document.getElementsByTagName('time');
36
+ if (times.length === 0) {
37
+ return;
38
+ }
39
+ const posts = document.getElementsByClassName('body md');
40
+ if (posts.length === 0) {
41
+ return;
42
+ }
43
+ const now = Date.now();
44
+ const pubTime = new Date(times[0].dateTime);
45
+ if (times.length === 1) {
46
+ updateTime = pubTime;
47
+ }
48
+ else {
49
+ updateTime = new Date(times[1].dateTime);
50
+ }
51
+ const interval = parseInt(String(now - updateTime));
52
+ const days = parseInt(String(CONFIG.outime.days)) || 30;
53
+ if (interval > (days * 86400000)) {
54
+ const publish = parseInt(String((now - pubTime) / 86400000));
55
+ const updated = parseInt(String(interval / 86400000));
56
+ const template = LOCAL.template.replace('{{publish}}', String(publish)).replace('{{updated}}', String(updated));
57
+ posts[0].insertAdjacentHTML('afterbegin', template);
58
+ }
59
+ }
60
+ };