Files
pages/src/routes/projects/+page.svelte

89 lines
2.5 KiB
Svelte
Raw Normal View History

<script lang="ts">
import BannerTitleAlt from "$lib/banner-title-alt.svelte";
2025-04-01 22:25:10 +02:00
import TableOfContents from "$lib/table-of-contents.svelte";
import Content from "$lib/content.svelte";
import type { Project } from '$lib/projects';
import { projects } from '$lib/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;
}
</script>
2025-04-04 10:37:25 +02:00
<svelte:head>
<title>Projects | denizk0461</title>
</svelte:head>
<BannerTitleAlt
title="My Disordered Projects"
banner="/projects/banner.webp"
subtitle="Things I have worked on"
/>
2025-04-01 21:30:20 +02:00
<Content>
<TableOfContents disableStickyScrolling={true} />
2025-04-18 16:15:00 +02:00
<h2 id="games">Games</h2>
{#each projects as project}
{#if project.type == "game"}
{@render projectSummary({ project: project })}
{/if}
{/each}
<h2 id="hardware">Hardware</h2>
{#each projects as project}
{#if project.type == "hardware"}
{@render projectSummary({ project: project })}
{/if}
{/each}
<h2 id="apps">Apps</h2>
{#each projects as project}
{#if project.type == "app"}
{@render projectSummary({ project: project })}
{/if}
{/each}
<h2 id="music">Music</h2>
{#each projects as project}
{#if project.type == "music"}
{@render projectSummary({ project: project })}
{/if}
{/each}
</Content>
{#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="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">
<img class="project-banner" src="{project.banner}">
{#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}
<img class="project-icon" src="{project.icon}">
2025-04-01 21:30:20 +02:00
{/if}
{#each project.paragraphs as paragraph}
<p>{@html paragraph}</p>
{/each}
2025-04-04 19:00:47 +02:00
<LinkList entries={project.links} />
</div>
{/snippet}