hexo-theme-solitude 1.3.0 → 1.4.0

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 (260) hide show
  1. package/.github/FUNDING.yml +13 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.yml +107 -0
  3. package/.github/ISSUE_TEMPLATE/config.yml +13 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.yml +14 -0
  5. package/.github/workflows/npm-publish.yml +21 -0
  6. package/CONTRIBUTING.md +0 -0
  7. package/LICENSE +0 -0
  8. package/README.md +60 -43
  9. package/README_EN.md +60 -42
  10. package/_config.yml +606 -444
  11. package/languages/en-US.yml +3 -23
  12. package/languages/zh-CN.yml +3 -23
  13. package/layout/404.pug +0 -0
  14. package/layout/archive.pug +2 -3
  15. package/layout/category.pug +0 -0
  16. package/layout/includes/body/mode.pug +35 -0
  17. package/layout/includes/console.pug +3 -3
  18. package/layout/includes/footer.pug +16 -15
  19. package/layout/includes/head/config.pug +38 -30
  20. package/layout/includes/head/opengraph.pug +0 -0
  21. package/layout/includes/head/pwa.pug +5 -44
  22. package/layout/includes/head.pug +3 -1
  23. package/layout/includes/header.pug +0 -0
  24. package/layout/includes/inject/body.pug +115 -63
  25. package/layout/includes/inject/head.pug +11 -46
  26. package/layout/includes/layout.pug +1 -1
  27. package/layout/includes/loading.pug +0 -0
  28. package/layout/includes/mixins/articleSort.pug +0 -0
  29. package/layout/includes/mixins/pagination.pug +0 -0
  30. package/layout/includes/nav.pug +1 -1
  31. package/layout/includes/page/about.pug +1 -1
  32. package/layout/includes/page/categories.pug +0 -0
  33. package/layout/includes/page/default.pug +0 -0
  34. package/layout/includes/page/equipment.pug +0 -0
  35. package/layout/includes/page/links.pug +2 -2
  36. package/layout/includes/page/music.pug +0 -0
  37. package/layout/includes/page/not_configured.pug +0 -0
  38. package/layout/includes/page/rss.pug +3 -3
  39. package/layout/includes/page/says.pug +15 -15
  40. package/layout/includes/page/tags.pug +0 -0
  41. package/layout/includes/page/tlink.pug +1 -0
  42. package/layout/includes/recent-posts.pug +0 -0
  43. package/layout/includes/sidebar.pug +0 -0
  44. package/layout/includes/widgets/aside/aside.pug +6 -6
  45. package/layout/includes/widgets/aside/asideAllInfo.pug +0 -0
  46. package/layout/includes/widgets/aside/asideArchive.pug +0 -0
  47. package/layout/includes/widgets/aside/asideCustom.pug +1 -1
  48. package/layout/includes/widgets/aside/asideFlipCard.pug +0 -0
  49. package/layout/includes/widgets/aside/asideInfoCard.pug +3 -3
  50. package/layout/includes/widgets/aside/asideNewestPost.pug +0 -0
  51. package/layout/includes/widgets/aside/asideSwitch.pug +0 -4
  52. package/layout/includes/widgets/aside/asideTag.pug +1 -1
  53. package/layout/includes/widgets/aside/asideToc.pug +0 -0
  54. package/layout/includes/widgets/aside/asideWebInfo.pug +2 -2
  55. package/layout/includes/widgets/home/banner.pug +0 -0
  56. package/layout/includes/widgets/home/bb/json.pug +22 -0
  57. package/layout/includes/widgets/home/bb/local.pug +17 -0
  58. package/layout/includes/widgets/home/bb/memos.pug +25 -0
  59. package/layout/includes/widgets/home/bbTimeList.pug +11 -7
  60. package/layout/includes/widgets/home/categoryBar.pug +0 -0
  61. package/layout/includes/widgets/home/categoryGroup.pug +1 -1
  62. package/layout/includes/widgets/home/hometop.pug +0 -0
  63. package/layout/includes/widgets/home/postList.pug +0 -0
  64. package/layout/includes/widgets/home/topGroup.pug +0 -0
  65. package/layout/includes/widgets/nav/left.pug +0 -0
  66. package/layout/includes/widgets/nav/menu.pug +1 -1
  67. package/layout/includes/widgets/nav/right.pug +6 -5
  68. package/layout/includes/widgets/page/about/authorinfo.pug +10 -9
  69. package/layout/includes/widgets/page/about/award.pug +0 -0
  70. package/layout/includes/widgets/page/about/contentinfo.pug +35 -34
  71. package/layout/includes/widgets/page/about/hobbies.pug +21 -17
  72. package/layout/includes/widgets/page/about/motto.pug +17 -16
  73. package/layout/includes/widgets/page/about/other.pug +16 -16
  74. package/layout/includes/widgets/page/about/personalities.pug +15 -14
  75. package/layout/includes/widgets/page/about/skillsinfo.pug +37 -36
  76. package/layout/includes/widgets/page/about/tenyear.pug +0 -0
  77. package/layout/includes/widgets/page/banner.pug +9 -3
  78. package/layout/includes/widgets/page/equipment/content.pug +0 -0
  79. package/layout/includes/widgets/page/links/banner.pug +14 -12
  80. package/layout/includes/widgets/page/links/linksCard.pug +4 -6
  81. package/layout/includes/widgets/page/links/linksDiscn.pug +8 -0
  82. package/layout/includes/widgets/page/links/linksItem.pug +4 -6
  83. package/layout/includes/widgets/page/says/json.pug +80 -0
  84. package/layout/includes/widgets/page/says/local.pug +48 -0
  85. package/layout/includes/widgets/page/says/memos.pug +109 -0
  86. package/layout/includes/widgets/post/award.pug +0 -0
  87. package/layout/includes/widgets/post/copyright.pug +2 -2
  88. package/layout/includes/widgets/post/post-ai.pug +12 -0
  89. package/layout/includes/widgets/post/postMeta.pug +2 -2
  90. package/layout/includes/widgets/post/postNav.pug +0 -0
  91. package/layout/includes/widgets/post/wave.pug +0 -0
  92. package/layout/includes/widgets/randomlink.pug +1 -1
  93. package/layout/includes/widgets/rightside/index.pug +6 -5
  94. package/layout/includes/widgets/third-party/comments/comment.pug +1 -5
  95. package/layout/includes/widgets/third-party/comments/twikoo.pug +1 -1
  96. package/layout/includes/widgets/third-party/comments/waline.pug +9 -11
  97. package/layout/includes/widgets/third-party/music.pug +1 -1
  98. package/layout/includes/widgets/third-party/news-comment/newest-comment.pug +6 -0
  99. package/layout/includes/widgets/third-party/news-comment/twikoo.pug +70 -0
  100. package/layout/includes/widgets/third-party/news-comment/waline.pug +64 -0
  101. package/layout/includes/widgets/third-party/pjax.pug +0 -0
  102. package/layout/includes/widgets/third-party/search/algolia-search.pug +0 -0
  103. package/layout/includes/widgets/third-party/search/index.pug +8 -7
  104. package/layout/includes/widgets/third-party/search/local-search.pug +0 -0
  105. package/layout/index.pug +3 -3
  106. package/layout/page.pug +0 -4
  107. package/layout/post.pug +2 -2
  108. package/layout/tag.pug +0 -0
  109. package/package.json +18 -9
  110. package/plugins.yml +109 -0
  111. package/scripts/event/cdn.js +129 -0
  112. package/scripts/event/init.js +0 -0
  113. package/scripts/event/page.js +1 -21
  114. package/scripts/event/welcome.js +1 -1
  115. package/scripts/filter/checkThemeConfig.js +0 -0
  116. package/scripts/filter/default.js +0 -0
  117. package/scripts/filter/lazyload.js +1 -1
  118. package/scripts/filter/randomPosts.js +0 -0
  119. package/scripts/helper/cdn.js +0 -0
  120. package/scripts/helper/getArchiveLength.js +0 -0
  121. package/scripts/helper/page.js +0 -0
  122. package/scripts/helper/related_post.js +0 -0
  123. package/scripts/helper/stylus.js +0 -0
  124. package/scripts/tags/button.js +0 -0
  125. package/scripts/tags/bvideo.js +0 -0
  126. package/scripts/tags/card.js +0 -0
  127. package/scripts/tags/checkbox.js +0 -0
  128. package/scripts/tags/fold.js +0 -0
  129. package/scripts/tags/image.js +0 -0
  130. package/scripts/tags/inline-image.js +0 -0
  131. package/scripts/tags/label.js +0 -0
  132. package/scripts/tags/link.js +0 -0
  133. package/scripts/tags/media.js +0 -0
  134. package/scripts/tags/note.js +0 -0
  135. package/scripts/tags/span.js +0 -0
  136. package/scripts/tags/tabs.js +0 -0
  137. package/scripts/tags/timeline.js +0 -0
  138. package/scripts/tags/u.js +0 -0
  139. package/source/css/_global/animation.css +0 -0
  140. package/source/css/_global/function.styl +42 -42
  141. package/source/css/_global/index.styl +1 -1
  142. package/source/css/_global/var.styl +0 -0
  143. package/source/css/_layout/basic.styl +10 -12
  144. package/source/css/_layout/header.styl +8 -3
  145. package/source/css/_layout/index.styl +59 -5
  146. package/source/css/_mode/index.styl +0 -0
  147. package/source/css/_page/_home/category-bar.styl +0 -0
  148. package/source/css/_page/_home/home-top.styl +10 -31
  149. package/source/css/_page/_home/index.styl +0 -0
  150. package/source/css/_page/_home/pagination.styl +3 -0
  151. package/source/css/_page/_home/recent-post.styl +10 -3
  152. package/source/css/_page/about/index.styl +0 -0
  153. package/source/css/_page/about/tenyear.styl +0 -0
  154. package/source/css/_page/about.styl +9 -0
  155. package/source/css/_page/category.styl +0 -0
  156. package/source/css/_page/douban.styl +0 -1
  157. package/source/css/_page/equipment.styl +0 -0
  158. package/source/css/_page/error.styl +0 -0
  159. package/source/css/_page/home.styl +0 -0
  160. package/source/css/_page/index.styl +2 -3
  161. package/source/css/_page/links.styl +85 -49
  162. package/source/css/_page/moment.styl +0 -0
  163. package/source/css/_page/music.styl +1 -1
  164. package/source/css/_page/rss.styl +0 -0
  165. package/source/css/_page/says.styl +10 -0
  166. package/source/css/_page/tag.styl +0 -0
  167. package/source/css/_widgets/_aside/allinfo.styl +34 -0
  168. package/source/css/_widgets/_aside/flip.styl +0 -0
  169. package/source/css/_widgets/_aside/index.styl +1 -7
  170. package/source/css/_widgets/_aside/info.styl +0 -0
  171. package/source/css/_widgets/_aside/newPost.styl +0 -0
  172. package/source/css/_widgets/_aside/toc.styl +0 -0
  173. package/source/css/_widgets/_aside/welcome.styl +0 -0
  174. package/source/css/_widgets/_comment/index.styl +0 -0
  175. package/source/css/_widgets/_comment/twikoo.styl +0 -2
  176. package/source/css/_widgets/_comment/waline.styl +0 -0
  177. package/source/css/_widgets/_extra/console.styl +0 -0
  178. package/source/css/_widgets/_extra/fullpage.styl +0 -0
  179. package/source/css/_widgets/_extra/music.styl +1 -1
  180. package/source/css/_widgets/_extra/pace.styl +0 -0
  181. package/source/css/_widgets/_extra/rightmenu.styl +0 -0
  182. package/source/css/_widgets/_mixins/article-sort.styl +0 -0
  183. package/source/css/_widgets/_mixins/footer.styl +1 -2
  184. package/source/css/_widgets/_mixins/other.styl +0 -4
  185. package/source/css/_widgets/_mixins/sidebar.styl +0 -0
  186. package/source/css/_widgets/_post/_highlight/diff.styl +0 -0
  187. package/source/css/_widgets/_post/_highlight/index.styl +0 -1
  188. package/source/css/_widgets/_post/_highlight/theme/default.styl +0 -0
  189. package/source/css/_widgets/_post/_highlight/theme/mac.styl +0 -0
  190. package/source/css/_widgets/_post/_highlight/theme.styl +0 -0
  191. package/source/css/_widgets/_post/commentBarrage.styl +0 -0
  192. package/source/css/_widgets/_post/content.styl +42 -11
  193. package/source/css/_widgets/_post/copyright.styl +0 -0
  194. package/source/css/_widgets/_post/index.styl +1 -1
  195. package/source/css/_widgets/_post/meta.styl +0 -3
  196. package/source/css/_widgets/_post/pagination.styl +1 -1
  197. package/source/css/_widgets/_post/postAI.styl +0 -0
  198. package/source/css/_widgets/_post/relatedPost.styl +0 -0
  199. package/source/css/_widgets/_post/tools.styl +0 -0
  200. package/source/css/_widgets/_search/algolia-search.styl +0 -0
  201. package/source/css/_widgets/_search/local-search.styl +0 -0
  202. package/source/css/_widgets/_tags/button.styl +0 -0
  203. package/source/css/_widgets/_tags/bvideo.styl +0 -0
  204. package/source/css/_widgets/_tags/card.styl +0 -0
  205. package/source/css/_widgets/_tags/checkbox.styl +0 -0
  206. package/source/css/_widgets/_tags/fold.styl +0 -0
  207. package/source/css/_widgets/_tags/image.styl +0 -0
  208. package/source/css/_widgets/_tags/index.styl +0 -0
  209. package/source/css/_widgets/_tags/inline-image.styl +0 -0
  210. package/source/css/_widgets/_tags/label.styl +0 -0
  211. package/source/css/_widgets/_tags/link.styl +4 -2
  212. package/source/css/_widgets/_tags/note.styl +0 -0
  213. package/source/css/_widgets/_tags/span.styl +0 -0
  214. package/source/css/_widgets/_tags/tabs.styl +0 -0
  215. package/source/css/_widgets/_tags/timeline.styl +0 -1
  216. package/source/css/_widgets/index.styl +4 -4
  217. package/source/css/index.styl +0 -0
  218. package/source/img/avatar.png +0 -0
  219. package/source/img/default.png +0 -0
  220. package/source/img/error_load.png +0 -0
  221. package/source/js/{extend/comment/twikoo/commentBarrage.js → comment/twikoo_commentBarrage.js} +0 -0
  222. package/source/js/{extend/comment/waline/commentBarrage.js → comment/waline_commentBarrage.js} +0 -0
  223. package/source/js/covercolor/api.js +95 -0
  224. package/source/js/covercolor/local.js +154 -0
  225. package/source/js/main.js +28 -252
  226. package/source/js/music.js +0 -0
  227. package/source/js/rightside.js +404 -0
  228. package/source/js/{extend/search/algolia-search.js → search/algolia.js} +10 -0
  229. package/source/js/{extend/search/local-search.js → search/local.js} +24 -2
  230. package/source/js/utils.js +75 -1
  231. package/layout/includes/head/fest.pug +0 -22
  232. package/layout/includes/page/echarts.pug +0 -7
  233. package/layout/includes/page/moments.pug +0 -4
  234. package/layout/includes/widgets/aside/asideHistory.pug +0 -8
  235. package/layout/includes/widgets/aside/asideWelcome.pug +0 -12
  236. package/layout/includes/widgets/page/moments/angle.pug +0 -19
  237. package/layout/includes/widgets/page/moments/index.pug +0 -23
  238. package/layout/includes/widgets/page/says/saysBottom.pug +0 -11
  239. package/layout/includes/widgets/page/says/saysContent.pug +0 -6
  240. package/layout/includes/widgets/page/says/saysFunction.pug +0 -10
  241. package/layout/includes/widgets/page/says/saysMeta.pug +0 -7
  242. package/layout/includes/widgets/third-party/ai/index.pug +0 -12
  243. package/layout/includes/widgets/third-party/comments/gitalk.pug +0 -0
  244. package/layout/includes/widgets/third-party/comments/valine.pug +0 -0
  245. package/scripts/helper/echarts.js +0 -407
  246. package/source/css/_widgets/_aside/history.styl +0 -42
  247. package/source/js/extend/comment/twikoo/twikoo.js +0 -67
  248. package/source/js/extend/comment/waline/waline.js +0 -60
  249. package/source/lib/bundle.min.js +0 -27
  250. package/source/lib/circle.min.js +0 -1
  251. package/source/lib/cover-color.min.js +0 -7
  252. package/source/lib/friends_post.js +0 -4
  253. package/source/lib/lazyload.min.js +0 -1
  254. package/source/lib/rightside.min.js +0 -1
  255. package/source/lib/snackbar.min.css +0 -1
  256. package/source/lib/snackbar.min.js +0 -9
  257. package/source/lib/txmap.min.js +0 -1
  258. package/source/lib/view-image.min.js +0 -6
  259. package/source/lib/waterfall.min.js +0 -1
  260. /package/source/{lib → js}/sco-ai.min.js +0 -0
@@ -1,12 +1,13 @@
1
- if theme.nav.right.travellings
2
- .nav-button.only-home#travellings_button
3
- a.site-page(href="https://www.travellings.cn/go.html", title=_p('nav.travellings'), target="_blank")
4
- i.scoicon.sco-train-line
1
+ - var custom = theme.nav.right.custom || []
2
+ each item in custom
3
+ .nav-button(id=item.id)
4
+ a.site-page(href=item.url || 'javascript:void(0);', onclick=item.onclick, title=item.title || '')
5
+ i.scoicon(class=item.icon || '')
5
6
  if theme.nav.right.random
6
7
  .nav-button#randomPost_button
7
8
  a.site-page(onclick="toRandomPost()", title=_p('nav.randompost'), href="javascript:void(0);")
8
9
  i.scoicon.sco-signal-tower-fill
9
- if theme.thirdparty.search.enable
10
+ if theme.search.enable
10
11
  .nav-button#search-button
11
12
  a.site-page.social-icon.search(href="javascript:void(0);", title=_p('nav.search'))
12
13
  i.scoicon.sco-search-line
@@ -1,12 +1,13 @@
1
1
  - const authorinfo = site.data.about.authorinfo
2
2
 
3
- .author-info
4
- .author-tag-left
5
- each tag in authorinfo.leftTags
6
- span.author-tag= tag
7
- .author-img
8
- img(src=authorinfo.image)
9
- .author-tag-right
10
- each tag in authorinfo.rightTags
11
- span.author-tag= tag
3
+ if authorinfo
4
+ .author-info
5
+ .author-tag-left
6
+ each tag in authorinfo.leftTags
7
+ span.author-tag= tag
8
+ .author-img
9
+ img(src=authorinfo.image)
10
+ .author-tag-right
11
+ each tag in authorinfo.rightTags
12
+ span.author-tag= tag
12
13
  .author-title= authorinfo.title
File without changes
@@ -1,38 +1,39 @@
1
1
  - const contentinfo = site.data.about.contentinfo
2
2
 
3
- .author-content
4
- .author-content-item.myInfoAndSayHello
5
- .title1= _p('about.info.title1')
6
- .title2= _p('about.info.title2')
7
- span.inline-word= contentinfo.name
8
- .title1= _p('about.info.title3') + contentinfo.title
9
- .aboutsiteTips.author-content-item
10
- .author-content-item-tips= _p('about.info.tip1')
11
- h2
12
- = _p('about.info.tip2')
13
- br
14
- = _p('about.info.tip3')
15
- span.inline-word= _p('about.info.tip4')
16
- .mask
17
- span.first-tips(data-show='')= contentinfo.product
18
- span= contentinfo.design
19
- span= contentinfo.program
20
- span(data-up='')= contentinfo.user_experience
3
+ if contentinfo
4
+ .author-content
5
+ .author-content-item.myInfoAndSayHello
6
+ .title1= contentinfo.sup
7
+ .title2
8
+ span.inline-word= contentinfo.name
9
+ .title1= contentinfo.title
10
+ .aboutsiteTips.author-content-item
11
+ .author-content-item-tips= contentinfo.tip
12
+ h2
13
+ span.inline-word!= contentinfo.slogan
14
+ .mask
15
+ each item,index in contentinfo.mask
16
+ if index === 0
17
+ span.first-tips(data-show='')= item
18
+ else if index === contentinfo.mask.length - 1
19
+ span(data-up='')= item
20
+ else
21
+ span= item
21
22
 
22
- script.
23
- var pursuitInterval = null;
24
- pursuitInterval = setInterval(function () {
25
- const show = document.querySelector('span[data-show]')
26
- const next = show.nextElementSibling || document.querySelector('.first-tips')
27
- const up = document.querySelector('span[data-up]')
28
- if (up) {
29
- up.removeAttribute('data-up')
30
- }
31
- show.removeAttribute('data-show')
32
- show.setAttribute('data-up', '')
33
- next.setAttribute('data-show', '')
34
- }, 2000)
23
+ script.
24
+ var pursuitInterval = null;
25
+ pursuitInterval = setInterval(function () {
26
+ const show = document.querySelector('span[data-show]')
27
+ const next = show.nextElementSibling || document.querySelector('.first-tips')
28
+ const up = document.querySelector('span[data-up]')
29
+ if (up) {
30
+ up.removeAttribute('data-up')
31
+ }
32
+ show.removeAttribute('data-show')
33
+ show.setAttribute('data-up', '')
34
+ next.setAttribute('data-show', '')
35
+ }, 2000)
35
36
 
36
- document.addEventListener('pjax:send', function(){
37
- clearInterval(pursuitInterval);
38
- });
37
+ document.addEventListener('pjax:send', function () {
38
+ clearInterval(pursuitInterval);
39
+ });
@@ -1,20 +1,24 @@
1
- .author-content
2
- if site.data.about.game1
3
- .author-content-item.game-apex(style=`background: url(${site.data.about.game1.img}) no-repeat top; background-size: cover;`)
4
- .card-content
5
- .author-content-item-tips= site.data.about.game1.title
6
- span.author-content-item-title= site.data.about.game1.subtitle
7
- .content-bottom
8
- .tips= site.data.about.game1.tips_left
9
- .tips= site.data.about.game1.tips_right
10
- if site.data.about.game2
11
- .author-content-item.game-jl(style=`background: url(${site.data.about.game2.img}) no-repeat top; background-size: cover;`)
12
- .card-content
13
- .author-content-item-tips= site.data.about.game2.title
14
- span.author-content-item-title= site.data.about.game2.subtitle
15
- .content-bottom
16
- .tips= site.data.about.game2.tips_left
17
- .tips= site.data.about.game2.tips_right
1
+ - var game1 = game1
2
+ - var game2 = game2
3
+
4
+ if game1 || game2
5
+ .author-content
6
+ if game1
7
+ .author-content-item.game-apex(style=`background: url(${game1.img}) no-repeat top; background-size: cover;`)
8
+ .card-content
9
+ .author-content-item-tips= game1.title
10
+ span.author-content-item-title= game1.subtitle
11
+ .content-bottom
12
+ .tips= game1.tips_left
13
+ .tips= game1.tips_right
14
+ if game2
15
+ .author-content-item.game-jl(style=`background: url(${game2.img}) no-repeat top; background-size: cover;`)
16
+ .card-content
17
+ .author-content-item-tips= game2.title
18
+ span.author-content-item-title= game2.subtitle
19
+ .content-bottom
20
+ .tips= game2.tips_left
21
+ .tips= game2.tips_right
18
22
 
19
23
  if site.data.about.likes
20
24
  - const likes = site.data.about.likes
@@ -1,19 +1,20 @@
1
1
  - const motto = site.data.about.motto
2
2
  - const expertise = site.data.about.expertise
3
3
 
4
- .author-content
5
- .author-content-item.maxim
6
- .author-content-item-tips= motto.title
7
- span.maxim-title
8
- span= motto.prefix
9
- span= motto.content
10
- .author-content-item.buff
11
- .card-content
12
- .author-content-item-tips= expertise.title
13
- span.buff-title
14
- span
15
- | #{expertise.prefix}
16
- span.inline-word= expertise.specialist
17
- span
18
- | #{expertise.content}
19
- span.inline-word= expertise.level
4
+ if motto || expertise
5
+ .author-content
6
+ .author-content-item.maxim
7
+ .author-content-item-tips= motto.title
8
+ span.maxim-title
9
+ span= motto.prefix
10
+ span= motto.content
11
+ .author-content-item.buff
12
+ .card-content
13
+ .author-content-item-tips= expertise.title
14
+ span.buff-title
15
+ span
16
+ | #{expertise.prefix}
17
+ span.inline-word= expertise.specialist
18
+ span
19
+ | #{expertise.content}
20
+ span.inline-word= expertise.level
@@ -1,6 +1,9 @@
1
+ - var tj = site.data.about.tj
2
+ - var oneself = site.data.about.oneself
3
+
1
4
  .author-content
2
- if site.data.about.tj
3
- .about-statistic.author-content-item(style=`background: url(${site.data.about.tj.img});`)
5
+ if tj
6
+ .about-statistic.author-content-item(style=`background: url(${tj.img});`)
4
7
  .card-content
5
8
  .author-content-item-tips 数据
6
9
  span.author-content-item-title 访问统计
@@ -8,13 +11,9 @@
8
11
  .post-tips
9
12
  | 统计信息来自
10
13
  a(href="https://invite.51.la/1NzKqTeb?target=V6") 51la网站统计
11
- if theme.about.echarts.enable
12
- .banner-button-group
13
- a.banner-button(onclick="pjax.loadUrl('/echart/');")
14
- i.scoicon.sco-right-btn-fill
15
- span.banner-button-text 文章统计
14
+
16
15
  script.
17
- fetch("#{site.data.about.tj.url}")
16
+ fetch("#{tj.url}")
18
17
  .then(res => res.text())
19
18
  .then(data => {
20
19
  const title = ["最近活跃", "今日人数", "今日访问", "昨日人数", "昨日访问", "本月访问", "总访问量"];
@@ -33,13 +32,12 @@
33
32
  });
34
33
 
35
34
 
36
- if site.data.about.oneself
35
+ if oneself
37
36
  style.
38
37
  :root {
39
- --site-about-oneself-map--light: url(#{site.data.about.oneself.map.light});
40
- --site-about-oneself-map--dark: url(#{site.data.about.oneself.map.dark});
38
+ --site-about-oneself-map--light: url(#{oneself.map.light});
39
+ --site-about-oneself-map--dark: url(#{oneself.map.dark});
41
40
  }
42
- - const oneself = site.data.about.oneself
43
41
  .author-content-item-group.column.mapAndInfo
44
42
  .author-content-item.map.single
45
43
  span.map-title 我现在住在 #{oneself.location}
@@ -54,9 +52,11 @@
54
52
  span.selfInfo-title 现在职业
55
53
  span.selfInfo-content(style="color: #b04fe6;")= oneself.occupation
56
54
 
57
- if site.data.about.cause
55
+ - var cause = site.data.about.cause
56
+
57
+ if cause
58
58
  .author-content
59
59
  .create-site-post.author-content-item.single
60
- .author-content-item-tips 心路历程
61
- span.author-content-item-title 为什么建站?
62
- != site.data.about.cause
60
+ .author-content-item-tips= cause.tip
61
+ span.author-content-item-title= cause.title
62
+ != cause.content
@@ -1,16 +1,17 @@
1
1
  - const personalities = site.data.about.personalities
2
2
 
3
- .author-content
4
- .author-content-item.personalities
5
- .author-content-item-tips= personalities.tips
6
- span.author-content-item-title= personalities.title
7
- .title2(style=`color:${personalities.color}`)= personalities.type
8
- .image
9
- img(src=personalities.image)
10
- .post-tips
11
- | 在
12
- a(href="https://www.16personalities.com/")= personalities.linkText
13
- | 了解更多关于
14
- a(href=personalities.typeLink)= personalities.typeName
15
- .author-content-item.myphoto
16
- img.author-content-img(src=personalities.myphoto, alt="自拍")
3
+ if personalities
4
+ .author-content
5
+ .author-content-item.personalities
6
+ .author-content-item-tips= personalities.tips
7
+ span.author-content-item-title= personalities.title
8
+ .title2(style=`color:${personalities.color}`)= personalities.type
9
+ .image
10
+ img(src=personalities.image)
11
+ .post-tips
12
+ |
13
+ a(href="https://www.16personalities.com/")= personalities.linkText
14
+ | 了解更多关于
15
+ a(href=personalities.typeLink)= personalities.typeName
16
+ .author-content-item.myphoto
17
+ img.author-content-img(src=personalities.myphoto, alt="自拍")
@@ -1,39 +1,40 @@
1
1
  - var skills = site.data.about.skills
2
2
  - var careers = site.data.about.careers
3
3
 
4
- .author-content
5
- .author-content-item.skills
6
- .card-content
7
- .author-content-item-tips= skills.title
8
- span.author-content-item-title= skills.subtitle
9
- .skills-style-group
10
- .tags-group-all
11
- .tags-group-wrapper
12
- each i in [1,2]
13
- - var pair = []
14
- each tag, index in skills.tags
15
- - pair.push(tag)
16
- if pair.length === 2 || index === skills.tags.length - 1
17
- .tags-group-icon-pair
18
- each item in pair
19
- .tags-group-icon(style=`background:${item.color}`)
20
- img(src=item.icon, title=item.title)
21
- - pair = []
22
- .skills-list
23
- each tag in skills.tags
24
- .skill-info
25
- .skill-icon(style=`background:${tag.color}`)
26
- img(src=tag.icon, title=tag.title)
27
- .skill-name
28
- span= tag.title
29
- .etc ...
30
- .author-content-item.careers
31
- .card-content
32
- .author-content-item-tips= careers.title
33
- span.author-content-item-title= careers.subtitle
34
- .careers-group
35
- each item in careers.items
36
- .careers-item
37
- .circle(style=`background:${item.color}`)
38
- .name= `${item.school}, ${item.major}`
39
- img.author-content-img(src=careers.image, alt=careers.title)
4
+ if skills || caches
5
+ .author-content
6
+ .author-content-item.skills
7
+ .card-content
8
+ .author-content-item-tips= skills.title
9
+ span.author-content-item-title= skills.subtitle
10
+ .skills-style-group
11
+ .tags-group-all
12
+ .tags-group-wrapper
13
+ each i in [1,2]
14
+ - var pair = []
15
+ each tag, index in skills.tags
16
+ - pair.push(tag)
17
+ if pair.length === 2 || index === skills.tags.length - 1
18
+ .tags-group-icon-pair
19
+ each item in pair
20
+ .tags-group-icon(style=`background:${item.color}`)
21
+ img(src=item.icon, title=item.title)
22
+ - pair = []
23
+ .skills-list
24
+ each tag in skills.tags
25
+ .skill-info
26
+ .skill-icon(style=`background:${tag.color}`)
27
+ img(src=tag.icon, title=tag.title)
28
+ .skill-name
29
+ span= tag.title
30
+ .etc ...
31
+ .author-content-item.careers
32
+ .card-content
33
+ .author-content-item-tips= careers.title
34
+ span.author-content-item-title= careers.subtitle
35
+ .careers-group
36
+ each item in careers.items
37
+ .careers-item
38
+ .circle(style=`background:${item.color}`)
39
+ .name= `${item.school}, ${item.major}`
40
+ img.author-content-img(src=careers.image, alt=careers.title)
File without changes
@@ -9,6 +9,12 @@
9
9
  .tips!= page.rightend
10
10
  if page.rightbtn
11
11
  .banner-button-group
12
- a.banner-button(onclick="pjax.loadUrl(\"" + page.rightbtnlink + "\")")
13
- i.scoicon.sco-right-btn-fill
14
- span.banner-button-text= page.rightbtn
12
+ case page.rightbtnlink.startsWith('/')
13
+ when true
14
+ a.banner-button(onclick="pjax.loadUrl(\"" + page.rightbtnlink + "\")")
15
+ i.scoicon.sco-right-btn-fill
16
+ span.banner-button-text= page.rightbtn
17
+ when false
18
+ a.banner-button(href=page.rightbtnlink, target="_blank")
19
+ i.scoicon.sco-right-btn-fill
20
+ span.banner-button-text= page.rightbtn
@@ -13,16 +13,18 @@
13
13
 
14
14
  .tags-group-all.nowrapMove
15
15
  .tags-group-wrapper
16
- - const data = site.data.links.banners
17
- - var pairs = []
16
+ - const data = site.data.links.links
18
17
  - for (let i = 0; i < 2; i++)
19
- each y, index in data
20
- if (index % 2 === 0)
21
- - pairs.push([y])
22
- else
23
- - pairs[pairs.length - 1].push(y)
24
- each pair in pairs
25
- .tags-group-icon-pair
26
- each y in pair
27
- a.tags-group-icon(href=url_for(y.link), title=y.name)
28
- img(src=y.avatar, title=y.name)
18
+ each x in data
19
+ if x.type === "item"
20
+ - var pairs = []
21
+ each y, index in x.link_list
22
+ if (index % 2 === 0)
23
+ - pairs.push([y])
24
+ else
25
+ - pairs[pairs.length - 1].push(y)
26
+ each pair in pairs
27
+ .tags-group-icon-pair
28
+ each y in pair
29
+ a.tags-group-icon(href=url_for(y.link), title=y.name)
30
+ img(src=y.avatar + (site.data.links.banner_suffix || ''), title=y.name)
@@ -2,16 +2,14 @@
2
2
  each item in data.link_list
3
3
  .site-card
4
4
  if item.tag
5
- if item.vip
6
- span.site-card-tag.vip= item.tag
7
- else
8
- span.site-card-tag= item.tag
5
+ span.site-card-tag(class=item.color)= item.tag
6
+ i.light
9
7
  a.img(title=item.name, href=url_for(item.link))
10
- img.flink-avatar(src=item.topimg, alt=item.name)
8
+ img.flink-avatar(src=item.topimg + (data.topimg_suffix || ''), alt=item.name)
11
9
  .img-alt.is-center= item.name
12
10
  a.info.cf-friends-link(title=item.name, href=url_for(item.link))
13
11
  .site-card-avatar
14
- img.flink-avatar.cf-friends-avatar(src=item.avatar, alt=item.name)
12
+ img.flink-avatar.cf-friends-avatar(src=item.avatar + (data.suffix || ''), alt=item.name)
15
13
  .img-alt.is-center= item.name
16
14
  .site-card-text
17
15
  span.title.cf-friends-name= item.name
@@ -0,0 +1,8 @@
1
+ .flink-list.cf-friends-lost-contact.mini
2
+ each item in data.link_list
3
+ .flink-list-item
4
+ a.cf-friends-link(href="javascript:void(0);", title=item.name)
5
+ img.flink-avatar.cf-friends-avatar(alt=item.name, src=item.avatar + (data.suffix || ''))
6
+ .flink-item-info
7
+ span.flink-item-name.cf-friends-name= item.name
8
+ span.flink-item-desc(title=item.descr)= item.descr
@@ -1,13 +1,11 @@
1
1
  .flink-list
2
2
  each item in data.link_list
3
3
  .flink-list-item
4
+ if item.tag
5
+ span.site-card-tag(class=item.color)= item.tag
6
+ i.light
4
7
  a.cf-friends-link(href=url_for(item.link), title=item.name)
5
- if item.tag
6
- if item.vip
7
- span.site-card-tag.vip= item.tag
8
- else
9
- span.site-card-tag= item.tag
10
- img.flink-avatar.cf-friends-avatar(alt=item.name, src=item.avatar)
8
+ img.flink-avatar.cf-friends-avatar(alt=item.name, src=item.avatar + (data.suffix || ''))
11
9
  .flink-item-info
12
10
  span.flink-item-name.cf-friends-name= item.name
13
11
  span.flink-item-desc(title=item.descr)= item.descr
@@ -0,0 +1,80 @@
1
+ case theme.says.style
2
+ when 1
3
+ script.
4
+ !async function () {
5
+ let say_strip = !{theme.says.strip}
6
+ await fetch('!{url_for(theme.says.mode_link)}')
7
+ .then(res => res.json())
8
+ .then(res => {
9
+ let list = say_strip === -1 || say_strip >= res.length ? res : res.slice(0, say_strip)
10
+ let aplayer = null
11
+ let video = null
12
+ let imageBox = null
13
+
14
+ document.querySelector('#waterfall').innerHTML = list.map(item => {
15
+ aplayer = item.aplayer ? `<div class="bber-music"><meting-js server="${item.aplayer.server}" type="song" id="${item.aplayer.id}" mutex="true" preload="none" theme="var(--sco-main)" data-lrctype="0"></meting-js></div>` : null
16
+ video = item.player ? `<div class="bber-video"><video src="${item.player}" controls="controls" style="objectfit: cover;"></video></div>` : item.bilibili ? `<div class="bber-video"><iframe src="//player.bilibili.com/player.html?autop-lay=0&bvid=${item.bilibili}" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe></div>` : null
17
+ imageBox = item.images ? `<div class="bber-content-img">${item.images.map(img => `<img src="${img}" title="即刻短文配图" />`).join('')}</div>` : null
18
+ return `<li class="item">
19
+ <div id="bber-content">
20
+ <p class="datacont">${item.content || ''}</p>
21
+ ${imageBox || ''}
22
+ </div>
23
+ ${video || ''}
24
+ ${aplayer || ''}
25
+ <hr>
26
+ <div class="bber-bottom">
27
+ <div class="bber-info">
28
+ <div class="bber-info-time">
29
+ <i class="scoicon sco-calendar-todo-fill"></i>
30
+ <time class="datetime" datetime="${item.create_time}"></time>
31
+ </div>
32
+ ${item.link ? `<a class="bber-content-link" href="${item.link}" title="跳转到短文指引的链接"><i class="scoicon sco-link-m-line"></i>链接</a>` : ''}
33
+ </div>
34
+ ${item.content ? `<a class="bber-reply goComment" onclick="sco.toTalk('${item.content}')"><i class="scoicon sco-chat-fill" style="font-size: 1rem;"></i></a>` : ''}
35
+ </div>
36
+ </li>`
37
+ }).join('')
38
+ })
39
+ GLOBAL_CONFIG.lazyload.enable && utils.lazyloadImg()
40
+ GLOBAL_CONFIG.lightbox && utils.lightbox(document.querySelectorAll(".bber-content-img img"));
41
+ changeTimeFormat()
42
+ }()
43
+ when 2
44
+ script.
45
+ !async function () {
46
+ let say_strip = !{theme.says.strip}
47
+ await fetch('!{url_for(theme.says.mode_link)}')
48
+ .then(res => res.json())
49
+ .then(res => {
50
+ let list = say_strip === -1 || say_strip >= res.length ? res : res.slice(0, say_strip)
51
+ let aplayer = null
52
+ let video = null
53
+ let imageBox = null
54
+
55
+ document.querySelector('#waterfall').innerHTML = list.map(item => {
56
+ aplayer = item.aplayer ? `<div class="bber-music"><meting-js server="${item.aplayer.server}" type="song" id="${item.aplayer.id}" mutex="true" preload="none" theme="var(--sco-main)" data-lrctype="0"></meting-js></div>` : null
57
+ video = item.player ? `<div class="bber-video"><video src="${item.player}" controls="controls" style="object-fit: cover;"></video></div>` : item.bilibili ? `<div class="bber-video"><iframe src="//player.bilibili.com/player.html?autoplay=0&bvid=${item.bilibili}" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe></div>` : null
58
+ imageBox = item.images ? `<div class="bber-content-img">${item.images.map(img => `<img src="${img}" title="即刻短文配图" />`).join('')}</div>` : null
59
+ return `<li class="item">
60
+ <div class="meta">
61
+ <img class="no-lightbox no-lazyload avatar" src="!{theme.aside.card.author.img}">
62
+ <div class="info">
63
+ <span class="bber_nick">#{config.author}</span>
64
+ <time class="datetime bber_date" datetime="${item.create_time}"></time>
65
+ </div>
66
+ ${item.content ? `<a class="bber-reply goComment" onclick="sco.toTalk('${item.content}')"><i class="scoicon sco-chat-fill" style="font-size: 1rem;"></i></a>` : ''}
67
+ </div>
68
+ <div id="bber-content">
69
+ <p class="datacont">${item.content || ''}</p>
70
+ ${imageBox || ''}
71
+ </div>
72
+ ${video || ''}
73
+ ${aplayer || ''}
74
+ </li>`
75
+ }).join('')
76
+ GLOBAL_CONFIG.lazyload.enable && utils.lazyloadImg()
77
+ GLOBAL_CONFIG.lightbox && utils.lightbox(document.querySelectorAll(".bber-content-img img"));
78
+ changeTimeFormat()
79
+ })
80
+ }()
@@ -0,0 +1,48 @@
1
+ if theme.says.strip === -1
2
+ - var limitedList = site.data.essay.essay_list
3
+ else
4
+ - var limitedList = site.data.essay.essay_list.slice(0, theme.says.strip)
5
+ each item in limitedList
6
+ li.item
7
+ if theme.says.style === 2
8
+ .meta
9
+ img.avatar(src=theme.aside.card.author.img)
10
+ .info
11
+ span.bber_nick= config.author
12
+ time.datetime.bber_date(datetime=moment(item.date).format())
13
+ if item.content
14
+ a.bber-reply.goComment(onclick=`sco.toTalk('${item.content}')`)
15
+ i.scoicon.sco-chat-fill
16
+
17
+ #bber-content
18
+ p.datacont= item.content
19
+ if item.image
20
+ .bber-content-img
21
+ each img in item.image
22
+ img(src=img title="即刻短文配图")
23
+
24
+ if item.aplayer
25
+ .bber-music
26
+ meting-js(server=item.aplayer.server type="song" id=item.aplayer.id mutex="true" preload="none" theme="var(--sco-main)" data-lrctype="0")
27
+
28
+ if item.video
29
+ .bber-video
30
+ if item.video.player
31
+ video(src=item.video.player controls="controls" style="object-fit: cover;")
32
+ if item.video.bilibili
33
+ iframe(src='//player.bilibili.com/player.html?autop-lay=0&bvid=' + item.video.bilibili scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true")
34
+
35
+ if theme.says.style === 1
36
+ hr
37
+ .bber-bottom
38
+ .bber-info
39
+ .bber-info-time
40
+ i.scoicon.sco-calendar-todo-fill
41
+ time.datetime(datetime=moment(item.date).format())
42
+ if item.link
43
+ a.bber-content-link(href=url_for(item.link) title="跳转到短文指引的链接")
44
+ i.scoicon.sco-link-m-line
45
+ | 链接
46
+ if item.content
47
+ a.bber-reply(onclick=`sco.toTalk('${item.content}')`)
48
+ i.scoicon.sco-chat-fill(style="font-size: 1rem;")