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 0000000..f23a15b Binary files /dev/null and b/public/noise.png differ 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() --- -