summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHunter Kvalevog <hunter@kvog.sh>2026-04-22 23:11:11 -0500
committerHunter Kvalevog <hunter@kvog.sh>2026-04-22 23:11:11 -0500
commit2fc6aaf00f33a42a1ab8ef0cfaabeb2900cb9808 (patch)
treeb8528de09abd94ab1f564d3dd4a7b0fcb16cbbd5
parent375a08ddd2c14de08ce4e6d52180300916d53524 (diff)
-rw-r--r--CLAUDE.md25
-rw-r--r--content/posts/girlfriend-of-steel-re.md1
-rw-r--r--hugo.toml3
-rw-r--r--themes/hugo-xmin/layouts/_default/single.html4
-rw-r--r--themes/hugo-xmin/static/css/fonts.css7
-rw-r--r--themes/hugo-xmin/static/css/style.css177
6 files changed, 165 insertions, 52 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 0000000..395c020
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,25 @@
+# CLAUDE.md
+
+This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
+
+## Commands
+
+```bash
+hugo server # Local dev server at http://localhost:1313/
+hugo # Build to ./public/
+hugo --minify # Production build (used by CI)
+```
+
+No lint, test, or package install steps — this is a pure Hugo project with no Node dependencies.
+
+## Architecture
+
+This is a Hugo static site (theme: hugo-xmin) deployed to kvog.sh via GitHub Actions on push to `master`. The workflow builds with `hugo --minify` and deploys to GitHub Pages.
+
+- **`hugo.toml`** — site config (baseURL, theme, code highlight style)
+- **`content/`** — all Markdown content: `_index.md` (home), `about.md`, `posts/`, `cheatsheets/`
+- **`themes/hugo-xmin/`** — minimal theme; layouts and CSS live here
+- **`archetypes/default.md`** — template for `hugo new` content
+- **`public/`** — build output, not committed (in `.gitignore`)
+
+New content goes in `content/posts/` or `content/cheatsheets/` as Markdown files with Hugo front matter.
diff --git a/content/posts/girlfriend-of-steel-re.md b/content/posts/girlfriend-of-steel-re.md
index 845b62e..9859fb1 100644
--- a/content/posts/girlfriend-of-steel-re.md
+++ b/content/posts/girlfriend-of-steel-re.md
@@ -1,6 +1,7 @@
+++
title = 'Reverse Engineering _Neon Genesis Evangelion: Girlfriend of Steel_'
date = 2026-04-22T20:30:53-05:00
+draft = true
+++
Last year, I started reverse enginering _Neon Genesis Evangelion: Girlfriend of Steel_ with the intention of writing a replacement engine that runs on modern computers.
diff --git a/hugo.toml b/hugo.toml
index 6ad90e8..b6c9cf2 100644
--- a/hugo.toml
+++ b/hugo.toml
@@ -4,4 +4,5 @@ title = 'kvog.sh'
theme = 'hugo-xmin'
[markup.highlight]
-style = "github" \ No newline at end of file
+ style = "github"
+ noClasses = false \ No newline at end of file
diff --git a/themes/hugo-xmin/layouts/_default/single.html b/themes/hugo-xmin/layouts/_default/single.html
index ecf1861..9529765 100644
--- a/themes/hugo-xmin/layouts/_default/single.html
+++ b/themes/hugo-xmin/layouts/_default/single.html
@@ -1,7 +1,7 @@
{{ partial "header.html" . }}
<div class="article-meta">
-<h2 style="border-bottom: none;"><span class="title">{{ .Title | markdownify }}</span></h2>
-{{ with .Params.author }}<h2 class="author">{{ . }}</h2>{{ end }}
+<h1>{{ .Title | markdownify }}</h1>
+{{ with .Params.author }}<p class="author">{{ . }}</p>{{ end }}
{{ if (gt .Params.date 0) }}<p class="date">{{ .Date.Format "2006/01/02" }}</p>{{ end }}
</div>
diff --git a/themes/hugo-xmin/static/css/fonts.css b/themes/hugo-xmin/static/css/fonts.css
index 7d38280..8f5a82c 100644
--- a/themes/hugo-xmin/static/css/fonts.css
+++ b/themes/hugo-xmin/static/css/fonts.css
@@ -1,8 +1,7 @@
body {
- font-family: Arial,sans-serif, Georgia, Serif;
- font-size: 13px;
+ font-family: Georgia, "Times New Roman", serif;
+ font-size: 16px;
}
code {
- font-family: monospace;
- font-size: 100%;
+ font-family: ui-monospace, "SF Mono", Consolas, monospace;
}
diff --git a/themes/hugo-xmin/static/css/style.css b/themes/hugo-xmin/static/css/style.css
index 071379d..94a1960 100644
--- a/themes/hugo-xmin/static/css/style.css
+++ b/themes/hugo-xmin/static/css/style.css
@@ -1,74 +1,161 @@
body {
max-width: 800px;
margin: auto;
- padding: 1em;
- line-height: 1.5;
+ padding: 2em 1.5em;
+ line-height: 1.55;
+ color: #18181b;
+ background: #f9f8f5;
}
+a { color: #166534; }
+a:hover { color: #14532d; }
+
+/* nav */
nav {
- /* background-color: green; */
- border-bottom: 1px solid #666;
+ margin-bottom: 2.5em;
}
-
-nav > * {
- padding-right: 5px;
+nav a,
+.menu a {
+ font-family: Georgia, "Times New Roman", serif;
+ font-size: 0.75em;
+ text-decoration: none;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+ color: #71717a;
+ margin-right: 1.2em;
+}
+nav a:hover,
+.menu a:hover {
+ color: #18181b;
}
+.menu {
+ display: inline;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+.menu li { display: inline; }
-table {
- width: 100%;
+/* article meta */
+.article-meta {
+ margin-bottom: 1.5em;
+}
+.article-meta h1,
+.article-meta h2 {
+ font-family: Georgia, "Times New Roman", serif;
+ font-size: 1.5em;
+ font-weight: 700;
+ line-height: 1.2;
+ margin: 0 0 0.25em;
+ color: #111;
+}
+.date {
+ font-family: Georgia, "Times New Roman", serif;
+ font-size: 0.78em;
+ color: #71717a;
}
-/* header and footer areas */
-.menu { padding: 0; }
-.menu li { display: inline-block; }
-.article-meta, .menu a {
+/* footer */
+footer {
+ margin-top: 3em;
+ text-align: center;
+ font-family: Georgia, "Times New Roman", serif;
+ font-size: 0.78em;
+ color: #a1a1aa;
+}
+footer a {
text-decoration: none;
- /* background: #eee; */
- /* border-bottom: 1px solid #666; */
- padding: 5px;
- /* border-radius: 5px; */
-}
-.menu, .article-meta, footer { text-align: center; }
-.title { font-size: 1.1em; }
-footer a { text-decoration: none; }
+ color: #71717a;
+}
hr {
- color: green;
+ border: none;
+ border-top: 1px solid #e4e4e7;
+ margin: 2em 0;
}
/* main */
-.main {
- border-top: 1px solid #666;
- /* background-color: green; */
+.main { margin-top: 0; }
+
+/* headings */
+h1, h2, h3, h4 {
+ font-family: Georgia, "Times New Roman", serif;
+ font-weight: 600;
+ line-height: 1.25;
+ margin-top: 1.7em;
+ margin-bottom: 0.3em;
+ color: #111;
+}
+h1 { font-size: 1.4em; }
+h2 {
+ font-size: 1.15em;
+ border-top: 1px solid #d4d4d8;
+ padding-top: 0.75em;
+ margin-top: 1.5em;
}
+h3 { font-size: 1em; }
+
+/* paragraphs */
+p { margin: 0.65em 0; }
+
+/* lists */
+ul, ol {
+ padding-left: 1.4em;
+ margin: 0.2em 0;
+}
+li { margin: 0.1em 0; }
/* code */
pre {
- border: 1px solid #ddd;
- box-shadow: 5px 5px 5px #eee;
- padding: 1em;
+ background: #dedad3;
+ border-left: 3px solid #c0bdb5;
+ padding: 0.85em 1em;
overflow-x: auto;
+ margin: 0.75em 0;
+}
+code {
+ background: #dedad3;
+ padding: 0.12em 0.3em;
+ border-radius: 3px;
+ font-size: 88%;
+}
+pre code {
+ background: none;
+ padding: 0;
+ border-radius: 0;
+ font-size: inherit;
}
-code { background: #f9f9f9; }
-pre code { background: none; }
-/* misc elements */
-img, iframe, video { max-width: 100%; }
-main { hyphens: auto; }
+/* blockquote */
blockquote {
- background: #f9f9f9;
- border-left: 5px solid #ccc;
- padding: 3px 1em 3px;
+ border-left: 3px solid #d4d4d8;
+ padding: 0 0.9em;
+ color: #52525b;
+ margin: 0.75em 0;
}
+/* table */
table {
- margin: auto;
- border-top: 1px solid #666;
- border-bottom: 1px solid #666;
+ width: 100%;
+ border-collapse: collapse;
+ font-size: 0.9em;
+ margin: 0.75em 0;
}
-table thead th { border-bottom: 1px solid #ddd; }
-th, td { padding: 5px; }
-thead, tfoot, tr:nth-child(even) { background: #eee; }
-
-h2 {
- border-bottom: 1px dotted #666;
+thead th {
+ border-bottom: 2px solid #d4d4d8;
+ text-align: left;
+ padding: 0.3em 0.6em;
+ font-family: Georgia, "Times New Roman", serif;
+ font-size: 0.82em;
+ letter-spacing: 0.05em;
+ text-transform: uppercase;
+ color: #71717a;
+}
+td {
+ padding: 0.28em 0.6em;
+ border-bottom: 1px solid #ebebea;
}
+tr:last-child td { border-bottom: none; }
+
+/* misc */
+img, iframe, video { max-width: 100%; }
+main { hyphens: auto; }