hexo-theme-solitude 1.4.6 → 1.5.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 (87) hide show
  1. package/CONTRIBUTING.md +16 -3
  2. package/README.md +2 -2
  3. package/README_EN.md +2 -2
  4. package/_config.yml +155 -230
  5. package/languages/en-US.yml +5 -2
  6. package/languages/zh-CN.yml +5 -2
  7. package/languages/zh-TW.yml +5 -2
  8. package/layout/404.pug +2 -2
  9. package/layout/includes/footer.pug +8 -6
  10. package/layout/includes/head/config.pug +7 -7
  11. package/layout/includes/head/opengraph.pug +5 -4
  12. package/layout/includes/head/pwa.pug +2 -3
  13. package/layout/includes/inject/body.pug +17 -19
  14. package/layout/includes/inject/head.pug +3 -2
  15. package/layout/includes/mixins/pagination.pug +1 -1
  16. package/layout/includes/nav.pug +3 -3
  17. package/layout/includes/page/says.pug +44 -7
  18. package/layout/includes/sidebar.pug +1 -1
  19. package/layout/includes/widgets/aside/asideInfoCard.pug +4 -3
  20. package/layout/includes/widgets/home/banner.pug +11 -4
  21. package/layout/includes/widgets/home/bbTimeList.pug +13 -7
  22. package/layout/includes/widgets/home/categoryGroup.pug +11 -8
  23. package/layout/includes/widgets/home/hometop.pug +1 -2
  24. package/layout/includes/widgets/home/postList.pug +3 -3
  25. package/layout/includes/widgets/nav/group.pug +13 -0
  26. package/layout/includes/widgets/nav/menu.pug +20 -16
  27. package/layout/includes/widgets/page/about/award.pug +1 -1
  28. package/layout/includes/widgets/page/banner.pug +8 -13
  29. package/layout/includes/widgets/page/equipment/content.pug +1 -1
  30. package/layout/includes/widgets/page/links/linksCard.pug +0 -1
  31. package/layout/includes/widgets/third-party/comments/waline.pug +2 -0
  32. package/layout/includes/widgets/third-party/news-comment/twikoo.pug +2 -2
  33. package/layout/includes/widgets/third-party/news-comment/waline.pug +2 -2
  34. package/layout/includes/widgets/third-party/search/algolia-search.pug +1 -1
  35. package/layout/includes/widgets/third-party/search/local-search.pug +1 -1
  36. package/layout/index.pug +6 -6
  37. package/layout/page.pug +0 -2
  38. package/package.json +1 -1
  39. package/plugins.yml +0 -5
  40. package/scripts/event/init.js +18 -17
  41. package/scripts/event/welcome.js +1 -1
  42. package/scripts/generator/gallery.js +29 -27
  43. package/scripts/helper/getArchiveLength.js +5 -9
  44. package/scripts/helper/related_post.js +28 -39
  45. package/scripts/helper/stylus.js +23 -8
  46. package/source/css/_global/animation.styl +313 -0
  47. package/source/css/_layout/basic.styl +10 -1
  48. package/source/css/_layout/header.styl +5 -5
  49. package/source/css/_layout/index.styl +0 -1
  50. package/source/css/_page/_about/skills.styl +1 -1
  51. package/source/css/_page/_home/category-bar.styl +14 -14
  52. package/source/css/_page/_home/home-top.styl +57 -45
  53. package/source/css/_page/_home/recent-post.styl +1 -1
  54. package/source/css/_page/equipment.styl +3 -2
  55. package/source/css/_page/home.styl +0 -15
  56. package/source/css/_page/index.styl +0 -2
  57. package/source/css/_page/links.styl +9 -8
  58. package/source/css/_page/says.styl +1 -2
  59. package/source/css/_page/share.styl +30 -67
  60. package/source/css/_widgets/_aside/index.styl +1 -1
  61. package/source/css/_widgets/_aside/info.styl +1 -1
  62. package/source/css/_widgets/_comment/twikoo.styl +4 -6
  63. package/source/css/_widgets/_comment/waline.styl +435 -72
  64. package/source/css/_widgets/_extra/console.styl +1 -1
  65. package/source/css/_widgets/_extra/fullpage.styl +1 -1
  66. package/source/css/_widgets/_mixins/footer.styl +1 -1
  67. package/source/css/_widgets/_post/content.styl +1 -11
  68. package/source/css/_widgets/_post/meta.styl +2 -2
  69. package/source/css/_widgets/_post/relatedPost.styl +1 -1
  70. package/source/css/_widgets/_post/tools.styl +1 -1
  71. package/source/css/_widgets/_search/algolia-search.styl +4 -2
  72. package/source/css/_widgets/_tags/note.styl +4 -0
  73. package/source/css/index.styl +0 -1
  74. package/source/js/comment/twikoo_commentBarrage.js +76 -75
  75. package/source/js/covercolor/local.js +11 -10
  76. package/source/js/main.js +27 -35
  77. package/source/js/music.js +89 -49
  78. package/layout/includes/page/rss.pug +0 -20
  79. package/layout/includes/widgets/home/bb/json.pug +0 -25
  80. package/layout/includes/widgets/home/bb/local.pug +0 -20
  81. package/layout/includes/widgets/home/bb/memos.pug +0 -28
  82. package/layout/includes/widgets/nav/left.pug +0 -10
  83. package/layout/includes/widgets/page/says/json.pug +0 -82
  84. package/layout/includes/widgets/page/says/local.pug +0 -44
  85. package/layout/includes/widgets/page/says/memos.pug +0 -111
  86. package/source/css/_global/animation.css +0 -813
  87. package/source/css/_page/rss.styl +0 -82
@@ -12,16 +12,18 @@ div#footer_deal
12
12
  - var leftInfo = theme.footer && theme.footer.information && theme.footer.information.left || {}
13
13
  - var rightInfo = theme.footer && theme.footer.information && theme.footer.information.right || {}
14
14
 
15
- each value, i in leftInfo
16
- a.deal_link(href=url_for(value.url), title=i)
17
- i.scoicon(class=value.icon)
15
+ each value, label in leftInfo
16
+ - var array = value.split('||')
17
+ a.deal_link(href=url_for(trim(array[0])), title=label)
18
+ i.scoicon(class=array[1])
18
19
 
19
20
  div#footer_mini_logo.footer_mini_logo(title=_p('nav.backtop'), onclick="sco.toTop()")
20
21
  img(src=theme.site.icon, alt=_p('nav.backtop'))
21
22
 
22
- each value, i in rightInfo
23
- a.deal_link(href=url_for(value.url), title=i)
24
- i.scoicon(class=value.icon)
23
+ each value, label in rightInfo
24
+ - var array = value.split('||')
25
+ a.deal_link(href=url_for(trim(array[0])), title=label)
26
+ i.scoicon(class=array[1])
25
27
  div#sco-footer
26
28
  - var group = theme.footer && theme.footer.group ? theme.footer.group : {}
27
29
 
@@ -7,7 +7,7 @@
7
7
  localSearch = JSON.stringify({
8
8
  preload: theme.search.local.preload,
9
9
  path: theme?.search?.local?.CDN || '/search.xml'
10
- })
10
+ });
11
11
  break;
12
12
  case 'algolia':
13
13
  algolia = JSON.stringify({
@@ -17,7 +17,7 @@
17
17
  hits: {
18
18
  per_page: theme?.search?.algolia?.hits?.per_page || 10
19
19
  }
20
- })
20
+ });
21
21
  break;
22
22
  }
23
23
  }
@@ -27,12 +27,12 @@
27
27
  translate = JSON.stringify({
28
28
  defaultEncoding: theme.translate.defaultEncoding,
29
29
  translateDelay: theme.translate.translateDelay,
30
- })
30
+ });
31
31
  }
32
32
 
33
- const commentInfoStart = theme.comment.randomInfoStart.map(item => `"${item}"`) || ""
34
- const commentInfoEnd = theme.comment.randomInfoEnd.map(item => `"${item}"`) || ""
35
- var sayhello2 = theme.aside.card.sayhello2.map(item => `"${item}"`) || []
33
+ const commentInfoStart = theme.comment.randomInfoStart.map(item => `"${item}"`) || [];
34
+ const commentInfoEnd = theme.comment.randomInfoEnd.map(item => `"${item}"`) || [];
35
+ const sayhello2 = theme.aside.card.sayhello2.map(item => `"${item}"`) || [];
36
36
 
37
37
  script.
38
38
  const GLOBAL_CONFIG = {
@@ -119,4 +119,4 @@ script.
119
119
  enable: !{theme.music.enable},
120
120
  },
121
121
  translate: !{translate},
122
- }
122
+ };
@@ -1,10 +1,11 @@
1
1
  if theme.opengraph.enable
2
2
  -
3
3
  const coverVal = page.cover || theme.site.siteIcon
4
- let ogOption = Object.assign({
5
- type: is_post() ? 'article' : 'website',
6
- image: coverVal ? full_url_for(coverVal) : '',
7
- }, theme.opengraph.options)
4
+ let ogOption = {
5
+ type: is_post() ? 'article' : 'website',
6
+ image: coverVal ? full_url_for(coverVal) : '',
7
+ ...theme.opengraph.options
8
+ }
8
9
  -
9
10
  != open_graph(ogOption)
10
11
  else
@@ -1,11 +1,11 @@
1
1
  if theme.pwa.enable
2
2
  meta(name="theme-color", content=theme.pwa.theme_color)
3
3
  link(rel="manifest" href=url_for(theme.pwa.manifest))
4
- if(theme.pwa.theme_color)
4
+ if theme.pwa.theme_color
5
5
  meta(name="msapplication-TileColor" content=theme.pwa.theme_color)
6
6
  if theme.pwa.mask_icon
7
7
  link(rel="mask-icon", href=theme.pwa.mask_icon, color=theme.pwa.theme_color)
8
- if(theme.pwa.apple_touch_icon)
8
+ if theme.pwa.apple_touch_icon
9
9
  link(rel="apple-touch-icon" sizes="180x180" href=url_for(theme.pwa.apple_touch_icon))
10
10
  if theme.pwa.favicon_16_16
11
11
  link(rel="icon", type="image/png", sizes="16x16", href=theme.pwa.favicon_16_16)
@@ -13,7 +13,6 @@ if theme.pwa.enable
13
13
  link(rel="icon", type="image/png", sizes="32x32", href=theme.pwa.favicon_32_32)
14
14
  if theme.pwa.bookmark_icon
15
15
  link(rel="bookmark", href=theme.pwa.bookmark_icon)
16
-
17
16
  else
18
17
  meta(name="apple-mobile-web-app-capable", content=config.title)
19
18
  link(rel="bookmark", href=theme.site.siteIcon)
@@ -1,5 +1,15 @@
1
1
  - page.type = is_post() ? 'post' : page.type
2
2
 
3
+ mixin katex
4
+ if theme.katex.copytex
5
+ script(src=url_for(theme.cdn.katex_copytex))
6
+ script.
7
+ (() => {
8
+ document.querySelectorAll('#article-container span.katex-display').forEach(item => {
9
+ utils.wrap(item, 'div', {class: 'katex-wrap'})
10
+ })
11
+ })();
12
+
3
13
  div
4
14
  script(src=url_for(theme.cdn.main))
5
15
  script(src=url_for(theme.cdn.utils))
@@ -19,24 +29,11 @@ div
19
29
  if theme.translate.enable
20
30
  script(src=url_for(theme.cdn.translate))
21
31
 
22
- mixin katex
23
- link(rel="stylesheet", href=url_for(theme.cdn.katex))
24
- if theme.katex.copytex
25
- script(src=url_for(theme.cdn.katex_copytex))
26
- script.
27
- (() => {
28
- document.querySelectorAll('#article-container span.katex-display').forEach(item => {
29
- utils.wrap(item, 'div', {class: 'katex-wrap'})
30
- })
31
- })()
32
-
33
32
  if theme.katex && theme.katex.enable
34
- if theme.katex.per_page
35
- if is_post() || is_page()
36
- +katex
37
- else
38
- if page.katex
39
- +katex
33
+ if theme.katex.per_page && (is_post() || is_page())
34
+ +katex
35
+ else if page.katex
36
+ +katex
40
37
 
41
38
  script(src=url_for(theme.cdn.pjax))
42
39
  if theme.lazyload.enable
@@ -80,8 +77,6 @@ div
80
77
  script(src=url_for(theme.cdn.twikoo))
81
78
  when 'waline'
82
79
  script(src=url_for(theme.cdn.waline_js))
83
- link(rel="stylesheet", href=url_for(theme.cdn.waline_css))
84
-
85
80
  if theme.comment.commentBarrage
86
81
  case theme.comment.type
87
82
  when 'twikoo'
@@ -111,6 +106,9 @@ div#js-pjax
111
106
  if page.type === 'album' && theme.album.enable
112
107
  script.
113
108
  initGallery()
109
+ if is_home() && theme.says.home_mini
110
+ script.
111
+ sco.initbbtalk();
114
112
  if page.type === 'says' && theme.says.enable
115
113
  script.
116
114
  window.addEventListener('resize', utils.throttle(function () {
@@ -15,6 +15,9 @@ if theme.says.home_mini
15
15
  if theme.lightbox && theme.fancybox
16
16
  link(rel="stylesheet", href=url_for(theme.cdn.fancyapps_css))
17
17
 
18
+ if theme.katex && theme.katex.enable
19
+ link(rel="stylesheet", href=url_for(theme.cdn.katex))
20
+
18
21
  // Open Graph
19
22
  include ../head/opengraph.pug
20
23
 
@@ -78,8 +81,6 @@ script.
78
81
  "%c🔥 !{_p('head.console')}",
79
82
  "color: #fff; background: linear-gradient(-25deg, #a8edea, #fed6e3); padding: 8px 15px; border-radius: 8px; text-shadow: 2px 2px 4px white; color: black;"
80
83
  );
81
-
82
- // custom inject
83
84
  if theme.extends.head
84
85
  each item in theme.extends.head
85
86
  != item
@@ -3,6 +3,6 @@ nav#pagination
3
3
  - var options = {mid_size: 1,escape: false,next_text: '<div class="pagination_tips_next">下页</div> <i class="scoicon sco-arrow-right-bold"></i>',prev_text: '<i class="scoicon sco-arrow-left-bold"></i> <div class="pagination_tips_prev">上页</div>'}
4
4
  !=paginator(options)
5
5
  div.toPageGroup
6
- input#toPageText(oninput="value=value.replace(/[^0-9]/g,'')", maxlength="3", title="跳转到指定页面", onkeyup="if (this.value === '0') this.value = ''")
6
+ input#toPageText(oninput="value=value.replace(/[^0-9]/g,'')" maxlength="3" title="跳转到指定页面" onkeyup="if (this.value === '0') this.value = ''")
7
7
  a#toPageButton(onclick="sco.toPage()")
8
8
  i.scoicon.sco-show-right-line
@@ -1,11 +1,11 @@
1
1
  nav#nav.show
2
2
  #nav-group
3
3
  #blog_name
4
- if theme.nav.left.enable
4
+ if theme.nav.group
5
5
  .back-home-button(tabindex="-1")
6
6
  i.back-home-button-icon.scoicon.sco-more-fill
7
- include ./widgets/nav/left.pug
8
- a#site-name(href="/", title=_p('nav.site_name_title'), target="_self")
7
+ include ./widgets/nav/group
8
+ a#site-name(href="/", title=_p('nav.site_name_title'))
9
9
  if theme.site.name.class === 'i_class'
10
10
  i.scoicon(class=theme.site.name.custom, style="font-size: 16px;")
11
11
  else if theme.site.name.class === 'img'
@@ -3,13 +3,50 @@ if theme.says.enable
3
3
  #bber
4
4
  section.timeline.page-1
5
5
  ul.list#waterfall
6
- case theme.says.mode
7
- when 'local'
8
- include ../widgets/page/says/local
9
- when 'json'
10
- include ../widgets/page/says/json
11
- when 'memos'
12
- include ../widgets/page/says/memos
6
+ each item in site.data.essay.essay_list.slice(0, theme.says.strip)
7
+ li.item
8
+ if theme.says.style === 2
9
+ .meta
10
+ img.avatar(src=theme.aside.card.author.img)
11
+ .info
12
+ span.bber_nick= config.author
13
+ time.datetime.bber_date(datetime=moment(item.date).format())
14
+ if item.content
15
+ a.bber-reply.goComment(onclick=`sco.toTalk('${item.content}')`)
16
+ i.scoicon.sco-chat-fill
17
+
18
+ #bber-content
19
+ p.datacont= item.content
20
+ if item.image
21
+ .bber-content-img
22
+ each img in item.image
23
+ img(src=img title="即刻短文配图")
24
+
25
+ if item.aplayer
26
+ .bber-music
27
+ meting-js(server=item.aplayer.server type="song" id=item.aplayer.id mutex="true" preload="none" theme="var(--sco-main)" data-lrctype="0")
28
+
29
+ if item.video
30
+ .bber-video
31
+ if item.video.player
32
+ video(src=item.video.player controls="controls" style="object-fit: cover;")
33
+ if item.video.bilibili
34
+ iframe(src='//player.bilibili.com/player.html?auto-play=0&bvid=' + item.video.bilibili scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true")
35
+
36
+ if theme.says.style === 1
37
+ hr
38
+ .bber-bottom
39
+ .bber-info
40
+ .bber-info-time
41
+ i.scoicon.sco-calendar-todo-fill
42
+ time.datetime(datetime=moment(item.date).format())
43
+ if item.link
44
+ a.bber-content-link(href=url_for(item.link) title="跳转到短文指引的链接" target="_blank")
45
+ i.scoicon.sco-link-m-line
46
+ | 链接
47
+ if item.content
48
+ a.bber-reply(onclick=`sco.toTalk('${item.content}')`)
49
+ i.scoicon.sco-chat-fill
13
50
  #bber-tips
14
51
  if theme.says.strip === -1
15
52
  | - 已展开所有短文 -
@@ -7,7 +7,7 @@ div#sidebar(style="zoom: 1;")
7
7
  i.scoicon.sco-moon-clear-fill
8
8
  span= __('sidebar.darkmode')
9
9
  if theme.nav.left.enable
10
- include ./widgets/nav/left.pug
10
+ include ./widgets/nav/group
11
11
  include ./widgets/nav/menu.pug
12
12
  span.sidebar-menu-item-title= __('sidebar.title2')
13
13
  div.card-widget.card-tags.card-archives.card-webinfo.card-allinfo
@@ -15,6 +15,7 @@
15
15
  .author-info__name= config.author
16
16
  .author-info__desc!= config.subtitle
17
17
  .card-info-social-icons.is-center
18
- each value, key in theme.aside.card.information || []
19
- a.social-icon(href=url_for(value.url), title=key)
20
- i.scoicon(class=value.icon)
18
+ each value, label in theme.aside.card.information || {}
19
+ - var array = value.split('||')
20
+ a.social-icon(href=url_for(trim(array[0])), title=label)
21
+ i.scoicon(class=array[1])
@@ -1,6 +1,16 @@
1
1
  div.banners-title
2
2
  div.banners-title-big!= theme.hometop.banner.title
3
3
  div.banners-title-small= theme.hometop.banner.url
4
+ - var group = theme.hometop.group
5
+ if group
6
+ div.banners-links
7
+ each value,label in group
8
+ - var array = value.split('||')
9
+ a.banners-link-btn(href=url_for(trim(array[0])) class="banners-link-"+label)
10
+ if array[1]
11
+ i.scoicon(class=array[1])
12
+ .banners-link-title= label
13
+
4
14
  div.tags-group-all
5
15
  .tags-group-wrapper
6
16
  each i in [1,2]
@@ -10,7 +20,4 @@ div.tags-group-all
10
20
  .tags-group-icon-pair
11
21
  each key in pair
12
22
  .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()")
15
- span.bannerText= _p('home.bannertext')
16
- i.scoicon.sco-arrow-2-right-line.banner-righticon
23
+ img(src=theme.hometop.banner.icon[key].img, title=key)
@@ -2,11 +2,17 @@
2
2
  i.bber-logo.scoicon.sco-bblogo(onclick=`pjax.loadUrl('/essay/')`)
3
3
  .swiper-container.swiper-no-swiping.swiper-container-initialized.swiper-container-vertical.swiper-container-pointer-events#bbtalk(tabindex="-1" onclick=`pjax.loadUrl('/essay/')`)
4
4
  .swiper-wrapper#bber-talk
5
- case theme.says.mode
6
- when 'local'
7
- include bb/local
8
- when 'json'
9
- include bb/json
10
- when 'memos'
11
- include bb/memos
5
+ each item, i in site.data.essay.essay_list.slice(0, 10)
6
+ .li-style.swiper-slide
7
+ | #{item.content}
8
+ if item.image
9
+ i.scoicon.sco-image-fill
10
+ else if item.aplayer
11
+ i.scoicon.sco-disc-fill
12
+ else if item.video
13
+ i.scoicon.sco-video-fill
14
+ else if item.bilibili
15
+ i.scoicon.sco-bilibili-line
16
+ else if item.link
17
+ i.scoicon.sco-links
12
18
  i.bber-gotobb.scoicon.sco-right-btn-fill(title=_p('home.bbtime.text') onclick=`pjax.loadUrl('/essay/')`)
@@ -1,9 +1,12 @@
1
- - var groupNames = ['G1', 'G2', 'G3'];
2
- - var styles = ['--sco-shadow-blue', '--sco-shadow-red', '--sco-shadow-green'];
3
- - var classes = ['bikan', 'remen', 'shiyong'];
1
+ - group = (Object.entries(theme.hometop.group)).slice(0, 2)
4
2
 
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.scoicon(class=theme.hometop.categoryGroup[groupName].icon)
3
+ if group
4
+ .categoryGroup
5
+
6
+ each item in group
7
+ - var array = item[1].split('||')
8
+ .categoryItem
9
+ a.categoryButton(href=url_for(trim(array[0])) if array[2] style="background:" + array[2] + ";")
10
+ span.categoryButtonText= item[0]
11
+ if array[1]
12
+ i.scoicon(class=trim(array[1]))
@@ -3,7 +3,6 @@
3
3
  #bannerGroup
4
4
  #banners
5
5
  include ./banner.pug
6
- .categoryGroup
7
- include ./categoryGroup.pug
6
+ include ./categoryGroup.pug
8
7
  .topGroup
9
8
  include ./topGroup.pug
@@ -15,14 +15,14 @@ div.recent-post-item(onclick="pjax.loadUrl('/" + post.path + "')")
15
15
  if post.prev == null && is_home()
16
16
  span.original= _p('home.recent-post.new')
17
17
 
18
- a.unvisited-post(href=url_for(post.path))= _p('home.recent-post.read')
18
+ a.unvisited-post(href=post.path)= _p('home.recent-post.read')
19
19
 
20
- a.article-title(href=url_for(post.path), title=post.title)= post.title
20
+ a.article-title(href=post.path, title=post.title)= post.title
21
21
 
22
22
  div.article-meta-wrap
23
23
  span.article-meta.tags
24
24
  each tag in post.tags.data
25
- a.article-meta__tags(href=url_for(tag.path), onclick="event.stopPropagation();")
25
+ a.article-meta__tags(href=tag.path, onclick="event.stopPropagation();")
26
26
  span.tags-punctuation=tag.name
27
27
 
28
28
  span.post-meta-date
@@ -0,0 +1,13 @@
1
+ - var menu = theme.nav.group
2
+ if menu
3
+ .back-menu-list-groups
4
+ each value, label in menu
5
+ .back-menu-list-group
6
+ .back-menu-list-title= label
7
+ .back-menu-list
8
+ each data, label in value
9
+ - var array = data.split('||')
10
+ a.back-menu-item(href=url_for(trim(array[0])), title=index)
11
+ if array[1]
12
+ img.back-menu-item-icon(src=trim(array[1]), alt=index)
13
+ span.back-menu-item-text= label
@@ -1,16 +1,20 @@
1
- .menus_items
2
- - var menu = theme.nav && theme.nav.menu ? theme.nav.menu : {}
3
- each value, x in menu
4
- .menus_item
5
- if !value.url
6
- a.site-page(href="javascript:void(0);")
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.scoicon(class=childValue.icon)
13
- span= y
14
- else
15
- a.site-page.not-child(href=url_for(value.url))
16
- span= x
1
+ - var menu = theme.nav.menu
2
+
3
+ if menu
4
+ .menus_items
5
+ each value, label in menu
6
+ .menus_item
7
+ if typeof value !== 'object'
8
+ a.site-page(href=url_for(value))
9
+ span= label
10
+ else
11
+ a.site-page(href="javascript:void(0);")
12
+ span= label
13
+ ul.menus_item_child
14
+ each childValue, childLabel in value
15
+ li
16
+ - var array = childValue.split('||')
17
+ a.site-page.child(href=url_for(trim(array[0])))
18
+ if array[1]
19
+ i.scoicon(class=array[1])
20
+ span= childLabel
@@ -14,7 +14,7 @@ if site.data.about.rewardList
14
14
  .reward-list-item
15
15
  .reward-list-item-name= reward.name
16
16
  .reward-list-bottom-group
17
- .reward-list-item-money(style=(reward.vip ? "background: var(--sco-vip);" : ""))
17
+ .reward-list-item-money(style=(reward.vip ? "background: var(--sco-vip);color: var(--sco-white)" : ""))
18
18
  if reward.icon
19
19
  i.scoicon(class=reward.icon)
20
20
  | ¥ #{reward.money}
@@ -3,18 +3,13 @@
3
3
  .author-content-item-tips= page.title
4
4
  span.author-content-item-title= page.desc
5
5
  .content-bottom
6
- if (page.leftend)
7
- .tips!= page.leftend
8
- if(page.rightend)
9
- .tips!= page.rightend
6
+ if page.leftend
7
+ .tips= page.leftend
8
+ if page.rightend
9
+ .tips= page.rightend
10
10
  if page.rightbtn
11
11
  .banner-button-group
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
12
+ - const isInternalLink = page.rightbtnlink.startsWith('/')
13
+ a.banner-button(onclick=isInternalLink ? `pjax.loadUrl("${page.rightbtnlink}")` : null, href=isInternalLink ? null : page.rightbtnlink, target=isInternalLink ? null : "_blank")
14
+ i.scoicon.sco-right-btn-fill
15
+ span.banner-button-text= page.rightbtn
@@ -10,7 +10,7 @@
10
10
  .equipment-item-content-item-cover
11
11
  img.equipment-item-content-item-image(src=item.image, alt=item.name)
12
12
  .equipment-item-content-item-info
13
- .equipment-item-content-item-name= item.name
13
+ .equipment-item-content-item-name(onclick='utils.copy("' + item.name + '")')= item.name
14
14
  .equipment-item-content-item-specification= item.specification
15
15
  .equipment-item-content-item-description= item.description
16
16
  if item.link
@@ -6,7 +6,6 @@
6
6
  i.light
7
7
  a.img(title=item.name, href=url_for(item.link))
8
8
  img.flink-avatar(src=item.topimg + (data.topimg_suffix || ''), alt=item.name)
9
- .img-alt.is-center= item.name
10
9
  a.info.cf-friends-link(title=item.name, href=url_for(item.link))
11
10
  .site-card-avatar
12
11
  img.flink-avatar.cf-friends-avatar(src=item.avatar + (data.suffix || ''), alt=item.name)
@@ -11,4 +11,6 @@ script.
11
11
  search: false,
12
12
  comment: #{theme.post.meta.comment && is_post()},
13
13
  }, !{JSON.stringify(option)}))
14
+
15
+ GLOBAL_CONFIG.lightbox && utils.lightbox(document.querySelectorAll('#comment .wl-content img:not(.wl-emoji)'))
14
16
  }
@@ -44,12 +44,12 @@ script.
44
44
  const $dom = document.querySelector('#card-newest-comments .aside-list')
45
45
  $dom.innerHTML = array.length ? array.map(item => `
46
46
  <div class='aside-list-item'>
47
- <a href='${item.url}' class='thumbnail'>
47
+ <a onclick='pjax.loadUrl("${item.url}")' class='thumbnail'>
48
48
  <img src='${item.avatar}' alt='${item.nick}'>
49
49
  <div class='name'><span>${item.nick}</span></div>
50
50
  </a>
51
51
  <div class='content'>
52
- <a class='comment' href='${item.url}'>${item.content}</a>
52
+ <a class='comment' onclick='pjax.loadUrl("${item.url}")'>${item.content}</a>
53
53
  <time class="datetime" datetime="${item.date}"></time>
54
54
  </div>
55
55
  </div>
@@ -45,12 +45,12 @@ script.
45
45
  const $dom = document.querySelector('#card-newest-comments .aside-list')
46
46
  $dom.innerHTML = array.length ? array.map(item => `
47
47
  <div class='aside-list-item'>
48
- <a href='${item.url}' class='thumbnail'>
48
+ <a onclick='pjax.loadUrl("${item.url}")' class='thumbnail'>
49
49
  <img src='${item.avatar}' alt='${item.nick}'>
50
50
  <div class='name'><span>${item.nick}</span></div>
51
51
  </a>
52
52
  <div class='content'>
53
- <a class='comment' href='${item.url}'>${item.content}</a>
53
+ <a class='comment' onclick='pjax.loadUrl("${item.url}")'>${item.content}</a>
54
54
  <time class="datetime" datetime="${item.date}"></time>
55
55
  </div>
56
56
  </div>
@@ -12,7 +12,7 @@
12
12
  #search-results
13
13
  #algolia-hits
14
14
  each tag in theme.search.tags || []
15
- a.tag-list(href='/tags/' + tag + '/')=tag
15
+ a.tag-list(href="javascript:void(0);" onclick="pjax.loadUrl('/tags/" + tag + "/')")=tag
16
16
 
17
17
  #algolia-tips
18
18
  #algolia-pagination
@@ -10,7 +10,7 @@
10
10
  div#search-results
11
11
  #search-hits
12
12
  each tag in theme.search.tags || []
13
- a.tag-list(href='/tags/' + tag + '/')=tag
13
+ a.tag-list(href='javascript:void(0);' onclick="pjax.loadUrl('/tags/" + tag + "/')")=tag
14
14
  div#search-pagination
15
15
  div#search-tips
16
16
  div#search-mask
package/layout/index.pug CHANGED
@@ -1,20 +1,20 @@
1
- extends includes/layout.pug
1
+ extends includes/layout
2
2
 
3
3
  block content
4
4
  #home_top
5
5
  if theme.says.home_mini
6
6
  include ./includes/widgets/home/bbTimeList
7
7
  if theme.hometop.banner.enable && is_home_first_page()
8
- include ./includes/widgets/home/hometop.pug
8
+ include ./includes/widgets/home/hometop
9
9
  main.layout#content-inner
10
10
  .recent-posts#recent-posts
11
11
  #category-bar
12
- include ./includes/widgets/home/categoryBar.pug
12
+ include ./includes/widgets/home/categoryBar
13
13
  for post in page.posts.sort("-sticky" || "-date").data
14
- include ./includes/widgets/home/postList.pug
14
+ include ./includes/widgets/home/postList
15
15
 
16
16
  // pageination
17
- include ./includes/mixins/pagination.pug
17
+ include ./includes/mixins/pagination
18
18
 
19
19
  // aside
20
- include ./includes/widgets/aside/aside.pug
20
+ include ./includes/widgets/aside/aside
package/layout/page.pug CHANGED
@@ -18,8 +18,6 @@ block content
18
18
  include includes/page/says
19
19
  when 'equipment'
20
20
  include includes/page/equipment
21
- when 'rss'
22
- include includes/page/rss
23
21
  when 'moment'
24
22
  include includes/page/moment
25
23
  when 'douban'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hexo-theme-solitude",
3
- "version": "1.4.6",
3
+ "version": "1.5.0",
4
4
  "description": "A beautiful, powerful, and efficient Hexo theme developed by the wleelw",
5
5
  "main": "package.json",
6
6
  "scripts": {
package/plugins.yml CHANGED
@@ -19,11 +19,6 @@ waline_js:
19
19
  file: dist/waline.js
20
20
  other_name: waline
21
21
  version: 2.15.8
22
- waline_css:
23
- name: '@waline/client'
24
- file: dist/waline.css
25
- other_name: waline
26
- version: 2.15.8
27
22
  sharejs:
28
23
  name: butterfly-extsrc
29
24
  file: sharejs/dist/js/social-share.min.js