2025-04-01 13:55:54 +02:00
< script lang = "ts" >
2025-04-18 11:30:21 +02:00
import BannerTitleAlt from "$lib/banner-title-alt.svelte";
2025-04-01 22:25:10 +02:00
import TableOfContents from "$lib/table-of-contents.svelte";
2025-04-18 11:30:21 +02:00
import Content from "$lib/content.svelte";
2025-04-01 21:30:20 +02:00
import type { Project } from './projects';
2025-04-01 13:55:54 +02:00
import { projects } from './projects';
2025-04-04 19:00:47 +02:00
import LinkList from "$lib/link-list.svelte";
2025-04-01 21:30:20 +02:00
let getActiveProjects = function(projects: Project[], isActive: boolean): Project[] {
var result: Project[] = [];
projects.forEach(project => {
if (project.isActive == isActive) {
result.push(project);
}
});
return result;
}
2025-04-01 13:55:54 +02:00
< / script >
2025-04-04 10:37:25 +02:00
< svelte:head >
< title > Projects | denizk0461< / title >
< / svelte:head >
2025-04-18 11:30:21 +02:00
< BannerTitleAlt
title="My Disordered Projects"
banner="/projects/banner.webp"
2025-04-18 16:15:00 +02:00
subtitle="Here's a collection of my more noteworthy projects that can be found on the web in some way: projects in programming, 3D modelling, and music production."
2025-04-18 11:30:21 +02:00
/>
2025-04-01 21:30:20 +02:00
2025-04-18 11:30:21 +02:00
< Content >
< TableOfContents / >
2025-04-18 16:15:00 +02:00
2025-04-18 11:30:21 +02:00
< h2 > Active Projects< / h2 >
{ #each getActiveProjects ( projects , true ) as activeProject }
{ @render projectSummary ({ project : activeProject })}
{ /each }
2025-04-01 21:30:20 +02:00
2025-04-18 11:30:21 +02:00
< h2 > Past Projects< / h2 >
{ #each getActiveProjects ( projects , false ) as pastProject }
{ @render projectSummary ({ project : pastProject })}
{ /each }
< / Content >
2025-04-01 13:55:54 +02:00
{ # snippet projectSummary ({
project
}: {
project: Project;
})}
< div >
< h3 id = " { project . id } " > { project . title } </ h3 >
2025-04-01 21:30:20 +02:00
{ #if project . subtitle }
< p class = "subtitle" > » { project . subtitle } </ p >
{ /if }
{ #if project . banner }
< img class = "banner" src = " { project . banner } " >
{ /if }
{ #if project . icon }
< img class = "icon" src = " { project . icon } " >
{ /if }
2025-04-01 13:55:54 +02:00
{ #each project . paragraphs as paragraph }
< p > { @html paragraph } </ p >
{ /each }
2025-04-04 19:00:47 +02:00
< LinkList entries = { project . links } / >
2025-04-01 13:55:54 +02:00
< / div >
2025-04-01 21:30:20 +02:00
{ /snippet }
< style >
.subtitle {
color: var(--color-highlight);
font-weight: 700;
font-style: italic;
margin-top: 0;
}
.banner {
width: 80%;
margin-left: auto;
margin-right: auto;
display: flex;
}
.icon {
float: left;
margin: 16px 16px 16px 0;
width: 20%;
}
< / style >