hexo-theme-stellar 1.42.0 → 1.43.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 (122) hide show
  1. package/.claude/skills/stellar-theme-dev/SKILL.md +2 -0
  2. package/CHANGELOG.md +42 -0
  3. package/THIRD-PARTY-NOTICES.md +28 -0
  4. package/_config.yml +20 -10
  5. package/_data/icons.yml +10 -9
  6. package/languages/en.yml +11 -0
  7. package/languages/zh-CN.yml +11 -0
  8. package/languages/zh-TW.yml +11 -0
  9. package/layout/_partial/comments/artalk/layout.ejs +1 -1
  10. package/layout/_partial/comments/beaudar/layout.ejs +1 -1
  11. package/layout/_partial/comments/giscus/layout.ejs +1 -1
  12. package/layout/_partial/comments/twikoo/layout.ejs +1 -1
  13. package/layout/_partial/comments/utterances/layout.ejs +1 -1
  14. package/layout/_partial/comments/waline/layout.ejs +1 -1
  15. package/layout/_partial/components/collection-item.ejs +44 -0
  16. package/layout/_partial/components/collection.ejs +26 -0
  17. package/layout/_partial/components/widget-frame.ejs +35 -0
  18. package/layout/_partial/cover/wiki_cover.ejs +82 -26
  19. package/layout/_partial/dropdown.ejs +62 -0
  20. package/layout/_partial/head.ejs +9 -0
  21. package/layout/_partial/main/navbar/breadcrumb/blog.ejs +1 -1
  22. package/layout/_partial/main/post_list/archive_item.ejs +12 -0
  23. package/layout/_partial/main/post_list/topic_card.ejs +21 -9
  24. package/layout/_partial/main/post_list/wiki_card.ejs +49 -10
  25. package/layout/_partial/scripts/bootstrap.ejs +3 -1
  26. package/layout/_partial/scripts/defines.ejs +2 -8
  27. package/layout/_partial/scripts/lazyload.ejs +0 -3
  28. package/layout/_partial/scripts.ejs +1 -0
  29. package/layout/_partial/sidebar/index_leftbar.ejs +12 -2
  30. package/layout/_partial/sidebar/logo.ejs +1 -1
  31. package/layout/_partial/sidebar/menu.ejs +21 -23
  32. package/layout/_partial/widgets/components/linklist.ejs +23 -21
  33. package/layout/_partial/widgets/linklist.ejs +7 -12
  34. package/layout/_partial/widgets/recent.ejs +52 -41
  35. package/layout/_partial/widgets/related.ejs +47 -36
  36. package/layout/_partial/widgets/tagtree.ejs +70 -54
  37. package/layout/_partial/widgets/toc.ejs +37 -62
  38. package/layout/_partial/widgets/tree.ejs +38 -51
  39. package/layout/_plugins/index.ejs +25 -0
  40. package/layout/_plugins/mermaid.ejs +3 -4
  41. package/layout/archive.ejs +11 -20
  42. package/layout/collection-preview.ejs +60 -0
  43. package/layout/index_topic.ejs +12 -6
  44. package/layout/index_wiki.ejs +49 -3
  45. package/layout/layout.ejs +4 -3
  46. package/package.json +1 -1
  47. package/scripts/events/index.js +0 -2
  48. package/scripts/filters/lib/img_lazyload.js +184 -40
  49. package/scripts/generators/stellar-icons.js +1 -1
  50. package/scripts/lib/subtitle.js +5 -1
  51. package/scripts/tags/index.js +1 -0
  52. package/scripts/tags/lib/about.js +1 -1
  53. package/scripts/tags/lib/albums.js +1 -1
  54. package/scripts/tags/lib/banner.js +1 -1
  55. package/scripts/tags/lib/dropdown.js +64 -0
  56. package/scripts/tags/lib/friends.js +1 -1
  57. package/scripts/tags/lib/gallery.js +3 -3
  58. package/scripts/tags/lib/image.js +1 -1
  59. package/scripts/tags/lib/posters.js +1 -1
  60. package/scripts/tags/lib/sites.js +8 -4
  61. package/source/css/_common/base.styl +4 -4
  62. package/source/css/_common/blockquote.styl +2 -2
  63. package/source/css/_common/dropdown.styl +132 -0
  64. package/source/css/_common/html.styl +1 -1
  65. package/source/css/_common/loading.styl +5 -2
  66. package/source/css/_common/title.styl +8 -8
  67. package/source/css/_components/collection.styl +188 -0
  68. package/source/css/_components/layout.styl +1 -1
  69. package/source/css/_components/list.styl +44 -46
  70. package/source/css/_components/md.styl +3 -3
  71. package/source/css/_components/page-transition.styl +22 -0
  72. package/source/css/_components/pages/archives.styl +19 -18
  73. package/source/css/_components/pages/article-indent.styl +2 -2
  74. package/source/css/_components/pages/article-story.styl +9 -5
  75. package/source/css/_components/pages/collection-preview.styl +68 -0
  76. package/source/css/_components/pages/notebook.styl +11 -9
  77. package/source/css/_components/partial/article-footer.styl +7 -4
  78. package/source/css/_components/partial/cover.styl +280 -1
  79. package/source/css/_components/partial/related.styl +10 -6
  80. package/source/css/_components/sidebar/footer.styl +65 -12
  81. package/source/css/_components/sidebar/nav-area.styl +6 -1
  82. package/source/css/_components/sidebar/search.styl +6 -2
  83. package/source/css/_components/tag-plugins/chat.styl +1 -1
  84. package/source/css/_components/tag-plugins/folders.styl +4 -4
  85. package/source/css/_components/tag-plugins/folding.styl +3 -3
  86. package/source/css/_components/tag-plugins/hashtag.styl +2 -3
  87. package/source/css/_components/tag-plugins/mdrender.styl +1 -1
  88. package/source/css/_components/tag-plugins/note.styl +4 -4
  89. package/source/css/_components/tag-plugins/poetry.styl +5 -5
  90. package/source/css/_components/tag-plugins/quot.styl +1 -2
  91. package/source/css/_components/tag-plugins/quote.styl +1 -1
  92. package/source/css/_components/tag-plugins/tabs.styl +2 -2
  93. package/source/css/_components/tag-plugins/timeline.styl +4 -4
  94. package/source/css/_components/widgets/ghrepo.styl +4 -0
  95. package/source/css/_components/widgets/markdown.styl +1 -14
  96. package/source/css/_components/widgets/timeline.styl +2 -2
  97. package/source/css/_components/widgets/toc.styl +22 -20
  98. package/source/css/_components/widgets/widgets.styl +13 -1
  99. package/source/css/_components/wiki-card.styl +209 -0
  100. package/source/css/_custom.styl +22 -20
  101. package/source/css/_plugins/lazyload.styl +8 -5
  102. package/source/css/comments/utterances.styl +2 -2
  103. package/source/css/comments/waline.styl +24 -0
  104. package/source/css/plugins/mermaid.styl +31 -12
  105. package/source/js/icons.js +1 -1
  106. package/source/js/main.js +62 -6
  107. package/source/js/plugins/adaptive-text.js +46 -2
  108. package/source/js/plugins/dropdown.js +435 -0
  109. package/source/js/plugins/galaxy.js +423 -0
  110. package/source/js/search/algolia-search.js +1 -1
  111. package/source/js/search/local-search.js +1 -1
  112. package/source/js/services/ghinfo.js +31 -3
  113. package/source/js/services/siteinfo.js +26 -0
  114. package/source/js/services/sites.js +6 -2
  115. package/source/js/services.js +5 -2
  116. package/source/js/tagtree.js +7 -7
  117. package/source/js/utils.js +1 -1
  118. package/layout/_partial/widgets/components/link.ejs +0 -21
  119. package/source/css/_components/sidebar/menu.styl +0 -77
  120. package/source/css/_components/widgets/components.styl +0 -68
  121. package/source/css/_components/widgets/list.styl +0 -46
  122. package/source/css/_components/widgets/related.styl +0 -40
@@ -1,77 +0,0 @@
1
- .nav-area .menu
2
- width: 100%
3
- display: flex
4
- flex-direction: column
5
- gap: 4px
6
- margin: 0
7
- &::-webkit-scrollbar
8
- display: none
9
- &::-webkit-scrollbar-track-piece
10
- background: transparent
11
- &::-webkit-scrollbar-thumb
12
- display: none
13
-
14
- .nav-item
15
- box-sizing: border-box
16
- width: 100%
17
- min-height: 36px
18
- border-radius: $border-bar
19
- font-size: $fs-15
20
- color: var(--text-p2)
21
- text-align: left
22
- position: relative
23
- display: flex
24
- flex-direction: row
25
- font-weight: 500
26
- align-items: center
27
- justify-content: flex-start
28
- gap: 16px
29
- padding: 0 16px
30
- color: var(--text-p2)
31
- // 菜单项主题色由配置内联提供(--item-theme),淡色变体在此基于它计算
32
- --item-theme-light: x-theme-light()
33
- img,svg
34
- width: 1.5rem
35
- height: 1.5rem
36
- object-fit: contain
37
- opacity: 0.5
38
- color: var(--text-p2)
39
- span
40
- text-overflow: ellipsis
41
- word-break: keep-all
42
- &:hover
43
- color: var(--text-p1)
44
- sidebar-light()
45
- img,svg
46
- opacity: 1
47
- > svg [fill="currentColor"]
48
- fill: var(--item-grad)
49
- > svg [stroke="currentColor"]
50
- stroke: var(--item-grad)
51
- &.active
52
- color: var(--text-p1)
53
- sidebar-light()
54
- img,svg
55
- opacity: 1
56
- .active-dot
57
- flex-shrink: 0
58
- margin-left: auto
59
- width: 8px
60
- height: 8px
61
- border-radius: 50%
62
- corner-shape: round
63
- background: x-theme-gradient()
64
- > svg [fill="currentColor"]
65
- fill: var(--item-grad)
66
- > svg [stroke="currentColor"]
67
- stroke: var(--item-grad)
68
- // 未设置主题色的菜单项,激活/悬停时图标显示通用主题色
69
- &:not(.themed)
70
- &:hover, &.active
71
- > svg
72
- color: var(--theme)
73
- // 设置了主题色的菜单项:主题色只作用于图标,文字保持标准色
74
- &.themed
75
- &:hover, &.active
76
- > svg
77
- color: var(--item-theme)
@@ -1,68 +0,0 @@
1
- .widget-body .linklist
2
- display: grid
3
- grid-gap: 8px
4
-
5
- .linklist .link:hover
6
- background: var(--bg-a50)
7
- svg
8
- filter: unset
9
-
10
- .linklist .link
11
- border-radius: $border-bar
12
- color: var(--text-p2)
13
- min-height: 32px
14
- padding: 0 4px
15
- display: flex
16
- justify-content: center
17
- align-items: center
18
- txt-ellipsis()
19
- &.active
20
- background: var(--bg-a50)
21
- svg,img
22
- filter: unset
23
-
24
- .l_left .linklist .link
25
- &:hover, &.active
26
- sidebar-light()
27
- --item-grad: url(#leftbar-active-icon-grad)
28
- > svg [fill="currentColor"]
29
- fill: var(--item-grad)
30
- > svg [stroke="currentColor"]
31
- stroke: var(--item-grad)
32
-
33
- .l_left .widget-wrapper.linklist .linklist.multi .link
34
- background: var(--bg-a20)
35
- &:hover, &.active
36
- sidebar-light()
37
-
38
- .linklist .link span
39
- padding: 0 4px
40
- txt-ellipsis()
41
- .linklist .link svg, .linklist .link img
42
- $size = 16px
43
- padding: 0 2px
44
- &:not([class='active-icon'])
45
- color: var(--theme)
46
- max-height: 18px
47
- width: auto
48
- filter: grayscale(100%) brightness(0.8) opacity(0.8)
49
- trans1 filter
50
- flex-shrink: 0
51
- .linklist .link .active-dot
52
- flex-shrink: 0
53
- width: 8px
54
- height: 8px
55
- border-radius: 50%
56
- background: x-theme-gradient()
57
-
58
- .widget-body .linklist.left
59
- grid-gap: 2px
60
- .linklist.left .link
61
- justify-content: space-between
62
- padding: 0 16px
63
- img,svg
64
- width: 1em
65
- height: 1em
66
- transform: scale(1.2)
67
- span
68
- padding: 0 8px
@@ -1,46 +0,0 @@
1
- .widget-wrapper.post-list .widget-body
2
- a
3
- font-size: $fs-14
4
- padding: 6px 16px
5
- display: block
6
- border-radius: $border-bar
7
- color: var(--text-p1)
8
- &:hover
9
- background: var(--bg-a50)
10
- &.active
11
- background: var(--bg-a50)
12
- a+a
13
- margin-top: 2px
14
- a
15
- display: flex
16
- justify-content: space-between
17
- align-items: center
18
- gap: 16px
19
- .title
20
- txt-ellipsis()
21
- svg
22
- flex-shrink: 0
23
- width: 1.5rem
24
- height: 1.5rem
25
- &.active-icon
26
- width: 1rem
27
- height: 1rem
28
- .active-dot
29
- flex-shrink: 0
30
- width: 8px
31
- height: 8px
32
- border-radius: 50%
33
- background: x-theme-gradient()
34
-
35
- .l_left .widget-wrapper.post-list .widget-body a
36
- &:hover, &.active
37
- sidebar-light()
38
- --item-grad: url(#leftbar-active-icon-grad)
39
- > svg [fill="currentColor"]
40
- fill: var(--item-grad)
41
- > svg [stroke="currentColor"]
42
- stroke: var(--item-grad)
43
-
44
- .widget-wrapper.post-list
45
- .widget-body+.widget-header
46
- margin-top: 28px
@@ -1,40 +0,0 @@
1
-
2
- .widget-wrapper.post-card .widget-body
3
- max-width: 100%
4
- .item+.item
5
- margin-top: 8px
6
- .item
7
- line-height: 1.2
8
- background: var(--bg-a20)
9
- padding: 10px 16px
10
- border-radius: $border-card-s
11
- display: block
12
- border-left: 0
13
- box-sizing: border-box
14
- .title
15
- color: var(--text-p1)
16
- font-weight: 500
17
- font-size: 1rem
18
- display: -webkit-box
19
- -webkit-box-orient: vertical
20
- overflow: hidden
21
- -webkit-line-clamp: 1
22
- font-weight: 700
23
- font-size: $fs-14
24
- .excerpt
25
- color: var(--text-p3)
26
- font-size: $fs-12
27
- margin-top: 0.5rem
28
- display: -webkit-box
29
- -webkit-box-orient: vertical
30
- overflow: hidden
31
- -webkit-line-clamp: 2
32
-
33
- .item:hover
34
- background: var(--bg-a50)
35
- .item.active
36
- background: var(--bg-a50)
37
-
38
- .l_left .widget-wrapper.post-card .widget-body .item
39
- &:hover, &.active
40
- sidebar-light()