diff --git a/package.json b/package.json index 8ef3aa5..3d509c8 100644 --- a/package.json +++ b/package.json @@ -6,10 +6,10 @@ "node": ">=22.12.0" }, "scripts": { - "dev": "astro dev", + "dev": "PUBLIC_GIT_COMMIT=$(git rev-parse HEAD) astro dev", "preview": "astro preview", "astro": "astro", - "build": "astro build" + "build": "PUBLIC_GIT_COMMIT=$(git rev-parse HEAD) astro build" }, "dependencies": { "@astrojs/rss": "^4.0.17", diff --git a/public/images/email.svg b/public/images/email.svg new file mode 100644 index 0000000..cd78d4f --- /dev/null +++ b/public/images/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/github-outline-7.svg b/public/images/github-outline-7.svg new file mode 100644 index 0000000..2ab205c --- /dev/null +++ b/public/images/github-outline-7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/BuildHashBlocks.astro b/src/components/BuildHashBlocks.astro new file mode 100644 index 0000000..5c0a4ac --- /dev/null +++ b/src/components/BuildHashBlocks.astro @@ -0,0 +1,47 @@ +--- +const rawHash = (import.meta.env.PUBLIC_GIT_COMMIT || "") + .replace(/[^a-fA-F0-9]/g, "") + .toLowerCase(); + +const safeHash = rawHash || "0000000000000000000000000000000000000000"; + +const blockCount = 6; +const hexPerBlock = 6; + +const blocks: string[] = Array.from({ length: blockCount }, (_, i) => { + const start = i * hexPerBlock; + const part = safeHash.slice(start, start + hexPerBlock).padEnd(6, "0"); + return `#${part}`; +}); +--- + +
+
Astro Build
+ { + blocks.map((color: string) => ( + + )) + } +
+ + diff --git a/src/components/Footer.astro b/src/components/Footer.astro index ffe7c1d..df7648d 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -1,22 +1,85 @@ --- import { getLangFromUrl, getTranslations, type Lang } from "@/i18n"; - +import BuildHashBlocks from "@/components/BuildHashBlocks.astro"; +const commit = import.meta.env.PUBLIC_GIT_COMMIT || "unknown"; const lang = getLangFromUrl(Astro.url); const t = getTranslations(lang); --- diff --git a/src/components/Navigation.astro b/src/components/Navigation.astro index d2346e4..804ee06 100644 --- a/src/components/Navigation.astro +++ b/src/components/Navigation.astro @@ -42,9 +42,9 @@ const t = getTranslations(lang); height: 12px; background: repeating-linear-gradient( -45deg, - #e96b6b 0 14px, + #ef5a6f 0 14px, transparent 14px 28px, - #7da2ff 28px 42px, + #536493 28px 42px, transparent 42px 56px ); pointer-events: none; diff --git a/src/i18n/en.ts b/src/i18n/en.ts index d294470..69350fa 100644 --- a/src/i18n/en.ts +++ b/src/i18n/en.ts @@ -43,7 +43,7 @@ export default { '· Parsifal\'s Blog', "· And some other websites whose names I have unfortunately forgotten", "Thank you for your ideas and passion!", - "In addition, this blog is fully open source. You can find its source code through the link in the footer.", + "In addition, this blog is open source under MIT License. You can find its source code through the link in the footer.", ] }, tags: { diff --git a/src/i18n/zh.ts b/src/i18n/zh.ts index 593d874..b0b72fc 100644 --- a/src/i18n/zh.ts +++ b/src/i18n/zh.ts @@ -43,7 +43,7 @@ export default { '· Parsifal\'s Blog', "· 还有一些已经忘记名字的网站", "谢谢你们的想法和热情!", - "此外,这个博客完全开源,你可以从页脚的链接处获取它的源代码。", + "此外,这个博客的源码使用 MIT 协议开源,你可以从页脚的链接处获取它的源代码。", ] }, tags: { diff --git a/src/layouts/MarkdownPostLayout.astro b/src/layouts/MarkdownPostLayout.astro index 55686b4..873ed51 100644 --- a/src/layouts/MarkdownPostLayout.astro +++ b/src/layouts/MarkdownPostLayout.astro @@ -240,6 +240,7 @@ const t = getTranslations(lang); "Noto Sans CJK SC", "Source Han Sans SC", sans-serif; + font-weight: 400; } .post-content :global(code), diff --git a/src/styles/global.css b/src/styles/global.css index ea6a034..ec220d1 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -34,20 +34,11 @@ article svg[id^="mermaid-"] { html { /* font-family: "Maple Mono", "Maple Mono CN", monospace; */ - font-family: - system-ui, - -apple-system, - BlinkMacSystemFont, - "Segoe UI", - Roboto, - Oxygen, - Ubuntu, - Cantarell, - "Open Sans", - "Helvetica Neue", - sans-serif; - background-color: #ffffff; - color: #1f2328; + font-family: 'Noto Serif SC', serif; + font-weight: 500; + /* background-color: #ffffff; */ + background-color: #F9F2ED; + color: #0E2F56; } html { @@ -59,7 +50,7 @@ html { body { margin: 0 auto; width: 100%; - max-width: 78ch; + max-width: 90ch; padding: 1rem; line-height: 1.7; font-size: 1.15rem; @@ -74,13 +65,14 @@ body::after { /* 按需调整大小 */ height: 400px; /* 按需调整大小 */ - background-image: url("https://files.seeusercontent.com/2026/03/30/4Xfr/bc7e804dc2c8ecaf407c9d665414ff72.webp"); + background-image: url("https://files.seeusercontent.com/2026/04/16/1sXb/touhou___kirisame_marisa__2__by_.webp"); background-repeat: no-repeat; background-position: right bottom; background-size: contain; opacity: 0.35; pointer-events: none; z-index: -1; + } html.dark body::after { @@ -116,7 +108,7 @@ h1 { a { - color: #416bd6; + color: #3D74B6; font-weight: 700; text-decoration: none; } @@ -201,8 +193,9 @@ img { display: block; margin: 0 0 14px 0; padding: 0.6rem 1rem; - border: 1.5px dashed #aeb8c2; - background-color: #f3f5f7; + border: 2px dashed #aeb8c2; + background-color: #fbf5f2; + } .comment-card:last-child {