From f939a69b1f4548f130fc8e0d0c103fdaca08ad9b Mon Sep 17 00:00:00 2001 From: Stefan Koelle Date: Sun, 16 Aug 2026 23:41:49 +0200 Subject: [PATCH] 404 pages --- code/404.html | 12 ++++++++++++ code/_data/repos.json | 16 ++++++++++++++++ hub/404.html | 12 ++++++++++++ infra/404.html | 12 ++++++++++++ retro/404.html | 12 ++++++++++++ shared/base.css | 17 +++++++++++++++++ smarthome/404.html | 12 ++++++++++++ stefankoelle/pdf/cv.pdf | Bin 47175 -> 47174 bytes 8 files changed, 93 insertions(+) create mode 100644 code/404.html create mode 100644 hub/404.html create mode 100644 infra/404.html create mode 100644 retro/404.html create mode 100644 smarthome/404.html diff --git a/code/404.html b/code/404.html new file mode 100644 index 0000000..7b6d6dc --- /dev/null +++ b/code/404.html @@ -0,0 +1,12 @@ +--- +title: "Page Not Found" +section: "code" +description: "The page you are looking for does not exist." +layout: base.njk +permalink: /404.html +--- +
+

404

+

The page you are looking for does not exist or has been moved.

+ ← Back to code +
\ No newline at end of file diff --git a/code/_data/repos.json b/code/_data/repos.json index 8218aad..6f2ccbd 100644 --- a/code/_data/repos.json +++ b/code/_data/repos.json @@ -243,5 +243,21 @@ "repo": "moonweb-site", "repo_url": "https://github.com/skoelle/moonweb-site", "summary": "Monorepo for moonweb.org - my personal homelab hub. Six static sites (Eleventy) covering infrastructure, smart home, code, and retro hardware. Deployed to Cloudflare Pages or IONOS." + }, + { + "title": "www.moonweb.org", + "emoji": "🌙", + "category": "code", + "subcategory": "Web Projects", + "status": "active", + "stack": [ + "Node.js", + "Eleventy", + "Nunjucks", + "Markdown" + ], + "repo": "moonweb-www", + "repo_url": "https://github.com/skoelle/moonweb-www", + "summary": "Archived early 2000s internet projects, networking & engineering - a personal web presence from the dawn of the millennium, finally on GitHub" } ] diff --git a/hub/404.html b/hub/404.html new file mode 100644 index 0000000..66bde92 --- /dev/null +++ b/hub/404.html @@ -0,0 +1,12 @@ +--- +title: "Page Not Found" +section: "hub" +description: "The page you are looking for does not exist." +layout: base.njk +permalink: /404.html +--- +
+

404

+

The page you are looking for does not exist or has been moved.

+ ← Back to hub +
\ No newline at end of file diff --git a/infra/404.html b/infra/404.html new file mode 100644 index 0000000..0597e48 --- /dev/null +++ b/infra/404.html @@ -0,0 +1,12 @@ +--- +title: "Page Not Found" +section: "infra" +description: "The page you are looking for does not exist." +layout: base.njk +permalink: /404.html +--- +
+

404

+

The page you are looking for does not exist or has been moved.

+ ← Back to infra +
\ No newline at end of file diff --git a/retro/404.html b/retro/404.html new file mode 100644 index 0000000..30ca8ac --- /dev/null +++ b/retro/404.html @@ -0,0 +1,12 @@ +--- +title: "Page Not Found" +section: "retro" +description: "The page you are looking for does not exist." +layout: base.njk +permalink: /404.html +--- +
+

404

+

The page you are looking for does not exist or has been moved.

+ ← Back to retro +
\ No newline at end of file diff --git a/shared/base.css b/shared/base.css index 9bba6eb..2d3285c 100644 --- a/shared/base.css +++ b/shared/base.css @@ -197,3 +197,20 @@ main { max-width: 1100px; margin: 0 auto; padding: 2rem; } color: #fff; border-color: var(--accent); } + +.error-page { + text-align: center; + padding: 4rem 2rem; +} +.error-page h1 { + font-size: 6rem; + font-weight: 700; + color: var(--accent); + margin: 0 0 1rem; + line-height: 1; +} +.error-page p { + font-size: 1.1rem; + color: #666; + margin: 0 0 2rem; +} diff --git a/smarthome/404.html b/smarthome/404.html new file mode 100644 index 0000000..da4b27d --- /dev/null +++ b/smarthome/404.html @@ -0,0 +1,12 @@ +--- +title: "Page Not Found" +section: "smarthome" +description: "The page you are looking for does not exist." +layout: base.njk +permalink: /404.html +--- +
+

404

+

The page you are looking for does not exist or has been moved.

+ ← Back to smarthome +
\ No newline at end of file diff --git a/stefankoelle/pdf/cv.pdf b/stefankoelle/pdf/cv.pdf index 1c91c1ddce8c322227b807899198d027bd021635..b4938f248b8cdd6979183c07864d57ec91fc01ad 100644 GIT binary patch delta 12437 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 Ta%E-;G&VRnG72RnMNdWwJ=0jK delta 12401 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