From e8f10187ee50838e96aef3a45a837cbdb6b96daa Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 21 Aug 2022 17:18:06 +0100 Subject: [PATCH] Update @sveltekit to next.405 --- .../{__layout.svelte => +layout.svelte} | 0 src/routes/{index.svelte => +page.svelte} | 4 - src/routes/+page.ts | 1 + .../{blog.json.ts => blog.json/+server.ts} | 23 ++-- src/routes/api/blog/[slug].json.ts | 20 ---- src/routes/api/blog/[slug].json/+server.ts | 14 +++ .../blog/{__error.svelte => +error.svelte} | 0 src/routes/{blog.svelte => blog/+page.svelte} | 100 ++++++------------ src/routes/blog/+page.ts | 36 +++++++ .../{[slug].svelte => [slug]/+page.svelte} | 31 +----- src/routes/blog/[slug]/+page.ts | 17 +++ src/routes/{mcc.svelte => mcc/+page.svelte} | 2 +- .../{payday.svelte => payday/+page.svelte} | 0 13 files changed, 116 insertions(+), 132 deletions(-) rename src/routes/{__layout.svelte => +layout.svelte} (100%) rename src/routes/{index.svelte => +page.svelte} (98%) create mode 100644 src/routes/+page.ts rename src/routes/api/{blog.json.ts => blog.json/+server.ts} (60%) delete mode 100644 src/routes/api/blog/[slug].json.ts create mode 100644 src/routes/api/blog/[slug].json/+server.ts rename src/routes/blog/{__error.svelte => +error.svelte} (100%) rename src/routes/{blog.svelte => blog/+page.svelte} (51%) create mode 100644 src/routes/blog/+page.ts rename src/routes/blog/{[slug].svelte => [slug]/+page.svelte} (70%) create mode 100644 src/routes/blog/[slug]/+page.ts rename src/routes/{mcc.svelte => mcc/+page.svelte} (99%) rename src/routes/{payday.svelte => payday/+page.svelte} (100%) diff --git a/src/routes/__layout.svelte b/src/routes/+layout.svelte similarity index 100% rename from src/routes/__layout.svelte rename to src/routes/+layout.svelte diff --git a/src/routes/index.svelte b/src/routes/+page.svelte similarity index 98% rename from src/routes/index.svelte rename to src/routes/+page.svelte index 8c563f2..8c61574 100644 --- a/src/routes/index.svelte +++ b/src/routes/+page.svelte @@ -1,7 +1,3 @@ - - - Blog | thomaswilson.xyz - - + + - - - - + + + + - - + + @@ -81,13 +49,11 @@ things.

- It's been + It's been {daysSinceLastPublish} - {daysSinceLastPublish === 1 ? 'day' : 'days'} since I last published something. On average I publish something every {averageDaysBetweenPosts} days ({numberOfPosts} posts in {daysSinceFirstPost} days). + {daysSinceLastPublish === 1 ? 'day' : 'days'} since I last published something. On average I publish + something every {averageDaysBetweenPosts} days ({numberOfPosts} posts in {daysSinceFirstPost} days).

diff --git a/src/routes/blog/+page.ts b/src/routes/blog/+page.ts new file mode 100644 index 0000000..21c5832 --- /dev/null +++ b/src/routes/blog/+page.ts @@ -0,0 +1,36 @@ +import type { LoadEvent, Load, Page } from '@sveltejs/kit'; +import { differenceInCalendarDays, intlFormat } from 'date-fns'; +export const prerender = true; + +type BlogPost = { + filename: string; + preview: string[]; + title: string; + slug: string; + date: Date; + book_review?: boolean; +}; + +export async function load({ fetch }: LoadEvent) { + const posts = await fetch('/api/blog.json') + .then((res) => res.json()) + .then((res) => res.posts); + + const mostRecentPost = posts[0]; + + const daysSinceLastPublish = differenceInCalendarDays(new Date(), new Date(mostRecentPost.date)); + + const numberOfPosts = posts.length; + const firstPost = posts[numberOfPosts - 1]; + const daysSinceFirstPost = differenceInCalendarDays(new Date(), new Date(firstPost.date)); + const averageDaysBetweenPosts = Number(daysSinceFirstPost / numberOfPosts).toFixed(2); + + return { + posts, + firstPost, + averageDaysBetweenPosts, + daysSinceFirstPost, + daysSinceLastPublish, + numberOfPosts + }; +} diff --git a/src/routes/blog/[slug].svelte b/src/routes/blog/[slug]/+page.svelte similarity index 70% rename from src/routes/blog/[slug].svelte rename to src/routes/blog/[slug]/+page.svelte index ce42a81..ba68848 100644 --- a/src/routes/blog/[slug].svelte +++ b/src/routes/blog/[slug]/+page.svelte @@ -1,34 +1,11 @@ - - diff --git a/src/routes/blog/[slug]/+page.ts b/src/routes/blog/[slug]/+page.ts new file mode 100644 index 0000000..b40a913 --- /dev/null +++ b/src/routes/blog/[slug]/+page.ts @@ -0,0 +1,17 @@ +import type { LoadEvent } from '@sveltejs/kit'; +import type { Post } from '$lib/Post'; + +export async function load({ params, fetch }: LoadEvent): Promise<{ post: Post; date: Date }> { + const { slug } = params; + const { post } = await fetch(`/api/blog/${slug}.json`) + .then((res) => res.json()) + .catch((error) => { + console.error(error); + return { post: null }; + }); + + return { + post, + date: new Date(post.date) + }; +} diff --git a/src/routes/mcc.svelte b/src/routes/mcc/+page.svelte similarity index 99% rename from src/routes/mcc.svelte rename to src/routes/mcc/+page.svelte index 9e8fd62..08f5e66 100644 --- a/src/routes/mcc.svelte +++ b/src/routes/mcc/+page.svelte @@ -1,6 +1,6 @@