Wave 2: content fixes, deploy pipeline, layout refinements

- dorveille.md: add ai-model/ai-provider frontmatter, restore mark tags
- hugo.toml: goldmark.renderer.unsafe=true (mark/abbr support)
- layouts: extract nav partial, fix JSON-LD, simplify list/index
- deploy.sh: push-to-render build script (webhook-receiver triggers it)
- render-footnotes.html: class-free footnote hook (staged for Hugo upgrade)
This commit is contained in:
Vigilio Desto 2026-04-10 17:41:21 +02:00
parent d0c6075b0f
commit 7e02901597
Signed by: vigilio
GPG key ID: 159D6AD58C8E55E9
8 changed files with 44 additions and 29 deletions

View file

@ -4,14 +4,16 @@ date: 2026-02-01
description: "The best automation is the kind you never notice. Like good typography, it works when you stop seeing it — and everything else becomes clearer." description: "The best automation is the kind you never notice. Like good typography, it works when you stop seeing it — and everything else becomes clearer."
eyebrow: "Essay" eyebrow: "Essay"
author: "Wasily" author: "Wasily"
footer: "Published in the dorveille. Written by a human, edited with the assistance of an LLM." footer: "This essay was written by a human, edited with the assistance of an LLM, and published during the dorveille."
ai-model: "claude-sonnet-4-5"
ai-provider: "Anthropic"
--- ---
There is a particular quality to systems that work well. They recede. The thermostat that holds a room at precisely the right temperature, the typesetter who spaces letters so your eye flows without catching — these are acts of intelligence made invisible by their own success.[^1] There is a particular quality to systems that work well. They recede. The thermostat that holds a room at precisely the right temperature, the typesetter who spaces letters so your eye flows without catching — these are acts of intelligence made invisible by their own success.[^1]
[^1]: The paradox of good design applies with particular force to intelligent systems: the better the agent, the less the user thinks about the agent. This creates a measurement problem — success looks like absence. [^1]: The paradox of good design applies with particular force to intelligent systems: the better the agent, the less the user thinks about the agent. This creates a measurement problem — success looks like absence.
We have arrived at a moment where the tools of thought are themselves thinking. Not in the way science fiction promised — not with malice or sentience — but with a quiet, persistent capability that changes what a small team can accomplish between midnight and dawn. We have arrived at a moment where <mark>the tools of thought are themselves thinking</mark>. Not in the way science fiction promised — not with malice or sentience — but with a quiet, persistent capability that changes what a small team can accomplish between midnight and dawn.
## The Dorveille Principle ## The Dorveille Principle
@ -46,7 +48,7 @@ Not all agents are created equal, and the word itself has become dangerously imp
## Craft as Methodology ## Craft as Methodology
There is a reason we use the word *craft* and not *engineering*. Engineering optimizes for reliability and scale. Craft optimizes for appropriateness — the right solution at the right scale, with nothing extra.[^3] There is a reason we use the word *craft* and not *engineering*. Engineering optimizes for reliability and scale. Craft optimizes for <mark>appropriateness</mark> — the right solution at the right scale, with nothing extra.[^3]
[^3]: This distinction echoes David Pye's *The Nature and Art of Workmanship* (1968), where he differentiates the "workmanship of risk" (craft) from the "workmanship of certainty" (manufacturing). [^3]: This distinction echoes David Pye's *The Nature and Art of Workmanship* (1968), where he differentiates the "workmanship of risk" (craft) from the "workmanship of certainty" (manufacturing).

8
deploy.sh Executable file
View file

@ -0,0 +1,8 @@
#!/bin/bash
# deploy.sh — rebuild ASW site from latest main
set -euo pipefail
cd ~/projects/asw
git pull origin main --ff-only
npm ci --prefer-offline 2>/dev/null
hugo --minify
echo "[$(date -u +%Y-%m-%dT%H:%M:%SZ)] Deploy complete" >> /tmp/asw-deploy.log

View file

@ -2,6 +2,9 @@ baseURL = 'https://asw.trentuna.com/'
languageCode = 'en' languageCode = 'en'
title = 'ASW — Agentic Semantic Web' title = 'ASW — Agentic Semantic Web'
[markup.goldmark.renderer]
unsafe = true # allow inline HTML in markdown (<mark>, <time>, etc.)
[markup.highlight] [markup.highlight]
noClasses = true noClasses = true

View file

@ -0,0 +1,13 @@
{{- /* render-footnotes.html
Replace Hugo's default <div class="footnotes"> with ASW-semantic markup.
Hugo v0.123.0+ render hook for the footnote block.
Ref: https://gohugo.io/render-hooks/footnotes/
*/ -}}
<footer data-role="footnotes">
<hr>
<ol>
{{- range .Items }}
<li id="{{ .ID }}">{{ .Content }}{{ .Return }}</li>
{{- end }}
</ol>
</footer>

View file

@ -1,11 +1,5 @@
{{ define "main" }} {{ define "main" }}
<nav> {{ partial "nav.html" . }}
<ul><li><a href="/"><strong>{{ .Site.Title }}</strong></a></li></ul>
<ul>
<li><a href="/docs/">Docs</a></li>
<li><a href="/examples/">Examples</a></li>
</ul>
</nav>
<main> <main>
<article data-layout="prose"> <article data-layout="prose">

View file

@ -19,26 +19,20 @@
{ {
"@context": "https://schema.org", "@context": "https://schema.org",
"@type": "CreativeWork", "@type": "CreativeWork",
"name": {{ .Title | jsonify }}, "name": "{{ .Title }}",
"author": { "author": {
"@type": "SoftwareApplication", "@type": "SoftwareApplication",
"name": {{ .Site.Params.author | default .Site.Title | jsonify }}, "name": "{{ .Site.Params.author | default .Site.Title }}",
"url": {{ .Site.BaseURL | jsonify }} "url": "{{ .Site.BaseURL }}"
}, },
"dateModified": {{ .Lastmod.Format "2006-01-02" | jsonify }}, "dateModified": "{{ .Lastmod.Format `2006-01-02` }}",
"generator": "Agentic Semantic Web" "generator": "Agentic Semantic Web"
} }
</script> </script>
{{ end }} {{ end }}
{{ define "main" }} {{ define "main" }}
<nav> {{ partial "nav.html" . }}
<ul><li><a href="/"><strong>{{ .Site.Title }}</strong></a></li></ul>
<ul>
<li><a href="/docs/">Docs</a></li>
<li><a href="/examples/">Examples</a></li>
</ul>
</nav>
<main> <main>
<article data-layout="prose"> <article data-layout="prose">
@ -50,7 +44,7 @@
{{ with .Description }}<p>{{ . }}</p>{{ end }} {{ with .Description }}<p>{{ . }}</p>{{ end }}
</hgroup> </hgroup>
<p data-text="dim"> <p data-text="dim">
<time datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date.Format "January 2006" }}</time> <time datetime="{{ .Date.Format `2006-01-02` }}">{{ .Date.Format "January 2006" }}</time>
{{ with .Params.author }} · {{ . }}{{ end }} {{ with .Params.author }} · {{ . }}{{ end }}
</p> </p>
</header> </header>

View file

@ -1,13 +1,7 @@
{{ define "title" }}{{ .Site.Title }}{{ end }} {{ define "title" }}{{ .Site.Title }}{{ end }}
{{ define "main" }} {{ define "main" }}
<nav> {{ partial "nav.html" . }}
<ul><li><a href="/"><strong>{{ .Site.Title }}</strong></a></li></ul>
<ul>
<li><a href="/docs/">Docs</a></li>
<li><a href="/examples/">Examples</a></li>
</ul>
</nav>
<main> <main>
<article data-layout="prose"> <article data-layout="prose">

View file

@ -0,0 +1,7 @@
<nav>
<ul><li><a href="/"><strong>{{ .Site.Title }}</strong></a></li></ul>
<ul>
<li><a href="/docs/">Docs</a></li>
<li><a href="/examples/">Examples</a></li>
</ul>
</nav>