fix: resolve merge conflicts

This commit is contained in:
radishzzz 2025-05-28 20:56:38 +01:00
commit 0cbb8402b9
25 changed files with 311 additions and 242 deletions

View file

@ -55,7 +55,7 @@ export default defineConfig({
mdx(), mdx(),
partytown({ partytown({
config: { config: {
forward: ['dataLayer.push'], forward: ['dataLayer.push', 'gtag'],
}, },
}), }),
sitemap(), sitemap(),

View file

@ -47,7 +47,7 @@
"@astrojs/check": "^0.9.4", "@astrojs/check": "^0.9.4",
"@types/hast": "^3.0.4", "@types/hast": "^3.0.4",
"@types/markdown-it": "^14.1.2", "@types/markdown-it": "^14.1.2",
"@types/node": "^22.15.24", "@types/node": "^22.15.23",
"@types/sanitize-html": "^2.16.0", "@types/sanitize-html": "^2.16.0",
"@unocss/eslint-plugin": "66.1.2", "@unocss/eslint-plugin": "66.1.2",
"@unocss/preset-attributify": "66.1.2", "@unocss/preset-attributify": "66.1.2",
@ -55,7 +55,6 @@
"astro-eslint-parser": "^1.2.2", "astro-eslint-parser": "^1.2.2",
"eslint": "^9.27.0", "eslint": "^9.27.0",
"eslint-plugin-astro": "^1.3.1", "eslint-plugin-astro": "^1.3.1",
"esno": "^4.8.0",
"lint-staged": "^16.1.0", "lint-staged": "^16.1.0",
"typescript": "~5.8.3", "typescript": "~5.8.3",
"unocss": "66.1.2", "unocss": "66.1.2",

248
pnpm-lock.yaml generated
View file

@ -10,7 +10,7 @@ importers:
dependencies: dependencies:
'@astrojs/mdx': '@astrojs/mdx':
specifier: ^4.3.0 specifier: ^4.3.0
version: 4.3.0(astro@5.8.0(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0)) version: 4.3.0(astro@5.8.0(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0))
'@astrojs/partytown': '@astrojs/partytown':
specifier: ^2.1.4 specifier: ^2.1.4
version: 2.1.4 version: 2.1.4
@ -19,13 +19,13 @@ importers:
version: 3.4.0 version: 3.4.0
astro: astro:
specifier: ^5.8.0 specifier: ^5.8.0
version: 5.8.0(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0) version: 5.8.0(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0)
astro-compress: astro-compress:
specifier: ^2.3.8 specifier: ^2.3.8
version: 2.3.8(@types/node@22.15.24)(jiti@2.4.2)(rollup@4.41.1)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0) version: 2.3.8(@types/node@22.15.23)(jiti@2.4.2)(rollup@4.41.1)(typescript@5.8.3)(yaml@2.8.0)
astro-og-canvas: astro-og-canvas:
specifier: ^0.7.0 specifier: ^0.7.0
version: 0.7.0(astro@5.8.0(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0)) version: 0.7.0(astro@5.8.0(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0))
astro-robots-txt: astro-robots-txt:
specifier: ^1.0.0 specifier: ^1.0.0
version: 1.0.0 version: 1.0.0
@ -86,7 +86,7 @@ importers:
devDependencies: devDependencies:
'@antfu/eslint-config': '@antfu/eslint-config':
specifier: ^4.13.2 specifier: ^4.13.2
version: 4.13.2(@unocss/eslint-plugin@66.1.2(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(@vue/compiler-sfc@3.5.14)(astro-eslint-parser@1.2.2)(eslint-plugin-astro@1.3.1(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) version: 4.13.2(@unocss/eslint-plugin@66.1.2(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(@vue/compiler-sfc@3.5.14)(astro-eslint-parser@1.2.2)(eslint-plugin-astro@1.3.1(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))
'@astrojs/check': '@astrojs/check':
specifier: ^0.9.4 specifier: ^0.9.4
version: 0.9.4(typescript@5.8.3) version: 0.9.4(typescript@5.8.3)
@ -97,8 +97,8 @@ importers:
specifier: ^14.1.2 specifier: ^14.1.2
version: 14.1.2 version: 14.1.2
'@types/node': '@types/node':
specifier: ^22.15.24 specifier: ^22.15.23
version: 22.15.24 version: 22.15.23
'@types/sanitize-html': '@types/sanitize-html':
specifier: ^2.16.0 specifier: ^2.16.0
version: 2.16.0 version: 2.16.0
@ -131,7 +131,7 @@ importers:
version: 5.8.3 version: 5.8.3
unocss: unocss:
specifier: 66.1.2 specifier: 66.1.2
version: 66.1.2(postcss@8.5.3)(vite@6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3)) version: 66.1.2(postcss@8.5.3)(vite@6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3))
unocss-preset-theme: unocss-preset-theme:
specifier: ^0.14.1 specifier: ^0.14.1
version: 0.14.1(@unocss/core@66.1.2) version: 0.14.1(@unocss/core@66.1.2)
@ -1041,8 +1041,8 @@ packages:
'@types/node@22.13.14': '@types/node@22.13.14':
resolution: {integrity: sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==} resolution: {integrity: sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==}
'@types/node@22.15.24': '@types/node@22.15.23':
resolution: {integrity: sha512-w9CZGm9RDjzTh/D+hFwlBJ3ziUaVw7oufKA3vOFSOZlzmW9AkZnfjPb+DLnrV6qtgL/LNmP0/2zBNCFHL3F0ng==} resolution: {integrity: sha512-7Ec1zaFPF4RJ0eXu1YT/xgiebqwqoJz8rYPDi/O2BcZ++Wpt0Kq9cl0eg6NN6bYbPnR67ZLo7St5Q3UK0SnARw==}
'@types/sanitize-html@2.16.0': '@types/sanitize-html@2.16.0':
resolution: {integrity: sha512-l6rX1MUXje5ztPT0cAFtUayXF06DqPhRyfVXareEN5gGCFaP/iwsxIyKODr9XDhfxPpN6vXUFNfo5kZMXCxBtw==} resolution: {integrity: sha512-l6rX1MUXje5ztPT0cAFtUayXF06DqPhRyfVXareEN5gGCFaP/iwsxIyKODr9XDhfxPpN6vXUFNfo5kZMXCxBtw==}
@ -1213,88 +1213,88 @@ packages:
peerDependencies: peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
'@unrs/resolver-binding-darwin-arm64@1.7.6': '@unrs/resolver-binding-darwin-arm64@1.7.4':
resolution: {integrity: sha512-dDhh//8GrF4PynBubCUvnJ/mG2LStUEiaWqML4SAhz2iZvG769d6e25MoJBamDR251FBT3ULpXGJ7Mdnysp27w==} resolution: {integrity: sha512-cyUy4VQpN9R9gEKbDfsErjDopQumQzKH75Rh171JoHeFUVOk1r2QcwvNXu+S2BPsM6gSdwtTEWBjPQv+crqr9Q==}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@unrs/resolver-binding-darwin-x64@1.7.6': '@unrs/resolver-binding-darwin-x64@1.7.4':
resolution: {integrity: sha512-u1Avp0HPAulQHMwgBJaHXIcao0LWwxF5/pd3H7DhldIFd2o3B2xVjXiqslSRpARL2b0QRdAdUf8+IAy6RlrvgQ==} resolution: {integrity: sha512-di1PSrdokgVsTQYI6eJEGywyj1k47JQPAWavqIYbwLfgvLit9w/EvUB2eV9vg9i8x8M13ZC2hjTumK5XtlP32A==}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@unrs/resolver-binding-freebsd-x64@1.7.6': '@unrs/resolver-binding-freebsd-x64@1.7.4':
resolution: {integrity: sha512-nnjHghvIxEWvym6+ToAVmiXO11c+25p1E7CAQa/1uJTjcRhJTpEUKNbEWGO9tsxxIpBv1dfXaOA3gsJz5eBAjg==} resolution: {integrity: sha512-F/actecQkYrRYvjcn9yH+Gjd0LMLP7P2y12nYjQS4WwuxpZ6IDXIc5eRQO0Omj4/a0BSlI4VcvswUzWGVJVr3A==}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@unrs/resolver-binding-linux-arm-gnueabihf@1.7.6': '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.4':
resolution: {integrity: sha512-96y5xFahjyUwk1om2FRVkzXHTtgmi+6MUO9iMhyb/W/9v05z1wawgj7v4j9TPwXo/f10cDKty4Aao3Fufcu2Cg==} resolution: {integrity: sha512-+ttV8G5PFz8WJVrGPjQpy9kHh3/b6TT75Ckxt1iPD0eiUM1WaDvaH0E7IG7Z5s/vLls9HqwDjnrNGik6JQVz0w==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@unrs/resolver-binding-linux-arm-musleabihf@1.7.6': '@unrs/resolver-binding-linux-arm-musleabihf@1.7.4':
resolution: {integrity: sha512-tyHD5mKRZpHPVg13a16a0X8wJ6Avtfecqg1gMlGB/MXOlvrJJ6EKzdWyUPi5GZUtT+JWV/NVTPLvvC/Hzxo3aw==} resolution: {integrity: sha512-0EZ/4CAaItMY95HgM/SGLpejJZmw1eI8V/V3pVdXt0WcpAKfKQistO8AEEPfcXGZJNJ08TX/OgqwFgCnZBG2+A==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@unrs/resolver-binding-linux-arm64-gnu@1.7.6': '@unrs/resolver-binding-linux-arm64-gnu@1.7.4':
resolution: {integrity: sha512-rVHWGBVbhBrWYQl0y8sObTkCqSXtLAa8srG1u21S/IPGciOP0Djq7ykih5TeUtj0nAktANsiK2g/ST8UPhfbiA==} resolution: {integrity: sha512-Sft3f7z2sUxgo+WaR/EdHwPAqCyZfzbXP25GBbSZLLRFkFe+9eR+J1NvuxcxUCUXqhptURYHcBkoEsuHAcyjqg==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@unrs/resolver-binding-linux-arm64-musl@1.7.6': '@unrs/resolver-binding-linux-arm64-musl@1.7.4':
resolution: {integrity: sha512-6a7res5yz781YPZCkilDf34cQyNOCaHTGiUR8Z5U+hlrOChGPaciz4IpUpO1x2BWiBvbyIC9Janh/ujel9bo3g==} resolution: {integrity: sha512-PeaiFDCEJLQFcF0LvNZizjzoUm1vxsFmrwxJ0W0lREhEPrgrsy3wZIPItMR1UJJPg9AbDpHqLDo95pyTY9vXow==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@unrs/resolver-binding-linux-ppc64-gnu@1.7.6': '@unrs/resolver-binding-linux-ppc64-gnu@1.7.4':
resolution: {integrity: sha512-MtejOT0dfnupO9Tja6GtakFCe1FA7yY3tv6JM+oCFpChSCfJ/G87305AJyC0WZvdOUnPFh6hIMRpEjZAWxssyw==} resolution: {integrity: sha512-Nodq6VAFRW0yFqknizLgZsKHCdmI+L0utUSFoggCb66PAAPo+GzDYbt4h1eI1hA7oXzksN5rCRWxi2hEVTNxyg==}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
'@unrs/resolver-binding-linux-riscv64-gnu@1.7.6': '@unrs/resolver-binding-linux-riscv64-gnu@1.7.4':
resolution: {integrity: sha512-urwxUzOqU7KKZs5KyTTFZIztzpNBHmxgO24nxaaD8lhESzC1ng1zq+gP7CKHZmQF2t3NMTdcnrXc86XYXZcBwQ==} resolution: {integrity: sha512-d1HN0cTUG8eRUIR8HSrH98rdVLJIIx3TCn5+naiPXV0IiQ+DslhAAXAaUOu1md5jjEzQzOYrxDmqcB7fQ9FzpQ==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
'@unrs/resolver-binding-linux-riscv64-musl@1.7.6': '@unrs/resolver-binding-linux-riscv64-musl@1.7.4':
resolution: {integrity: sha512-uqKOYPHRs+XUvq1+7ydgv6V42pMpzSJyuV6Y/R5FJUUuV2gJ54xhR+e5NqqS7WvWHZTDZ895P1fXejoooUfWgw==} resolution: {integrity: sha512-JRN7y1x7NltIMtCtRroVj/9S0KsSNmvcmNiQ3MlBAV4TIG3jgRCeD9mDa+uKLBYWP1oOAMPkTG5j0Jy0ol6v/Q==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
'@unrs/resolver-binding-linux-s390x-gnu@1.7.6': '@unrs/resolver-binding-linux-s390x-gnu@1.7.4':
resolution: {integrity: sha512-WAjhxt3hypzJf5vk2Zut/ebvuXYEOFTi45SqqkoShU9p40IEeYM2AoKC6NNo3/5CIFxR5iaIHOetlJF+iWAMIQ==} resolution: {integrity: sha512-QjznjkmS0zy+utl/aH1cH15QySQ9YCs2OuVrL9wEqdZY53/6wySgSheB9Nykk5eG7H60qriFMhYWH3tYLf+Gqw==}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
'@unrs/resolver-binding-linux-x64-gnu@1.7.6': '@unrs/resolver-binding-linux-x64-gnu@1.7.4':
resolution: {integrity: sha512-qsuxl8zUdwWXUlMa8zUAnonye/j+2k3QfcSXkW9bAZ0BcMLDZ/7uqXsAmk+7fP1gzv57AhCDpOcFSIsP4eSPEA==} resolution: {integrity: sha512-nZkINWJ7lBg5BRtY2CwPs80GSbGdJLYseweXJJxD2lisR0xkIk2ao3b3wQuVQ/nho+DCyxSo+DGXrY/gaROZdA==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@unrs/resolver-binding-linux-x64-musl@1.7.6': '@unrs/resolver-binding-linux-x64-musl@1.7.4':
resolution: {integrity: sha512-5xg1/XpaJP6y5t4gAIHO6LVvd3xpkWXMBWk1lEUjh9oXfkxY9uoEd6gYJ5zj1dhiGy8uc//TG80Gnu3bqE4gsg==} resolution: {integrity: sha512-00YaOvTCoVwef87i/ouTwYCRUVMXajTe79POa/vjBYedtO7ta1KidP4r9CjW0ie4no4au9wCn61dPHL8DZRLbw==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@unrs/resolver-binding-wasm32-wasi@1.7.6': '@unrs/resolver-binding-wasm32-wasi@1.7.4':
resolution: {integrity: sha512-s5QPe0XWHDY0rb+ywbwGqZ24WH1fLpSeakM+M+up58My5T2LsScoJpqN60KgaYRJpumabqcAcczL/2LEWL6bQA==} resolution: {integrity: sha512-8a9+bokNHo3tOHSlRAR1Q5lwRCGOoKsch6LUbyHLwemg04CVDl1KRlqg/LJ+CvOKxoMj/8jAX2Or94jvWskmFg==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
cpu: [wasm32] cpu: [wasm32]
'@unrs/resolver-binding-win32-arm64-msvc@1.7.6': '@unrs/resolver-binding-win32-arm64-msvc@1.7.4':
resolution: {integrity: sha512-lzYMuug2XyxY+Ptw0LA5sNmF3WY+IefI1IMtws3y3G0EkYnqidhEi2+7eqtEiYAxPNo9VerQNfXKJd3bIuntPQ==} resolution: {integrity: sha512-qP8j+fKfkMkUskDU4BG3tG7rl9vUoKRrHm6TtkdID6PdBBsn3vgqzEHvrH8y5sT4jnj4ewqmtcaUkFwv2/XtIw==}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@unrs/resolver-binding-win32-ia32-msvc@1.7.6': '@unrs/resolver-binding-win32-ia32-msvc@1.7.4':
resolution: {integrity: sha512-ysjUtTmUsgFMZqkMovWBr43izkC0kQPbW8V1Ln70FSAE7cVHCVf7PxIfllgQwLjjsYKKOVuq7iWe8G9mJlCk4A==} resolution: {integrity: sha512-ExEnp2Yio6cfnTrwLffLjYAOvZJ9ktLivs5CWrbIYeyh/wP46NiGYtZhs+WVYpOdmwX2M32QRCw12nh/M+ViXw==}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@unrs/resolver-binding-win32-x64-msvc@1.7.6': '@unrs/resolver-binding-win32-x64-msvc@1.7.4':
resolution: {integrity: sha512-/1kM+r9G86s0ZLk2ej0MuU3hJQGmnawAA1JPIhcVMkZCtxK/pJzNtzPms3vDwVxbbwho6ExRcVLoA4h0zwzVmA==} resolution: {integrity: sha512-+ebP/XNaMKCdrNNbxzbjZ2H8umZOybfL7FC/YAStsPNUJn0O3Tvm2I/vVhz1UrNCT+Ec/xHUX7t02CHQVPtwwQ==}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@ -3664,8 +3664,8 @@ packages:
resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==} resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==}
engines: {node: '>=18.12.0'} engines: {node: '>=18.12.0'}
unrs-resolver@1.7.6: unrs-resolver@1.7.4:
resolution: {integrity: sha512-72mW/4N9ajUM3Pnw2CLFcsollrsfUuPl+/OW+AJsgmp5rnw7KuCre6I4EtoVBYrOy3DbVXnR33bL+Pfbdbek2Q==} resolution: {integrity: sha512-rpd1iZ7usb6pa41f9OnPpGxb6CasomiVg4XCXV6QS8s66jnvDJnUNG27h+siYeHFt7Gu/DKO225w2RC2/7Edkw==}
unstorage@1.16.0: unstorage@1.16.0:
resolution: {integrity: sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==} resolution: {integrity: sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==}
@ -4076,7 +4076,7 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.8 '@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25 '@jridgewell/trace-mapping': 0.3.25
'@antfu/eslint-config@4.13.2(@unocss/eslint-plugin@66.1.2(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(@vue/compiler-sfc@3.5.14)(astro-eslint-parser@1.2.2)(eslint-plugin-astro@1.3.1(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))': '@antfu/eslint-config@4.13.2(@unocss/eslint-plugin@66.1.2(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(@vue/compiler-sfc@3.5.14)(astro-eslint-parser@1.2.2)(eslint-plugin-astro@1.3.1(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))':
dependencies: dependencies:
'@antfu/install-pkg': 1.1.0 '@antfu/install-pkg': 1.1.0
'@clack/prompts': 0.10.1 '@clack/prompts': 0.10.1
@ -4085,8 +4085,8 @@ snapshots:
'@stylistic/eslint-plugin': 4.4.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) '@stylistic/eslint-plugin': 4.4.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)
'@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)
'@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)
'@vitest/eslint-plugin': 1.2.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) '@vitest/eslint-plugin': 1.2.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))
ansis: 4.1.0 ansis: 4.0.0
cac: 6.7.14 cac: 6.7.14
eslint: 9.27.0(jiti@2.4.2) eslint: 9.27.0(jiti@2.4.2)
eslint-config-flat-gitignore: 2.1.0(eslint@9.27.0(jiti@2.4.2)) eslint-config-flat-gitignore: 2.1.0(eslint@9.27.0(jiti@2.4.2))
@ -4197,12 +4197,12 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@astrojs/mdx@4.3.0(astro@5.8.0(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0))': '@astrojs/mdx@4.3.0(astro@5.8.0(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0))':
dependencies: dependencies:
'@astrojs/markdown-remark': 6.3.2 '@astrojs/markdown-remark': 6.3.2
'@mdx-js/mdx': 3.1.0(acorn@8.14.1) '@mdx-js/mdx': 3.1.0(acorn@8.14.1)
acorn: 8.14.1 acorn: 8.14.1
astro: 5.8.0(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0) astro: 5.8.0(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0)
es-module-lexer: 1.7.0 es-module-lexer: 1.7.0
estree-util-visit: 2.0.0 estree-util-visit: 2.0.0
hast-util-to-html: 9.0.5 hast-util-to-html: 9.0.5
@ -4899,7 +4899,7 @@ snapshots:
'@types/fontkit@2.0.8': '@types/fontkit@2.0.8':
dependencies: dependencies:
'@types/node': 22.15.24 '@types/node': 22.15.23
'@types/hast@3.0.4': '@types/hast@3.0.4':
dependencies: dependencies:
@ -4938,7 +4938,7 @@ snapshots:
dependencies: dependencies:
undici-types: 6.20.0 undici-types: 6.20.0
'@types/node@22.15.24': '@types/node@22.15.23':
dependencies: dependencies:
undici-types: 6.21.0 undici-types: 6.21.0
@ -4948,7 +4948,7 @@ snapshots:
'@types/sax@1.2.7': '@types/sax@1.2.7':
dependencies: dependencies:
'@types/node': 22.15.24 '@types/node': 22.15.23
'@types/unist@2.0.11': {} '@types/unist@2.0.11': {}
@ -5048,13 +5048,13 @@ snapshots:
'@ungap/structured-clone@1.3.0': {} '@ungap/structured-clone@1.3.0': {}
'@unocss/astro@66.1.2(vite@6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3))': '@unocss/astro@66.1.2(vite@6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3))':
dependencies: dependencies:
'@unocss/core': 66.1.2 '@unocss/core': 66.1.2
'@unocss/reset': 66.1.2 '@unocss/reset': 66.1.2
'@unocss/vite': 66.1.2(vite@6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3)) '@unocss/vite': 66.1.2(vite@6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3))
optionalDependencies: optionalDependencies:
vite: 6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) vite: 6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0)
transitivePeerDependencies: transitivePeerDependencies:
- vue - vue
@ -5205,7 +5205,7 @@ snapshots:
dependencies: dependencies:
'@unocss/core': 66.1.2 '@unocss/core': 66.1.2
'@unocss/vite@66.1.2(vite@6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3))': '@unocss/vite@66.1.2(vite@6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3))':
dependencies: dependencies:
'@ampproject/remapping': 2.3.0 '@ampproject/remapping': 2.3.0
'@unocss/config': 66.1.2 '@unocss/config': 66.1.2
@ -5216,70 +5216,70 @@ snapshots:
pathe: 2.0.3 pathe: 2.0.3
tinyglobby: 0.2.14 tinyglobby: 0.2.14
unplugin-utils: 0.2.4 unplugin-utils: 0.2.4
vite: 6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) vite: 6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0)
transitivePeerDependencies: transitivePeerDependencies:
- vue - vue
'@unrs/resolver-binding-darwin-arm64@1.7.6': '@unrs/resolver-binding-darwin-arm64@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-darwin-x64@1.7.6': '@unrs/resolver-binding-darwin-x64@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-freebsd-x64@1.7.6': '@unrs/resolver-binding-freebsd-x64@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-linux-arm-gnueabihf@1.7.6': '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-linux-arm-musleabihf@1.7.6': '@unrs/resolver-binding-linux-arm-musleabihf@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-linux-arm64-gnu@1.7.6': '@unrs/resolver-binding-linux-arm64-gnu@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-linux-arm64-musl@1.7.6': '@unrs/resolver-binding-linux-arm64-musl@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-linux-ppc64-gnu@1.7.6': '@unrs/resolver-binding-linux-ppc64-gnu@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-linux-riscv64-gnu@1.7.6': '@unrs/resolver-binding-linux-riscv64-gnu@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-linux-riscv64-musl@1.7.6': '@unrs/resolver-binding-linux-riscv64-musl@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-linux-s390x-gnu@1.7.6': '@unrs/resolver-binding-linux-s390x-gnu@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-linux-x64-gnu@1.7.6': '@unrs/resolver-binding-linux-x64-gnu@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-linux-x64-musl@1.7.6': '@unrs/resolver-binding-linux-x64-musl@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-wasm32-wasi@1.7.6': '@unrs/resolver-binding-wasm32-wasi@1.7.4':
dependencies: dependencies:
'@napi-rs/wasm-runtime': 0.2.10 '@napi-rs/wasm-runtime': 0.2.10
optional: true optional: true
'@unrs/resolver-binding-win32-arm64-msvc@1.7.6': '@unrs/resolver-binding-win32-arm64-msvc@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-win32-ia32-msvc@1.7.6': '@unrs/resolver-binding-win32-ia32-msvc@1.7.4':
optional: true optional: true
'@unrs/resolver-binding-win32-x64-msvc@1.7.6': '@unrs/resolver-binding-win32-x64-msvc@1.7.4':
optional: true optional: true
'@vitest/eslint-plugin@1.2.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))': '@vitest/eslint-plugin@1.2.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))':
dependencies: dependencies:
'@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)
eslint: 9.27.0(jiti@2.4.2) eslint: 9.27.0(jiti@2.4.2)
optionalDependencies: optionalDependencies:
typescript: 5.8.3 typescript: 5.8.3
vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -5291,13 +5291,13 @@ snapshots:
tinyrainbow: 2.0.0 tinyrainbow: 2.0.0
optional: true optional: true
'@vitest/mocker@3.1.1(vite@6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))': '@vitest/mocker@3.1.1(vite@6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))':
dependencies: dependencies:
'@vitest/spy': 3.1.1 '@vitest/spy': 3.1.1
estree-walker: 3.0.3 estree-walker: 3.0.3
magic-string: 0.30.17 magic-string: 0.30.17
optionalDependencies: optionalDependencies:
vite: 6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) vite: 6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0)
optional: true optional: true
'@vitest/pretty-format@3.1.1': '@vitest/pretty-format@3.1.1':
@ -5501,12 +5501,12 @@ snapshots:
astring@1.9.0: {} astring@1.9.0: {}
astro-compress@2.3.8(@types/node@22.15.24)(jiti@2.4.2)(rollup@4.41.1)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0): astro-compress@2.3.8(@types/node@22.15.23)(jiti@2.4.2)(rollup@4.41.1)(typescript@5.8.3)(yaml@2.8.0):
dependencies: dependencies:
'@playform/pipe': 0.1.3 '@playform/pipe': 0.1.3
'@types/csso': 5.0.4 '@types/csso': 5.0.4
'@types/html-minifier-terser': 7.0.2 '@types/html-minifier-terser': 7.0.2
astro: 5.8.0(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0) astro: 5.8.0(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0)
commander: 13.1.0 commander: 13.1.0
csso: 5.0.5 csso: 5.0.5
deepmerge-ts: 7.1.5 deepmerge-ts: 7.1.5
@ -5567,9 +5567,9 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
astro-og-canvas@0.7.0(astro@5.8.0(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0)): astro-og-canvas@0.7.0(astro@5.8.0(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0)):
dependencies: dependencies:
astro: 5.8.0(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0) astro: 5.8.0(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0)
canvaskit-wasm: 0.39.1 canvaskit-wasm: 0.39.1
deterministic-object-hash: 2.0.2 deterministic-object-hash: 2.0.2
entities: 4.5.0 entities: 4.5.0
@ -5579,7 +5579,7 @@ snapshots:
valid-filename: 4.0.0 valid-filename: 4.0.0
zod: 3.25.32 zod: 3.25.32
astro@5.8.0(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0): astro@5.8.0(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.41.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0):
dependencies: dependencies:
'@astrojs/compiler': 2.12.0 '@astrojs/compiler': 2.12.0
'@astrojs/internal-helpers': 0.6.1 '@astrojs/internal-helpers': 0.6.1
@ -5634,8 +5634,8 @@ snapshots:
unist-util-visit: 5.0.0 unist-util-visit: 5.0.0
unstorage: 1.16.0 unstorage: 1.16.0
vfile: 6.0.3 vfile: 6.0.3
vite: 6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) vite: 6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0)
vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))
xxhash-wasm: 1.1.0 xxhash-wasm: 1.1.0
yargs-parser: 21.1.1 yargs-parser: 21.1.1
yocto-spinner: 0.2.3 yocto-spinner: 0.2.3
@ -6106,12 +6106,12 @@ snapshots:
dependencies: dependencies:
pathe: 2.0.3 pathe: 2.0.3
eslint-import-context@0.1.6(unrs-resolver@1.7.6): eslint-import-context@0.1.6(unrs-resolver@1.7.4):
dependencies: dependencies:
get-tsconfig: 4.10.1 get-tsconfig: 4.10.1
stable-hash: 0.0.5 stable-hash: 0.0.5
optionalDependencies: optionalDependencies:
unrs-resolver: 1.7.6 unrs-resolver: 1.7.4
eslint-import-resolver-node@0.3.9: eslint-import-resolver-node@0.3.9:
dependencies: dependencies:
@ -6167,14 +6167,14 @@ snapshots:
comment-parser: 1.4.1 comment-parser: 1.4.1
debug: 4.4.1 debug: 4.4.1
eslint: 9.27.0(jiti@2.4.2) eslint: 9.27.0(jiti@2.4.2)
eslint-import-context: 0.1.6(unrs-resolver@1.7.6) eslint-import-context: 0.1.6(unrs-resolver@1.7.4)
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
is-glob: 4.0.3 is-glob: 4.0.3
minimatch: 10.0.1 minimatch: 10.0.1
semver: 7.7.2 semver: 7.7.2
stable-hash: 0.0.5 stable-hash: 0.0.5
tslib: 2.8.1 tslib: 2.8.1
unrs-resolver: 1.7.6 unrs-resolver: 1.7.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
- typescript - typescript
@ -8457,9 +8457,9 @@ snapshots:
'@unocss/core': 66.1.2 '@unocss/core': 66.1.2
'@unocss/rule-utils': 0.63.6 '@unocss/rule-utils': 0.63.6
unocss@66.1.2(postcss@8.5.3)(vite@6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3)): unocss@66.1.2(postcss@8.5.3)(vite@6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3)):
dependencies: dependencies:
'@unocss/astro': 66.1.2(vite@6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3)) '@unocss/astro': 66.1.2(vite@6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3))
'@unocss/cli': 66.1.2 '@unocss/cli': 66.1.2
'@unocss/core': 66.1.2 '@unocss/core': 66.1.2
'@unocss/postcss': 66.1.2(postcss@8.5.3) '@unocss/postcss': 66.1.2(postcss@8.5.3)
@ -8477,9 +8477,9 @@ snapshots:
'@unocss/transformer-compile-class': 66.1.2 '@unocss/transformer-compile-class': 66.1.2
'@unocss/transformer-directives': 66.1.2 '@unocss/transformer-directives': 66.1.2
'@unocss/transformer-variant-group': 66.1.2 '@unocss/transformer-variant-group': 66.1.2
'@unocss/vite': 66.1.2(vite@6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3)) '@unocss/vite': 66.1.2(vite@6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3))
optionalDependencies: optionalDependencies:
vite: 6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) vite: 6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0)
transitivePeerDependencies: transitivePeerDependencies:
- postcss - postcss
- supports-color - supports-color
@ -8490,27 +8490,27 @@ snapshots:
pathe: 2.0.3 pathe: 2.0.3
picomatch: 4.0.2 picomatch: 4.0.2
unrs-resolver@1.7.6: unrs-resolver@1.7.4:
dependencies: dependencies:
napi-postinstall: 0.2.4 napi-postinstall: 0.2.4
optionalDependencies: optionalDependencies:
'@unrs/resolver-binding-darwin-arm64': 1.7.6 '@unrs/resolver-binding-darwin-arm64': 1.7.4
'@unrs/resolver-binding-darwin-x64': 1.7.6 '@unrs/resolver-binding-darwin-x64': 1.7.4
'@unrs/resolver-binding-freebsd-x64': 1.7.6 '@unrs/resolver-binding-freebsd-x64': 1.7.4
'@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.6 '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.4
'@unrs/resolver-binding-linux-arm-musleabihf': 1.7.6 '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.4
'@unrs/resolver-binding-linux-arm64-gnu': 1.7.6 '@unrs/resolver-binding-linux-arm64-gnu': 1.7.4
'@unrs/resolver-binding-linux-arm64-musl': 1.7.6 '@unrs/resolver-binding-linux-arm64-musl': 1.7.4
'@unrs/resolver-binding-linux-ppc64-gnu': 1.7.6 '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.4
'@unrs/resolver-binding-linux-riscv64-gnu': 1.7.6 '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.4
'@unrs/resolver-binding-linux-riscv64-musl': 1.7.6 '@unrs/resolver-binding-linux-riscv64-musl': 1.7.4
'@unrs/resolver-binding-linux-s390x-gnu': 1.7.6 '@unrs/resolver-binding-linux-s390x-gnu': 1.7.4
'@unrs/resolver-binding-linux-x64-gnu': 1.7.6 '@unrs/resolver-binding-linux-x64-gnu': 1.7.4
'@unrs/resolver-binding-linux-x64-musl': 1.7.6 '@unrs/resolver-binding-linux-x64-musl': 1.7.4
'@unrs/resolver-binding-wasm32-wasi': 1.7.6 '@unrs/resolver-binding-wasm32-wasi': 1.7.4
'@unrs/resolver-binding-win32-arm64-msvc': 1.7.6 '@unrs/resolver-binding-win32-arm64-msvc': 1.7.4
'@unrs/resolver-binding-win32-ia32-msvc': 1.7.6 '@unrs/resolver-binding-win32-ia32-msvc': 1.7.4
'@unrs/resolver-binding-win32-x64-msvc': 1.7.6 '@unrs/resolver-binding-win32-x64-msvc': 1.7.4
unstorage@1.16.0: unstorage@1.16.0:
dependencies: dependencies:
@ -8554,13 +8554,13 @@ snapshots:
'@types/unist': 3.0.3 '@types/unist': 3.0.3
vfile-message: 4.0.2 vfile-message: 4.0.2
vite-node@3.1.1(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0): vite-node@3.1.1(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0):
dependencies: dependencies:
cac: 6.7.14 cac: 6.7.14
debug: 4.4.1 debug: 4.4.1
es-module-lexer: 1.7.0 es-module-lexer: 1.7.0
pathe: 2.0.3 pathe: 2.0.3
vite: 6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) vite: 6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- jiti - jiti
@ -8576,7 +8576,7 @@ snapshots:
- yaml - yaml
optional: true optional: true
vite@6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0): vite@6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0):
dependencies: dependencies:
esbuild: 0.25.5 esbuild: 0.25.5
fdir: 6.4.5(picomatch@4.0.2) fdir: 6.4.5(picomatch@4.0.2)
@ -8585,7 +8585,7 @@ snapshots:
rollup: 4.41.1 rollup: 4.41.1
tinyglobby: 0.2.14 tinyglobby: 0.2.14
optionalDependencies: optionalDependencies:
'@types/node': 22.15.24 '@types/node': 22.15.23
fsevents: 2.3.3 fsevents: 2.3.3
jiti: 2.4.2 jiti: 2.4.2
lightningcss: 1.29.3 lightningcss: 1.29.3
@ -8593,14 +8593,14 @@ snapshots:
tsx: 4.19.4 tsx: 4.19.4
yaml: 2.8.0 yaml: 2.8.0
vitefu@1.0.6(vite@6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)): vitefu@1.0.6(vite@6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0)):
optionalDependencies: optionalDependencies:
vite: 6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) vite: 6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0)
vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0): vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0):
dependencies: dependencies:
'@vitest/expect': 3.1.1 '@vitest/expect': 3.1.1
'@vitest/mocker': 3.1.1(vite@6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) '@vitest/mocker': 3.1.1(vite@6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0))
'@vitest/pretty-format': 3.1.4 '@vitest/pretty-format': 3.1.4
'@vitest/runner': 3.1.1 '@vitest/runner': 3.1.1
'@vitest/snapshot': 3.1.1 '@vitest/snapshot': 3.1.1
@ -8616,12 +8616,12 @@ snapshots:
tinyexec: 0.3.2 tinyexec: 0.3.2
tinypool: 1.0.2 tinypool: 1.0.2
tinyrainbow: 2.0.0 tinyrainbow: 2.0.0
vite: 6.3.5(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) vite: 6.3.5(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0)
vite-node: 3.1.1(@types/node@22.15.24)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0) vite-node: 3.1.1(@types/node@22.15.23)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.8.0)
why-is-node-running: 2.3.0 why-is-node-running: 2.3.0
optionalDependencies: optionalDependencies:
'@types/debug': 4.1.12 '@types/debug': 4.1.12
'@types/node': 22.15.24 '@types/node': 22.15.23
transitivePeerDependencies: transitivePeerDependencies:
- jiti - jiti
- less - less

View file

@ -0,0 +1,49 @@
#!/usr/bin/env python3
from fontTools.ttLib import TTFont
import sys
def get_unicode_range(font_file):
"""Extract unicode-range from font file"""
try:
# Load the font file
font = TTFont(font_file)
cmap = font.getBestCmap()
# Get Unicode code points for all characters
unicode_points = sorted(cmap.keys())
# Merge consecutive code points into ranges
ranges = []
start = unicode_points[0]
end = start
for point in unicode_points[1:]:
if point == end + 1:
end = point
else:
# Add a range
if start == end:
ranges.append(f"U+{start:04X}")
else:
ranges.append(f"U+{start:04X}-{end:04X}")
start = end = point
# Add the final range
if start == end:
ranges.append(f"U+{start:04X}")
else:
ranges.append(f"U+{start:04X}-{end:04X}")
# Generate CSS format
return "unicode-range: " + ",".join(ranges) + ";"
except:
return "Error: Unable to process this font file"
# Usage
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python simple_unicode_range.py fontfile.woff2")
else:
result = get_unicode_range(sys.argv[1])
print(result)

View file

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M7.2 1h14.4v17.7l-1.3.5V2.5H6.7zM2.3 4.9h15.4V23H2.3zm14.1 1.5H3.6v15.1h12.8z"/>
</svg>

Before

Width:  |  Height:  |  Size: 159 B

View file

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M6.9.8v18h14.5V.8zm12.8 16h-11v-14h11z"/>
<path d="M4.3 21.2V5.6l-1.7.5v17.1h14.3l.6-2z"/>
</svg>

After

Width:  |  Height:  |  Size: 171 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M9 20 .9 11.9l1.2-.6L9 17.6 22.5 5l.6 1z"/> <path d="m23.1 6.4-1.3-1.3L9.4 16.6l-6.3-5.4-1.2 1.2L9.4 20z"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 122 B

After

Width:  |  Height:  |  Size: 133 B

Before After
Before After

View file

@ -10,8 +10,7 @@ const { waline: { serverURL = '', emoji = [], search = false, imageUploader = fa
class="mt-16" class="mt-16"
></div> ></div>
<!-- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> --> <!-- Waline Script >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -->
<script <script
is:inline is:inline
define:vars={{ define:vars={{
@ -37,8 +36,7 @@ function initWaline() {
init({ init({
el: '#waline', el: '#waline',
serverURL, serverURL,
// Share comments on posts in different languages path: window.location.pathname.replace(/^\/([a-z]{2}(-[a-z]{2})?)\//, '/'), // Share comments on posts in different languages
path: window.location.pathname.replace(/^\/([a-z]{2}(-[a-z]{2})?)\//, '/'),
lang: currentWalineLang, lang: currentWalineLang,
emoji, emoji,
dark: 'html.dark', dark: 'html.dark',

View file

@ -14,14 +14,16 @@ import GoBackIcon from '@/assets/icons/go-back.svg';
/> />
</button> </button>
<!-- Go Back Script >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> --> <!-- Go Back Script >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -->
<script> <script>
function setupBackButton() { function setupBackButton() {
document.getElementById('back-button')?.addEventListener('click', () => { document.getElementById('back-button')?.addEventListener('click', () => {
// Navigate back if history exists
if (window.history.length > 1) { if (window.history.length > 1) {
window.history.back() window.history.back()
} }
else { else {
// Fallback to homepage
const siteTitleLink = document.getElementById('site-title-link') const siteTitleLink = document.getElementById('site-title-link')
if (siteTitleLink) { if (siteTitleLink) {
siteTitleLink.click() siteTitleLink.click()

View file

@ -1,14 +1,23 @@
<script> <script>
const copyIcons = { const copyIcons = {
copy: `<svg viewBox="0 0 24 24" fill="currentColor"> copy:
<path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/> `<svg
</svg>`, viewBox="0 0 24 24"
success: `<svg viewBox="0 0 24 24" fill="currentColor"> fill="currentColor"
<path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/> >
</svg>`, <path d="M6.9.8v18h14.5V.8zm12.8 16h-11v-14h11z"/>
<path d="M4.3 21.2V5.6l-1.7.5v17.1h14.3l.6-2z"/>
</svg>`,
success:
`<svg
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="m23.1 6.4-1.3-1.3L9.4 16.6l-6.3-5.4-1.2 1.2L9.4 20z"/>
</svg>`,
} }
// Store active timeouts to prevent memory leaks // Track timeout references for each button to manage icon state transitions
const activeTimeouts = new WeakMap<HTMLButtonElement, ReturnType<typeof setTimeout>>() const activeTimeouts = new WeakMap<HTMLButtonElement, ReturnType<typeof setTimeout>>()
async function handleCopy(button: HTMLButtonElement) { async function handleCopy(button: HTMLButtonElement) {
@ -18,32 +27,37 @@ async function handleCopy(button: HTMLButtonElement) {
try { try {
await navigator.clipboard.writeText(code) await navigator.clipboard.writeText(code)
// Clear existing timeout to prevent visual glitches on multiple clicks // Clear existing timeout to prevent icon state conflicts on multiple clicks
const existingTimeout = activeTimeouts.get(button) const existingTimeout = activeTimeouts.get(button)
if (existingTimeout) { if (existingTimeout) {
clearTimeout(existingTimeout) clearTimeout(existingTimeout)
} }
button.innerHTML = copyIcons.success button.innerHTML = copyIcons.success
button.classList.add('copy-success')
// Set timeout to revert to copy icon after 2 seconds // Set timeout to revert to copy icon after 1.5s
const timeoutId = setTimeout(() => { const timeoutId = setTimeout(() => {
button.innerHTML = copyIcons.copy button.innerHTML = copyIcons.copy
button.classList.remove('copy-success')
activeTimeouts.delete(button) activeTimeouts.delete(button)
}, 1000) }, 1500)
activeTimeouts.set(button, timeoutId) activeTimeouts.set(button, timeoutId)
} }
catch { catch {
} }
} }
// Initialize copy buttons with icons and mark them to prevent duplicate initialization
function setupCodeCopyButtons() { function setupCodeCopyButtons() {
// Only initialize buttons that haven't been initialized yet document
document.querySelectorAll<HTMLButtonElement>('.code-copy-button:not([data-initialized])').forEach((button) => { .querySelectorAll<HTMLButtonElement>('.code-copy-button:not([data-initialized])')
button.innerHTML = copyIcons.copy .forEach((button) => {
button.setAttribute('data-initialized', 'true') button.innerHTML = copyIcons.copy
}) button.setAttribute('data-initialized', 'true')
})
} }
// Use event delegation for better performance // Use event delegation for better performance

View file

@ -12,7 +12,7 @@ function setupGithubCards() {
observer.unobserve(entry.target) observer.unobserve(entry.target)
} }
}) })
}, { rootMargin: '400px' }) }, { rootMargin: '500px' })
Array.from(githubCards).forEach(card => observer.observe(card)) Array.from(githubCards).forEach(card => observer.observe(card))
} }

View file

@ -2,7 +2,7 @@
import { gsap } from 'gsap' import { gsap } from 'gsap'
function setupPostPageAnimation() { function setupPostPageAnimation() {
// Elements // Animated Elements
const postContent = document.getElementById('gsap-post-page-content') const postContent = document.getElementById('gsap-post-page-content')
const postContentChildren = postContent ? Array.from(postContent.children) : [] const postContentChildren = postContent ? Array.from(postContent.children) : []
const tocContainer = document.getElementById('toc-container') const tocContainer = document.getElementById('toc-container')
@ -10,7 +10,7 @@ function setupPostPageAnimation() {
const tocList = document.getElementById('toc-list') const tocList = document.getElementById('toc-list')
const tocListChildren = tocList ? Array.from(tocList.children) : [] const tocListChildren = tocList ? Array.from(tocList.children) : []
const backButton = document.getElementById('back-button') const backButton = document.getElementById('back-button')
const dateElement = document.getElementById('gsap-post-page-date') const postDate = document.getElementById('gsap-post-page-date')
// Screen Size Check // Screen Size Check
const isLargeScreen = window.matchMedia('(min-width: 1024px)').matches const isLargeScreen = window.matchMedia('(min-width: 1024px)').matches
@ -38,8 +38,8 @@ function setupPostPageAnimation() {
} }
// Post Date // Post Date
if (dateElement) { if (postDate) {
gsap.to(dateElement, { gsap.to(postDate, {
opacity: 1, opacity: 1,
y: 0, y: 0,
duration: 0.5, duration: 0.5,

View file

@ -65,9 +65,3 @@ function lazySetupPhotoSwipe() {
lazySetupPhotoSwipe() lazySetupPhotoSwipe()
document.addEventListener('astro:page-load', lazySetupPhotoSwipe) document.addEventListener('astro:page-load', lazySetupPhotoSwipe)
</script> </script>
<style is:global>
.pswp .pswp__bg {
--at-apply: 'bg-background!'
}
</style>

View file

@ -96,20 +96,18 @@ const filteredHeadings = headings.filter(heading =>
--at-apply: 'ml-4 font-semibold 2xl:hidden'; --at-apply: 'ml-4 font-semibold 2xl:hidden';
} }
.toc-list { .toc-list {
--at-apply: 'mb-3 mt-1 list-none pl-0 space-y-1.1 2xl:(mb-2 space-y-1)'; --at-apply: 'mb-2.5 mt-1 list-none pl-0 space-y-1.1 2xl:(mb-1 space-y-1)';
} }
.toc-link-h2, .toc-link-h3, .toc-link-h4 { .toc-link-h2, .toc-link-h3, .toc-link-h4 {
--at-apply: 'text-balance text-sm font-normal no-underline 2xl:(text-3.2 c-secondary/60 transition-colors transition-font-weight duration-300 ease-out hover:c-secondary hover:font-medium)'; --at-apply: 'text-balance text-sm font-normal no-underline 2xl:(text-3.2 c-secondary/60 transition-colors transition-font-weight ease-out hover:c-secondary hover:font-medium)';
}
.toc-list > :first-child {
--at-apply: 'mt-0';
} }
/* Initial collapsed state with zero height grid row */ /* Initial collapsed state with zero height grid row */
.accordion-wrapper { .accordion-wrapper {
--at-apply: 'grid rows-[0fr] transition-all duration-350 ease-in-out'; --at-apply: 'grid rows-[0fr] transition-all duration-350 ease-in-out';
} }
.accordion-content { .accordion-content {
--at-apply: 'max-h-59 overflow-hidden pl-4 pr-6 2xl:(max-h-[calc(100vh-26.5rem)] pl-1)'; --at-apply: 'max-h-59.3 overflow-hidden pl-4 pr-6 2xl:(max-h-[calc(100vh-26.75rem)] pl-1)';
} }
/* When toggle is checked, expand the wrapper to show content */ /* When toggle is checked, expand the wrapper to show content */

View file

@ -187,8 +187,8 @@ preload: {
// link prefetch strategies // link prefetch strategies
linkPrefetch: 'viewport' // hover, tap, viewport, load linkPrefetch: 'viewport' // hover, tap, viewport, load
// image hosting url // image hosting url
imageHostURL: 'https://image.radishzz.cc'
// optimize remote images in Markdown files to avoid cumulative layout shift // optimize remote images in Markdown files to avoid cumulative layout shift
imageHostURL: 'https://image.radishzz.cc'
// custom google analytics js // custom google analytics js
// for users who route analytics javascript to a customized domain // for users who route analytics javascript to a customized domain
customGoogleAnalyticsJS: '' customGoogleAnalyticsJS: ''
@ -271,7 +271,7 @@ getImageOptions: (_path, page) => ({
[RSS feed page](https://retypeset.radishzz.cc/en/rss.xml) styles. [RSS feed page](https://retypeset.radishzz.cc/en/rss.xml) styles.
```html ```html
<!-- public/rss/rss-style.xsl --> <!-- public/feeds/xxx-style.xsl -->
<style type="text/css"> <style type="text/css">
body{color:oklch(25% 0.005 298)} /* Font color */ body{color:oklch(25% 0.005 298)} /* Font color */

View file

@ -187,8 +187,8 @@ preload: {
// estrategias de precarga de enlaces // estrategias de precarga de enlaces
linkPrefetch: 'viewport' // hover, tap, viewport, load linkPrefetch: 'viewport' // hover, tap, viewport, load
// URL de alojamiento de imágenes // URL de alojamiento de imágenes
imageHostURL: 'https://image.radishzz.cc'
// optimizar imágenes remotas en archivos Markdown para evitar cambios de diseño acumulativos // optimizar imágenes remotas en archivos Markdown para evitar cambios de diseño acumulativos
imageHostURL: 'https://image.radishzz.cc'
// js personalizado de google analytics // js personalizado de google analytics
// para usuarios que redirigen javascript de analytics a un dominio personalizado // para usuarios que redirigen javascript de analytics a un dominio personalizado
customGoogleAnalyticsJS: '' customGoogleAnalyticsJS: ''
@ -271,7 +271,7 @@ getImageOptions: (_path, page) => ({
Estilos de [página del feed RSS](https://retypeset.radishzz.cc/es/rss.xml). Estilos de [página del feed RSS](https://retypeset.radishzz.cc/es/rss.xml).
```html ```html
<!-- public/rss/rss-style.xsl --> <!-- public/feeds/xxx-style.xsl -->
<style type="text/css"> <style type="text/css">
body{color:oklch(25% 0.005 298)} /* Color de fuente */ body{color:oklch(25% 0.005 298)} /* Color de fuente */

View file

@ -26,7 +26,7 @@ site: {
subtitle: 'Revive the beauty of typography' subtitle: 'Revive the beauty of typography'
// サイト説明 // サイト説明
description: 'Retypeset is a static blog theme...' description: 'Retypeset is a static blog theme...'
// 上記の静的設定ではなく src/i18n/ui.ts の多言語タイトル/サブタイトル/説明を使用 // 上記の静的設定の代わりに src/i18n/ui.ts の多言語タイトル/サブタイトル/説明を使用
i18nTitle: true // true, false i18nTitle: true // true, false
// 著者名 // 著者名
author: 'radishzz' author: 'radishzz'
@ -187,8 +187,8 @@ preload: {
// リンクプリフェッチ戦略 // リンクプリフェッチ戦略
linkPrefetch: 'viewport' // hover, tap, viewport, load linkPrefetch: 'viewport' // hover, tap, viewport, load
// 画像ホスティング URL // 画像ホスティング URL
imageHostURL: 'https://image.radishzz.cc'
// Markdownファイル内のリモート画像を最適化してレイアウトシフトを防止 // Markdownファイル内のリモート画像を最適化してレイアウトシフトを防止
imageHostURL: 'https://image.radishzz.cc'
// カスタム Google Analytics JS // カスタム Google Analytics JS
// アナリティクス JavaScript をカスタムドメインにルーティングするユーザー向け // アナリティクス JavaScript をカスタムドメインにルーティングするユーザー向け
customGoogleAnalyticsJS: '' customGoogleAnalyticsJS: ''
@ -271,7 +271,7 @@ getImageOptions: (_path, page) => ({
[RSSフィードページ](https://retypeset.radishzz.cc/ja/rss.xml)スタイル。 [RSSフィードページ](https://retypeset.radishzz.cc/ja/rss.xml)スタイル。
```html ```html
<!-- public/rss/rss-style.xsl --> <!-- public/feeds/xxx-style.xsl -->
<style type="text/css"> <style type="text/css">
body{color:oklch(25% 0.005 298)} /* フォントカラー */ body{color:oklch(25% 0.005 298)} /* フォントカラー */

View file

@ -26,7 +26,7 @@ site: {
subtitle: 'Revive the beauty of typography' subtitle: 'Revive the beauty of typography'
// описание сайта // описание сайта
description: 'Retypeset is a static blog theme...' description: 'Retypeset is a static blog theme...'
// использовать многоязычные заголовок/подзаголовок/описание из src/i18n/ui.ts, а не статические выше // использовать многоязычные заголовок/подзаголовок/описание из src/i18n/ui.ts вместо статических выше
i18nTitle: true // true, false i18nTitle: true // true, false
// имя автора // имя автора
author: 'radishzz' author: 'radishzz'
@ -187,8 +187,8 @@ preload: {
// стратегии предзагрузки ссылок // стратегии предзагрузки ссылок
linkPrefetch: 'viewport' // hover, tap, viewport, load linkPrefetch: 'viewport' // hover, tap, viewport, load
// URL хостинга изображений // URL хостинга изображений
imageHostURL: 'https://image.radishzz.cc'
// оптимизировать удаленные изображения в файлах Markdown для избежания накопления сдвига макета // оптимизировать удаленные изображения в файлах Markdown для избежания накопления сдвига макета
imageHostURL: 'https://image.radishzz.cc'
// пользовательский скрипт Google Analytics // пользовательский скрипт Google Analytics
// для пользователей, которые направляют JavaScript аналитики на собственный домен // для пользователей, которые направляют JavaScript аналитики на собственный домен
customGoogleAnalyticsJS: '' customGoogleAnalyticsJS: ''
@ -271,7 +271,7 @@ getImageOptions: (_path, page) => ({
Стили [страницы RSS-ленты](https://retypeset.radishzz.cc/ru/rss.xml). Стили [страницы RSS-ленты](https://retypeset.radishzz.cc/ru/rss.xml).
```html ```html
<!-- public/rss/rss-style.xsl --> <!-- public/feeds/xxx-style.xsl -->
<style type="text/css"> <style type="text/css">
body{color:oklch(25% 0.005 298)} /* Цвет шрифта */ body{color:oklch(25% 0.005 298)} /* Цвет шрифта */

View file

@ -26,7 +26,7 @@ site: {
subtitle: 'Revive the beauty of typography' subtitle: 'Revive the beauty of typography'
// 站點描述 // 站點描述
description: 'Retypeset is a static blog theme...' description: 'Retypeset is a static blog theme...'
// 使用 src/i18n/ui.ts 中的多語言標題/副標題/站點描述,而不是上方靜態配置 // 使用 src/i18n/ui.ts 中的多語言標題/副標題/站點描述,代替上方靜態配置
i18nTitle: true // true, false i18nTitle: true // true, false
// 作者名稱 // 作者名稱
author: 'radishzz' author: 'radishzz'
@ -187,8 +187,8 @@ preload: {
// 鏈接預加載策略 // 鏈接預加載策略
linkPrefetch: 'viewport' // hover, tap, viewport, load linkPrefetch: 'viewport' // hover, tap, viewport, load
// 圖床地址 // 圖床地址
imageHostURL: 'https://image.radishzz.cc'
// 優化 Markdown 文件中的遠程圖片以避免佈局抖動 // 優化 Markdown 文件中的遠程圖片以避免佈局抖動
imageHostURL: 'https://image.radishzz.cc'
// 定制 google analytics js // 定制 google analytics js
// 適用於路由 google analytics js 到自定義域名的用戶 // 適用於路由 google analytics js 到自定義域名的用戶
customGoogleAnalyticsJS: '' customGoogleAnalyticsJS: ''
@ -271,7 +271,7 @@ getImageOptions: (_path, page) => ({
[RSS 訂閱頁](https://retypeset.radishzz.cc/zh-tw/rss.xml) 配色。 [RSS 訂閱頁](https://retypeset.radishzz.cc/zh-tw/rss.xml) 配色。
```html ```html
<!-- public/rss/rss-style.xsl --> <!-- public/feeds/xxx-style.xsl -->
<style type="text/css"> <style type="text/css">
body{color:oklch(25% 0.005 298)} /* 字體顏色 */ body{color:oklch(25% 0.005 298)} /* 字體顏色 */

View file

@ -26,7 +26,7 @@ site: {
subtitle: 'Revive the beauty of typography' subtitle: 'Revive the beauty of typography'
// 站点描述 // 站点描述
description: 'Retypeset is a static blog theme...' description: 'Retypeset is a static blog theme...'
// 使用 src/i18n/ui.ts 中的多语言标题/副标题/站点描述,而不是上方静态配置 // 使用 src/i18n/ui.ts 中的多语言标题/副标题/站点描述,代替上方静态配置
i18nTitle: true // true, false i18nTitle: true // true, false
// 作者名称 // 作者名称
author: 'radishzz' author: 'radishzz'
@ -187,8 +187,8 @@ preload: {
// 链接预加载策略 // 链接预加载策略
linkPrefetch: 'viewport' // hover, tap, viewport, load linkPrefetch: 'viewport' // hover, tap, viewport, load
// 图床地址 // 图床地址
imageHostURL: 'https://image.radishzz.cc'
// 优化 Markdown 文件中的远程图片以避免布局抖动 // 优化 Markdown 文件中的远程图片以避免布局抖动
imageHostURL: 'https://image.radishzz.cc'
// 定制 google analytics js // 定制 google analytics js
// 适用于路由 google analytics js 到自定义域名的用户 // 适用于路由 google analytics js 到自定义域名的用户
customGoogleAnalyticsJS: '' customGoogleAnalyticsJS: ''
@ -271,7 +271,7 @@ getImageOptions: (_path, page) => ({
[RSS 订阅页](https://retypeset.radishzz.cc/rss.xml) 配色。 [RSS 订阅页](https://retypeset.radishzz.cc/rss.xml) 配色。
```html ```html
<!-- public/rss/rss-style.xsl --> <!-- public/feeds/xxx-style.xsl -->
<style type="text/css"> <style type="text/css">
body{color:oklch(25% 0.005 298)} /* 字体颜色 */ body{color:oklch(25% 0.005 298)} /* 字体颜色 */

View file

@ -143,6 +143,8 @@ window
</script> </script>
<!-- Google Analytics --> <!-- Google Analytics -->
<!-- Define gtag on window object for proper Partytown forwarding -->
<!-- See https://github.com/QwikDev/partytown/issues/382 -->
{googleAnalyticsID && ( {googleAnalyticsID && (
<> <>
<script <script
@ -156,18 +158,18 @@ window
define:vars={{ googleAnalyticsID, customGoogleAnalyticsJS }} define:vars={{ googleAnalyticsID, customGoogleAnalyticsJS }}
> >
window.dataLayer = window.dataLayer || [] window.dataLayer = window.dataLayer || []
function gtag(...args) { window.gtag = function () {
dataLayer.push(args) // eslint-disable-next-line prefer-rest-params
dataLayer.push(arguments)
} }
gtag('js', new Date()) window.gtag('js', new Date())
if (customGoogleAnalyticsJS) { if (customGoogleAnalyticsJS) {
gtag('config', googleAnalyticsID, { window.gtag('config', googleAnalyticsID, {
transport_url: new URL(customGoogleAnalyticsJS).origin, transport_url: new URL(customGoogleAnalyticsJS).origin,
}) })
} }
else { else {
gtag('config', googleAnalyticsID) window.gtag('config', googleAnalyticsID)
} }
</script> </script>
</> </>

View file

@ -120,44 +120,7 @@
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E");
} }
/* Fix KaTeX Overflow with Hidden Scrollbar >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */ /* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
.katex-display {
--at-apply: 'my-6 overflow-x-auto overflow-y-hidden scrollbar-hidden';
}
.katex-display::-webkit-scrollbar {
display: none;
}
/* Video */
.heti iframe {
--at-apply: 'my-6 aspect-video w-full';
}
.heti :is(h1, h2, h3, h4, h5, h6, iframe) + iframe {
--at-apply: 'mt-4';
}
.heti iframe:has(+ iframe) {
--at-apply: 'mb-4';
}
/* Code Copy Button */
.code-copy-button {
--at-apply: 'z-99 absolute top-2.3 right-2.3 w-8 aspect-square uno-round-border border-secondary/15 c-secondary/80 cursor-pointer';
--at-apply: 'transition-opacity duration-300 ease-out op-100 bg-background lg:(op-0 bg-background)';
}
.code-block-wrapper:hover .code-copy-button {
--at-apply: 'op-100';
}
.code-copy-button:hover {
--at-apply: 'c-primary/80';
}
.code-copy-button svg {
--at-apply: 'w-4 h-4 block mx-auto';
}
.code-copy-button svg,
.code-copy-button svg path {
pointer-events: none;
}
/* :where(details) { /* :where(details) {
--at-apply: 'my-4 px-4 py-3 border border-solid border-secondary/25 rounded cursor-pointer'; --at-apply: 'my-4 px-4 py-3 border border-solid border-secondary/25 rounded cursor-pointer';
} }

View file

@ -14,6 +14,37 @@ body::selection {
--at-apply: 'bg-highlight'; --at-apply: 'bg-highlight';
} }
/* PhotoSwipe Background Color */
.pswp .pswp__bg {
--at-apply: 'bg-background!';
}
/* Fix KaTeX Overflow with Hidden Scrollbar */
.katex-display {
--at-apply: 'my-6 overflow-x-auto overflow-y-hidden scrollbar-hidden';
}
.katex-display::-webkit-scrollbar {
display: none;
}
/* Highlight Hover Animation */
.highlight-static,
.highlight-hover {
--at-apply: 'relative inline-block';
}
.highlight-static::after,
.highlight-hover::after {
content: '';
--at-apply: 'absolute left-0 z--1 h-0.5em w-full bg-highlight';
}
.highlight-static::after,
.highlight-hover:hover::after {
--at-apply: 'origin-bottom-left scale-x-100';
}
.highlight-hover::after {
--at-apply: 'origin-bottom-right scale-x-0 transition-transform ease-out lg:duration-300';
}
/* Heading Anchor Link */ /* Heading Anchor Link */
.heading-anchor-link { .heading-anchor-link {
--at-apply: 'inline-block translate-y-0.1em'; --at-apply: 'inline-block translate-y-0.1em';
@ -34,20 +65,25 @@ h4:hover .heading-anchor-link svg:hover {
--at-apply: 'op-80'; --at-apply: 'op-80';
} }
/* Highlight Hover Animation */ /* Code Copy Button */
.highlight-static, .code-copy-button {
.highlight-hover { --at-apply: 'absolute right-2.2 top-2.2 z-99 aspect-square w-8 cursor-pointer uno-round-border border-secondary/15';
--at-apply: 'relative inline-block'; --at-apply: 'bg-background c-secondary/80 op-100 hover:(border-primary/15 c-primary/80) lg:op-0';
transition: opacity 300ms ease-out, background-color 150ms ease-out;
} }
.highlight-static::after, .code-block-wrapper:hover .code-copy-button {
.highlight-hover::after { --at-apply: 'op-100';
content: '';
--at-apply: 'absolute left-0 z--1 h-0.5em w-full bg-highlight';
} }
.highlight-static::after, .code-copy-button.copy-success {
.highlight-hover:hover::after { --at-apply: 'border-none bg-emerald-600 c-background';
--at-apply: 'origin-bottom-left scale-x-100';
} }
.highlight-hover::after { html.dark .code-copy-button.copy-success {
--at-apply: 'origin-bottom-right scale-x-0 transition-transform ease-out lg:duration-300'; --at-apply: 'bg-emerald-500';
} }
.code-copy-button svg {
--at-apply: 'mx-auto aspect-square w-50%';
}
.code-copy-button svg,
.code-copy-button svg path {
--at-apply: 'pointer-events-none';
}

View file

@ -75,6 +75,17 @@
--at-apply: 'mb-4'; --at-apply: 'mb-4';
} }
/* Video */
.heti iframe {
--at-apply: 'my-6 aspect-video w-full';
}
.heti :is(h1, h2, h3, h4, h5, h6, iframe) + iframe {
--at-apply: 'mt-4';
}
.heti iframe:has(+ iframe) {
--at-apply: 'mb-4';
}
/* Code Blocks */ /* Code Blocks */
.heti :where(pre) { .heti :where(pre) {
--at-apply: 'overflow-auto uno-round-border px-4 py-3 bg-secondary/5!'; --at-apply: 'overflow-auto uno-round-border px-4 py-3 bg-secondary/5!';

View file

@ -36,7 +36,7 @@ html.reduce-motion {
--at-apply: 'transition-colors duration-300 ease-out'; --at-apply: 'transition-colors duration-300 ease-out';
} }
/* GSAP Animation Elements Initial States */ /* GSAP Animation Elements Initial States >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
@media (min-width: 1024px) { @media (min-width: 1024px) {
html:not(.reduce-motion) #gsap-post-page-content > * { html:not(.reduce-motion) #gsap-post-page-content > * {
opacity: 0; opacity: 0;
@ -59,12 +59,14 @@ html.reduce-motion {
transform: translateY(1.5rem); transform: translateY(1.5rem);
} }
} }
@media (max-width: 1023px) { @media (max-width: 1023px) {
html:not(.reduce-motion) #gsap-post-page-content > :nth-child(-n+7) { html:not(.reduce-motion) #gsap-post-page-content > :nth-child(-n+7) {
opacity: 0; opacity: 0;
transform: translateY(3rem); transform: translateY(3rem);
} }
} }
@media (max-width: 1535px) { @media (max-width: 1535px) {
html:not(.reduce-motion) #toc-container { html:not(.reduce-motion) #toc-container {
opacity: 0; opacity: 0;