hexo-theme-shokax 0.0.1-alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. package/LICENSE +21 -0
  2. package/LICENSE-shoka +21 -0
  3. package/README.md +47 -0
  4. package/_config.yml +353 -0
  5. package/_images.yml +99 -0
  6. package/languages/README.md +19 -0
  7. package/languages/default.yml +1 -0
  8. package/languages/en.yml +151 -0
  9. package/languages/ja.yml +146 -0
  10. package/languages/zh-CN.yml +154 -0
  11. package/languages/zh-HK.yml +146 -0
  12. package/languages/zh-TW.yml +146 -0
  13. package/layout/_alternate/atom.ejs +30 -0
  14. package/layout/_alternate/json.ejs +16 -0
  15. package/layout/_alternate/rss.ejs +34 -0
  16. package/layout/_mixin/breadcrumb.pug +33 -0
  17. package/layout/_mixin/card.pug +37 -0
  18. package/layout/_mixin/comment.pug +10 -0
  19. package/layout/_mixin/postmeta.pug +30 -0
  20. package/layout/_mixin/segment.pug +32 -0
  21. package/layout/_mixin/sidebar.pug +36 -0
  22. package/layout/_mixin/widgets.pug +29 -0
  23. package/layout/_partials/footer.pug +61 -0
  24. package/layout/_partials/head/head.pug +54 -0
  25. package/layout/_partials/head/head_com.pug +17 -0
  26. package/layout/_partials/head/pwa.pug +17 -0
  27. package/layout/_partials/header.pug +19 -0
  28. package/layout/_partials/layout.pug +143 -0
  29. package/layout/_partials/loading.pug +13 -0
  30. package/layout/_partials/pagination.pug +4 -0
  31. package/layout/_partials/post/copyright.pug +20 -0
  32. package/layout/_partials/post/footer.pug +13 -0
  33. package/layout/_partials/post/nav.pug +13 -0
  34. package/layout/_partials/post/post.pug +26 -0
  35. package/layout/_partials/post/reward.pug +18 -0
  36. package/layout/_partials/sidebar/menu.pug +37 -0
  37. package/layout/_partials/sidebar/overview.pug +40 -0
  38. package/layout/_partials/third-party/baidu-analytics.pug +11 -0
  39. package/layout/_partials/third-party/clarity.pug +8 -0
  40. package/layout/_partials/third-party/qweather.pug +35 -0
  41. package/layout/archive.pug +31 -0
  42. package/layout/category.pug +66 -0
  43. package/layout/index.pug +33 -0
  44. package/layout/page.pug +56 -0
  45. package/layout/post.pug +35 -0
  46. package/layout/tag.pug +43 -0
  47. package/package.json +35 -0
  48. package/scripts/filters/locals.js +57 -0
  49. package/scripts/filters/post.js +23 -0
  50. package/scripts/generaters/archive.js +141 -0
  51. package/scripts/generaters/config.js +43 -0
  52. package/scripts/generaters/images.js +26 -0
  53. package/scripts/generaters/index.js +110 -0
  54. package/scripts/generaters/pages.js +19 -0
  55. package/scripts/generaters/script.js +81 -0
  56. package/scripts/helpers/asset.js +237 -0
  57. package/scripts/helpers/engine.js +183 -0
  58. package/scripts/helpers/list_categories.js +140 -0
  59. package/scripts/helpers/symbols_count_time.js +76 -0
  60. package/scripts/tags/links.js +86 -0
  61. package/scripts/tags/media.js +19 -0
  62. package/source/assets/404.png +0 -0
  63. package/source/assets/algolia_logo.svg +9 -0
  64. package/source/assets/apple-touch-icon.png +0 -0
  65. package/source/assets/beian.webp +0 -0
  66. package/source/assets/failure.ico +0 -0
  67. package/source/assets/favicon.ico +0 -0
  68. package/source/assets/logo.svg +16 -0
  69. package/source/assets/play_disc.png +0 -0
  70. package/source/assets/play_needle.png +0 -0
  71. package/source/assets/search.png +0 -0
  72. package/source/css/_colors.styl +207 -0
  73. package/source/css/_common/components/components.styl +6 -0
  74. package/source/css/_common/components/highlight/highlight.styl +353 -0
  75. package/source/css/_common/components/highlight/operation.styl +21 -0
  76. package/source/css/_common/components/pages/collapse.styl +119 -0
  77. package/source/css/_common/components/pages/home.styl +385 -0
  78. package/source/css/_common/components/pages/pages.styl +56 -0
  79. package/source/css/_common/components/pages/tag-cloud.styl +12 -0
  80. package/source/css/_common/components/post/breadcrumb.styl +39 -0
  81. package/source/css/_common/components/post/copyright.styl +41 -0
  82. package/source/css/_common/components/post/expand.styl +264 -0
  83. package/source/css/_common/components/post/footer.styl +11 -0
  84. package/source/css/_common/components/post/header.styl +79 -0
  85. package/source/css/_common/components/post/nav.styl +63 -0
  86. package/source/css/_common/components/post/post.styl +29 -0
  87. package/source/css/_common/components/post/reward.styl +50 -0
  88. package/source/css/_common/components/post/rtl.styl +12 -0
  89. package/source/css/_common/components/post/tags.styl +39 -0
  90. package/source/css/_common/components/tags/collapse.styl +72 -0
  91. package/source/css/_common/components/tags/container.styl +49 -0
  92. package/source/css/_common/components/tags/label.styl +12 -0
  93. package/source/css/_common/components/tags/links.styl +77 -0
  94. package/source/css/_common/components/tags/list.styl +131 -0
  95. package/source/css/_common/components/tags/note.styl +70 -0
  96. package/source/css/_common/components/tags/player.styl +361 -0
  97. package/source/css/_common/components/tags/quiz.styl +200 -0
  98. package/source/css/_common/components/tags/tabs.styl +83 -0
  99. package/source/css/_common/components/tags/tags.styl +9 -0
  100. package/source/css/_common/components/third-party/loading.styl +222 -0
  101. package/source/css/_common/components/third-party/mermaid/class.styl +90 -0
  102. package/source/css/_common/components/third-party/mermaid/flowchart.styl +72 -0
  103. package/source/css/_common/components/third-party/mermaid/gantt.styl +251 -0
  104. package/source/css/_common/components/third-party/mermaid/git.styl +7 -0
  105. package/source/css/_common/components/third-party/mermaid/mermaid.styl +37 -0
  106. package/source/css/_common/components/third-party/mermaid/pie.styl +9 -0
  107. package/source/css/_common/components/third-party/mermaid/sequence.styl +95 -0
  108. package/source/css/_common/components/third-party/mermaid/state.styl +130 -0
  109. package/source/css/_common/components/third-party/pace.styl +18 -0
  110. package/source/css/_common/components/third-party/search.styl +167 -0
  111. package/source/css/_common/components/third-party/theme.styl +151 -0
  112. package/source/css/_common/components/third-party/third-party.styl +22 -0
  113. package/source/css/_common/components/third-party/valine.styl +548 -0
  114. package/source/css/_common/components/third-party/widgets.styl +57 -0
  115. package/source/css/_common/outline/footer/footer.styl +69 -0
  116. package/source/css/_common/outline/header/brand.styl +77 -0
  117. package/source/css/_common/outline/header/header.styl +20 -0
  118. package/source/css/_common/outline/header/image.styl +79 -0
  119. package/source/css/_common/outline/header/menu.styl +117 -0
  120. package/source/css/_common/outline/header/nav.styl +81 -0
  121. package/source/css/_common/outline/header/right.styl +15 -0
  122. package/source/css/_common/outline/header/tool.styl +207 -0
  123. package/source/css/_common/outline/header/waves.styl +50 -0
  124. package/source/css/_common/outline/mobile.styl +46 -0
  125. package/source/css/_common/outline/outline.styl +78 -0
  126. package/source/css/_common/outline/sidebar/author.styl +59 -0
  127. package/source/css/_common/outline/sidebar/dimmer.styl +23 -0
  128. package/source/css/_common/outline/sidebar/menu.styl +63 -0
  129. package/source/css/_common/outline/sidebar/quick.styl +43 -0
  130. package/source/css/_common/outline/sidebar/related.styl +56 -0
  131. package/source/css/_common/outline/sidebar/sidebar.styl +75 -0
  132. package/source/css/_common/outline/sidebar/social.styl +69 -0
  133. package/source/css/_common/outline/sidebar/state.styl +37 -0
  134. package/source/css/_common/outline/sidebar/tab.styl +71 -0
  135. package/source/css/_common/outline/sidebar/toc.styl +47 -0
  136. package/source/css/_common/scaffolding/animate.styl +318 -0
  137. package/source/css/_common/scaffolding/base.styl +172 -0
  138. package/source/css/_common/scaffolding/buttons.styl +48 -0
  139. package/source/css/_common/scaffolding/divider.styl +36 -0
  140. package/source/css/_common/scaffolding/iconfont.styl +443 -0
  141. package/source/css/_common/scaffolding/normalize.styl +289 -0
  142. package/source/css/_common/scaffolding/pagination.styl +81 -0
  143. package/source/css/_common/scaffolding/ribbon.styl +38 -0
  144. package/source/css/_common/scaffolding/scaffolding.styl +14 -0
  145. package/source/css/_common/scaffolding/scrollbar.styl +37 -0
  146. package/source/css/_common/scaffolding/tables.styl +50 -0
  147. package/source/css/_common/scaffolding/tip.styl +19 -0
  148. package/source/css/_common/scaffolding/toggles.styl +59 -0
  149. package/source/css/_iconfont.styl +451 -0
  150. package/source/css/_mixins.styl +146 -0
  151. package/source/css/_variables.styl +89 -0
  152. package/source/css/app.styl +27 -0
  153. package/source/css/comment.styl +5 -0
  154. package/source/css/mermaid.styl +5 -0
  155. package/source/css/plugin.styl +174 -0
  156. package/source/css/twikoo.css +2002 -0
  157. package/source/js/_app/components.js +330 -0
  158. package/source/js/_app/global.js +317 -0
  159. package/source/js/_app/library.js +302 -0
  160. package/source/js/_app/page.js +623 -0
  161. package/source/js/_app/player.js +748 -0
  162. package/source/js/_app/vue.js +43 -0
@@ -0,0 +1,302 @@
1
+ const getDocHeight = () => $dom('main > .inner').offsetHeight;
2
+ const $dom = (selector, element = document) => {
3
+ if (selector.indexOf('#') === 0) {
4
+ return element.getElementById(selector.replace('#', ''));
5
+ }
6
+ return element.querySelector(selector);
7
+ };
8
+ $dom.all = (selector, element = document) => {
9
+ return element.querySelectorAll(selector);
10
+ };
11
+ $dom.each = (selector, callback, element) => {
12
+ return $dom.all(selector, element).forEach(callback);
13
+ };
14
+ $dom.asyncify = async (selector, element = document) => {
15
+ if (selector.indexOf('#') === 0) {
16
+ return element.getElementById(selector.replace('#', ''));
17
+ }
18
+ return element.querySelector(selector);
19
+ };
20
+ $dom.asyncifyAll = async (selector, element = document) => {
21
+ return element.querySelectorAll(selector);
22
+ };
23
+ $dom.asyncifyEach = (selector, callback, element) => {
24
+ $dom.asyncifyAll(selector, element).then((tmp) => {
25
+ tmp.forEach(callback);
26
+ });
27
+ };
28
+ Object.assign(HTMLElement.prototype, {
29
+ createChild: function (tag, obj, positon) {
30
+ const child = document.createElement(tag);
31
+ Object.assign(child, obj);
32
+ switch (positon) {
33
+ case 'after':
34
+ this.insertAfter(child);
35
+ break;
36
+ case 'replace':
37
+ this.innerHTML = '';
38
+ this.appendChild(child);
39
+ break;
40
+ default:
41
+ this.appendChild(child);
42
+ }
43
+ return child;
44
+ },
45
+ wrapObject: function (obj) {
46
+ const box = document.createElement('div');
47
+ Object.assign(box, obj);
48
+ this.parentNode.insertBefore(box, this);
49
+ this.parentNode.removeChild(this);
50
+ box.appendChild(this);
51
+ },
52
+ changeOrGetHeight: function (h) {
53
+ if (h) {
54
+ this.style.height = typeof h === 'number' ? h + 'rem' : h;
55
+ }
56
+ return this.getBoundingClientRect().height;
57
+ },
58
+ changeOrGetWidth: function (w) {
59
+ if (w) {
60
+ this.style.width = typeof w === 'number' ? w + 'rem' : w;
61
+ }
62
+ return this.getBoundingClientRect().width;
63
+ },
64
+ top: function () {
65
+ return this.getBoundingClientRect().top;
66
+ },
67
+ left: function () {
68
+ return this.getBoundingClientRect().left;
69
+ },
70
+ attr: function (type, value) {
71
+ if (value === null) {
72
+ return this.removeAttribute(type);
73
+ }
74
+ if (value) {
75
+ this.setAttribute(type, value);
76
+ return this;
77
+ }
78
+ else {
79
+ return this.getAttribute(type);
80
+ }
81
+ },
82
+ insertAfter: function (element) {
83
+ const parent = this.parentNode;
84
+ if (parent.lastChild === this) {
85
+ parent.appendChild(element);
86
+ }
87
+ else {
88
+ parent.insertBefore(element, this.nextSibling);
89
+ }
90
+ },
91
+ display: function (d) {
92
+ if (d == null) {
93
+ return this.style.display;
94
+ }
95
+ else {
96
+ this.style.display = d;
97
+ return this;
98
+ }
99
+ },
100
+ child: function (selector) {
101
+ return $dom(selector, this);
102
+ },
103
+ find: function (selector) {
104
+ return $dom.all(selector, this);
105
+ },
106
+ _class: function (type, className, display) {
107
+ const classNames = className.indexOf(' ') ? className.split(' ') : [className];
108
+ const that = this;
109
+ classNames.forEach(function (name) {
110
+ if (type === 'toggle') {
111
+ that.classList.toggle(name, display);
112
+ }
113
+ else {
114
+ that.classList[type](name);
115
+ }
116
+ });
117
+ },
118
+ addClass: function (className) {
119
+ this._class('add', className);
120
+ return this;
121
+ },
122
+ removeClass: function (className) {
123
+ this._class('remove', className);
124
+ return this;
125
+ },
126
+ toggleClass: function (className, display) {
127
+ this._class('toggle', className, display);
128
+ return this;
129
+ },
130
+ hasClass: function (className) {
131
+ return this.classList.contains(className);
132
+ }
133
+ });
134
+ const $storage = {
135
+ set: (key, value) => {
136
+ localStorage.setItem(key, value);
137
+ },
138
+ get: (key) => {
139
+ return localStorage.getItem(key);
140
+ },
141
+ del: (key) => {
142
+ localStorage.removeItem(key);
143
+ }
144
+ };
145
+ const getScript = function (url, callback, condition) {
146
+ if (condition) {
147
+ callback();
148
+ }
149
+ else {
150
+ let script = document.createElement('script');
151
+ script.onload = function (_, isAbort) {
152
+ if (isAbort || !script.readyState || /loaded|complete/.test(script.readyState)) {
153
+ console.log("abort!");
154
+ script.onload = null;
155
+ script = undefined;
156
+ if (!isAbort && callback)
157
+ setTimeout(callback, 0);
158
+ }
159
+ };
160
+ script.src = url;
161
+ document.head.appendChild(script);
162
+ }
163
+ };
164
+ const assetUrl = function (asset, type) {
165
+ const str = CONFIG[asset][type];
166
+ if (str.indexOf('npm') > -1) {
167
+ return `https://unpkg.com/${str}`;
168
+ }
169
+ if (str.indexOf('gh') > -1 || str.indexOf('combine') > -1) {
170
+ return `https://cdn.jsdelivr.net/${str}`;
171
+ }
172
+ if (str.indexOf('http') > -1) {
173
+ return str;
174
+ }
175
+ return `/${str}`;
176
+ };
177
+ const vendorJs = function (type, callback, condition) {
178
+ if (LOCAL[type]) {
179
+ getScript(assetUrl('js', type), callback || function () {
180
+ window[type] = true;
181
+ }, condition || window[type]);
182
+ }
183
+ };
184
+ const vendorCss = function (type, condition) {
185
+ if (window['css' + type]) {
186
+ return;
187
+ }
188
+ if (LOCAL[type]) {
189
+ document.head.createChild('link', {
190
+ rel: 'stylesheet',
191
+ href: assetUrl('css', type)
192
+ });
193
+ window['css' + type] = true;
194
+ }
195
+ };
196
+ const transition = (target, type, complete) => {
197
+ let animation;
198
+ let display = 'none';
199
+ switch (type) {
200
+ case 0:
201
+ animation = { opacity: [1, 0] };
202
+ break;
203
+ case 1:
204
+ animation = { opacity: [0, 1] };
205
+ display = 'block';
206
+ break;
207
+ case 'bounceUpIn':
208
+ animation = {
209
+ begin: function (anim) {
210
+ target.display('block');
211
+ },
212
+ translateY: [
213
+ { value: -60, duration: 200 },
214
+ { value: 10, duration: 200 },
215
+ { value: -5, duration: 200 },
216
+ { value: 0, duration: 200 }
217
+ ],
218
+ opacity: [0, 1]
219
+ };
220
+ display = 'block';
221
+ break;
222
+ case 'shrinkIn':
223
+ animation = {
224
+ begin: function (anim) {
225
+ target.display('block');
226
+ },
227
+ scale: [
228
+ { value: 1.1, duration: 300 },
229
+ { value: 1, duration: 200 }
230
+ ],
231
+ opacity: 1
232
+ };
233
+ display = 'block';
234
+ break;
235
+ case 'slideRightIn':
236
+ animation = {
237
+ begin: function (anim) {
238
+ target.display('block');
239
+ },
240
+ translateX: [100, 0],
241
+ opacity: [0, 1]
242
+ };
243
+ display = 'block';
244
+ break;
245
+ case 'slideRightOut':
246
+ animation = {
247
+ translateX: [0, 100],
248
+ opacity: [1, 0]
249
+ };
250
+ break;
251
+ default:
252
+ animation = type;
253
+ display = type.display;
254
+ break;
255
+ }
256
+ anime(Object.assign({
257
+ targets: target,
258
+ duration: 200,
259
+ easing: 'linear'
260
+ }, animation)).finished.then(function () {
261
+ target.display(display);
262
+ complete && complete();
263
+ });
264
+ };
265
+ const pjaxScript = function (element) {
266
+ const code = element.text || element.textContent || element.innerHTML || '';
267
+ const parent = element.parentNode;
268
+ parent.removeChild(element);
269
+ const script = document.createElement('script');
270
+ if (element.id) {
271
+ script.id = element.id;
272
+ }
273
+ if (element.className) {
274
+ script.className = element.className;
275
+ }
276
+ if (element.type) {
277
+ script.type = element.type;
278
+ }
279
+ if (element.src) {
280
+ script.src = element.src;
281
+ script.async = false;
282
+ }
283
+ if (element.dataset.pjax !== undefined) {
284
+ script.dataset.pjax = '';
285
+ }
286
+ if (code !== '') {
287
+ script.appendChild(document.createTextNode(code));
288
+ }
289
+ parent.appendChild(script);
290
+ };
291
+ const pageScroll = function (target, offset, complete) {
292
+ const opt = {
293
+ targets: typeof offset === 'number' ? target.parentNode : document.scrollingElement,
294
+ duration: 500,
295
+ easing: 'easeInOutQuad',
296
+ scrollTop: offset || (typeof target === 'number' ? target : (target ? target.top() + document.documentElement.scrollTop - siteNavHeight : 0)),
297
+ complete: function () {
298
+ complete && complete();
299
+ }
300
+ };
301
+ anime(opt);
302
+ };