diff options
| author | Christian Cleberg <[email protected]> | 2026-08-11 13:41:18 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-08-11 20:35:15 -0500 |
| commit | 9049e20a29fb54245079ec19ae4a503e3f8e2799 (patch) | |
| tree | f5f79818374a6d991182d4dc408c38d421414f2c | |
| parent | 517926849ed9477def1de54c7b9b5e53eed46fe5 (diff) | |
| download | cleberg.net-9049e20a29fb54245079ec19ae4a503e3f8e2799.tar.gz cleberg.net-9049e20a29fb54245079ec19ae4a503e3f8e2799.tar.bz2 cleberg.net-9049e20a29fb54245079ec19ae4a503e3f8e2799.zip | |
Bring the org-ssg templates to parity with the live site
The org-ssg build rendered the right content in the wrong chrome. Closing every
difference found by comparing it against theme/templates/ and the live pages:
- base.html: Home link written by the layout rather than the site title, a
<title> of "Page - cleberg.net" (bare "cleberg.net" on the home page, via a
subtitle block), author/description/og meta, the RSS alternate link, four
rel="me" identity links, favicon, skip link, <main id="main-content">,
aria-label on the nav, and the real footer.
- home.html: the h1 is "Christian Cleberg" (the collection's title), and the
email line has its GPG link back.
- blog.html and garden.html: the two listings carry their own prose on the live
site — the search/RSS hint, and the garden's growth stages — so they are no
longer sharing the generic list.html. Tag pages still use it.
- tags.html: "Browse posts by topic."
- Blog posts get the reply-by-email and Bubbles lines. org-ssg has no per-page
template selection, so the layout keys off the page's URL prefix.
- Tags leaves the nav, which the live site does not have.
feed.xml is new: the footer links /feed.xml and nothing was generating it. It
is a collection whose template happens to be XML. Its <description> carries
each post's excerpt rather than the full rendered body, which weblorg's feed
does include — a collection template gets each entry's metadata, not its HTML.
base_url is now set, since canonical links and a feed cannot be relative. Page
links stay relative, so a preview build still works from any directory.
gpg.txt, robots.txt and salary.csv are copied in from theme/static/: weblorg
publishes that directory to the site root, and org-ssg publishes from content/,
so /gpg.txt was a 404. styles.min.css is deliberately not copied — it is
gitignored build output, and the tracked styles.css holds the same rules.
| -rw-r--r-- | content/gpg.txt | 52 | ||||
| -rw-r--r-- | content/org-ssg.toml | 34 | ||||
| -rw-r--r-- | content/robots.txt | 5 | ||||
| -rw-r--r-- | content/salary.csv | 13 | ||||
| -rw-r--r-- | content/templates/base.html | 74 | ||||
| -rw-r--r-- | content/templates/blog.html | 16 | ||||
| -rw-r--r-- | content/templates/feed.xml | 36 | ||||
| -rw-r--r-- | content/templates/garden.html | 30 | ||||
| -rw-r--r-- | content/templates/home.html | 9 | ||||
| -rw-r--r-- | content/templates/tags.html | 8 |
10 files changed, 235 insertions, 42 deletions
diff --git a/content/gpg.txt b/content/gpg.txt new file mode 100644 index 0000000..93b642d --- /dev/null +++ b/content/gpg.txt @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +0jZ4tA== +=pl2G +-----END PGP PUBLIC KEY BLOCK----- diff --git a/content/org-ssg.toml b/content/org-ssg.toml index b7feac6..4edb039 100644 --- a/content/org-ssg.toml +++ b/content/org-ssg.toml @@ -13,22 +13,21 @@ title = "cleberg.net" description = "Stillness amidst the chaos." language = "en" -# Empty keeps every URL relative, so the site works from a preview directory as well as -# from its real origin. Set it to "https://cleberg.net" when you want canonical links, or -# an RSS feed — a feed is read away from the site that served it, so its links cannot be -# relative. -base_url = "" +# Set, because the layout emits canonical links and /feed.xml — a feed is read away from +# the site that served it, so its links cannot be relative. Ordinary page-to-page links +# stay relative regardless, so a preview build still works from a directory. +base_url = "https://cleberg.net" [nav] # Explicit, because the pages that belong in the nav are not all top-level: /blog/ and # /garden/ are generated below, and salary/ is a section index one level down. index.org -# is deliberately absent — the layout already links home from the site title, and listing -# it here would print "cleberg.net" twice side by side. +# is deliberately absent — the layout writes the Home link itself, exactly as weblorg's +# base.html does. # # Generated pages are named by their output path, authored ones by their source. Listing # them together is what puts Salary last: a collection with `nav = true` that is not -# listed here gets appended after everything that is. /tags/ is deliberately not listed, -# so it lands at the end. +# listed here gets appended after everything that is — which is why the tags collection +# below does not set `nav = true`: the live nav has no Tags entry. mode = "explicit" pages = ["blog/index.html", "garden/index.html", "salary/index.org"] @@ -62,14 +61,14 @@ section_numbers = false source = "blog" output = "index.html" template = "home.html" -title = "cleberg.net" +title = "Christian Cleberg" sort = "date" order = "desc" [[collections]] source = "blog" output = "blog/index.html" -template = "list.html" +template = "blog.html" title = "Blog" sort = "date" order = "desc" @@ -78,7 +77,7 @@ nav = true [[collections]] source = "garden" output = "garden/index.html" -template = "list.html" +template = "garden.html" title = "Garden" sort = "date" order = "desc" @@ -96,4 +95,13 @@ title = "Tagged: {tag}" index_output = "tags/index.html" index_template = "tags.html" index_title = "Tags" -nav = true + +# The RSS feed. Not a separate feature — a collection whose template happens to be XML, +# which is why /feed.xml is declared here alongside the HTML listings. +[[collections]] +source = "blog" +output = "feed.xml" +template = "feed.xml" +title = "cleberg.net" +sort = "date" +order = "desc" diff --git a/content/robots.txt b/content/robots.txt new file mode 100644 index 0000000..e4ea360 --- /dev/null +++ b/content/robots.txt @@ -0,0 +1,5 @@ +User-agent: * +Content-Signal: ai-train=yes, search=yes, ai-input=yes +Allow: / +Disallow: +Sitemap: https://cleberg.net/sitemap.xml diff --git a/content/salary.csv b/content/salary.csv new file mode 100644 index 0000000..1f526f7 --- /dev/null +++ b/content/salary.csv @@ -0,0 +1,13 @@ +Title,Department,Company,Location,Start,End,Salary,PercentChange +Manager,Technology Assurance - Audit,KPMG,Omaha(NE),2025-10,2026-10,147600,0.0453 +Manager,Technology Assurance - Audit,KPMG,Omaha(NE),2024-10,2025-10,141200,0.2099 +Senior,Technology Assurance - Audit,KPMG,Omaha(NE),2023-10,2024-10,116700,0.0609 +Senior,Technology Assurance - Audit,KPMG,Omaha(NE),2022-06,2023-10,110000,0.2290 +Senior,Technology Risk - Consulting,Ernst & Young,Des Moines(IA),2021-09,2022-06,89500,0.2430 +Senior IT Auditor,Internal Audit,Ameritas,Lincoln(NE),2021-05,2021-09,72000,0.1076 +IT Auditor,Internal Audit,Ameritas,Lincoln(NE),2020-04,2021-05,65000,0.1206 +IS Auditor II,Internal Audit,Nelnet,Lincoln(NE),2019-12,2020-04,58000,0.3942 +IS Auditor I,Internal Audit,Nelnet,Lincoln(NE),2019-06,2019-12,41600,0.2500 +Internal Audit Intern,Internal Audit,Ameritas,Lincoln(NE),2018-02,2019-06,33280,1.2857 +Teaching Assistant,College of Business,University of Nebraska,Lincoln(NE),2017-08,2018-05,14560,-0.5000 +Community Management Intern,Store/Retail,Walgreens,Lincoln(NE),2017-06,2018-02,29120,0.0000 diff --git a/content/templates/base.html b/content/templates/base.html index 19c5509..c012e65 100644 --- a/content/templates/base.html +++ b/content/templates/base.html @@ -1,52 +1,80 @@ -{# Page layout for org-ssg. +{# Page layout for org-ssg, mirroring theme/templates/base.html. - Styling comes from styles.css, a verbatim copy of theme/static/styles.css — the - stylesheet weblorg already serves. org-ssg publishes assets from inside its source - directory, so the copy lives here; `diff content/styles.css theme/static/styles.css` - should stay empty, or consolidate the two if you migrate for real. + Styling comes from styles.css, copied here from theme/static/ along with gpg.txt, + robots.txt and salary.csv — org-ssg publishes assets from inside its source + directory, and weblorg's live static root is theme/static/. The copies should stay + identical: `diff content/styles.css theme/static/styles.css` and friends should + print nothing, or consolidate the two if you migrate for real. weblorg links the + minified styles.min.css instead; that file is gitignored build output, and the rules + are the same, so the tracked stylesheet is the one to publish from here. - Available here: page (.title .url .date .date_iso .tags .excerpt .toc .keywords), - site, nav, root, stylesheet. See the org-ssg guide chapter on Templates. #} + Available here: page (.title .url .source .date .date_iso .tags .excerpt .toc + .keywords), site, nav, root, stylesheet. See the org-ssg guide on Templates. #} <!DOCTYPE html> <html lang="{{ site.language }}"> <head> <meta charset="utf-8"> +<title>{% block subtitle %}{{ page.title }} - {% endblock %}{{ site.title }}</title> <meta name="viewport" content="width=device-width, initial-scale=1"> -<title>{{ page.title }} · {{ site.title }}</title> -{%- if site.base_url %} -<link rel="canonical" href="{{ page.url | absolute }}"> -{%- endif %} -{%- if page.excerpt %} -<meta name="description" content="{{ page.excerpt | truncate(150) }}"> -{%- endif %} -<link rel="stylesheet" href="{{ root }}styles.css"> +<meta name="author" content="Christian Cleberg <[email protected]>"> +<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | truncate(150) }}{% else %}{{ site.description }}{% endif %}"> +<meta property="og:title" content="{{ page.title }}"> +<meta property="og:url" content="{{ page.url | absolute | replace("index.html", "") }}"> +<meta property="og:description" content="{% if page.excerpt %}{{ page.excerpt | truncate(150) }}{% else %}{{ site.description }}{% endif %}"> +<link rel="canonical" href="{{ page.url | absolute | replace("index.html", "") }}"> +<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ root }}feed.xml"> +<link rel="stylesheet" href="{{ root }}styles.css" type="text/css"> +<link rel="icon" href="data:,"> +{#- rel="me" identity links. weblorg's base.html writes the last one as <a>, which a + browser hoists out of <head>; <link> is the spelling that stays where it is put. #} +<link href="https://github.com/ccleberg" rel="me"> +<link href="https://gitlab.com/ccleberg" rel="me"> +<link href="mailto:[email protected]" rel="me"> +<link href="https://c.im/@cmc" rel="me"> {%- if stylesheet %} <link rel="stylesheet" href="{{ stylesheet }}"> {%- endif %} </head> <body> -<header> -<nav> +<a href="#main-content" class="skip-link">Skip to content</a> + +<nav aria-label="Site Navigation"> <ul> -<li><a href="{{ root }}index.html">{{ site.title }}</a></li> +<li><a href="{{ root }}index.html">Home</a></li> {%- for item in nav %} <li><a href="{{ item.url }}">{{ item.title }}</a></li> {%- endfor %} </ul> </nav> -</header> -<main> + +<main id="main-content"> +{% block main %} +<article> <h1>{{ page.title }}</h1> {%- if page.date_iso %} -<p><time datetime="{{ page.date_iso }}">{{ page.date_iso }}</time></p> +<p><time datetime="{{ page.date_iso }}">{{ page.date_iso }}</time>{% if page.excerpt %} · {{ page.excerpt }}{% endif %}</p> {%- endif %} {%- if page.tags %} <p>{% for tag in page.tags %}<a href="{{ root }}tags/{{ tag }}.html">#{{ tag }}</a> {% endfor %}</p> {%- endif %} -{% block content %}{{ body | safe }}{% endblock %} +<div>{% block content %}{{ body | safe }}{% endblock %}</div> +{#- Blog posts carry a reply footer; other pages do not. org-ssg has no per-page + template selection, so the page's own URL is what tells them apart. #} +{%- if page.url is startingwith("blog/") %} +<div><a href="mailto:[email protected]">Reply via email →</a></div> +<div><i>...or, comment on this post on <a href="https://bubbles.town/source/cleberg.net">Bubbles</a>!</i></div> +{%- endif %} +</article> +{% endblock %} </main> + <footer> -<p><a href="{{ root }}index.html">{{ site.title }}</a> — {{ site.description }}</p> +<a href="https://git.krz.sh/cmc/cleberg.net.git/">Source</a> · +<a href="{{ root }}feed.xml">RSS</a> · +<a href="http://paske4urhs6nttrtlkuwa5cowum3fjkc6yv6kl4ncx3mjxcd77764nqd.onion/">Onion</a> · +<a href="{{ root }}tips/index.html">Tips</a> · +<a href="https://iheartrss.com/">I ♥ RSS</a> +<p>[ <a href="https://krz.sh">krz</a> · <a href="https://audit-labs.dev">audit labs</a> ]</p> </footer> </body> </html> diff --git a/content/templates/blog.html b/content/templates/blog.html new file mode 100644 index 0000000..ad6720a --- /dev/null +++ b/content/templates/blog.html @@ -0,0 +1,16 @@ +{# The blog index at /blog/, mirroring theme/templates/blog.html. + Separate from list.html because the live page carries its own prose. #} +{% extends "base.html" %} +{% block main %} +<h1>{{ page.title }}</h1> +<p>Use <code>⌘ F</code> / <code>Ctrl F</code> to search · <a href="{{ root }}feed.xml">RSS Feed</a></p> +<p>Want to browse by topic instead? Head over to the <a href="{{ root }}tags/index.html">tags</a> page.</p> +<ul class="post-list"> +{%- for entry in pages %} +<li class="post-list-item"> +{%- if entry.date_iso %}<time datetime="{{ entry.date_iso }}">{{ entry.date_iso }}</time>{% endif %} +<a href="{{ root }}{{ entry.url }}">{{ entry.title }}</a> +</li> +{%- endfor %} +</ul> +{% endblock %} diff --git a/content/templates/feed.xml b/content/templates/feed.xml new file mode 100644 index 0000000..0319910 --- /dev/null +++ b/content/templates/feed.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8" ?> +{#- The RSS feed at /feed.xml, mirroring theme/templates/feed.xml. A feed is read away + from the site that served it, so every URL here is absolute — which is what + `| absolute` needs [site] base_url for. + + One difference from weblorg: <description> carries each post's excerpt rather than its + full HTML. org-ssg gives a collection template each entry's metadata, not its rendered + body. #} +<rss version="2.0" + xmlns:content="http://purl.org/rss/1.0/modules/content/" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:atom="http://www.w3.org/2005/Atom"> + <channel> + <title>{{ site.title }}</title> + <atom:link href="{{ page.url | absolute }}" rel="self" type="application/rss+xml" /> + <link>{{ "index.html" | absolute | replace("index.html", "") }}</link> + <description>{{ site.description }}</description> + <language>{{ site.language }}</language> + <webMaster>[email protected] (Christian Cleberg)</webMaster> +{%- for post in pages %} + <item> + <title>{{ post.title }}</title> + <link>{{ post.url | absolute }}</link> + <guid isPermaLink="true">{{ post.url | absolute }}</guid> + <author>[email protected] (Christian Cleberg)</author> +{%- if post.date_iso %} + <pubDate>{{ post.date_iso | rfc822 }}</pubDate> +{%- endif %} +{%- for tag in post.tags %} + <category>{{ tag }}</category> +{%- endfor %} + <description>{{ post.excerpt }}</description> + </item> +{%- endfor %} + </channel> +</rss> diff --git a/content/templates/garden.html b/content/templates/garden.html new file mode 100644 index 0000000..9d21248 --- /dev/null +++ b/content/templates/garden.html @@ -0,0 +1,30 @@ +{# The garden index at /garden/, mirroring theme/templates/garden.html. + Notes are listed by title and description rather than by date. #} +{% extends "base.html" %} +{% block main %} +<h1>{{ page.title }}</h1> +<p>Notes in various states of growth. Some are stubs, some are developed. Browse +around.</p> +<section> +<h2>🌳 The Growth Stages</h2> +<p>Instead of dates, these metadata labels show how mature a page is:</p> +<span><strong>🌱 Seedlings:</strong> Rough notes, raw ideas, or "half-baked" +thoughts.</span><br> +<span><strong>🌿 Budding:</strong> Notes that have some structure and a few +internal links.</span><br> +<span><strong>🌳 Evergreen:</strong> High-conviction ideas that are +well-researched and stable.</span><br> +<span><strong>🍂 Compost:</strong> Ideas you no longer agree with but want to +keep for historical context.</span><br><br> +</section> +<ul> +{%- for entry in pages %} +<li> +<a href="{{ root }}{{ entry.url }}">{{ entry.title }}</a> +{%- if entry.excerpt %} +<span>{{ entry.excerpt }}</span> +{%- endif %} +</li> +{%- endfor %} +</ul> +{% endblock %} diff --git a/content/templates/home.html b/content/templates/home.html index be5a0e6..8333312 100644 --- a/content/templates/home.html +++ b/content/templates/home.html @@ -2,10 +2,13 @@ A generated page, so it has no source .org file — `pages` holds the blog collection's entries, newest first, and the prose lives here. This mirrors what weblorg's - theme/templates/index.html does today. #} + theme/templates/index.html does today, including its bare <title>: the home page is + "cleberg.net" and not "cleberg.net - cleberg.net". #} {% extends "base.html" %} -{% block content %} +{% block subtitle %}{% endblock %} +{% block main %} <section> +<h1>{{ page.title }}</h1> <p>[ <a href="https://krz.sh">krz</a> · <a href="https://audit-labs.dev">audit labs</a> ]</p> <p>Privacy · Self-Hosting · iOS</p> <p>I build tools, write about systems, and run my own infrastructure. Focused on privacy, @@ -35,7 +38,7 @@ user control, and long-term utility.</p> <ul> <li>cgit (primary): <a href="https://git.krz.sh">~cmc</a></li> <li>GitHub (mirror): <a href="https://github.com/ccleberg">@ccleberg</a></li> -<li>Email: <a href="mailto:[email protected]">[email protected]</a></li> +<li>Email: <a href="mailto:[email protected]">[email protected]</a> (<a href="{{ root }}gpg.txt">GPG</a>)</li> <li>Lemmy: <a href="https://r.nf/u/cmc">@cmc</a></li> <li>Mastodon: <a href="https://c.im/@cmc">@cmc</a></li> <li>Pixelfed: <a href="https://gram.social/cmc">@cmc</a></li> diff --git a/content/templates/tags.html b/content/templates/tags.html index 9702f59..094d1f6 100644 --- a/content/templates/tags.html +++ b/content/templates/tags.html @@ -1,7 +1,9 @@ -{# The tag index at /tags/. Receives `groups` — every tag with its count — rather than - `pages`, because it lists tags and not posts. #} +{# The tag index at /tags/, mirroring theme/templates/tags.html. Receives `groups` — + every tag with its count — rather than `pages`, because it lists tags and not posts. #} {% extends "base.html" %} -{% block content %} +{% block main %} +<h1>{{ page.title }}</h1> +<p>Browse posts by topic.</p> <ul> {%- for tag in groups %} <li><a href="{{ root }}{{ tag.url }}">{{ tag.name }}</a> ({{ tag.count }})</li> |
