diff --git a/package.json b/package.json index 54acb6b..e2732c8 100644 --- a/package.json +++ b/package.json @@ -11,14 +11,14 @@ }, "dependencies": { "@astrojs/mdx": "^4.3.7", - "@astrojs/node": "^9.4.6", + "@astrojs/node": "^9.5.0", "@astrojs/preact": "^4.1.1", "@astrojs/rss": "^4.0.12", "@iarna/toml": "^2.2.5", "@preact/signals": "^2.3.2", "@tailwindcss/typography": "^0.5.19", "@tailwindcss/vite": "^4.1.14", - "astro": "^5.14.4", + "astro": "^5.14.5", "astro-icon": "^1.1.5", "lucide-preact": "^0.545.0", "playwright": "^1.56.0", @@ -29,7 +29,7 @@ "devDependencies": { "@iconify-json/mdi": "^1.2.3", "@iconify-json/simple-icons": "^1.2.54", - "daisyui": "^5.3.0" + "daisyui": "^5.3.1" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c2ab398..e77a185 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,10 +10,10 @@ importers: dependencies: '@astrojs/mdx': specifier: ^4.3.7 - version: 4.3.7(astro@5.14.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3)) + version: 4.3.7(astro@5.14.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3)) '@astrojs/node': - specifier: ^9.4.6 - version: 9.4.6(astro@5.14.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3)) + specifier: ^9.5.0 + version: 9.5.0(astro@5.14.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3)) '@astrojs/preact': specifier: ^4.1.1 version: 4.1.1(@babel/core@7.28.4)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(preact@10.27.2) @@ -31,10 +31,10 @@ importers: version: 0.5.19(tailwindcss@4.1.14) '@tailwindcss/vite': specifier: ^4.1.14 - version: 4.1.14(vite@6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)) + version: 4.1.14(vite@6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)) astro: - specifier: ^5.14.4 - version: 5.14.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3) + specifier: ^5.14.5 + version: 5.14.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3) astro-icon: specifier: ^1.1.5 version: 1.1.5 @@ -61,8 +61,8 @@ importers: specifier: ^1.2.54 version: 1.2.54 daisyui: - specifier: ^5.3.0 - version: 5.3.0 + specifier: ^5.3.1 + version: 5.3.1 packages: @@ -87,8 +87,8 @@ packages: peerDependencies: astro: ^5.0.0 - '@astrojs/node@9.4.6': - resolution: {integrity: sha512-vyl+GaT20CjullFghaO5/g3ygpzfjQdxjRJev8r33Vi831nCe3yyy4G/V1z6wpq4FHDEduMtT2jdXfJVx1th+A==} + '@astrojs/node@9.5.0': + resolution: {integrity: sha512-x1whLIatmCefaqJA8FjfI+P6FStF+bqmmrib0OUGM1M3cZhAXKLgPx6UF2AzQ3JgpXgCWYM24MHtraPvZhhyLQ==} peerDependencies: astro: ^5.14.3 @@ -903,8 +903,8 @@ packages: astro-icon@1.1.5: resolution: {integrity: sha512-CJYS5nWOw9jz4RpGWmzNQY7D0y2ZZacH7atL2K9DeJXJVaz7/5WrxeyIxO8KASk1jCM96Q4LjRx/F3R+InjJrw==} - astro@5.14.4: - resolution: {integrity: sha512-yqgMAO2Whi9GmZkByyiPcG7CiiPr0Me0iBSorMa6M0g+wQk/ewnIqUyr7T/uFCPTQndoKwucnYFTrf0yfb0urw==} + astro@5.14.5: + resolution: {integrity: sha512-EHt7y3+nHYyKzBats1AL3N4Pyrvqyr+zXBC7njUa9Tfe+gsiHlunaw+lXitTT/DDVwO2R/f/qVG7Xc6rl0b2KQ==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -1083,8 +1083,8 @@ packages: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - daisyui@5.3.0: - resolution: {integrity: sha512-MgkNzabeGQ/rMbXujoUkjVzBiFL8gQRELKOfDY7efeLxHAQ8wf9VsRgcjDPDMsmI5rOV5iQ2DFMDo92RsRAcBg==} + daisyui@5.3.1: + resolution: {integrity: sha512-h2RqYCfavz3ZHoRhkn9xsDjMTSvCqAf44ve1Lh5nZvXWrnxgnzVvwGhhnM/lwvFo42aK3Rfly0wE4d5t9LKhRQ==} debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} @@ -2392,8 +2392,8 @@ packages: peerDependencies: vite: 5.x || 6.x || 7.x - vite@6.3.6: - resolution: {integrity: sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==} + vite@6.3.7: + resolution: {integrity: sha512-mQYaKepA0NGMBsz8Xktt3tJUG5ELE2iT7IJ+ssXI6nxVdE2sFc/d/6w/JByqMLvWg8hNKHpPgzjgOkrhpKFnrA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -2554,12 +2554,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.3.7(astro@5.14.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3))': + '@astrojs/mdx@4.3.7(astro@5.14.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3))': dependencies: '@astrojs/markdown-remark': 6.3.8 '@mdx-js/mdx': 3.1.1 acorn: 8.15.0 - astro: 5.14.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3) + astro: 5.14.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3) es-module-lexer: 1.7.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -2573,10 +2573,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@9.4.6(astro@5.14.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3))': + '@astrojs/node@9.5.0(astro@5.14.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.7.4 - astro: 5.14.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3) + astro: 5.14.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3) send: 1.2.0 server-destroy: 1.0.1 transitivePeerDependencies: @@ -2584,11 +2584,11 @@ snapshots: '@astrojs/preact@4.1.1(@babel/core@7.28.4)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(preact@10.27.2)': dependencies: - '@preact/preset-vite': 2.10.2(@babel/core@7.28.4)(preact@10.27.2)(vite@6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)) + '@preact/preset-vite': 2.10.2(@babel/core@7.28.4)(preact@10.27.2)(vite@6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)) '@preact/signals': 2.3.2(preact@10.27.2) preact: 10.27.2 preact-render-to-string: 6.6.2(preact@10.27.2) - vite: 6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) + vite: 6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) transitivePeerDependencies: - '@babel/core' - '@types/node' @@ -3026,18 +3026,18 @@ snapshots: '@oslojs/encoding@1.1.0': {} - '@preact/preset-vite@2.10.2(@babel/core@7.28.4)(preact@10.27.2)(vite@6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1))': + '@preact/preset-vite@2.10.2(@babel/core@7.28.4)(preact@10.27.2)(vite@6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.4) '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.4) - '@prefresh/vite': 2.4.10(preact@10.27.2)(vite@6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)) + '@prefresh/vite': 2.4.10(preact@10.27.2)(vite@6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.4) debug: 4.4.3 picocolors: 1.1.1 - vite: 6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) - vite-prerender-plugin: 0.5.12(vite@6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)) + vite: 6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) + vite-prerender-plugin: 0.5.12(vite@6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)) transitivePeerDependencies: - preact - supports-color @@ -3057,7 +3057,7 @@ snapshots: '@prefresh/utils@1.2.1': {} - '@prefresh/vite@2.4.10(preact@10.27.2)(vite@6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1))': + '@prefresh/vite@2.4.10(preact@10.27.2)(vite@6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1))': dependencies: '@babel/core': 7.28.4 '@prefresh/babel-plugin': 0.5.2 @@ -3065,7 +3065,7 @@ snapshots: '@prefresh/utils': 1.2.1 '@rollup/pluginutils': 4.2.1 preact: 10.27.2 - vite: 6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) + vite: 6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) transitivePeerDependencies: - supports-color @@ -3254,12 +3254,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.14 - '@tailwindcss/vite@4.1.14(vite@6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1))': + '@tailwindcss/vite@4.1.14(vite@6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1))': dependencies: '@tailwindcss/node': 4.1.14 '@tailwindcss/oxide': 4.1.14 tailwindcss: 4.1.14 - vite: 6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) + vite: 6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) '@trysound/sax@0.2.0': {} @@ -3351,7 +3351,7 @@ snapshots: - debug - supports-color - astro@5.14.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3): + astro@5.14.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.52.4)(typescript@5.8.3): dependencies: '@astrojs/compiler': 2.13.0 '@astrojs/internal-helpers': 0.7.4 @@ -3407,8 +3407,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.17.1 vfile: 6.0.3 - vite: 6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) - vitefu: 1.1.1(vite@6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)) + vite: 6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) + vitefu: 1.1.1(vite@6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.3 @@ -3620,7 +3620,7 @@ snapshots: dependencies: css-tree: 2.2.1 - daisyui@5.3.0: {} + daisyui@5.3.1: {} debug@4.4.3: dependencies: @@ -5356,7 +5356,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-prerender-plugin@0.5.12(vite@6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)): + vite-prerender-plugin@0.5.12(vite@6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)): dependencies: kolorist: 1.8.0 magic-string: 0.30.19 @@ -5364,9 +5364,9 @@ snapshots: simple-code-frame: 1.3.0 source-map: 0.7.6 stack-trace: 1.0.0-pre2 - vite: 6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) + vite: 6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) - vite@6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1): + vite@6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1): dependencies: esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) @@ -5380,9 +5380,9 @@ snapshots: jiti: 2.6.1 lightningcss: 1.30.1 - vitefu@1.1.1(vite@6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)): + vitefu@1.1.1(vite@6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)): optionalDependencies: - vite: 6.3.6(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) + vite: 6.3.7(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1) web-namespaces@2.0.1: {} diff --git a/src/components/ProjectCard.astro b/src/components/ProjectCard.astro index c5d966c..d0e8911 100644 --- a/src/components/ProjectCard.astro +++ b/src/components/ProjectCard.astro @@ -95,15 +95,29 @@ const { project } = Astro.props;
{ - project.link && ( + project.webLink && ( - + + Website + + ) + } + { + project.gitLink && ( + + Source ) diff --git a/src/components/ProjectsIsland.astro b/src/components/ProjectsIsland.astro index cacdc7c..7225c87 100644 --- a/src/components/ProjectsIsland.astro +++ b/src/components/ProjectsIsland.astro @@ -23,8 +23,12 @@ function isGiteaDomain(url: string): boolean { const projectsWithGiteaInfo = await Promise.all( config.projects.map(async (project) => { - if (project.link && !project.giteaInfo && isGiteaDomain(project.link)) { - const giteaInfo = await fetchGiteaInfoFromUrl(project.link); + if ( + project.gitLink && + !project.giteaInfo && + isGiteaDomain(project.gitLink) + ) { + const giteaInfo = await fetchGiteaInfoFromUrl(project.gitLink); if (giteaInfo) { return { ...project, giteaInfo } as Project; } diff --git a/src/config.ts b/src/config.ts index 51d6a70..1ad1ee3 100644 --- a/src/config.ts +++ b/src/config.ts @@ -160,46 +160,47 @@ export const config: Config = { id: "ascently", name: "Ascently", description: "FOSS Rock Climbing Tracker for iOS and Android", - link: "https://git.atri.dad/atridad/Ascently", + gitLink: "https://git.atri.dad/atridad/Ascently", + webLink: "https://ascently.atri.dad", }, { id: "muse", name: "muse", description: "Go-based music generation using TOML song definitions", - link: "https://git.atri.dad/atridad/muse", + gitLink: "https://git.atri.dad/atridad/muse", }, { id: "magiccounter", name: "MagicCounter", description: "Jeckpack Compose based Magic the Gathering Health Tracker", - link: "https://git.atri.dad/atridad/MagicCounter", + gitLink: "https://git.atri.dad/atridad/MagicCounter", }, { id: "mealient", name: "Mealient (Fork of project by Kirill Kamakin)", description: "An Android client for a self-hosted recipe manager Mealie.", - link: "https://git.atri.dad/atridad/Mealient", + gitLink: "https://git.atri.dad/atridad/Mealient", }, { id: "goth-stack", name: "GOTH Stack", description: "🚀 A Web Application Template Powered by HTMX + Go + Tailwind 🚀", - link: "https://git.atri.dad/atridad/goth.stack", + gitLink: "https://git.atri.dad/atridad/goth.stack", }, { id: "himbot", name: "Himbot", description: "A discord bot written in Go. Loosly named after my username online (HimbothySwaggins).", - link: "https://git.atri.dad/atridad/himbot", + gitLink: "https://git.atri.dad/atridad/himbot", }, { id: "loadr", name: "loadr", description: "A lightweight REST load testing tool with robust support for different verbs, token auth, and performance reports.", - link: "https://git.atri.dad/atridad/loadr", + gitLink: "https://git.atri.dad/atridad/loadr", }, ], diff --git a/src/types.ts b/src/types.ts index 8706c34..a375f33 100644 --- a/src/types.ts +++ b/src/types.ts @@ -20,10 +20,11 @@ export interface Project { id: string; name: string; description: string; - link: string; + webLink?: string; status?: string; iosLink?: string; androidLink?: string; + gitLink?: string; giteaInfo?: GiteaRepoInfo; }