hexo-theme-shokax 0.2.8 → 0.2.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -24,7 +24,7 @@ let oWinWidth = window.innerWidth;
24
24
  let LOCAL_HASH = 0;
25
25
  let LOCAL_URL = window.location.href;
26
26
  let pjax;
27
- const changeTheme = function (type) {
27
+ const changeTheme = (type) => {
28
28
  const btn = $dom('.theme .ic');
29
29
  if (type === 'dark') {
30
30
  HTML.attr('data-theme', type);
@@ -37,7 +37,7 @@ const changeTheme = function (type) {
37
37
  btn.addClass('i-sun');
38
38
  }
39
39
  };
40
- const autoDarkmode = function () {
40
+ const autoDarkmode = () => {
41
41
  if (CONFIG.auto_dark.enable) {
42
42
  if (new Date().getHours() >= CONFIG.auto_dark.start || new Date().getHours() <= CONFIG.auto_dark.end) {
43
43
  changeTheme('dark');
@@ -48,26 +48,26 @@ const autoDarkmode = function () {
48
48
  }
49
49
  };
50
50
  const lazyload = lozad('img, [data-background-image]', {
51
- loaded: function (el) {
51
+ loaded(el) {
52
52
  el.addClass('lozaded');
53
53
  }
54
54
  });
55
55
  const Loader = {
56
56
  timer: undefined,
57
57
  lock: false,
58
- show: function () {
58
+ show() {
59
59
  clearTimeout(this.timer);
60
60
  document.body.removeClass('loaded');
61
61
  loadCat.attr('style', 'display:block');
62
62
  Loader.lock = false;
63
63
  },
64
- hide: function (sec) {
64
+ hide(sec) {
65
65
  if (!CONFIG.loader.start) {
66
66
  sec = -1;
67
67
  }
68
68
  this.timer = setTimeout(this.vanish, sec || 3000);
69
69
  },
70
- vanish: function () {
70
+ vanish() {
71
71
  if (Loader.lock) {
72
72
  return;
73
73
  }
@@ -78,14 +78,14 @@ const Loader = {
78
78
  Loader.lock = true;
79
79
  }
80
80
  };
81
- const changeMetaTheme = function (color) {
81
+ const changeMetaTheme = (color) => {
82
82
  if (HTML.attr('data-theme') === 'dark') {
83
83
  color = '#222';
84
84
  }
85
85
  $dom('meta[name="theme-color"]').attr('content', color);
86
86
  };
87
- const themeColorListener = function () {
88
- window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function (mediaQueryList) {
87
+ const themeColorListener = () => {
88
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (mediaQueryList) => {
89
89
  if (mediaQueryList.matches) {
90
90
  changeTheme('dark');
91
91
  }
@@ -103,9 +103,9 @@ const themeColorListener = function () {
103
103
  }
104
104
  }
105
105
  };
106
- const visibilityListener = function () {
106
+ const visibilityListener = () => {
107
107
  const iconNode = $dom('[rel="icon"]');
108
- document.addEventListener('visibilitychange', function () {
108
+ document.addEventListener('visibilitychange', () => {
109
109
  switch (document.visibilityState) {
110
110
  case 'hidden':
111
111
  iconNode.attr('href', statics + CONFIG.favicon.hidden);
@@ -121,14 +121,14 @@ const visibilityListener = function () {
121
121
  if (CONFIG.loader.switch) {
122
122
  Loader.hide(1000);
123
123
  }
124
- titleTime = setTimeout(function () {
124
+ titleTime = setTimeout(() => {
125
125
  document.title = originTitle;
126
126
  }, 2000);
127
127
  break;
128
128
  }
129
129
  });
130
130
  };
131
- const showtip = function (msg) {
131
+ const showtip = (msg) => {
132
132
  if (!msg) {
133
133
  return;
134
134
  }
@@ -136,14 +136,14 @@ const showtip = function (msg) {
136
136
  innerHTML: msg,
137
137
  className: 'tip'
138
138
  });
139
- setTimeout(function () {
139
+ setTimeout(() => {
140
140
  tipbox.addClass('hide');
141
- setTimeout(function () {
141
+ setTimeout(() => {
142
142
  BODY.removeChild(tipbox);
143
143
  }, 300);
144
144
  }, 3000);
145
145
  };
146
- const resizeHandle = function (event) {
146
+ const resizeHandle = (event) => {
147
147
  siteNavHeight = siteNav.changeOrGetHeight();
148
148
  headerHightInner = siteHeader.changeOrGetHeight();
149
149
  headerHight = headerHightInner + $dom('#waves').changeOrGetHeight();
@@ -153,7 +153,7 @@ const resizeHandle = function (event) {
153
153
  oWinHeight = window.innerHeight;
154
154
  oWinWidth = window.innerWidth;
155
155
  };
156
- const scrollHandle = function (event) {
156
+ const scrollHandle = (event) => {
157
157
  const winHeight = window.innerHeight;
158
158
  const docHeight = getDocHeight();
159
159
  const contentVisibilityHeight = docHeight > winHeight ? docHeight - winHeight : document.body.scrollHeight - winHeight;
@@ -191,12 +191,12 @@ const scrollHandle = function (event) {
191
191
  $dom('.percent').changeOrGetWidth(scrollPercent);
192
192
  }
193
193
  };
194
- const pagePosition = function () {
194
+ const pagePosition = () => {
195
195
  if (CONFIG.auto_scroll) {
196
196
  $storage.set(LOCAL_URL, String(scrollAction.y));
197
197
  }
198
198
  };
199
- const positionInit = function (comment) {
199
+ const positionInit = (comment) => {
200
200
  const anchor = window.location.hash;
201
201
  let target = null;
202
202
  if (LOCAL_HASH) {
@@ -218,7 +218,7 @@ const positionInit = function (comment) {
218
218
  LOCAL_HASH = 1;
219
219
  }
220
220
  };
221
- const clipBoard = function (str, callback) {
221
+ const clipBoard = (str, callback) => {
222
222
  if (navigator.clipboard && window.isSecureContext) {
223
223
  navigator.clipboard.writeText(str).then(() => {
224
224
  callback && callback(true);
@@ -251,7 +251,7 @@ const clipBoard = function (str, callback) {
251
251
  BODY.removeChild(ta);
252
252
  }
253
253
  };
254
- const isOutime = function () {
254
+ const isOutime = () => {
255
255
  let updateTime;
256
256
  if (CONFIG.outime.enable && LOCAL.outime) {
257
257
  const times = document.getElementsByTagName('time');
@@ -280,7 +280,7 @@ const isOutime = function () {
280
280
  }
281
281
  }
282
282
  };
283
- const clickMenu = function () {
283
+ const clickMenu = () => {
284
284
  const menuElement = $dom('#clickMenu');
285
285
  window.oncontextmenu = function (event) {
286
286
  if (event.ctrlKey) {
@@ -308,7 +308,7 @@ const clickMenu = function () {
308
308
  }
309
309
  });
310
310
  };
311
- window.addEventListener('click', function () {
311
+ window.addEventListener('click', () => {
312
312
  menuElement.classList.remove('active');
313
313
  });
314
314
  };
@@ -9,24 +9,19 @@ $dom.all = (selector, element = document) => {
9
9
  return element.querySelectorAll(selector);
10
10
  };
11
11
  $dom.each = (selector, callback, element) => {
12
- return $dom.all(selector, element).forEach(callback);
12
+ $dom.all(selector, element).forEach(callback);
13
13
  };
14
14
  $dom.asyncify = async (selector, element = document) => {
15
- if (selector.indexOf('#') === 0) {
16
- return element.getElementById(selector.replace('#', ''));
15
+ if (selector[0] === '#') {
16
+ return element.getElementById(selector.substring(1));
17
17
  }
18
18
  return element.querySelector(selector);
19
19
  };
20
- $dom.asyncifyAll = async (selector, element = document) => {
21
- return element.querySelectorAll(selector);
22
- };
23
20
  $dom.asyncifyEach = (selector, callback, element) => {
24
- $dom.asyncifyAll(selector, element).then((tmp) => {
25
- tmp.forEach(callback);
26
- });
21
+ $dom.all(selector, element).forEach(callback);
27
22
  };
28
23
  Object.assign(HTMLElement.prototype, {
29
- createChild: function (tag, obj, positon) {
24
+ createChild(tag, obj, positon) {
30
25
  const child = document.createElement(tag);
31
26
  Object.assign(child, obj);
32
27
  switch (positon) {
@@ -42,32 +37,32 @@ Object.assign(HTMLElement.prototype, {
42
37
  }
43
38
  return child;
44
39
  },
45
- wrapObject: function (obj) {
40
+ wrapObject(obj) {
46
41
  const box = document.createElement('div');
47
42
  Object.assign(box, obj);
48
43
  this.parentNode.insertBefore(box, this);
49
44
  this.parentNode.removeChild(this);
50
45
  box.appendChild(this);
51
46
  },
52
- changeOrGetHeight: function (h) {
47
+ changeOrGetHeight(h) {
53
48
  if (h) {
54
49
  this.style.height = typeof h === 'number' ? h + 'rem' : h;
55
50
  }
56
51
  return this.getBoundingClientRect().height;
57
52
  },
58
- changeOrGetWidth: function (w) {
53
+ changeOrGetWidth(w) {
59
54
  if (w) {
60
55
  this.style.width = typeof w === 'number' ? w + 'rem' : w;
61
56
  }
62
57
  return this.getBoundingClientRect().width;
63
58
  },
64
- getTop: function () {
59
+ getTop() {
65
60
  return this.getBoundingClientRect().top;
66
61
  },
67
- left: function () {
62
+ left() {
68
63
  return this.getBoundingClientRect().left;
69
64
  },
70
- attr: function (type, value) {
65
+ attr(type, value) {
71
66
  if (value === null) {
72
67
  return this.removeAttribute(type);
73
68
  }
@@ -79,7 +74,7 @@ Object.assign(HTMLElement.prototype, {
79
74
  return this.getAttribute(type);
80
75
  }
81
76
  },
82
- insertAfter: function (element) {
77
+ insertAfter(element) {
83
78
  const parent = this.parentNode;
84
79
  if (parent.lastChild === this) {
85
80
  parent.appendChild(element);
@@ -88,7 +83,7 @@ Object.assign(HTMLElement.prototype, {
88
83
  parent.insertBefore(element, this.nextSibling);
89
84
  }
90
85
  },
91
- display: function (d) {
86
+ display(d) {
92
87
  if (d == null) {
93
88
  return this.style.display;
94
89
  }
@@ -97,13 +92,13 @@ Object.assign(HTMLElement.prototype, {
97
92
  return this;
98
93
  }
99
94
  },
100
- child: function (selector) {
95
+ child(selector) {
101
96
  return $dom(selector, this);
102
97
  },
103
- find: function (selector) {
98
+ find(selector) {
104
99
  return $dom.all(selector, this);
105
100
  },
106
- _class: function (type, className, display) {
101
+ _class(type, className, display) {
107
102
  const classNames = className.indexOf(' ') ? className.split(' ') : [className];
108
103
  classNames.forEach((name) => {
109
104
  if (type === 'toggle') {
@@ -114,34 +109,34 @@ Object.assign(HTMLElement.prototype, {
114
109
  }
115
110
  });
116
111
  },
117
- addClass: function (className) {
112
+ addClass(className) {
118
113
  this._class('add', className);
119
114
  return this;
120
115
  },
121
- removeClass: function (className) {
116
+ removeClass(className) {
122
117
  this._class('remove', className);
123
118
  return this;
124
119
  },
125
- toggleClass: function (className, display) {
120
+ toggleClass(className, display) {
126
121
  this._class('toggle', className, display);
127
122
  return this;
128
123
  },
129
- hasClass: function (className) {
124
+ hasClass(className) {
130
125
  return this.classList.contains(className);
131
126
  }
132
127
  });
133
128
  const $storage = {
134
- set: (key, value) => {
129
+ set(key, value) {
135
130
  localStorage.setItem(key, value);
136
131
  },
137
- get: (key) => {
132
+ get(key) {
138
133
  return localStorage.getItem(key);
139
134
  },
140
- del: (key) => {
135
+ del(key) {
141
136
  localStorage.removeItem(key);
142
137
  }
143
138
  };
144
- const getScript = function (url, callback, condition) {
139
+ const getScript = (url, callback, condition) => {
145
140
  if (condition) {
146
141
  callback();
147
142
  }
@@ -160,27 +155,27 @@ const getScript = function (url, callback, condition) {
160
155
  document.head.appendChild(script);
161
156
  }
162
157
  };
163
- const assetUrl = function (asset, type) {
158
+ const assetUrl = (asset, type) => {
164
159
  const str = CONFIG[asset][type];
165
- if (str.indexOf('gh') > -1 || str.indexOf('combine') > -1) {
160
+ if (str.includes('gh') || str.includes('combine')) {
166
161
  return `https://cdn.jsdelivr.net/${str}`;
167
162
  }
168
- if (str.indexOf('npm') > -1) {
163
+ if (str.includes('npm')) {
169
164
  return `https://cdn.jsdelivr.net/${str}`;
170
165
  }
171
- if (str.indexOf('http') > -1) {
166
+ if (str.includes('http')) {
172
167
  return str;
173
168
  }
174
169
  return `/${str}`;
175
170
  };
176
- const vendorJs = function (type, callback, condition) {
171
+ const vendorJs = (type, callback, condition) => {
177
172
  if (LOCAL[type]) {
178
173
  getScript(assetUrl('js', type), callback || function () {
179
174
  window[type] = true;
180
175
  }, condition || window[type]);
181
176
  }
182
177
  };
183
- const vendorCss = function (type, condition) {
178
+ const vendorCss = (type, condition) => {
184
179
  if (window['css' + type]) {
185
180
  return;
186
181
  }
@@ -205,7 +200,7 @@ const transition = (target, type, complete, begin) => {
205
200
  break;
206
201
  case 'bounceUpIn':
207
202
  animation = {
208
- begin: function (anim) {
203
+ begin(anim) {
209
204
  target.display('block');
210
205
  },
211
206
  translateY: [
@@ -220,7 +215,7 @@ const transition = (target, type, complete, begin) => {
220
215
  break;
221
216
  case 'shrinkIn':
222
217
  animation = {
223
- begin: function (anim) {
218
+ begin(anim) {
224
219
  target.display('block');
225
220
  },
226
221
  scale: [
@@ -233,7 +228,7 @@ const transition = (target, type, complete, begin) => {
233
228
  break;
234
229
  case 'slideRightIn':
235
230
  animation = {
236
- begin: function (anim) {
231
+ begin(anim) {
237
232
  target.display('block');
238
233
  },
239
234
  translateX: ['100%', '0%'],
@@ -256,16 +251,16 @@ const transition = (target, type, complete, begin) => {
256
251
  targets: target,
257
252
  duration: 200,
258
253
  easing: 'linear',
259
- begin: function () {
254
+ begin() {
260
255
  begin && begin();
261
256
  },
262
- complete: function () {
257
+ complete() {
263
258
  target.display(display);
264
259
  complete && complete();
265
260
  }
266
261
  }, animation)).play();
267
262
  };
268
- const pjaxScript = function (element) {
263
+ const pjaxScript = (element) => {
269
264
  const { text, parentNode, id, className, type, src, dataset } = element;
270
265
  const code = text || element.textContent || element.innerHTML || '';
271
266
  parentNode.removeChild(element);
@@ -291,13 +286,13 @@ const pjaxScript = function (element) {
291
286
  }
292
287
  parentNode.appendChild(script);
293
288
  };
294
- const pageScroll = function (target, offset, complete) {
289
+ const pageScroll = (target, offset, complete) => {
295
290
  const opt = {
296
291
  targets: typeof offset === 'number' ? target.parentNode : document.scrollingElement,
297
292
  duration: 500,
298
293
  easing: 'easeInOutQuad',
299
294
  scrollTop: offset || (typeof target === 'number' ? target : (target ? target.getTop() + document.documentElement.scrollTop - siteNavHeight : 0)),
300
- complete: function () {
295
+ complete() {
301
296
  complete && complete();
302
297
  }
303
298
  };