Compare commits

4 Commits

Author SHA1 Message Date
dc4d564059 Breadcrumbs with navigation for mobile
All checks were successful
Build and deploy website / build (push) Successful in 38s
2025-03-16 21:32:11 +01:00
05ef06f95c Breadcrumbs with navigation
All checks were successful
Build and deploy website / build (push) Successful in 38s
2025-03-15 15:34:24 +01:00
097850267c Homelab and raspberry pi uses
All checks were successful
Build and deploy website / build (push) Successful in 1m0s
2025-03-10 21:44:20 +01:00
9a82eba757 📦 Updated Astro to v5.4 and DaisyUI to v5 2025-03-01 10:04:48 +01:00
11 changed files with 151 additions and 305 deletions

View File

@ -13,7 +13,7 @@
## Layout ## Layout
- [ ] Dark mode toggle - [ ] Dark mode toggle
- [ ] Navigate using pathname / breadcrumbs - [x] Navigate using pathname / breadcrumbs
- [ ] Better style for \<code /> blocks - [ ] Better style for \<code /> blocks
## Accessibility ## Accessibility
@ -51,8 +51,8 @@
- [ ] List of all slashes - [ ] List of all slashes
## ~/uses ## ~/uses
- [ ] Homelab uses - [x] Homelab uses
- [ ] Raspberry PI uses - [x] Raspberry PI uses
- [ ] Hardware anchor - [ ] Hardware anchor
## ~/certifications ## ~/certifications

View File

@ -24,7 +24,7 @@
"@inlang/paraglide-js": "1.11.8", "@inlang/paraglide-js": "1.11.8",
"@tailwindcss/typography": "^0.5.16", "@tailwindcss/typography": "^0.5.16",
"@tailwindcss/vite": "^4.0.9", "@tailwindcss/vite": "^4.0.9",
"astro": "^5.3.1", "astro": "^5.4.1 ",
"astro-icon": "^1.1.5", "astro-icon": "^1.1.5",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"sharp": "^0.33.5", "sharp": "^0.33.5",
@ -33,7 +33,7 @@
"typescript": "^5.7.3" "typescript": "^5.7.3"
}, },
"devDependencies": { "devDependencies": {
"daisyui": "^5.0.0-beta.8", "daisyui": "^5.0.0",
"prettier": "^3.5.2", "prettier": "^3.5.2",
"prettier-plugin-astro": "^0.14.1", "prettier-plugin-astro": "^0.14.1",
"prettier-plugin-svelte": "^3.3.3", "prettier-plugin-svelte": "^3.3.3",

349
pnpm-lock.yaml generated
View File

@ -13,22 +13,22 @@ importers:
version: 0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.5.2)(typescript@5.7.3) version: 0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.5.2)(typescript@5.7.3)
'@astrojs/mdx': '@astrojs/mdx':
specifier: ^4.0.8 specifier: ^4.0.8
version: 4.0.8(astro@5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1)) version: 4.0.8(astro@5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))
'@astrojs/node': '@astrojs/node':
specifier: 9.1.1 specifier: 9.1.1
version: 9.1.1(astro@5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1)) version: 9.1.1(astro@5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))
'@astrojs/sitemap': '@astrojs/sitemap':
specifier: ^3.2.1 specifier: ^3.2.1
version: 3.2.1 version: 3.2.1
'@astrojs/svelte': '@astrojs/svelte':
specifier: ^7.0.4 specifier: ^7.0.4
version: 7.0.4(@types/node@22.7.5)(astro@5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))(jiti@2.4.2)(lightningcss@1.29.1)(svelte@5.20.4)(typescript@5.7.3)(yaml@2.5.1) version: 7.0.4(@types/node@22.7.5)(astro@5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))(jiti@2.4.2)(lightningcss@1.29.1)(svelte@5.20.4)(typescript@5.7.3)(yaml@2.5.1)
'@iconify-json/pajamas': '@iconify-json/pajamas':
specifier: ^1.2.5 specifier: ^1.2.5
version: 1.2.5 version: 1.2.5
'@inlang/paraglide-astro': '@inlang/paraglide-astro':
specifier: ^0.3.5 specifier: ^0.3.5
version: 0.3.5(astro@5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1)) version: 0.3.5(astro@5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))
'@inlang/paraglide-js': '@inlang/paraglide-js':
specifier: 1.11.8 specifier: 1.11.8
version: 1.11.8 version: 1.11.8
@ -39,8 +39,8 @@ importers:
specifier: ^4.0.9 specifier: ^4.0.9
version: 4.0.9(vite@6.2.0(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(yaml@2.5.1)) version: 4.0.9(vite@6.2.0(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(yaml@2.5.1))
astro: astro:
specifier: ^5.3.1 specifier: '^5.4.1 '
version: 5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1) version: 5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1)
astro-icon: astro-icon:
specifier: ^1.1.5 specifier: ^1.1.5
version: 1.1.5 version: 1.1.5
@ -61,8 +61,8 @@ importers:
version: 5.7.3 version: 5.7.3
devDependencies: devDependencies:
daisyui: daisyui:
specifier: ^5.0.0-beta.8 specifier: ^5.0.0
version: 5.0.0-beta.8 version: 5.0.0
prettier: prettier:
specifier: ^3.5.2 specifier: ^3.5.2
version: 3.5.2 version: 3.5.2
@ -97,9 +97,15 @@ packages:
'@astrojs/compiler@2.10.3': '@astrojs/compiler@2.10.3':
resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==}
'@astrojs/compiler@2.10.4':
resolution: {integrity: sha512-86B3QGagP99MvSNwuJGiYSBHnh8nLvm2Q1IFI15wIUJJsPeQTO3eb2uwBmrqRsXykeR/mBzH8XCgz5AAt1BJrQ==}
'@astrojs/internal-helpers@0.5.1': '@astrojs/internal-helpers@0.5.1':
resolution: {integrity: sha512-M7rAge1n2+aOSxNvKUFa0u/KFn0W+sZy7EW91KOSERotm2Ti8qs+1K0xx3zbOxtAVrmJb5/J98eohVvvEqtNkw==} resolution: {integrity: sha512-M7rAge1n2+aOSxNvKUFa0u/KFn0W+sZy7EW91KOSERotm2Ti8qs+1K0xx3zbOxtAVrmJb5/J98eohVvvEqtNkw==}
'@astrojs/internal-helpers@0.6.0':
resolution: {integrity: sha512-XgHIJDQaGlFnTr0sDp1PiJrtqsWzbHP2qkTU+JpQ8SnBewKP2IKOe/wqCkl0CyfyRXRu3TSWu4t/cpYMVfuBNA==}
'@astrojs/language-server@2.15.0': '@astrojs/language-server@2.15.0':
resolution: {integrity: sha512-wJHSjGApm5X8Rg1GvkevoatZBfvaFizY4kCPvuSYgs3jGCobuY3KstJGKC1yNLsRJlDweHruP+J54iKn9vEKoA==} resolution: {integrity: sha512-wJHSjGApm5X8Rg1GvkevoatZBfvaFizY4kCPvuSYgs3jGCobuY3KstJGKC1yNLsRJlDweHruP+J54iKn9vEKoA==}
hasBin: true hasBin: true
@ -115,6 +121,9 @@ packages:
'@astrojs/markdown-remark@6.1.0': '@astrojs/markdown-remark@6.1.0':
resolution: {integrity: sha512-emZNNSTPGgPc3V399Cazpp5+snogjaF04ocOSQn9vy3Kw/eIC4vTQjXOrWDEoSEy+AwPDZX9bQ4wd3bxhpmGgQ==} resolution: {integrity: sha512-emZNNSTPGgPc3V399Cazpp5+snogjaF04ocOSQn9vy3Kw/eIC4vTQjXOrWDEoSEy+AwPDZX9bQ4wd3bxhpmGgQ==}
'@astrojs/markdown-remark@6.2.0':
resolution: {integrity: sha512-LUDjgd9p1yG0qTFSocaj3GOLmZs8Hsw/pNtvqzvNY58Acebxvb/46vDO/e/wxYgsKgIfWS+p+ZI5SfOjoVrbCg==}
'@astrojs/mdx@4.0.8': '@astrojs/mdx@4.0.8':
resolution: {integrity: sha512-/aiLr2yQ55W9AbpyOgfMtFXk7g2t7XoWdC2Avps/NqxAx4aYONDLneX43D79QwgqdjFhin7o3cIPp/vVppMbaA==} resolution: {integrity: sha512-/aiLr2yQ55W9AbpyOgfMtFXk7g2t7XoWdC2Avps/NqxAx4aYONDLneX43D79QwgqdjFhin7o3cIPp/vVppMbaA==}
engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0}
@ -189,300 +198,150 @@ packages:
'@emnapi/runtime@1.3.1': '@emnapi/runtime@1.3.1':
resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==}
'@esbuild/aix-ppc64@0.24.2':
resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
'@esbuild/aix-ppc64@0.25.0': '@esbuild/aix-ppc64@0.25.0':
resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [ppc64] cpu: [ppc64]
os: [aix] os: [aix]
'@esbuild/android-arm64@0.24.2':
resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
'@esbuild/android-arm64@0.25.0': '@esbuild/android-arm64@0.25.0':
resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
'@esbuild/android-arm@0.24.2':
resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
'@esbuild/android-arm@0.25.0': '@esbuild/android-arm@0.25.0':
resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm] cpu: [arm]
os: [android] os: [android]
'@esbuild/android-x64@0.24.2':
resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
'@esbuild/android-x64@0.25.0': '@esbuild/android-x64@0.25.0':
resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [android] os: [android]
'@esbuild/darwin-arm64@0.24.2':
resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
'@esbuild/darwin-arm64@0.25.0': '@esbuild/darwin-arm64@0.25.0':
resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@esbuild/darwin-x64@0.24.2':
resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
'@esbuild/darwin-x64@0.25.0': '@esbuild/darwin-x64@0.25.0':
resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@esbuild/freebsd-arm64@0.24.2':
resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
'@esbuild/freebsd-arm64@0.25.0': '@esbuild/freebsd-arm64@0.25.0':
resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [freebsd] os: [freebsd]
'@esbuild/freebsd-x64@0.24.2':
resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
'@esbuild/freebsd-x64@0.25.0': '@esbuild/freebsd-x64@0.25.0':
resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@esbuild/linux-arm64@0.24.2':
resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
'@esbuild/linux-arm64@0.25.0': '@esbuild/linux-arm64@0.25.0':
resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@esbuild/linux-arm@0.24.2':
resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
'@esbuild/linux-arm@0.25.0': '@esbuild/linux-arm@0.25.0':
resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@esbuild/linux-ia32@0.24.2':
resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
'@esbuild/linux-ia32@0.25.0': '@esbuild/linux-ia32@0.25.0':
resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [ia32] cpu: [ia32]
os: [linux] os: [linux]
'@esbuild/linux-loong64@0.24.2':
resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
'@esbuild/linux-loong64@0.25.0': '@esbuild/linux-loong64@0.25.0':
resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
'@esbuild/linux-mips64el@0.24.2':
resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
'@esbuild/linux-mips64el@0.25.0': '@esbuild/linux-mips64el@0.25.0':
resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [mips64el] cpu: [mips64el]
os: [linux] os: [linux]
'@esbuild/linux-ppc64@0.24.2':
resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
'@esbuild/linux-ppc64@0.25.0': '@esbuild/linux-ppc64@0.25.0':
resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
'@esbuild/linux-riscv64@0.24.2':
resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
'@esbuild/linux-riscv64@0.25.0': '@esbuild/linux-riscv64@0.25.0':
resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
'@esbuild/linux-s390x@0.24.2':
resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
'@esbuild/linux-s390x@0.25.0': '@esbuild/linux-s390x@0.25.0':
resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
'@esbuild/linux-x64@0.24.2':
resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
'@esbuild/linux-x64@0.25.0': '@esbuild/linux-x64@0.25.0':
resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@esbuild/netbsd-arm64@0.24.2':
resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
'@esbuild/netbsd-arm64@0.25.0': '@esbuild/netbsd-arm64@0.25.0':
resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [netbsd] os: [netbsd]
'@esbuild/netbsd-x64@0.24.2':
resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
'@esbuild/netbsd-x64@0.25.0': '@esbuild/netbsd-x64@0.25.0':
resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [netbsd] os: [netbsd]
'@esbuild/openbsd-arm64@0.24.2':
resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
'@esbuild/openbsd-arm64@0.25.0': '@esbuild/openbsd-arm64@0.25.0':
resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [openbsd] os: [openbsd]
'@esbuild/openbsd-x64@0.24.2':
resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
'@esbuild/openbsd-x64@0.25.0': '@esbuild/openbsd-x64@0.25.0':
resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [openbsd] os: [openbsd]
'@esbuild/sunos-x64@0.24.2':
resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
'@esbuild/sunos-x64@0.25.0': '@esbuild/sunos-x64@0.25.0':
resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [sunos] os: [sunos]
'@esbuild/win32-arm64@0.24.2':
resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
'@esbuild/win32-arm64@0.25.0': '@esbuild/win32-arm64@0.25.0':
resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@esbuild/win32-ia32@0.24.2':
resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
'@esbuild/win32-ia32@0.25.0': '@esbuild/win32-ia32@0.25.0':
resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@esbuild/win32-x64@0.24.2':
resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
'@esbuild/win32-x64@0.25.0': '@esbuild/win32-x64@0.25.0':
resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
@ -1234,8 +1093,8 @@ packages:
astro-icon@1.1.5: astro-icon@1.1.5:
resolution: {integrity: sha512-CJYS5nWOw9jz4RpGWmzNQY7D0y2ZZacH7atL2K9DeJXJVaz7/5WrxeyIxO8KASk1jCM96Q4LjRx/F3R+InjJrw==} resolution: {integrity: sha512-CJYS5nWOw9jz4RpGWmzNQY7D0y2ZZacH7atL2K9DeJXJVaz7/5WrxeyIxO8KASk1jCM96Q4LjRx/F3R+InjJrw==}
astro@5.3.1: astro@5.4.1:
resolution: {integrity: sha512-dfcuWKkGsYI6XH6zhSK4tHGFXRgEbPZZwZQ/VmGtKBnDfFW+3faq6k+ETKlKDeRB4LwDGtaeoH+US4HYC5w1SA==} resolution: {integrity: sha512-z9BiBz8pV7pZVn1evZv/9bJil3A9UZNyEjDFH3IjD87ioz95HHGLgbjRbbqF1EwSy8JOLKlMNyuQPqjrX8xqWw==}
engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
hasBin: true hasBin: true
@ -1444,8 +1303,8 @@ packages:
csstype@3.1.3: csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
daisyui@5.0.0-beta.8: daisyui@5.0.0:
resolution: {integrity: sha512-jSokqm5i+Pv1jG80wliNzMHjmcF+iMx5xRUpk0/QExVoVNyQNWeCsaWJQubPvUq7bt9nzSsQTR2uIZBoyIIoaA==} resolution: {integrity: sha512-U0K9Bac3Bi3zZGm6ojrw12F0vBHTpEgf46zv/BYxLe07hF0Xnx7emIQliwaRBgJuYhY0BhwQ6wSnq5cJXHA2yA==}
dayjs@1.11.13: dayjs@1.11.13:
resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
@ -1603,11 +1462,6 @@ packages:
esast-util-from-js@2.0.1: esast-util-from-js@2.0.1:
resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==}
esbuild@0.24.2:
resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==}
engines: {node: '>=18'}
hasBin: true
esbuild@0.25.0: esbuild@0.25.0:
resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==}
engines: {node: '>=18'} engines: {node: '>=18'}
@ -3244,8 +3098,12 @@ snapshots:
'@astrojs/compiler@2.10.3': {} '@astrojs/compiler@2.10.3': {}
'@astrojs/compiler@2.10.4': {}
'@astrojs/internal-helpers@0.5.1': {} '@astrojs/internal-helpers@0.5.1': {}
'@astrojs/internal-helpers@0.6.0': {}
'@astrojs/language-server@2.15.0(prettier-plugin-astro@0.14.1)(prettier@3.5.2)(typescript@5.7.3)': '@astrojs/language-server@2.15.0(prettier-plugin-astro@0.14.1)(prettier@3.5.2)(typescript@5.7.3)':
dependencies: dependencies:
'@astrojs/compiler': 2.10.3 '@astrojs/compiler': 2.10.3
@ -3297,12 +3155,38 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@astrojs/mdx@4.0.8(astro@5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))': '@astrojs/markdown-remark@6.2.0':
dependencies:
'@astrojs/internal-helpers': 0.6.0
'@astrojs/prism': 3.2.0
github-slugger: 2.0.0
hast-util-from-html: 2.0.3
hast-util-to-text: 4.0.2
import-meta-resolve: 4.1.0
js-yaml: 4.1.0
mdast-util-definitions: 6.0.0
rehype-raw: 7.0.0
rehype-stringify: 10.0.1
remark-gfm: 4.0.0
remark-parse: 11.0.0
remark-rehype: 11.1.1
remark-smartypants: 3.0.2
shiki: 1.29.2
smol-toml: 1.3.1
unified: 11.0.5
unist-util-remove-position: 5.0.0
unist-util-visit: 5.0.0
unist-util-visit-parents: 6.0.1
vfile: 6.0.3
transitivePeerDependencies:
- supports-color
'@astrojs/mdx@4.0.8(astro@5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))':
dependencies: dependencies:
'@astrojs/markdown-remark': 6.1.0 '@astrojs/markdown-remark': 6.1.0
'@mdx-js/mdx': 3.1.0(acorn@8.14.0) '@mdx-js/mdx': 3.1.0(acorn@8.14.0)
acorn: 8.14.0 acorn: 8.14.0
astro: 5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1) astro: 5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1)
es-module-lexer: 1.6.0 es-module-lexer: 1.6.0
estree-util-visit: 2.0.0 estree-util-visit: 2.0.0
hast-util-to-html: 9.0.4 hast-util-to-html: 9.0.4
@ -3316,10 +3200,10 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@astrojs/node@9.1.1(astro@5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))': '@astrojs/node@9.1.1(astro@5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))':
dependencies: dependencies:
'@astrojs/internal-helpers': 0.5.1 '@astrojs/internal-helpers': 0.5.1
astro: 5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1) astro: 5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1)
send: 1.1.0 send: 1.1.0
server-destroy: 1.0.1 server-destroy: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
@ -3335,10 +3219,10 @@ snapshots:
stream-replace-string: 2.0.0 stream-replace-string: 2.0.0
zod: 3.23.8 zod: 3.23.8
'@astrojs/svelte@7.0.4(@types/node@22.7.5)(astro@5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))(jiti@2.4.2)(lightningcss@1.29.1)(svelte@5.20.4)(typescript@5.7.3)(yaml@2.5.1)': '@astrojs/svelte@7.0.4(@types/node@22.7.5)(astro@5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))(jiti@2.4.2)(lightningcss@1.29.1)(svelte@5.20.4)(typescript@5.7.3)(yaml@2.5.1)':
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.20.4)(vite@6.2.0(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(yaml@2.5.1)) '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.20.4)(vite@6.2.0(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(yaml@2.5.1))
astro: 5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1) astro: 5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1)
svelte: 5.20.4 svelte: 5.20.4
svelte2tsx: 0.7.34(svelte@5.20.4)(typescript@5.7.3) svelte2tsx: 0.7.34(svelte@5.20.4)(typescript@5.7.3)
typescript: 5.7.3 typescript: 5.7.3
@ -3415,153 +3299,78 @@ snapshots:
tslib: 2.7.0 tslib: 2.7.0
optional: true optional: true
'@esbuild/aix-ppc64@0.24.2':
optional: true
'@esbuild/aix-ppc64@0.25.0': '@esbuild/aix-ppc64@0.25.0':
optional: true optional: true
'@esbuild/android-arm64@0.24.2':
optional: true
'@esbuild/android-arm64@0.25.0': '@esbuild/android-arm64@0.25.0':
optional: true optional: true
'@esbuild/android-arm@0.24.2':
optional: true
'@esbuild/android-arm@0.25.0': '@esbuild/android-arm@0.25.0':
optional: true optional: true
'@esbuild/android-x64@0.24.2':
optional: true
'@esbuild/android-x64@0.25.0': '@esbuild/android-x64@0.25.0':
optional: true optional: true
'@esbuild/darwin-arm64@0.24.2':
optional: true
'@esbuild/darwin-arm64@0.25.0': '@esbuild/darwin-arm64@0.25.0':
optional: true optional: true
'@esbuild/darwin-x64@0.24.2':
optional: true
'@esbuild/darwin-x64@0.25.0': '@esbuild/darwin-x64@0.25.0':
optional: true optional: true
'@esbuild/freebsd-arm64@0.24.2':
optional: true
'@esbuild/freebsd-arm64@0.25.0': '@esbuild/freebsd-arm64@0.25.0':
optional: true optional: true
'@esbuild/freebsd-x64@0.24.2':
optional: true
'@esbuild/freebsd-x64@0.25.0': '@esbuild/freebsd-x64@0.25.0':
optional: true optional: true
'@esbuild/linux-arm64@0.24.2':
optional: true
'@esbuild/linux-arm64@0.25.0': '@esbuild/linux-arm64@0.25.0':
optional: true optional: true
'@esbuild/linux-arm@0.24.2':
optional: true
'@esbuild/linux-arm@0.25.0': '@esbuild/linux-arm@0.25.0':
optional: true optional: true
'@esbuild/linux-ia32@0.24.2':
optional: true
'@esbuild/linux-ia32@0.25.0': '@esbuild/linux-ia32@0.25.0':
optional: true optional: true
'@esbuild/linux-loong64@0.24.2':
optional: true
'@esbuild/linux-loong64@0.25.0': '@esbuild/linux-loong64@0.25.0':
optional: true optional: true
'@esbuild/linux-mips64el@0.24.2':
optional: true
'@esbuild/linux-mips64el@0.25.0': '@esbuild/linux-mips64el@0.25.0':
optional: true optional: true
'@esbuild/linux-ppc64@0.24.2':
optional: true
'@esbuild/linux-ppc64@0.25.0': '@esbuild/linux-ppc64@0.25.0':
optional: true optional: true
'@esbuild/linux-riscv64@0.24.2':
optional: true
'@esbuild/linux-riscv64@0.25.0': '@esbuild/linux-riscv64@0.25.0':
optional: true optional: true
'@esbuild/linux-s390x@0.24.2':
optional: true
'@esbuild/linux-s390x@0.25.0': '@esbuild/linux-s390x@0.25.0':
optional: true optional: true
'@esbuild/linux-x64@0.24.2':
optional: true
'@esbuild/linux-x64@0.25.0': '@esbuild/linux-x64@0.25.0':
optional: true optional: true
'@esbuild/netbsd-arm64@0.24.2':
optional: true
'@esbuild/netbsd-arm64@0.25.0': '@esbuild/netbsd-arm64@0.25.0':
optional: true optional: true
'@esbuild/netbsd-x64@0.24.2':
optional: true
'@esbuild/netbsd-x64@0.25.0': '@esbuild/netbsd-x64@0.25.0':
optional: true optional: true
'@esbuild/openbsd-arm64@0.24.2':
optional: true
'@esbuild/openbsd-arm64@0.25.0': '@esbuild/openbsd-arm64@0.25.0':
optional: true optional: true
'@esbuild/openbsd-x64@0.24.2':
optional: true
'@esbuild/openbsd-x64@0.25.0': '@esbuild/openbsd-x64@0.25.0':
optional: true optional: true
'@esbuild/sunos-x64@0.24.2':
optional: true
'@esbuild/sunos-x64@0.25.0': '@esbuild/sunos-x64@0.25.0':
optional: true optional: true
'@esbuild/win32-arm64@0.24.2':
optional: true
'@esbuild/win32-arm64@0.25.0': '@esbuild/win32-arm64@0.25.0':
optional: true optional: true
'@esbuild/win32-ia32@0.24.2':
optional: true
'@esbuild/win32-ia32@0.25.0': '@esbuild/win32-ia32@0.25.0':
optional: true optional: true
'@esbuild/win32-x64@0.24.2':
optional: true
'@esbuild/win32-x64@0.25.0': '@esbuild/win32-x64@0.25.0':
optional: true optional: true
@ -3707,10 +3516,10 @@ snapshots:
'@inlang/plugin': 2.4.14(@sinclair/typebox@0.31.28) '@inlang/plugin': 2.4.14(@sinclair/typebox@0.31.28)
'@sinclair/typebox': 0.31.28 '@sinclair/typebox': 0.31.28
'@inlang/paraglide-astro@0.3.5(astro@5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))': '@inlang/paraglide-astro@0.3.5(astro@5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1))':
dependencies: dependencies:
'@inlang/paraglide-vite': 1.3.5 '@inlang/paraglide-vite': 1.3.5
astro: 5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1) astro: 5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1)
transitivePeerDependencies: transitivePeerDependencies:
- babel-plugin-macros - babel-plugin-macros
- debug - debug
@ -4489,11 +4298,11 @@ snapshots:
- debug - debug
- supports-color - supports-color
astro@5.3.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1): astro@5.4.1(@types/node@22.7.5)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.34.7)(typescript@5.7.3)(yaml@2.5.1):
dependencies: dependencies:
'@astrojs/compiler': 2.10.3 '@astrojs/compiler': 2.10.4
'@astrojs/internal-helpers': 0.5.1 '@astrojs/internal-helpers': 0.6.0
'@astrojs/markdown-remark': 6.1.0 '@astrojs/markdown-remark': 6.2.0
'@astrojs/telemetry': 3.2.0 '@astrojs/telemetry': 3.2.0
'@oslojs/encoding': 1.1.0 '@oslojs/encoding': 1.1.0
'@rollup/pluginutils': 5.1.4(rollup@4.34.7) '@rollup/pluginutils': 5.1.4(rollup@4.34.7)
@ -4514,7 +4323,7 @@ snapshots:
dlv: 1.1.3 dlv: 1.1.3
dset: 3.1.4 dset: 3.1.4
es-module-lexer: 1.6.0 es-module-lexer: 1.6.0
esbuild: 0.24.2 esbuild: 0.25.0
estree-walker: 3.0.3 estree-walker: 3.0.3
flattie: 1.1.1 flattie: 1.1.1
github-slugger: 2.0.0 github-slugger: 2.0.0
@ -4786,7 +4595,7 @@ snapshots:
csstype@3.1.3: {} csstype@3.1.3: {}
daisyui@5.0.0-beta.8: {} daisyui@5.0.0: {}
dayjs@1.11.13: {} dayjs@1.11.13: {}
@ -4913,34 +4722,6 @@ snapshots:
esast-util-from-estree: 2.0.0 esast-util-from-estree: 2.0.0
vfile-message: 4.0.2 vfile-message: 4.0.2
esbuild@0.24.2:
optionalDependencies:
'@esbuild/aix-ppc64': 0.24.2
'@esbuild/android-arm': 0.24.2
'@esbuild/android-arm64': 0.24.2
'@esbuild/android-x64': 0.24.2
'@esbuild/darwin-arm64': 0.24.2
'@esbuild/darwin-x64': 0.24.2
'@esbuild/freebsd-arm64': 0.24.2
'@esbuild/freebsd-x64': 0.24.2
'@esbuild/linux-arm': 0.24.2
'@esbuild/linux-arm64': 0.24.2
'@esbuild/linux-ia32': 0.24.2
'@esbuild/linux-loong64': 0.24.2
'@esbuild/linux-mips64el': 0.24.2
'@esbuild/linux-ppc64': 0.24.2
'@esbuild/linux-riscv64': 0.24.2
'@esbuild/linux-s390x': 0.24.2
'@esbuild/linux-x64': 0.24.2
'@esbuild/netbsd-arm64': 0.24.2
'@esbuild/netbsd-x64': 0.24.2
'@esbuild/openbsd-arm64': 0.24.2
'@esbuild/openbsd-x64': 0.24.2
'@esbuild/sunos-x64': 0.24.2
'@esbuild/win32-arm64': 0.24.2
'@esbuild/win32-ia32': 0.24.2
'@esbuild/win32-x64': 0.24.2
esbuild@0.25.0: esbuild@0.25.0:
optionalDependencies: optionalDependencies:
'@esbuild/aix-ppc64': 0.25.0 '@esbuild/aix-ppc64': 0.25.0

View File

@ -0,0 +1,38 @@
---
import { type NavLink, resolvePathname } from "@/utils/linking"
import LocaleLink from "@/components/links/LocaleLink.astro"
const pathname = resolvePathname(Astro.originPathname)
let paths: string[]
if (pathname === "/") {
paths = ["~"]
} else {
paths = ["~", ...pathname.split("/").slice(1)]
}
function getLink(path: string): NavLink {
switch (path) {
case "~":
return "/"
default:
return `/${path}` as NavLink
}
}
---
<div>
{
paths.map((path, index) => (
<span>
{index != paths.length - 1 ? (
<span>
<LocaleLink to={getLink(path)}>{path}</LocaleLink>/
</span>
) : (
path
)}
</span>
))
}
</div>

View File

@ -2,13 +2,13 @@
import PajamasIcon from "@/components/icons/PajamasIcon.astro" import PajamasIcon from "@/components/icons/PajamasIcon.astro"
interface Props { interface Props {
id: string for: string
} }
const { id } = Astro.props const { for: forId } = Astro.props
--- ---
<label for={id} aria-label="open sidebar" class="btn btn-square btn-ghost"> <label for={forId} aria-label="open sidebar" class="btn btn-square btn-ghost">
<PajamasIcon <PajamasIcon
name="pajamas:hamburger" name="pajamas:hamburger"
class="w-6 h-6" class="w-6 h-6"

View File

@ -2,22 +2,24 @@
import Navbar from "./Navbar.astro" import Navbar from "./Navbar.astro"
import NavbarDrawer from "./NavbarDrawer.astro" import NavbarDrawer from "./NavbarDrawer.astro"
import HamburgerMenuButton from "./HamburgerMenuButton.astro" import HamburgerMenuButton from "./HamburgerMenuButton.astro"
import Breadcrumb from "../Breadcrumb.astro"
import { resolvePathname } from "@/utils/linking" import { resolvePathname } from "@/utils/linking"
const currentPath = `~${resolvePathname(Astro.originPathname)}` const currentPath = `~${resolvePathname(Astro.originPathname)}`
const drawerToggleId = "header-drawer"
--- ---
<div class="sm:m-auto"> <div class="sm:m-auto">
<div class="drawer drawer-end"> <div class="drawer drawer-end">
<input id="my-drawer-3" type="checkbox" class="drawer-toggle" /> <input id={drawerToggleId} type="checkbox" class="drawer-toggle" />
<div class="drawer-content flex flex-col"> <div class="drawer-content flex flex-col">
<!-- Navbar --> <!-- Navbar -->
<div class="navbar w-full justify-end"> <div class="navbar w-full justify-end">
<div class="flex justify-between items-center w-full h-full sm:hidden"> <div class="flex justify-between items-center w-full h-full sm:hidden">
<h1 class="!text-2xl h-5"> <h1 class="!text-xl h-5">
{currentPath} <Breadcrumb />
</h1> </h1>
<HamburgerMenuButton id="my-drawer-3" /> <HamburgerMenuButton for={drawerToggleId} />
</div> </div>
<div class="hidden flex-none sm:block"> <div class="hidden flex-none sm:block">
<Navbar /> <Navbar />
@ -25,8 +27,11 @@ const currentPath = `~${resolvePathname(Astro.originPathname)}`
</div> </div>
</div> </div>
<div class="drawer-side z-50"> <div class="drawer-side z-50">
<label for="my-drawer-3" aria-label="close sidebar" class="drawer-overlay" <label
></label> for={drawerToggleId}
aria-label="close sidebar"
class="drawer-overlay"></label>
<!-- Drawer -->
<ul class="menu bg-cat-base min-h-full w-80 p-4"> <ul class="menu bg-cat-base min-h-full w-80 p-4">
<li class="text-xl font-bold my-5"> <li class="text-xl font-bold my-5">
{currentPath} {currentPath}

View File

@ -31,10 +31,11 @@ const {
} = entry!.data } = entry!.data
function localeDateString(isoString: string): string { function localeDateString(isoString: string): string {
let template = "DD-MM-YYYY"
if (languageTag() === "nb") { if (languageTag() === "nb") {
return dayjs(isoString).locale(languageTag()).format("DD/MM/YYYY") template = "DD/MM/YYYY"
} }
return dayjs(isoString).locale(languageTag()).format("DD-MM-YYYY") return dayjs(isoString).locale(languageTag()).format(template)
} }
--- ---

View File

@ -1,3 +1,3 @@
title: Homelab title: Homelab
hardware: hardware:
- b # Graphics cards, CPUs, etc. - HP ProDesk 600 G3 SFF i7 6. gen # https://bergenbruktpc.no/stasjonaer-pc/hp/hp-prodesk-600-g3-sff-i5-i7-6-gen#&variation=926583

View File

@ -1,5 +1,5 @@
title: Raspberry Pi 4 title: Raspberry Pi 4
accessories: accessories:
- a # Screens, keyboards, mice, etc. - 4 TB External harddrive
hardware: hardware:
- b # Graphics cards, CPUs, etc. - OKdo Raspberry Pi 4 Kit 4 GB # https://www.kjell.com/no/produkter/data/raspberry-pi/okdo-raspberry-pi-4-kit-4-gb-p88059

View File

@ -1,8 +1,8 @@
--- ---
import Footer from "@/components/Footer.astro" import Footer from "@/components/Footer.astro"
import Header from "@/components/header/Header.astro" import Header from "@/components/header/Header.astro"
import Breadcrumb from "@/components/Breadcrumb.astro"
import { languageTag } from "@/paraglide/runtime" import { languageTag } from "@/paraglide/runtime"
import { resolvePathname } from "@/utils/linking"
interface Props { interface Props {
title: string title: string
@ -33,7 +33,7 @@ const mainClass =
<Header /> <Header />
<main class:list={[mainClass, clazz]}> <main class:list={[mainClass, clazz]}>
<h1 class="text-center not-sm:hidden"> <h1 class="text-center not-sm:hidden">
~{resolvePathname(Astro.originPathname)} <Breadcrumb />
</h1> </h1>
<div class="my-5"> <div class="my-5">
<slot /> <slot />

View File

@ -22,6 +22,8 @@ const paths: Set<NavLink> = new Set([
"/uses", "/uses",
]) ])
const projectPaths: Set<string> = new Set<string>(["homepage", "sb1budget"])
/** /**
* Defines the localized pathnames for the site. * Defines the localized pathnames for the site.
* The key must be used to navigate to the correct path. * The key must be used to navigate to the correct path.
@ -63,3 +65,22 @@ export function resolvePathname(pathname: string): AbsolutePathname {
} }
return pathname as AbsolutePathname return pathname as AbsolutePathname
} }
export function isAbsolutePathname(path: string): path is AbsolutePathname {
return path.startsWith("/")
}
export function isNavLink(path: string): path is NavLink {
if (path.startsWith("/en")) {
path = path.slice(2)
}
if (paths.has(path as NavLink)) {
return true
}
const pathSplit = path.split("/").slice(1)
return (
pathSplit.length === 2 &&
pathSplit[0] === "projects" &&
projectPaths.has(pathSplit[1])
)
}