diff --git a/package.json b/package.json index f96448c..21183e8 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "rehype-components": "^0.3.0", "rehype-external-links": "^3.0.0", "rehype-katex": "^7.0.1", - "rehype-pretty-code": "^0.14.0", + "rehype-pretty-code": "^0.14.1", "rehype-slug": "^6.0.0", "remark-directive": "^4.0.0", "remark-github-admonitions-to-directives": "^2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 61cff07..a95f602 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,8 +66,8 @@ importers: specifier: ^7.0.1 version: 7.0.1 rehype-pretty-code: - specifier: ^0.14.0 - version: 0.14.0(shiki@1.29.2) + specifier: ^0.14.1 + version: 0.14.1(shiki@1.29.2) rehype-slug: specifier: ^6.0.0 version: 6.0.0 @@ -143,7 +143,7 @@ importers: version: 1.5.0 unocss: specifier: 66.1.0-beta.5 - version: 66.1.0-beta.5(postcss@8.5.3)(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2)) + version: 66.1.0-beta.5(postcss@8.5.3)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2)) unocss-preset-theme: specifier: ^0.14.1 version: 0.14.1(@unocss/core@66.1.0-beta.5) @@ -2967,11 +2967,11 @@ packages: rehype-parse@9.0.1: resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} - rehype-pretty-code@0.14.0: - resolution: {integrity: sha512-hBeKF/Wkkf3zyUS8lal9RCUuhypDWLQc+h9UrP9Pav25FUm/AQAVh4m5gdvJxh4Oz+U+xKvdsV01p1LdvsZTiQ==} + rehype-pretty-code@0.14.1: + resolution: {integrity: sha512-IpG4OL0iYlbx78muVldsK86hdfNoht0z63AP7sekQNW2QOTmjxB7RbTO+rhIYNGRljgHxgVZoPwUl6bIC9SbjA==} engines: {node: '>=18'} peerDependencies: - shiki: ^1.3.0 + shiki: ^1.0.0 || ^2.0.0 || ^3.0.0 rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} @@ -3496,8 +3496,8 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite@6.2.1: - resolution: {integrity: sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==} + vite@6.2.2: + resolution: {integrity: sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -4634,13 +4634,13 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@unocss/astro@66.1.0-beta.5(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2))': + '@unocss/astro@66.1.0-beta.5(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2))': dependencies: '@unocss/core': 66.1.0-beta.5 '@unocss/reset': 66.1.0-beta.5 - '@unocss/vite': 66.1.0-beta.5(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2)) + '@unocss/vite': 66.1.0-beta.5(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2)) optionalDependencies: - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0) transitivePeerDependencies: - vue @@ -4791,7 +4791,7 @@ snapshots: dependencies: '@unocss/core': 66.1.0-beta.5 - '@unocss/vite@66.1.0-beta.5(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2))': + '@unocss/vite@66.1.0-beta.5(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2))': dependencies: '@ampproject/remapping': 2.3.0 '@unocss/config': 66.1.0-beta.5 @@ -4801,7 +4801,7 @@ snapshots: magic-string: 0.30.17 tinyglobby: 0.2.12 unplugin-utils: 0.2.4 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0) transitivePeerDependencies: - vue @@ -5131,8 +5131,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.15.0 vfile: 6.0.3 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0) - vitefu: 1.0.6(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0)) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0) + vitefu: 1.0.6(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.1 @@ -7342,7 +7342,7 @@ snapshots: hast-util-from-html: 2.0.3 unified: 11.0.5 - rehype-pretty-code@0.14.0(shiki@1.29.2): + rehype-pretty-code@0.14.1(shiki@1.29.2): dependencies: '@types/hast': 3.0.4 hast-util-to-string: 3.0.1 @@ -7907,9 +7907,9 @@ snapshots: '@unocss/core': 66.1.0-beta.5 '@unocss/rule-utils': 0.63.6 - unocss@66.1.0-beta.5(postcss@8.5.3)(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2)): + unocss@66.1.0-beta.5(postcss@8.5.3)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2)): dependencies: - '@unocss/astro': 66.1.0-beta.5(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2)) + '@unocss/astro': 66.1.0-beta.5(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2)) '@unocss/cli': 66.1.0-beta.5 '@unocss/core': 66.1.0-beta.5 '@unocss/postcss': 66.1.0-beta.5(postcss@8.5.3) @@ -7927,9 +7927,9 @@ snapshots: '@unocss/transformer-compile-class': 66.1.0-beta.5 '@unocss/transformer-directives': 66.1.0-beta.5 '@unocss/transformer-variant-group': 66.1.0-beta.5 - '@unocss/vite': 66.1.0-beta.5(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2)) + '@unocss/vite': 66.1.0-beta.5(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2)) optionalDependencies: - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0) transitivePeerDependencies: - postcss - supports-color @@ -7987,7 +7987,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0): + vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0): dependencies: esbuild: 0.25.1 postcss: 8.5.3 @@ -8000,9 +8000,9 @@ snapshots: terser: 5.37.0 yaml: 2.7.0 - vitefu@1.0.6(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0)): + vitefu@1.0.6(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0)): optionalDependencies: - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(yaml@2.7.0) volar-service-css@0.0.62(@volar/language-service@2.4.12): dependencies: diff --git a/src/components/Comments/Waline.astro b/src/components/Comments/Waline.astro index a44c6da..564aa8f 100644 --- a/src/components/Comments/Waline.astro +++ b/src/components/Comments/Waline.astro @@ -1,7 +1,15 @@ --- import { themeConfig } from '@/config' -import { getWalineLang } from '@/i18n/lang' +import { defaultLocale } from '@/i18n/config' +import { walineLocaleMap } from '@/i18n/ui' +// Theme color configuration +const { + light: { primary: lightPrimary, secondary: lightSecondary, background: lightBackground }, + dark: { primary: darkPrimary, secondary: darkSecondary, background: darkBackground }, +} = themeConfig.color + +// Waline configuration const { serverURL = '', emoji = [], @@ -9,10 +17,22 @@ const { imageUploader = false, } = themeConfig.comment?.waline ?? {} +// Get current path const currentPath = Astro.url.pathname -const defaultLocale = themeConfig.global.locale -const walineLang = getWalineLang(currentPath, defaultLocale) +// Get the language code of Waline +function getWalineLang(currentPath: string, defaultLocale: string): string { + // Extract language code from path + const pathLang = Object.keys(walineLocaleMap).find(code => + currentPath.startsWith(`/${code}/`), + ) + // Return found path language or default language + const lang = pathLang || defaultLocale + return walineLocaleMap[lang as keyof typeof walineLocaleMap] +} + +// Get Waline language and generate configuration +const walineLang = getWalineLang(currentPath, defaultLocale) const walineConfigJson = JSON.stringify({ serverURL, lang: walineLang, @@ -20,12 +40,8 @@ const walineConfigJson = JSON.stringify({ search, imageUploader, }) - -const { - light: { primary: lightPrimary, secondary: lightSecondary, background: lightBackground }, - dark: { primary: darkPrimary, secondary: darkSecondary, background: darkBackground }, -} = themeConfig.color --- +