Files
blog/src/pages/[...blog]/[slug].astro
2022-09-11 12:51:42 -04:00

40 lines
972 B
Plaintext

---
import { SITE, BLOG } from '~/config.mjs';
import Layout from '~/layouts/PageLayout.astro';
import SinglePost from '~/components/blog/SinglePost.astro';
import { getCanonical, getPermalink, cleanSlug, POST_BASE } from '~/utils/permalinks';
import { fetchPosts } from '~/utils/posts';
import { findImage } from '~/utils/images';
export async function getStaticPaths() {
if (BLOG?.disabled || BLOG?.post?.disabled) return [];
const posts = await fetchPosts();
return posts.map((post) => ({
params: {
slug: cleanSlug(post.slug),
blog: POST_BASE || undefined,
},
props: { post },
}));
}
const { post } = Astro.props;
const meta = {
title: `${post.title} — ${SITE.name}`,
description: post.description,
canonical: post.canonical || getCanonical(getPermalink(post.slug, 'post')),
image: await findImage(post.image),
ogTitle: post.title,
ogType: "article"
};
---
<Layout {meta}>
<SinglePost post={{ ...post, image: meta.image }} />
</Layout>