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-08-26 18:21:05 +02:00
|
|
|
import type { Project } from './projects';
|
|
|
|
|
import { projects } from './projects';
|
2025-04-04 19:00:47 +02:00
|
|
|
import LinkList from "$lib/link-list.svelte";
|
2025-08-25 11:44:01 +02:00
|
|
|
import ContentSidebar from "$lib/content-sidebar.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-08-18 19:44:53 +02:00
|
|
|
bannerAlt="Closeup of the purple protagonist from Project N5"
|
2025-04-27 16:51:48 +02:00
|
|
|
subtitle="Things I have worked on"
|
2025-04-18 11:30:21 +02:00
|
|
|
/>
|
2025-04-01 21:30:20 +02:00
|
|
|
|
2025-08-25 11:44:01 +02:00
|
|
|
<ContentSidebar>
|
|
|
|
|
<TableOfContents slot="side-left" />
|
2025-04-18 16:15:00 +02:00
|
|
|
|
2025-08-25 11:44:01 +02:00
|
|
|
<div slot="main">
|
|
|
|
|
<h2 id="games">Games</h2>
|
|
|
|
|
{#each projects as project}
|
2025-12-21 18:10:24 +00:00
|
|
|
{#if project.type == "game"}
|
|
|
|
|
{@render projectSummary({ project: project })}
|
|
|
|
|
{/if}
|
2025-08-25 11:44:01 +02:00
|
|
|
{/each}
|
|
|
|
|
<h2 id="hardware">Hardware</h2>
|
|
|
|
|
{#each projects as project}
|
2025-12-21 18:10:24 +00:00
|
|
|
{#if project.type == "hardware"}
|
|
|
|
|
{@render projectSummary({ project: project })}
|
|
|
|
|
{/if}
|
2025-08-25 11:44:01 +02:00
|
|
|
{/each}
|
|
|
|
|
<h2 id="apps">Apps</h2>
|
|
|
|
|
{#each projects as project}
|
2025-12-21 18:10:24 +00:00
|
|
|
{#if project.type == "app"}
|
|
|
|
|
{@render projectSummary({ project: project })}
|
|
|
|
|
{/if}
|
2025-08-25 11:44:01 +02:00
|
|
|
{/each}
|
|
|
|
|
<h2 id="music">Music</h2>
|
|
|
|
|
{#each projects as project}
|
2025-12-21 18:10:24 +00:00
|
|
|
{#if project.type == "music"}
|
|
|
|
|
{@render projectSummary({ project: project })}
|
|
|
|
|
{/if}
|
2025-08-25 11:44:01 +02:00
|
|
|
{/each}
|
|
|
|
|
</div>
|
|
|
|
|
</ContentSidebar>
|
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}
|
2025-07-25 11:44:06 +02:00
|
|
|
<p class="project-subtitle">» {project.subtitle}</p>
|
2025-04-01 21:30:20 +02:00
|
|
|
{/if}
|
|
|
|
|
{#if project.banner}
|
2025-08-16 21:40:51 +02:00
|
|
|
<div class="project-banner-container">
|
2025-08-18 19:44:53 +02:00
|
|
|
<img class="project-banner" src="{project.banner}" alt="Overview banner for {project.title}">
|
2025-08-16 21:40:51 +02:00
|
|
|
{#if project.date}
|
|
|
|
|
<p class="project-date project-date-embed">{project.date}</p>
|
|
|
|
|
{/if}
|
|
|
|
|
</div>
|
|
|
|
|
{:else}
|
|
|
|
|
{#if project.date}
|
|
|
|
|
<p class="project-date">{project.date}</p>
|
|
|
|
|
{/if}
|
2025-04-01 21:30:20 +02:00
|
|
|
{/if}
|
|
|
|
|
{#if project.icon}
|
2025-08-18 19:44:53 +02:00
|
|
|
<img class="project-icon" src="{project.icon}" alt="Icon for {project.title}">
|
2025-04-01 21:30:20 +02:00
|
|
|
{/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-07-25 11:44:06 +02:00
|
|
|
{/snippet}
|