From f12810a4242f3542e6c4020b93f2f21af1b5920c Mon Sep 17 00:00:00 2001 From: haetae Date: Wed, 3 Sep 2025 03:24:55 -0400 Subject: [PATCH] add shippy and restructure index page --- shippy.config.ts | 9 + src/actions/guestbook.ts | 14 +- src/assets/acnl-bulletin.png | Bin 31484 -> 0 bytes src/assets/guild-bbs-bottom.png | Bin 0 -> 483 bytes src/assets/guild-bbs-header.png | Bin 0 -> 1443 bytes src/assets/guild-bbs.png | Bin 699 -> 715 bytes src/components/ChapterContent.astro | 8 +- src/components/Entries.astro | 1 + src/components/Navbar.astro | 3 +- src/components/Scrobbler.astro | 7 + src/components/Updates.astro | 244 ++++++++++++++++++++++++++++ src/layouts/About.astro | 3 - src/layouts/Blog.astro | 2 - src/layouts/Layout.astro | 2 + src/pages/fics/[ficId]/index.astro | 7 +- src/pages/guestbook/index.astro | 5 +- src/pages/index.astro | 220 ++++++++++--------------- 17 files changed, 369 insertions(+), 156 deletions(-) create mode 100644 shippy.config.ts delete mode 100644 src/assets/acnl-bulletin.png create mode 100644 src/assets/guild-bbs-bottom.png create mode 100644 src/assets/guild-bbs-header.png create mode 100644 src/components/Scrobbler.astro create mode 100644 src/components/Updates.astro diff --git a/shippy.config.ts b/shippy.config.ts new file mode 100644 index 0000000..12e2eba --- /dev/null +++ b/shippy.config.ts @@ -0,0 +1,9 @@ +export default { + host: { + host: "137.184.37.162", + username: "haetae", + remoteProjectPath: "/var/www/fujohost/haetae/", + remoteDbPath: "/var/www/fujohost/haetae/guestbook.db", + dbDriver: "astro:db" + } +}; \ No newline at end of file diff --git a/src/actions/guestbook.ts b/src/actions/guestbook.ts index e5bbc2f..4ee5d37 100644 --- a/src/actions/guestbook.ts +++ b/src/actions/guestbook.ts @@ -7,11 +7,19 @@ export const guestbook = { addEntry: defineAction({ accept: "form", input: z.object({ - username: z.string().min(1, "You should have a name!"), + username: z.string().nonempty("You should have a name!"), website: z.string().url().optional(), - message: z.string().min(1, "Can't be that short..."), + message: z.string().nonempty("Can't be that short..."), + challenge: z.string().nonempty("Can't be empty!"), }), - handler: async ({ username, website, message }) => { + handler: async ({ username, website, message, challenge }) => { + if (challenge !== "haetae") { + throw new ActionError({ + code: "UNAUTHORIZED", + message: "Check the challenge question again!", + }); + } + const addLine = message.replaceAll(/\r?\n/g, "
"); const sanitized = DOMPurify.sanitize(addLine); diff --git a/src/assets/acnl-bulletin.png b/src/assets/acnl-bulletin.png deleted file mode 100644 index 0ef22db9439dd152e9679e8777e781851e4af3e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31484 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 diff --git a/src/assets/guild-bbs-bottom.png b/src/assets/guild-bbs-bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..8f7be2087698b3b5355901f547be3625c5a085b2 GIT binary patch literal 483 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 +

Author's Notes:

)} @@ -39,12 +40,9 @@ const { notes, lastModified }: Props = Astro.props; margin: 1rem; font-size: calc(35px / 2); - &::before { - display: block; - content: "Author’s Notes:"; - font-weight: bold; + .author-note { line-height: 1; - alt: "Author's Notes:"; + font-weight: bold; } } diff --git a/src/components/Entries.astro b/src/components/Entries.astro index 25312ac..db5e82c 100644 --- a/src/components/Entries.astro +++ b/src/components/Entries.astro @@ -44,6 +44,7 @@ const entries = await db.select().from(Guestbook).orderBy(desc(Guestbook.publish } ))} + {entries.length === 0 && (

Huh...

diff --git a/src/components/Navbar.astro b/src/components/Navbar.astro index a976002..ecf2738 100644 --- a/src/components/Navbar.astro +++ b/src/components/Navbar.astro @@ -17,7 +17,7 @@ const links = [ ))} - + \ No newline at end of file diff --git a/src/components/Scrobbler.astro b/src/components/Scrobbler.astro new file mode 100644 index 0000000..8aa7ad3 --- /dev/null +++ b/src/components/Scrobbler.astro @@ -0,0 +1,7 @@ +--- +const api_key = ""; +const username = ""; +const url = ""; +--- + +🗘 \ No newline at end of file diff --git a/src/components/Updates.astro b/src/components/Updates.astro new file mode 100644 index 0000000..82bad71 --- /dev/null +++ b/src/components/Updates.astro @@ -0,0 +1,244 @@ +
+
+

Updates

+
+ +
+
+ + \ No newline at end of file diff --git a/src/layouts/About.astro b/src/layouts/About.astro index 68980b7..d9a03b7 100644 --- a/src/layouts/About.astro +++ b/src/layouts/About.astro @@ -2,7 +2,6 @@ import type { MarkdownLayoutProps } from "astro"; import { Font } from "astro:assets"; import Layout from "./Layout.astro"; -import Navbar from "~/Navbar.astro"; import Figure from "~/Figure.astro"; import border from "$/pmd-border.png"; @@ -20,8 +19,6 @@ const { frontmatter } = Astro.props; - -
{frontmatter.avatar && frontmatter.avatarText && (
diff --git a/src/layouts/Blog.astro b/src/layouts/Blog.astro index 8882230..39a904d 100644 --- a/src/layouts/Blog.astro +++ b/src/layouts/Blog.astro @@ -2,7 +2,6 @@ import { Font, Image } from "astro:assets"; import { getCollection } from "astro:content"; import Layout from "./Layout.astro"; -import Navbar from "~/Navbar.astro"; import formatDate from "@/utils/formatDate"; import moods from "@/utils/moods"; @@ -29,7 +28,6 @@ blog.sort((a, b) => b.data.pubDate!.valueOf() - a.data.pubDate!.valueOf()); -
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index 7ea6749..63a86ea 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -2,6 +2,7 @@ import { Font } from "astro:assets"; import "$/styles/base.css"; import "$/styles/themes.css"; +import Navbar from "~/Navbar.astro"; interface Props { title?: string; } @@ -25,6 +26,7 @@ const { title = "haetae" }: Props = Astro.props; + \ No newline at end of file diff --git a/src/pages/fics/[ficId]/index.astro b/src/pages/fics/[ficId]/index.astro index 9104de8..665605b 100644 --- a/src/pages/fics/[ficId]/index.astro +++ b/src/pages/fics/[ficId]/index.astro @@ -59,14 +59,14 @@ const notes = fic.rendered && await parser.parse((fic.rendered.metadata!.frontma - {chapters && ( + {chapters.length > 0 && (

chapters

    {chapters.map(chapter => ( @@ -75,6 +75,7 @@ const notes = fic.rendered && await parser.parse((fic.rendered.metadata!.frontma
)} + {fic.body && (
diff --git a/src/pages/guestbook/index.astro b/src/pages/guestbook/index.astro index 4c4bd0b..9c1e245 100644 --- a/src/pages/guestbook/index.astro +++ b/src/pages/guestbook/index.astro @@ -30,8 +30,9 @@ const inputErrors = isInputError(result?.error) ? result.error.fields : {}; {inputErrors.website &&

{inputErrors.website}

} - + + + {inputErrors.challenge &&

{inputErrors.challenge}

} diff --git a/src/pages/index.astro b/src/pages/index.astro index b5e8210..12e215e 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,11 +1,13 @@ --- import { Font } from 'astro:assets'; import Layout from '@/layouts/Layout.astro'; -import Navbar from '~/Navbar.astro'; +import Updates from '~/Updates.astro'; import outerBBS from "$/guild-bbs.png"; import innerBBS from "$/guild-bbs-content.png"; import sideBBS from "$/guild-bbs-list.png"; +import headerBBS from "$/guild-bbs-header.png"; +import bottomBBS from "$/guild-bbs-bottom.png"; import buttons from "$/guild-bbs-buttons.png"; --- @@ -13,59 +15,59 @@ import buttons from "$/guild-bbs-buttons.png"; + + + + -
-
-
-

update title

- -
-

some stuff happened

-
-
- - -
-
-
+

welcome!

-
- this is +
+

waddup

+
+ hi +
+ +
-

stuff!

-

i keep a bunch of links here, including the webrings i've joined and some badges i like

-
- +
+

stuff!

+

i keep a bunch of links here, including the webrings i've joined and some badges i like

+
+ +
+ +
+ +
- \ No newline at end of file