mirror of
https://github.com/reonokiy/blog.nokiy.net.git
synced 2025-06-15 11:12:54 +02:00
refactor: restructure project configuration and utility modules
- Move configuration and utility files to more organized locations - Update import paths across the project to reflect new file structure - Simplify content and internationalization utilities - Remove redundant configuration files and consolidate logic - Add prefetch configuration to Astro config for improved performance
This commit is contained in:
parent
a26031d490
commit
fc1daf4335
23 changed files with 380 additions and 393 deletions
|
@ -18,7 +18,7 @@ import remarkGithubAdmonitionsToDirectives from 'remark-github-admonitions-to-di
|
|||
import remarkMath from 'remark-math'
|
||||
import remarkSectionize from 'remark-sectionize'
|
||||
import UnoCSS from 'unocss/astro'
|
||||
import { themeConfig } from './src/config'
|
||||
import { themeConfig } from './src/config.js'
|
||||
// Local plugins
|
||||
import { AdmonitionComponent } from './src/plugins/rehype-component-admonition.mjs'
|
||||
import { GithubCardComponent } from './src/plugins/rehype-component-github-card.mjs'
|
||||
|
@ -34,6 +34,10 @@ const { locale } = themeConfig.global
|
|||
export default defineConfig({
|
||||
site: url,
|
||||
base: '/',
|
||||
prefetch: {
|
||||
prefetchAll: true,
|
||||
defaultStrategy: 'viewport',
|
||||
},
|
||||
i18n: {
|
||||
locales: Object.entries(langMap).map(([path, codes]) => ({
|
||||
path,
|
||||
|
|
|
@ -51,8 +51,8 @@
|
|||
"@types/sanitize-html": "^2.13.0",
|
||||
"@unocss/eslint-plugin": "^65.4.3",
|
||||
"@unocss/preset-attributify": "^65.4.3",
|
||||
"astro-eslint-parser": "^1.1.0",
|
||||
"eslint": "^9.18.0",
|
||||
"astro-eslint-parser": "^1.2.0",
|
||||
"eslint": "^9.19.0",
|
||||
"eslint-plugin-astro": "^1.3.1",
|
||||
"lint-staged": "^15.4.2",
|
||||
"mdast-util-to-string": "^4.0.0",
|
||||
|
|
385
pnpm-lock.yaml
generated
385
pnpm-lock.yaml
generated
|
@ -98,7 +98,7 @@ importers:
|
|||
devDependencies:
|
||||
'@antfu/eslint-config':
|
||||
specifier: ^3.16.0
|
||||
version: 3.16.0(@typescript-eslint/utils@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@unocss/eslint-plugin@65.4.3(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.5.13)(astro-eslint-parser@1.1.0(typescript@5.7.3))(eslint-plugin-astro@1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
version: 3.16.0(@typescript-eslint/utils@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(@unocss/eslint-plugin@65.4.3(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.5.13)(astro-eslint-parser@1.2.0)(eslint-plugin-astro@1.3.1(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@types/markdown-it':
|
||||
specifier: ^14.1.2
|
||||
version: 14.1.2
|
||||
|
@ -110,19 +110,19 @@ importers:
|
|||
version: 2.13.0
|
||||
'@unocss/eslint-plugin':
|
||||
specifier: ^65.4.3
|
||||
version: 65.4.3(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
version: 65.4.3(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@unocss/preset-attributify':
|
||||
specifier: ^65.4.3
|
||||
version: 65.4.3
|
||||
astro-eslint-parser:
|
||||
specifier: ^1.1.0
|
||||
version: 1.1.0(typescript@5.7.3)
|
||||
specifier: ^1.2.0
|
||||
version: 1.2.0
|
||||
eslint:
|
||||
specifier: ^9.18.0
|
||||
version: 9.18.0(jiti@2.4.2)
|
||||
specifier: ^9.19.0
|
||||
version: 9.19.0(jiti@2.4.2)
|
||||
eslint-plugin-astro:
|
||||
specifier: ^1.3.1
|
||||
version: 1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
version: 1.3.1(eslint@9.19.0(jiti@2.4.2))
|
||||
lint-staged:
|
||||
specifier: ^15.4.2
|
||||
version: 15.4.2
|
||||
|
@ -268,13 +268,13 @@ packages:
|
|||
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/parser@7.26.5':
|
||||
resolution: {integrity: sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==}
|
||||
'@babel/parser@7.26.7':
|
||||
resolution: {integrity: sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
hasBin: true
|
||||
|
||||
'@babel/types@7.26.5':
|
||||
resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==}
|
||||
'@babel/types@7.26.7':
|
||||
resolution: {integrity: sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@clack/core@0.4.1':
|
||||
|
@ -646,8 +646,8 @@ packages:
|
|||
resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/js@9.18.0':
|
||||
resolution: {integrity: sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==}
|
||||
'@eslint/js@9.19.0':
|
||||
resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/markdown@6.2.2':
|
||||
|
@ -976,6 +976,10 @@ packages:
|
|||
'@shikijs/vscode-textmate@10.0.1':
|
||||
resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==}
|
||||
|
||||
'@sindresorhus/merge-streams@2.3.0':
|
||||
resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@stylistic/eslint-plugin@2.13.0':
|
||||
resolution: {integrity: sha512-RnO1SaiCFHn666wNz2QfZEFxvmiNRqhzaMXHXxXXKt+MEP7aajlPxUSMIQpKAaJfverpovEYqjBOXDq6dDcaOQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
@ -1342,10 +1346,6 @@ packages:
|
|||
array-iterate@2.0.1:
|
||||
resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==}
|
||||
|
||||
array-union@2.1.0:
|
||||
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
astring@1.9.0:
|
||||
resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
|
||||
hasBin: true
|
||||
|
@ -1353,8 +1353,8 @@ packages:
|
|||
astro-compress@2.3.6:
|
||||
resolution: {integrity: sha512-P93OXRRykS2iLGN20KAr1tJUAUGptKOnUybqg00/8N4aHrZxR76giBhK/C9RCLm8tsnxL0nR5FCXR53MUza9Mg==}
|
||||
|
||||
astro-eslint-parser@1.1.0:
|
||||
resolution: {integrity: sha512-F6NW1RJo5pp2kPnnM97M5Ohw8zAGjv83MpxHqfAochH68n/kiXN57+hYaNUCA7XkScoVNr6yzvly3hsY34TGfQ==}
|
||||
astro-eslint-parser@1.2.0:
|
||||
resolution: {integrity: sha512-LmJ63+AsDEBjo1rXFe87rxqhvMCS3W756oGBDqg83+FAOqGPjj1OncpCcn1OPqOhk5MyENkx3w0H6TrDgXEgPQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
astro-robots-txt@1.0.0:
|
||||
|
@ -1581,8 +1581,8 @@ packages:
|
|||
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
|
||||
engines: {node: '>= 8'}
|
||||
|
||||
crossws@0.3.2:
|
||||
resolution: {integrity: sha512-S2PpQHRcgYABOS2465b34wqTOn5dbLL+iSvyweJYGGFLDsKq88xrjDXUiEhfYkhWZq1HuS6of3okRHILbkrqxw==}
|
||||
crossws@0.3.3:
|
||||
resolution: {integrity: sha512-/71DJT3xJlqSnBr83uGJesmVHSzZEvgxHt/fIKxBAAngqMHmnBWQNxCphVxxJ2XL3xleu5+hJD6IQ3TglBedcw==}
|
||||
|
||||
css-select@5.1.0:
|
||||
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
|
||||
|
@ -1679,10 +1679,6 @@ packages:
|
|||
resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
|
||||
engines: {node: '>=0.3.1'}
|
||||
|
||||
dir-glob@3.0.1:
|
||||
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
dlv@1.1.3:
|
||||
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
|
||||
|
||||
|
@ -1717,8 +1713,8 @@ packages:
|
|||
duplexer@0.1.2:
|
||||
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
|
||||
|
||||
electron-to-chromium@1.5.87:
|
||||
resolution: {integrity: sha512-mPFwmEWmRivw2F8x3w3l2m6htAUN97Gy0kwpO++2m9iT1Gt8RCFVUfv9U/sIbHJ6rY4P6/ooqFL/eL7ock+pPg==}
|
||||
electron-to-chromium@1.5.88:
|
||||
resolution: {integrity: sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==}
|
||||
|
||||
emmet@2.4.11:
|
||||
resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==}
|
||||
|
@ -1740,6 +1736,10 @@ packages:
|
|||
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
||||
engines: {node: '>=0.12'}
|
||||
|
||||
entities@6.0.0:
|
||||
resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==}
|
||||
engines: {node: '>=0.12'}
|
||||
|
||||
environment@1.1.0:
|
||||
resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
|
||||
engines: {node: '>=18'}
|
||||
|
@ -1849,8 +1849,8 @@ packages:
|
|||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
|
||||
eslint-plugin-jsdoc@50.6.2:
|
||||
resolution: {integrity: sha512-n7GNZ4czMAAbDg7DsDA7PvHo1IPIUwAXYmxTx6j/hTlXbt5V0x5q/kGkiJ7s4wA9SpB/yaiK8jF7CO237lOLew==}
|
||||
eslint-plugin-jsdoc@50.6.3:
|
||||
resolution: {integrity: sha512-NxbJyt1M5zffPcYZ8Nb53/8nnbIScmiLAMdoe0/FAszwb7lcSiX3iYBTsuF7RV84dZZJC8r3NghomrUXsmWvxQ==}
|
||||
engines: {node: '>=18'}
|
||||
peerDependencies:
|
||||
eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
|
||||
|
@ -1938,8 +1938,8 @@ packages:
|
|||
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
eslint@9.18.0:
|
||||
resolution: {integrity: sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==}
|
||||
eslint@9.19.0:
|
||||
resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
@ -2126,9 +2126,9 @@ packages:
|
|||
resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
globby@11.1.0:
|
||||
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
|
||||
engines: {node: '>=10'}
|
||||
globby@14.0.2:
|
||||
resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
graceful-fs@4.2.11:
|
||||
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
|
||||
|
@ -2940,9 +2940,9 @@ packages:
|
|||
path-parse@1.0.7:
|
||||
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
|
||||
|
||||
path-type@4.0.0:
|
||||
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
|
||||
engines: {node: '>=8'}
|
||||
path-type@5.0.0:
|
||||
resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
pathe@1.1.2:
|
||||
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
|
||||
|
@ -3276,9 +3276,9 @@ packages:
|
|||
engines: {node: '>=14.0.0', npm: '>=6.0.0'}
|
||||
hasBin: true
|
||||
|
||||
slash@3.0.0:
|
||||
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
|
||||
engines: {node: '>=8'}
|
||||
slash@5.1.0:
|
||||
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
|
||||
engines: {node: '>=14.16'}
|
||||
|
||||
slashes@3.0.12:
|
||||
resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==}
|
||||
|
@ -3509,6 +3509,10 @@ packages:
|
|||
unenv@1.10.0:
|
||||
resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==}
|
||||
|
||||
unicorn-magic@0.1.0:
|
||||
resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
unified@11.0.5:
|
||||
resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
|
||||
|
||||
|
@ -3939,48 +3943,48 @@ snapshots:
|
|||
'@jridgewell/gen-mapping': 0.3.8
|
||||
'@jridgewell/trace-mapping': 0.3.25
|
||||
|
||||
'@antfu/eslint-config@3.16.0(@typescript-eslint/utils@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@unocss/eslint-plugin@65.4.3(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.5.13)(astro-eslint-parser@1.1.0(typescript@5.7.3))(eslint-plugin-astro@1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
'@antfu/eslint-config@3.16.0(@typescript-eslint/utils@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(@unocss/eslint-plugin@65.4.3(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.5.13)(astro-eslint-parser@1.2.0)(eslint-plugin-astro@1.3.1(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@antfu/install-pkg': 1.0.0
|
||||
'@clack/prompts': 0.9.1
|
||||
'@eslint-community/eslint-plugin-eslint-comments': 4.4.1(eslint@9.18.0(jiti@2.4.2))
|
||||
'@eslint-community/eslint-plugin-eslint-comments': 4.4.1(eslint@9.19.0(jiti@2.4.2))
|
||||
'@eslint/markdown': 6.2.2
|
||||
'@stylistic/eslint-plugin': 2.13.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/eslint-plugin': 8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/parser': 8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@vitest/eslint-plugin': 1.1.25(@typescript-eslint/utils@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint-config-flat-gitignore: 1.0.0(eslint@9.18.0(jiti@2.4.2))
|
||||
'@stylistic/eslint-plugin': 2.13.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/eslint-plugin': 8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/parser': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@vitest/eslint-plugin': 1.1.25(@typescript-eslint/utils@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
eslint-config-flat-gitignore: 1.0.0(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-flat-config-utils: 1.1.0
|
||||
eslint-merge-processors: 1.0.0(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-plugin-antfu: 2.7.0(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-plugin-command: 2.1.0(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-plugin-import-x: 4.6.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
eslint-plugin-jsdoc: 50.6.2(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-plugin-jsonc: 2.19.1(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-plugin-n: 17.15.1(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-merge-processors: 1.0.0(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-plugin-antfu: 2.7.0(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-plugin-command: 2.1.0(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-plugin-import-x: 4.6.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
eslint-plugin-jsdoc: 50.6.3(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-plugin-jsonc: 2.19.1(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-plugin-n: 17.15.1(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-plugin-no-only-tests: 3.3.0
|
||||
eslint-plugin-perfectionist: 4.7.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
eslint-plugin-regexp: 2.7.0(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-plugin-toml: 0.12.0(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-plugin-unicorn: 56.0.1(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-plugin-vue: 9.32.0(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-plugin-yml: 1.16.0(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-processor-vue-blocks: 1.0.0(@vue/compiler-sfc@3.5.13)(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-plugin-perfectionist: 4.7.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
eslint-plugin-regexp: 2.7.0(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-plugin-toml: 0.12.0(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-plugin-unicorn: 56.0.1(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-plugin-vue: 9.32.0(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-plugin-yml: 1.16.0(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-processor-vue-blocks: 1.0.0(@vue/compiler-sfc@3.5.13)(eslint@9.19.0(jiti@2.4.2))
|
||||
globals: 15.14.0
|
||||
jsonc-eslint-parser: 2.4.0
|
||||
local-pkg: 1.0.0
|
||||
parse-gitignore: 2.0.0
|
||||
picocolors: 1.1.1
|
||||
toml-eslint-parser: 0.10.0
|
||||
vue-eslint-parser: 9.4.3(eslint@9.18.0(jiti@2.4.2))
|
||||
vue-eslint-parser: 9.4.3(eslint@9.19.0(jiti@2.4.2))
|
||||
yaml-eslint-parser: 1.2.3
|
||||
yargs: 17.7.2
|
||||
optionalDependencies:
|
||||
'@unocss/eslint-plugin': 65.4.3(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
astro-eslint-parser: 1.1.0(typescript@5.7.3)
|
||||
eslint-plugin-astro: 1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@unocss/eslint-plugin': 65.4.3(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
astro-eslint-parser: 1.2.0
|
||||
eslint-plugin-astro: 1.3.1(eslint@9.19.0(jiti@2.4.2))
|
||||
transitivePeerDependencies:
|
||||
- '@eslint/json'
|
||||
- '@typescript-eslint/utils'
|
||||
|
@ -4130,11 +4134,11 @@ snapshots:
|
|||
|
||||
'@babel/helper-validator-identifier@7.25.9': {}
|
||||
|
||||
'@babel/parser@7.26.5':
|
||||
'@babel/parser@7.26.7':
|
||||
dependencies:
|
||||
'@babel/types': 7.26.5
|
||||
'@babel/types': 7.26.7
|
||||
|
||||
'@babel/types@7.26.5':
|
||||
'@babel/types@7.26.7':
|
||||
dependencies:
|
||||
'@babel/helper-string-parser': 7.25.9
|
||||
'@babel/helper-validator-identifier': 7.25.9
|
||||
|
@ -4340,22 +4344,22 @@ snapshots:
|
|||
'@esbuild/win32-x64@0.24.2':
|
||||
optional: true
|
||||
|
||||
'@eslint-community/eslint-plugin-eslint-comments@4.4.1(eslint@9.18.0(jiti@2.4.2))':
|
||||
'@eslint-community/eslint-plugin-eslint-comments@4.4.1(eslint@9.19.0(jiti@2.4.2))':
|
||||
dependencies:
|
||||
escape-string-regexp: 4.0.0
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
ignore: 5.3.2
|
||||
|
||||
'@eslint-community/eslint-utils@4.4.1(eslint@9.18.0(jiti@2.4.2))':
|
||||
'@eslint-community/eslint-utils@4.4.1(eslint@9.19.0(jiti@2.4.2))':
|
||||
dependencies:
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@eslint-community/regexpp@4.12.1': {}
|
||||
|
||||
'@eslint/compat@1.2.5(eslint@9.18.0(jiti@2.4.2))':
|
||||
'@eslint/compat@1.2.5(eslint@9.19.0(jiti@2.4.2))':
|
||||
optionalDependencies:
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
|
||||
'@eslint/config-array@0.19.1':
|
||||
dependencies:
|
||||
|
@ -4383,7 +4387,7 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@eslint/js@9.18.0': {}
|
||||
'@eslint/js@9.19.0': {}
|
||||
|
||||
'@eslint/markdown@6.2.2':
|
||||
dependencies:
|
||||
|
@ -4687,10 +4691,12 @@ snapshots:
|
|||
|
||||
'@shikijs/vscode-textmate@10.0.1': {}
|
||||
|
||||
'@stylistic/eslint-plugin@2.13.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
'@sindresorhus/merge-streams@2.3.0': {}
|
||||
|
||||
'@stylistic/eslint-plugin@2.13.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
eslint-visitor-keys: 4.2.0
|
||||
espree: 10.3.0
|
||||
estraverse: 5.3.0
|
||||
|
@ -4785,15 +4791,15 @@ snapshots:
|
|||
|
||||
'@types/unist@3.0.3': {}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
'@typescript-eslint/eslint-plugin@8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@typescript-eslint/parser': 8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/parser': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/scope-manager': 8.21.0
|
||||
'@typescript-eslint/type-utils': 8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/type-utils': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/visitor-keys': 8.21.0
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
graphemer: 1.4.0
|
||||
ignore: 5.3.2
|
||||
natural-compare: 1.4.0
|
||||
|
@ -4802,14 +4808,14 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
'@typescript-eslint/parser@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 8.21.0
|
||||
'@typescript-eslint/types': 8.21.0
|
||||
'@typescript-eslint/typescript-estree': 8.21.0(typescript@5.7.3)
|
||||
'@typescript-eslint/visitor-keys': 8.21.0
|
||||
debug: 4.4.0
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
typescript: 5.7.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
@ -4819,12 +4825,12 @@ snapshots:
|
|||
'@typescript-eslint/types': 8.21.0
|
||||
'@typescript-eslint/visitor-keys': 8.21.0
|
||||
|
||||
'@typescript-eslint/type-utils@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
'@typescript-eslint/type-utils@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 8.21.0(typescript@5.7.3)
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
debug: 4.4.0
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
ts-api-utils: 2.0.0(typescript@5.7.3)
|
||||
typescript: 5.7.3
|
||||
transitivePeerDependencies:
|
||||
|
@ -4846,13 +4852,13 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
'@typescript-eslint/utils@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2))
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2))
|
||||
'@typescript-eslint/scope-manager': 8.21.0
|
||||
'@typescript-eslint/types': 8.21.0
|
||||
'@typescript-eslint/typescript-estree': 8.21.0(typescript@5.7.3)
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
typescript: 5.7.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
@ -4906,9 +4912,9 @@ snapshots:
|
|||
|
||||
'@unocss/core@65.4.3': {}
|
||||
|
||||
'@unocss/eslint-plugin@65.4.3(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
'@unocss/eslint-plugin@65.4.3(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@unocss/config': 65.4.3
|
||||
'@unocss/core': 65.4.3
|
||||
'@unocss/rule-utils': 65.4.3
|
||||
|
@ -5036,10 +5042,10 @@ snapshots:
|
|||
- supports-color
|
||||
- vue
|
||||
|
||||
'@vitest/eslint-plugin@1.1.25(@typescript-eslint/utils@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
'@vitest/eslint-plugin@1.1.25(@typescript-eslint/utils@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
optionalDependencies:
|
||||
typescript: 5.7.3
|
||||
|
||||
|
@ -5095,7 +5101,7 @@ snapshots:
|
|||
|
||||
'@vue/compiler-core@3.5.13':
|
||||
dependencies:
|
||||
'@babel/parser': 7.26.5
|
||||
'@babel/parser': 7.26.7
|
||||
'@vue/shared': 3.5.13
|
||||
entities: 4.5.0
|
||||
estree-walker: 2.0.2
|
||||
|
@ -5108,7 +5114,7 @@ snapshots:
|
|||
|
||||
'@vue/compiler-sfc@3.5.13':
|
||||
dependencies:
|
||||
'@babel/parser': 7.26.5
|
||||
'@babel/parser': 7.26.7
|
||||
'@vue/compiler-core': 3.5.13
|
||||
'@vue/compiler-dom': 3.5.13
|
||||
'@vue/compiler-ssr': 3.5.13
|
||||
|
@ -5204,8 +5210,6 @@ snapshots:
|
|||
|
||||
array-iterate@2.0.1: {}
|
||||
|
||||
array-union@2.1.0: {}
|
||||
|
||||
astring@1.9.0: {}
|
||||
|
||||
astro-compress@2.3.6(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0):
|
||||
|
@ -5256,24 +5260,22 @@ snapshots:
|
|||
- uploadthing
|
||||
- yaml
|
||||
|
||||
astro-eslint-parser@1.1.0(typescript@5.7.3):
|
||||
astro-eslint-parser@1.2.0:
|
||||
dependencies:
|
||||
'@astrojs/compiler': 2.10.3
|
||||
'@typescript-eslint/scope-manager': 8.21.0
|
||||
'@typescript-eslint/types': 8.21.0
|
||||
'@typescript-eslint/typescript-estree': 8.21.0(typescript@5.7.3)
|
||||
astrojs-compiler-sync: 1.0.1(@astrojs/compiler@2.10.3)
|
||||
debug: 4.4.0
|
||||
entities: 4.5.0
|
||||
entities: 6.0.0
|
||||
eslint-scope: 8.2.0
|
||||
eslint-visitor-keys: 4.2.0
|
||||
espree: 10.3.0
|
||||
globby: 11.1.0
|
||||
globby: 14.0.2
|
||||
is-glob: 4.0.3
|
||||
semver: 7.6.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
astro-robots-txt@1.0.0:
|
||||
dependencies:
|
||||
|
@ -5421,7 +5423,7 @@ snapshots:
|
|||
browserslist@4.24.4:
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001695
|
||||
electron-to-chromium: 1.5.87
|
||||
electron-to-chromium: 1.5.88
|
||||
node-releases: 2.0.19
|
||||
update-browserslist-db: 1.1.2(browserslist@4.24.4)
|
||||
|
||||
|
@ -5567,7 +5569,7 @@ snapshots:
|
|||
shebang-command: 2.0.0
|
||||
which: 2.0.2
|
||||
|
||||
crossws@0.3.2:
|
||||
crossws@0.3.3:
|
||||
dependencies:
|
||||
uncrypto: 0.1.3
|
||||
|
||||
|
@ -5644,10 +5646,6 @@ snapshots:
|
|||
|
||||
diff@5.2.0: {}
|
||||
|
||||
dir-glob@3.0.1:
|
||||
dependencies:
|
||||
path-type: 4.0.0
|
||||
|
||||
dlv@1.1.3: {}
|
||||
|
||||
doctrine@3.0.0:
|
||||
|
@ -5683,7 +5681,7 @@ snapshots:
|
|||
|
||||
duplexer@0.1.2: {}
|
||||
|
||||
electron-to-chromium@1.5.87: {}
|
||||
electron-to-chromium@1.5.88: {}
|
||||
|
||||
emmet@2.4.11:
|
||||
dependencies:
|
||||
|
@ -5703,6 +5701,8 @@ snapshots:
|
|||
|
||||
entities@4.5.0: {}
|
||||
|
||||
entities@6.0.0: {}
|
||||
|
||||
environment@1.1.0: {}
|
||||
|
||||
error-ex@1.3.2:
|
||||
|
@ -5788,20 +5788,20 @@ snapshots:
|
|||
|
||||
escape-string-regexp@5.0.0: {}
|
||||
|
||||
eslint-compat-utils@0.5.1(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-compat-utils@0.5.1(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
semver: 7.6.3
|
||||
|
||||
eslint-compat-utils@0.6.4(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-compat-utils@0.6.4(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
semver: 7.6.3
|
||||
|
||||
eslint-config-flat-gitignore@1.0.0(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-config-flat-gitignore@1.0.0(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@eslint/compat': 1.2.5(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
'@eslint/compat': 1.2.5(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
find-up-simple: 1.0.0
|
||||
|
||||
eslint-flat-config-utils@1.1.0:
|
||||
|
@ -5816,57 +5816,56 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-json-compat-utils@0.2.1(eslint@9.18.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0):
|
||||
eslint-json-compat-utils@0.2.1(eslint@9.19.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0):
|
||||
dependencies:
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
esquery: 1.6.0
|
||||
jsonc-eslint-parser: 2.4.0
|
||||
|
||||
eslint-merge-processors@1.0.0(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-merge-processors@1.0.0(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
|
||||
eslint-plugin-antfu@2.7.0(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-plugin-antfu@2.7.0(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.10
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
|
||||
eslint-plugin-astro@1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3):
|
||||
eslint-plugin-astro@1.3.1(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2))
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2))
|
||||
'@jridgewell/sourcemap-codec': 1.5.0
|
||||
'@typescript-eslint/types': 8.21.0
|
||||
astro-eslint-parser: 1.1.0(typescript@5.7.3)
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint-compat-utils: 0.6.4(eslint@9.18.0(jiti@2.4.2))
|
||||
astro-eslint-parser: 1.2.0
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
eslint-compat-utils: 0.6.4(eslint@9.19.0(jiti@2.4.2))
|
||||
globals: 15.14.0
|
||||
postcss: 8.5.1
|
||||
postcss-selector-parser: 7.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
eslint-plugin-command@2.1.0(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-plugin-command@2.1.0(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@es-joy/jsdoccomment': 0.50.0
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
|
||||
eslint-plugin-es-x@7.8.0(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-plugin-es-x@7.8.0(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2))
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2))
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint-compat-utils: 0.5.1(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
eslint-compat-utils: 0.5.1(eslint@9.19.0(jiti@2.4.2))
|
||||
|
||||
eslint-plugin-import-x@4.6.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3):
|
||||
eslint-plugin-import-x@4.6.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3):
|
||||
dependencies:
|
||||
'@types/doctrine': 0.0.9
|
||||
'@typescript-eslint/scope-manager': 8.21.0
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
debug: 4.4.0
|
||||
doctrine: 3.0.0
|
||||
enhanced-resolve: 5.18.0
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
get-tsconfig: 4.10.0
|
||||
is-glob: 4.0.3
|
||||
|
@ -5878,14 +5877,14 @@ snapshots:
|
|||
- supports-color
|
||||
- typescript
|
||||
|
||||
eslint-plugin-jsdoc@50.6.2(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-plugin-jsdoc@50.6.3(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@es-joy/jsdoccomment': 0.49.0
|
||||
are-docs-informative: 0.0.2
|
||||
comment-parser: 1.4.1
|
||||
debug: 4.4.0
|
||||
escape-string-regexp: 4.0.0
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
espree: 10.3.0
|
||||
esquery: 1.6.0
|
||||
parse-imports: 2.2.1
|
||||
|
@ -5895,12 +5894,12 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-jsonc@2.19.1(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-plugin-jsonc@2.19.1(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint-compat-utils: 0.6.4(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint-json-compat-utils: 0.2.1(eslint@9.18.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0)
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
eslint-compat-utils: 0.6.4(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint-json-compat-utils: 0.2.1(eslint@9.19.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0)
|
||||
espree: 9.6.1
|
||||
graphemer: 1.4.0
|
||||
jsonc-eslint-parser: 2.4.0
|
||||
|
@ -5909,12 +5908,12 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- '@eslint/json'
|
||||
|
||||
eslint-plugin-n@17.15.1(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-plugin-n@17.15.1(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2))
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2))
|
||||
enhanced-resolve: 5.18.0
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint-plugin-es-x: 7.8.0(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
eslint-plugin-es-x: 7.8.0(eslint@9.19.0(jiti@2.4.2))
|
||||
get-tsconfig: 4.10.0
|
||||
globals: 15.14.0
|
||||
ignore: 5.3.2
|
||||
|
@ -5923,45 +5922,45 @@ snapshots:
|
|||
|
||||
eslint-plugin-no-only-tests@3.3.0: {}
|
||||
|
||||
eslint-plugin-perfectionist@4.7.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3):
|
||||
eslint-plugin-perfectionist@4.7.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3):
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.21.0
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
'@typescript-eslint/utils': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
natural-orderby: 5.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
eslint-plugin-regexp@2.7.0(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-plugin-regexp@2.7.0(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2))
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2))
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
comment-parser: 1.4.1
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
jsdoc-type-pratt-parser: 4.1.0
|
||||
refa: 0.12.1
|
||||
regexp-ast-analysis: 0.7.1
|
||||
scslre: 0.3.0
|
||||
|
||||
eslint-plugin-toml@0.12.0(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-plugin-toml@0.12.0(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
debug: 4.4.0
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint-compat-utils: 0.6.4(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
eslint-compat-utils: 0.6.4(eslint@9.19.0(jiti@2.4.2))
|
||||
lodash: 4.17.21
|
||||
toml-eslint-parser: 0.10.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-unicorn@56.0.1(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-plugin-unicorn@56.0.1(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@babel/helper-validator-identifier': 7.25.9
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2))
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2))
|
||||
ci-info: 4.1.0
|
||||
clean-regexp: 1.0.0
|
||||
core-js-compat: 3.40.0
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
esquery: 1.6.0
|
||||
globals: 15.14.0
|
||||
indent-string: 4.0.0
|
||||
|
@ -5974,41 +5973,41 @@ snapshots:
|
|||
semver: 7.6.3
|
||||
strip-indent: 3.0.0
|
||||
|
||||
eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
'@typescript-eslint/eslint-plugin': 8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
|
||||
|
||||
eslint-plugin-vue@9.32.0(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-plugin-vue@9.32.0(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2))
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
globals: 13.24.0
|
||||
natural-compare: 1.4.0
|
||||
nth-check: 2.1.1
|
||||
postcss-selector-parser: 6.1.2
|
||||
semver: 7.6.3
|
||||
vue-eslint-parser: 9.4.3(eslint@9.18.0(jiti@2.4.2))
|
||||
vue-eslint-parser: 9.4.3(eslint@9.19.0(jiti@2.4.2))
|
||||
xml-name-validator: 4.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-yml@1.16.0(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-plugin-yml@1.16.0(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
debug: 4.4.0
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint-compat-utils: 0.6.4(eslint@9.18.0(jiti@2.4.2))
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
eslint-compat-utils: 0.6.4(eslint@9.19.0(jiti@2.4.2))
|
||||
lodash: 4.17.21
|
||||
natural-compare: 1.4.0
|
||||
yaml-eslint-parser: 1.2.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-processor-vue-blocks@1.0.0(@vue/compiler-sfc@3.5.13)(eslint@9.18.0(jiti@2.4.2)):
|
||||
eslint-processor-vue-blocks@1.0.0(@vue/compiler-sfc@3.5.13)(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@vue/compiler-sfc': 3.5.13
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
|
||||
eslint-scope@7.2.2:
|
||||
dependencies:
|
||||
|
@ -6024,14 +6023,14 @@ snapshots:
|
|||
|
||||
eslint-visitor-keys@4.2.0: {}
|
||||
|
||||
eslint@9.18.0(jiti@2.4.2):
|
||||
eslint@9.19.0(jiti@2.4.2):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2))
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2))
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@eslint/config-array': 0.19.1
|
||||
'@eslint/core': 0.10.0
|
||||
'@eslint/eslintrc': 3.2.0
|
||||
'@eslint/js': 9.18.0
|
||||
'@eslint/js': 9.19.0
|
||||
'@eslint/plugin-kit': 0.2.5
|
||||
'@humanfs/node': 0.16.6
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
|
@ -6239,14 +6238,14 @@ snapshots:
|
|||
|
||||
globals@15.14.0: {}
|
||||
|
||||
globby@11.1.0:
|
||||
globby@14.0.2:
|
||||
dependencies:
|
||||
array-union: 2.1.0
|
||||
dir-glob: 3.0.1
|
||||
'@sindresorhus/merge-streams': 2.3.0
|
||||
fast-glob: 3.3.3
|
||||
ignore: 5.3.2
|
||||
merge2: 1.4.1
|
||||
slash: 3.0.0
|
||||
path-type: 5.0.0
|
||||
slash: 5.1.0
|
||||
unicorn-magic: 0.1.0
|
||||
|
||||
graceful-fs@4.2.11: {}
|
||||
|
||||
|
@ -6259,7 +6258,7 @@ snapshots:
|
|||
h3@1.14.0:
|
||||
dependencies:
|
||||
cookie-es: 1.2.2
|
||||
crossws: 0.3.2
|
||||
crossws: 0.3.3
|
||||
defu: 6.1.4
|
||||
destr: 2.0.3
|
||||
iron-webcrypto: 1.2.1
|
||||
|
@ -6731,8 +6730,8 @@ snapshots:
|
|||
|
||||
magicast@0.3.5:
|
||||
dependencies:
|
||||
'@babel/parser': 7.26.5
|
||||
'@babel/types': 7.26.5
|
||||
'@babel/parser': 7.26.7
|
||||
'@babel/types': 7.26.7
|
||||
source-map-js: 1.2.1
|
||||
|
||||
markdown-extensions@2.0.0: {}
|
||||
|
@ -7442,7 +7441,7 @@ snapshots:
|
|||
|
||||
path-parse@1.0.7: {}
|
||||
|
||||
path-type@4.0.0: {}
|
||||
path-type@5.0.0: {}
|
||||
|
||||
pathe@1.1.2: {}
|
||||
|
||||
|
@ -7927,7 +7926,7 @@ snapshots:
|
|||
arg: 5.0.2
|
||||
sax: 1.4.1
|
||||
|
||||
slash@3.0.0: {}
|
||||
slash@5.1.0: {}
|
||||
|
||||
slashes@3.0.12: {}
|
||||
|
||||
|
@ -8140,6 +8139,8 @@ snapshots:
|
|||
node-fetch-native: 1.6.6
|
||||
pathe: 1.1.2
|
||||
|
||||
unicorn-magic@0.1.0: {}
|
||||
|
||||
unified@11.0.5:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
|
@ -8422,10 +8423,10 @@ snapshots:
|
|||
|
||||
vscode-uri@3.0.8: {}
|
||||
|
||||
vue-eslint-parser@9.4.3(eslint@9.18.0(jiti@2.4.2)):
|
||||
vue-eslint-parser@9.4.3(eslint@9.19.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
debug: 4.4.0
|
||||
eslint: 9.18.0(jiti@2.4.2)
|
||||
eslint: 9.19.0(jiti@2.4.2)
|
||||
eslint-scope: 7.2.2
|
||||
eslint-visitor-keys: 3.4.3
|
||||
espree: 9.6.1
|
||||
|
|
|
@ -3,11 +3,11 @@ import type { ThemeConfig } from '@/types'
|
|||
export const themeConfig: ThemeConfig = {
|
||||
// SITE INFORMATION >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> START
|
||||
site: {
|
||||
title: 'Retypeset',
|
||||
subtitle: '再现版式之美',
|
||||
description: '重新编排 - 再现版式之美 | Retypeset - Rediscover the beauty of typography',
|
||||
author: 'radishzz',
|
||||
url: 'https://retypeset.radishzz.cc',
|
||||
title: 'Retypeset', // site title
|
||||
subtitle: '再现版式之美', // site subtitle
|
||||
description: 'This is Retypeset, an elegant and open-source Astro blog theme, help you rediscover the beauty of typography.', // site description for SEO
|
||||
author: 'radishzz', // author name
|
||||
url: 'https://retypeset.radishzz.cc', // site url
|
||||
favicon: '/image/logo.svg', // or https://image.example.com/logo.svg. Support only webp, svg, png
|
||||
},
|
||||
// SITE INFORMATION >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> END
|
||||
|
@ -60,20 +60,20 @@ export const themeConfig: ThemeConfig = {
|
|||
facebookLink: '', // facebook profile link
|
||||
// site verification
|
||||
verification: {
|
||||
google: '',
|
||||
bing: '',
|
||||
yandex: '',
|
||||
baidu: '',
|
||||
google: '', // Google Search Console: https://search.google.com/search-console
|
||||
bing: '', // Bing Webmaster Tools: https://www.bing.com/webmasters
|
||||
yandex: '', // Yandex Webmaster: https://webmaster.yandex.com
|
||||
baidu: '', // Baidu Search: https://ziyuan.baidu.com
|
||||
},
|
||||
// site analytics
|
||||
googleAnalyticsID: '',
|
||||
umamiAnalyticsID: '',
|
||||
googleAnalyticsID: '', // Google Analytics: https://analytics.google.com
|
||||
umamiAnalyticsID: '', // Umami Analytics: https://cloud.umami.is
|
||||
// follow verification
|
||||
follow: {
|
||||
feedID: '',
|
||||
userID: '',
|
||||
feedID: '', // feed ID
|
||||
userID: '', // user ID
|
||||
},
|
||||
siteScreenshot: '', // please take a screenshot of your website homepage to show on twitter card
|
||||
siteScreenshot: '', // take a screenshot of your website homepage to show on twitter card
|
||||
},
|
||||
// SEO SETTINGS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> END
|
||||
|
||||
|
@ -96,16 +96,28 @@ export const themeConfig: ThemeConfig = {
|
|||
|
||||
// PRELOAD SETTINGS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> START
|
||||
preload: {
|
||||
cdn: 'https://cdn.jsdelivr.net', // Recommended to keep default. Unless you can proxy https://cdn.jsdelivr.net/gh/radishzzz/astro-theme-retypeset/src/styles/font.css
|
||||
cdn: 'https://cdn.jsdelivr.net', // Keep the default CDN unless you can proxy https://cdn.jsdelivr.net/gh/radishzzz/astro-theme-retypeset/src/styles/font.css
|
||||
commentURL: '', // https://comment.example.com/
|
||||
imageHostURL: '', // https://image.example.com/
|
||||
// If you proxy analytics requests to the custom domain, you can fill in below
|
||||
customGoogleAnalyticsURL: '', // https://custom.example.com/
|
||||
customUmamiAnalyticsURL: '', // https://custom.example.com/
|
||||
customUmamiAnalyticsJS: '', // https://custom.example.com/custom.js
|
||||
lazyload: false,
|
||||
},
|
||||
// PRELOAD SETTINGS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> END
|
||||
|
||||
// ABOUT PAGE CONTENT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> START
|
||||
about: {
|
||||
// Required: Content for about page in default language
|
||||
'[locale]': '关于我',
|
||||
// Optional: Content for about page in other languages. If not set, will fallback to [locale] content
|
||||
'zh-tw': '關於我',
|
||||
'ja': '私について',
|
||||
'en': 'About me',
|
||||
'es': 'Sobre mí',
|
||||
'ru': 'Обо мне',
|
||||
},
|
||||
// ABOUT PAGE CONTENT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> END
|
||||
}
|
||||
|
||||
export default themeConfig
|
|
@ -1,8 +1,8 @@
|
|||
---
|
||||
import Footer from '@/components/Footer.astro'
|
||||
import Header from '@/components/Header.astro'
|
||||
import LanguageSwitcher from '@/components/LanguageSwitcher.astro'
|
||||
import Navigation from '@/components/Navigation.astro'
|
||||
import LanguageSwitcher from '@/components/LangSwitch.astro'
|
||||
import Navigation from '@/components/Navbar.astro'
|
||||
import PhotoSwipe from '@/components/PhotoSwipe.astro'
|
||||
import Scrollbar from '@/components/Scrollbar.astro'
|
||||
import ThemeToggle from '@/components/ThemeToggle.astro'
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
---
|
||||
import { themeConfig } from '@/config'
|
||||
import Layout from '@/layouts/Layout.astro'
|
||||
import { generateLanguagePaths } from '@/utils/i18n'
|
||||
|
||||
export function getStaticPaths() {
|
||||
return themeConfig.global.moreLocale.map(lang => ({
|
||||
params: { lang },
|
||||
}))
|
||||
return generateLanguagePaths()
|
||||
}
|
||||
---
|
||||
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
---
|
||||
import { themeConfig } from '@/config'
|
||||
import Layout from '@/layouts/Layout.astro'
|
||||
import { getPinnedPosts, getPosts } from '@/utils/content.config'
|
||||
import { getPinnedPosts, getPosts } from '@/utils/content'
|
||||
import { generateLanguagePaths } from '@/utils/i18n'
|
||||
|
||||
export function getStaticPaths() {
|
||||
return themeConfig.global.moreLocale.map(lang => ({
|
||||
params: { lang },
|
||||
}))
|
||||
return generateLanguagePaths()
|
||||
}
|
||||
|
||||
const { lang } = Astro.params
|
||||
|
|
|
@ -1,26 +1,18 @@
|
|||
---
|
||||
import { themeConfig } from '@/config'
|
||||
import Layout from '@/layouts/Layout.astro'
|
||||
import { checkSlugDuplication } from '@/utils/content.config'
|
||||
import { checkSlugDuplication } from '@/utils/content'
|
||||
import { generateMultiLangPostPaths } from '@/utils/i18n'
|
||||
import { getCollection } from 'astro:content'
|
||||
|
||||
export async function getStaticPaths() {
|
||||
const posts = await getCollection('posts')
|
||||
|
||||
|
||||
const duplicates = await checkSlugDuplication(posts)
|
||||
if (duplicates.length > 0) {
|
||||
throw new Error(`Slug conflicts found:\n${duplicates.join('\n')}`)
|
||||
}
|
||||
|
||||
return themeConfig.global.moreLocale.flatMap(lang =>
|
||||
posts.map(post => ({
|
||||
params: {
|
||||
lang,
|
||||
slug: post.data.slug || post.slug,
|
||||
},
|
||||
props: { post },
|
||||
})),
|
||||
)
|
||||
return generateMultiLangPostPaths(posts)
|
||||
}
|
||||
|
||||
const { post } = Astro.props
|
||||
|
|
|
@ -1,38 +1,8 @@
|
|||
import type { APIContext } from 'astro'
|
||||
import type { CollectionEntry } from 'astro:content'
|
||||
import themeConfig from '@/config'
|
||||
import rss from '@astrojs/rss'
|
||||
import { getCollection } from 'astro:content'
|
||||
import MarkdownIt from 'markdown-it'
|
||||
import sanitizeHtml from 'sanitize-html'
|
||||
import { generateRSS } from '@/utils/rss'
|
||||
|
||||
const parser = new MarkdownIt()
|
||||
const { title, description, url } = themeConfig.site
|
||||
const { moreLocale } = themeConfig.global
|
||||
const followConfig = themeConfig.seo?.follow
|
||||
|
||||
// Returns first 200 chars with proper truncation
|
||||
function getExcerpt(content: string): string {
|
||||
if (!content)
|
||||
return ''
|
||||
|
||||
// Convert markdown to plain text by removing all HTML tags
|
||||
const plainText = sanitizeHtml(parser.render(content), {
|
||||
allowedTags: [],
|
||||
allowedAttributes: {},
|
||||
})
|
||||
|
||||
const excerpt = plainText.slice(0, 200).trim()
|
||||
return excerpt.length === 200 ? `${excerpt}...` : excerpt
|
||||
}
|
||||
|
||||
// Return 404 for invalid language paths
|
||||
function return404() {
|
||||
return new Response(null, {
|
||||
status: 404,
|
||||
statusText: 'Not found',
|
||||
})
|
||||
}
|
||||
|
||||
// Type for supported non-default languages
|
||||
type SupportedLanguage = typeof moreLocale[number]
|
||||
|
@ -46,43 +16,12 @@ export async function GET({ params }: APIContext) {
|
|||
const lang = params.lang as SupportedLanguage
|
||||
|
||||
// Return 404 if language is not supported
|
||||
if (!moreLocale.includes(lang))
|
||||
return return404()
|
||||
if (!moreLocale.includes(lang)) {
|
||||
return new Response(null, {
|
||||
status: 404,
|
||||
statusText: 'Not found',
|
||||
})
|
||||
}
|
||||
|
||||
// Get posts for specific language (including universal posts)
|
||||
const posts = await getCollection(
|
||||
'posts',
|
||||
({ data }: { data: CollectionEntry<'posts'>['data'] }) =>
|
||||
(!data.draft && (data.lang === lang || data.lang === '')),
|
||||
)
|
||||
|
||||
return rss({
|
||||
title: `${title} (${lang})`,
|
||||
description,
|
||||
site: url,
|
||||
items: posts.map((post: CollectionEntry<'posts'>) => ({
|
||||
title: post.data.title,
|
||||
pubDate: post.data.published,
|
||||
description: post.data.description || getExcerpt(post.body),
|
||||
// Generate absolute URL with language prefix
|
||||
link: new URL(`${lang}/posts/${post.data.slug || post.slug}/`, url).toString(),
|
||||
// Convert markdown content to HTML, allowing img tags
|
||||
content: post.body
|
||||
? sanitizeHtml(parser.render(post.body), {
|
||||
allowedTags: sanitizeHtml.defaults.allowedTags.concat(['img']),
|
||||
})
|
||||
: '',
|
||||
})),
|
||||
// Add XML namespaces for language and follow challenge
|
||||
customData: `
|
||||
<language>${lang}</language>
|
||||
${followConfig?.feedID && followConfig?.userID
|
||||
? `<follow_challenge>
|
||||
<feedId>${followConfig.feedID}</feedId>
|
||||
<userId>${followConfig.userID}</userId>
|
||||
</follow_challenge>`
|
||||
: ''
|
||||
}
|
||||
`.trim(),
|
||||
})
|
||||
return generateRSS({ lang })
|
||||
}
|
||||
|
|
|
@ -1,16 +1,11 @@
|
|||
---
|
||||
import { themeConfig } from '@/config'
|
||||
import Layout from '@/layouts/Layout.astro'
|
||||
import { getAllTags, getPostsByTag } from '@/utils/content.config'
|
||||
import { getAllTags, getPostsByTag } from '@/utils/content'
|
||||
import { generateMultiLangTagPaths } from '@/utils/i18n'
|
||||
|
||||
export async function getStaticPaths() {
|
||||
const tags = await getAllTags()
|
||||
return themeConfig.global.moreLocale.flatMap(lang =>
|
||||
tags.map(tag => ({
|
||||
params: { lang, tags: tag },
|
||||
props: { tags: tag },
|
||||
})),
|
||||
)
|
||||
return generateMultiLangTagPaths(tags)
|
||||
}
|
||||
|
||||
const { lang } = Astro.params
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
---
|
||||
import { themeConfig } from '@/config'
|
||||
import Layout from '@/layouts/Layout.astro'
|
||||
import { getAllTags } from '@/utils/content.config'
|
||||
import { getAllTags } from '@/utils/content'
|
||||
import { generateLanguagePaths } from '@/utils/i18n'
|
||||
|
||||
export function getStaticPaths() {
|
||||
return themeConfig.global.moreLocale.map(lang => ({
|
||||
params: { lang },
|
||||
}))
|
||||
return generateLanguagePaths()
|
||||
}
|
||||
|
||||
const { lang } = Astro.params
|
||||
|
@ -21,3 +19,4 @@ const allTags = await getAllTags()
|
|||
</a>
|
||||
))}
|
||||
</div>
|
||||
</Layout>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
import Layout from '@/layouts/Layout.astro'
|
||||
import { getPinnedPosts, getPosts } from '@/utils/content.config'
|
||||
import { getPinnedPosts, getPosts } from '@/utils/content'
|
||||
|
||||
const posts = await getPosts()
|
||||
const pinnedPosts = await getPinnedPosts()
|
||||
|
|
|
@ -1,22 +1,18 @@
|
|||
---
|
||||
import Layout from '@/layouts/Layout.astro'
|
||||
import { checkSlugDuplication } from '@/utils/content.config'
|
||||
import { checkSlugDuplication } from '@/utils/content'
|
||||
import { generatePostPaths } from '@/utils/i18n'
|
||||
import { getCollection } from 'astro:content'
|
||||
|
||||
export async function getStaticPaths() {
|
||||
const posts = await getCollection('posts')
|
||||
|
||||
|
||||
const duplicates = await checkSlugDuplication(posts)
|
||||
if (duplicates.length > 0) {
|
||||
throw new Error(`Slug conflicts found:\n${duplicates.join('\n')}`)
|
||||
}
|
||||
|
||||
return posts.map(post => ({
|
||||
params: {
|
||||
slug: post.data.slug || post.slug,
|
||||
},
|
||||
props: { post },
|
||||
}))
|
||||
return generatePostPaths(posts)
|
||||
}
|
||||
|
||||
const { post } = Astro.props
|
||||
|
|
|
@ -1,65 +1,5 @@
|
|||
import type { CollectionEntry } from 'astro:content'
|
||||
import themeConfig from '@/config'
|
||||
import rss from '@astrojs/rss'
|
||||
import { getCollection } from 'astro:content'
|
||||
import MarkdownIt from 'markdown-it'
|
||||
import sanitizeHtml from 'sanitize-html'
|
||||
|
||||
const parser = new MarkdownIt()
|
||||
const { title, description, url } = themeConfig.site
|
||||
const { locale } = themeConfig.global
|
||||
const followConfig = themeConfig.seo?.follow
|
||||
|
||||
// Returns first 200 chars with proper truncation
|
||||
function getExcerpt(content: string): string {
|
||||
if (!content)
|
||||
return ''
|
||||
|
||||
// Convert markdown to plain text by removing all HTML tags
|
||||
const plainText = sanitizeHtml(parser.render(content), {
|
||||
allowedTags: [],
|
||||
allowedAttributes: {},
|
||||
})
|
||||
|
||||
const excerpt = plainText.slice(0, 200).trim()
|
||||
return excerpt.length === 200 ? `${excerpt}...` : excerpt
|
||||
}
|
||||
import { generateRSS } from '@/utils/rss'
|
||||
|
||||
export async function GET() {
|
||||
// Get all posts for default language (including universal posts)
|
||||
const posts = await getCollection(
|
||||
'posts',
|
||||
({ data }: { data: CollectionEntry<'posts'>['data'] }) =>
|
||||
(!data.draft && (data.lang === locale || data.lang === '')),
|
||||
)
|
||||
|
||||
return rss({
|
||||
title,
|
||||
description,
|
||||
site: url,
|
||||
items: posts.map((post: CollectionEntry<'posts'>) => ({
|
||||
title: post.data.title,
|
||||
pubDate: post.data.published,
|
||||
description: post.data.description || getExcerpt(post.body),
|
||||
// Generate absolute URL for post
|
||||
link: new URL(`posts/${post.data.slug || post.slug}/`, url).toString(),
|
||||
// Convert markdown content to HTML, allowing img tags
|
||||
content: post.body
|
||||
? sanitizeHtml(parser.render(post.body), {
|
||||
allowedTags: sanitizeHtml.defaults.allowedTags.concat(['img']),
|
||||
})
|
||||
: '',
|
||||
})),
|
||||
// Add XML namespaces for language and follow challenge
|
||||
customData: `
|
||||
<language>${locale}</language>
|
||||
${followConfig?.feedID && followConfig?.userID
|
||||
? `<follow_challenge>
|
||||
<feedId>${followConfig.feedID}</feedId>
|
||||
<userId>${followConfig.userID}</userId>
|
||||
</follow_challenge>`
|
||||
: ''
|
||||
}
|
||||
`.trim(),
|
||||
})
|
||||
return generateRSS()
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
import Layout from '@/layouts/Layout.astro'
|
||||
import { getAllTags, getPostsByTag } from '@/utils/content.config'
|
||||
import { getAllTags, getPostsByTag } from '@/utils/content'
|
||||
|
||||
export async function getStaticPaths() {
|
||||
const tags = await getAllTags()
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
import Layout from '@/layouts/Layout.astro'
|
||||
import { getAllTags } from '@/utils/content.config'
|
||||
import { getAllTags } from '@/utils/content'
|
||||
|
||||
const allTags = await getAllTags()
|
||||
---
|
||||
|
|
|
@ -10,19 +10,16 @@
|
|||
--os-handle-perpendicular-size-active: 160%;
|
||||
--os-handle-interactive-area-offset: 3px;
|
||||
}
|
||||
|
||||
.scrollbar-light {
|
||||
--os-handle-bg: #C9C4C1;
|
||||
--os-handle-bg-hover: #B8B3B0;
|
||||
--os-handle-bg-active: #B8B3B0;
|
||||
}
|
||||
|
||||
.scrollbar-dark {
|
||||
--os-handle-bg: #383838;
|
||||
--os-handle-bg-hover: #464646;
|
||||
--os-handle-bg-active: #464646;
|
||||
}
|
||||
|
||||
@media (max-width: 1023px) {
|
||||
.os-scrollbar {
|
||||
display: none !important;
|
||||
|
|
9
src/types/index.d.ts
vendored
9
src/types/index.d.ts
vendored
|
@ -1,5 +1,7 @@
|
|||
import type { langPath } from '@/utils/ui'
|
||||
|
||||
type Exclude<T, U> = T extends U ? never : T
|
||||
|
||||
export interface ThemeConfig {
|
||||
|
||||
site: {
|
||||
|
@ -84,7 +86,12 @@ export interface ThemeConfig {
|
|||
customGoogleAnalyticsURL?: string
|
||||
customUmamiAnalyticsURL?: string
|
||||
customUmamiAnalyticsJS?: string
|
||||
lazyload: boolean
|
||||
}
|
||||
|
||||
about: {
|
||||
[key in ThemeConfig['global']['locale']]: string
|
||||
} & {
|
||||
[key in ThemeConfig['global']['moreLocale'][number]]?: string
|
||||
}
|
||||
}
|
||||
|
||||
|
|
38
src/utils/i18n.ts
Normal file
38
src/utils/i18n.ts
Normal file
|
@ -0,0 +1,38 @@
|
|||
import type { CollectionEntry } from 'astro:content'
|
||||
import { themeConfig } from '@/config'
|
||||
|
||||
export function generateLanguagePaths() {
|
||||
return themeConfig.global.moreLocale.map(lang => ({
|
||||
params: { lang },
|
||||
}))
|
||||
}
|
||||
|
||||
export function generatePostPaths(posts: CollectionEntry<'posts'>[]) {
|
||||
return posts.map(post => ({
|
||||
params: {
|
||||
slug: post.data.slug || post.slug,
|
||||
},
|
||||
props: { post },
|
||||
}))
|
||||
}
|
||||
|
||||
export function generateMultiLangPostPaths(posts: CollectionEntry<'posts'>[]) {
|
||||
return themeConfig.global.moreLocale.flatMap(lang =>
|
||||
posts.map(post => ({
|
||||
params: {
|
||||
lang,
|
||||
slug: post.data.slug || post.slug,
|
||||
},
|
||||
props: { post },
|
||||
})),
|
||||
)
|
||||
}
|
||||
|
||||
export function generateMultiLangTagPaths(tags: string[]) {
|
||||
return themeConfig.global.moreLocale.flatMap(lang =>
|
||||
tags.map(tag => ({
|
||||
params: { lang, tags: tag },
|
||||
props: { tags: tag },
|
||||
})),
|
||||
)
|
||||
}
|
71
src/utils/rss.ts
Normal file
71
src/utils/rss.ts
Normal file
|
@ -0,0 +1,71 @@
|
|||
import type { CollectionEntry } from 'astro:content'
|
||||
import themeConfig from '@/config'
|
||||
import rss from '@astrojs/rss'
|
||||
import { getCollection } from 'astro:content'
|
||||
import MarkdownIt from 'markdown-it'
|
||||
import sanitizeHtml from 'sanitize-html'
|
||||
|
||||
const parser = new MarkdownIt()
|
||||
const { title, description, url } = themeConfig.site
|
||||
const followConfig = themeConfig.seo?.follow
|
||||
|
||||
// Returns first 200 chars with proper truncation
|
||||
function getExcerpt(content: string): string {
|
||||
if (!content)
|
||||
return ''
|
||||
|
||||
// Convert markdown to plain text by removing all HTML tags
|
||||
const plainText = sanitizeHtml(parser.render(content), {
|
||||
allowedTags: [],
|
||||
allowedAttributes: {},
|
||||
})
|
||||
|
||||
const excerpt = plainText.slice(0, 200).trim()
|
||||
return excerpt.length === 200 ? `${excerpt}...` : excerpt
|
||||
}
|
||||
|
||||
interface GenerateRSSOptions {
|
||||
lang?: string
|
||||
}
|
||||
|
||||
export async function generateRSS({ lang }: GenerateRSSOptions = {}) {
|
||||
// Get posts for specific language (including universal posts)
|
||||
const posts = await getCollection(
|
||||
'posts',
|
||||
({ data }: { data: CollectionEntry<'posts'>['data'] }) =>
|
||||
(!data.draft && (data.lang === lang || data.lang === '')),
|
||||
)
|
||||
|
||||
return rss({
|
||||
title: lang ? `${title} (${lang})` : title,
|
||||
description,
|
||||
site: url,
|
||||
items: posts.map((post: CollectionEntry<'posts'>) => ({
|
||||
title: post.data.title,
|
||||
pubDate: post.data.published,
|
||||
description: post.data.description || getExcerpt(post.body),
|
||||
// Generate absolute URL with optional language prefix
|
||||
link: new URL(
|
||||
`${lang ? `${lang}/` : ''}posts/${post.data.slug || post.slug}/`,
|
||||
url,
|
||||
).toString(),
|
||||
// Convert markdown content to HTML, allowing img tags
|
||||
content: post.body
|
||||
? sanitizeHtml(parser.render(post.body), {
|
||||
allowedTags: sanitizeHtml.defaults.allowedTags.concat(['img']),
|
||||
})
|
||||
: '',
|
||||
})),
|
||||
// Add XML namespaces for language and follow challenge
|
||||
customData: `
|
||||
<language>${lang || themeConfig.global.locale}</language>
|
||||
${followConfig?.feedID && followConfig?.userID
|
||||
? `<follow_challenge>
|
||||
<feedId>${followConfig.feedID}</feedId>
|
||||
<userId>${followConfig.userID}</userId>
|
||||
</follow_challenge>`
|
||||
: ''
|
||||
}
|
||||
`.trim(),
|
||||
})
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue