From 6c3be911327fee46654edd2f394201171739847b Mon Sep 17 00:00:00 2001 From: Bradley Reynolds Date: Sat, 17 Jan 2026 07:53:43 +0000 Subject: [PATCH] Mom look what I did! Signed-off-by: Bradley Reynolds --- astro.config.mjs | 18 +---- src/components/Footer.astro | 26 +++++++ src/components/Header.astro | 132 +++++++++++++++++++++++++++++++++++ src/constants.ts | 10 +++ src/env.d.ts | 5 -- src/images/headshot.jpg | Bin 0 -> 25766 bytes src/layouts/BaseLayout.astro | 20 ++++++ src/pages/index.astro | 123 +++++++++++++++++++++----------- src/pages/now.astro | 16 +++++ src/pages/posts/post-1.md | 27 +++++++ src/styles/global.css | 52 ++++++++++++++ 11 files changed, 365 insertions(+), 64 deletions(-) create mode 100644 src/components/Footer.astro create mode 100644 src/components/Header.astro delete mode 100644 src/env.d.ts create mode 100644 src/images/headshot.jpg create mode 100644 src/layouts/BaseLayout.astro create mode 100644 src/pages/now.astro create mode 100644 src/pages/posts/post-1.md create mode 100644 src/styles/global.css diff --git a/astro.config.mjs b/astro.config.mjs index 70a49a0..4840250 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,20 +1,4 @@ -import { execSync } from "node:child_process"; import { defineConfig } from "astro/config"; -// Get Git commit hash at build time -const getGitCommitHash = () => { - try { - return execSync("git rev-parse HEAD", { encoding: "utf-8" }).trim(); - } catch (error) { - return "unknown"; - } -}; - // https://astro.build/config -export default defineConfig({ - vite: { - define: { - __GIT_COMMIT_HASH__: JSON.stringify(getGitCommitHash()), - }, - }, -}); +export default defineConfig({}); diff --git a/src/components/Footer.astro b/src/components/Footer.astro new file mode 100644 index 0000000..d9135a8 --- /dev/null +++ b/src/components/Footer.astro @@ -0,0 +1,26 @@ +--- +import { GIT_COMMIT_HASH, REPO_URL } from "@/constants"; +--- + + + + diff --git a/src/components/Header.astro b/src/components/Header.astro new file mode 100644 index 0000000..0349171 --- /dev/null +++ b/src/components/Header.astro @@ -0,0 +1,132 @@ +--- +import { Image } from "astro:assets"; +import headshot from "@/images/headshot.jpg"; +--- +
+ + Bradley's Headshot + + + +
+ + + + diff --git a/src/constants.ts b/src/constants.ts index 7ba296a..334f866 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,2 +1,12 @@ +import { execSync } from "node:child_process"; + export const REPO_URL = "https://github.com/shenanigansd/shenanigansd.github.io"; + +export const GIT_COMMIT_HASH = (() => { + try { + return execSync("git rev-parse HEAD", { encoding: "utf-8" }).trim(); + } catch { + return "unknown"; + } +})(); diff --git a/src/env.d.ts b/src/env.d.ts deleted file mode 100644 index e16944b..0000000 --- a/src/env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -/// - -// Build-time variables -declare const __GIT_COMMIT_HASH__: string; diff --git a/src/images/headshot.jpg b/src/images/headshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..51f36802796a716b9938ea8c7690fd0f426cd93e GIT binary patch literal 25766 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 LFn^UxEg%2cDelbP literal 0 HcmV?d00001 diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro new file mode 100644 index 0000000..526044b --- /dev/null +++ b/src/layouts/BaseLayout.astro @@ -0,0 +1,20 @@ +--- +import Footer from "../components/Footer.astro"; +import Header from "../components/Header.astro"; +import "../styles/global.css"; +const { pageTitle } = Astro.props; +--- + + + + + + + {pageTitle} + + +
+ +