@sugarat/theme 0.5.12-beta.0 → 0.5.12-beta.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 (39) hide show
  1. package/node.js +1 -1
  2. package/node.mjs +1 -1
  3. package/package.json +1 -2
  4. package/src/components/Alert.vue +123 -162
  5. package/src/components/Avatar.vue +7 -8
  6. package/src/components/BlogAlert.vue +5 -5
  7. package/src/components/BlogApp.vue +1 -8
  8. package/src/components/BlogArticleAnalyze.vue +41 -46
  9. package/src/components/BlogAuthor.vue +13 -15
  10. package/src/components/BlogBackToTop.vue +21 -24
  11. package/src/components/BlogButtonAfterArticle.vue +9 -12
  12. package/src/components/BlogCommentWrapper.vue +34 -41
  13. package/src/components/BlogDocCover.vue +1 -1
  14. package/src/components/BlogFooter.vue +26 -32
  15. package/src/components/BlogFriendLink.vue +38 -47
  16. package/src/components/BlogHomeBanner.vue +25 -31
  17. package/src/components/BlogHomeHeaderAvatar.vue +16 -23
  18. package/src/components/BlogHomeInfo.vue +1 -1
  19. package/src/components/BlogHomeOverview.vue +12 -15
  20. package/src/components/BlogHomeTags.vue +14 -17
  21. package/src/components/BlogHotArticle.vue +66 -77
  22. package/src/components/BlogItem.vue +14 -23
  23. package/src/components/BlogList.vue +12 -15
  24. package/src/components/BlogRecommendArticle.vue +53 -69
  25. package/src/components/BlogSidebar.vue +1 -1
  26. package/src/components/Button.vue +69 -84
  27. package/src/components/Carousel.vue +22 -27
  28. package/src/components/CarouselItem.vue +11 -26
  29. package/src/components/CommentArtalk.vue +1 -1
  30. package/src/components/Image.vue +8 -9
  31. package/src/components/ImageViewer.vue +54 -53
  32. package/src/components/Pagination.vue +148 -176
  33. package/src/components/Tag.vue +72 -91
  34. package/src/components/UserWorks.vue +115 -155
  35. package/src/index.ts +1 -1
  36. package/src/styles/{index.scss → index.css} +56 -91
  37. package/src/styles/scss/algolia.scss +0 -231
  38. package/src/styles/scss/global.scss +0 -156
  39. package/src/styles/scss/highlight.scss +0 -12
package/node.js CHANGED
@@ -40,7 +40,7 @@ module.exports = __toCommonJS(node_exports);
40
40
  // src/utils/node/mdPlugins.ts
41
41
  var import_module = require("module");
42
42
 
43
- // ../../node_modules/.pnpm/vitepress-plugin-tabs@0.7.3_vitepress@2.0.0-alpha.15_@types+node@24.5.2_async-validator_99255ebfe5ccbf71b0568b407a8fdeff/node_modules/vitepress-plugin-tabs/dist/node/index.js
43
+ // ../../node_modules/.pnpm/vitepress-plugin-tabs@0.7.3_vitepress@2.0.0-alpha.15_@types+node@24.5.2_async-validator_f00dcfd3cc5e72074cf41a606f1d799c/node_modules/vitepress-plugin-tabs/dist/node/index.js
44
44
  function container_plugin(md, name, options) {
45
45
  function validateDefault(params) {
46
46
  return params.trim().split(" ", 2)[0] === name;
package/node.mjs CHANGED
@@ -9,7 +9,7 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
9
9
  // src/utils/node/mdPlugins.ts
10
10
  import { createRequire } from "module";
11
11
 
12
- // ../../node_modules/.pnpm/vitepress-plugin-tabs@0.7.3_vitepress@2.0.0-alpha.15_@types+node@24.5.2_async-validator_99255ebfe5ccbf71b0568b407a8fdeff/node_modules/vitepress-plugin-tabs/dist/node/index.js
12
+ // ../../node_modules/.pnpm/vitepress-plugin-tabs@0.7.3_vitepress@2.0.0-alpha.15_@types+node@24.5.2_async-validator_f00dcfd3cc5e72074cf41a606f1d799c/node_modules/vitepress-plugin-tabs/dist/node/index.js
13
13
  function container_plugin(md, name, options) {
14
14
  function validateDefault(params) {
15
15
  return params.trim().split(" ", 2)[0] === name;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sugarat/theme",
3
- "version": "0.5.12-beta.0",
3
+ "version": "0.5.12-beta.1",
4
4
  "description": "简约风的 Vitepress 博客主题,sugarat vitepress blog theme",
5
5
  "author": "sugar",
6
6
  "license": "MIT",
@@ -60,7 +60,6 @@
60
60
  "artalk": "^2.8.5",
61
61
  "markdown-it-mathjax3": "^4.3.2",
62
62
  "pagefind": "^1.3.0",
63
- "sass": "^1.80.6",
64
63
  "typescript": "^5.4.5",
65
64
  "vite": "^5.4.9",
66
65
  "vitepress": "2.0.0-alpha.15",
@@ -119,7 +119,7 @@ const isBoldTitle = computed(() => props.description || !!props.title)
119
119
  </transition>
120
120
  </template>
121
121
 
122
- <style lang="scss" scoped>
122
+ <style scoped>
123
123
  html.dark .sugar-alert {
124
124
  background-color: transparent;
125
125
  }
@@ -134,122 +134,96 @@ html.dark .sugar-alert {
134
134
  background-color: #fff;
135
135
  overflow: hidden;
136
136
  opacity: 1;
137
-
138
137
  display: flex;
139
138
  align-items: center;
140
- transition: opacity .2s;
141
-
142
- &.is-center {
143
- justify-content: center;
144
-
145
- .sugar-alert__content {
146
- text-align: center;
147
- }
148
- }
149
-
150
- &--success {
151
- background-color: #f0f9eb;
152
- color: #67c23a;
153
-
154
- .sugar-alert__description {
155
- color: #67c23a;
156
- }
157
-
158
- }
159
-
160
- &--info {
161
- background-color: #f4f4f5;
162
- color: #909399;
163
-
164
- .sugar-alert__description {
165
- color: #909399;
166
- }
167
-
168
- }
169
-
170
- &--warning {
171
- background-color: #fdf6ec;
172
- color: #e6a23c;
173
-
174
- .sugar-alert__description {
175
- color: #e6a23c;
176
- }
177
-
178
- }
179
-
180
- &--error {
181
- background-color: #fef0f0;
182
- color: #f56c6c;
183
-
184
- .sugar-alert__description {
185
- color: #f56c6c;
186
- }
187
-
188
- }
189
-
190
- &--primary {
191
- background-color: var(--vp-c-brand-soft);
192
- color: var(--vp-c-brand-1);
193
-
194
- .sugar-alert__description {
195
- color: var(--vp-c-brand-1);
196
- }
197
- }
198
-
199
- &__content {
200
- display: table-cell;
201
- padding: 0 8px;
202
- width: 100%; // Ensure content takes available space
203
- }
204
-
205
- &__icon {
206
- font-size: 16px;
207
- width: 16px;
208
- display: table-cell;
209
- color: inherit;
210
- vertical-align: middle;
211
-
212
- &.is-big {
213
- font-size: 28px;
214
- width: 28px;
215
- }
216
- }
217
-
218
- &__title {
219
- font-size: 13px;
220
- line-height: 18px;
221
- vertical-align: text-top;
222
-
223
- &.is-bold {
224
- font-weight: 700;
225
- }
226
- }
227
-
228
- &__description {
229
- font-size: 12px;
230
- margin: 5px 0 0 0;
231
- line-height: 1.5;
232
- }
233
-
234
- &__close-btn {
235
- font-size: 12px;
236
- opacity: 1;
237
- position: absolute;
238
- top: 12px;
239
- right: 15px;
240
- cursor: pointer;
241
- color: var(--vp-c-text-2); // Use element colors if light
242
-
243
- &.is-customed {
244
- font-style: normal;
245
- font-size: 11px;
246
- line-height: 18px;
247
- }
248
-
249
- &:hover {
250
- opacity: 0.7;
251
- }
252
- }
139
+ transition: opacity 0.2s;
140
+ }
141
+ .sugar-alert.is-center {
142
+ justify-content: center;
143
+ }
144
+ .sugar-alert.is-center .sugar-alert__content {
145
+ text-align: center;
146
+ }
147
+ .sugar-alert--success {
148
+ background-color: #f0f9eb;
149
+ color: #67c23a;
150
+ }
151
+ .sugar-alert--success .sugar-alert__description {
152
+ color: #67c23a;
153
+ }
154
+ .sugar-alert--info {
155
+ background-color: #f4f4f5;
156
+ color: #909399;
157
+ }
158
+ .sugar-alert--info .sugar-alert__description {
159
+ color: #909399;
160
+ }
161
+ .sugar-alert--warning {
162
+ background-color: #fdf6ec;
163
+ color: #e6a23c;
164
+ }
165
+ .sugar-alert--warning .sugar-alert__description {
166
+ color: #e6a23c;
167
+ }
168
+ .sugar-alert--error {
169
+ background-color: #fef0f0;
170
+ color: #f56c6c;
171
+ }
172
+ .sugar-alert--error .sugar-alert__description {
173
+ color: #f56c6c;
174
+ }
175
+ .sugar-alert--primary {
176
+ background-color: var(--vp-c-brand-soft);
177
+ color: var(--vp-c-brand-1);
178
+ }
179
+ .sugar-alert--primary .sugar-alert__description {
180
+ color: var(--vp-c-brand-1);
181
+ }
182
+ .sugar-alert__content {
183
+ display: table-cell;
184
+ padding: 0 8px;
185
+ width: 100%;
186
+ }
187
+ .sugar-alert__icon {
188
+ font-size: 16px;
189
+ width: 16px;
190
+ display: table-cell;
191
+ color: inherit;
192
+ vertical-align: middle;
193
+ }
194
+ .sugar-alert__icon.is-big {
195
+ font-size: 28px;
196
+ width: 28px;
197
+ }
198
+ .sugar-alert__title {
199
+ font-size: 13px;
200
+ line-height: 18px;
201
+ vertical-align: text-top;
202
+ }
203
+ .sugar-alert__title.is-bold {
204
+ font-weight: 700;
205
+ }
206
+ .sugar-alert__description {
207
+ font-size: 12px;
208
+ margin: 5px 0 0 0;
209
+ line-height: 1.5;
210
+ }
211
+ .sugar-alert__close-btn {
212
+ font-size: 12px;
213
+ opacity: 1;
214
+ position: absolute;
215
+ top: 12px;
216
+ right: 15px;
217
+ cursor: pointer;
218
+ color: var(--vp-c-text-2);
219
+ }
220
+ .sugar-alert__close-btn.is-customed {
221
+ font-style: normal;
222
+ font-size: 11px;
223
+ line-height: 18px;
224
+ }
225
+ .sugar-alert__close-btn:hover {
226
+ opacity: 0.7;
253
227
  }
254
228
 
255
229
  .sugar-alert-fade-enter-from,
@@ -257,52 +231,39 @@ html.dark .sugar-alert {
257
231
  opacity: 0;
258
232
  }
259
233
 
260
- html.dark {
261
- .sugar-alert {
262
- &--success {
263
- background-color: #1c2518;
264
- color: #67c23a;
265
-
266
- .sugar-alert__description {
267
- color: #67c23a;
268
- }
269
- }
270
-
271
- &--info {
272
- background-color: #202121;
273
- color: #909399;
274
-
275
- .sugar-alert__description {
276
- color: #909399;
277
- }
278
- }
279
-
280
- &--warning {
281
- background-color: #292218;
282
- color: #e6a23c;
283
-
284
- .sugar-alert__description {
285
- color: #e6a23c;
286
- }
287
- }
288
-
289
- &--error {
290
- background-color: #2b1d1d;
291
- color: #f56c6c;
292
-
293
- .sugar-alert__description {
294
- color: #f56c6c;
295
- }
296
- }
297
-
298
- &--primary {
299
- background-color: var(--vp-c-brand-soft);
300
- color: var(--vp-c-brand-1);
301
-
302
- .sugar-alert__description {
303
- color: var(--vp-c-brand-1);
304
- }
305
- }
306
- }
234
+ html.dark .sugar-alert--success {
235
+ background-color: #1c2518;
236
+ color: #67c23a;
237
+ }
238
+ html.dark .sugar-alert--success .sugar-alert__description {
239
+ color: #67c23a;
240
+ }
241
+ html.dark .sugar-alert--info {
242
+ background-color: #202121;
243
+ color: #909399;
244
+ }
245
+ html.dark .sugar-alert--info .sugar-alert__description {
246
+ color: #909399;
247
+ }
248
+ html.dark .sugar-alert--warning {
249
+ background-color: #292218;
250
+ color: #e6a23c;
251
+ }
252
+ html.dark .sugar-alert--warning .sugar-alert__description {
253
+ color: #e6a23c;
254
+ }
255
+ html.dark .sugar-alert--error {
256
+ background-color: #2b1d1d;
257
+ color: #f56c6c;
258
+ }
259
+ html.dark .sugar-alert--error .sugar-alert__description {
260
+ color: #f56c6c;
261
+ }
262
+ html.dark .sugar-alert--primary {
263
+ background-color: var(--vp-c-brand-soft);
264
+ color: var(--vp-c-brand-1);
265
+ }
266
+ html.dark .sugar-alert--primary .sugar-alert__description {
267
+ color: var(--vp-c-brand-1);
307
268
  }
308
269
  </style>
@@ -38,7 +38,7 @@ const sizeStyle = computed(() => {
38
38
  </span>
39
39
  </template>
40
40
 
41
- <style lang="scss" scoped>
41
+ <style scoped>
42
42
  .blog-avatar {
43
43
  display: inline-flex;
44
44
  justify-content: center;
@@ -51,13 +51,12 @@ const sizeStyle = computed(() => {
51
51
  font-size: 14px;
52
52
  vertical-align: middle;
53
53
  min-width: 50px;
54
-
55
- > img {
56
- display: block;
57
- height: 100%;
58
- width: 100%;
59
- object-fit: cover;
60
- }
54
+ }
55
+ .blog-avatar > img {
56
+ display: block;
57
+ height: 100%;
58
+ width: 100%;
59
+ object-fit: cover;
61
60
  }
62
61
 
63
62
  .blog-avatar--circle {
@@ -63,7 +63,7 @@ function handleClose() {
63
63
  </div>
64
64
  </template>
65
65
 
66
- <style lang="scss" scoped>
66
+ <style scoped>
67
67
  .global-alert {
68
68
  position: fixed;
69
69
  z-index: 999;
@@ -73,16 +73,16 @@ function handleClose() {
73
73
  left: 50%;
74
74
  transform: translateX(-50%);
75
75
  width: auto;
76
- :deep(.sugar-alert__content) {
77
- padding-right: 20px;
78
- }
79
76
  }
77
+ .global-alert :deep(.sugar-alert__content) {
78
+ padding-right: 20px;
79
+ }
80
+
80
81
  @media screen and (max-width: 1100px) {
81
82
  .global-alert {
82
83
  width: 50%;
83
84
  }
84
85
  }
85
-
86
86
  @media screen and (max-width: 600px) {
87
87
  .global-alert {
88
88
  width: 90%;
@@ -188,7 +188,7 @@ const openTransition = useDarkTransitionConfig()
188
188
  </Layout>
189
189
  </template>
190
190
 
191
- <style scoped lang="scss">
191
+ <style scoped>
192
192
  .home {
193
193
  margin: 0 auto;
194
194
  padding: 20px;
@@ -200,7 +200,6 @@ const openTransition = useDarkTransitionConfig()
200
200
  padding-top: var(--vp-nav-height);
201
201
  }
202
202
  }
203
-
204
203
  .header-banner {
205
204
  width: 100%;
206
205
  padding: 60px 0;
@@ -229,31 +228,25 @@ const openTransition = useDarkTransitionConfig()
229
228
  top: 40px;
230
229
  }
231
230
  }
232
-
233
231
  @media screen and (max-width: 767px) {
234
232
  .content-wrapper {
235
233
  flex-wrap: wrap;
236
234
  }
237
-
238
235
  .blog-info-wrapper {
239
236
  margin: 20px 0;
240
237
  width: 100%;
241
238
  }
242
-
243
239
  .normal-mode {
244
240
  display: none;
245
241
  }
246
-
247
242
  .minify-mode {
248
243
  display: block;
249
244
  }
250
245
  }
251
-
252
246
  @media screen and (min-width: 768px) {
253
247
  .minify-mode {
254
248
  display: none;
255
249
  }
256
-
257
250
  .normal-mode {
258
251
  display: block;
259
252
  }
@@ -237,19 +237,18 @@ const timeTitle = computed(() =>
237
237
  </div>
238
238
  </template>
239
239
 
240
- <style lang="scss" scoped>
240
+ <style scoped>
241
241
  .doc-analyze {
242
242
  color: var(--vp-c-text-2);
243
243
  font-size: 14px;
244
244
  margin-bottom: 20px;
245
245
  display: flex;
246
246
  justify-content: center;
247
-
248
- span {
249
- margin-right: 16px;
250
- display: flex;
251
- align-items: center;
252
- }
247
+ }
248
+ .doc-analyze span {
249
+ margin-right: 16px;
250
+ display: flex;
251
+ align-items: center;
253
252
  }
254
253
 
255
254
  .meta-des,
@@ -260,46 +259,42 @@ const timeTitle = computed(() =>
260
259
  margin-top: 6px;
261
260
  display: flex;
262
261
  flex-wrap: wrap;
263
-
264
- >span {
265
- margin-right: 16px;
266
- display: flex;
267
- align-items: center;
268
- flex-wrap: wrap;
269
-
270
- .icon {
271
- margin-right: 4px;
272
- --color: inherit;
273
- align-items: center;
274
- display: inline-flex;
275
- height: 1em;
276
- justify-content: center;
277
- line-height: 1em;
278
- position: relative;
279
- width: 1em;
280
- fill: currentColor;
281
- color: var(--color) inherit;
282
- font-size: inherit;
283
- }
284
- }
285
-
286
- .link {
287
- color: var(--vp-c-text-2);
288
-
289
- &:hover {
290
- color: var(--vp-c-brand-1);
291
- cursor: pointer;
292
- }
293
- }
262
+ }
263
+ .meta-des > span,
264
+ .new-line-meta-des > span {
265
+ margin-right: 16px;
266
+ display: flex;
267
+ align-items: center;
268
+ flex-wrap: wrap;
269
+ }
270
+ .meta-des > span .icon,
271
+ .new-line-meta-des > span .icon {
272
+ margin-right: 4px;
273
+ --color: inherit;
274
+ align-items: center;
275
+ display: inline-flex;
276
+ height: 1em;
277
+ justify-content: center;
278
+ line-height: 1em;
279
+ position: relative;
280
+ width: 1em;
281
+ fill: currentColor;
282
+ color: var(--color) inherit;
283
+ font-size: inherit;
284
+ }
285
+ .meta-des .link,
286
+ .new-line-meta-des .link {
287
+ color: var(--vp-c-text-2);
288
+ }
289
+ .meta-des .link:hover,
290
+ .new-line-meta-des .link:hover {
291
+ color: var(--vp-c-brand-1);
292
+ cursor: pointer;
294
293
  }
295
294
 
296
- .tags {
297
- a.link:not(:last-child) {
298
- &::after {
299
- content: '·';
300
- display: inline-block;
301
- padding: 0 4px;
302
- }
303
- }
295
+ .tags a.link:not(:last-child)::after {
296
+ content: "·";
297
+ display: inline-block;
298
+ padding: 0 4px;
304
299
  }
305
300
  </style>
@@ -36,22 +36,20 @@ useHoverSpin(imgRef, home?.value?.hoverSpin)
36
36
  </div>
37
37
  </template>
38
38
 
39
- <style scoped lang="scss">
39
+ <style scoped>
40
40
  .blog-author {
41
41
  margin-bottom: 20px;
42
-
43
- img {
44
- display: block;
45
- margin: 10px auto;
46
- width: 100px;
47
- height: 100px;
48
- border-radius: 50%;
49
- background-color: rgba(var(--bg-gradient-home));
50
- cursor: pointer;
51
- }
52
-
53
- p {
54
- text-align: center;
55
- }
42
+ }
43
+ .blog-author img {
44
+ display: block;
45
+ margin: 10px auto;
46
+ width: 100px;
47
+ height: 100px;
48
+ border-radius: 50%;
49
+ background-color: rgba(var(--bg-gradient-home));
50
+ cursor: pointer;
51
+ }
52
+ .blog-author p {
53
+ text-align: center;
56
54
  }
57
55
  </style>
@@ -40,7 +40,7 @@ const iconSVGStr = computed(() => backToTopConfig?.value?.icon)
40
40
  </div>
41
41
  </template>
42
42
 
43
- <style lang="scss" scoped>
43
+ <style scoped>
44
44
  .back-to-top {
45
45
  position: fixed;
46
46
  width: v-bind(docWidth);
@@ -52,29 +52,26 @@ const iconSVGStr = computed(() => backToTopConfig?.value?.icon)
52
52
  display: flex;
53
53
  justify-content: right;
54
54
  z-index: 200;
55
-
56
- &:hover {
57
- opacity: 1;
58
- }
59
-
60
- .icon-wrapper {
61
- cursor: pointer;
62
- border-radius: 50%;
63
- position: relative;
64
- right: -80px;
65
- background-color: var(--vp-c-bg);
66
- box-shadow: var(--box-shadow);
67
- padding: 4px;
68
- display: flex;
69
- align-items: center;
70
- justify-content: center;
71
- background-color: var(--vp-c-brand-soft);
72
- color: var(--vp-c-brand-1);
73
-
74
- &:hover {
75
- box-shadow: var(--box-shadow-hover);
76
- }
77
- }
55
+ }
56
+ .back-to-top:hover {
57
+ opacity: 1;
58
+ }
59
+ .back-to-top .icon-wrapper {
60
+ cursor: pointer;
61
+ border-radius: 50%;
62
+ position: relative;
63
+ right: -80px;
64
+ background-color: var(--vp-c-bg);
65
+ box-shadow: var(--box-shadow);
66
+ padding: 4px;
67
+ display: flex;
68
+ align-items: center;
69
+ justify-content: center;
70
+ background-color: var(--vp-c-brand-soft);
71
+ color: var(--vp-c-brand-1);
72
+ }
73
+ .back-to-top .icon-wrapper:hover {
74
+ box-shadow: var(--box-shadow-hover);
78
75
  }
79
76
 
80
77
  @media screen and (max-width: 1200px) {