2026-01-23 17:26:52 +01:00
|
|
|
<script lang="ts">
|
|
|
|
|
import Banner2 from "$lib/banner2.svelte";
|
|
|
|
|
import Content from "$lib/viewport/content.svelte";
|
2026-01-29 16:42:08 +01:00
|
|
|
import Gallery, { type GalleryEntry } from "$lib/lists/gallery.svelte";
|
2026-01-31 16:35:17 +01:00
|
|
|
import { posts, type BlogPostLink } from "./posts";
|
2026-01-29 16:42:08 +01:00
|
|
|
|
2026-01-31 16:35:17 +01:00
|
|
|
let entries: GalleryEntry[] = posts.map(mapEntries);
|
2026-01-29 16:42:08 +01:00
|
|
|
|
2026-01-31 16:35:17 +01:00
|
|
|
function mapEntries(entry: BlogPostLink, index: number): GalleryEntry {
|
2026-01-31 20:24:26 +01:00
|
|
|
let banner = "";
|
|
|
|
|
if (entry.post.banner && entry.post.banner !== "") {
|
|
|
|
|
banner = `/blog/${entry.key}/${entry.post.banner}`;
|
|
|
|
|
}
|
2026-02-10 21:11:33 +01:00
|
|
|
|
2026-01-29 16:42:08 +01:00
|
|
|
return {
|
2026-01-31 16:35:17 +01:00
|
|
|
title: `${entry.post.title}`,
|
2026-02-12 11:56:13 +01:00
|
|
|
subtitle: `#${(posts.length - index).toString().padStart(2, '0')} // ${entry.post.date}, ${entry.post.time}`,
|
2026-01-31 20:24:26 +01:00
|
|
|
img: banner,
|
2026-01-31 16:35:17 +01:00
|
|
|
link: `/blog/${entry.key}/`,
|
|
|
|
|
imgAlt: `Preview image for ${entry.post.title}`,
|
2026-03-07 13:40:28 +01:00
|
|
|
description: entry.post.description,
|
2026-01-29 16:42:08 +01:00
|
|
|
};
|
|
|
|
|
}
|
2026-01-23 17:26:52 +01:00
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<svelte:head>
|
|
|
|
|
<title>Blog | denizk0461</title>
|
|
|
|
|
</svelte:head>
|
|
|
|
|
|
|
|
|
|
<Content>
|
|
|
|
|
<Banner2
|
2026-01-29 19:27:42 +01:00
|
|
|
title="Blog"
|
|
|
|
|
banner="robert.webp"
|
|
|
|
|
bannerAlt="View at a tram bridge rising and then curving to the left." />
|
2026-01-23 17:26:52 +01:00
|
|
|
|
2026-03-07 20:37:37 +01:00
|
|
|
<Gallery entries={entries} />
|
2026-01-23 17:26:52 +01:00
|
|
|
</Content>
|