diff options
| author | Dawid Rycerz <dawid@rycerz.xyz> | 2025-07-03 13:09:53 +0300 |
|---|---|---|
| committer | Dawid Rycerz <dawid@rycerz.xyz> | 2025-07-03 13:09:53 +0300 |
| commit | 1e5f5a953588cefa75396454c9aed0a79552db14 (patch) | |
| tree | 733c5bcf71f009acc0bacfbc2269404330c82b5d /src/pages/notes | |
| parent | 0bedb68753e7202326383fd10f7af563d7fbc24a (diff) | |
Migrate notes to micro
Diffstat (limited to 'src/pages/notes')
| -rw-r--r-- | src/pages/notes/[...page].astro | 63 | ||||
| -rw-r--r-- | src/pages/notes/[...slug].astro | 31 | ||||
| -rw-r--r-- | src/pages/notes/rss.xml.ts | 18 |
3 files changed, 0 insertions, 112 deletions
diff --git a/src/pages/notes/[...page].astro b/src/pages/notes/[...page].astro deleted file mode 100644 index fdc5af9..0000000 --- a/src/pages/notes/[...page].astro +++ /dev/null @@ -1,63 +0,0 @@ ---- -import { type CollectionEntry, getCollection } from "astro:content"; -import Pagination from "@/components/Paginator.astro"; -import Note from "@/components/note/Note.astro"; -import PageLayout from "@/layouts/Base.astro"; -import { collectionDateSort } from "@/utils/date"; -import type { GetStaticPaths, Page } from "astro"; -import { Icon } from "astro-icon/components"; - -export const getStaticPaths = (async ({ paginate }) => { - const MAX_NOTES_PER_PAGE = 10; - const allNotes = await getCollection("note"); - return paginate(allNotes.sort(collectionDateSort), { pageSize: MAX_NOTES_PER_PAGE }); -}) satisfies GetStaticPaths; - -interface Props { - page: Page<CollectionEntry<"note">>; - uniqueTags: string[]; -} - -const { page } = Astro.props; - -const meta = { - description: "Read my collection of notes", - title: "Notes", -}; - -const paginationProps = { - ...(page.url.prev && { - prevUrl: { - text: "← Previous Page", - url: page.url.prev, - }, - }), - ...(page.url.next && { - nextUrl: { - text: "Next Page →", - url: page.url.next, - }, - }), -}; ---- - -<PageLayout meta={meta}> - <section> - <h1 class="title mb-6 flex items-center gap-3"> - Notes <a class="text-accent" href="/notes/rss.xml" target="_blank"> - <span class="sr-only">RSS feed</span> - <Icon aria-hidden="true" class="h-6 w-6" focusable="false" name="mdi:rss" /> - </a> - </h1> - <ul class="mt-6 space-y-8 text-start"> - { - page.data.map((note) => ( - <li class=""> - <Note note={note} as="h2" isPreview /> - </li> - )) - } - </ul> - <Pagination {...paginationProps} /> - </section> -</PageLayout> diff --git a/src/pages/notes/[...slug].astro b/src/pages/notes/[...slug].astro deleted file mode 100644 index 2ce847d..0000000 --- a/src/pages/notes/[...slug].astro +++ /dev/null @@ -1,31 +0,0 @@ ---- -import { getCollection } from "astro:content"; - -import Note from "@/components/note/Note.astro"; -import PageLayout from "@/layouts/Base.astro"; -import type { GetStaticPaths, InferGetStaticPropsType } from "astro"; - -// if you're using an adaptor in SSR mode, getStaticPaths wont work -> https://docs.astro.build/en/guides/routing/#modifying-the-slug-example-for-ssr -export const getStaticPaths = (async () => { - const allNotes = await getCollection("note"); - return allNotes.map((note) => ({ - params: { slug: note.id }, - props: { note }, - })); -}) satisfies GetStaticPaths; - -export type Props = InferGetStaticPropsType<typeof getStaticPaths>; - -const { note } = Astro.props; - -const meta = { - description: - note.data.description || - `Read about my note posted on: ${note.data.publishDate.toLocaleDateString()}`, - title: note.data.title, -}; ---- - -<PageLayout meta={meta}> - <Note as="h1" note={note} /> -</PageLayout> diff --git a/src/pages/notes/rss.xml.ts b/src/pages/notes/rss.xml.ts deleted file mode 100644 index 0f1f945..0000000 --- a/src/pages/notes/rss.xml.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { getCollection } from "astro:content"; -import { siteConfig } from "@/site.config"; -import rss from "@astrojs/rss"; - -export const GET = async () => { - const notes = await getCollection("note"); - - return rss({ - title: siteConfig.title, - description: siteConfig.description, - site: import.meta.env.SITE, - items: notes.map((note) => ({ - title: note.data.title, - pubDate: note.data.publishDate, - link: `notes/${note.id}/`, - })), - }); -}; |
