32 lines
1.0 KiB
Plaintext
32 lines
1.0 KiB
Plaintext
---
|
|
import { getCollection } from "astro:content";
|
|
import type { CollectionEntry, CollectionKey } from "astro:content";
|
|
import Footer from "../../../components/Footer.astro";
|
|
import Nav from "../../../components/Nav.astro";
|
|
import ArticleBodyWrapper from "../../../components/article/article_body/ArticleBodyWrapper.astro";
|
|
import DefaultLayout from "../../../layouts/DefaultLayout.astro";
|
|
|
|
export async function getStaticPaths() {
|
|
const collectionName: CollectionKey = "blog";
|
|
const blogEntries = await getCollection(collectionName);
|
|
return blogEntries.map((post: CollectionEntry<CollectionKey>) => ({
|
|
// Hide .md extension from URL
|
|
params: { blog: post.id.replace(".md", "") },
|
|
props: { post },
|
|
}));
|
|
}
|
|
|
|
interface Props {
|
|
post: CollectionEntry<CollectionKey>;
|
|
}
|
|
const { post } = Astro.props;
|
|
|
|
const articlePrettyName: string = post.data.title;
|
|
---
|
|
|
|
<DefaultLayout title=`${articlePrettyName} - 李守中`>
|
|
<Nav />
|
|
<ArticleBodyWrapper collectionName="blog" articleId={post.id} />
|
|
<Footer />
|
|
</DefaultLayout>
|