+
+ {#each languages as language}
+
+
+ {language.name}
+
+ {/each}
-
- {language.name}
+
+ {license}
+
+
+
+ {year}
- {/each}
-
-
- {license}
-
-
-
- {year}
+ {#if gitHubUrl || projectUrl}
+
+ {#if gitHubUrl}
+
+ {/if}
+ {#if projectUrl}
+
+ {/if}
+
+ {/if}
diff --git a/src/lib/components/site/projects/projects.svelte b/src/lib/components/site/projects/projects.svelte
index ab8fad3..6f02555 100644
--- a/src/lib/components/site/projects/projects.svelte
+++ b/src/lib/components/site/projects/projects.svelte
@@ -5,12 +5,6 @@
{#each projects as project}
- {#if project.url}
-
-
-
- {:else}
-
- {/if}
+
{/each}
diff --git a/src/lib/content/projects.ts b/src/lib/content/projects.ts
index 71e0111..4e8569d 100644
--- a/src/lib/content/projects.ts
+++ b/src/lib/content/projects.ts
@@ -7,16 +7,20 @@ import omnidashLogo from '$lib/assets/projects/omnidash-logo.png?enhanced';
import azureGeocodeMappingLogo from '$lib/assets/projects/azure-geocode-mapping-logo.png?enhanced';
import slayerWeightCalcLogo from '$lib/assets/projects/slayerweightcalc-logo.png?enhanced';
+// TODO: Use vite glob import to import all images from a folder and select them based on their name
+// const gallery = Object.values(import.meta.glob('@assets/asso/*.{png,jpg,jpeg,PNG,JPEG}', { eager: true, as: 'url' }))
+
export type ProgrammingLanguage = {
name: string;
color: string;
};
export type Project = {
- url?: string;
logo: string;
title: string;
description: string;
+ gitHubUrl?: string;
+ projectUrl?: string;
languages: ProgrammingLanguage[];
license: string;
year: string;
@@ -24,11 +28,12 @@ export type Project = {
const projects: Project[] = [
{
- url: 'https://hellob.art',
logo: helloBartLogo,
title: 'hellob.art',
description:
'The website you are currently visiting. A personal portfolio website that regularly gets rebuilt. Currently it has been built in Svelte and SvelteKit and uses shadcn-svelte and Tailwind CSS for component styling.',
+ projectUrl: 'https://hellob.art',
+ gitHubUrl: 'https://github.com/bartvdbraak/hellob.art',
year: '2020',
license: 'GPLv3',
languages: [
@@ -39,11 +44,12 @@ const projects: Project[] = [
]
},
{
- url: 'https://omnidash.io',
logo: omnidashLogo,
title: 'Omnidash',
description:
'Omnidash is an open-source dashboard for retrieving ticketing information from various sources and displaying them in a single view.',
+ projectUrl: 'https://omnidash.io',
+ gitHubUrl: 'https://github.com/bartvdbraak/omnidash',
year: '2023',
license: 'GPLv3',
languages: [
@@ -54,26 +60,12 @@ const projects: Project[] = [
]
},
{
- url: 'https://github.com/bartvdbraak/azure-geocode-mapping',
- logo: azureGeocodeMappingLogo,
- title: 'azure-geocode-mapping',
- description:
- 'azure-geocode-mapping is a Python package that generates a mapping of Azure regions to their display names and geocodes.',
- year: '2023',
- license: 'MIT',
- languages: [
- {
- name: 'Python',
- color: 'text-blue-400'
- }
- ]
- },
- {
- url: 'https://www.github.com/bartvdbraak/keyweave',
logo: keyweaveLogo,
title: 'Keyweave',
description:
'Keyweave is an open-source tool crafted in Rust to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient .env file.',
+ gitHubUrl: 'https://www.github.com/bartvdbraak/keyweave',
+ projectUrl: 'https://docs.rs/crate/keyweave/latest',
year: '2023',
license: 'GPLv3',
languages: [
@@ -87,6 +79,22 @@ const projects: Project[] = [
}
]
},
+ {
+ logo: azureGeocodeMappingLogo,
+ title: 'azure-geocode-mapping',
+ description:
+ 'azure-geocode-mapping is a Python package that generates a mapping of Azure regions to their display names and geocodes.',
+ projectUrl: 'https://bartvdbraak.github.io/azure-geocode-mapping/geo.mapping.json',
+ gitHubUrl: 'https://github.com/bartvdbraak/azure-geocode-mapping',
+ year: '2023',
+ license: 'MIT',
+ languages: [
+ {
+ name: 'Python',
+ color: 'text-blue-400'
+ }
+ ]
+ },
{
logo: videoWallLogo,
title: 'Videowall',
@@ -124,11 +132,11 @@ const projects: Project[] = [
]
},
{
- url: 'https://zaantje.com/',
logo: zaantjeLogo,
title: 'Zaantje',
description:
'A SPA crafted with Nuxt.js and Vue.js, backed by Sanity CMS, taking you on a virtual tour of Zaandam, showcasing locations of famous music videos.',
+ projectUrl: 'https://zaantje.com/',
year: '2020',
license: 'Private',
languages: [
@@ -139,11 +147,12 @@ const projects: Project[] = [
]
},
{
- url: 'https://bartvdbraak.github.io/SlayerWeightCalculator/',
logo: slayerWeightCalcLogo,
title: 'SlayerWeightCalculator',
description:
'I created this Slayer calculator for OldSchool RuneScape in 2019, but I am no longer maintaining it. As of 23th April 2023, I have decided to publicly archive the repository for it.',
+ projectUrl: 'https://bartvdbraak.github.io/SlayerWeightCalculator/',
+ gitHubUrl: 'https://github.com/bartvdbraak/SlayerWeightCalculator',
year: '2019',
license: 'BSD-2',
languages: [