From 11a5ca2792cd0debb6b8f510ffd716e6f734dbd6 Mon Sep 17 00:00:00 2001
From: Christian Cleberg
Date: Fri, 13 Mar 2026 15:56:35 -0500
Subject: fix *.org headers and revert to minimal site theme
---
theme/static/favicon.svg | 14 -
theme/static/koi-hr.svg | 7 -
theme/static/styles.css | 607 +-------------------------------------------
theme/static/tokens.css | 51 ----
theme/templates/base.html | 49 ++--
theme/templates/blog.html | 16 +-
theme/templates/garden.html | 18 +-
theme/templates/index.html | 38 +--
theme/templates/page.html | 2 +-
theme/templates/post.html | 10 +-
10 files changed, 73 insertions(+), 739 deletions(-)
delete mode 100644 theme/static/favicon.svg
delete mode 100644 theme/static/koi-hr.svg
delete mode 100644 theme/static/tokens.css
(limited to 'theme')
diff --git a/theme/static/favicon.svg b/theme/static/favicon.svg
deleted file mode 100644
index b6a89f2..0000000
--- a/theme/static/favicon.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/theme/static/koi-hr.svg b/theme/static/koi-hr.svg
deleted file mode 100644
index 1062b04..0000000
--- a/theme/static/koi-hr.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/theme/static/styles.css b/theme/static/styles.css
index d6ffd0e..120f733 100644
--- a/theme/static/styles.css
+++ b/theme/static/styles.css
@@ -1,597 +1,12 @@
-@import url('tokens.css');
-
-/* ============================================================
- HOMEPAGE INTRO
- ============================================================ */
-.homepage-intro {
- max-width: var(--prose-w);
- margin: 3rem 0;
- margin-top: 1rem;
- font-family: var(--font-serif);
- font-size: var(--text-body);
- line-height: var(--lh-body);
-}
-.homepage-intro p { margin-bottom: 1.1rem; }
-.homepage-intro p:first-child {
- font-size: 0.9rem;
- text-transform: uppercase;
- letter-spacing: 0.1em;
- font-family: var(--font-sans);
- color: var(--meta);
- margin-bottom: 0.5rem;
-}
-.homepage-intro p:nth-child(2) {
- font-size: 1.3rem;
- font-weight: 700;
- letter-spacing: -0.01em;
- color: var(--fg);
- margin-bottom: 1.5rem;
-}
-
-/* ============================================================
- RESET & BASE
- ============================================================ */
-*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
-
-body {
- background: var(--bg);
- color: var(--fg);
- font-family: var(--font-sans);
- font-size: var(--text-body);
- line-height: var(--lh-body);
- -webkit-font-smoothing: antialiased;
- text-rendering: optimizeLegibility;
-}
-
-/* Full-bleed header — border and nav span 100vw */
-header {
- width: 100%;
-}
-
-/* Centered content column */
-main,
-footer,
-header {
- max-width: var(--outer-w);
- margin: 0 auto;
- padding-left: var(--pad);
- padding-right: var(--pad);
-}
-footer { padding-bottom: 3rem; }
-
-/* Prose constraint — applied to article/page body text only */
-.prose {
- max-width: var(--prose-w);
-}
-
-/* ============================================================
- MASTHEAD
- ============================================================ */
-.masthead {
- border-top: 2px solid var(--fg);
- padding-top: 1.5rem;
- padding-bottom: 0;
- padding-left: var(--pad);
- padding-right: var(--pad);
-}
-
-.masthead-title {
- display: block;
- font-family: var(--font-serif);
- font-size: var(--text-display);
- font-weight: 700;
- line-height: var(--lh-display);
- letter-spacing: -0.03em;
- text-decoration: none;
- color: var(--fg);
- margin-bottom: 1.25rem;
-}
-.masthead-title:hover { color: var(--accent); background: none; }
-
-.masthead-subtitle {
- font-family: var(--font-sans);
- font-size: var(--text-xs);
- letter-spacing: 0.12em;
- color: var(--meta);
- text-transform: lowercase;
- margin-bottom: 1rem;
-}
-
-/* ============================================================
- NAV STRIP — full outer width, equal cells
- ============================================================ */
-.masthead nav ul {
- list-style: none;
- display: flex;
-}
-.masthead nav li { flex: 1; }
-.masthead nav a {
- display: block;
- text-align: center;
- padding: 0.55rem 0;
- font-size: var(--text-xs);
- font-weight: 700;
- text-transform: uppercase;
- letter-spacing: 0.16em;
- text-decoration: none;
- color: var(--meta);
- border: 1px solid var(--border-soft);
- transition: color 0.1s, background 0.1s;
-}
-.masthead nav a:hover { color: var(--bg); background: var(--fg); }
-
-/* ============================================================
- MAIN CONTENT AREA
- ============================================================ */
-main { padding-top: 2rem; }
-
-/* ============================================================
- KOI HR
- ============================================================ */
-hr {
- border: none;
- height: 2.5rem;
- position: relative;
- display: flex;
- align-items: center;
- justify-content: center;
- background-image: url('koi-hr.svg');
- background-repeat: no-repeat;
- background-position: center;
- background-size: auto 100%;
- margin: 3rem 0;
-}
-hr::before, hr::after {
- content: '';
- position: absolute;
- top: 50%;
- transform: translateY(-50%);
- width: calc(50% - 2rem);
- height: 1px;
- background: var(--border-soft);
-}
-hr::before { left: 0; }
-hr::after { right: 0; }
-
-/* ============================================================
- FOOTER
- ============================================================ */
-footer {
- font-size: var(--text-xs);
- text-transform: uppercase;
- letter-spacing: 0.14em;
- color: var(--meta);
- display: flex;
- flex-direction: column;
- gap: 0.4rem;
-}
-footer a { color: var(--meta); text-decoration: none; transition: color 0.1s; }
-footer a:hover { color: var(--fg); background: none; }
-
-/* ============================================================
- TYPOGRAPHY
- ============================================================ */
-h1, h2, h3, h4 {
- font-family: var(--font-serif);
- font-weight: 700;
- letter-spacing: -0.02em;
- line-height: 1.1;
-}
-
-/* Page-level h1 (blog list, garden, guides) */
-h1 {
- font-size: var(--text-h1);
- margin-bottom: 0.5rem;
-}
-
-/* Article display title — larger, tighter */
-.article-title {
- font-family: var(--font-serif);
- font-size: clamp(2.4rem, 5vw, 3.6rem);
- font-weight: 700;
- line-height: 1.05;
- letter-spacing: -0.03em;
- margin: 0.4rem 0 0;
-}
-
-h2 {
- font-size: var(--text-h2);
- border-left: 1px solid var(--accent);
- padding-left: 0.75rem;
- margin-top: 2.5rem;
- margin-bottom: 0.4rem;
-}
-h3 { font-size: 1.05rem; margin-top: 2rem; margin-bottom: 0.3rem; }
-
-p { margin-bottom: 1.2rem; }
-
-/* Accent ONLY on links and h2 bar — nowhere else */
-a {
- color: var(--accent);
- text-decoration: underline;
- text-underline-offset: 3px;
- transition: background 0.1s, color 0.1s;
-}
-a:hover { background: var(--accent); color: var(--bg); text-decoration: none; }
-
-/* ============================================================
- SECTION LABEL — uppercase eyebrow text
- ============================================================ */
-.label {
- display: block;
- font-size: var(--text-xs);
- font-weight: 700;
- text-transform: uppercase;
- letter-spacing: 0.16em;
- color: var(--meta);
- border-bottom: 1px solid var(--fg);
- padding-bottom: 0.5rem;
- margin-bottom: 0;
-}
-
-/* ============================================================
- INFO STRIP — homepage identity block
- ============================================================ */
-
-
-/* ============================================================
- POST LIST — numbered, full outer width
- ============================================================ */
-.post-list {
- list-style: none;
- counter-reset: posts;
-}
-.post-list-item {
- counter-increment: posts;
- display: grid;
- grid-template-columns: 2.5rem 1fr 7rem;
- align-items: baseline;
- gap: 0 1rem;
- padding: 0.75rem 0;
- border-bottom: 1px solid var(--border-soft);
-}
-.post-list-item:first-child { border-top: 1px solid var(--border-soft); }
-.post-list-item::before {
- content: counter(posts, decimal-leading-zero);
- font-family: var(--font-mono);
- font-size: var(--text-xs);
- color: var(--meta);
- letter-spacing: 0.04em;
- grid-column: 1;
-}
-.post-list-item a {
- font-size: var(--text-sm);
- justify-self: start;
-}
-.post-list-item time {
- font-size: var(--text-xs);
- font-family: var(--font-mono);
- color: var(--meta);
- text-align: right;
- white-space: nowrap;
- letter-spacing: 0.04em;
-}
-
-/* Year separator — full-width label, resets counter display */
-.post-list-year {
- display: block;
- font-family: var(--font-sans);
- font-size: var(--text-xs);
- font-weight: 700;
- text-transform: uppercase;
- letter-spacing: 0.14em;
- color: var(--meta);
- padding: 1.5rem 0 0.4rem;
- counter-increment: none;
-}
-
-.all-posts-link {
- display: inline-block;
- margin-top: 1.5rem;
- font-size: var(--text-xs);
- font-weight: 700;
- text-transform: uppercase;
- letter-spacing: 0.12em;
-}
-
-/* ============================================================
- ARTICLE — post page
- ============================================================ */
-.article-dateline {
- font-family: var(--font-mono);
- font-size: var(--text-xs);
- text-transform: uppercase;
- letter-spacing: 0.14em;
- color: var(--meta);
- margin-bottom: 0.35rem;
-}
-
-.article-standfirst {
- font-family: var(--font-serif);
- font-size: 1.15rem;
- line-height: 1.55;
- color: var(--fg-soft);
- padding: 1.25rem 0;
- border-top: 1px solid var(--border-soft);
- border-bottom: 1px solid var(--fg);
- margin-top: 1rem;
- max-width: var(--prose-w);
-}
-
-.article-body {
- font-family: var(--font-serif);
- font-size: var(--text-body);
- line-height: var(--lh-body);
- max-width: var(--prose-w);
- margin-top: 2.5rem;
-}
-.article-body p { margin-bottom: 1.3rem; }
-
-.reply-link {
- max-width: var(--prose-w);
- margin-top: 4rem;
- padding-top: 1.5rem;
- border-top: 1px solid var(--border-soft);
- font-size: var(--text-xs);
- font-family: var(--font-sans);
- text-transform: uppercase;
- letter-spacing: 0.12em;
-}
-
-/* ============================================================
- GENERIC PAGE (about, uses, etc.)
- ============================================================ */
-.page-body {
- font-family: var(--font-serif);
- font-size: var(--text-body);
- line-height: var(--lh-body);
- max-width: var(--prose-w);
- margin-top: 2rem;
-}
-.page-body p { margin-bottom: 1.3rem; }
-
-/* ============================================================
- BLOG ARCHIVE
- ============================================================ */
-.blog-meta {
- font-size: var(--text-sm);
- color: var(--meta);
- margin: 0.75rem 0 2rem;
-}
-.blog-meta code {
- font-size: var(--text-xs);
- background: var(--code-bg);
- padding: 0.1rem 0.35rem;
- font-family: var(--font-mono);
-}
-
-/* Year separators in post list */
-.post-list-year {
- font-family: var(--font-serif);
- font-size: var(--text-xs);
- font-weight: 700;
- text-transform: uppercase;
- letter-spacing: 0.14em;
- color: var(--meta);
- padding: 1.25rem 0 0.5rem;
- list-style: none;
- grid-column: 1 / -1;
-}
-
-/* Restore list styling inside content areas */
-.article-body ul,
-.article-body ol,
-.page-body ul,
-.page-body ol {
- padding-left: 1.5rem;
- margin-bottom: 1.2rem;
-}
-.article-body li,
-.page-body li {
- margin-bottom: 0.3rem;
-}
-.article-body ul ul,
-.article-body ol ol,
-.page-body ul ul,
-.page-body ol ol {
- margin-bottom: 0;
-}
-
-/* ============================================================
- GARDEN
- ============================================================ */
-.garden-index { list-style: none; }
-.garden-index li {
- display: flex;
- flex-direction: column;
- gap: 0.15rem;
- padding: 0.8rem 0;
- border-bottom: 1px solid var(--border-soft);
-}
-.garden-index li:first-child { border-top: 1px solid var(--border-soft); }
-.garden-index a { font-size: var(--text-sm); }
-.garden-desc { font-size: var(--text-xs); color: var(--meta); }
-
-/* ============================================================
- APP CARDS
- ============================================================ */
-.app-card {
- display: flex;
- gap: 1.25rem;
- align-items: flex-start;
- padding: 1.25rem 0;
- border-bottom: 1px solid var(--border-soft);
-}
-.app-card:first-of-type { border-top: 1px solid var(--border-soft); }
-.app-icon { width: 52px; height: 52px; border-radius: 12px; flex-shrink: 0; filter: none !important; margin: 0; display: block; }
-.app-card a:has(.app-icon):hover { background: none; }
-.app-info { display: flex; flex-direction: column; gap: 0.2rem; }
-.app-title { font-family: var(--font-sans); font-weight: 700; font-size: var(--text-sm); }
-.app-subtitle { font-size: var(--text-xs); color: var(--meta); }
-.app-links { font-size: var(--text-xs); margin-top: 0.3rem; }
-
-/* ============================================================
- CODE & PRE
- ============================================================ */
-pre {
- padding: 1.25rem;
- border-left: 1px solid var(--border-soft);
- background: var(--code-bg);
- overflow-x: auto;
- font-size: var(--text-sm);
- margin: 1.75rem 0;
- line-height: 1.6;
-}
-code {
- font-family: var(--font-mono);
- background: var(--code-bg);
- padding: 0.15rem 0.4rem;
- font-size: 0.875em;
-}
-pre code { background: none; padding: 0; font-size: inherit; }
-
-/* ============================================================
- BLOCKQUOTE — intentional Org-mode delimiters
- ============================================================ */
-blockquote {
- font-style: italic;
- margin: 1.75rem 0;
- padding: 0.75rem 1rem;
- border-left: 1px solid var(--border-soft);
- background: var(--code-bg);
-}
-blockquote p:last-child { margin-bottom: 0; }
+body { max-width: 800px; margin: 0 auto; }
+nav ul { list-style: none; padding: 0; display: flex; flex-direction: row; }
+nav ul li { padding-right: 0.5rem;}
+img { max-width: 100%; }
+.post-list-item { display: flexbox; list-style: none; }
+.post-list-item time { padding-right: 0.5rem; }
+.post-list-year { list-style: none; margin-top: 1rem; margin-bottom: 0.5rem; font-weight: bold; }
+.skip-link { display: none; }
+footer { margin: 2rem 0;}
+pre, blockquote { margin: 1rem 0; padding: 0.5rem; background-color: lightgrey; }
blockquote p { margin: 0; }
-blockquote::before {
- content: "#+begin_quote";
- display: block;
- color: var(--meta);
- font-style: normal;
- font-size: var(--text-xs);
- font-family: var(--font-mono);
- letter-spacing: 0.04em;
- margin-bottom: 0.5rem;
-}
-blockquote::after {
- content: "#+end_quote";
- display: block;
- color: var(--meta);
- font-style: normal;
- font-size: var(--text-xs);
- font-family: var(--font-mono);
- letter-spacing: 0.04em;
- margin-top: 0.5rem;
-}
-
-/* ============================================================
- TABLES
- ============================================================ */
-table {
- display: block;
- width: 100%;
- max-width: 100%;
- overflow-x: auto;
- border: none;
- border-collapse: collapse;
- margin: 2rem 0;
-}
-
-table td, table th {
- white-space: nowrap;
- padding: 0.5rem 1rem;
-}
-th, td {
- border-bottom: 1px solid var(--border-soft);
- padding: 0.65rem 0.75rem;
- text-align: left;
- font-size: var(--text-sm);
-}
-th {
- border-bottom: 1px solid var(--fg);
- font-size: var(--text-xs);
- text-transform: uppercase;
- letter-spacing: 0.1em;
- font-weight: 700;
-}
-tr:last-child td { border-bottom: none; }
-
-/* ============================================================
- IMAGES
- ============================================================ */
-img {
- max-width: 100%;
- height: auto;
- filter: grayscale(1);
- transition: filter 0.25s;
- display: block;
- margin: 2rem 0;
-}
-img:hover { filter: grayscale(0); }
-
-/* ============================================================
- FOOTNOTES
- ============================================================ */
-.footdef { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 0.5rem; }
-.footpara { margin: 0; flex: 1; font-size: var(--text-sm); }
-.footnum {
- font-weight: 700;
- min-width: 1.5rem;
- text-align: right;
- text-decoration: none;
- font-size: var(--text-xs);
- color: var(--meta);
- font-family: var(--font-mono);
-}
-
-/* ============================================================
- SKIP LINK
- ============================================================ */
-.skip-link {
- position: absolute;
- top: -100px;
- left: 50%;
- transform: translateX(-50%);
- background: var(--fg);
- color: var(--bg);
- padding: 0.75rem 1.5rem;
- z-index: 999;
- font-weight: 700;
- font-size: var(--text-xs);
- text-transform: uppercase;
- letter-spacing: 0.12em;
- text-decoration: none;
- transition: top 0.2s;
-}
-.skip-link:focus { top: 0; outline: none; }
-#main-content:focus { outline: none; }
-
-/* ============================================================
- RESPONSIVE
- ============================================================ */
-@media (max-width: 700px) {
- .masthead-title { font-size: clamp(3rem, 14vw, 5rem); }
- .masthead nav ul { flex-wrap: wrap; }
- .masthead nav li { flex: none; width: 50%; }
- .masthead nav a { border-bottom: 1px solid var(--border-soft); }
- .post-list-item { grid-template-columns: 2.25rem 1fr; }
- .post-list-item time { display: none; }
- .article-title { font-size: clamp(2rem, 9vw, 2.8rem); }
-}
-
-@media (max-width: 480px) {
- .masthead nav li { width: 33.333%; }
-}
-
-/* Tags page */
-.tag-toc {
- display: flex;
- flex-wrap: wrap;
- gap: 0.5rem 1.5rem;
- list-style: none;
- padding: 0;
- margin: 0 0 3rem;
-}
-.tag-count {
- color: var(--meta);
- font-size: var(--text-xs);
-}
+code { color: darkred; }
\ No newline at end of file
diff --git a/theme/static/tokens.css b/theme/static/tokens.css
deleted file mode 100644
index 3f67b12..0000000
--- a/theme/static/tokens.css
+++ /dev/null
@@ -1,51 +0,0 @@
-/* =============================================================================
- BRAND TOKENS — cleberg.net
- ============================================================================= */
-:root {
- color-scheme: light dark;
-
- /* Light */
- --bg: #ffffff;
- --bg-soft: #f5f5f5;
- --fg: #0a0a0a;
- --fg-soft: #444444;
- --accent: #c0392b;
- --border: #0a0a0a;
- --border-soft: #dedede;
- --code-bg: #f3f3f3;
- --meta: #999999;
-
- /* Fonts */
- --font-serif: Georgia, 'Times New Roman', serif;
- --font-sans: system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
- --font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace;
-
- /* Type scale */
- --text-display: clamp(4rem, 8vw, 6.5rem);
- --text-h1: clamp(2.2rem, 4vw, 3rem);
- --text-h2: 1.2rem;
- --text-body: 1.0625rem;
- --text-sm: 0.875rem;
- --text-xs: 0.6875rem; /* 11px — label tier */
- --lh-display: 0.95;
- --lh-body: 1.75;
-
- /* Layout */
- --outer-w: 1000px;
- --prose-w: 720px;
- --pad: clamp(1.25rem, 4vw, 2.5rem);
-}
-
-@media (prefers-color-scheme: dark) {
- :root {
- --bg: #080808;
- --bg-soft: #111111;
- --fg: #eeebe6;
- --fg-soft: #aaa8a3;
- --accent: #e05a48;
- --border: #eeebe6;
- --border-soft: #1e1e1e;
- --code-bg: #0d0d0d;
- --meta: #555555;
- }
-}
diff --git a/theme/templates/base.html b/theme/templates/base.html
index 8eca335..65681e5 100644
--- a/theme/templates/base.html
+++ b/theme/templates/base.html
@@ -9,45 +9,36 @@
{% if site_description is defined %} {% endif %}
{% if site_keywords is defined %} {% endif %}
-
+
{% block meta %}{% endblock %}
{% endblock %}
Skip to content
-
+
+
+
+
+
{% block main %}{% endblock %}
-
+
+
diff --git a/theme/templates/blog.html b/theme/templates/blog.html
index 605d883..ba7beb3 100644
--- a/theme/templates/blog.html
+++ b/theme/templates/blog.html
@@ -1,13 +1,13 @@
{% extends "base.html" %} {% block subtitle %}blog - {% endblock %} {% block main %}
Blog
-Use ⌘ F / Ctrl F to search · RSS Feed
-All Posts
+Use ⌘ F / Ctrl F to search · RSS Feed
+All Posts
-{% for post in posts %}
-
- {{ post.title }}
- {{ post.date|strftime("%Y-%m-%d") }}
-
-{% endfor %}
+ {% for post in posts %}
+
+ {{ post.date|strftime("%Y-%m-%d") }}
+ {{ post.title }}
+
+ {% endfor %}
{% endblock %}
diff --git a/theme/templates/garden.html b/theme/templates/garden.html
index 79238f5..c546078 100644
--- a/theme/templates/garden.html
+++ b/theme/templates/garden.html
@@ -14,14 +14,14 @@ around.
🍂 Compost: Ideas you no longer agree with but want to
keep for historical context.
-
-{% for post in posts %}
-
- {{ post.title }}
- {% if post.description %}
- {{ post.description }}
- {% endif %}
-
-{% endfor %}
+
+ {% for post in posts %}
+
+ {{ post.title }}
+ {% if post.description %}
+ {{ post.description }}
+ {% endif %}
+
+ {% endfor %}
{% endblock %}
diff --git a/theme/templates/index.html b/theme/templates/index.html
index d15eeca..de9fae3 100644
--- a/theme/templates/index.html
+++ b/theme/templates/index.html
@@ -1,22 +1,22 @@
{% extends "base.html" %} {% block main %}
-
-
My name is Christian.
-
I’m a technology auditor who doesn’t trust technology companies.
-
I run my own infrastructure. I audit everyone else's.
-
The infrastructure is the point. Self-hosted, self-managed, minimal
- dependencies. This site is part of it: plaintext, no trackers, no
- frameworks, no corporate CDN.
-
The audit job funds it. KPMG. Technology Assurance. I spend 50-80 hours a
- week inside the systems I refuse to use personally. The irony is the
- business model.
-
GPG key, salary, and server stack are all public. That's the whole
- introduction.
-
+
+ Hi, I'm Christian.
+ I'm a Technology Assurance Manager @ KPMG.
+ I use this site as a place to think out loud (see my blog , garden , or
+ guides ), a place to publish information (see
+ my CV and salary
+ pages), and a foundational URI to use for my projects (see
+ my apps ).
+ If you want to chat, you can find me in the following spaces:
+
+ Curious about the technology behind this website? Check out my /uses page.
+ Curious about what I've been up to lately in my personal life? Check out my /now page.
+
-Recent Posts
-
-All Posts →
+Recent Posts
+
+All Posts →
{% endblock %}
diff --git a/theme/templates/page.html b/theme/templates/page.html
index a302c4b..6c22589 100644
--- a/theme/templates/page.html
+++ b/theme/templates/page.html
@@ -3,6 +3,6 @@
{% block main %}
{{ post.title }}
- {{ post.html | safe }}
+ {{ post.html | safe }}
{% endblock %}
diff --git a/theme/templates/post.html b/theme/templates/post.html
index 018068e..df6c3b7 100644
--- a/theme/templates/post.html
+++ b/theme/templates/post.html
@@ -10,12 +10,12 @@
{% endblock %}
{% block main %}
- {{ post.date|strftime("%Y-%m-%d") }}
- {{ post.title }}
+ {{ post.date|strftime("%Y-%m-%d") }}
+ {{ post.title }}
{% if post.description is defined %}
- {{ post.description }}
+ {{ post.description }}
{% endif %}
- {{ post.html | safe }}
-
+ {{ post.html | safe }}
+
{% endblock %}
--
cgit v1.2.3