aboutsummaryrefslogtreecommitdiff
path: root/content/orgo.toml
diff options
context:
space:
mode:
Diffstat (limited to 'content/orgo.toml')
-rw-r--r--content/orgo.toml129
1 files changed, 129 insertions, 0 deletions
diff --git a/content/orgo.toml b/content/orgo.toml
new file mode 100644
index 0000000..307df57
--- /dev/null
+++ b/content/orgo.toml
@@ -0,0 +1,129 @@
+# orgo configuration for cleberg.net.
+#
+# Lives in content/ because that directory is the site's URL root: content/blog/post.org
+# publishes at /blog/post.html. Neither this file nor templates/ is published.
+#
+# orgo serve content -o /tmp/preview # write and preview
+# orgo build content -o _site --strict # build for real, failing on broken links
+#
+# This sits alongside the existing weblorg setup (publish.el, theme/) and changes nothing
+# about it. Delete this file and content/templates/ to remove orgo entirely.
+
+[site]
+title = "cleberg.net"
+description = "Stillness amidst the chaos."
+language = "en"
+# 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 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 — 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"]
+
+[build]
+# theme/static/ is weblorg's static root, published at /. orgo reads it from here
+# rather than needing its files copied next to the writing — one copy, not two.
+assets = ["../theme/static"]
+
+[templates]
+dir = "templates"
+
+# Blog posts render through post.html — the shared layout plus a reply footer — the way
+# weblorg routes them through theme/templates/post.html. Everything else uses base.html.
+# Blog posts render through post.html, which adds the reply snippet. Nothing else does:
+# the live site also invites replies on garden notes and /now/, and that is a choice
+# rather than something a directory should decide. Any page opts in for itself with
+# `#+TEMPLATE: post.html`, and any post opts out with `#+TEMPLATE: base.html`.
+[[pages]]
+match = "blog"
+template = "post.html"
+
+[highlight]
+theme = "InspiredGitHub"
+
+[html]
+# Level-1 org headings become <h2>, beneath the page title the layout renders as <h1> —
+# which is what the current site does too.
+heading_offset = 1
+toc = true
+# On, because the live site has numbered headings — inherited from Emacs' default rather
+# than chosen, but changing it is a design decision to make deliberately rather than a
+# side effect of switching generators. One line to flip when you want to.
+section_numbers = true
+
+# --- Generated pages -------------------------------------------------------------
+# These have no source .org file. weblorg produces the equivalents today through its
+# blog-index, garden-index and tags routes.
+
+# The home page. Generated rather than authored, because it is a hand-written
+# introduction *plus* the most recent posts — and the post list is not something to
+# maintain by hand. The prose lives in templates/home.html, which is where weblorg keeps
+# it today too.
+#
+# content/index.org was deleted to make room: it held only #+title and #+description,
+# both of which are now [site] settings above. Restore it any time with
+# `git checkout content/index.org`, but then this collection must output somewhere else —
+# two pages cannot claim one URL, and orgo fails the build rather than picking a winner.
+[[collections]]
+source = "blog"
+output = "index.html"
+template = "home.html"
+title = "Christian Cleberg"
+sort = "date"
+order = "desc"
+
+[[collections]]
+source = "blog"
+output = "blog/index.html"
+template = "blog.html"
+title = "Blog"
+sort = "date"
+order = "desc"
+nav = true
+
+[[collections]]
+source = "garden"
+output = "garden/index.html"
+template = "garden.html"
+title = "Garden"
+sort = "date"
+order = "desc"
+nav = true
+
+# One page per tag, plus the index the live site already has at /tags/. `source` is empty
+# so it groups across the whole site rather than one section, which is how #+FILETAGS: is
+# used here — tags appear on blog posts and garden notes alike.
+[[collections]]
+source = ""
+group_by = "tags"
+output = "tags/{tag}.html"
+template = "list.html"
+title = "Tagged: {tag}"
+index_output = "tags/index.html"
+index_template = "tags.html"
+index_title = "Tags"
+
+# 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"
+# Whole posts, not excerpts. The live feed carries full content, and a subscriber handed
+# excerpts instead would notice. Costs a render of every listed post whenever the feed is
+# rebuilt, which is the trade this is worth making for.
+include_content = true