hexo-theme-shokax 0.5.0 → 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 (165) 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 -53
  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 +14 -14
  49. package/scripts/generaters/images.js +11 -13
  50. package/scripts/generaters/script.js +3 -1
  51. package/scripts/helpers/engine.js +5 -0
  52. package/scripts/plugin/check.js +48 -10
  53. package/scripts/plugin/index.js +2 -2
  54. package/source/assets/algolia_logo.svg +9 -9
  55. package/source/assets/logo.svg +16 -16
  56. package/source/css/_colors.styl +207 -207
  57. package/source/css/_common/components/components.styl +5 -6
  58. package/source/css/_common/components/pages/collapse.styl +119 -119
  59. package/source/css/_common/components/pages/home.styl +391 -391
  60. package/source/css/_common/components/pages/pages.styl +56 -56
  61. package/source/css/_common/components/pages/tag-cloud.styl +12 -12
  62. package/source/css/_common/components/post/breadcrumb.styl +39 -39
  63. package/source/css/_common/components/post/copyright.styl +41 -41
  64. package/source/css/_common/components/post/expand.styl +263 -263
  65. package/source/css/_common/components/post/footer.styl +11 -11
  66. package/source/css/_common/components/post/header.styl +79 -79
  67. package/source/css/_common/components/post/nav.styl +64 -64
  68. package/source/css/_common/components/post/post.styl +29 -29
  69. package/source/css/_common/components/post/reward.styl +50 -50
  70. package/source/css/_common/components/post/rtl.styl +12 -12
  71. package/source/css/_common/components/post/tags.styl +39 -39
  72. package/source/css/_common/components/tags/collapse.styl +72 -72
  73. package/source/css/_common/components/tags/container.styl +49 -49
  74. package/source/css/_common/components/tags/label.styl +12 -12
  75. package/source/css/_common/components/tags/links.styl +77 -77
  76. package/source/css/_common/components/tags/list.styl +131 -131
  77. package/source/css/_common/components/tags/note.styl +70 -70
  78. package/source/css/_common/components/tags/player.styl +361 -361
  79. package/source/css/_common/components/tags/quiz.styl +200 -200
  80. package/source/css/_common/components/tags/tabs.styl +89 -89
  81. package/source/css/_common/components/tags/tags.styl +9 -9
  82. package/source/css/_common/components/third-party/loading.styl +222 -222
  83. package/source/css/_common/components/third-party/mermaid/class.styl +90 -90
  84. package/source/css/_common/components/third-party/mermaid/flowchart.styl +72 -72
  85. package/source/css/_common/components/third-party/mermaid/gantt.styl +251 -251
  86. package/source/css/_common/components/third-party/mermaid/git.styl +7 -7
  87. package/source/css/_common/components/third-party/mermaid/mermaid.styl +37 -37
  88. package/source/css/_common/components/third-party/mermaid/pie.styl +9 -9
  89. package/source/css/_common/components/third-party/mermaid/sequence.styl +95 -95
  90. package/source/css/_common/components/third-party/mermaid/state.styl +130 -130
  91. package/source/css/_common/components/third-party/pace.styl +18 -18
  92. package/source/css/_common/components/third-party/search.styl +167 -167
  93. package/source/css/_common/components/third-party/theme.styl +151 -151
  94. package/source/css/_common/components/third-party/third-party.styl +22 -22
  95. package/source/css/_common/components/third-party/widgets.styl +57 -57
  96. package/source/css/_common/outline/footer/footer.styl +67 -67
  97. package/source/css/_common/outline/header/brand.styl +77 -77
  98. package/source/css/_common/outline/header/header.styl +20 -20
  99. package/source/css/_common/outline/header/image.styl +85 -85
  100. package/source/css/_common/outline/header/menu.styl +117 -117
  101. package/source/css/_common/outline/header/nav.styl +81 -81
  102. package/source/css/_common/outline/header/right.styl +15 -15
  103. package/source/css/_common/outline/header/tool.styl +207 -207
  104. package/source/css/_common/outline/header/waves.styl +57 -57
  105. package/source/css/_common/outline/mobile.styl +46 -46
  106. package/source/css/_common/outline/outline.styl +78 -78
  107. package/source/css/_common/outline/sidebar/author.styl +59 -59
  108. package/source/css/_common/outline/sidebar/dimmer.styl +23 -23
  109. package/source/css/_common/outline/sidebar/menu.styl +63 -63
  110. package/source/css/_common/outline/sidebar/quick.styl +43 -43
  111. package/source/css/_common/outline/sidebar/related.styl +56 -56
  112. package/source/css/_common/outline/sidebar/sidebar.styl +82 -82
  113. package/source/css/_common/outline/sidebar/social.styl +69 -69
  114. package/source/css/_common/outline/sidebar/state.styl +37 -37
  115. package/source/css/_common/outline/sidebar/tab.styl +71 -71
  116. package/source/css/_common/outline/sidebar/toc.styl +47 -47
  117. package/source/css/_common/scaffolding/animate.styl +322 -322
  118. package/source/css/_common/scaffolding/base.styl +192 -190
  119. package/source/css/_common/scaffolding/buttons.styl +48 -48
  120. package/source/css/_common/scaffolding/divider.styl +36 -36
  121. package/source/css/_common/scaffolding/iconfont.styl +443 -443
  122. package/source/css/_common/scaffolding/normalize.styl +273 -273
  123. package/source/css/_common/scaffolding/pagination.styl +81 -81
  124. package/source/css/_common/scaffolding/ribbon.styl +38 -38
  125. package/source/css/_common/scaffolding/scaffolding.styl +14 -14
  126. package/source/css/_common/scaffolding/scrollbar.styl +37 -37
  127. package/source/css/_common/scaffolding/tables.styl +50 -50
  128. package/source/css/_common/scaffolding/tip.styl +19 -19
  129. package/source/css/_common/scaffolding/toggles.styl +59 -59
  130. package/source/css/_iconfont.styl +455 -455
  131. package/source/css/_mixins.styl +148 -148
  132. package/source/css/_variables.styl +89 -89
  133. package/source/css/app.styl +25 -25
  134. package/source/css/mermaid.styl +5 -5
  135. package/source/css/page.styl +2 -2
  136. package/source/css/post.styl +6 -5
  137. package/source/css/scaffolding.styl +4 -4
  138. package/source/js/_app/components/cloudflare.ts +18 -18
  139. package/source/js/_app/components/comments.ts +88 -86
  140. package/source/js/_app/components/sidebar.ts +243 -243
  141. package/source/js/_app/components/tcomments.ts +53 -53
  142. package/source/js/_app/globals/globalVars.ts +84 -84
  143. package/source/js/_app/globals/handles.ts +124 -124
  144. package/source/js/_app/globals/themeColor.ts +62 -62
  145. package/source/js/_app/globals/thirdparty.ts +63 -63
  146. package/source/js/_app/globals/tools.ts +73 -73
  147. package/source/js/_app/library/anime.ts +121 -121
  148. package/source/js/_app/library/declare.d.ts +128 -126
  149. package/source/js/_app/library/proto.ts +70 -70
  150. package/source/js/_app/library/vue.ts +49 -49
  151. package/source/js/_app/page/common.ts +41 -41
  152. package/source/js/_app/page/imageviewer.ts +15 -15
  153. package/source/js/_app/page/post.ts +252 -248
  154. package/source/js/_app/page/search.ts +109 -109
  155. package/source/js/_app/page/tab.ts +59 -59
  156. package/source/js/_app/pjax/domInit.ts +102 -102
  157. package/source/js/_app/pjax/refresh.ts +117 -117
  158. package/source/js/_app/pjax/siteInit.ts +90 -90
  159. package/source/js/_app/player.ts +13 -13
  160. package/toolbox/compiler.mjs +49 -53
  161. package/toolbox/dev-version.mjs +14 -14
  162. package/toolbox/hoistdep.mjs +5 -5
  163. package/toolbox/lib.mjs +63 -63
  164. package/source/css/_common/components/highlight/highlight.styl +0 -357
  165. package/source/css/_common/components/highlight/operation.styl +0 -21
@@ -1,137 +1,137 @@
1
- include ../_mixin/breadcrumb.pug
2
- include ../_mixin/sidebar.pug
3
- include ../_mixin/widgets.pug
4
-
5
- - var covers = _cover_index(page, 6)
6
- - var enableFixedCover = theme.homeConfig?.fixedCover
7
- - var enablePreload = theme.homeConfig?.coverConfig?.enablePreload
8
- - var enableCover = theme.homeConfig?.coverConfig?.enableCover
9
-
10
- doctype html
11
- html(lang=page.language?page.language:config.language, style=theme.grayMode ? 'filter: grayscale(1);':'' )
12
- head
13
- != partial('_partials/head/head.pug', {}, {cache: true})
14
- if enablePreload && enableCover
15
- if enableFixedCover
16
- link(rel="preload" href=theme.homeConfig.fixedCover as="image" fetchpriority="high")
17
- else if Array.isArray(covers)
18
- each image in covers
19
- link(rel="preload" href!=image as="image" fetchpriority="high")
20
- else
21
- link(rel="preload" href!=covers as="image" fetchpriority="high")
22
-
23
- != partial('_partials/head/head_com.pug')
24
- != shokax_inject('head')
25
- block head
26
- title
27
- block title
28
- != `${alternate?alternate + " = ":""}${title}${subtitle?" = "+subtitle:""}`
29
- body(itemscope itemtype="http://schema.org/WebPage")
30
- != partial('_partials/loading.pug', {}, {cache: true})
31
- div(id="container")
32
- header(id="header" itemscope itemtype="http://schema.org/WPHeader")
33
- div(class="inner")
34
- div(id="brand")
35
- div(class="pjax")
36
- block header
37
- a(href=config.root class="logo" rel="start")
38
- if alternate
39
- p(class="artboard")
40
- != alternate
41
- h1(itemprop="name headline" class="title")
42
- != title
43
- if subtitle
44
- p(class="meta" itemprop="description")
45
- != `= ${subtitle} =`
46
-
47
- != partial('_partials/header.pug', {}, {cache: true})
48
- div(id="imgs" class="pjax")
49
- if enableCover
50
- if theme.homeConfig.gradient || enableFixedCover
51
- //- cover不可用时用Bing随机图片代替
52
- - var coverImage = theme.homeConfig?.fixedCover || "https://7ed.net/bing/api"
53
- img(src=coverImage loading="eager" decoding="async" fetchpriority="high" alt=title)
54
- else
55
- if covers.length === 6
56
- ul
57
- each image in covers
58
- li(class="item" style=`background-image: url("${image}");`)
59
- else
60
- img(src=covers loading="eager" decoding="async" fetchpriority="high" alt=title)
61
- div(id="waves")
62
- 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")
63
- defs
64
- 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")
65
- g(class="parallax")
66
- use(xlink:href="#gentle-wave" x="48" y="0")
67
- use(xlink:href="#gentle-wave" x="48" y="3")
68
- use(xlink:href="#gentle-wave" x="48" y="5")
69
- use(xlink:href="#gentle-wave" x="48" y="7")
70
- main
71
- div(class="inner")
72
- div(id="main" class="pjax")
73
- block content
74
- div(id="sidebar")
75
- block sidebar
76
- +sidebarRender
77
- div(class="dimmer")
78
- div(id="player")
79
- footer(id="footer")
80
- div(class="inner")
81
- div(class="widgets")
82
- +WRender
83
- != partial('_partials/footer.pug', {}, {cache: true})
84
- - var ccIcon = '<i class="ic i-creative-commons"></i>'
85
- - var ccText = theme.creative_commons.license.toUpperCase()
86
- - var audioValue
87
- if page.audio
88
- - audioValue = JSON.stringify(page.audio);
89
-
90
- else if page.audio === false
91
- - audioValue = JSON.stringify({});
92
- else
93
- - audioValue = "undefined"
94
-
95
- - var ccIcon = '<i class="ic i-creative-commons"></i>'
96
- - var ccText = theme.creative_commons.license.toUpperCase()
97
- script(data-config type="text/javascript").
98
- var LOCAL = {
99
- ispost: !{is_post()},
100
- path: `#{_permapath(page.path)}`,
101
- favicon: {
102
- show: `#{__('favicon.show')}`,
103
- hide: `#{__('favicon.hide')}`
104
- },
105
- search: {
106
- placeholder: "!{__('search.placeholder')}",
107
- empty: "!{__('search.empty')}",
108
- stats: "!{__('search.stats')}"
109
- },
110
- nocopy: "!{!!page.nocopy}",
111
- copyright: `!{page.copyright !== false ? (page.nocopy === true ? __("tips.nocopy") : __("tips.copyright", ccIcon + ccText)) : undefined}`,
112
- copy_tex: #{!!page.math},
113
- katex: #{!!page.math},
114
- mermaid: #{!!page.mermaid},
115
- audio: !{audioValue},
116
- nocopy: #{!!page.nocopy},
117
- outime: #{page.outime !== false},
118
- template: `!{__('outime.template')}`,
119
- quiz: {
120
- choice: `#{__('quiz.choice')}`,
121
- multiple: `#{__('quiz.multiple')}`,
122
- true_false: `#{__('quiz.true_false')}`,
123
- essay: `#{__('quiz.essay')}`,
124
- gap_fill: `#{__('quiz.gap_fill')}`,
125
- mistake: `#{__('quiz.mistake')}`
126
- }
127
- };
128
-
129
- != partial('_partials/third-party/baidu-analytics.pug', {}, {cache: true})
130
- != partial('_partials/third-party/clarity.pug', {}, {cache: true})
131
- != partial('_partials/third-party/google-analytics.pug', {}, {cache: true})
132
-
133
- != _js('siteInit.js')
134
-
135
- != shokax_inject('bodyEnd')
136
-
137
-
1
+ include ../_mixin/breadcrumb.pug
2
+ include ../_mixin/sidebar.pug
3
+ include ../_mixin/widgets.pug
4
+
5
+ - var covers = _cover_index(page, 6)
6
+ - var enableFixedCover = theme.homeConfig?.fixedCover
7
+ - var enablePreload = theme.homeConfig?.coverConfig?.enablePreload
8
+ - var enableCover = theme.homeConfig?.coverConfig?.enableCover
9
+
10
+ doctype html
11
+ html(lang=page.language?page.language:config.language, style=theme.grayMode ? 'filter: grayscale(1);':'' )
12
+ head
13
+ != partial('_partials/head/head.pug', {}, {cache: true})
14
+ if enablePreload && enableCover
15
+ if enableFixedCover
16
+ link(rel="preload" href=theme.homeConfig.fixedCover as="image" fetchpriority="high")
17
+ else if Array.isArray(covers)
18
+ each image in covers
19
+ link(rel="preload" href!=image as="image" fetchpriority="high")
20
+ else
21
+ link(rel="preload" href!=covers as="image" fetchpriority="high")
22
+
23
+ != partial('_partials/head/head_com.pug')
24
+ != shokax_inject('head')
25
+ block head
26
+ title
27
+ block title
28
+ != `${alternate?alternate + " = ":""}${title}${subtitle?" = "+subtitle:""}`
29
+ body(itemscope itemtype="http://schema.org/WebPage")
30
+ != partial('_partials/loading.pug', {}, {cache: true})
31
+ div(id="container")
32
+ header(id="header" itemscope itemtype="http://schema.org/WPHeader")
33
+ div(class="inner")
34
+ div(id="brand")
35
+ div(class="pjax")
36
+ block header
37
+ a(href=config.root class="logo" rel="start")
38
+ if alternate
39
+ p(class="artboard")
40
+ != alternate
41
+ h1(itemprop="name headline" class="title")
42
+ != title
43
+ if subtitle
44
+ p(class="meta" itemprop="description")
45
+ != `= ${subtitle} =`
46
+
47
+ != partial('_partials/header.pug', {}, {cache: true})
48
+ div(id="imgs" class="pjax")
49
+ if enableCover
50
+ if theme.homeConfig.gradient || enableFixedCover
51
+ //- cover不可用时用Bing随机图片代替
52
+ - var coverImage = theme.homeConfig?.fixedCover || "https://7ed.net/bing/api"
53
+ img(src=coverImage loading="eager" decoding="async" fetchpriority="high" alt=title)
54
+ else
55
+ if covers.length === 6
56
+ ul
57
+ each image in covers
58
+ li(class="item" style=`background-image: url("${image}");`)
59
+ else
60
+ img(src=covers loading="eager" decoding="async" fetchpriority="high" alt=title)
61
+ div(id="waves")
62
+ 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")
63
+ defs
64
+ 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")
65
+ g(class="parallax")
66
+ use(xlink:href="#gentle-wave" x="48" y="0")
67
+ use(xlink:href="#gentle-wave" x="48" y="3")
68
+ use(xlink:href="#gentle-wave" x="48" y="5")
69
+ use(xlink:href="#gentle-wave" x="48" y="7")
70
+ main
71
+ div(class="inner")
72
+ div(id="main" class="pjax")
73
+ block content
74
+ div(id="sidebar")
75
+ block sidebar
76
+ +sidebarRender
77
+ div(class="dimmer")
78
+ div(id="player")
79
+ footer(id="footer")
80
+ div(class="inner")
81
+ div(class="widgets")
82
+ +WRender
83
+ != partial('_partials/footer.pug', {}, {cache: true})
84
+ - var ccIcon = '<i class="ic i-creative-commons"></i>'
85
+ - var ccText = theme.creative_commons.license.toUpperCase()
86
+ - var audioValue
87
+ if page.audio
88
+ - audioValue = JSON.stringify(page.audio);
89
+
90
+ else if page.audio === false
91
+ - audioValue = JSON.stringify({});
92
+ else
93
+ - audioValue = "undefined"
94
+
95
+ - var ccIcon = '<i class="ic i-creative-commons"></i>'
96
+ - var ccText = theme.creative_commons.license.toUpperCase()
97
+ script(data-config type="text/javascript").
98
+ var LOCAL = {
99
+ ispost: !{is_post()},
100
+ path: `#{_permapath(page.path)}`,
101
+ favicon: {
102
+ show: `#{__('favicon.show')}`,
103
+ hide: `#{__('favicon.hide')}`
104
+ },
105
+ search: {
106
+ placeholder: "!{__('search.placeholder')}",
107
+ empty: "!{__('search.empty')}",
108
+ stats: "!{__('search.stats')}"
109
+ },
110
+ nocopy: "!{!!page.nocopy}",
111
+ copyright: `!{page.copyright !== false ? (page.nocopy === true ? __("tips.nocopy") : __("tips.copyright", ccIcon + ccText)) : undefined}`,
112
+ copy_tex: #{!!page.math},
113
+ katex: #{!!page.math},
114
+ mermaid: #{!!page.mermaid},
115
+ audio: !{audioValue},
116
+ nocopy: #{!!page.nocopy},
117
+ outime: #{page.outime !== false},
118
+ template: `!{__('outime.template')}`,
119
+ quiz: {
120
+ choice: `#{__('quiz.choice')}`,
121
+ multiple: `#{__('quiz.multiple')}`,
122
+ true_false: `#{__('quiz.true_false')}`,
123
+ essay: `#{__('quiz.essay')}`,
124
+ gap_fill: `#{__('quiz.gap_fill')}`,
125
+ mistake: `#{__('quiz.mistake')}`
126
+ }
127
+ };
128
+
129
+ != partial('_partials/third-party/baidu-analytics.pug', {}, {cache: true})
130
+ != partial('_partials/third-party/clarity.pug', {}, {cache: true})
131
+ != partial('_partials/third-party/google-analytics.pug', {}, {cache: true})
132
+
133
+ != _js('siteInit.js')
134
+
135
+ != shokax_inject('bodyEnd')
136
+
137
+
@@ -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,20 +1,20 @@
1
- div(class="meta")
2
- if theme.twikoo.enable || theme.waline.pageview
3
- span(class="item")
4
- span(class="icon")
5
- i(class="ic i-eye")
6
- span(class="text")
7
- !=__('footer.total_views') + __('symbol.colon')
8
- - var prefixedPath = post.path.startsWith('/') ? post.path : '/' + post.path
9
- span(id="twikoo_visitors" class="waline-pageview-count" data-path=prefixedPath)
10
- !=__('footer.loading')
11
- if date(post.date) !== date(post.updated) || time(post.date) !== time(post.updated)
12
- span(class="item")
13
- span(class="icon")
14
- i(class="ic i-calendar-check")
15
- span(class="text")
16
- != __('post.edited') + __('symbol.space')
17
- time(title=__('post.modified') + __('symbol.colon') + full_date(post.updated) itemprop="dateModified" datetime=moment(post.updated).format())
18
- != date(post.updated)
19
-
20
- != shokax_inject('postMeta')
1
+ div(class="meta")
2
+ if theme.twikoo.enable || theme.waline.pageview
3
+ span(class="item")
4
+ span(class="icon")
5
+ i(class="ic i-eye")
6
+ span(class="text")
7
+ !=__('footer.total_views') + __('symbol.colon')
8
+ - var prefixedPath = post.path.startsWith('/') ? post.path : '/' + post.path
9
+ span(id="twikoo_visitors" class="waline-pageview-count" data-path=prefixedPath)
10
+ !=__('footer.loading')
11
+ if date(post.date) !== date(post.updated) || time(post.date) !== time(post.updated)
12
+ span(class="item")
13
+ span(class="icon")
14
+ i(class="ic i-calendar-check")
15
+ span(class="text")
16
+ != __('post.edited') + __('symbol.space')
17
+ time(title=__('post.modified') + __('symbol.colon') + full_date(post.updated) itemprop="dateModified" datetime=moment(post.updated).format())
18
+ != date(post.updated)
19
+
20
+ != shokax_inject('postMeta')
@@ -1,17 +1,17 @@
1
- mixin navpost(item, type)
2
- - var enableNextGradientCover = theme?.homeConfig?.coverConfig?.enableNextGradientCover
3
- - var postText = item.title || item.link || __('post.untitled')
4
- - var lastcat = item.categories.last()
5
- - 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>`
6
- if enableNextGradientCover
7
- != _url(item.path, itemlink, {itemprop: 'url', rel: type, title: postText, style: `background-image: linear-gradient(to bottom right, ${random_color()}, ${random_color()});`})
8
- else
9
- != _url(item.path, itemlink, {itemprop: 'url', rel: type, 'data-background-image': _cover(item), title: postText})
10
-
11
- div(class="post-nav")
12
- div(class="item left")
13
- if post.next
14
- +navpost(post.next, 'prev')
15
- div(class="item right")
16
- if post.prev
17
- +navpost(post.prev, 'next')
1
+ mixin navpost(item, type)
2
+ - var enableNextGradientCover = theme?.homeConfig?.coverConfig?.enableNextGradientCover
3
+ - var postText = item.title || item.link || __('post.untitled')
4
+ - var lastcat = item.categories.last()
5
+ - 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>`
6
+ if enableNextGradientCover
7
+ != _url(item.path, itemlink, {itemprop: 'url', rel: type, title: postText, style: `background-image: linear-gradient(to bottom right, ${random_color()}, ${random_color()});`})
8
+ else
9
+ != _url(item.path, itemlink, {itemprop: 'url', rel: type, 'data-background-image': _cover(item), title: postText})
10
+
11
+ div(class="post-nav")
12
+ div(class="item left")
13
+ if post.next
14
+ +navpost(post.next, 'prev')
15
+ div(class="item right")
16
+ if post.prev
17
+ +navpost(post.prev, 'next')
@@ -1,42 +1,42 @@
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" 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
-
42
- != 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" 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
+
42
+ != 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" 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" 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)