hexo-theme-shokax 0.4.5 → 0.4.6-beta2

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 -54
  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 -124
  151. package/source/js/_app/globals/themeColor.ts +63 -63
  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 -130
  156. package/source/js/_app/library/dom.ts +28 -28
  157. package/source/js/_app/library/loadFile.js +43 -0
  158. package/source/js/_app/library/loadFile.ts +47 -50
  159. package/source/js/_app/library/proto.ts +137 -137
  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 -49
  164. package/source/js/_app/page/common.js +45 -0
  165. package/source/js/_app/page/common.ts +43 -43
  166. package/source/js/_app/page/fancybox.js +70 -0
  167. package/source/js/_app/page/fancybox.ts +72 -72
  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 -798
  181. package/toolbox/compiler.mjs +73 -0
  182. package/toolbox/hoistdep.mjs +6 -0
  183. package/toolbox/lib.mjs +43 -0
@@ -1,140 +1,140 @@
1
- include ../_mixin/breadcrumb.pug
2
- include ../_mixin/sidebar.pug
3
- include ../_mixin/widgets.pug
4
-
5
- - ignores = []
6
- if (theme.quicklink.ignores)
7
- - ignores.push(theme.quicklink.ignores)
8
-
9
- - var covers = _cover_index(page, 6)
10
- - var enableFixedCover = theme.homeConfig?.fixedCover
11
-
12
- doctype html
13
- html(lang=page.language?page.language:config.language, style=theme.grayMode ? 'filter: grayscale(1);':'' )
14
- head
15
- != partial('_partials/head/head.pug', {}, {cache: true})
16
- if enableFixedCover
17
- link(rel="preload" href=theme.homeConfig.fixedCover as="image" fetchpriority="high")
18
- else
19
- each image in covers
20
- link(rel="preload" href=image as="image" fetchpriority="high")
21
-
22
- != partial('_partials/head/head_com.pug')
23
- != shokax_inject('head')
24
- title
25
- block title
26
- != `${alternate?alternate + " = ":""}${title}${subtitle?" = "+subtitle:""}`
27
- body(itemscope itemtype="http://schema.org/WebPage")
28
- != partial('_partials/loading.pug', {}, {cache: true})
29
- div(id="container")
30
- header(id="header" itemscope itemtype="http://schema.org/WPHeader")
31
- div(class="inner")
32
- div(id="brand")
33
- div(class="pjax")
34
- block header
35
- a(href=config.root class="logo" rel="start")
36
- if alternate
37
- p(class="artboard")
38
- != alternate
39
- h1(itemprop="name headline" class="title")
40
- != title
41
- if subtitle
42
- p(class="meta" itemprop="description")
43
- != `= ${subtitle} =`
44
-
45
- != partial('_partials/header.pug', {}, {cache: true})
46
- div(id="imgs" class="pjax")
47
- if theme.homeConfig.gradient || enableFixedCover
48
- //- cover不可用时用Bing随机图片代替
49
- - var coverImage = theme.homeConfig?.fixedCover || "https://7ed.net/bing/api"
50
- img(src=coverImage loading="eager" decoding="async" fetchpriority="high" alt=title)
51
- else
52
- if covers.length === 6
53
- ul
54
- each image in covers
55
- li(class="item" style=`background-image: url("${image}");`)
56
- else
57
- img(src=covers loading="eager" decoding="async" fetchpriority="high" alt=title)
58
- div(id="waves")
59
- svg(class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto")
60
- defs
61
- path(id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z")
62
- g(class="parallax")
63
- use(xlink:href="#gentle-wave" x="48" y="0")
64
- use(xlink:href="#gentle-wave" x="48" y="3")
65
- use(xlink:href="#gentle-wave" x="48" y="5")
66
- use(xlink:href="#gentle-wave" x="48" y="7")
67
- main
68
- div(class="inner")
69
- div(id="main" class="pjax")
70
- block content
71
- div(id="sidebar")
72
- block sidebar
73
- +sidebarRender
74
- div(class="dimmer")
75
- footer(id="footer")
76
- div(class="inner")
77
- div(class="widgets")
78
- +WRender
79
- != partial('_partials/footer.pug', {}, {cache: true})
80
- - var ccIcon = '<i class="ic i-creative-commons"></i>'
81
- - var ccText = theme.creative_commons.license.toUpperCase()
82
- - var audioValue
83
- if page.audio
84
- - audioValue = JSON.stringify(page.audio);
85
-
86
- else if page.audio === false
87
- - audioValue = JSON.stringify({});
88
- else
89
- - audioValue = "undefined"
90
-
91
- script(data-config type="text/javascript").
92
- var LOCAL = {
93
- ispost: !{is_post()},
94
- path: `#{_permapath(page.path)}`,
95
- favicon: {
96
- show: `#{__('favicon.show')}`,
97
- hide: `#{__('favicon.hide')}`
98
- },
99
- search: {
100
- placeholder: "!{__('search.placeholder')}",
101
- empty: "!{__('search.empty')}",
102
- stats: "!{__('search.stats')}"
103
- },
104
- copy_tex: #{!!page.math},
105
- katex: #{!!page.math},
106
- mermaid: #{!!page.mermaid},
107
- audio: !{audioValue},
108
- fancybox: #{page.fancybox !== false},
109
- nocopy: #{!!page.nocopy},
110
- outime: #{page.outime !== false},
111
- template: `!{__('outime.template')}`,
112
- quiz: {
113
- choice: `#{__('quiz.choice')}`,
114
- multiple: `#{__('quiz.multiple')}`,
115
- true_false: `#{__('quiz.true_false')}`,
116
- essay: `#{__('quiz.essay')}`,
117
- gap_fill: `#{__('quiz.gap_fill')}`,
118
- mistake: `#{__('quiz.mistake')}`
119
- },
120
- ignores: [
121
- (uri) => uri.includes('#'),
122
- (uri) => new RegExp(LOCAL.path + '$').test(uri),
123
- !{JSON.stringify(ignores)}
124
- ]
125
- };
126
-
127
- != partial('_partials/third-party/baidu-analytics.pug', {}, {cache: true})
128
- != partial('_partials/third-party/clarity.pug', {}, {cache: true})
129
- != partial('_partials/third-party/google-analytics.pug', {}, {cache: true})
130
-
131
- != vendor_js()
132
- if theme.polyfill.enable
133
- script(src=`https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?version=4.8.0&features=${theme.polyfill.features}` defer)
134
-
135
- != _js('siteInit.js')
136
-
137
- != shokax_inject('bodyEnd')
138
-
139
-
140
-
1
+ include ../_mixin/breadcrumb.pug
2
+ include ../_mixin/sidebar.pug
3
+ include ../_mixin/widgets.pug
4
+
5
+ - ignores = []
6
+ if (theme.quicklink.ignores)
7
+ - ignores.push(theme.quicklink.ignores)
8
+
9
+ - var covers = _cover_index(page, 6)
10
+ - var enableFixedCover = theme.homeConfig?.fixedCover
11
+
12
+ doctype html
13
+ html(lang=page.language?page.language:config.language, style=theme.grayMode ? 'filter: grayscale(1);':'' )
14
+ head
15
+ != partial('_partials/head/head.pug', {}, {cache: true})
16
+ if enableFixedCover
17
+ link(rel="preload" href=theme.homeConfig.fixedCover as="image" fetchpriority="high")
18
+ else
19
+ each image in covers
20
+ link(rel="preload" href=image as="image" fetchpriority="high")
21
+
22
+ != partial('_partials/head/head_com.pug')
23
+ != shokax_inject('head')
24
+ title
25
+ block title
26
+ != `${alternate?alternate + " = ":""}${title}${subtitle?" = "+subtitle:""}`
27
+ body(itemscope itemtype="http://schema.org/WebPage")
28
+ != partial('_partials/loading.pug', {}, {cache: true})
29
+ div(id="container")
30
+ header(id="header" itemscope itemtype="http://schema.org/WPHeader")
31
+ div(class="inner")
32
+ div(id="brand")
33
+ div(class="pjax")
34
+ block header
35
+ a(href=config.root class="logo" rel="start")
36
+ if alternate
37
+ p(class="artboard")
38
+ != alternate
39
+ h1(itemprop="name headline" class="title")
40
+ != title
41
+ if subtitle
42
+ p(class="meta" itemprop="description")
43
+ != `= ${subtitle} =`
44
+
45
+ != partial('_partials/header.pug', {}, {cache: true})
46
+ div(id="imgs" class="pjax")
47
+ if theme.homeConfig.gradient || enableFixedCover
48
+ //- cover不可用时用Bing随机图片代替
49
+ - var coverImage = theme.homeConfig?.fixedCover || "https://7ed.net/bing/api"
50
+ img(src=coverImage loading="eager" decoding="async" fetchpriority="high" alt=title)
51
+ else
52
+ if covers.length === 6
53
+ ul
54
+ each image in covers
55
+ li(class="item" style=`background-image: url("${image}");`)
56
+ else
57
+ img(src=covers loading="eager" decoding="async" fetchpriority="high" alt=title)
58
+ div(id="waves")
59
+ svg(class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto")
60
+ defs
61
+ path(id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z")
62
+ g(class="parallax")
63
+ use(xlink:href="#gentle-wave" x="48" y="0")
64
+ use(xlink:href="#gentle-wave" x="48" y="3")
65
+ use(xlink:href="#gentle-wave" x="48" y="5")
66
+ use(xlink:href="#gentle-wave" x="48" y="7")
67
+ main
68
+ div(class="inner")
69
+ div(id="main" class="pjax")
70
+ block content
71
+ div(id="sidebar")
72
+ block sidebar
73
+ +sidebarRender
74
+ div(class="dimmer")
75
+ footer(id="footer")
76
+ div(class="inner")
77
+ div(class="widgets")
78
+ +WRender
79
+ != partial('_partials/footer.pug', {}, {cache: true})
80
+ - var ccIcon = '<i class="ic i-creative-commons"></i>'
81
+ - var ccText = theme.creative_commons.license.toUpperCase()
82
+ - var audioValue
83
+ if page.audio
84
+ - audioValue = JSON.stringify(page.audio);
85
+
86
+ else if page.audio === false
87
+ - audioValue = JSON.stringify({});
88
+ else
89
+ - audioValue = "undefined"
90
+
91
+ script(data-config type="text/javascript").
92
+ var LOCAL = {
93
+ ispost: !{is_post()},
94
+ path: `#{_permapath(page.path)}`,
95
+ favicon: {
96
+ show: `#{__('favicon.show')}`,
97
+ hide: `#{__('favicon.hide')}`
98
+ },
99
+ search: {
100
+ placeholder: "!{__('search.placeholder')}",
101
+ empty: "!{__('search.empty')}",
102
+ stats: "!{__('search.stats')}"
103
+ },
104
+ copy_tex: #{!!page.math},
105
+ katex: #{!!page.math},
106
+ mermaid: #{!!page.mermaid},
107
+ audio: !{audioValue},
108
+ fancybox: #{page.fancybox !== false},
109
+ nocopy: #{!!page.nocopy},
110
+ outime: #{page.outime !== false},
111
+ template: `!{__('outime.template')}`,
112
+ quiz: {
113
+ choice: `#{__('quiz.choice')}`,
114
+ multiple: `#{__('quiz.multiple')}`,
115
+ true_false: `#{__('quiz.true_false')}`,
116
+ essay: `#{__('quiz.essay')}`,
117
+ gap_fill: `#{__('quiz.gap_fill')}`,
118
+ mistake: `#{__('quiz.mistake')}`
119
+ },
120
+ ignores: [
121
+ (uri) => uri.includes('#'),
122
+ (uri) => new RegExp(LOCAL.path + '$').test(uri),
123
+ !{JSON.stringify(ignores)}
124
+ ]
125
+ };
126
+
127
+ != partial('_partials/third-party/baidu-analytics.pug', {}, {cache: true})
128
+ != partial('_partials/third-party/clarity.pug', {}, {cache: true})
129
+ != partial('_partials/third-party/google-analytics.pug', {}, {cache: true})
130
+
131
+ != vendor_js()
132
+ if theme.polyfill.enable
133
+ script(src=`https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?version=4.8.0&features=${theme.polyfill.features}` defer)
134
+
135
+ != _js('siteInit.js')
136
+
137
+ != shokax_inject('bodyEnd')
138
+
139
+
140
+
@@ -1,13 +1,13 @@
1
- div(id="loading")
2
- div(class="cat")
3
- div(class="body")
4
- div(class="head")
5
- div(class="face")
6
- div(class="foot")
7
- div(class="tummy-end")
8
- div(class="bottom")
9
- div(class="legs left")
10
- div(class="legs right")
11
- div(class="paw")
12
- div(class="hands left")
13
- div(class="hands right")
1
+ div(id="loading")
2
+ div(class="cat")
3
+ div(class="body")
4
+ div(class="head")
5
+ div(class="face")
6
+ div(class="foot")
7
+ div(class="tummy-end")
8
+ div(class="bottom")
9
+ div(class="legs left")
10
+ div(class="legs right")
11
+ div(class="paw")
12
+ div(class="hands left")
13
+ div(class="hands right")
@@ -1,4 +1,4 @@
1
- if page.prev || page.next
2
- nav(class="pagination")
3
- div(class="inner")
4
- != paginator({prev_text: '<i class="ic i-angle-left" aria-label="' + __('accessibility.prev_page') + '"></i>',next_text: '<i class="ic i-angle-right" aria-label="' + __('accessibility.next_page') + '"></i>',mid_size : 1,escape : false})
1
+ if page.prev || page.next
2
+ nav(class="pagination")
3
+ div(class="inner")
4
+ != paginator({prev_text: '<i class="ic i-angle-left" aria-label="' + __('accessibility.prev_page') + '"></i>',next_text: '<i class="ic i-angle-right" aria-label="' + __('accessibility.next_page') + '"></i>',mid_size : 1,escape : false})
@@ -1,20 +1,20 @@
1
- if page.copyright !== false
2
- - var ccIcon = '<i class="ic i-creative-commons"><em>(CC)</em></i>'
3
- - var ccText = theme.creative_commons.license.toUpperCase()
4
- div(id="copyright")
5
- ul
6
- li(class="author")
7
- strong
8
- != __('post.copyright.author') + __('symbol.colon')
9
- != page.author || author
10
- i(class="ic i-at")
11
- em @
12
- != title
13
- li(class="link")
14
- strong
15
- != __('post.copyright.link') + __('symbol.colon')
16
- != _url(page.permalink, page.permalink, {title: page.title})
17
- li(class="license")
18
- strong
19
- != __('post.copyright.license_title') + __('symbol.colon')
20
- != page.copyright !== true ? __('post.copyright.license_content', _url(ccURL, ccIcon + ccText)) : __("post.copyright.nocopy")
1
+ if page.copyright !== false
2
+ - var ccIcon = '<i class="ic i-creative-commons"><em>(CC)</em></i>'
3
+ - var ccText = theme.creative_commons.license.toUpperCase()
4
+ div(id="copyright")
5
+ ul
6
+ li(class="author")
7
+ strong
8
+ != __('post.copyright.author') + __('symbol.colon')
9
+ != page.author || author
10
+ i(class="ic i-at")
11
+ em @
12
+ != title
13
+ li(class="link")
14
+ strong
15
+ != __('post.copyright.link') + __('symbol.colon')
16
+ != _url(page.permalink, page.permalink, {title: page.title})
17
+ li(class="license")
18
+ strong
19
+ != __('post.copyright.license_title') + __('symbol.colon')
20
+ != page.copyright !== true ? __('post.copyright.license_content', _url(ccURL, ccIcon + ccText)) : __("post.copyright.nocopy")
@@ -1,17 +1,17 @@
1
- div(class="meta")
2
- if date(post.date) !== date(post.updated) || time(post.date) !== time(post.updated)
3
- if theme.twikoo.enable || theme.waline.pageview
4
- span(class="icon")
5
- i(class="ic i-eye")
6
- span 此文章已被阅读次数:
7
- - var prefixedPath = post.path.startsWith('/') ? post.path : '/' + post.path
8
- span(id="twikoo_visitors" class="waline-pageview-count" data-path=prefixedPath) 正在加载...
9
- span(class="item")
10
- span(class="icon")
11
- i(class="ic i-calendar-check")
12
- span(class="text")
13
- != __('post.edited')
14
- time(title=__('post.modified') + __('symbol.colon') + full_date(post.updated) itemprop="dateModified" datetime=moment(post.updated).format())
15
- != date(post.updated)
16
-
17
- != shokax_inject('postMeta')
1
+ div(class="meta")
2
+ if date(post.date) !== date(post.updated) || time(post.date) !== time(post.updated)
3
+ if theme.twikoo.enable || theme.waline.pageview
4
+ span(class="icon")
5
+ i(class="ic i-eye")
6
+ span 此文章已被阅读次数:
7
+ - var prefixedPath = post.path.startsWith('/') ? post.path : '/' + post.path
8
+ span(id="twikoo_visitors" class="waline-pageview-count" data-path=prefixedPath) 正在加载...
9
+ span(class="item")
10
+ span(class="icon")
11
+ i(class="ic i-calendar-check")
12
+ span(class="text")
13
+ != __('post.edited')
14
+ time(title=__('post.modified') + __('symbol.colon') + full_date(post.updated) itemprop="dateModified" datetime=moment(post.updated).format())
15
+ != date(post.updated)
16
+
17
+ != shokax_inject('postMeta')
@@ -1,13 +1,13 @@
1
- mixin navpost(item, type)
2
- - var postText = item.title || item.link || __('post.untitled')
3
- - var lastcat = item.categories.last()
4
- - var itemlink = `<span class="type">${__('post.' + type)}</span>${lastcat && lastcat.name ? `<span class="category"><i class="ic i-flag"></i>${lastcat.name}</span>` : ''}<h3>${postText}</h3>`
5
- != _url(item.path, itemlink, {itemprop: 'url', rel: type, 'data-background-image': _cover(item), title: postText})
6
-
7
- div(class="post-nav")
8
- div(class="item left")
9
- if post.next
10
- +navpost(post.next, 'prev')
11
- div(class="item right")
12
- if post.prev
13
- +navpost(post.prev, 'next')
1
+ mixin navpost(item, type)
2
+ - var postText = item.title || item.link || __('post.untitled')
3
+ - var lastcat = item.categories.last()
4
+ - var itemlink = `<span class="type">${__('post.' + type)}</span>${lastcat && lastcat.name ? `<span class="category"><i class="ic i-flag"></i>${lastcat.name}</span>` : ''}<h3>${postText}</h3>`
5
+ != _url(item.path, itemlink, {itemprop: 'url', rel: type, 'data-background-image': _cover(item), title: postText})
6
+
7
+ div(class="post-nav")
8
+ div(class="item left")
9
+ if post.next
10
+ +navpost(post.next, 'prev')
11
+ div(class="item right")
12
+ if post.prev
13
+ +navpost(post.prev, 'next')
@@ -1,41 +1,41 @@
1
- - var temp = post.lang || config.language
2
- article(itemscope itemtype="http://schema.org/Article" class="post block" lang=temp)
3
- link(itemprop="mainEntityOfPage" href!=post.permalink)
4
- span(hidden itemprop="author" itemscope itemtype="http://schema.org/Person")
5
- meta(itemprop="image" content=url_for(theme.statics + theme.assets + '/' + theme.sidebar.avatar))
6
- meta(itemprop="name" content=author)
7
- meta(itemprop="description" content=`${ subtitle }, ${ description }`)
8
- span(hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization")
9
- meta(itemprop="name" content=title)
10
- div(class=`body md${post.direction && post.direction.toLowerCase() === 'rtl'? rtl:""}` itemprop="articleBody")
11
- if post.photos && post.photos.length
12
- div(class="gallery" itemscope itemtype="http://schema.org/ImageGallery")
13
- each photo in post.photos
14
- img(loading="lazy" decoding="async" data-src=_image_url(photo, post.path) itemprop="contentUrl")
15
- if theme.summary.enable && page.layout === 'post'
16
- div(class='tabs' id='summary')
17
- div(class="show-btn")
18
- div(class="nav")
19
- ul(class="special")
20
- div(class="tab" data-id="summary" data-title="自我介绍")
21
- p
22
- != get_introduce()
23
- div(class="tab active" data-id="summary" data-title="文章概括")
24
- p
25
- != get_summary(page)
26
-
27
-
28
- != post.content
29
- if post.tags && post.tags.length
30
- div(class="tags")
31
- each tag in post.tags.toArray()
32
- a(href!=url_for(tag.path) rel="tag")
33
- i(class="ic i-tag")
34
- != tag.name
35
- footer
36
- != partial('_partials/post/footer.pug')
37
- if theme.reward.enable
38
- != partial('_partials/post/reward.pug', {}, {cache: true})
39
- if theme.creative_commons.license
40
- != partial('_partials/post/copyright.pug')
41
- != shokax_inject('postBodyEnd')
1
+ - var temp = post.lang || config.language
2
+ article(itemscope itemtype="http://schema.org/Article" class="post block" lang=temp)
3
+ link(itemprop="mainEntityOfPage" href!=post.permalink)
4
+ span(hidden itemprop="author" itemscope itemtype="http://schema.org/Person")
5
+ meta(itemprop="image" content=url_for(theme.statics + theme.assets + '/' + theme.sidebar.avatar))
6
+ meta(itemprop="name" content=author)
7
+ meta(itemprop="description" content=`${ subtitle }, ${ description }`)
8
+ span(hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization")
9
+ meta(itemprop="name" content=title)
10
+ div(class=`body md${post.direction && post.direction.toLowerCase() === 'rtl'? rtl:""}` itemprop="articleBody")
11
+ if post.photos && post.photos.length
12
+ div(class="gallery" itemscope itemtype="http://schema.org/ImageGallery")
13
+ each photo in post.photos
14
+ img(loading="lazy" decoding="async" data-src=_image_url(photo, post.path) itemprop="contentUrl")
15
+ if theme.summary.enable && page.layout === 'post'
16
+ div(class='tabs' id='summary')
17
+ div(class="show-btn")
18
+ div(class="nav")
19
+ ul(class="special")
20
+ div(class="tab" data-id="summary" data-title="自我介绍")
21
+ p
22
+ != get_introduce()
23
+ div(class="tab active" data-id="summary" data-title="文章概括")
24
+ p
25
+ != get_summary(page)
26
+
27
+
28
+ != post.content
29
+ if post.tags && post.tags.length
30
+ div(class="tags")
31
+ each tag in post.tags.toArray()
32
+ a(href!=url_for(tag.path) rel="tag")
33
+ i(class="ic i-tag")
34
+ != tag.name
35
+ footer
36
+ != partial('_partials/post/footer.pug')
37
+ if theme.reward.enable
38
+ != partial('_partials/post/reward.pug', {}, {cache: true})
39
+ if theme.creative_commons.license
40
+ != partial('_partials/post/copyright.pug')
41
+ != shokax_inject('postBodyEnd')
@@ -1,18 +1,18 @@
1
- if page.reward !== false
2
- div(class="reward")
3
- button
4
- i(class="ic i-heartbeat")
5
- != __('reward.donate')
6
- p
7
- != __('reward.text')
8
- div(id="qr")
9
- each image, name in theme.reward.account
10
- - var builtin = ['wechatpay', 'alipay', 'paypal', 'bitcoin']
11
- if builtin.includes(name)
12
- - var translation = __('reward.' + name)
13
- else
14
- - var translation = name
15
- div
16
- img(loading="lazy" data-src=`${url_for(theme.statics + theme.assets + image) }` alt=`${ author } ${ translation }`)
17
- p
18
- != translation
1
+ if page.reward !== false
2
+ div(class="reward")
3
+ button
4
+ i(class="ic i-heartbeat")
5
+ != __('reward.donate')
6
+ p
7
+ != __('reward.text')
8
+ div(id="qr")
9
+ each image, name in theme.reward.account
10
+ - var builtin = ['wechatpay', 'alipay', 'paypal', 'bitcoin']
11
+ if builtin.includes(name)
12
+ - var translation = __('reward.' + name)
13
+ else
14
+ - var translation = name
15
+ div
16
+ img(loading="lazy" data-src=`${url_for(theme.statics + theme.assets + image) }` alt=`${ author } ${ translation }`)
17
+ p
18
+ != translation
@@ -1,37 +1,37 @@
1
- mixin item(name, path, parent, sublist)
2
- - var trimn = (str)=>{return str!=null?str.trim():"";}
3
- - var path = path.split('||')
4
- - var itemURL = path[0].trim()
5
- - if (!itemURL.startsWith('http')){ itemURL = itemURL.replace('//', '/') }
6
- - var menuIcon = '<i class="ic i-' + trimn(path[1]) + '"></i>'
7
- - var menuText = __('menu.' + name).replace('menu.', '')
8
- if parent
9
- li(class="item dropdown")
10
- if itemURL === '/'
11
- a(href="#" onclick="return false;")
12
- != menuIcon + menuText
13
- else
14
- != _url(itemURL, menuIcon + menuText, {rel: 'section'})
15
- ul(class="submenu")
16
- each subvalue, subname in sublist
17
- - var path = subvalue.split('||')
18
- - var itemURL = path[0].trim()
19
- - if (itemURL==='/') itemURL='javascript:void(0)'
20
- - var menuText = __('menu.' + subname).replace('menu.', '')
21
- if subname === 'default'
22
- - var menuText = __('menu.' + name).replace('menu.', '')
23
- else
24
- - var menuIcon = '<i class="ic i-' + trimn(path[1]) + '"></i>'
25
- li(class="item")
26
- != _url(itemURL, menuIcon + menuText, {rel: 'section'})
27
- else
28
- li(class="item")
29
- != _url(itemURL, menuIcon + menuText, {rel: 'section'})
30
-
31
- each value, name in theme.menu
32
- if value.toString() === '[object Object]'
33
- each subvalue, subname in value
34
- if subname === 'default'
35
- +item(name, subvalue, true, value)
36
- else
37
- +item(name, value)
1
+ mixin item(name, path, parent, sublist)
2
+ - var trimn = (str)=>{return str!=null?str.trim():"";}
3
+ - var path = path.split('||')
4
+ - var itemURL = path[0].trim()
5
+ - if (!itemURL.startsWith('http')){ itemURL = itemURL.replace('//', '/') }
6
+ - var menuIcon = '<i class="ic i-' + trimn(path[1]) + '"></i>'
7
+ - var menuText = __('menu.' + name).replace('menu.', '')
8
+ if parent
9
+ li(class="item dropdown")
10
+ if itemURL === '/'
11
+ a(href="#" onclick="return false;")
12
+ != menuIcon + menuText
13
+ else
14
+ != _url(itemURL, menuIcon + menuText, {rel: 'section'})
15
+ ul(class="submenu")
16
+ each subvalue, subname in sublist
17
+ - var path = subvalue.split('||')
18
+ - var itemURL = path[0].trim()
19
+ - if (itemURL==='/') itemURL='javascript:void(0)'
20
+ - var menuText = __('menu.' + subname).replace('menu.', '')
21
+ if subname === 'default'
22
+ - var menuText = __('menu.' + name).replace('menu.', '')
23
+ else
24
+ - var menuIcon = '<i class="ic i-' + trimn(path[1]) + '"></i>'
25
+ li(class="item")
26
+ != _url(itemURL, menuIcon + menuText, {rel: 'section'})
27
+ else
28
+ li(class="item")
29
+ != _url(itemURL, menuIcon + menuText, {rel: 'section'})
30
+
31
+ each value, name in theme.menu
32
+ if value.toString() === '[object Object]'
33
+ each subvalue, subname in value
34
+ if subname === 'default'
35
+ +item(name, subvalue, true, value)
36
+ else
37
+ +item(name, value)