added structure for blog posts

This commit is contained in:
2026-01-05 12:35:16 +00:00
parent 022c1eeeae
commit bd68821ca6
7 changed files with 83 additions and 1 deletions

View File

@@ -4,7 +4,7 @@
</a> </a>
<a href="/projects">Projects</a> <a href="/projects">Projects</a>
<a href="/projects/projectn5/devlog">Project N5</a> <a href="/projects/projectn5/devlog">Project N5</a>
<a href="/">Blog</a> <a href="/blog">Blog</a>
<a href="/about">About</a> <a href="/about">About</a>
{/snippet} {/snippet}

View File

@@ -0,0 +1 @@
<!-- <a href="2026/0105/portsmouth">port</a> -->

View File

@@ -0,0 +1,3 @@
test
## Test
working?

View File

@@ -0,0 +1,27 @@
<script>
import BannerTitleAlt from "$lib/banner-title-alt.svelte";
import Content from "$lib/content.svelte";
import TableOfContents from "$lib/table-of-contents.svelte";
export let data;
</script>
<svelte:head>
<title>{data.title} | denizk0461</title>
<meta name="description" content="{data.description}">
</svelte:head>
<BannerTitleAlt
title="{data.title}"
date="{data.date}"
banner="preview.webp"
bannerAlt="{""/*data.bannerAlt*/}"
/>
<Content useContentWidth>
<TableOfContents disableStickyScrolling />
<svelte:component this={data.content} />
</Content>

View File

@@ -0,0 +1,22 @@
import { posts, type BlogPostDetails } from '../../posts';
export async function load({ params }) {
const post = await import(`../../${params.year}/${params.date}.md`);
const tag: string = `${params.year}/${params.date}`;
const postValues = posts.get(tag);
const content = post.default;
const title: string = postValues?.fullTitle ?? "";
const date: string = postValues?.date ?? "";
// const bannerAlt: string = postValues?.bannerAlt ?? "";
const description: string = postValues?.description ?? "";
return {
content,
title,
date,
tag,
// bannerAlt,
description,
};
}

29
src/routes/blog/posts.ts Normal file
View File

@@ -0,0 +1,29 @@
export interface BlogPostDetails {
date: string;
/**
* Short title to be used in URL.
*/
shortTitle: string;
fullTitle: string;
/**
* Description to be used in page's metadata.
*/
description: string;
}
export const posts = new Map<string, BlogPostDetails>([
["2026/0105", {
date: "2026-01-05",
shortTitle: "portsmouth",
fullTitle: "Portsmouth Postmortem",
description: "",
}],
]);
// export function getDate(post: BlogPostDetails): string {
// var s = [post.year, post.date.split()].join("");
// s.
// return "";
// }

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB