hexo-theme-solitude 1.1.3 → 1.2.1

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 (254) hide show
  1. package/LICENSE +674 -19
  2. package/_config.yml +243 -193
  3. package/languages/en-US.yml +1 -0
  4. package/languages/zh-CN.yml +8 -8
  5. package/layout/404.pug +24 -0
  6. package/layout/archive.pug +11 -0
  7. package/layout/category.pug +16 -0
  8. package/layout/includes/console.pug +42 -0
  9. package/layout/includes/footer.pug +71 -0
  10. package/layout/includes/head/config.pug +79 -0
  11. package/layout/includes/head/pwa.pug +59 -0
  12. package/layout/includes/head.pug +29 -0
  13. package/layout/includes/header.pug +4 -0
  14. package/layout/includes/inject/body.pug +68 -0
  15. package/layout/{partial/compoment/inject/head.ejs → includes/inject/head.pug} +59 -35
  16. package/layout/includes/layout.pug +35 -0
  17. package/layout/{partial/loading.ejs → includes/loading.pug} +19 -17
  18. package/layout/includes/mixins/articleSort.pug +14 -0
  19. package/layout/includes/mixins/pagination.pug +8 -0
  20. package/layout/includes/nav.pug +22 -0
  21. package/layout/includes/page/about.pug +10 -0
  22. package/layout/includes/page/categories.pug +8 -0
  23. package/layout/includes/page/default.pug +2 -0
  24. package/layout/includes/page/echarts.pug +7 -0
  25. package/layout/includes/page/equipment.pug +3 -0
  26. package/layout/includes/page/links.pug +35 -0
  27. package/layout/includes/page/moments.pug +5 -0
  28. package/layout/includes/page/rss.pug +22 -0
  29. package/layout/includes/page/says.pug +20 -0
  30. package/layout/includes/page/tags.pug +8 -0
  31. package/layout/includes/page/tlink.pug +9 -0
  32. package/layout/includes/recent-posts.pug +9 -0
  33. package/layout/includes/sidebar.pug +17 -0
  34. package/layout/includes/widgets/aside/aside.pug +18 -0
  35. package/layout/includes/widgets/aside/asideAllInfo.pug +8 -0
  36. package/layout/includes/widgets/aside/asideArchive.pug +9 -0
  37. package/layout/includes/widgets/aside/asideFlipCard.pug +5 -0
  38. package/layout/includes/widgets/aside/asideHistory.pug +8 -0
  39. package/layout/includes/widgets/aside/asideInfoCard.pug +22 -0
  40. package/layout/includes/widgets/aside/asideNewestPost.pug +16 -0
  41. package/layout/includes/widgets/aside/asidePower.pug +19 -0
  42. package/layout/includes/widgets/aside/asideSwitch.pug +26 -0
  43. package/layout/includes/widgets/aside/asideTag.pug +11 -0
  44. package/layout/includes/widgets/aside/asideToc.pug +5 -0
  45. package/layout/includes/widgets/aside/asideWebInfo.pug +40 -0
  46. package/layout/includes/widgets/aside/asideWelcome.pug +12 -0
  47. package/layout/includes/widgets/home/banner.pug +16 -0
  48. package/layout/includes/widgets/home/bbTimeList.pug +8 -0
  49. package/layout/includes/widgets/home/categoryBar.pug +10 -0
  50. package/layout/includes/widgets/home/categoryGroup.pug +9 -0
  51. package/layout/includes/widgets/home/hometop.pug +9 -0
  52. package/layout/includes/widgets/home/postList.pug +26 -0
  53. package/layout/includes/widgets/home/rencentPost.pug +26 -0
  54. package/layout/includes/widgets/home/topGroup.pug +27 -0
  55. package/layout/includes/widgets/nav/left.pug +10 -0
  56. package/layout/includes/widgets/nav/menu.pug +16 -0
  57. package/layout/includes/widgets/nav/right.pug +23 -0
  58. package/layout/includes/widgets/page/about/authorinfo.pug +12 -0
  59. package/layout/includes/widgets/page/about/award.pug +34 -0
  60. package/layout/includes/widgets/page/about/contentinfo.pug +38 -0
  61. package/layout/includes/widgets/page/about/hobbies.pug +33 -0
  62. package/layout/includes/widgets/page/about/motto.pug +19 -0
  63. package/layout/includes/widgets/page/about/other.pug +61 -0
  64. package/layout/includes/widgets/page/about/personalities.pug +16 -0
  65. package/layout/includes/widgets/page/about/skillsinfo.pug +41 -0
  66. package/layout/includes/widgets/page/banner.pug +14 -0
  67. package/layout/includes/widgets/page/equipment/content.pug +23 -0
  68. package/layout/includes/widgets/page/links/banner.pug +30 -0
  69. package/layout/includes/widgets/page/links/linksCard.pug +18 -0
  70. package/layout/includes/widgets/page/links/linksItem.pug +14 -0
  71. package/layout/includes/widgets/page/moments/angle.pug +24 -0
  72. package/layout/includes/widgets/page/moments/index.pug +18 -0
  73. package/layout/includes/widgets/page/says/saysBottom.pug +11 -0
  74. package/layout/includes/widgets/page/says/saysContent.pug +6 -0
  75. package/layout/includes/widgets/page/says/saysFunction.pug +10 -0
  76. package/layout/includes/widgets/page/says/saysMeta.pug +7 -0
  77. package/layout/includes/widgets/post/award.pug +48 -0
  78. package/layout/includes/widgets/post/copyright.pug +27 -0
  79. package/layout/includes/widgets/post/postMeta.pug +55 -0
  80. package/layout/includes/widgets/post/postNav.pug +25 -0
  81. package/layout/includes/widgets/post/wave.pug +9 -0
  82. package/layout/includes/widgets/randomlink.pug +32 -0
  83. package/layout/includes/widgets/rightside/index.pug +74 -0
  84. package/layout/includes/widgets/third-party/comments/comment.pug +14 -0
  85. package/layout/includes/widgets/third-party/comments/gitalk.pug +0 -0
  86. package/layout/{partial/compoment/third-party/comments/twikoo.ejs → includes/widgets/third-party/comments/twikoo.pug} +8 -9
  87. package/layout/includes/widgets/third-party/comments/valine.pug +0 -0
  88. package/layout/includes/widgets/third-party/music.pug +3 -0
  89. package/layout/includes/widgets/third-party/pjax.pug +30 -0
  90. package/layout/includes/widgets/third-party/search/algolia-search.pug +16 -0
  91. package/layout/includes/widgets/third-party/search/index.pug +7 -0
  92. package/layout/includes/widgets/third-party/search/local-search.pug +15 -0
  93. package/layout/index.pug +20 -0
  94. package/layout/page.pug +32 -0
  95. package/layout/post.pug +43 -0
  96. package/layout/tag.pug +19 -0
  97. package/package.json +4 -4
  98. package/scripts/event/page.js +20 -2
  99. package/scripts/filter/checkThemeConfig.js +0 -1
  100. package/scripts/filter/randomPosts.js +0 -1
  101. package/scripts/helper/{charts.js → echarts.js} +27 -28
  102. package/scripts/helper/stylus.js +23 -0
  103. package/scripts/tags/bvideo.js +1 -36
  104. package/source/css/_comment/index.styl +121 -0
  105. package/source/css/_comment/twikoo.styl +515 -0
  106. package/source/css/_extra/console.styl +354 -0
  107. package/source/css/_extra/rightmenu.styl +83 -0
  108. package/source/css/_global/animation.css +756 -0
  109. package/source/css/_global/function.styl +83 -0
  110. package/source/css/_global/index.styl +120 -0
  111. package/source/css/_global/var.styl +1 -0
  112. package/source/css/_layout/articleSort.styl +199 -0
  113. package/source/css/_layout/base.styl +392 -0
  114. package/source/css/_layout/footer.styl +359 -0
  115. package/source/css/_layout/header.styl +1331 -0
  116. package/source/css/_layout/index.styl +293 -0
  117. package/source/css/_layout/sidebar.styl +226 -0
  118. package/source/css/_mode/index.styl +52 -0
  119. package/source/css/_page/about.styl +944 -0
  120. package/source/css/_page/category.styl +141 -0
  121. package/source/css/_page/equipment.styl +108 -0
  122. package/source/css/_page/error.styl +161 -0
  123. package/source/css/_page/home.styl +58 -0
  124. package/source/css/_page/homeTop.styl +1035 -0
  125. package/source/css/_page/index.styl +22 -0
  126. package/source/css/_page/link.styl +433 -0
  127. package/source/css/_page/moment.styl +186 -0
  128. package/source/css/_page/rss.styl +87 -0
  129. package/source/css/_page/says.styl +353 -0
  130. package/source/css/_page/tag.styl +56 -0
  131. package/source/css/_post/commentBarrage.styl +149 -0
  132. package/source/css/_post/externalTags.styl +694 -0
  133. package/source/css/_post/highlight.styl +96 -0
  134. package/source/css/_post/index.styl +935 -0
  135. package/source/css/_post/pagination.styl +467 -0
  136. package/source/css/_post/postContent.styl +957 -0
  137. package/source/css/_post/relatedPost.styl +160 -0
  138. package/source/css/_post/reward.styl +217 -0
  139. package/source/css/_search/algolia-search.styl +206 -0
  140. package/source/css/_search/local-search.styl +112 -0
  141. package/source/css/_widgets/aside/allinfo.styl +134 -0
  142. package/source/css/_widgets/aside/flip.styl +68 -0
  143. package/source/css/_widgets/aside/history.styl +35 -0
  144. package/source/css/_widgets/aside/index.styl +156 -0
  145. package/source/css/_widgets/aside/info.styl +263 -0
  146. package/source/css/_widgets/aside/newPost.styl +55 -0
  147. package/source/css/_widgets/aside/power.styl +90 -0
  148. package/source/css/_widgets/aside/toc.styl +85 -0
  149. package/source/css/_widgets/aside/welcome.styl +14 -0
  150. package/source/css/_widgets/index.styl +3 -0
  151. package/source/css/index.styl +40 -0
  152. package/source/js/commentBarrage.js +8 -5
  153. package/source/js/extend/console/comment.js +60 -63
  154. package/source/js/extend/covercolor/local.js +1 -1
  155. package/source/js/extend/search/algolia-search.js +104 -111
  156. package/source/js/extend/search/local-search.js +7 -7
  157. package/source/js/main.js +655 -505
  158. package/source/js/utils.js +131 -137
  159. package/layout/404.ejs +0 -34
  160. package/layout/archive.ejs +0 -10
  161. package/layout/category.ejs +0 -18
  162. package/layout/index.ejs +0 -20
  163. package/layout/layout.ejs +0 -30
  164. package/layout/page/about.ejs +0 -15
  165. package/layout/page/categories.ejs +0 -12
  166. package/layout/page/circle.ejs +0 -5
  167. package/layout/page/echarts.ejs +0 -1
  168. package/layout/page/equipment.ejs +0 -2
  169. package/layout/page/links.ejs +0 -46
  170. package/layout/page/page.ejs +0 -3
  171. package/layout/page/rss.ejs +0 -39
  172. package/layout/page/says.ejs +0 -17
  173. package/layout/page/tags.ejs +0 -12
  174. package/layout/page/tlink.ejs +0 -11
  175. package/layout/page.ejs +0 -45
  176. package/layout/partial/body.ejs +0 -7
  177. package/layout/partial/compoment/about/authorinfo.ejs +0 -18
  178. package/layout/partial/compoment/about/award.ejs +0 -59
  179. package/layout/partial/compoment/about/contentinfo.ejs +0 -33
  180. package/layout/partial/compoment/about/hobbies.ejs +0 -53
  181. package/layout/partial/compoment/about/motto.ejs +0 -17
  182. package/layout/partial/compoment/about/other.ejs +0 -76
  183. package/layout/partial/compoment/about/personalities.ejs +0 -11
  184. package/layout/partial/compoment/about/skillsinfo.ejs +0 -62
  185. package/layout/partial/compoment/aside/aside.ejs +0 -28
  186. package/layout/partial/compoment/aside/asideAllInfo.ejs +0 -6
  187. package/layout/partial/compoment/aside/asideArchive.ejs +0 -11
  188. package/layout/partial/compoment/aside/asideFlipCard.ejs +0 -72
  189. package/layout/partial/compoment/aside/asideHistory.ejs +0 -49
  190. package/layout/partial/compoment/aside/asideInfoCard.ejs +0 -39
  191. package/layout/partial/compoment/aside/asideNewestPost.ejs +0 -31
  192. package/layout/partial/compoment/aside/asidePower.ejs +0 -31
  193. package/layout/partial/compoment/aside/asideSwitch.ejs +0 -41
  194. package/layout/partial/compoment/aside/asideTag.ejs +0 -5
  195. package/layout/partial/compoment/aside/asideToc.ejs +0 -11
  196. package/layout/partial/compoment/aside/asideWebInfo.ejs +0 -60
  197. package/layout/partial/compoment/aside/asideWelcome.ejs +0 -33
  198. package/layout/partial/compoment/circle/angle.ejs +0 -26
  199. package/layout/partial/compoment/circle/banner.ejs +0 -11
  200. package/layout/partial/compoment/circle/content.ejs +0 -19
  201. package/layout/partial/compoment/dorakika/rightmenu.ejs +0 -100
  202. package/layout/partial/compoment/equipment/list.ejs +0 -37
  203. package/layout/partial/compoment/home/homeCategoryBar.ejs +0 -11
  204. package/layout/partial/compoment/home/postList.ejs +0 -37
  205. package/layout/partial/compoment/hometop/bbTimeList.ejs +0 -15
  206. package/layout/partial/compoment/hometop/categoryGroup.ejs +0 -19
  207. package/layout/partial/compoment/hometop/groupTag.ejs +0 -30
  208. package/layout/partial/compoment/hometop/topGroup.ejs +0 -41
  209. package/layout/partial/compoment/inject/body.ejs +0 -70
  210. package/layout/partial/compoment/links/angle.ejs +0 -26
  211. package/layout/partial/compoment/links/banner.ejs +0 -42
  212. package/layout/partial/compoment/links/linksCard.ejs +0 -27
  213. package/layout/partial/compoment/links/linksItem.ejs +0 -21
  214. package/layout/partial/compoment/mixins/articleSort.ejs +0 -26
  215. package/layout/partial/compoment/mixins/pagination.ejs +0 -11
  216. package/layout/partial/compoment/nav/left.ejs +0 -22
  217. package/layout/partial/compoment/nav/menu.ejs +0 -25
  218. package/layout/partial/compoment/nav/right.ejs +0 -42
  219. package/layout/partial/compoment/post/award.ejs +0 -60
  220. package/layout/partial/compoment/post/copyright.ejs +0 -39
  221. package/layout/partial/compoment/post/postMeta.ejs +0 -85
  222. package/layout/partial/compoment/post/postNav.ejs +0 -41
  223. package/layout/partial/compoment/post/wave.ejs +0 -14
  224. package/layout/partial/compoment/says/banner.ejs +0 -10
  225. package/layout/partial/compoment/says/saysBottom.ejs +0 -18
  226. package/layout/partial/compoment/says/saysContent.ejs +0 -10
  227. package/layout/partial/compoment/says/saysFunction.ejs +0 -15
  228. package/layout/partial/compoment/third-party/comments/comment.ejs +0 -12
  229. package/layout/partial/compoment/third-party/comments/twikoo_k.ejs +0 -29
  230. package/layout/partial/compoment/third-party/music.ejs +0 -5
  231. package/layout/partial/compoment/third-party/pjax.ejs +0 -31
  232. package/layout/partial/compoment/third-party/search/algolia-search.ejs +0 -20
  233. package/layout/partial/compoment/third-party/search/index.ejs +0 -10
  234. package/layout/partial/compoment/third-party/search/local-search.ejs +0 -22
  235. package/layout/partial/compoment/tlink/banner.ejs +0 -10
  236. package/layout/partial/console.ejs +0 -68
  237. package/layout/partial/footer.ejs +0 -109
  238. package/layout/partial/head.ejs +0 -37
  239. package/layout/partial/header.ejs +0 -6
  240. package/layout/partial/hometop.ejs +0 -15
  241. package/layout/partial/nav.ejs +0 -34
  242. package/layout/partial/pwa.ejs +0 -40
  243. package/layout/partial/sidebar.ejs +0 -31
  244. package/layout/post.ejs +0 -52
  245. package/layout/tag.ejs +0 -19
  246. package/scripts/helper/randomLinks.js +0 -16
  247. package/scripts/helper/themeJsExport.js +0 -79
  248. package/source/css/commentBarrage.css +0 -174
  249. package/source/css/custom.css +0 -901
  250. package/source/css/main.css +0 -16285
  251. package/source/css/search/algolia-search.css +0 -141
  252. package/source/css/search/local-search.css +0 -138
  253. package/source/css/var.css +0 -189
  254. /package/source/js/{rightmenu.js → rightside.js} +0 -0
@@ -0,0 +1,22 @@
1
+ nav#nav.show
2
+ div#nav-group
3
+ div#blog_name
4
+ if theme.nav.left.enable
5
+ div.back-home-button(tabindex="-1")
6
+ i.back-home-button-icon.scoicon.sco-more-fill
7
+ include ./widgets/nav/left.pug
8
+ a#site-name(href="/", title="返回博客主页", traget="_self")
9
+ if theme.site.name.class === 'i_class'
10
+ i.scoicon(class=theme.site.name.custom, style="font-size: 16px;")
11
+ else if theme.site.name.class === 'img'
12
+ img(src=theme.site.name.custom, alt=config.title)
13
+ else if theme.site.name.class === 'text'
14
+ span.scoicon= theme.site.name.custom
15
+ div#page-name-mask
16
+ div#page-name
17
+ a#page-name-text(onclick="sco.toTop()")= page.title || config.title
18
+ div#menus
19
+ include ./widgets/nav/menu.pug
20
+ div#nav-left
21
+ div#nav-right
22
+ include ./widgets/nav/right.pug
@@ -0,0 +1,10 @@
1
+ if theme.about.enable && site.data.about
2
+ #about-page
3
+ include ../widgets/page/about/authorinfo
4
+ include ../widgets/page/about/contentinfo
5
+ include ../widgets/page/about/skillsinfo
6
+ include ../widgets/page/about/personalities
7
+ include ../widgets/page/about/motto
8
+ include ../widgets/page/about/hobbies
9
+ include ../widgets/page/about/other
10
+ include ../widgets/page/about/award
@@ -0,0 +1,8 @@
1
+ h1.page-title(style='display: inline')= _p('page.category')
2
+ div.category-lists
3
+ div.tag-cloud-list.is-center
4
+ each item in site.categories.find({ parent: { $exists: false } }).data
5
+ a(href=url_for(item.path))
6
+ span.tags-punctuation
7
+ = item.name
8
+ span.tagsPageCount= item.length
@@ -0,0 +1,2 @@
1
+ div#article-container
2
+ != page.content
@@ -0,0 +1,7 @@
1
+ - var startDate = theme.about.echarts.startDate
2
+ - var tagLength = theme.about.echarts.tagLength
3
+ - var categoryParent = ""+theme.about.echarts.categoryParent
4
+
5
+ div#posts-chart(data-start=startDate, style="border-radius: 8px; height: 300px; padding: 10px;")
6
+ div#tags-chart(data-length=tagLength, style="border-radius: 8px; height: 300px; padding: 10px;")
7
+ div#categories-chart(data-parent=categoryParent, style="border-radius: 8px; height: 300px; padding: 10px;")
@@ -0,0 +1,3 @@
1
+ - var pageClass = "equipment"
2
+ include ../widgets/page/banner
3
+ include ../widgets/page/equipment/content
@@ -0,0 +1,35 @@
1
+ div.flink#banners
2
+ include ../widgets/page/links/banner
3
+ if theme.thirdparty.circle.angle.enable
4
+ include ../widgets/page/moments/angle
5
+ div.flink#article-container
6
+ each data in site.data.links.links
7
+ h2= data.class_name
8
+ div.flink-desc= data.descr
9
+ case data.type
10
+ when 'card'
11
+ include ../widgets/page/links/linksCard
12
+ when 'item'
13
+ include ../widgets/page/links/linksItem
14
+ h3(align='end') ——本站友链排序不分先后,所有站点都值得一看。
15
+ if theme.comment.enable
16
+ h2(id="友情链接申请")= "友情链接申请"
17
+ div#article-container!= page.content
18
+ p 请<b>勾选</b>你符合的条件:
19
+ div#friendlink_checkboxs
20
+ p
21
+ label
22
+ input(type='checkbox', id='checkbox1', onclick='checkForm()')
23
+ | 我已添加 <b>#{config.title}</b> 博客的友情链接
24
+ p
25
+ label
26
+ input(type='checkbox', id='checkbox2', onclick='checkForm()')
27
+ | 我的链接主体为 <b>个人</b>,网站类型为<b>博客</b>
28
+ p
29
+ label
30
+ input(type='checkbox', id='checkbox3', onclick='checkForm()')
31
+ | 我的网站现在可以在中国大陆区域正常访问
32
+ p
33
+ label
34
+ input(type='checkbox', id='checkbox4', onclick='checkForm()')
35
+ | 网站内容符合中国大陆法律法规
@@ -0,0 +1,5 @@
1
+ - var pageClass = "momentsPage"
2
+ include ../widgets/page/banner
3
+ if theme.thirdparty.circle.angle.enable
4
+ include ../widgets/page/moments/angle
5
+ include ../widgets/page/moments/index
@@ -0,0 +1,22 @@
1
+ main.layout.hide-aside#content-inner
2
+ #page
3
+ .rss-plan-list
4
+ a.rss-plan-item.rss-plan-wechat(href=theme.footer.rss.wechatOA, title="公众号", target="_blank")
5
+ .rss-plan-description 推送精选文章<br>推送全文
6
+ .rss-plan-info-group
7
+ .rss-plan-title 公众号订阅
8
+ .rss-plan-info 推荐的订阅方式
9
+ img.rss-plan-icon(src="https://bu.dusays.com/2023/11/01/6541d14a4de78.png", alt="wechat")
10
+ a.rss-plan-item.rss-plan-mail(href=theme.footer.rss.emailOA, rel="external nofollow", title="email", target="_blank")
11
+ .rss-plan-description 推送全部文章<br>推送封面与简介
12
+ .rss-plan-info-group
13
+ .rss-plan-title 邮件订阅
14
+ .rss-plan-info 推荐的订阅方式
15
+ img.rss-plan-icon(src="https://bu.dusays.com/2023/11/01/6541d16c3ea22.png", alt="email")
16
+ a.rss-plan-item.rss-plan-rss(href=theme.footer.rss.rssOA, title="rss", target="_blank")
17
+ .rss-plan-description 推送全部文章<br>推送简介
18
+ .rss-plan-info-group
19
+ .rss-plan-title RSS
20
+ .rss-plan-info 备用订阅方式
21
+ img.rss-plan-icon(src="https://bu.dusays.com/2023/11/01/6541d184e2a09.png", alt="rss")
22
+ != page.content
@@ -0,0 +1,20 @@
1
+ if theme.says.enable
2
+ - var pageClass = "essayPage"
3
+ include ../widgets/page/banner
4
+ #bber
5
+ section.timeline.page-1
6
+ ul.list#waterfall
7
+ - var limitedList = site.data.essay.essay_list.slice(0, 30)
8
+ each item in limitedList
9
+ li.item
10
+ if theme.says.style === 2
11
+ include ../widgets/page/says/saysMeta
12
+ include ../widgets/page/says/saysContent
13
+ include ../widgets/page/says/saysFunction
14
+ if theme.says.style === 1
15
+ hr
16
+ include ../widgets/page/says/saysBottom
17
+ #bber-tips(style="color: var(--sco-secondtext);") - 只展示最近30条短文 -
18
+
19
+ script.
20
+ sco.reflashEssayWaterFall()
@@ -0,0 +1,8 @@
1
+ h1.page-title(style='display: inline-block')= __('page.tag')
2
+ div.category-lists
3
+ div.tag-cloud-list.is-center
4
+ each tag in site.tags.find({ parent: { $exists: false } }).data
5
+ a(href=url_for(tag.path))
6
+ span.tags-punctuation
7
+ = tag.name
8
+ span.tagsPageCount= tag.length
@@ -0,0 +1,9 @@
1
+ - var pageClass = "essayPage"
2
+ include ../widgets/page/banner
3
+ .flink#article-container
4
+ each data in site.data.tlink.links
5
+ h2= data.class_name
6
+ .flink-desc= data.descr
7
+ include ../widgets/page/links/linksItem
8
+
9
+ != page.content
@@ -0,0 +1,9 @@
1
+
2
+ if page.posts.length > 0
3
+ #recent-posts
4
+ h1 Recent Posts
5
+ each post in page.posts.sort('date', -1).limit(10).toArray()
6
+ .recent-post-item
7
+ a(href=url_for(post.path))= post.title
8
+ if post.date
9
+ time(datetime=post.date.toJSON())= date(post.date, date_format)
@@ -0,0 +1,17 @@
1
+ div#sidebar(style="zoom: 1;")
2
+ div#menu-mask(style="display: none;")
3
+ div#sidebar-menus
4
+ span.sidebar-menu-item-title= "功能"
5
+ div.sidebar-menu-item
6
+ a.darkmode_switchbutton.menu-child(onclick="sco.switchDarkMode()", title="显示模式切换", href="javascript:void(0);" rel="nofollow" data-pjax-state)
7
+ i.scoicon.sco-moon-clear-fill(style="font-size: 1rem;")
8
+ span= "显示模式"
9
+ if theme.nav.left.enable
10
+ include ./widgets/nav/left.pug
11
+ include ./widgets/nav/menu.pug
12
+ span.sidebar-menu-item-title= "标签"
13
+ div.card-widget.card-tags.card-archives.card-webinfo.card-allinfo
14
+ div.card-tag-cloud
15
+ each tag in site.tags.data
16
+ a(href=url_for(tag.path), style="font-size: 1rem; color: #d3d3d3")= tag.name
17
+ sup= tag.length
@@ -0,0 +1,18 @@
1
+ .aside-content#aside-content
2
+ - var noSticky, Sticky;
3
+ if(is_home())
4
+ - noSticky = theme.aside.home.noSticky.split(',')
5
+ - Sticky = theme.aside.home.Sticky.split(',')
6
+ else if(is_post())
7
+ - noSticky = theme.aside.post.noSticky.split(',')
8
+ - Sticky = theme.aside.post.Sticky.split(',')
9
+ else if(is_page() || is_archive() || is_tag() || is_category())
10
+ - noSticky = theme.aside.page.noSticky.split(',')
11
+ - Sticky = theme.aside.page.Sticky.split(',')
12
+ each item in noSticky
13
+ include ./asideSwitch.pug
14
+ .sticky_layout
15
+ if page.toc
16
+ include ./asideToc.pug
17
+ each item in Sticky
18
+ include ./asideSwitch.pug
@@ -0,0 +1,8 @@
1
+ .card-widget.card-tags.card-archives.card-webinfo.card-allinfo
2
+ if theme.aside.tags.enable
3
+ include ./asideTag
4
+ hr
5
+ if theme.aside.archive.enable
6
+ include ./asideArchive
7
+ hr
8
+ include ./asideWebInfo
@@ -0,0 +1,9 @@
1
+ ul.card-archive-list
2
+ - var type = locals.type ? locals.type : 'year'
3
+ each value, key in getArchiveLength(type)
4
+ li.card-archive-list-item
5
+ a.card-archive-list-link(onclick=`pjax.loadUrl('/archives/${key}/')`, data-pjax-state="", href="javascript:void(0);")
6
+ span.card-archive-list-date= key
7
+ .card-archive-list-count-group
8
+ span.card-archive-list-count= value
9
+ span.card-archive-list-count-unit 篇
@@ -0,0 +1,5 @@
1
+ .card-widget.card-platform
2
+ #flip-wrapper
3
+ #flip-content
4
+ .face
5
+ .back.face
@@ -0,0 +1,8 @@
1
+ if theme.aside.history.enable
2
+ .card-widget.card-history
3
+ .item-headline
4
+ i(class=theme.aside.history.icon || 'scoicon sco-clock-fill')
5
+ span= theme.aside.history.title || '那年今日'
6
+ #history-baidu(style="height: 100px;overflow: hidden")
7
+ #history-container.history_swiper-container(style="width: 100%;height: 100%;margin-top: 6px")
8
+ #history_container_wrapper.swiper-wrapper(style="height:20px")
@@ -0,0 +1,22 @@
1
+ .card-widget.card-info
2
+ .card-content
3
+ .card-info-avatar.is-center
4
+ .author-info__top-group
5
+ .author-info__sayhi#author-info__sayhi(onclick="sco.changeSayHelloText()") 一日之计在于晨
6
+ .avatar-img-group
7
+ img.avatar-img(alt="avatar", src=theme.aside.card.author.img)
8
+ .avatar-sticker
9
+ svg.avatar-sticker-img(alt="avatar", aria-hidden="true")
10
+ use(xlink:href=theme.aside.card.author.state)
11
+ script(src=url_for(theme.aside.card.author.js))
12
+ .author-info__description_group
13
+ .author-info__description!= theme.aside.card.content
14
+ .author-info__description2!= theme.aside.card.content2
15
+ .author-info__bottom-group
16
+ a.author-info__bottom-group-left(href=theme.about ? "/about" : "/", data-pjax-state)
17
+ .author-info__name= config.author
18
+ .author-info__desc!= config.subtitle
19
+ .card-info-social-icons.is-center
20
+ each value, key in theme.aside.card.information
21
+ a.social-icon(href=url_for(value.url), title=key)
22
+ i(class=value.icon)
@@ -0,0 +1,16 @@
1
+ .card-widget.card-recent-post
2
+ .item-headline
3
+ i.scoicon.sco-map-line
4
+ span 最近发布
5
+ .aside-list
6
+ - let index = 1
7
+ each post in site.posts.data.sort((a, b) => b.date < a.date ? -1 : 1)
8
+ if index <= 5
9
+ .aside-list-item
10
+ a.thumbnail(href=url_for(post.path) title=post.title)
11
+ img(alt=post.title src=post.cover)
12
+ .content
13
+ a.title(href=url_for(post.path) title=post.title)= post.title
14
+ if post.categories.data[0]
15
+ a.article-recent_post_categories(href=url_for(post.path))= post.categories.data[0].name
16
+ - index++
@@ -0,0 +1,19 @@
1
+ - const data = theme.aside.power.list
2
+ - const vip = data[Math.floor(Math.random() * data.length)]
3
+ .card-widget.card-power
4
+ .item-headline
5
+ i.scoicon.sco-afdian-line
6
+ span 爱发电赞助
7
+ a.power-charge(href=theme.aside.power.link, rel="external nofollow", target="_blank", title="赞助博主") 赞助
8
+ a#power-star(data-pjax-state="", href=vip.link)
9
+ #power-star-image(style=`background-image: url('${vip.avatar}');`)
10
+ .power-star-body
11
+ #power-star-title= vip.name
12
+ #power-star-desc= vip.descr
13
+ .power-list
14
+ .power-item
15
+ .power-item-body
16
+ each item in data
17
+ if item.name !== vip.name
18
+ .power-item-link
19
+ a(target="_blank", href=item.link, rel="external nofollow")= item.name
@@ -0,0 +1,26 @@
1
+ case item
2
+ when 'power'
3
+ include ./asidePower.pug
4
+ when 'about'
5
+ include ./asideInfoCard.pug
6
+ when 'flip'
7
+ include ./asideFlipCard.pug
8
+ when 'welcome'
9
+ include ./asideWelcome.pug
10
+ when 'history'
11
+ include ./asideHistory.pug
12
+ when 'newestPost'
13
+ include ./asideNewestPost.pug
14
+ when 'tag'
15
+ .card-widget.card-tags
16
+ include ./asideTag.pug
17
+ when 'archive'
18
+ .card-widget.card-archives
19
+ include ./asideArchive.pug
20
+ when 'webInfo'
21
+ .card-widget.card-webinfo
22
+ include ./asideWebInfo.pug
23
+ when 'allInfo'
24
+ include ./asideAllInfo.pug
25
+ default
26
+ include ../../page/default.pug
@@ -0,0 +1,11 @@
1
+ .card-tag-cloud
2
+ each tag in site.tags.data
3
+ a(href=url_for(tag.path), style="font-size: 0.8rem;")= tag.name
4
+ sup= tag.length
5
+ if site.tags.length > 50
6
+ a#more-tags-btn(href="javascript:void(0);", rel="external nofollow", onclick="sco.openAllTags();", data-pjax-state="") 查看全部
7
+ else
8
+ style.
9
+ .card-tag-cloud::after {
10
+ display: none !important;
11
+ }
@@ -0,0 +1,5 @@
1
+ .card-widget#card-toc
2
+ .item-headline
3
+ i.scoicon.sco-menu-line
4
+ span 文章目录
5
+ .toc-content#toc-content!= toc(page.content, { list_number: false })
@@ -0,0 +1,40 @@
1
+ .webinfo
2
+ if theme.aside.siteinfo.postcount
3
+ .webinfo-item
4
+ .webinfo-item-title
5
+ i.item-icon.scoicon.sco-folder-fill
6
+ .item-name 文章总数 :
7
+ .item-count= site.posts.length
8
+ if theme.thirdparty.busuanzi
9
+ if theme.aside.siteinfo.pv
10
+ .webinfo-item
11
+ .webinfo-item-title
12
+ i.item-icon.scoicon.sco-visitor-line
13
+ .item-name 总访问数 :
14
+ span#busuanzi_value_site_pv
15
+ i.scoicon.sco-loading-line
16
+ if theme.aside.siteinfo.uv
17
+ .webinfo-item
18
+ .webinfo-item-title
19
+ i.item-icon.scoicon.sco-team-fill
20
+ .item-name 总访客数 :
21
+ span#busuanzi_value_site_uv
22
+ i.scoicon.sco-loading-line
23
+ if theme.aside.siteinfo.runtimeenable
24
+ .webinfo-item
25
+ .webinfo-item-title
26
+ i.item-icon.scoicon.sco-calendar-todo-fill
27
+ .item-name 建站天数 :
28
+ .item-count#runtimeshow
29
+ if theme.aside.siteinfo.updatetime
30
+ .webinfo-item
31
+ .webinfo-item-title
32
+ i.item-icon.scoicon.sco-loop-left-fill
33
+ .item-name 最后更新 :
34
+ time.item-count(datetime=new Date())
35
+ if theme.thirdparty.wordcount && theme.aside.siteinfo.wordcount
36
+ .webinfo-item
37
+ .webinfo-item-title
38
+ i.item-icon.scoicon.sco-word-fill
39
+ .item-name 全站字数 :
40
+ .item-count= totalcount(site)
@@ -0,0 +1,12 @@
1
+ if theme.aside.welcome.enable
2
+ .card-widget.card-welcome
3
+ .item-headline
4
+ i(class=theme.aside.welcome.icon || 'scoicon sco-map-pin-fill')
5
+ span= theme.aside.welcome.title || '来访者'
6
+ #welcome-info
7
+
8
+ script(data-pjax).
9
+ var longitude = '#{theme.aside.welcome.longitude}';
10
+ var Latitude = '#{theme.aside.welcome.Latitude}';
11
+ var txkey = '#{theme.aside.welcome.key}';
12
+ var ipLoacation;
@@ -0,0 +1,16 @@
1
+ div.banners-title
2
+ div.banners-title-big!= theme.hometop.banner.title
3
+ div.banners-title-small= theme.hometop.banner.url
4
+ div.tags-group-all
5
+ .tags-group-wrapper
6
+ each i in [1,2]
7
+ - var keys = Object.keys(theme.hometop.banner.icon)
8
+ - var pairs = keys.map((val, i) => i % 2 ? [keys[i - 1], val] : []).filter(x => x.length)
9
+ each pair in pairs
10
+ .tags-group-icon-pair
11
+ each key in pair
12
+ .tags-group-icon(style=`background: ${theme.hometop.banner.icon[key].color}`)
13
+ img(src=theme.hometop.banner.icon[key].img, title=key)
14
+ a#banner-hover(onclick="toRandomPost()" data-pjax-state="")
15
+ span.bannerText 随便逛逛
16
+ i.scoicon.sco-arrow-2-right-line.banner-righticon
@@ -0,0 +1,8 @@
1
+ .bbTimeList.container#bbTimeList
2
+ i.bber-logo.scoicon.sco-says(onclick="pjax.loadUrl('/essay/')", style="font-size: 1rem;")
3
+ .swiper-container.swiper-no-swiping.swiper-container-initialized.swiper-container-vertical.swiper-container-pointer-events#bbtalk(tabindex="-1", onclick="pjax.loadUrl('/essay/')")
4
+ .swiper-wrapper#bber-talk
5
+ each item, i in site.data.essay.essay_list
6
+ if i < 10
7
+ .li-style.swiper-slide= item.image ? item.content + '【图片】' : item.content
8
+ i.bber-gotobb.scoicon.sco-right-btn-fill(style="font-size: 1rem", title="查看全文", onclick="pjax.loadUrl('/essay/')")
@@ -0,0 +1,10 @@
1
+ .category-bar-items#category-bar-items
2
+ .category-bar-item(class=is_home() ? 'select' : '', id="category-bar-home")
3
+ a(href="/") 首页
4
+ each item in site.tags.find({ parent: { $exists: false } }).data
5
+ .category-bar-item(class=select ? (select === item.name ? 'select' : '') : '', id=item.name)
6
+ a(href=url_for(item.path))= item.name
7
+ if site.categories.length > 10
8
+ .category-bar-next#category-bar-next(onclick="sco.scrollCategoryBarToRight()")
9
+ i.scoicon.sco-show-right-line
10
+ a.category-bar-more(href="/categories/") 更多
@@ -0,0 +1,9 @@
1
+ - var groupNames = ['G1', 'G2', 'G3'];
2
+ - var styles = ['--sco-shadow-blue', '--sco-shadow-red', '--sco-shadow-green'];
3
+ - var classes = ['CB1 bikan', 'remen', 'shiyong'];
4
+
5
+ each groupName, index in groupNames
6
+ .categoryItem(style=`box-shadow: var(${styles[index]});`)
7
+ a.categoryButton(class=classes[index], href=url_for(theme.hometop.categoryGroup[groupName].url))
8
+ span.categoryButtonText= theme.hometop.categoryGroup[groupName].name
9
+ i(class=theme.hometop.categoryGroup[groupName].icon)
@@ -0,0 +1,9 @@
1
+ div.recent-top-post-group#recent-top-post-group
2
+ div.recent-post-top#recent-post-top
3
+ div#bannerGroup
4
+ div#banners
5
+ include ./banner.pug
6
+ div.categoryGroup
7
+ include ./categoryGroup.pug
8
+ div.topGroup
9
+ include ./rencentPost.pug
@@ -0,0 +1,26 @@
1
+ for post in page.posts.sort('-date').data
2
+ div(class="recent-post-item" onclick="pjax.loadUrl('/"+post.path+"')")
3
+ div.post_cover.left_radius
4
+ a(href=url_for(post.path), title=post.title)
5
+ img(src=url_for(post.cover), alt=post.title, class="post_bg")
6
+ div.recent-post-info
7
+ div.recent-post-info-top
8
+ div.recent-post-info-top-tips
9
+ each category in post.categories.data
10
+ span(class="original")= category.name
11
+
12
+ if post.prev == null && is_home()
13
+ span(class="original")="最新"
14
+
15
+ a(class="unvisited-post" href=url_for(post.path), data-pjax-state)= "未读"
16
+
17
+ a(class="article-title" href=url_for(post.path), data-pjax-state, title=post.title)= post.title
18
+
19
+ div.article-meta-wrap
20
+ span.article-meta.tags
21
+ each tag in post.tags.data
22
+ a(class="article-meta__tags" href=url_for(tag.path), data-pjax-state, onclick="window.event.cancelable=true")
23
+ span.tags-punctuation=tag.name
24
+
25
+ span.post-meta-date
26
+ time(datetime=moment(post.date))
@@ -0,0 +1,26 @@
1
+ - var filteredPosts = site.posts.data.filter(item => item.recommend === true).slice(0,6)
2
+ each post in filteredPosts
3
+ .recent-post-item
4
+ .post_cover.left_radius
5
+ a(href=url_for(post.path), title=post.title)
6
+ span.recent-post-top-text 荐
7
+ img.post_bg(alt=post.title, src=post.cover, loading="lazy")
8
+ .recent-post-info
9
+ a.article-title(href=url_for(post.path), title=post.title)= post.title
10
+
11
+ if theme.hometop.recommendList.url.startsWith('/') && theme.hometop.recommendList.url.endsWith('/')
12
+ .todayCard#todayCard(onclick=`pjax.loadUrl('${theme.hometop.recommendList.url}')`, style="z-index: 1;")
13
+ else
14
+ script.
15
+ function GoTodayCard() {
16
+ window.open("#{theme.hometop.recommendList.url}", "_blank");
17
+ }
18
+ .todayCard#todayCard(onclick="GoTodayCard()", style="z-index: 1;")
19
+ .todayCard-info
20
+ .todayCard-tips= theme.hometop.recommendList.sup
21
+ .todayCard-title= theme.hometop.recommendList.title
22
+ .todayCard-cover.nolazyload(style=`background: url('${theme.hometop.recommendList.img}') no-repeat center /cover`)
23
+ .banner-button-group
24
+ a.banner-button(onclick="window.event.cancelBubble=true;sco.hideTodayCard();")
25
+ i.scoicon.sco-add-fill
26
+ span.banner-button-text 更多推荐
@@ -0,0 +1,27 @@
1
+ - var filteredPosts = site.posts.data.filter(item => item.recommend === true).slice(0,6)
2
+ each post in filteredPosts
3
+ .recent-post-item
4
+ .post_cover.left_radius
5
+ a(href=url_for(post.path), title=post.title)
6
+ span.recent-post-top-text 荐
7
+ img.post_bg(alt=post.title, src=post.cover, loading="lazy")
8
+ .recent-post-info
9
+ a.article-title(href=url_for(post.path), title=post.title)= post.title
10
+
11
+ if theme.hometop.recommendList.url.startsWith('/') && theme.hometop.recommendList.url.endsWith('/')
12
+ .todayCard#todayCard(onclick=`pjax.loadUrl('${theme.hometop.recommendList.url}')`, style="z-index: 1;")
13
+ else
14
+ script.
15
+ function GoTodayCard() {
16
+ window.open("#{theme.hometop.recommendList.url}", "_blank");
17
+ }
18
+ .todayCard#todayCard(onclick="GoTodayCard()", style="z-index: 1;")
19
+
20
+ .todayCard-info
21
+ .todayCard-tips= theme.hometop.recommendList.sup
22
+ .todayCard-title= theme.hometop.recommendList.title
23
+ .todayCard-cover.nolazyload(style=`background: url('${theme.hometop.recommendList.img}') no-repeat center /cover`)
24
+ .banner-button-group
25
+ a.banner-button(onclick="window.event.cancelBubble=true;sco.hideTodayCard();")
26
+ i.scoicon.sco-add-fill
27
+ span.banner-button-text 更多推荐
@@ -0,0 +1,10 @@
1
+ div.back-menu-list-groups
2
+ - var menu = theme.nav && theme.nav.left && theme.nav.left.menu ? theme.nav.left.menu : {}
3
+ each groupData, x in menu
4
+ div.back-menu-list-group
5
+ div.back-menu-list-title= x
6
+ div.back-menu-list
7
+ each data, y in groupData
8
+ a.back-menu-item(href=url_for(data.url), rel="external nofollow", title=y)
9
+ img.back-menu-item-icon(src=data.icon, loading="lazy", alt=x)
10
+ span.back-menu-item-text= y
@@ -0,0 +1,16 @@
1
+ div.menus_items
2
+ - var menu = theme.nav && theme.nav.menu ? theme.nav.menu : {}
3
+ each value, x in menu
4
+ div.menus_item
5
+ if !value.url
6
+ a.site-page(href="javascript:void(0);", rel="external nofollow")
7
+ span= x
8
+ ul.menus_item_child
9
+ each childValue, y in value.child
10
+ li
11
+ a.site-page.child(href=url_for(childValue.url))
12
+ i(class=childValue.icon)
13
+ span= y
14
+ else
15
+ a.site-page.not-child(href=url_for(value.url), rel="external nofollow")
16
+ span= x
@@ -0,0 +1,23 @@
1
+ if theme.nav.right.travellings
2
+ div.nav-button.only-home#travellings_button
3
+ a.site-page(traget="_blank", href="https://www.travellings.cn/go.html", rel="noopener noreferrer", title="开往-友链接力", width="120")
4
+ i.scoicon.sco-train-line(style="font-size: 1rem;")
5
+ if theme.nav.right.random
6
+ div.nav-button#randomPost_button
7
+ a.site-page(onclick="toRandomPost()", title="随机前往一个文章")
8
+ i.scoicon.sco-signal-tower-fill(style="font-size: 1rem;")
9
+ if theme.thirdparty.search.enable
10
+ div.nav-button#search-button
11
+ a.site-page.social-icon.search(href="javascript:void(0);", rel= "external nofollow", title="搜索")
12
+ i.scoicon.sco-search-line(style="font-size: 1rem;")
13
+ if theme.nav.right.console
14
+ div.nav-button#nav-console
15
+ a.console_switchbutton(onclick="sco.showConsole()", title="显示中控台", rel="external nofollow", href="javascript:void(0);")
16
+ i.scoicon.sco-dashboard-fill(style="font-size: 1rem;")
17
+ div.nav-button#nav-totop(onclick="sco.toTop()")
18
+ a.totopbtn
19
+ i.scoicon.sco-arrow-up-line
20
+ span#percent= "0"
21
+ div#toggle-menu
22
+ a.site-page
23
+ i.scoicon.sco-menu-line
@@ -0,0 +1,12 @@
1
+ - const authorinfo = site.data.about.authorinfo
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
12
+ .author-title 关于我