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:
parent
d0c6075b0f
commit
7e02901597
8 changed files with 44 additions and 29 deletions
|
|
@ -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
8
deploy.sh
Executable 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
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
13
layouts/_default/_markup/render-footnotes.html
Normal file
13
layouts/_default/_markup/render-footnotes.html
Normal 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>
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
7
layouts/partials/nav.html
Normal file
7
layouts/partials/nav.html
Normal 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>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue