@xingwangzhe/stalux 1.24.1 → 1.24.3
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.
- package/package.json +10 -11
- package/src/scripts/webmcp.ts +0 -2
- package/src/assets/BiCcCircle.svg +0 -1
- package/src/assets/astro.svg +0 -1
- package/src/assets/background.svg +0 -1
- package/src/internal/pagefind.ts +0 -41
- package/src/styles/components/posts/postCategories.module.css +0 -50
- package/src/styles/components/posts/postLeft.module.css +0 -38
- package/src/styles/components/posts/postRight.module.css +0 -60
- package/src/styles/components/posts/postTags.module.css +0 -51
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xingwangzhe/stalux",
|
|
3
|
-
"version": "1.24.
|
|
3
|
+
"version": "1.24.3",
|
|
4
4
|
"description": "A powerful, modern Astro blog theme — use as template or install as plugin",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"astro",
|
|
@@ -78,13 +78,13 @@
|
|
|
78
78
|
"@astrojs/rss": "^4.0.19",
|
|
79
79
|
"@astrojs/sitemap": "^3.7.3",
|
|
80
80
|
"@expressive-code/plugin-line-numbers": "^0.44.1",
|
|
81
|
-
"@lucide/astro": "^1.
|
|
81
|
+
"@lucide/astro": "^1.33.0",
|
|
82
82
|
"@mcp-b/webmcp-polyfill": "^4.0.0",
|
|
83
83
|
"@pagefind/component-ui": "^1.5.2",
|
|
84
84
|
"@waline/client": "^3.15.2",
|
|
85
|
-
"@xingwangzhe/satteri-mermaid": "0.7.
|
|
86
|
-
"@xingwangzhe/satteri-photoswipe": "^0.2.
|
|
87
|
-
"@xingwangzhe/tags-cloud": "^1.2.
|
|
85
|
+
"@xingwangzhe/satteri-mermaid": "0.7.7",
|
|
86
|
+
"@xingwangzhe/satteri-photoswipe": "^0.2.4",
|
|
87
|
+
"@xingwangzhe/tags-cloud": "^1.2.7",
|
|
88
88
|
"animejs": "^4.5.0",
|
|
89
89
|
"astro-expressive-code": "^0.44.1",
|
|
90
90
|
"astro-seo": "^1.1.0",
|
|
@@ -92,20 +92,19 @@
|
|
|
92
92
|
"badge-maker": "^6.0.0",
|
|
93
93
|
"pagefind": "^1.5.2",
|
|
94
94
|
"photoswipe": "^5.4.4",
|
|
95
|
-
"satteri": "^0.
|
|
95
|
+
"satteri": "^0.10.4",
|
|
96
96
|
"simple-icons": "^16.28.0",
|
|
97
97
|
"subset-font": "^2.5.0",
|
|
98
98
|
"temml": "^0.13.4"
|
|
99
99
|
},
|
|
100
100
|
"devDependencies": {
|
|
101
|
-
"astro": "^7.2.
|
|
101
|
+
"astro": "^7.2.3",
|
|
102
102
|
"knip": "^6.32.2",
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"oxlint": "^1.78.0",
|
|
103
|
+
"oxfmt": "^0.64.0",
|
|
104
|
+
"oxlint": "^1.79.0",
|
|
106
105
|
"typescript": "^7.0.2"
|
|
107
106
|
},
|
|
108
107
|
"peerDependencies": {
|
|
109
|
-
"astro": "7.2.
|
|
108
|
+
"astro": "7.2.3"
|
|
110
109
|
}
|
|
111
110
|
}
|
package/src/scripts/webmcp.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><path fill="#cccccc" d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0M5.408 5.89c-.83 0-1.318.64-1.318 1.753v.742c0 1.108.479 1.727 1.318 1.727c.69 0 1.138-.435 1.187-1.05h1.147v.114c-.058 1.147-1.029 1.938-2.343 1.938c-1.612 0-2.518-1.028-2.518-2.729v-.747c0-1.7.914-2.75 2.518-2.75c1.319 0 2.29.812 2.343 1.999v.11H6.595c-.049-.638-.506-1.108-1.187-1.108Zm5.404 0c-.831 0-1.319.64-1.319 1.753v.742c0 1.108.48 1.727 1.319 1.727c.69 0 1.138-.435 1.186-1.05h1.147v.114c-.057 1.147-1.028 1.938-2.342 1.938c-1.613 0-2.518-1.028-2.518-2.729v-.747c0-1.7.914-2.75 2.518-2.75c1.318 0 2.29.812 2.342 1.999v.11h-1.147c-.048-.638-.505-1.108-1.186-1.108Z"/></svg>
|
package/src/assets/astro.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" width="115" height="48"><path fill="#17191E" d="M7.77 36.35C6.4 35.11 6 32.51 6.57 30.62c.99 1.2 2.35 1.57 3.75 1.78 2.18.33 4.31.2 6.33-.78.23-.12.44-.27.7-.42.18.55.23 1.1.17 1.67a4.56 4.56 0 0 1-1.94 3.23c-.43.32-.9.61-1.34.91-1.38.94-1.76 2.03-1.24 3.62l.05.17a3.63 3.63 0 0 1-1.6-1.38 3.87 3.87 0 0 1-.63-2.1c0-.37 0-.74-.05-1.1-.13-.9-.55-1.3-1.33-1.32a1.56 1.56 0 0 0-1.63 1.26c0 .06-.03.12-.05.2Z"/><path fill="url(#a)" d="M7.77 36.35C6.4 35.11 6 32.51 6.57 30.62c.99 1.2 2.35 1.57 3.75 1.78 2.18.33 4.31.2 6.33-.78.23-.12.44-.27.7-.42.18.55.23 1.1.17 1.67a4.56 4.56 0 0 1-1.94 3.23c-.43.32-.9.61-1.34.91-1.38.94-1.76 2.03-1.24 3.62l.05.17a3.63 3.63 0 0 1-1.6-1.38 3.87 3.87 0 0 1-.63-2.1c0-.37 0-.74-.05-1.1-.13-.9-.55-1.3-1.33-1.32a1.56 1.56 0 0 0-1.63 1.26c0 .06-.03.12-.05.2Z"/><path fill="#17191E" d="M.02 30.31s4.02-1.95 8.05-1.95l3.04-9.4c.11-.45.44-.76.82-.76.37 0 .7.31.82.76l3.04 9.4c4.77 0 8.05 1.95 8.05 1.95L17 11.71c-.2-.56-.53-.91-.98-.91H7.83c-.44 0-.76.35-.97.9L.02 30.31Zm42.37-5.97c0 1.64-2.05 2.62-4.88 2.62-1.85 0-2.5-.45-2.5-1.41 0-1 .8-1.49 2.65-1.49 1.67 0 3.09.03 4.73.23v.05Zm.03-2.04a21.37 21.37 0 0 0-4.37-.36c-5.32 0-7.82 1.25-7.82 4.18 0 3.04 1.71 4.2 5.68 4.2 3.35 0 5.63-.84 6.46-2.92h.14c-.03.5-.05 1-.05 1.4 0 1.07.18 1.16 1.06 1.16h4.15a16.9 16.9 0 0 1-.36-4c0-1.67.06-2.93.06-4.62 0-3.45-2.07-5.64-8.56-5.64-2.8 0-5.9.48-8.26 1.19.22.93.54 2.83.7 4.06 2.04-.96 4.95-1.37 7.2-1.37 3.11 0 3.97.71 3.97 2.15v.57Zm11.37 3c-.56.07-1.33.07-2.12.07-.83 0-1.6-.03-2.12-.1l-.02.58c0 2.85 1.87 4.52 8.45 4.52 6.2 0 8.2-1.64 8.2-4.55 0-2.74-1.33-4.09-7.2-4.39-4.58-.2-4.99-.7-4.99-1.28 0-.66.59-1 3.65-1 3.18 0 4.03.43 4.03 1.35v.2a46.13 46.13 0 0 1 4.24.03l.02-.55c0-3.36-2.8-4.46-8.2-4.46-6.08 0-8.13 1.49-8.13 4.39 0 2.6 1.64 4.23 7.48 4.48 4.3.14 4.77.62 4.77 1.28 0 .7-.7 1.03-3.71 1.03-3.47 0-4.35-.48-4.35-1.47v-.13Zm19.82-12.05a17.5 17.5 0 0 1-6.24 3.48c.03.84.03 2.4.03 3.24l1.5.02c-.02 1.63-.04 3.6-.04 4.9 0 3.04 1.6 5.32 6.58 5.32 2.1 0 3.5-.23 5.23-.6a43.77 43.77 0 0 1-.46-4.13c-1.03.34-2.34.53-3.78.53-2 0-2.82-.55-2.82-2.13 0-1.37 0-2.65.03-3.84 2.57.02 5.13.07 6.64.11-.02-1.18.03-2.9.1-4.04-2.2.04-4.65.07-6.68.07l.07-2.93h-.16Zm13.46 6.04a767.33 767.33 0 0 1 .07-3.18H82.6c.07 1.96.07 3.98.07 6.92 0 2.95-.03 4.99-.07 6.93h5.18c-.09-1.37-.11-3.68-.11-5.65 0-3.1 1.26-4 4.12-4 1.33 0 2.28.16 3.1.46.03-1.16.26-3.43.4-4.43-.86-.25-1.81-.41-2.96-.41-2.46-.03-4.26.98-5.1 3.38l-.17-.02Zm22.55 3.65c0 2.5-1.8 3.66-4.64 3.66-2.81 0-4.61-1.1-4.61-3.66s1.82-3.52 4.61-3.52c2.82 0 4.64 1.03 4.64 3.52Zm4.71-.11c0-4.96-3.87-7.18-9.35-7.18-5.5 0-9.23 2.22-9.23 7.18 0 4.94 3.49 7.59 9.21 7.59 5.77 0 9.37-2.65 9.37-7.6Z"/><defs><linearGradient id="a" x1="6.33" x2="19.43" y1="40.8" y2="34.6" gradientUnits="userSpaceOnUse"><stop stop-color="#D83333"/><stop offset="1" stop-color="#F041FF"/></linearGradient></defs></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="1024" fill="none"><path fill="url(#a)" fill-rule="evenodd" d="M-217.58 475.75c91.82-72.02 225.52-29.38 341.2-44.74C240 415.56 372.33 315.14 466.77 384.9c102.9 76.02 44.74 246.76 90.31 366.31 29.83 78.24 90.48 136.14 129.48 210.23 57.92 109.99 169.67 208.23 155.9 331.77-13.52 121.26-103.42 264.33-224.23 281.37-141.96 20.03-232.72-220.96-374.06-196.99-151.7 25.73-172.68 330.24-325.85 315.72-128.6-12.2-110.9-230.73-128.15-358.76-12.16-90.14 65.87-176.25 44.1-264.57-26.42-107.2-167.12-163.46-176.72-273.45-10.15-116.29 33.01-248.75 124.87-320.79Z" clip-rule="evenodd" style="opacity:.154"/><path fill="url(#b)" fill-rule="evenodd" d="M1103.43 115.43c146.42-19.45 275.33-155.84 413.5-103.59 188.09 71.13 409 212.64 407.06 413.88-1.94 201.25-259.28 278.6-414.96 405.96-130 106.35-240.24 294.39-405.6 265.3-163.7-28.8-161.93-274.12-284.34-386.66-134.95-124.06-436-101.46-445.82-284.6-9.68-180.38 247.41-246.3 413.54-316.9 101.01-42.93 207.83 21.06 316.62 6.61Z" clip-rule="evenodd" style="opacity:.154"/><defs><linearGradient id="b" x1="373" x2="1995.44" y1="1100" y2="118.03" gradientUnits="userSpaceOnUse"><stop stop-color="#D83333"/><stop offset="1" stop-color="#F041FF"/></linearGradient><linearGradient id="a" x1="107.37" x2="1130.66" y1="1993.35" y2="1026.31" gradientUnits="userSpaceOnUse"><stop stop-color="#3245FF"/><stop offset="1" stop-color="#BC52EE"/></linearGradient></defs></svg>
|
package/src/internal/pagefind.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pagefind 搜索索引生成器
|
|
3
|
-
*
|
|
4
|
-
* 从原 src/integrations/pagefind.ts 迁移而来,
|
|
5
|
-
* 变为集成的一个内部模块,在构建完成时自动运行。
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import path from "node:path";
|
|
9
|
-
import { fileURLToPath } from "node:url";
|
|
10
|
-
|
|
11
|
-
import type { AstroIntegrationLogger } from "astro";
|
|
12
|
-
|
|
13
|
-
export async function pagefind(dir: URL, logger: AstroIntegrationLogger): Promise<void> {
|
|
14
|
-
const outDir = fileURLToPath(dir);
|
|
15
|
-
logger.info("Running Pagefind indexer...");
|
|
16
|
-
|
|
17
|
-
try {
|
|
18
|
-
const { createIndex } = await import("pagefind");
|
|
19
|
-
const { index, errors } = await createIndex();
|
|
20
|
-
|
|
21
|
-
if (!index) {
|
|
22
|
-
logger.error("Pagefind failed to create index");
|
|
23
|
-
errors?.forEach((e) => logger.error(e));
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const { page_count } = await index.addDirectory({ path: outDir });
|
|
28
|
-
if (page_count === 0) {
|
|
29
|
-
logger.warn("Pagefind: no pages indexed");
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const { outputPath } = await index.writeFiles({
|
|
34
|
-
outputPath: path.join(outDir, "pagefind"),
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
logger.info(`Pagefind indexed ${page_count} pages → ${outputPath}`);
|
|
38
|
-
} catch (error) {
|
|
39
|
-
logger.error(`Pagefind indexing failed: ${error}`);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
.categoriesContainer {
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-direction: column;
|
|
4
|
-
gap: var(--space-xs);
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.title {
|
|
8
|
-
margin: 0;
|
|
9
|
-
font-size: var(--font-size-base);
|
|
10
|
-
font-weight: 600;
|
|
11
|
-
color: var(--white-90p);
|
|
12
|
-
padding-bottom: var(--space-sm);
|
|
13
|
-
border-bottom: var(--border-thin) solid var(--white-20p);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.categoryList {
|
|
17
|
-
display: flex;
|
|
18
|
-
flex-direction: column;
|
|
19
|
-
gap: var(--space-sm);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.category {
|
|
23
|
-
display: inline-flex;
|
|
24
|
-
padding: var(--space-sm) var(--space-xs);
|
|
25
|
-
background: var(--white-05p);
|
|
26
|
-
color: var(--white-80p);
|
|
27
|
-
border-left: var(--border-thick) solid var(--accent-60p);
|
|
28
|
-
text-decoration: none;
|
|
29
|
-
transition:
|
|
30
|
-
color var(--transition-medium),
|
|
31
|
-
transform var(--transition-medium);
|
|
32
|
-
border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
|
|
33
|
-
font-size: var(--font-size-small);
|
|
34
|
-
transform: translateX(0);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.category:hover {
|
|
38
|
-
transform: translateX(4px);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.category:active {
|
|
42
|
-
transform: translateX(2px);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.empty {
|
|
46
|
-
color: var(--white-50p);
|
|
47
|
-
font-size: var(--font-size-small);
|
|
48
|
-
text-align: center;
|
|
49
|
-
padding: var(--space-md) 0;
|
|
50
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/* 左侧边栏 */
|
|
2
|
-
|
|
3
|
-
.leftSidebar {
|
|
4
|
-
position: sticky;
|
|
5
|
-
top: 20px;
|
|
6
|
-
width: 100%;
|
|
7
|
-
height: fit-content;
|
|
8
|
-
max-height: calc(100vh - 40px);
|
|
9
|
-
overflow-y: auto;
|
|
10
|
-
display: flex;
|
|
11
|
-
flex-direction: column;
|
|
12
|
-
gap: var(--space-lg);
|
|
13
|
-
padding: var(--space-lg) 0;
|
|
14
|
-
|
|
15
|
-
/* 隐藏滚动条但保留滚动功能 */
|
|
16
|
-
scrollbar-width: none;
|
|
17
|
-
-ms-overflow-style: none;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.leftSidebar::-webkit-scrollbar {
|
|
21
|
-
display: none;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@media (max-width: 1200px) {
|
|
25
|
-
.leftSidebar {
|
|
26
|
-
display: none;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.sidebarContainer {
|
|
31
|
-
display: flex;
|
|
32
|
-
flex-direction: column;
|
|
33
|
-
background: var(--black-10p);
|
|
34
|
-
border-radius: var(--radius-lg);
|
|
35
|
-
padding: var(--space-md);
|
|
36
|
-
box-shadow: var(--shadow-sidebar);
|
|
37
|
-
transition: all var(--transition-normal) ease;
|
|
38
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/* 右侧边栏 - 文章纲要和元数据 */
|
|
2
|
-
|
|
3
|
-
.rightSidebar {
|
|
4
|
-
position: sticky;
|
|
5
|
-
top: 20px;
|
|
6
|
-
width: 100%;
|
|
7
|
-
height: fit-content;
|
|
8
|
-
max-height: calc(100vh - 40px);
|
|
9
|
-
overflow-y: auto;
|
|
10
|
-
display: flex;
|
|
11
|
-
flex-direction: column;
|
|
12
|
-
gap: var(--space-lg);
|
|
13
|
-
padding: var(--space-lg) 0;
|
|
14
|
-
|
|
15
|
-
/* 为 scrollIntoView 预留底部空间,确保长目录的激活项不会被裁切 */
|
|
16
|
-
scroll-padding-bottom: 8rem;
|
|
17
|
-
|
|
18
|
-
/* 隐藏滚动条但保留滚动功能 */
|
|
19
|
-
scrollbar-width: none;
|
|
20
|
-
-ms-overflow-style: none;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.rightSidebar::-webkit-scrollbar {
|
|
24
|
-
display: none;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.sidebarContainer {
|
|
28
|
-
display: flex;
|
|
29
|
-
flex-direction: column;
|
|
30
|
-
background: var(--black-10p);
|
|
31
|
-
border-radius: var(--radius-lg);
|
|
32
|
-
padding: var(--space-md);
|
|
33
|
-
box-shadow: var(--shadow-sidebar);
|
|
34
|
-
transition: all var(--transition-normal) ease;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/* 响应式设计 */
|
|
38
|
-
|
|
39
|
-
@media (max-width: 1400px) {
|
|
40
|
-
.rightSidebar {
|
|
41
|
-
width: 240px;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
@media (max-width: 1200px) {
|
|
46
|
-
.rightSidebar {
|
|
47
|
-
display: none;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
@media (max-width: 768px) {
|
|
52
|
-
.rightSidebar {
|
|
53
|
-
position: static;
|
|
54
|
-
width: 100%;
|
|
55
|
-
max-height: none;
|
|
56
|
-
top: auto;
|
|
57
|
-
order: 2;
|
|
58
|
-
padding: 1rem 0;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
.tagsContainer {
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-direction: column;
|
|
4
|
-
gap: var(--space-xs);
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.title {
|
|
8
|
-
margin: 0;
|
|
9
|
-
font-size: var(--font-size-base);
|
|
10
|
-
font-weight: 600;
|
|
11
|
-
color: var(--white-90p);
|
|
12
|
-
padding-bottom: var(--space-sm);
|
|
13
|
-
border-bottom: var(--border-thin) solid var(--white-20p);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.tagList {
|
|
17
|
-
display: flex;
|
|
18
|
-
flex-wrap: wrap;
|
|
19
|
-
gap: var(--space-sm);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.tag {
|
|
23
|
-
display: inline-block;
|
|
24
|
-
padding: 0.4rem 0.8rem;
|
|
25
|
-
background: var(--white-10p);
|
|
26
|
-
border: none;
|
|
27
|
-
border-radius: var(--radius-full);
|
|
28
|
-
font-size: var(--font-size-smaller);
|
|
29
|
-
text-decoration: none;
|
|
30
|
-
transition:
|
|
31
|
-
color var(--transition-medium),
|
|
32
|
-
transform var(--transition-medium);
|
|
33
|
-
white-space: nowrap;
|
|
34
|
-
transform: translateY(0);
|
|
35
|
-
color: var(--white-85p);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.tag:hover {
|
|
39
|
-
transform: translateY(-2px);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.tag:active {
|
|
43
|
-
transform: translateY(-1px);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.empty {
|
|
47
|
-
color: var(--white-50p);
|
|
48
|
-
font-size: var(--font-size-small);
|
|
49
|
-
text-align: center;
|
|
50
|
-
padding: var(--space-md) 0;
|
|
51
|
-
}
|