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,29 +1,29 @@
1
- mixin PMRender(item, full)
2
- - full ||= false
3
- div(class="meta")
4
- - var create_title = __('post.created') + __('symbol.colon') + full_date(item.date)
5
- span(class="item" title=create_title)
6
- span(class="icon")
7
- i(class="ic i-calendar")
8
- if full
9
- span(class="text")
10
- != __('post.posted')
11
- time(itemprop="dateCreated datePublished" datetime=moment(item.date).format())
12
- != date(item.date)
13
- if theme.post.count
14
- span(class="item" title=__('symbols_count_time.count'))
15
- span(class="icon")
16
- i(class="ic i-pen")
17
- if full
18
- span(class="text")
19
- != __('symbols_count_time.count')
20
- span= symbolsCount(item)
21
- span(class="text")
22
- != __('symbols_count_time.word')
23
- span(class="item" title=__('symbols_count_time.time'))
24
- span(class="icon")
25
- i(class="ic i-clock")
26
- if full
27
- span(class="text")
28
- != __('symbols_count_time.time')
29
- span= symbolsTime(item, config.symbols_count_time.awl, config.symbols_count_time.wpm, __('symbols_count_time.time_minutes'))
1
+ mixin PMRender(item, full)
2
+ - full ||= false
3
+ div(class="meta")
4
+ - var create_title = __('post.created') + __('symbol.colon') + full_date(item.date)
5
+ span(class="item" title=create_title)
6
+ span(class="icon")
7
+ i(class="ic i-calendar")
8
+ if full
9
+ span(class="text")
10
+ != __('post.posted')
11
+ time(itemprop="dateCreated datePublished" datetime=moment(item.date).format())
12
+ != date(item.date)
13
+ if theme.post.count
14
+ span(class="item" title=__('symbols_count_time.count'))
15
+ span(class="icon")
16
+ i(class="ic i-pen")
17
+ if full
18
+ span(class="text")
19
+ != __('symbols_count_time.count')
20
+ span= symbolsCount(item)
21
+ span(class="text")
22
+ != __('symbols_count_time.word')
23
+ span(class="item" title=__('symbols_count_time.time'))
24
+ span(class="icon")
25
+ i(class="ic i-clock")
26
+ if full
27
+ span(class="text")
28
+ != __('symbols_count_time.time')
29
+ span= symbolsTime(item, config.symbols_count_time.awl, config.symbols_count_time.wpm, __('symbols_count_time.time_minutes'))
@@ -1,35 +1,35 @@
1
- include postmeta.pug
2
-
3
- mixin SMRender(item, lazy)
4
- - var link1 = item.link || item.path
5
- - var gradient = theme?.experiments?.gradient
6
- if item.link
7
- - var postTitleIcon = '<i class="ic i-link-alt"></i>'
8
- - var postText = item.title || item.link || __('post.untitled')
9
- article(class="item")
10
- if gradient
11
- div(class="cover" style=`background: linear-gradient(to bottom right, ${random_color()}, ${random_color()});`)
12
- else
13
- div(class="cover")
14
- if lazy
15
- != _url(link1, '<img loading="lazy" decoding="async" data-src="'+ _cover(item) +'" alt="article cover">', {itemprop: 'url', title: postText})
16
- else
17
- != _url(link1, '<img loading="eager" decoding="async" src="'+ _cover(item) +'" alt="article cover">', {itemprop: 'url', title: postText})
18
- div(class="info")
19
- +PMRender(item)
20
- h3
21
- != _url(link1, postText + (postTitleIcon || ''), {itemprop: 'url', title: postText})
22
- div(class="excerpt")
23
- if item.description
24
- != item.description
25
- else if item.excerpt
26
- != item.excerpt
27
- else
28
- != _truncate(escape_html(_striptags(item.content)),300)
29
- if item.categories.length > 0
30
- div(class="meta footer")
31
- span
32
- - var lastcat = item.categories.last()
33
- != _url(lastcat.path, '<i class="ic i-flag"></i>' + lastcat.name, {itemprop: 'url', title: lastcat.name})
34
- != _url(link1, 'more...', {itemprop: 'url', title: postText, class: 'btn'})
35
-
1
+ include postmeta.pug
2
+
3
+ mixin SMRender(item, lazy)
4
+ - var link1 = item.link || item.path
5
+ - var gradient = theme?.experiments?.gradient
6
+ if item.link
7
+ - var postTitleIcon = '<i class="ic i-link-alt"></i>'
8
+ - var postText = item.title || item.link || __('post.untitled')
9
+ article(class="item")
10
+ if gradient
11
+ div(class="cover" style=`background: linear-gradient(to bottom right, ${random_color()}, ${random_color()});`)
12
+ else
13
+ div(class="cover")
14
+ if lazy
15
+ != _url(link1, '<img loading="lazy" decoding="async" data-src="'+ _cover(item) +'" alt="article cover">', {itemprop: 'url', title: postText})
16
+ else
17
+ != _url(link1, '<img loading="eager" decoding="async" src="'+ _cover(item) +'" alt="article cover">', {itemprop: 'url', title: postText})
18
+ div(class="info")
19
+ +PMRender(item)
20
+ h3
21
+ != _url(link1, postText + (postTitleIcon || ''), {itemprop: 'url', title: postText})
22
+ div(class="excerpt")
23
+ if item.description
24
+ != item.description
25
+ else if item.excerpt
26
+ != item.excerpt
27
+ else
28
+ != _truncate(escape_html(_striptags(item.content)),300)
29
+ if item.categories.length > 0
30
+ div(class="meta footer")
31
+ span
32
+ - var lastcat = item.categories.last()
33
+ != _url(lastcat.path, '<i class="ic i-flag"></i>' + lastcat.name, {itemprop: 'url', title: lastcat.name})
34
+ != _url(link1, 'more...', {itemprop: 'url', title: postText, class: 'btn'})
35
+
@@ -1,40 +1,40 @@
1
- mixin sidebarRender(display_toc)
2
- - var related = _category_posts(page)
3
- if page && page.prev
4
- - var prevlink = page?.prev_link
5
- if !prevlink && is_home()
6
- if page.prev === 1
7
- - prevlink = '/'
8
- else
9
- - prevlink = `/page/${page.prev}/`
10
- if is_page() || is_post()
11
- - prevlink = page.prev.path
12
- if page && page.next
13
- - var nextlink = page?.next_link
14
- if is_page() || is_post()
15
- - nextlink = page.next.path
16
- div(class="inner")
17
- div(class="panels")
18
- div(class="inner")
19
- div(class="contents panel pjax" data-title=__('sidebar.toc'))
20
- if display_toc
21
- != toc(page.content)
22
-
23
- div(class="related panel pjax" data-title=__('sidebar.related'))
24
- if related
25
- ul
26
- != related
27
- div(class="overview panel" data-title=__('sidebar.overview'))
28
- != partial('_partials/sidebar/overview.pug', {}, {cache: true})
29
- ul(id="quick")
30
- li(class="prev pjax")
31
- if prevlink
32
- != _url(prevlink, '<i class="ic i-chevron-left"></i>', {rel: 'prev', title: __('post.prev')})
33
- li(class="up")
34
- i(class="ic i-arrow-up")
35
- li(class="down")
36
- i(class="ic i-arrow-down")
37
- li(class="next pjax")
38
- if nextlink
39
- != _url(nextlink, '<i class="ic i-chevron-right"></i>', {rel: 'next', title: __('post.next')})
40
- li(class="percent")
1
+ mixin sidebarRender(display_toc)
2
+ - var related = _category_posts(page)
3
+ if page && page.prev
4
+ - var prevlink = page?.prev_link
5
+ if !prevlink && is_home()
6
+ if page.prev === 1
7
+ - prevlink = '/'
8
+ else
9
+ - prevlink = `/page/${page.prev}/`
10
+ if is_page() || is_post()
11
+ - prevlink = page.prev.path
12
+ if page && page.next
13
+ - var nextlink = page?.next_link
14
+ if is_page() || is_post()
15
+ - nextlink = page.next.path
16
+ div(class="inner")
17
+ div(class="panels")
18
+ div(class="inner")
19
+ div(class="contents panel pjax" data-title=__('sidebar.toc'))
20
+ if display_toc
21
+ != toc(page.content)
22
+
23
+ div(class="related panel pjax" data-title=__('sidebar.related'))
24
+ if related
25
+ ul
26
+ != related
27
+ div(class="overview panel" data-title=__('sidebar.overview'))
28
+ != partial('_partials/sidebar/overview.pug', {}, {cache: true})
29
+ ul(id="quick")
30
+ li(class="prev pjax")
31
+ if prevlink
32
+ != _url(prevlink, '<i class="ic i-chevron-left"></i>', {rel: 'prev', title: __('post.prev')})
33
+ li(class="up")
34
+ i(class="ic i-arrow-up")
35
+ li(class="down")
36
+ i(class="ic i-arrow-down")
37
+ li(class="next pjax")
38
+ if nextlink
39
+ != _url(nextlink, '<i class="ic i-chevron-right"></i>', {rel: 'next', title: __('post.next')})
40
+ li(class="percent")
@@ -1,28 +1,28 @@
1
- mixin field(item)
2
- if item.link
3
- - var postTitleIcon = '<i class="ic i-link-alt"></i>'
4
- li(class="item")
5
- +BCRender(item, false)
6
- - var postText = item.title || item.link || __('post.untitled')
7
- - var link1 = item.link || item.path
8
- span
9
- != _url(link1, postText + (postTitleIcon || ''))
10
-
11
- mixin WRender(item)
12
- - var tk = theme?.twikoo?.enable
13
- - var waline = theme.waline.enable
14
- if theme.widgets.random_posts
15
- div(class="rpost pjax")
16
- h2
17
- != __('index.random_posts')
18
- ul
19
- - var posts = site.posts.shuffle().limit(10).toArray()
20
- each item in posts
21
- +field(item)
22
- if theme.widgets.recent_comments
23
- div(class="rpost pjax")
24
- h2
25
- != __('index.recent_comments')
26
- if tk || waline
27
- ul(class="leancloud-recent-comment" id="new-comment")
28
-
1
+ mixin field(item)
2
+ if item.link
3
+ - var postTitleIcon = '<i class="ic i-link-alt"></i>'
4
+ li(class="item")
5
+ +BCRender(item, false)
6
+ - var postText = item.title || item.link || __('post.untitled')
7
+ - var link1 = item.link || item.path
8
+ span
9
+ != _url(link1, postText + (postTitleIcon || ''))
10
+
11
+ mixin WRender(item)
12
+ - var tk = theme?.twikoo?.enable
13
+ - var waline = theme.waline.enable
14
+ if theme.widgets.random_posts
15
+ div(class="rpost pjax")
16
+ h2
17
+ != __('index.random_posts')
18
+ ul
19
+ - var posts = site.posts.shuffle().limit(10).toArray()
20
+ each item in posts
21
+ +field(item)
22
+ if theme.widgets.recent_comments
23
+ div(class="rpost pjax")
24
+ h2
25
+ != __('index.recent_comments')
26
+ if tk || waline
27
+ ul(class="leancloud-recent-comment" id="new-comment")
28
+
@@ -1,43 +1,43 @@
1
- div(class="status")
2
- div(class="copyright")
3
- - var copyright_year = date(null, 'YYYY')
4
- if theme.footer.since && theme.footer.since !== copyright_year
5
- != `&copy; ${theme.footer.since} -`
6
- span(itemprop="copyrightYear")
7
- != copyright_year
8
- span(class="with-love")
9
- i(class=`ic i-${ theme.footer.icon.name }`)
10
- span(class="author" itemprop="copyrightHolder")
11
- != `${author} @ ${ alternate?alternate:title}`
12
- if theme.footer.count
13
- div(class="count")
14
- span(class="post-meta-item-icon")
15
- i(class="ic i-chart-area")
16
- span(title=__('symbols_count_time.count_total'))
17
- != `${ symbolsCountTotal(site) } ${__('symbols_count_time.word')}`
18
- span(class="post-meta-divider")
19
- != " | "
20
- span(class="post-meta-item-icon")
21
- i(class="ic i-coffee")
22
- span(title=__('symbols_count_time.time_total'))
23
- != symbolsTimeTotal(site, config.symbols_count_time.awl, config.symbols_count_time.wpm, __('symbols_count_time.time_minutes'))
24
- //- span(id="timeDate")
25
- //- span(id="times")
26
- if theme.footer.powered
27
- div(class="powered-by")
28
- != __('footer.powered', _url('https://hexo.io', 'Hexo') + ' & Theme.' + _url('https://github.com/theme-shoka-x/hexo-theme-shokaX/', 'ShokaX'))
29
- if theme.footer.icp.enable
30
- br
31
- span(style="display:inline;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:var(--grey-5);")
32
- a(href="https://beian.miit.gov.cn")
33
- != theme.footer.icp.icpnumber
34
- - var beianN = theme.footer.icp?.beian, RC=theme.footer.icp?.recordcode
35
- if beianN && RC
36
- br
37
- a(target="_blank" href=`https://beian.mps.gov.cn/#/query/webSearch?code=${RC}`)
38
- img(loading="lazy" decoding="async" data-src=theme.statics + theme.assets + '/' + theme.footer.icp.icon style="max-width: 2em;display:inline;" width="20" height="20" alt="备案")
39
- != beianN
40
- != shokax_inject('status')
41
-
42
- != shokax_inject('footer')
43
-
1
+ div(class="status")
2
+ div(class="copyright")
3
+ - var copyright_year = date(null, 'YYYY')
4
+ if theme.footer.since && theme.footer.since !== copyright_year
5
+ != `&copy; ${theme.footer.since} -`
6
+ span(itemprop="copyrightYear")
7
+ != copyright_year
8
+ span(class="with-love")
9
+ i(class=`ic i-${ theme.footer.icon.name }`)
10
+ span(class="author" itemprop="copyrightHolder")
11
+ != `${author} @ ${ alternate?alternate:title}`
12
+ if theme.footer.count
13
+ div(class="count")
14
+ span(class="post-meta-item-icon")
15
+ i(class="ic i-chart-area")
16
+ span(title=__('symbols_count_time.count_total'))
17
+ != `${ symbolsCountTotal(site) } ${__('symbols_count_time.word')}`
18
+ span(class="post-meta-divider")
19
+ != " | "
20
+ span(class="post-meta-item-icon")
21
+ i(class="ic i-coffee")
22
+ span(title=__('symbols_count_time.time_total'))
23
+ != symbolsTimeTotal(site, config.symbols_count_time.awl, config.symbols_count_time.wpm, __('symbols_count_time.time_minutes'))
24
+ //- span(id="timeDate")
25
+ //- span(id="times")
26
+ if theme.footer.powered
27
+ div(class="powered-by")
28
+ != __('footer.powered', _url('https://hexo.io', 'Hexo') + ' & Theme.' + _url('https://github.com/theme-shoka-x/hexo-theme-shokaX/', 'ShokaX'))
29
+ if theme.footer.icp.enable
30
+ br
31
+ span(style="display:inline;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:var(--grey-5);")
32
+ a(href="https://beian.miit.gov.cn")
33
+ != theme.footer.icp.icpnumber
34
+ - var beianN = theme.footer.icp?.beian, RC=theme.footer.icp?.recordcode
35
+ if beianN && RC
36
+ br
37
+ a(target="_blank" href=`https://beian.mps.gov.cn/#/query/webSearch?code=${RC}`)
38
+ img(loading="lazy" decoding="async" data-src=theme.statics + theme.assets + '/' + theme.footer.icp.icon style="max-width: 2em;display:inline;" width="20" height="20" alt="备案")
39
+ != beianN
40
+ != shokax_inject('status')
41
+
42
+ != shokax_inject('footer')
43
+
@@ -1,56 +1,55 @@
1
- - var msValidate = theme?.seo?.bing,googleValid = theme?.seo?.google
2
- - var yandexValid = theme?.seo?.yandex,baiduValid = theme?.seo?.baidu
3
- - var siteTitle = config.title,noBaiduT = theme?.seo?.disable_baidu_transformation
4
- - var feedLink = full_url_for("/feed.json")
5
- - var tk= theme?.twikoo?.enable
6
- - var wl = theme.waline.enable
7
- meta(charset="UTF-8")
8
- meta(name="viewport" content="width=device-width,initial-scale=1,maximum-scale=2")
9
- meta(name="theme-color" content="#222")
10
-
11
- meta(http-equiv="X-UA-COMPATIBLE" content="IE=edge,chrome=1")
12
- meta(name="renderer" content="webkit")
13
- link(rel="icon" type="image/ico" sizes="32x32" href=url_for(theme.statics + theme.assets + theme.icon.favicon))
14
- if theme.icon.apple_touch_icon
15
- link(rel="apple-touch-icon" sizes="180x180" href=url_for(theme.statics + theme.assets + theme.icon.apple_touch_icon))
16
-
17
- if msValidate
18
- meta(name="msvalidate.01" content=msValidate)
19
- if googleValid
20
- meta(name="google-site-verification" content=googleValid)
21
- if yandexValid
22
- meta(name="yandex-verification" content=yandexValid)
23
- if baiduValid
24
- meta(name="baidu-site-verification" content=baiduValid)
25
- if noBaiduT
26
- meta(http-equiv="Cache-Control" content="no-transform")
27
- meta(http-equiv="Cache-Control" content="no-siteapp")
28
-
29
- != feed_tag('rss.xml')
30
- != feed_tag('atom.xml')
31
- link(rel="alternate" type="application/json" title=siteTitle href=feedLink)
32
-
33
- - var prelinks = theme.performance.preConnect || []
34
- each prelink in prelinks
35
- link(rel="preconnect" href=prelink)
36
-
37
- - var dnslinks = theme.performance.dnsPrefetch || []
38
- each dnsLink in dnslinks
39
- link(rel="dns-prefetch" href=dnsLink)
40
-
41
- - var fontConfig = theme.font?.loadFromGoogle
42
- if fontConfig
43
- != _vendor_font()
44
- != _css('app.css')
45
- != preloadjs()
46
-
47
- include pwa.pug
48
- if wl
49
- link(rel="stylesheet" href="https://npm.webcache.cn/@waline/client@3.0.0-alpha.11/dist/waline.css" media="none" onload="this.media='all'")
50
-
51
- - var qw = theme?.qweather?.enable
52
- if qw
53
- style.
54
- img[data-v-7d48daab] {
55
- max-width: 2em !important;
56
- }
1
+ - var msValidate = theme?.seo?.bing,googleValid = theme?.seo?.google
2
+ - var yandexValid = theme?.seo?.yandex,baiduValid = theme?.seo?.baidu
3
+ - var siteTitle = config.title,noBaiduT = theme?.seo?.disable_baidu_transformation
4
+ - var feedLink = full_url_for("/feed.json")
5
+ - var tk= theme?.twikoo?.enable
6
+ - var wl = theme.waline.enable
7
+ meta(charset="UTF-8")
8
+ meta(name="viewport" content="width=device-width,initial-scale=1,maximum-scale=2")
9
+ meta(name="theme-color" content="#222")
10
+
11
+ meta(http-equiv="X-UA-COMPATIBLE" content="IE=edge,chrome=1")
12
+ meta(name="renderer" content="webkit")
13
+ link(rel="icon" type="image/ico" sizes="32x32" href=url_for(theme.statics + theme.assets + theme.icon.favicon))
14
+ if theme.icon.apple_touch_icon
15
+ link(rel="apple-touch-icon" sizes="180x180" href=url_for(theme.statics + theme.assets + theme.icon.apple_touch_icon))
16
+
17
+ if msValidate
18
+ meta(name="msvalidate.01" content=msValidate)
19
+ if googleValid
20
+ meta(name="google-site-verification" content=googleValid)
21
+ if yandexValid
22
+ meta(name="yandex-verification" content=yandexValid)
23
+ if baiduValid
24
+ meta(name="baidu-site-verification" content=baiduValid)
25
+ if noBaiduT
26
+ meta(http-equiv="Cache-Control" content="no-transform")
27
+ meta(http-equiv="Cache-Control" content="no-siteapp")
28
+
29
+ != feed_tag('rss.xml')
30
+ != feed_tag('atom.xml')
31
+ link(rel="alternate" type="application/json" title=siteTitle href=feedLink)
32
+
33
+ - var prelinks = theme.performance.preConnect || []
34
+ each prelink in prelinks
35
+ link(rel="preconnect" href=prelink)
36
+
37
+ - var dnslinks = theme.performance.dnsPrefetch || []
38
+ each dnsLink in dnslinks
39
+ link(rel="dns-prefetch" href=dnsLink)
40
+
41
+ - var fontConfig = theme.font?.loadFromGoogle
42
+ if fontConfig
43
+ != _vendor_font()
44
+ != _css('app.css')
45
+ != preloadjs()
46
+ != load_async_css()
47
+
48
+ include pwa.pug
49
+
50
+ - var qw = theme?.qweather?.enable
51
+ if qw
52
+ style.
53
+ img[data-v-7d48daab] {
54
+ max-width: 2em !important;
55
+ }
@@ -1,24 +1,24 @@
1
- - var keywords='',tmp=page?.tags?.toArray()
2
- if tmp
3
- each tag,index in tmp
4
- - keywords += tag.name
5
- - index++
6
- - if (index < tmp.length) keywords += ','
7
- if page.keywords
8
- meta(name="keywords" content=page.keywords)
9
- else if page.tags && page.tags.length
10
- meta(name="keywords" content=keywords)
11
- else if config.keywords
12
- meta(name="keywords" content=config.keywords)
13
-
14
- if page.description
15
- meta(name="description" content=page.description)
16
- else if page.excerpt
17
- meta(name="description" content=page.excerpt)
18
- else if config.description
19
- meta(name="description" content=config.description)
20
-
21
- != canonical()
22
-
23
- if theme.open_graph
24
- != open_graph(theme.open_graph)
1
+ - var keywords='',tmp=page?.tags?.toArray()
2
+ if tmp
3
+ each tag,index in tmp
4
+ - keywords += tag.name
5
+ - index++
6
+ - if (index < tmp.length) keywords += ','
7
+ if page.keywords
8
+ meta(name="keywords" content=page.keywords)
9
+ else if page.tags && page.tags.length
10
+ meta(name="keywords" content=keywords)
11
+ else if config.keywords
12
+ meta(name="keywords" content=config.keywords)
13
+
14
+ if page.description
15
+ meta(name="description" content=page.description)
16
+ else if page.excerpt
17
+ meta(name="description" content=page.excerpt)
18
+ else if config.description
19
+ meta(name="description" content=config.description)
20
+
21
+ != canonical()
22
+
23
+ if theme.open_graph
24
+ != open_graph(theme.open_graph)
@@ -1,18 +1,18 @@
1
- //- https://blog.cyfan.top/p/c0af86bb.html#%E5%AE%89%E8%A3%85-Install
2
- - var timeNow = new Date().getTime()
3
- if theme.pwa.enable
4
- - var sworker = theme.pwa.serviceworker
5
- script(data-pjax async).
6
- if ('serviceWorker' in navigator) {
7
- navigator.serviceWorker.register("/#{sworker}?time=#{timeNow}").then(async (reg) => {
8
- if (window.localStorage.getItem('install') !== 'true') {
9
- window.localStorage.setItem('install', 'true');
10
- setTimeout(() => {
11
- window.location.reload()
12
- }, 500)
13
- }
14
- }).catch(err => {
15
- console.log(err)
16
- });
17
- }
18
- link(rel="manifest" href=`/${theme.pwa.manifest}`)
1
+ //- https://blog.cyfan.top/p/c0af86bb.html#%E5%AE%89%E8%A3%85-Install
2
+ - var timeNow = new Date().getTime()
3
+ if theme.pwa.enable
4
+ - var sworker = theme.pwa.serviceworker
5
+ script(data-pjax async).
6
+ if ('serviceWorker' in navigator) {
7
+ navigator.serviceWorker.register("/#{sworker}?time=#{timeNow}").then(async (reg) => {
8
+ if (window.localStorage.getItem('install') !== 'true') {
9
+ window.localStorage.setItem('install', 'true');
10
+ setTimeout(() => {
11
+ window.location.reload()
12
+ }, 500)
13
+ }
14
+ }).catch(err => {
15
+ console.log(err)
16
+ });
17
+ }
18
+ link(rel="manifest" href=`/${theme.pwa.manifest}`)
@@ -1,18 +1,18 @@
1
- nav(id="nav")
2
- div(class="inner")
3
- div(class="toggle")
4
- div(class="lines" aria-label!=__('accessibility.nav_toggle'))
5
- span(class="line")
6
- span(class="line")
7
- span(class="line")
8
- ul(class="menu")
9
- li(class="item title")
10
- a(href=config.root rel="start")
11
- != alternate || title
12
- ul(class="right" id="rightNav")
13
- li(class="item theme")
14
- i(class="ic i-sun")
15
- li(class="item search")
16
- i(class="ic i-search")
17
- != shokax_inject('rightNav')
18
-
1
+ nav(id="nav")
2
+ div(class="inner")
3
+ div(class="toggle")
4
+ div(class="lines" aria-label!=__('accessibility.nav_toggle'))
5
+ span(class="line")
6
+ span(class="line")
7
+ span(class="line")
8
+ ul(class="menu")
9
+ li(class="item title")
10
+ a(href=config.root rel="start")
11
+ != alternate || title
12
+ ul(class="right" id="rightNav")
13
+ li(class="item theme")
14
+ i(class="ic i-sun")
15
+ li(class="item search")
16
+ i(class="ic i-search")
17
+ != shokax_inject('rightNav')
18
+