From cd3581de170a4d29d00379358c7c0ec1b898c1c0 Mon Sep 17 00:00:00 2001 From: Guoqi Sun Date: Sat, 21 Dec 2024 20:13:18 +0800 Subject: [PATCH] style: overall optimized UI style --- package.json | 3 +- pnpm-lock.yaml | 66 ++++++++++++------- public/noise.png | Bin 0 -> 22927 bytes src/components/astro/blog.astro | 17 +++-- src/components/astro/footer.astro | 8 ++- src/components/astro/intro.astro | 2 +- src/components/astro/nav.astro | 12 +--- src/components/astro/post-list.astro | 23 +++++++ src/components/astro/tag.astro | 46 ++++++-------- src/components/react/code-background.tsx | 74 ++++++++++++++++++++++ src/components/react/noise-background.tsx | 2 +- src/config/en/about.mdx | 2 +- src/config/index.ts | 3 +- src/config/zh/about.mdx | 2 +- src/content/posts/zh/post-1.md | 5 ++ src/content/posts/zh/post-8.md | 2 +- src/i18n/ui.ts | 6 +- src/layouts/base.astro | 12 ++-- src/layouts/main.astro | 8 ++- src/pages/[lang]/about/index.astro | 2 +- src/pages/[lang]/archive/index.astro | 33 +++++----- src/pages/[lang]/posts/[...slug].astro | 27 +++++++- src/pages/[lang]/tags/index.astro | 26 -------- src/styles/post.css | 2 +- src/styles/post.scss | 5 ++ src/utils/index.ts | 18 ++++-- 26 files changed, 263 insertions(+), 143 deletions(-) create mode 100644 public/noise.png create mode 100644 src/components/astro/post-list.astro create mode 100644 src/components/react/code-background.tsx delete mode 100644 src/pages/[lang]/tags/index.astro create mode 100644 src/styles/post.scss diff --git a/package.json b/package.json index 9e4a755..6af4769 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,8 @@ "lint-staged": "^15.2.11", "prettier": "^3.4.2", "prettier-plugin-astro": "^0.14.1", - "prettier-plugin-tailwindcss": "^0.6.9" + "prettier-plugin-tailwindcss": "^0.6.9", + "sass": "^1.83.0" }, "lint-staged": { "*/**/*.{js,jsx,ts,tsx,astro}": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index db9ddd4..d1da01f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,10 +13,10 @@ importers: version: 0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.4.2)(typescript@5.7.2) '@astrojs/mdx': specifier: ^4.0.2 - version: 4.0.2(astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1)) + version: 4.0.2(astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(sass@1.83.0)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/react': specifier: ^4.1.0 - version: 4.1.0(@types/node@22.10.2)(@types/react-dom@18.3.1)(@types/react@18.3.12)(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yaml@2.6.1) + version: 4.1.0(@types/node@22.10.2)(@types/react-dom@18.3.1)(@types/react@18.3.12)(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.83.0)(yaml@2.6.1) '@astrojs/rss': specifier: ^4.0.10 version: 4.0.10 @@ -25,7 +25,7 @@ importers: version: 3.2.1 '@astrojs/tailwind': specifier: ^5.1.3 - version: 5.1.3(astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16) + version: 5.1.3(astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(sass@1.83.0)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16) '@types/react': specifier: ^18.3.12 version: 18.3.12 @@ -34,10 +34,10 @@ importers: version: 18.3.1 astro: specifier: ^5.1.0 - version: 5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) + version: 5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(sass@1.83.0)(typescript@5.7.2)(yaml@2.6.1) astro-og-canvas: specifier: ^0.5.5 - version: 0.5.5(astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1)) + version: 0.5.5(astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(sass@1.83.0)(typescript@5.7.2)(yaml@2.6.1)) canvaskit-wasm: specifier: ^0.39.1 version: 0.39.1 @@ -99,6 +99,9 @@ importers: prettier-plugin-tailwindcss: specifier: ^0.6.9 version: 0.6.9(prettier-plugin-astro@0.14.1)(prettier@3.4.2) + sass: + specifier: ^1.83.0 + version: 1.83.0 packages: @@ -2019,6 +2022,9 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + immutable@5.0.3: + resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} + import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -3082,6 +3088,11 @@ packages: sass-formatter@0.7.9: resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} + sass@1.83.0: + resolution: {integrity: sha512-qsSxlayzoOjdvXMVLkzF84DJFc2HZEL/rFyGIKbbilYtAvlCxyuzUeff9LawTn4btVnLKg75Z8MMr1lxU1lfGw==} + engines: {node: '>=14.0.0'} + hasBin: true + sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} @@ -3821,12 +3832,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.0.2(astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1))': + '@astrojs/mdx@4.0.2(astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(sass@1.83.0)(typescript@5.7.2)(yaml@2.6.1))': dependencies: '@astrojs/markdown-remark': 6.0.1 '@mdx-js/mdx': 3.1.0(acorn@8.14.0) acorn: 8.14.0 - astro: 5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) + astro: 5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(sass@1.83.0)(typescript@5.7.2)(yaml@2.6.1) es-module-lexer: 1.5.4 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.3 @@ -3844,15 +3855,15 @@ snapshots: dependencies: prismjs: 1.29.0 - '@astrojs/react@4.1.0(@types/node@22.10.2)(@types/react-dom@18.3.1)(@types/react@18.3.12)(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yaml@2.6.1)': + '@astrojs/react@4.1.0(@types/node@22.10.2)(@types/react-dom@18.3.1)(@types/react@18.3.12)(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.83.0)(yaml@2.6.1)': dependencies: '@types/react': 18.3.12 '@types/react-dom': 18.3.1 - '@vitejs/plugin-react': 4.3.4(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)) + '@vitejs/plugin-react': 4.3.4(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(yaml@2.6.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) ultrahtml: 1.5.3 - vite: 6.0.3(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) + vite: 6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - jiti @@ -3878,9 +3889,9 @@ snapshots: stream-replace-string: 2.0.0 zod: 3.23.8 - '@astrojs/tailwind@5.1.3(astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16)': + '@astrojs/tailwind@5.1.3(astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(sass@1.83.0)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16)': dependencies: - astro: 5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) + astro: 5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(sass@1.83.0)(typescript@5.7.2)(yaml@2.6.1) autoprefixer: 10.4.20(postcss@8.4.49) postcss: 8.4.49 postcss-load-config: 4.0.2(postcss@8.4.49) @@ -4700,14 +4711,14 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-react@4.3.4(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(yaml@2.6.1))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.3(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) + vite: 6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(yaml@2.6.1) transitivePeerDependencies: - supports-color @@ -4884,14 +4895,14 @@ snapshots: - supports-color - typescript - astro-og-canvas@0.5.5(astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1)): + astro-og-canvas@0.5.5(astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(sass@1.83.0)(typescript@5.7.2)(yaml@2.6.1)): dependencies: - astro: 5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) + astro: 5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(sass@1.83.0)(typescript@5.7.2)(yaml@2.6.1) canvaskit-wasm: 0.39.1 deterministic-object-hash: 2.0.2 entities: 4.5.0 - astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1): + astro@5.1.0(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.27.4)(sass@1.83.0)(typescript@5.7.2)(yaml@2.6.1): dependencies: '@astrojs/compiler': 2.10.3 '@astrojs/internal-helpers': 0.4.2 @@ -4943,8 +4954,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.14.1 vfile: 6.0.3 - vite: 6.0.3(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) - vitefu: 1.0.4(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)) + vite: 6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(yaml@2.6.1) + vitefu: 1.0.4(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(yaml@2.6.1)) which-pm: 3.0.0 xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 @@ -5954,6 +5965,8 @@ snapshots: ignore@5.3.2: {} + immutable@5.0.3: {} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 @@ -7311,6 +7324,14 @@ snapshots: dependencies: suf-log: 2.5.3 + sass@1.83.0: + dependencies: + chokidar: 4.0.1 + immutable: 5.0.3 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.0 + sax@1.4.1: {} scheduler@0.23.2: @@ -7758,7 +7779,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1): + vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(yaml@2.6.1): dependencies: esbuild: 0.24.0 postcss: 8.4.49 @@ -7767,11 +7788,12 @@ snapshots: '@types/node': 22.10.2 fsevents: 2.3.3 jiti: 2.4.2 + sass: 1.83.0 yaml: 2.6.1 - vitefu@1.0.4(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)): + vitefu@1.0.4(vite@6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(yaml@2.6.1)): optionalDependencies: - vite: 6.0.3(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) + vite: 6.0.3(@types/node@22.10.2)(jiti@2.4.2)(sass@1.83.0)(yaml@2.6.1) volar-service-css@0.0.62(@volar/language-service@2.4.10): dependencies: diff --git a/public/noise.png b/public/noise.png new file mode 100644 index 0000000000000000000000000000000000000000..f23a15b6cc7fb7cd36ada067938cf8971c922eed GIT binary patch literal 22927 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 KMNUMnLSTYV>{s&u literal 0 HcmV?d00001 diff --git a/src/components/astro/blog.astro b/src/components/astro/blog.astro index dc286b4..8b842ae 100644 --- a/src/components/astro/blog.astro +++ b/src/components/astro/blog.astro @@ -1,7 +1,8 @@ --- import { latestPosts } from "~/config" import { getLangFromUrl, useTranslations } from "~/i18n/utils" -import { formatDate, getPostsByLocale } from "~/utils" +import { getPostsByLocale } from "~/utils" +import PostList from "./post-list.astro" const lang = getLangFromUrl(Astro.url) const t = useTranslations(lang) @@ -13,13 +14,11 @@ const posts = allPosts.slice(0, latestPosts)
{t("blog.latest")}
{ posts.map((post: any) => ( - -
-

- -

-

{post.data.title}

-
-
+ )) } diff --git a/src/components/astro/footer.astro b/src/components/astro/footer.astro index 3881adc..0eb8dea 100644 --- a/src/components/astro/footer.astro +++ b/src/components/astro/footer.astro @@ -2,12 +2,16 @@ const currentYear = new Date().getFullYear() --- -