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-03-31 12:56:57 +02:00
|
|
|
// import Gallery, { type GalleryEntry } from "$lib/lists/gallery.svelte";
|
2026-03-31 14:48:38 +02:00
|
|
|
import { BlogPostTag, posts, type BlogPostLink } from "./posts";
|
2026-03-31 12:56:57 +02:00
|
|
|
import BlogGallery from "$lib/lists/blog-gallery.svelte";
|
2026-03-31 14:48:38 +02:00
|
|
|
|
|
|
|
|
function selectFilter(tag: string) {
|
|
|
|
|
console.log(tag);
|
|
|
|
|
}
|
2026-01-29 16:42:08 +01:00
|
|
|
|
2026-03-31 12:56:57 +02:00
|
|
|
// let entries: GalleryEntry[] = posts.map(mapEntries);
|
2026-01-29 16:42:08 +01:00
|
|
|
|
2026-03-31 12:56:57 +02:00
|
|
|
// function mapEntries(entry: BlogPostLink, index: number): GalleryEntry {
|
|
|
|
|
// 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-03-31 12:56:57 +02:00
|
|
|
// return {
|
|
|
|
|
// title: `${entry.post.title}`,
|
|
|
|
|
// subtitle: `#${(posts.length - index).toString().padStart(2, '0')} // ${entry.post.date}, ${entry.post.time}`,
|
|
|
|
|
// img: banner,
|
|
|
|
|
// link: `/blog/${entry.key}/`,
|
|
|
|
|
// imgAlt: `Preview image for ${entry.post.title}`,
|
|
|
|
|
// description: entry.post.description,
|
|
|
|
|
// };
|
|
|
|
|
// }
|
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-31 14:48:38 +02:00
|
|
|
<!-- TODO descriptions on filter click -->
|
|
|
|
|
<div class="tag-filter-container">
|
|
|
|
|
{#each Object.values(BlogPostTag) as tag}
|
|
|
|
|
<button onclick={() => {
|
|
|
|
|
selectFilter(tag)
|
|
|
|
|
}} class="post-tag tag-filter">{tag}</button>
|
|
|
|
|
{/each}
|
|
|
|
|
</div>
|
|
|
|
|
|
2026-03-31 12:56:57 +02:00
|
|
|
<BlogGallery {posts} />
|
2026-03-31 14:48:38 +02:00
|
|
|
</Content>
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
.tag-filter-container {
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: 12px;
|
|
|
|
|
margin-bottom: 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.tag-filter {
|
|
|
|
|
width: fit-content;
|
|
|
|
|
font-size: 0.9rem;
|
|
|
|
|
color: var(--color-text);
|
|
|
|
|
padding: 8px;
|
|
|
|
|
border-radius: 12px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.tag-filter:hover {
|
|
|
|
|
background-color: aqua;
|
|
|
|
|
}
|
|
|
|
|
</style>
|