hexo-theme-shokax 0.0.2-alpha1 → 0.0.2-alpha3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. package/CODE_OF_CONDUCT.md +128 -0
  2. package/CONTRIBUTING.md +56 -0
  3. package/LICENSE +28 -28
  4. package/LICENSE-shoka +21 -21
  5. package/README.md +46 -53
  6. package/README_en.MD +25 -0
  7. package/_config.yml +392 -355
  8. package/_images.yml +100 -100
  9. package/languages/README.md +19 -19
  10. package/languages/default.yml +1 -1
  11. package/languages/en.yml +151 -151
  12. package/languages/ja.yml +146 -146
  13. package/languages/zh-CN.yml +154 -154
  14. package/languages/zh-HK.yml +146 -146
  15. package/languages/zh-TW.yml +146 -146
  16. package/layout/_alternate/atom.ejs +30 -30
  17. package/layout/_alternate/json.ejs +16 -16
  18. package/layout/_alternate/rss.ejs +34 -34
  19. package/layout/_mixin/breadcrumb.pug +33 -33
  20. package/layout/_mixin/card.pug +37 -37
  21. package/layout/_mixin/comment.pug +66 -12
  22. package/layout/_mixin/postmeta.pug +30 -30
  23. package/layout/_mixin/segment.pug +32 -32
  24. package/layout/_mixin/sidebar.pug +36 -36
  25. package/layout/_mixin/widgets.pug +31 -29
  26. package/layout/_partials/footer.pug +40 -40
  27. package/layout/_partials/head/head.pug +51 -58
  28. package/layout/_partials/head/head_com.pug +17 -17
  29. package/layout/_partials/head/pwa.pug +18 -18
  30. package/layout/_partials/header.pug +18 -20
  31. package/layout/_partials/layout.pug +143 -153
  32. package/layout/_partials/loading.pug +13 -13
  33. package/layout/_partials/pagination.pug +4 -4
  34. package/layout/_partials/post/copyright.pug +20 -20
  35. package/layout/_partials/post/footer.pug +14 -14
  36. package/layout/_partials/post/nav.pug +13 -13
  37. package/layout/_partials/post/post.pug +28 -27
  38. package/layout/_partials/post/reward.pug +18 -18
  39. package/layout/_partials/sidebar/menu.pug +37 -37
  40. package/layout/_partials/sidebar/overview.pug +41 -42
  41. package/layout/_partials/third-party/baidu-analytics.pug +11 -11
  42. package/layout/_partials/third-party/clarity.pug +8 -8
  43. package/layout/archive.pug +118 -118
  44. package/layout/category.pug +63 -63
  45. package/layout/index.pug +33 -33
  46. package/layout/page.pug +56 -56
  47. package/layout/post.pug +35 -35
  48. package/layout/tag.pug +43 -43
  49. package/package.json +35 -35
  50. package/scripts/filters/locals.js +59 -59
  51. package/scripts/filters/post.js +23 -23
  52. package/scripts/generaters/archive.js +141 -141
  53. package/scripts/generaters/config.js +43 -43
  54. package/scripts/generaters/images.js +26 -26
  55. package/scripts/generaters/index.js +110 -110
  56. package/scripts/generaters/pages.js +19 -19
  57. package/scripts/generaters/script.js +89 -89
  58. package/scripts/helpers/asset.js +183 -237
  59. package/scripts/helpers/engine.js +190 -190
  60. package/scripts/helpers/list_categories.js +140 -140
  61. package/scripts/helpers/symbols_count_time.js +76 -76
  62. package/scripts/plugin/index.js +6 -6
  63. package/scripts/plugin/lib/injects-point.js +19 -19
  64. package/scripts/plugin/lib/injects.js +89 -88
  65. package/scripts/tags/links.js +86 -86
  66. package/scripts/tags/media.js +19 -19
  67. package/source/assets/algolia_logo.svg +9 -9
  68. package/source/assets/logo.svg +16 -16
  69. package/source/css/_colors.styl +207 -207
  70. package/source/css/_common/components/components.styl +6 -6
  71. package/source/css/_common/components/highlight/highlight.styl +353 -353
  72. package/source/css/_common/components/highlight/operation.styl +21 -21
  73. package/source/css/_common/components/pages/collapse.styl +119 -119
  74. package/source/css/_common/components/pages/home.styl +385 -385
  75. package/source/css/_common/components/pages/pages.styl +56 -56
  76. package/source/css/_common/components/pages/tag-cloud.styl +12 -12
  77. package/source/css/_common/components/post/breadcrumb.styl +39 -39
  78. package/source/css/_common/components/post/copyright.styl +41 -41
  79. package/source/css/_common/components/post/expand.styl +264 -264
  80. package/source/css/_common/components/post/footer.styl +11 -11
  81. package/source/css/_common/components/post/header.styl +79 -79
  82. package/source/css/_common/components/post/nav.styl +63 -63
  83. package/source/css/_common/components/post/post.styl +29 -29
  84. package/source/css/_common/components/post/reward.styl +50 -50
  85. package/source/css/_common/components/post/rtl.styl +12 -12
  86. package/source/css/_common/components/post/tags.styl +39 -39
  87. package/source/css/_common/components/tags/collapse.styl +72 -72
  88. package/source/css/_common/components/tags/container.styl +49 -49
  89. package/source/css/_common/components/tags/label.styl +12 -12
  90. package/source/css/_common/components/tags/links.styl +77 -77
  91. package/source/css/_common/components/tags/list.styl +131 -131
  92. package/source/css/_common/components/tags/note.styl +70 -70
  93. package/source/css/_common/components/tags/player.styl +361 -361
  94. package/source/css/_common/components/tags/quiz.styl +200 -200
  95. package/source/css/_common/components/tags/tabs.styl +83 -83
  96. package/source/css/_common/components/tags/tags.styl +9 -9
  97. package/source/css/_common/components/third-party/loading.styl +222 -222
  98. package/source/css/_common/components/third-party/mermaid/class.styl +90 -90
  99. package/source/css/_common/components/third-party/mermaid/flowchart.styl +72 -72
  100. package/source/css/_common/components/third-party/mermaid/gantt.styl +251 -251
  101. package/source/css/_common/components/third-party/mermaid/git.styl +7 -7
  102. package/source/css/_common/components/third-party/mermaid/mermaid.styl +37 -37
  103. package/source/css/_common/components/third-party/mermaid/pie.styl +9 -9
  104. package/source/css/_common/components/third-party/mermaid/sequence.styl +95 -95
  105. package/source/css/_common/components/third-party/mermaid/state.styl +130 -130
  106. package/source/css/_common/components/third-party/pace.styl +18 -18
  107. package/source/css/_common/components/third-party/search.styl +167 -167
  108. package/source/css/_common/components/third-party/theme.styl +151 -151
  109. package/source/css/_common/components/third-party/third-party.styl +22 -22
  110. package/source/css/_common/components/third-party/valine.styl +548 -548
  111. package/source/css/_common/components/third-party/widgets.styl +57 -57
  112. package/source/css/_common/outline/footer/footer.styl +69 -69
  113. package/source/css/_common/outline/header/brand.styl +77 -77
  114. package/source/css/_common/outline/header/header.styl +20 -20
  115. package/source/css/_common/outline/header/image.styl +79 -79
  116. package/source/css/_common/outline/header/menu.styl +117 -117
  117. package/source/css/_common/outline/header/nav.styl +81 -81
  118. package/source/css/_common/outline/header/right.styl +15 -15
  119. package/source/css/_common/outline/header/tool.styl +207 -207
  120. package/source/css/_common/outline/header/waves.styl +50 -50
  121. package/source/css/_common/outline/mobile.styl +46 -46
  122. package/source/css/_common/outline/outline.styl +78 -78
  123. package/source/css/_common/outline/sidebar/author.styl +59 -59
  124. package/source/css/_common/outline/sidebar/dimmer.styl +23 -23
  125. package/source/css/_common/outline/sidebar/menu.styl +63 -63
  126. package/source/css/_common/outline/sidebar/quick.styl +43 -43
  127. package/source/css/_common/outline/sidebar/related.styl +56 -56
  128. package/source/css/_common/outline/sidebar/sidebar.styl +75 -75
  129. package/source/css/_common/outline/sidebar/social.styl +69 -69
  130. package/source/css/_common/outline/sidebar/state.styl +37 -37
  131. package/source/css/_common/outline/sidebar/tab.styl +71 -71
  132. package/source/css/_common/outline/sidebar/toc.styl +47 -47
  133. package/source/css/_common/scaffolding/animate.styl +318 -318
  134. package/source/css/_common/scaffolding/base.styl +172 -172
  135. package/source/css/_common/scaffolding/buttons.styl +48 -48
  136. package/source/css/_common/scaffolding/divider.styl +36 -36
  137. package/source/css/_common/scaffolding/iconfont.styl +443 -443
  138. package/source/css/_common/scaffolding/normalize.styl +289 -289
  139. package/source/css/_common/scaffolding/pagination.styl +81 -81
  140. package/source/css/_common/scaffolding/ribbon.styl +38 -38
  141. package/source/css/_common/scaffolding/scaffolding.styl +14 -14
  142. package/source/css/_common/scaffolding/scrollbar.styl +37 -37
  143. package/source/css/_common/scaffolding/tables.styl +50 -50
  144. package/source/css/_common/scaffolding/tip.styl +19 -19
  145. package/source/css/_common/scaffolding/toggles.styl +59 -59
  146. package/source/css/_iconfont.styl +451 -451
  147. package/source/css/_mixins.styl +146 -146
  148. package/source/css/_variables.styl +89 -89
  149. package/source/css/app.styl +36 -38
  150. package/source/css/comment.styl +5 -5
  151. package/source/css/mermaid.styl +5 -5
  152. package/source/js/_app/components.js +330 -330
  153. package/source/js/_app/global.js +317 -317
  154. package/source/js/_app/library.js +302 -302
  155. package/source/js/_app/page.js +623 -623
  156. package/source/js/_app/player.js +748 -748
  157. package/source/js/_app/vue.js +43 -43
  158. package/layout/_partials/third-party/qweather.pug +0 -35
  159. package/source/css/plugin.styl +0 -174
@@ -1,110 +1,110 @@
1
- /* global hexo */
2
- 'use strict'
3
-
4
- const fs = require('hexo-fs')
5
- const pagination = require('hexo-pagination')
6
-
7
- hexo.config.index_generator = Object.assign({
8
- per_page: typeof hexo.config.per_page === 'undefined' ? 10 : hexo.config.per_page,
9
- order_by: '-date'
10
- }, hexo.config.index_generator)
11
-
12
- hexo.extend.generator.register('index', function (locals) {
13
- const covers = []
14
- const catlist = []
15
- let pages
16
- const config = hexo.config
17
- const theme = hexo.theme.config
18
- const sticky = locals.posts.find({ sticky: true }).sort(config.index_generator.order_by)
19
- const posts = locals.posts.find({ sticky: { $exists: false } }).sort(config.index_generator.order_by)
20
- const paginationDir = config.pagination_dir || 'page'
21
- const path = config.index_generator.path || ''
22
- const categories = locals.categories
23
-
24
- const getTopcat = function (cat) {
25
- if (cat.parent) {
26
- const pCat = categories.findOne({ _id: cat.parent })
27
- return getTopcat(pCat)
28
- } else {
29
- return cat
30
- }
31
- }
32
-
33
- if (categories && categories.length) {
34
- categories.forEach((cat) => {
35
- const cover = `source/_posts/${cat.slug}`
36
- if (fs.existsSync(cover + '/cover.avif')) {
37
- covers.push({
38
- path: cat.slug + '/cover.avif',
39
- data: function () {
40
- return fs.createReadStream(cover + '/cover.avif')
41
- }
42
- })
43
- } else if (fs.existsSync(cover + '/cover.webp')) {
44
- covers.push({
45
- path: cat.slug + '/cover.webp',
46
- data: function () {
47
- return fs.createReadStream(cover + '/cover.webp')
48
- }
49
- })
50
- } else if (fs.existsSync(cover + '/cover.jpg')) {
51
- covers.push({
52
- path: cat.slug + '/cover.jpg',
53
- data: function () {
54
- return fs.createReadStream(cover + '/cover.jpg')
55
- }
56
- })
57
-
58
- const topcat = getTopcat(cat)
59
-
60
- if (topcat._id !== cat._id) {
61
- cat.top = topcat
62
- }
63
-
64
- const child = categories.find({ parent: cat._id })
65
- let pl = 6
66
-
67
- if (child.length !== 0) {
68
- cat.child = child.length
69
- cat.subs = child.sort({ name: 1 }).limit(6).toArray()
70
- pl = Math.max(0, pl - child.length)
71
- if (pl > 0) {
72
- // eslint-disable-next-line array-callback-return
73
- cat.subs.push.apply(cat.subs, cat.posts.sort({ title: 1 }).filter(function (item, i) {
74
- if (item.categories.last()._id === cat._id) { return true }
75
- }).limit(pl).toArray())
76
- }
77
- } else {
78
- cat.subs = cat.posts.sort({ title: 1 }).limit(6).toArray()
79
- }
80
-
81
- catlist.push(cat)
82
- }
83
- })
84
- }
85
-
86
- if (posts.length > 0) {
87
- pages = pagination(path, posts, {
88
- perPage: config.index_generator.per_page,
89
- layout: ['index', 'archive'],
90
- format: paginationDir + '/%d/',
91
- data: {
92
- __index: true,
93
- catlist,
94
- sticky
95
- }
96
- })
97
- } else {
98
- pages = [{
99
- path,
100
- layout: ['index', 'archive'],
101
- data: {
102
- __index: true,
103
- catlist,
104
- sticky
105
- }
106
- }]
107
- }
108
-
109
- return [...covers, ...pages]
110
- })
1
+ /* global hexo */
2
+ 'use strict'
3
+
4
+ const fs = require('hexo-fs')
5
+ const pagination = require('hexo-pagination')
6
+
7
+ hexo.config.index_generator = Object.assign({
8
+ per_page: typeof hexo.config.per_page === 'undefined' ? 10 : hexo.config.per_page,
9
+ order_by: '-date'
10
+ }, hexo.config.index_generator)
11
+
12
+ hexo.extend.generator.register('index', function (locals) {
13
+ const covers = []
14
+ const catlist = []
15
+ let pages
16
+ const config = hexo.config
17
+ const theme = hexo.theme.config
18
+ const sticky = locals.posts.find({ sticky: true }).sort(config.index_generator.order_by)
19
+ const posts = locals.posts.find({ sticky: { $exists: false } }).sort(config.index_generator.order_by)
20
+ const paginationDir = config.pagination_dir || 'page'
21
+ const path = config.index_generator.path || ''
22
+ const categories = locals.categories
23
+
24
+ const getTopcat = function (cat) {
25
+ if (cat.parent) {
26
+ const pCat = categories.findOne({ _id: cat.parent })
27
+ return getTopcat(pCat)
28
+ } else {
29
+ return cat
30
+ }
31
+ }
32
+
33
+ if (categories && categories.length) {
34
+ categories.forEach((cat) => {
35
+ const cover = `source/_posts/${cat.slug}`
36
+ if (fs.existsSync(cover + '/cover.avif')) {
37
+ covers.push({
38
+ path: cat.slug + '/cover.avif',
39
+ data: function () {
40
+ return fs.createReadStream(cover + '/cover.avif')
41
+ }
42
+ })
43
+ } else if (fs.existsSync(cover + '/cover.webp')) {
44
+ covers.push({
45
+ path: cat.slug + '/cover.webp',
46
+ data: function () {
47
+ return fs.createReadStream(cover + '/cover.webp')
48
+ }
49
+ })
50
+ } else if (fs.existsSync(cover + '/cover.jpg')) {
51
+ covers.push({
52
+ path: cat.slug + '/cover.jpg',
53
+ data: function () {
54
+ return fs.createReadStream(cover + '/cover.jpg')
55
+ }
56
+ })
57
+
58
+ const topcat = getTopcat(cat)
59
+
60
+ if (topcat._id !== cat._id) {
61
+ cat.top = topcat
62
+ }
63
+
64
+ const child = categories.find({ parent: cat._id })
65
+ let pl = 6
66
+
67
+ if (child.length !== 0) {
68
+ cat.child = child.length
69
+ cat.subs = child.sort({ name: 1 }).limit(6).toArray()
70
+ pl = Math.max(0, pl - child.length)
71
+ if (pl > 0) {
72
+ // eslint-disable-next-line array-callback-return
73
+ cat.subs.push.apply(cat.subs, cat.posts.sort({ title: 1 }).filter(function (item, i) {
74
+ if (item.categories.last()._id === cat._id) { return true }
75
+ }).limit(pl).toArray())
76
+ }
77
+ } else {
78
+ cat.subs = cat.posts.sort({ title: 1 }).limit(6).toArray()
79
+ }
80
+
81
+ catlist.push(cat)
82
+ }
83
+ })
84
+ }
85
+
86
+ if (posts.length > 0) {
87
+ pages = pagination(path, posts, {
88
+ perPage: config.index_generator.per_page,
89
+ layout: ['index', 'archive'],
90
+ format: paginationDir + '/%d/',
91
+ data: {
92
+ __index: true,
93
+ catlist,
94
+ sticky
95
+ }
96
+ })
97
+ } else {
98
+ pages = [{
99
+ path,
100
+ layout: ['index', 'archive'],
101
+ data: {
102
+ __index: true,
103
+ catlist,
104
+ sticky
105
+ }
106
+ }]
107
+ }
108
+
109
+ return [...covers, ...pages]
110
+ })
@@ -1,19 +1,19 @@
1
- /* global hexo */
2
- 'use strict'
3
-
4
- hexo.extend.generator.register('pages', function (locals) {
5
- const config = hexo.config
6
-
7
- return [
8
- {
9
- path: config.category_dir + '/index.html',
10
- data: { type: 'categories' },
11
- layout: ['page']
12
- },
13
- {
14
- path: config.tag_dir + '/index.html',
15
- data: { type: 'tags' },
16
- layout: ['page']
17
- }
18
- ]
19
- })
1
+ /* global hexo */
2
+ 'use strict'
3
+
4
+ hexo.extend.generator.register('pages', function (locals) {
5
+ const config = hexo.config
6
+
7
+ return [
8
+ {
9
+ path: config.category_dir + '/index.html',
10
+ data: { type: 'categories' },
11
+ layout: ['page']
12
+ },
13
+ {
14
+ path: config.tag_dir + '/index.html',
15
+ data: { type: 'tags' },
16
+ layout: ['page']
17
+ }
18
+ ]
19
+ })
@@ -1,89 +1,89 @@
1
- /* global hexo */
2
- const fs = require('hexo-fs')
3
- // const url = require('url')
4
-
5
- hexo.extend.generator.register('script', function (locals) {
6
- const log = hexo.log || console.log
7
- const config = hexo.config
8
- const theme = hexo.theme.config
9
-
10
- const env = require('../../package.json')
11
-
12
- const siteConfig = {
13
- version: env.version,
14
- hostname: config.url,
15
- root: config.root,
16
- statics: theme.statics,
17
- favicon: {
18
- normal: theme.assets + '/favicon.ico',
19
- hidden: theme.assets + '/failure.ico'
20
- },
21
- darkmode: theme.darkmode,
22
- auto_dark: theme.auto_dark,
23
- auto_scroll: theme.auto_scroll,
24
- js: {
25
- chart: theme.vendors.js.chart,
26
- copy_tex: theme.vendors.js.copy_tex,
27
- fancybox: theme.vendors.js.fancybox
28
- },
29
- css: {
30
- valine: theme.css + '/comment.css',
31
- katex: theme.vendors.css.katex,
32
- mermaid: theme.css + '/mermaid.css',
33
- fancybox: theme.vendors.css.fancybox
34
- },
35
- loader: theme.loader,
36
- search: null,
37
- valine: theme.valine,
38
- outime: {
39
- enable: theme.outime.enable,
40
- days: theme.outime.days
41
- },
42
- quicklink: {
43
- timeout: theme.quicklink.timeout,
44
- priority: theme.quicklink.priority
45
- }
46
- }
47
-
48
- if (config?.algolia) {
49
- siteConfig.search = {
50
- appID: config.algolia.appId,
51
- apiKey: config.algolia.apiKey,
52
- indexName: config.algolia.indexName,
53
- hits: theme.search.hits
54
- }
55
- }
56
-
57
- if (theme?.audio) {
58
- siteConfig.audio = theme.audio
59
- }
60
-
61
- let text = '';
62
-
63
- ['library', 'global', 'page', 'vue', 'components'].forEach(function (item) {
64
- if (fs.existsSync(`themes/shokaX/source/js/_app/${item}.js`)) {
65
- text += fs.readFileSync(`themes/shokaX/source/js/_app/${item}.js`).toString()
66
- } else {
67
- text += fs.readFileSync(`node_modules/hexo-theme-shokax/source/js/_app/${item}.js`).toString()
68
- }
69
- })
70
- if (!theme.experiments?.noPlayer) {
71
- if (fs.existsSync('themes/shokaX/source/js/_app/player.js')) {
72
- text += fs.readFileSync('themes/shokaX/source/js/_app/player.js').toString()
73
- } else {
74
- text += fs.readFileSync('node_modules/hexo-theme-shokax/source/js/_app/player.js').toString()
75
- }
76
- }
77
- if (theme.fireworks && theme.fireworks.enable) {
78
- siteConfig.fireworks = theme.fireworks.color || ['rgba(255,182,185,.9)', 'rgba(250,227,217,.9)', 'rgba(187,222,214,.9)', 'rgba(138,198,209,.9)']
79
- }
80
-
81
- text = 'const CONFIG = ' + JSON.stringify(siteConfig) + ';' + text
82
- const result = hexo.render.renderSync({ text, engine: 'js' })
83
- return {
84
- path: theme.js + '/app.js',
85
- data: function () {
86
- return result
87
- }
88
- }
89
- })
1
+ /* global hexo */
2
+ const fs = require('hexo-fs')
3
+ // const url = require('url')
4
+
5
+ hexo.extend.generator.register('script', function (locals) {
6
+ const log = hexo.log || console.log
7
+ const config = hexo.config
8
+ const theme = hexo.theme.config
9
+
10
+ const env = require('../../package.json')
11
+
12
+ const siteConfig = {
13
+ version: env.version,
14
+ hostname: config.url,
15
+ root: config.root,
16
+ statics: theme.statics,
17
+ favicon: {
18
+ normal: theme.assets + '/favicon.ico',
19
+ hidden: theme.assets + '/failure.ico'
20
+ },
21
+ darkmode: theme.darkmode,
22
+ auto_dark: theme.auto_dark,
23
+ auto_scroll: theme.auto_scroll,
24
+ js: {
25
+ chart: theme.vendors.js.chart,
26
+ copy_tex: theme.vendors.js.copy_tex,
27
+ fancybox: theme.vendors.js.fancybox
28
+ },
29
+ css: {
30
+ valine: theme.css + '/comment.css',
31
+ katex: theme.vendors.css.katex,
32
+ mermaid: theme.css + '/mermaid.css',
33
+ fancybox: theme.vendors.css.fancybox
34
+ },
35
+ loader: theme.loader,
36
+ search: null,
37
+ valine: theme.valine,
38
+ outime: {
39
+ enable: theme.outime.enable,
40
+ days: theme.outime.days
41
+ },
42
+ quicklink: {
43
+ timeout: theme.quicklink.timeout,
44
+ priority: theme.quicklink.priority
45
+ }
46
+ }
47
+
48
+ if (config?.algolia) {
49
+ siteConfig.search = {
50
+ appID: config.algolia.appId,
51
+ apiKey: config.algolia.apiKey,
52
+ indexName: config.algolia.indexName,
53
+ hits: theme.search.hits
54
+ }
55
+ }
56
+
57
+ if (theme?.audio) {
58
+ siteConfig.audio = theme.audio
59
+ }
60
+
61
+ let text = '';
62
+
63
+ ['library', 'global', 'page', 'vue', 'components'].forEach(function (item) {
64
+ if (fs.existsSync(`themes/shokaX/source/js/_app/${item}.js`)) {
65
+ text += fs.readFileSync(`themes/shokaX/source/js/_app/${item}.js`).toString()
66
+ } else {
67
+ text += fs.readFileSync(`node_modules/hexo-theme-shokax/source/js/_app/${item}.js`).toString()
68
+ }
69
+ })
70
+ if (!theme.experiments?.noPlayer) {
71
+ if (fs.existsSync('themes/shokaX/source/js/_app/player.js')) {
72
+ text += fs.readFileSync('themes/shokaX/source/js/_app/player.js').toString()
73
+ } else {
74
+ text += fs.readFileSync('node_modules/hexo-theme-shokax/source/js/_app/player.js').toString()
75
+ }
76
+ }
77
+ if (theme.fireworks && theme.fireworks.enable) {
78
+ siteConfig.fireworks = theme.fireworks.color || ['rgba(255,182,185,.9)', 'rgba(250,227,217,.9)', 'rgba(187,222,214,.9)', 'rgba(138,198,209,.9)']
79
+ }
80
+
81
+ text = 'const CONFIG = ' + JSON.stringify(siteConfig) + ';' + text
82
+ const result = hexo.render.renderSync({ text, engine: 'js' })
83
+ return {
84
+ path: theme.js + '/app.js',
85
+ data: function () {
86
+ return result
87
+ }
88
+ }
89
+ })