From 828cba41bd87a6535ee7c64ac7b98fb475a8dffb Mon Sep 17 00:00:00 2001 From: Ivan Kuzmenko <6745157+rndtrash@users.noreply.github.com> Date: Sun, 16 Nov 2025 11:31:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=BA=D1=82=D1=83=D0=B0=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D1=81=D0=BE=D0=B1=D1=8B=D1=82=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B2=D1=8B=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B?= =?UTF-8?q?=20=D0=B2=D0=BF=D0=B5=D1=80=D1=91=D0=B4=20=D1=81=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/components/BlogCard.svelte | 2 +- src/lib/util/Blogs.ts | 3 +-- src/routes/+page.svelte | 23 +++++++++++++++---- src/routes/blog/+page.server.ts | 2 +- src/routes/blog/+page.svelte | 37 ++++++++++++++++++++++++++---- 5 files changed, 55 insertions(+), 12 deletions(-) diff --git a/src/lib/components/BlogCard.svelte b/src/lib/components/BlogCard.svelte index 25bf97d..aa704c9 100644 --- a/src/lib/components/BlogCard.svelte +++ b/src/lib/components/BlogCard.svelte @@ -22,7 +22,7 @@ post, size = BlogCardSize.Both, fullHeight = false - }: { post: App.BlogPost; size: BlogCardSize; fullHeight: boolean } = $props(); + }: { post: App.BlogPost; size?: BlogCardSize; fullHeight?: boolean } = $props(); const type: App.BlogPostType = post.type ?? 'article'; let isPostNew = $state(false); diff --git a/src/lib/util/Blogs.ts b/src/lib/util/Blogs.ts index 3b193dc..223ca87 100644 --- a/src/lib/util/Blogs.ts +++ b/src/lib/util/Blogs.ts @@ -31,6 +31,7 @@ export function postEventStatus(post: App.BlogPost): EventStatus { export type PostComparer = (a: App.BlogPost, b: App.BlogPost) => number; export const sortPostsByPostDate: PostComparer = (a, b) => new Date(b.date!).valueOf() - new Date(a.date!).valueOf(); +export const sortPostsByPostAndUpdateDate: PostComparer = (a, b) => laterDate(b.date!, b.dateChanged) - laterDate(a.date!, a.dateChanged); function laterDate(a: string, ...dates: (string | undefined)[]): number { const dateA = new Date(a).valueOf(); @@ -45,8 +46,6 @@ function laterDate(a: string, ...dates: (string | undefined)[]): number { return max; } -export const sortPostsByPostAndUpdateDate: PostComparer = (a, b) => laterDate(b.date!, b.dateChanged) - laterDate(a.date!, a.dateChanged); - export async function fetchPostsSorted(postComparer?: PostComparer) { const allPosts = await fetchPosts(); diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index e617887..f6024d4 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,11 +1,24 @@ @@ -88,9 +101,11 @@

ПОСЛЕДНИЕ ПОСТЫ

- {#each page.data.posts as post, i} + {#each posts as post, i}
- + {#key post} + + {/key}
{/each}
diff --git a/src/routes/blog/+page.server.ts b/src/routes/blog/+page.server.ts index c5653b5..916e748 100644 --- a/src/routes/blog/+page.server.ts +++ b/src/routes/blog/+page.server.ts @@ -1,4 +1,4 @@ -import { fetchPostsSorted } from "$src/lib/util/Blogs"; +import { fetchPostsSorted } from "$lib/util/Blogs"; export async function load() { return { title: "Блог", description: "Новости и заметки проектов Tea Sanctuary", posts: await fetchPostsSorted() }; diff --git a/src/routes/blog/+page.svelte b/src/routes/blog/+page.svelte index da243da..3eed89a 100644 --- a/src/routes/blog/+page.svelte +++ b/src/routes/blog/+page.svelte @@ -1,8 +1,10 @@
@@ -39,6 +54,20 @@ пропускать новые посты! +{#if !!eventPosts && eventPosts.length > 0} +
+

АКТУАЛЬНЫЕ СОБЫТИЯ

+ +
+ {#each eventPosts as post, i} +
+ +
+ {/each} +
+
+{/if} +
{#each groupedPosts.entries() as [monthYear, postsInMonthYear]}

{/each} -

\ No newline at end of file +