From 14be77c0cda02e81fadf0b8e8138dc622df3fbdb Mon Sep 17 00:00:00 2001
From: Rito Rhymes <83614463+ritorhymes@users.noreply.github.com>
Date: Sun, 22 Feb 2026 18:12:56 -0500
Subject: [PATCH 1/2] add footer with navigation links to all pages
The architecture and reply-to-this pages were orphaned
with no way to navigate to or between them.
Add a simple footer with horizontal flexbox links to provide basic
site navigation.
Also normalize unquoted `href`/`src` attributes before
parsing generated HTML in `graphviz-ssr.js`.
This prevents `node-html-parser` from rewriting links like
`href=../architecture/` into empty anchors during SSR.
---
assets/sass/main.scss | 23 +++++++++++++++++++++++
layouts/_default/index.html | 1 +
layouts/_default/single.html | 1 +
layouts/partials/footer.html | 13 +++++++++++++
script/graphviz-ssr.js | 5 ++++-
5 files changed, 42 insertions(+), 1 deletion(-)
create mode 100644 layouts/partials/footer.html
diff --git a/assets/sass/main.scss b/assets/sass/main.scss
index 371969f..78a8d21 100644
--- a/assets/sass/main.scss
+++ b/assets/sass/main.scss
@@ -78,6 +78,29 @@ div.feature-matrix {
vertical-align: center;
}
}
+footer nav ul {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.5em 1em;
+ justify-content: center;
+ text-align: center;
+}
+footer nav ul li a {
+ text-decoration: none;
+}
+.footer-favicon {
+ width: 24px;
+ height: 24px;
+ display: block;
+}
+.footer-home-link {
+ display: block;
+ width: 24px;
+ margin: 0.75em auto 0;
+}
@media screen and (max-width: 450px) {
big {
font-size: 300%;
diff --git a/layouts/_default/index.html b/layouts/_default/index.html
index 80ee303..dc1e8ef 100644
--- a/layouts/_default/index.html
+++ b/layouts/_default/index.html
@@ -1,3 +1,4 @@
{{ define "main" }}
{{ .Content | replaceRE "(
)" `${1} # ${3}` | safeHTML }}
+{{ partial "footer.html" . }}
{{ end }}
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index 0e25fd1..22bc9f8 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -2,4 +2,5 @@
{{ .Content }}
+{{ partial "footer.html" . }}
{{ end }}
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
new file mode 100644
index 0000000..a36e139
--- /dev/null
+++ b/layouts/partials/footer.html
@@ -0,0 +1,13 @@
+
diff --git a/script/graphviz-ssr.js b/script/graphviz-ssr.js
index fdc5f65..b3f4a47 100755
--- a/script/graphviz-ssr.js
+++ b/script/graphviz-ssr.js
@@ -13,7 +13,10 @@ import Viz from "../static/js/viz-global.js"
for (const { Path: pathInPublic } of JSON.parse(readFileSync("public/diagram-list.json", "utf-8"))) {
const path = `public${pathInPublic}.html`
const contents = readFileSync(path, "utf-8")
- const html = parse(contents)
+ // `node-html-parser` can misparse unquoted URLs ending in `/` (e.g. `href=../architecture/`)
+ // and rewrite links as empty anchors. Quote these attribute values before parsing.
+ const normalized = contents.replace(/\b(href|src)=([^"'`\s>]+)/g, '$1="$2"')
+ const html = parse(normalized)
const vizImport = html.querySelector('script[src$="viz-global.js"]')
if (!vizImport) {
console.error(`No 'viz-global.js' import found in ${path}; skipping`)
From d4f92f86b531f2a87668ff65e81458b166ee1d9f Mon Sep 17 00:00:00 2001
From: Rito Rhymes <83614463+ritorhymes@users.noreply.github.com>
Date: Sun, 22 Feb 2026 18:17:21 -0500
Subject: [PATCH 2/2] add JSON-LD breadcrumb structured data
Add schema.org BreadcrumbList markup to help search
engines understand the site hierarchy. The home page
gets a single breadcrumb; sub-pages get Home plus the
current page title.
---
layouts/_default/baseof.html | 1 +
layouts/partials/breadcrumbs.html | 20 ++++++++++++++++++++
2 files changed, 21 insertions(+)
create mode 100644 layouts/partials/breadcrumbs.html
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 62ae931..bb929e2 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -7,6 +7,7 @@
{{- $style := resources.Get "sass/main.scss" | resources.ExecuteAsTemplate "main.scss" . | css.Sass }}
+ {{- partial "breadcrumbs.html" . -}}
{{ partial "banner.html" . -}}
diff --git a/layouts/partials/breadcrumbs.html b/layouts/partials/breadcrumbs.html
new file mode 100644
index 0000000..7d897b1
--- /dev/null
+++ b/layouts/partials/breadcrumbs.html
@@ -0,0 +1,20 @@
+