Shallie/src/routes/[tag]/[slug]/+page.svelte

78 lines
2.4 KiB
Svelte
Raw Normal View History

2022-07-23 20:52:23 +00:00
<script lang="ts">
import dayjs from 'dayjs';
import Hero from '@damillora/plachta/components/Hero/Hero.svelte';
import PostHeader from '@damillora/plachta/components/Post/PostHeader.svelte';
import Post from '@damillora/plachta/components/PageTypes/Post.svelte';
import PostMain from '@damillora/plachta/components/Post/PostMain.svelte';
import PostNavigator from '@damillora/plachta/components/Post/PostNavigator.svelte';
import Container from '@damillora/plachta/components/Container/Container.svelte';
import PostRelated from '@damillora/plachta/components/Post/PostRelated.svelte';
import PostCard from '@damillora/plachta/components/PostCard/PostCard.svelte';
2022-07-23 22:50:08 +00:00
import GhostStyle from '@damillora/plachta/components/Base/GhostStyle.svelte';
import { processPostHtml } from '$lib/content/postProcessor';
2022-07-23 22:50:08 +00:00
2022-07-23 20:52:23 +00:00
import type { Load } from '@sveltejs/kit';
2022-07-23 22:35:23 +00:00
import {
browseNextPost,
browsePrevPost,
browseRelatedPost,
readPost
} from '$lib/content/contentApi';
2022-12-17 11:07:39 +00:00
import { browser } from '$app/environment';
2022-07-23 22:04:56 +00:00
import PostSeo from '$lib/components/SEO/PostSEO.svelte';
2022-07-23 22:35:23 +00:00
import { onMount } from 'svelte';
2022-07-23 23:21:11 +00:00
import { afterNavigate } from '$app/navigation';
import ResponsiveHero from '$lib/components/ResponsiveHero.svelte';
2022-07-23 20:52:23 +00:00
2022-12-17 11:07:39 +00:00
export let data;
2022-07-23 20:52:23 +00:00
</script>
<svelte:head>
2022-12-17 11:07:39 +00:00
<title>{data.post.title}</title>
2022-07-23 20:52:23 +00:00
</svelte:head>
2022-12-17 11:07:39 +00:00
<PostSeo post={data.post} />
2022-12-17 11:07:39 +00:00
<ResponsiveHero background={data.post.feature_image} />
2022-07-23 20:52:23 +00:00
<Container>
<Post>
<PostHeader
2022-12-17 11:07:39 +00:00
title={data.post.title}
authors={data.post.authors}
primary_tag={data.post.primary_tag}
date={dayjs(data.post.published_at).format('DD MMM YYYY')}
reading_time={`${data.post.reading_time} min read`}
2022-07-23 20:52:23 +00:00
/>
<PostMain>
2022-07-23 22:50:08 +00:00
<GhostStyle>
2022-12-17 11:07:39 +00:00
{@html data.post.html}
2022-08-08 05:24:59 +00:00
<br/>
2022-07-23 22:50:08 +00:00
</GhostStyle>
2022-07-23 20:52:23 +00:00
<svelte:fragment slot="comments" />
</PostMain>
2022-12-17 11:07:39 +00:00
<PostNavigator prev_post={data.prevPost} next_post={data.nextPost} />
2022-07-23 20:52:23 +00:00
</Post>
2022-07-23 22:50:08 +00:00
<PostRelated
2022-12-17 11:07:39 +00:00
name={data.post.primary_tag.name}
url={data.post.primary_tag.url}
accent_color={data.post.primary_tag.accent_color}
2022-07-23 22:50:08 +00:00
>
2022-12-17 11:07:39 +00:00
{#each data.relatedPost as post}
2022-07-23 22:35:23 +00:00
<PostCard
title={post.title}
authors={post.authors}
primary_tag={post.primary_tag}
date={dayjs(post.published_at).format('DD MMM YYYY')}
reading_time={`${post.reading_time} min read`}
excerpt={post.excerpt}
feature_image={post.feature_image ?? '/images/default-feature.jpg'}
url={post.url}
/>
{/each}
2022-07-23 20:52:23 +00:00
</PostRelated>
</Container>