hexo-theme-shokax 0.5.1 → 0.5.2

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 (164) hide show
  1. package/CODE_OF_CONDUCT.md +128 -128
  2. package/LICENSE +660 -660
  3. package/LICENSE-shoka +21 -21
  4. package/README.md +74 -68
  5. package/UsageRestrictions.md +25 -25
  6. package/_config.yml +352 -350
  7. package/languages/README.md +19 -19
  8. package/languages/default.yml +1 -1
  9. package/languages/en.yml +155 -155
  10. package/languages/ja.yml +155 -155
  11. package/languages/zh-CN.yml +155 -155
  12. package/languages/zh-HK.yml +155 -155
  13. package/languages/zh-TW.yml +155 -155
  14. package/layout/_alternate/atom.ejs +30 -30
  15. package/layout/_alternate/json.ejs +16 -16
  16. package/layout/_alternate/rss.ejs +34 -34
  17. package/layout/_mixin/breadcrumb.pug +33 -33
  18. package/layout/_mixin/card.pug +37 -37
  19. package/layout/_mixin/comment.pug +6 -6
  20. package/layout/_mixin/postmeta.pug +29 -29
  21. package/layout/_mixin/segment.pug +35 -35
  22. package/layout/_mixin/sidebar.pug +40 -40
  23. package/layout/_mixin/widgets.pug +28 -28
  24. package/layout/_partials/footer.pug +43 -43
  25. package/layout/_partials/head/head.pug +50 -50
  26. package/layout/_partials/head/head_com.pug +24 -24
  27. package/layout/_partials/head/pwa.pug +18 -18
  28. package/layout/_partials/header.pug +18 -18
  29. package/layout/_partials/layout.pug +137 -137
  30. package/layout/_partials/loading.pug +13 -13
  31. package/layout/_partials/pagination.pug +4 -4
  32. package/layout/_partials/post/copyright.pug +20 -20
  33. package/layout/_partials/post/footer.pug +20 -20
  34. package/layout/_partials/post/nav.pug +17 -17
  35. package/layout/_partials/post/post.pug +42 -42
  36. package/layout/_partials/post/reward.pug +18 -18
  37. package/layout/_partials/sidebar/menu.pug +37 -37
  38. package/layout/_partials/sidebar/overview.pug +42 -42
  39. package/layout/_partials/third-party/baidu-analytics.pug +11 -11
  40. package/layout/_partials/third-party/clarity.pug +8 -8
  41. package/layout/_partials/third-party/google-analytics.pug +9 -9
  42. package/layout/archive.pug +121 -121
  43. package/layout/category.pug +62 -62
  44. package/layout/index.pug +36 -36
  45. package/layout/page.pug +60 -60
  46. package/layout/post.pug +42 -42
  47. package/layout/tag.pug +46 -46
  48. package/package.json +13 -12
  49. package/scripts/generaters/images.js +11 -13
  50. package/scripts/generaters/script.js +3 -1
  51. package/scripts/plugin/check.js +48 -10
  52. package/scripts/plugin/index.js +2 -2
  53. package/source/assets/algolia_logo.svg +9 -9
  54. package/source/assets/logo.svg +16 -16
  55. package/source/css/_colors.styl +207 -207
  56. package/source/css/_common/components/components.styl +5 -6
  57. package/source/css/_common/components/pages/collapse.styl +119 -119
  58. package/source/css/_common/components/pages/home.styl +391 -391
  59. package/source/css/_common/components/pages/pages.styl +56 -56
  60. package/source/css/_common/components/pages/tag-cloud.styl +12 -12
  61. package/source/css/_common/components/post/breadcrumb.styl +39 -39
  62. package/source/css/_common/components/post/copyright.styl +41 -41
  63. package/source/css/_common/components/post/expand.styl +263 -263
  64. package/source/css/_common/components/post/footer.styl +11 -11
  65. package/source/css/_common/components/post/header.styl +79 -79
  66. package/source/css/_common/components/post/nav.styl +64 -64
  67. package/source/css/_common/components/post/post.styl +29 -29
  68. package/source/css/_common/components/post/reward.styl +50 -50
  69. package/source/css/_common/components/post/rtl.styl +12 -12
  70. package/source/css/_common/components/post/tags.styl +39 -39
  71. package/source/css/_common/components/tags/collapse.styl +72 -72
  72. package/source/css/_common/components/tags/container.styl +49 -49
  73. package/source/css/_common/components/tags/label.styl +12 -12
  74. package/source/css/_common/components/tags/links.styl +77 -77
  75. package/source/css/_common/components/tags/list.styl +131 -131
  76. package/source/css/_common/components/tags/note.styl +70 -70
  77. package/source/css/_common/components/tags/player.styl +361 -361
  78. package/source/css/_common/components/tags/quiz.styl +200 -200
  79. package/source/css/_common/components/tags/tabs.styl +89 -89
  80. package/source/css/_common/components/tags/tags.styl +9 -9
  81. package/source/css/_common/components/third-party/loading.styl +222 -222
  82. package/source/css/_common/components/third-party/mermaid/class.styl +90 -90
  83. package/source/css/_common/components/third-party/mermaid/flowchart.styl +72 -72
  84. package/source/css/_common/components/third-party/mermaid/gantt.styl +251 -251
  85. package/source/css/_common/components/third-party/mermaid/git.styl +7 -7
  86. package/source/css/_common/components/third-party/mermaid/mermaid.styl +37 -37
  87. package/source/css/_common/components/third-party/mermaid/pie.styl +9 -9
  88. package/source/css/_common/components/third-party/mermaid/sequence.styl +95 -95
  89. package/source/css/_common/components/third-party/mermaid/state.styl +130 -130
  90. package/source/css/_common/components/third-party/pace.styl +18 -18
  91. package/source/css/_common/components/third-party/search.styl +167 -167
  92. package/source/css/_common/components/third-party/theme.styl +151 -151
  93. package/source/css/_common/components/third-party/third-party.styl +22 -22
  94. package/source/css/_common/components/third-party/widgets.styl +57 -57
  95. package/source/css/_common/outline/footer/footer.styl +67 -67
  96. package/source/css/_common/outline/header/brand.styl +77 -77
  97. package/source/css/_common/outline/header/header.styl +20 -20
  98. package/source/css/_common/outline/header/image.styl +85 -85
  99. package/source/css/_common/outline/header/menu.styl +117 -117
  100. package/source/css/_common/outline/header/nav.styl +81 -81
  101. package/source/css/_common/outline/header/right.styl +15 -15
  102. package/source/css/_common/outline/header/tool.styl +207 -207
  103. package/source/css/_common/outline/header/waves.styl +57 -57
  104. package/source/css/_common/outline/mobile.styl +46 -46
  105. package/source/css/_common/outline/outline.styl +78 -78
  106. package/source/css/_common/outline/sidebar/author.styl +59 -59
  107. package/source/css/_common/outline/sidebar/dimmer.styl +23 -23
  108. package/source/css/_common/outline/sidebar/menu.styl +63 -63
  109. package/source/css/_common/outline/sidebar/quick.styl +43 -43
  110. package/source/css/_common/outline/sidebar/related.styl +56 -56
  111. package/source/css/_common/outline/sidebar/sidebar.styl +82 -82
  112. package/source/css/_common/outline/sidebar/social.styl +69 -69
  113. package/source/css/_common/outline/sidebar/state.styl +37 -37
  114. package/source/css/_common/outline/sidebar/tab.styl +71 -71
  115. package/source/css/_common/outline/sidebar/toc.styl +47 -47
  116. package/source/css/_common/scaffolding/animate.styl +322 -322
  117. package/source/css/_common/scaffolding/base.styl +192 -190
  118. package/source/css/_common/scaffolding/buttons.styl +48 -48
  119. package/source/css/_common/scaffolding/divider.styl +36 -36
  120. package/source/css/_common/scaffolding/iconfont.styl +443 -443
  121. package/source/css/_common/scaffolding/normalize.styl +273 -273
  122. package/source/css/_common/scaffolding/pagination.styl +81 -81
  123. package/source/css/_common/scaffolding/ribbon.styl +38 -38
  124. package/source/css/_common/scaffolding/scaffolding.styl +14 -14
  125. package/source/css/_common/scaffolding/scrollbar.styl +37 -37
  126. package/source/css/_common/scaffolding/tables.styl +50 -50
  127. package/source/css/_common/scaffolding/tip.styl +19 -19
  128. package/source/css/_common/scaffolding/toggles.styl +59 -59
  129. package/source/css/_iconfont.styl +455 -455
  130. package/source/css/_mixins.styl +148 -148
  131. package/source/css/_variables.styl +89 -89
  132. package/source/css/app.styl +25 -25
  133. package/source/css/mermaid.styl +5 -5
  134. package/source/css/page.styl +2 -2
  135. package/source/css/post.styl +6 -5
  136. package/source/css/scaffolding.styl +4 -4
  137. package/source/js/_app/components/cloudflare.ts +18 -18
  138. package/source/js/_app/components/comments.ts +88 -86
  139. package/source/js/_app/components/sidebar.ts +243 -243
  140. package/source/js/_app/components/tcomments.ts +53 -53
  141. package/source/js/_app/globals/globalVars.ts +84 -84
  142. package/source/js/_app/globals/handles.ts +124 -124
  143. package/source/js/_app/globals/themeColor.ts +62 -62
  144. package/source/js/_app/globals/thirdparty.ts +63 -63
  145. package/source/js/_app/globals/tools.ts +73 -73
  146. package/source/js/_app/library/anime.ts +121 -121
  147. package/source/js/_app/library/declare.d.ts +128 -126
  148. package/source/js/_app/library/proto.ts +70 -70
  149. package/source/js/_app/library/vue.ts +49 -49
  150. package/source/js/_app/page/common.ts +41 -41
  151. package/source/js/_app/page/imageviewer.ts +15 -15
  152. package/source/js/_app/page/post.ts +252 -248
  153. package/source/js/_app/page/search.ts +109 -109
  154. package/source/js/_app/page/tab.ts +59 -59
  155. package/source/js/_app/pjax/domInit.ts +102 -102
  156. package/source/js/_app/pjax/refresh.ts +117 -117
  157. package/source/js/_app/pjax/siteInit.ts +90 -90
  158. package/source/js/_app/player.ts +13 -13
  159. package/toolbox/compiler.mjs +49 -53
  160. package/toolbox/dev-version.mjs +14 -14
  161. package/toolbox/hoistdep.mjs +5 -5
  162. package/toolbox/lib.mjs +63 -63
  163. package/source/css/_common/components/highlight/highlight.styl +0 -357
  164. package/source/css/_common/components/highlight/operation.styl +0 -21
@@ -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" 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" 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" 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" 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,50 +1,50 @@
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
- != preloadjs()
45
- != load_async_css()
46
-
47
- if theme.modules.cloudflarePatch
48
- != _js('cf-patch.js')
49
-
50
- include pwa.pug
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
+ != preloadjs()
45
+ != load_async_css()
46
+
47
+ if theme.modules.cloudflarePatch
48
+ != _js('cf-patch.js')
49
+
50
+ include pwa.pug
@@ -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(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(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
+