35 lines
1.0 KiB
Plaintext
35 lines
1.0 KiB
Plaintext
---
|
|
import { getCollection } from "astro:content";
|
|
import type {
|
|
CollectionEntry,
|
|
CollectionKey,
|
|
ContentEntryMap,
|
|
} 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 = "note";
|
|
const blogEntries = await getCollection(collectionName);
|
|
return blogEntries.map((entry) => ({
|
|
params: { note: entry.slug },
|
|
props: { entry },
|
|
}));
|
|
}
|
|
|
|
interface Props {
|
|
entry: CollectionEntry<keyof ContentEntryMap>;
|
|
}
|
|
const { entry } = Astro.props;
|
|
|
|
const articlePrettyName: string = entry.id.split("/").pop()!.replace(".md", "");
|
|
---
|
|
|
|
<DefaultLayout title=`${articlePrettyName} - 李守中`>
|
|
<Nav />
|
|
<ArticleBodyWrapper collectionName="note" articleSlug={entry.slug} />
|
|
<Footer />
|
|
</DefaultLayout>
|