From 261d89ebed13691e72312f44339063fee93130ac Mon Sep 17 00:00:00 2001 From: Joe Carstairs <65492573+Sycamost@users.noreply.github.com> Date: Sat, 30 Mar 2024 16:32:17 +0000 Subject: Astro initial commit --- src/pages/blog/[...slug].astro | 20 ++++++++++++++++++++ src/pages/blog/index.astro | 17 +++++++++++++++++ src/pages/error.astro | 14 ++++++++++++++ src/pages/index.astro | 11 +++++++++++ src/pages/rss.xml.js | 17 +++++++++++++++++ 5 files changed, 79 insertions(+) create mode 100644 src/pages/blog/[...slug].astro create mode 100644 src/pages/blog/index.astro create mode 100644 src/pages/error.astro create mode 100644 src/pages/index.astro create mode 100644 src/pages/rss.xml.js (limited to 'src/pages') diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro new file mode 100644 index 0000000..800c534 --- /dev/null +++ b/src/pages/blog/[...slug].astro @@ -0,0 +1,20 @@ +--- +import { type CollectionEntry, getCollection } from 'astro:content'; +import BlogPost from '../../layouts/BlogPost.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(); +--- + + + + \ No newline at end of file diff --git a/src/pages/blog/index.astro b/src/pages/blog/index.astro new file mode 100644 index 0000000..0c617bd --- /dev/null +++ b/src/pages/blog/index.astro @@ -0,0 +1,17 @@ +--- +import BaseHead from '../../components/BaseHead.astro'; +import { SITE_TITLE, SITE_DESCRIPTION } from '../../consts'; +import BlogFeed from '../../components/BlogFeed.astro'; +--- + + + + + + + +
+ +
+ + diff --git a/src/pages/error.astro b/src/pages/error.astro new file mode 100644 index 0000000..fc84122 --- /dev/null +++ b/src/pages/error.astro @@ -0,0 +1,14 @@ +--- +import Page from '../layouts/Page.astro'; +--- + + +
+

Got lost?

+ +

+ If you’re on this page, something’s probably gone wrong. Try going to + my homepage instead. +

+
+
diff --git a/src/pages/index.astro b/src/pages/index.astro new file mode 100644 index 0000000..74cf934 --- /dev/null +++ b/src/pages/index.astro @@ -0,0 +1,11 @@ +--- +import BlogFeed from '../components/BlogFeed.astro'; +import Me from '../components/Me.astro'; +import { SITE_TITLE, SITE_DESCRIPTION } from '../consts'; +import Page from '../layouts/Page.astro'; +--- + + + + + \ No newline at end of file diff --git a/src/pages/rss.xml.js b/src/pages/rss.xml.js new file mode 100644 index 0000000..79da596 --- /dev/null +++ b/src/pages/rss.xml.js @@ -0,0 +1,17 @@ +import rss from '@astrojs/rss'; +import { getCollection } from 'astro:content'; +import { SITE_TITLE, SITE_DESCRIPTION } from '../consts'; + +export async function GET(context) { + const posts = await getCollection('blog'); + return rss({ + title: SITE_TITLE, + description: SITE_DESCRIPTION, + site: context.site, + items: posts.map((post) => ({ + ...post.data, + link: `/blog/${post.slug}/`, + pubDate: new Date(post.data.pubDate.year, post.data.pubDate.month - 1, post.data.pubDate.day), + })), + }); +} -- cgit v1.2.3