diff options
Diffstat (limited to 'src/pages')
-rw-r--r-- | src/pages/blog/[...slug].astro | 20 | ||||
-rw-r--r-- | src/pages/index.astro | 18 |
2 files changed, 38 insertions, 0 deletions
diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro new file mode 100644 index 0000000..c94fe52 --- /dev/null +++ b/src/pages/blog/[...slug].astro @@ -0,0 +1,20 @@ +--- +import { type CollectionEntry, getCollection } from "astro:content"; +import Layout from "../../layouts/PostLayout.astro"; + +export async function getStaticPaths() { + const posts = await getCollection("blog"); + return posts.map((post) => ({ + params: { slug: post.slug }, + props: post, + })); +} +type Props = CollectionEntry<"blog">; + +const post = Astro.props; +const { Content } = await post.render(); +--- + +<Layout> + <Content /> +</Layout> diff --git a/src/pages/index.astro b/src/pages/index.astro new file mode 100644 index 0000000..bc98c67 --- /dev/null +++ b/src/pages/index.astro @@ -0,0 +1,18 @@ +--- +import Layout from "../layouts/PageLayout.astro"; +import { getCollection } from "astro:content"; + +const posts = await getCollection("blog"); +--- + +<Layout> + <ul> + { + posts.map((post) => ( + <li> + <a href={`/blog/${post.slug}`}>{post.data.title}</a> + </li> + )) + } + </ul> +</Layout> |