From ff93427bc6e48544aea3f0dc5d02cdfffc491577 Mon Sep 17 00:00:00 2001 From: zeudev Date: Tue, 19 May 2026 16:21:11 -0700 Subject: [PATCH] fixes? --- astro.config.mjs | 23 ++++++++---------- bun.lockb | Bin 443274 -> 456663 bytes db/config.ts | 6 +++++ db/seed.ts | 6 +++++ netlify.toml | 5 ++++ package.json | 3 ++- src/components/BlogCard.astro | 2 +- src/content/config.ts | 9 +++++++ .../blog/{[...slug].astro => [...id].astro} | 5 ++-- src/pages/blog/index.astro | 2 ++ src/pages/open-source.astro | 4 +-- src/pages/resume.astro | 4 +-- 12 files changed, 48 insertions(+), 21 deletions(-) create mode 100644 db/config.ts create mode 100644 db/seed.ts create mode 100644 netlify.toml rename src/pages/blog/{[...slug].astro => [...id].astro} (89%) diff --git a/astro.config.mjs b/astro.config.mjs index 2414bff..ea869f4 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -8,21 +8,18 @@ import netlify from "@astrojs/netlify"; import og from "astro-og"; import authproto from "@fujocoded/authproto"; +import db from "@astrojs/db"; + // https://astro.build/config export default defineConfig({ - integrations: [ - svelte(), - mdx(), - icon(), - og(), - authproto({ - "applicationName": "Zeu's Personal Site", - "applicationDomain": "https://zeu.dev", - scopes: [ - "include:place.stream.authFull", - ] - }) - ], + integrations: [svelte(), mdx(), icon(), og(), db(), authproto({ + "applicationName": "Zeu's Personal Site", + "applicationDomain": "https://zeu.dev", + "driver": { name: "astro:db" }, + scopes: [ + "include:place.stream.authFull", + ] + })], server: { host: true }, output: "server", adapter: netlify(), diff --git a/bun.lockb b/bun.lockb index 21ec58fa479308cc10edb6e1c0668f3bfb014e56..31fefa401e32013cff81e994632de9fa7246b914 100755 GIT binary patch delta 55279 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
diff --git a/src/content/config.ts b/src/content/config.ts index 170e59d..f44c325 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -1,3 +1,4 @@ +import { glob } from "astro/loaders"; import { z, defineCollection } from "astro:content"; const blog_collection = defineCollection({ @@ -7,6 +8,10 @@ const blog_collection = defineCollection({ date: z.string(), draft: z.boolean(), link: z.string().optional() + }), + loader: glob({ + pattern: "*.md", + base: "./src/content/blog" }) }); @@ -14,6 +19,10 @@ const about_collection = defineCollection({ schema: z.object({ updated_at: z.string(), draft: z.boolean() + }), + loader: glob({ + pattern: "*.mdx", + base: "./src/content/about" }) }); diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...id].astro similarity index 89% rename from src/pages/blog/[...slug].astro rename to src/pages/blog/[...id].astro index 0967752..8517dce 100644 --- a/src/pages/blog/[...slug].astro +++ b/src/pages/blog/[...id].astro @@ -2,6 +2,7 @@ import type { GetStaticPaths } from "astro"; import { type CollectionEntry, getCollection } from "astro:content"; import SiteLayout from "../../components/SiteLayout.astro"; +import { render } from "astro:content"; export interface Props { blog : CollectionEntry<'blog'> @@ -12,13 +13,13 @@ export const getStaticPaths = (async () => { const blogs = await getCollection("blog"); return blogs.map((blog: CollectionEntry<"blog">) => { return { - params: { slug: blog.slug }, + params: { id: blog.id }, props: { blog } }}); }) satisfies GetStaticPaths; const { blog } = Astro.props; -const { Content } = await blog.render(); +const { Content } = await render(blog); --- diff --git a/src/pages/blog/index.astro b/src/pages/blog/index.astro index 82d1a73..cde6ab6 100644 --- a/src/pages/blog/index.astro +++ b/src/pages/blog/index.astro @@ -4,6 +4,8 @@ import BlogCard from "../../components/BlogCard.astro"; import SiteLayout from "../../components/SiteLayout.astro"; import type { CollectionEntry } from "astro:content"; +export const prerender = true; + const blogs = await getCollection("blog", (blog: CollectionEntry<"blog">) => { return blog.data.draft === false; }); diff --git a/src/pages/open-source.astro b/src/pages/open-source.astro index b8e2527..6902904 100644 --- a/src/pages/open-source.astro +++ b/src/pages/open-source.astro @@ -1,6 +1,6 @@ --- import SiteLayout from "../components/SiteLayout.astro"; -import { getEntry } from "astro:content"; +import { getEntry, render } from "astro:content"; export const prerender = true; @@ -8,7 +8,7 @@ const entry = await getEntry("about", "open-source"); if (!entry) { throw new Error("Could not find ../content/about/open-source.mdx"); } -const { Content } = await entry.render(); +const { Content } = await render(entry); --- diff --git a/src/pages/resume.astro b/src/pages/resume.astro index 2d2476e..2478bd1 100644 --- a/src/pages/resume.astro +++ b/src/pages/resume.astro @@ -1,6 +1,6 @@ --- import SiteLayout from "../components/SiteLayout.astro"; -import { getEntry } from "astro:content"; +import { getEntry, render } from "astro:content"; export const prerender = true; @@ -8,7 +8,7 @@ const entry = await getEntry("about", "resume"); if (!entry) { throw new Error("Could not find ../content/about/resume.mdx"); } -const { Content } = await entry.render(); +const { Content } = await render(entry); --- -- 2.51.2

U=Sqo7N4F`IX~+XXqBvmo+)Sy18wcb^p($9 zxa+Hf7#X-27#cE)*Zu#+zd92<(+V!2TZ15Z_=2fONaUR_?4aZZ8XGpk<1Ef#Mg~C! zhKA^Kfe)U(uCW5A90Smra;ad5X zMm0Q&cpa-D@HH6J5-`v+GiP963xnj0DLQ8i65Z3;5i$~C)9oTyCCv1~Ajz{cZlU4Z zUED}2+`ANy(fZILZ&ec5?)So?d^ItCV&>Jnu3xk1H+uK z=?5ZMjbxUEK~n3yiJ@zgb8kj~l7)eup`o6^-0KB?qwM#I~37dW)hE;;eB69i!km7xz(-*|DN-#|covxS2D#0`-a{4`xIK&Wydikj7 zI#H|=GN;2K4xDu8&`r?*!JFVU@8Gg&chvNRDAoq34Wg_@3=B{g$y7!|N_2BYhC>!2Ku3 zz@QKVNeg?Xn!BDAP-+LaI>5t05O0dg8!<3w#Xv0I5;SSui~J%`h6MGq3>eVNV_{&J z6FJ=^hSdn_1qmi-;7kvQWfh&iK8BT52CI#r`Uw=k;D9|BH@zm2RYK-&9HhYcxbj7y zK=2~SV5c#t5QhaVlIc<~E2p=_vI=p1iHA5Dssbj7J#~Pm+|bN~>0p|ZFx@7ORYGQc z0;JRq7rJc9WLcaDt{yBwLo|mIrWeGq!u`smm^gh&9IKHGmS8gi&xA2R>;i3Ug`}_P z3h}HgGIPQpaUuGDzuU%)8{5D(fM@&Clcqbwvr5R+Br$^P&%!GLZ#l$Sy`U;A7#I{2 zr}xFPN`UMJ(PkydkQ^)!bW%ete+gvg890=?k|Ckm8vMhR(bLWeTw{Sp(IGJ|Au~Az z(h0h$&vomT-#XB=q#3fi5k7_LV1lJm+({eiD!4H|L(|U$+A^UkNJjjToTO2hZ7zH>N*NVl`%}NS`i~%qk&;zLiseu|J)W!IFWY zVS2(u7OCkO$*fXb4!w|5-yZZ$?@49_?LlW?V3>YBnbnZ-(R9WXR(r-r+Z|I_^%=PY zK!+4CFfizUpI(*98p4#4wEbu*>$`2+_sOu8O`87gEUV1)a|hWt%u|x|b@fw{bPd3p zS@lZNs~nPZ5|gv_3ySh{3rdO|AZ;K0HZ3QyC{@2azbHGks2Jj1hx`KF)V%b} zywud9%)E5{`~r}JGE1fxu4I)7M|HTqF3dgyJx~i69DuM$%`ZxYsm>@$%uCdTL~~ZL zZc<`#s+kEW5o8vp>gHtTW=>ap#400?EK;Jc3r;356(zbx(;psSQ?7>^ud5GX=t7!& zV4FdH)h#O4&&f|rfmxlBSX7>wr(0oWf+mt!l#39{$;>OQ04dT<&ntx~LE$U31y z$l9O*kMM$-3CMgjUFmtH$eMJacA*BIzAjp5V$%ZgTLsi5aBE-!$Xc|awji{m=ar)9 zKywxwM8kCc!>sZwpsoWrV4$MYTG*r^f{He5O2YYhu(Sm-F+VXy*I>Hg3s&XnZ|hiP zrhiIcQ<8+IZGByRI9u0P&wTpFOg2R)SPUa)2Yp?AWUelxzX(pw5Vz@P7U$>Y7Zqe= zChL|@-`K$_YlcOlSYH=KVKK-cJyWnb;8IKYjXg&qN+A!;#|0(Dx`uk7(T|e!s))LA2 zMc_h51i^<}W;oq&JDc+K^DbWxJ$YudC2_Xgc0-Bj#t{v76AYYsmP}Q delta 46891 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 U`YB1<_1xIXCT(wg%oZjB0LO{yZU6uP diff --git a/db/config.ts b/db/config.ts new file mode 100644 index 0000000..0932e2a --- /dev/null +++ b/db/config.ts @@ -0,0 +1,6 @@ +import { defineDb } from 'astro:db'; + +// https://astro.build/db/config +export default defineDb({ + tables: {} +}); diff --git a/db/seed.ts b/db/seed.ts new file mode 100644 index 0000000..fffc464 --- /dev/null +++ b/db/seed.ts @@ -0,0 +1,6 @@ +import { db } from 'astro:db'; + +// https://astro.build/db/seed +export default async function seed() { + // TODO +} diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 0000000..b970e45 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,5 @@ +[build] + publish = "dist" + +[build.environment] + ASTRO_DATABASE_FILE = "file:.astro/content.db" diff --git a/package.json b/package.json index 4b763ea..59be6a9 100644 --- a/package.json +++ b/package.json @@ -5,12 +5,13 @@ "scripts": { "dev": "astro dev --host 127.0.0.1", "start": "astro dev", - "build": "astro check && astro build", + "build": "ASTRO_DATABASE_FILE=file:.astro/content.db astro check && ASTRO_DATABASE_FILE=file:.astro/content.db astro build", "preview": "astro preview", "astro": "astro" }, "dependencies": { "@astrojs/check": "0.9.6", + "@astrojs/db": "^0.21.2", "@astrojs/mdx": "4.3.12", "@astrojs/netlify": "6.6.3", "@astrojs/svelte": "7.2.2", diff --git a/src/components/BlogCard.astro b/src/components/BlogCard.astro index 6a63b7b..6861036 100644 --- a/src/components/BlogCard.astro +++ b/src/components/BlogCard.astro @@ -8,7 +8,7 @@ export interface Props { const { blog } = Astro.props; --- - +