hexo-theme-shokax 0.4.4 → 0.4.6-beta1

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 (183) hide show
  1. package/CODE_OF_CONDUCT.md +128 -128
  2. package/CONTRIBUTING.md +58 -58
  3. package/LICENSE +660 -660
  4. package/LICENSE-shoka +21 -21
  5. package/README.md +99 -98
  6. package/README_en.MD +91 -90
  7. package/UsageRestrictions.md +25 -25
  8. package/_config.yml +381 -388
  9. package/_images.yml +9 -9
  10. package/eslint.config.mjs +55 -55
  11. package/index.html +231 -0
  12. package/languages/README.md +19 -19
  13. package/languages/default.yml +1 -1
  14. package/languages/en.yml +153 -153
  15. package/languages/ja.yml +153 -153
  16. package/languages/zh-CN.yml +153 -153
  17. package/languages/zh-HK.yml +153 -153
  18. package/languages/zh-TW.yml +153 -153
  19. package/layout/_alternate/atom.ejs +30 -30
  20. package/layout/_alternate/json.ejs +16 -16
  21. package/layout/_alternate/rss.ejs +34 -34
  22. package/layout/_mixin/breadcrumb.pug +33 -33
  23. package/layout/_mixin/card.pug +38 -38
  24. package/layout/_mixin/comment.pug +6 -6
  25. package/layout/_mixin/postmeta.pug +29 -29
  26. package/layout/_mixin/segment.pug +35 -35
  27. package/layout/_mixin/sidebar.pug +40 -40
  28. package/layout/_mixin/widgets.pug +28 -28
  29. package/layout/_partials/footer.pug +43 -43
  30. package/layout/_partials/head/head.pug +55 -56
  31. package/layout/_partials/head/head_com.pug +24 -24
  32. package/layout/_partials/head/pwa.pug +18 -18
  33. package/layout/_partials/header.pug +18 -18
  34. package/layout/_partials/layout.pug +140 -140
  35. package/layout/_partials/loading.pug +13 -13
  36. package/layout/_partials/pagination.pug +4 -4
  37. package/layout/_partials/post/copyright.pug +20 -20
  38. package/layout/_partials/post/footer.pug +17 -17
  39. package/layout/_partials/post/nav.pug +13 -13
  40. package/layout/_partials/post/post.pug +41 -41
  41. package/layout/_partials/post/reward.pug +18 -18
  42. package/layout/_partials/sidebar/menu.pug +37 -37
  43. package/layout/_partials/sidebar/overview.pug +42 -42
  44. package/layout/_partials/third-party/baidu-analytics.pug +11 -11
  45. package/layout/_partials/third-party/clarity.pug +8 -8
  46. package/layout/_partials/third-party/google-analytics.pug +9 -9
  47. package/layout/archive.pug +118 -118
  48. package/layout/category.pug +59 -59
  49. package/layout/index.pug +33 -33
  50. package/layout/page.pug +55 -55
  51. package/layout/post.pug +36 -36
  52. package/layout/tag.pug +43 -43
  53. package/meta.json +6431 -0
  54. package/package.json +72 -70
  55. package/scripts/helpers/engine.js +10 -0
  56. package/scripts/plugin/check.js +2 -2
  57. package/scripts/tags/links.js +4 -4
  58. package/source/assets/algolia_logo.svg +9 -9
  59. package/source/assets/logo.svg +16 -16
  60. package/source/css/_colors.styl +207 -207
  61. package/source/css/_common/components/components.styl +6 -6
  62. package/source/css/_common/components/highlight/highlight.styl +357 -357
  63. package/source/css/_common/components/highlight/operation.styl +21 -21
  64. package/source/css/_common/components/pages/collapse.styl +119 -119
  65. package/source/css/_common/components/pages/home.styl +391 -391
  66. package/source/css/_common/components/pages/pages.styl +56 -56
  67. package/source/css/_common/components/pages/tag-cloud.styl +12 -12
  68. package/source/css/_common/components/post/breadcrumb.styl +39 -39
  69. package/source/css/_common/components/post/copyright.styl +41 -41
  70. package/source/css/_common/components/post/expand.styl +263 -263
  71. package/source/css/_common/components/post/footer.styl +11 -11
  72. package/source/css/_common/components/post/header.styl +79 -79
  73. package/source/css/_common/components/post/nav.styl +64 -64
  74. package/source/css/_common/components/post/post.styl +29 -29
  75. package/source/css/_common/components/post/reward.styl +50 -50
  76. package/source/css/_common/components/post/rtl.styl +12 -12
  77. package/source/css/_common/components/post/tags.styl +39 -39
  78. package/source/css/_common/components/tags/collapse.styl +72 -72
  79. package/source/css/_common/components/tags/container.styl +49 -49
  80. package/source/css/_common/components/tags/label.styl +12 -12
  81. package/source/css/_common/components/tags/links.styl +77 -77
  82. package/source/css/_common/components/tags/list.styl +131 -131
  83. package/source/css/_common/components/tags/note.styl +70 -70
  84. package/source/css/_common/components/tags/player.styl +361 -361
  85. package/source/css/_common/components/tags/quiz.styl +200 -200
  86. package/source/css/_common/components/tags/tabs.styl +89 -89
  87. package/source/css/_common/components/tags/tags.styl +9 -9
  88. package/source/css/_common/components/third-party/loading.styl +222 -222
  89. package/source/css/_common/components/third-party/mermaid/class.styl +90 -90
  90. package/source/css/_common/components/third-party/mermaid/flowchart.styl +72 -72
  91. package/source/css/_common/components/third-party/mermaid/gantt.styl +251 -251
  92. package/source/css/_common/components/third-party/mermaid/git.styl +7 -7
  93. package/source/css/_common/components/third-party/mermaid/mermaid.styl +37 -37
  94. package/source/css/_common/components/third-party/mermaid/pie.styl +9 -9
  95. package/source/css/_common/components/third-party/mermaid/sequence.styl +95 -95
  96. package/source/css/_common/components/third-party/mermaid/state.styl +130 -130
  97. package/source/css/_common/components/third-party/pace.styl +18 -18
  98. package/source/css/_common/components/third-party/search.styl +167 -167
  99. package/source/css/_common/components/third-party/theme.styl +151 -151
  100. package/source/css/_common/components/third-party/third-party.styl +22 -22
  101. package/source/css/_common/components/third-party/widgets.styl +57 -57
  102. package/source/css/_common/outline/footer/footer.styl +67 -67
  103. package/source/css/_common/outline/header/brand.styl +77 -77
  104. package/source/css/_common/outline/header/header.styl +20 -20
  105. package/source/css/_common/outline/header/image.styl +85 -85
  106. package/source/css/_common/outline/header/menu.styl +117 -117
  107. package/source/css/_common/outline/header/nav.styl +81 -81
  108. package/source/css/_common/outline/header/right.styl +15 -15
  109. package/source/css/_common/outline/header/tool.styl +207 -207
  110. package/source/css/_common/outline/header/waves.styl +57 -57
  111. package/source/css/_common/outline/mobile.styl +46 -46
  112. package/source/css/_common/outline/outline.styl +78 -78
  113. package/source/css/_common/outline/sidebar/author.styl +59 -59
  114. package/source/css/_common/outline/sidebar/dimmer.styl +23 -23
  115. package/source/css/_common/outline/sidebar/menu.styl +63 -63
  116. package/source/css/_common/outline/sidebar/quick.styl +43 -43
  117. package/source/css/_common/outline/sidebar/related.styl +56 -56
  118. package/source/css/_common/outline/sidebar/sidebar.styl +80 -80
  119. package/source/css/_common/outline/sidebar/social.styl +69 -69
  120. package/source/css/_common/outline/sidebar/state.styl +37 -37
  121. package/source/css/_common/outline/sidebar/tab.styl +71 -71
  122. package/source/css/_common/outline/sidebar/toc.styl +47 -47
  123. package/source/css/_common/scaffolding/animate.styl +322 -322
  124. package/source/css/_common/scaffolding/base.styl +190 -190
  125. package/source/css/_common/scaffolding/buttons.styl +48 -48
  126. package/source/css/_common/scaffolding/divider.styl +36 -36
  127. package/source/css/_common/scaffolding/iconfont.styl +443 -443
  128. package/source/css/_common/scaffolding/normalize.styl +273 -273
  129. package/source/css/_common/scaffolding/pagination.styl +81 -81
  130. package/source/css/_common/scaffolding/ribbon.styl +38 -38
  131. package/source/css/_common/scaffolding/scaffolding.styl +14 -14
  132. package/source/css/_common/scaffolding/scrollbar.styl +37 -37
  133. package/source/css/_common/scaffolding/tables.styl +50 -50
  134. package/source/css/_common/scaffolding/tip.styl +19 -19
  135. package/source/css/_common/scaffolding/toggles.styl +59 -59
  136. package/source/css/_iconfont.styl +455 -455
  137. package/source/css/_mixins.styl +148 -148
  138. package/source/css/_variables.styl +89 -89
  139. package/source/css/app.styl +41 -41
  140. package/source/css/mermaid.styl +5 -5
  141. package/source/css/optimize.styl +5 -5
  142. package/source/js/_app/components/comments.js +59 -0
  143. package/source/js/_app/components/comments.ts +88 -89
  144. package/source/js/_app/components/sidebar.js +244 -0
  145. package/source/js/_app/components/sidebar.ts +239 -239
  146. package/source/js/_app/components/tcomments.js +47 -0
  147. package/source/js/_app/components/tcomments.ts +54 -55
  148. package/source/js/_app/globals/globalVars.ts +99 -99
  149. package/source/js/_app/globals/handles.js +105 -0
  150. package/source/js/_app/globals/handles.ts +124 -123
  151. package/source/js/_app/globals/themeColor.ts +63 -64
  152. package/source/js/_app/globals/thirdparty.ts +63 -63
  153. package/source/js/_app/globals/tools.ts +75 -75
  154. package/source/js/_app/library/anime.ts +110 -110
  155. package/source/js/_app/library/declare.d.ts +128 -133
  156. package/source/js/_app/library/dom.ts +28 -26
  157. package/source/js/_app/library/loadFile.js +43 -0
  158. package/source/js/_app/library/loadFile.ts +47 -43
  159. package/source/js/_app/library/proto.ts +137 -141
  160. package/source/js/_app/library/scriptPjax.ts +72 -72
  161. package/source/js/_app/library/storage.ts +12 -12
  162. package/source/js/_app/library/vue.js +52 -0
  163. package/source/js/_app/library/vue.ts +49 -50
  164. package/source/js/_app/page/common.js +45 -0
  165. package/source/js/_app/page/common.ts +43 -42
  166. package/source/js/_app/page/fancybox.js +70 -0
  167. package/source/js/_app/page/fancybox.ts +72 -71
  168. package/source/js/_app/page/post.js +253 -0
  169. package/source/js/_app/page/post.ts +266 -266
  170. package/source/js/_app/page/search.js +111 -0
  171. package/source/js/_app/page/search.ts +115 -115
  172. package/source/js/_app/page/tab.ts +60 -60
  173. package/source/js/_app/pjax/domInit.js +80 -0
  174. package/source/js/_app/pjax/domInit.ts +97 -97
  175. package/source/js/_app/pjax/refresh.js +137 -0
  176. package/source/js/_app/pjax/refresh.ts +140 -138
  177. package/source/js/_app/pjax/siteInit.js +115 -0
  178. package/source/js/_app/pjax/siteInit.ts +106 -104
  179. package/source/js/_app/player.js +777 -0
  180. package/source/js/_app/player.ts +798 -799
  181. package/toolbox/compiler.mjs +73 -0
  182. package/toolbox/hoistdep.mjs +6 -0
  183. package/toolbox/lib.mjs +40 -0
@@ -1,133 +1,128 @@
1
- /*
2
- 对注释的说明: 部分注释为openai-chatgpt生成的注释,可能存在描述或语义的问题
3
- */
4
- interface AudioItem {
5
- title: string;
6
- list: string[];
7
- }
8
-
9
- declare interface EventTarget {
10
- createChild(tag: string, obj: Object, positon?: string): HTMLElement;
11
- wrapObject(obj: Object): void;
12
- changeOrGetHeight(h: number | string): void;
13
- changeOrGetHeight(): number;
14
- changeOrGetWidth(w: number | string): void;
15
- changeOrGetWidth(): number;
16
- getTop(): number;
17
- left(): number;
18
- insertAfter(element: HTMLElement): void;
19
- display(d: string): EventTarget;
20
- display():string
21
- child(selector: string): HTMLElement;
22
- find(selector: string): NodeListOf<HTMLElement>;
23
- _class(type: string, className: string, display?: boolean): void;
24
- addClass(className: string): EventTarget;
25
- removeClass(className: string): EventTarget;
26
- toggleClass(className: string, display?: boolean): EventTarget;
27
- hasClass(className: string): boolean;
28
- }
29
-
30
- type walineMeta = 'nick'|'mail'|'link'
31
-
32
- declare const LOCAL: {
33
- ispost: boolean;
34
- path: string;
35
- ignores: Array<(uri:string)=>boolean>;
36
- audio: string[];
37
- search: {
38
- placeholder: string,
39
- empty: string,
40
- stats: string
41
- };
42
- quiz: {
43
- choice: string,
44
- multiple: string,
45
- true_false: string,
46
- essay: string,
47
- gap_fill: string,
48
- mistake: string
49
- };
50
- nocopy: boolean;
51
- copyright: string;
52
- outime: boolean
53
- template: string
54
- favicon: {
55
- hide: string
56
- show: string
57
- }
58
- }
59
- interface configType {
60
- hostname: string;
61
- fireworks: any;
62
- audio: AudioItem[];
63
- version: number
64
- root: string
65
- statics: string
66
- outime: {
67
- enable: boolean
68
- days: number
69
- }
70
- favicon: {
71
- normal: string,
72
- hidden: string
73
- }
74
- darkmode: boolean
75
- auto_dark: {
76
- enable: boolean
77
- start: number
78
- end: number
79
- }
80
- auto_scroll: boolean
81
- loader: {
82
- start: boolean
83
- switch: boolean
84
- }
85
- js: {
86
- chart: string
87
- copy_tex: string
88
- fancybox: string
89
- echarts: string
90
- }
91
- css: {
92
- valine: string
93
- katex: string
94
- mermaid: string
95
- fancybox: string
96
- }
97
- search: any,
98
- waline: {
99
- serverURL: string
100
- lang: string
101
- locale: object
102
- emoji: boolean
103
- meta: walineMeta[]
104
- requiredMeta: walineMeta[]
105
- wordLimit: number
106
- pageSize: number
107
- pageview: boolean
108
- }
109
- twikoo: {
110
- envId: string
111
- region: string
112
- }
113
- walinePageView: boolean
114
- quicklink: {
115
- ignores: any
116
- timeout: number
117
- priority: boolean
118
- }
119
- playerAPI: string
120
- }
121
- // esbuild 静态常量
122
- declare const __shokax_player__:boolean
123
- declare const __shokax_fireworks__:boolean
124
- declare const __shokax_search__:boolean
125
- declare const __shokax_VL__:boolean
126
- declare const __shokax_outime__:boolean
127
- declare const __shokax_tabs__: boolean
128
- declare const __shokax_quiz__: boolean
129
- declare const __shokax_fancybox__: boolean
130
- declare const __shokax_waline__:boolean
131
- declare const __shokax_twikoo__:boolean
132
- declare const shokax_CONFIG:configType
133
- declare const shokax_siteURL:string
1
+ /*
2
+ 对注释的说明: 部分注释为openai-chatgpt生成的注释,可能存在描述或语义的问题
3
+ */
4
+ interface AudioItem {
5
+ title: string;
6
+ list: string[];
7
+ }
8
+
9
+ declare interface EventTarget {
10
+ changeOrGetHeight(h: number | string): void;
11
+ changeOrGetHeight(): number;
12
+ changeOrGetWidth(w: number | string): void;
13
+ changeOrGetWidth(): number;
14
+ getTop(): number;
15
+ left(): number;
16
+ insertAfter(element: HTMLElement): void;
17
+ display(d: string): EventTarget;
18
+ display():string
19
+ find(selector: string): NodeListOf<HTMLElement>;
20
+ _class(type: string, className: string, display?: boolean): void;
21
+ addClass(className: string): EventTarget;
22
+ removeClass(className: string): EventTarget;
23
+ toggleClass(className: string, display?: boolean): EventTarget;
24
+ hasClass(className: string): boolean;
25
+ }
26
+
27
+ type walineMeta = 'nick'|'mail'|'link'
28
+
29
+ declare const LOCAL: {
30
+ ispost: boolean;
31
+ path: string;
32
+ ignores: Array<(uri:string)=>boolean>;
33
+ audio: string[];
34
+ search: {
35
+ placeholder: string,
36
+ empty: string,
37
+ stats: string
38
+ };
39
+ quiz: {
40
+ choice: string,
41
+ multiple: string,
42
+ true_false: string,
43
+ essay: string,
44
+ gap_fill: string,
45
+ mistake: string
46
+ };
47
+ nocopy: boolean;
48
+ copyright: string;
49
+ outime: boolean
50
+ template: string
51
+ favicon: {
52
+ hide: string
53
+ show: string
54
+ }
55
+ }
56
+ interface configType {
57
+ hostname: string;
58
+ fireworks: any;
59
+ audio: AudioItem[];
60
+ version: number
61
+ root: string
62
+ statics: string
63
+ outime: {
64
+ enable: boolean
65
+ days: number
66
+ }
67
+ favicon: {
68
+ normal: string,
69
+ hidden: string
70
+ }
71
+ darkmode: boolean
72
+ auto_dark: {
73
+ enable: boolean
74
+ start: number
75
+ end: number
76
+ }
77
+ auto_scroll: boolean
78
+ loader: {
79
+ start: boolean
80
+ switch: boolean
81
+ }
82
+ js: {
83
+ copy_tex: string
84
+ fancybox: string
85
+ }
86
+ css: {
87
+ valine: string
88
+ katex: string
89
+ mermaid: string
90
+ fancybox: string
91
+ }
92
+ search: any,
93
+ waline: {
94
+ serverURL: string
95
+ lang: string
96
+ locale: object
97
+ emoji: boolean
98
+ meta: walineMeta[]
99
+ requiredMeta: walineMeta[]
100
+ wordLimit: number
101
+ pageSize: number
102
+ pageview: boolean
103
+ }
104
+ twikoo: {
105
+ envId: string
106
+ region: string
107
+ }
108
+ walinePageView: boolean
109
+ quicklink: {
110
+ ignores: any
111
+ timeout: number
112
+ priority: boolean
113
+ }
114
+ playerAPI: string
115
+ }
116
+ // esbuild 静态常量
117
+ declare const __shokax_player__:boolean
118
+ declare const __shokax_fireworks__:boolean
119
+ declare const __shokax_search__:boolean
120
+ declare const __shokax_VL__:boolean
121
+ declare const __shokax_outime__:boolean
122
+ declare const __shokax_tabs__: boolean
123
+ declare const __shokax_quiz__: boolean
124
+ declare const __shokax_fancybox__: boolean
125
+ declare const __shokax_waline__:boolean
126
+ declare const __shokax_twikoo__:boolean
127
+ declare const shokax_CONFIG:configType
128
+ declare const shokax_siteURL:string
@@ -1,26 +1,28 @@
1
- const getDocHeight = () => $dom('main > .inner').offsetHeight
2
- /**
3
- * 获取一个dom选择器对应的元素
4
- */
5
- const $dom = (selector: string, element: Document = document): HTMLElement => {
6
- // 在测试环境中这能优化0.01-0.02ms左右
7
- if (selector[0] === '#') {
8
- return <HTMLElement> element.getElementById(selector.substring(1))
9
- }
10
- return <HTMLElement> element.querySelector(selector)
11
- }
12
-
13
- /**
14
- * 获取具有此选择器的所有dom节点
15
- */
16
- $dom.all = (selector: string, element: Document = document): NodeListOf<HTMLElement> => {
17
- return element.querySelectorAll(selector)
18
- }
19
- /**
20
- * 获取具有此选择器的所有dom节点,并依次执行callback函数
21
- */
22
- $dom.each = (selector: string, callback: (value: HTMLElement, key: number, parent: NodeListOf<Element>) => void, element?: Document): void => {
23
- $dom.all(selector, element).forEach(callback)
24
- }
25
-
26
- export { $dom, getDocHeight }
1
+ /**
2
+ * 获取一个dom选择器对应的元素
3
+ * @deprecated Will be removed in the v0.5
4
+ */
5
+ const $dom = (selector: string, element: Document = document): HTMLElement => {
6
+ // 在测试环境中这能优化0.01-0.02ms左右
7
+ if (selector[0] === '#') {
8
+ return <HTMLElement> element.getElementById(selector.substring(1))
9
+ }
10
+ return <HTMLElement> element.querySelector(selector)
11
+ }
12
+
13
+ /**
14
+ * 获取具有此选择器的所有dom节点
15
+ * @deprecated Will be removed in the v0.5
16
+ */
17
+ $dom.all = (selector: string, element: Document = document): NodeListOf<HTMLElement> => {
18
+ return element.querySelectorAll(selector)
19
+ }
20
+ /**
21
+ * 获取具有此选择器的所有dom节点,并依次执行callback函数
22
+ * @deprecated Will be removed in the v0.5
23
+ */
24
+ $dom.each = (selector: string, callback: (value: HTMLElement, key: number, parent: NodeListOf<Element>) => void, element?: Document): void => {
25
+ $dom.all(selector, element).forEach(callback)
26
+ }
27
+
28
+ export { $dom }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.vendorCss = exports.vendorJs = void 0;
4
+ const scriptPjax_1 = require("./scriptPjax");
5
+ const globalVars_1 = require("../globals/globalVars");
6
+ const proto_1 = require("./proto");
7
+ /**
8
+ * 用途是根据不同的资源名称和类型生成相应的资源 URL。
9
+ */
10
+ const assetUrl = (asset, type) => {
11
+ const str = globalVars_1.CONFIG[asset][type];
12
+ if (str.includes('http')) {
13
+ return str;
14
+ }
15
+ if (str.includes('gh') || str.includes('combine')) {
16
+ return `https://cdn.jsdelivr.net/${str}`;
17
+ }
18
+ if (str.includes('npm')) {
19
+ return `https://cdn.jsdelivr.net/${str}`;
20
+ }
21
+ return `/${str}`;
22
+ };
23
+ const vendorJs = (type, callback, condition) => {
24
+ if (LOCAL[type]) {
25
+ (0, scriptPjax_1.getScript)(assetUrl('js', type), callback || function () {
26
+ window[type] = true;
27
+ }, condition || window[type]);
28
+ }
29
+ };
30
+ exports.vendorJs = vendorJs;
31
+ const vendorCss = (type, condition) => {
32
+ if (window['css' + type]) {
33
+ return;
34
+ }
35
+ if (LOCAL[type]) {
36
+ (0, proto_1.createChild)(document.head, 'link', {
37
+ rel: 'stylesheet',
38
+ href: assetUrl('css', type)
39
+ });
40
+ window['css' + type] = true;
41
+ }
42
+ };
43
+ exports.vendorCss = vendorCss;
@@ -1,43 +1,47 @@
1
- import { getScript } from './scriptPjax'
2
- import { CONFIG } from '../globals/globalVars'
3
- import { createChild } from './proto'
4
-
5
- /**
6
- * 用途是根据不同的资源名称和类型生成相应的资源 URL。
7
- */
8
- const assetUrl = (asset: string, type: string): string => {
9
- const str = CONFIG[asset][type]
10
- if (str.includes('http')) {
11
- return str
12
- }
13
- if (str.includes('gh') || str.includes('combine')) {
14
- return `https://cdn.jsdelivr.net/${str}`
15
- }
16
- if (str.includes('npm')) {
17
- return `https://cdn.jsdelivr.net/${str}`
18
- }
19
- return `/${str}`
20
- }
21
-
22
- export const vendorJs = (type: string, callback?: Function, condition?: string) => {
23
- if (LOCAL[type]) {
24
- getScript(assetUrl('js', type), callback || function () {
25
- window[type] = true
26
- }, condition || window[type])
27
- }
28
- }
29
-
30
- export const vendorCss = (type: string, condition?: string): void => {
31
- if (window['css' + type]) {
32
- return
33
- }
34
-
35
- if (LOCAL[type]) {
36
- createChild(document.head, 'link', {
37
- rel: 'stylesheet',
38
- href: assetUrl('css', type)
39
- })
40
-
41
- window['css' + type] = true
42
- }
43
- }
1
+ import { getScript } from './scriptPjax'
2
+ import { CONFIG } from '../globals/globalVars'
3
+ import { createChild } from './proto'
4
+
5
+ /**
6
+ * 用途是根据不同的资源名称和类型生成相应的资源 URL。
7
+ * @deprecated Use smart bundle and import() instead.
8
+ */
9
+ const assetUrl = (asset: string, type: string): string => {
10
+ const str = CONFIG[asset][type]
11
+ if (str.includes('http')) {
12
+ return str
13
+ }
14
+ if (str.includes('gh') || str.includes('combine')) {
15
+ return `https://cdn.jsdelivr.net/${str}`
16
+ }
17
+ if (str.includes('npm')) {
18
+ return `https://cdn.jsdelivr.net/${str}`
19
+ }
20
+ return `/${str}`
21
+ }
22
+
23
+ /**
24
+ @deprecated Use smart bundle and import() instead. Will be removed in the v0.5
25
+ */
26
+ export const vendorJs = (type: string, callback?: Function, condition?: string) => {
27
+ if (LOCAL[type]) {
28
+ getScript(assetUrl('js', type), callback || function () {
29
+ window[type] = true
30
+ }, condition || window[type])
31
+ }
32
+ }
33
+
34
+ export const vendorCss = (type: string, condition?: string): void => {
35
+ if (window['css' + type]) {
36
+ return
37
+ }
38
+
39
+ if (LOCAL[type]) {
40
+ createChild(document.head, 'link', {
41
+ rel: 'stylesheet',
42
+ href: assetUrl('css', type)
43
+ })
44
+
45
+ window['css' + type] = true
46
+ }
47
+ }