From 43188589ab8acedfb3d578263e3d1ce6c6046e7d Mon Sep 17 00:00:00 2001 From: Jonathon Wright Date: Mon, 17 Aug 2026 23:21:38 +1000 Subject: [PATCH] sweep the last typographic punctuation out of the components and data files --- src/components/About.astro | 2 +- src/components/CircuitDivider.astro | 2 +- src/components/Constellation.astro | 16 ++++----- src/components/Contact.astro | 2 +- src/components/Diagram.astro | 4 +-- src/components/DossierThumb.astro | 6 ++-- src/components/Footer.astro | 6 ++-- src/components/Hero.astro | 10 +++--- src/components/Nav.astro | 8 ++--- src/components/ProjectCard.astro | 2 +- src/components/Section.astro | 2 +- src/components/SkillGroup.astro | 4 +-- src/content.config.ts | 6 ++-- src/content/projects/edge-ai-platform.md | 14 ++++---- .../projects/global-infra-modernisation.md | 26 +++++++------- src/content/projects/gpu-as-code.md | 16 ++++----- src/content/projects/iac-fleet-automation.md | 22 ++++++------ .../projects/network-automation-fleet.md | 36 +++++++++---------- .../projects/self-hosted-ai-homelab.md | 24 ++++++------- src/data/experience.ts | 22 ++++++------ src/data/fleet.ts | 10 +++--- src/data/site.ts | 4 +-- src/data/skills.ts | 24 ++++++------- src/data/socials.ts | 2 +- src/layouts/Layout.astro | 4 +-- src/lib/build-info.ts | 2 +- src/pages/404.astro | 2 +- src/pages/blog/[slug].astro | 2 +- src/pages/blog/index.astro | 2 +- src/pages/blog/tags/[tag].astro | 2 +- src/pages/index.astro | 2 +- src/pages/projects/[slug].astro | 2 +- src/pages/projects/index.astro | 4 +-- src/pages/rss.xml.ts | 2 +- src/scripts/anim.ts | 24 ++++++------- 35 files changed, 159 insertions(+), 159 deletions(-) diff --git a/src/components/About.astro b/src/components/About.astro index 76b6ff3..d8ec233 100644 --- a/src/components/About.astro +++ b/src/components/About.astro @@ -59,7 +59,7 @@ const olderCount = experience.length - recent.length; {olderCount > 0 && (

- + {olderCount} earlier roles (ELGAS, Darktime){cvAvailable ? " — see the CV" : ""}. + + {olderCount} earlier roles (ELGAS, Darktime){cvAvailable ? " - see the CV" : ""}.

)} diff --git a/src/components/CircuitDivider.astro b/src/components/CircuitDivider.astro index e7a6038..d35beae 100644 --- a/src/components/CircuitDivider.astro +++ b/src/components/CircuitDivider.astro @@ -1,5 +1,5 @@ --- -// Circuit divider — gradient hairlines meeting two rotated-square "diamonds" +// Circuit divider - gradient hairlines meeting two rotated-square "diamonds" // (cyan, magenta). Pure CSS, from the design handoff. --- diff --git a/src/components/Constellation.astro b/src/components/Constellation.astro index 5fd49fa..9715869 100644 --- a/src/components/Constellation.astro +++ b/src/components/Constellation.astro @@ -1,7 +1,7 @@ --- -// The fleet constellation — 6 real nodes as IC chips on PCB traces. +// The fleet constellation - 6 real nodes as IC chips on PCB traces. // Pure SVG + scoped CSS keyframes (zero JS; reduced-motion turns every animation off). -// Anatomy per the design handoff: each route is TWO parallel traces (offset ±(2,-3)) — +// Anatomy per the design handoff: each route is TWO parallel traces (offset ±(2,-3)) - // one carries a cyan packet outbound, the other a magenta packet inbound. Packets are // stroke-dasharray 9/127 sliding via stroke-dashoffset. Hub = cave (56px chip, radar ring). --- @@ -42,7 +42,7 @@ - + @@ -110,7 +110,7 @@ cave - + @@ -136,13 +136,13 @@ wgirl - + elfastc - + nvidia compute @@ -230,7 +230,7 @@ } .cap--dim { fill: #5c6a82; font-size: 9px; } .cap--key { fill: #7e8ba1; font-size: 9px; } - /* gloss bat-black with a faint gold ring — the batcave swatch for core/services */ + /* gloss bat-black with a faint gold ring - the batcave swatch for core/services */ .key--bat { fill: #10131c; stroke: rgba(245, 197, 24, 0.55); @@ -245,7 +245,7 @@ animation: bzRing 3.6s ease-out infinite; } - /* dash pattern is 9+127 = a 136px period — the loop offset MUST be an exact multiple of it + /* dash pattern is 9+127 = a 136px period - the loop offset MUST be an exact multiple of it (2×136 = 272) or every packet dot visibly teleports at the loop seam. */ @keyframes bzDash { to { stroke-dashoffset: -272; } } @keyframes bzDashRev { to { stroke-dashoffset: 272; } } diff --git a/src/components/Contact.astro b/src/components/Contact.astro index 6749a27..73688ff 100644 --- a/src/components/Contact.astro +++ b/src/components/Contact.astro @@ -7,7 +7,7 @@ import { socials } from "../data/socials";

Open to conversations about platform engineering, edge infrastructure, and - GPU/AI systems. Based in {site.location} — for a low-ms reply, ping me on + GPU/AI systems. Based in {site.location} - for a low-ms reply, ping me on LinkedIn or email; everything else is best-effort delivery.

diff --git a/src/components/Diagram.astro b/src/components/Diagram.astro index 4252c5a..5b6a496 100644 --- a/src/components/Diagram.astro +++ b/src/components/Diagram.astro @@ -2,7 +2,7 @@ // Architecture diagrams as static SVG (authored to match the site style), shown on a // constant light card so the fixed-colour art stays legible in BOTH light and dark themes. // CSP-clean: a plain same-origin (img-src 'self'); no inline script, no web fonts. -// SVG sources live in /public/diagrams/.svg — the same files the blog posts embed. +// SVG sources live in /public/diagrams/.svg - the same files the blog posts embed. interface Props { name: string; caption?: string; @@ -14,7 +14,7 @@ const captions: Record = { "iac-fleet": "One source of truth → AWX/Ansible → identical edge nodes, even air-gapped", homelab: "Bare metal → GitOps clusters → services, exposed outbound-only via a tunnel", "authentik-sso": "One identity provider, 2FA at the flow; apps validate over an internal back channel", - "outbound-exposure": "No open ports — the origin dials out; the edge is the perimeter", + "outbound-exposure": "No open ports - the origin dials out; the edge is the perimeter", }; const cap = caption ?? captions[name]; --- diff --git a/src/components/DossierThumb.astro b/src/components/DossierThumb.astro index f4722d5..fb0cdef 100644 --- a/src/components/DossierThumb.astro +++ b/src/components/DossierThumb.astro @@ -25,7 +25,7 @@ const { kind = "generic" } = Astro.props; ) : kind === "homelab" ? ( <> - {/* hub and spokes — the fleet */} + {/* hub and spokes - the fleet */} @@ -56,7 +56,7 @@ const { kind = "generic" } = Astro.props; ) : kind === "globe" ? ( <> - {/* globe of regions — a modernised multi-region estate */} + {/* globe of regions - a modernised multi-region estate */} @@ -91,7 +91,7 @@ const { kind = "generic" } = Astro.props; ) : ( <> - {/* pipeline — commits flowing through gates to a fleet */} + {/* pipeline - commits flowing through gates to a fleet */} diff --git a/src/components/Footer.astro b/src/components/Footer.astro index a85e608..8c1d5b2 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -23,7 +23,7 @@ const emailHref = socials.find((s) => s.label === "Email")?.href;

$ whoami

{site.name} - {site.role} + - {site.role}

$ traceroute www.bztmon.com

@@ -42,7 +42,7 @@ const emailHref = socials.find((s) => s.label === "Email")?.href;

ping me on{" "} LinkedIn{" "} - or email — everything else is best-effort delivery. + or email - everything else is best-effort delivery.

@@ -168,7 +168,7 @@ import Constellation from "./Constellation.astro"; line-height: 1.05; letter-spacing: -0.005em; padding-bottom: 0.14em; - /* two-line nameplate (mock parity) — wrap at the space, keep the column clear + /* two-line nameplate (mock parity) - wrap at the space, keep the column clear of the constellation's left-most node labels */ max-width: min-content; background: @@ -219,7 +219,7 @@ import Constellation from "./Constellation.astro"; gap: var(--space-3); } - /* the typing bar — glass panel */ + /* the typing bar - glass panel */ .hero__fact { margin-top: var(--space-6); display: flex; @@ -232,7 +232,7 @@ import Constellation from "./Constellation.astro"; backdrop-filter: var(--panel-blur); -webkit-backdrop-filter: var(--panel-blur); /* one-liner: the box sizes to its fact (smaller type) and may run a little - past the copy column — there's clear board under it until the viz */ + past the copy column - there's clear board under it until the viz */ width: max-content; max-width: min(52rem, calc(100vw - 2 * var(--space-5))); min-height: 20px; @@ -304,7 +304,7 @@ import Constellation from "./Constellation.astro"; @media (max-width: 560px) { .hero__viz { display: none; } .hero__scroll { display: none; } - /* phones: the fact bar fills the column and WRAPS like a real terminal — + /* phones: the fact bar fills the column and WRAPS like a real terminal - the desktop one-liner (nowrap + max-content) busts a 390px viewport */ .hero__fact { font-size: 12px; diff --git a/src/components/Nav.astro b/src/components/Nav.astro index 6c858e0..6523886 100644 --- a/src/components/Nav.astro +++ b/src/components/Nav.astro @@ -5,7 +5,7 @@ import { site } from "../data/site"; // `id` ties a nav link to a homepage section so the Motion layer animates its // underline as that section scrolls through (scroll-spy). Projects/Blog navigate // to their own pages on click, but on the homepage they track the #projects and -// #writing sections so every nav item gets the underline — in both directions. +// #writing sections so every nav item gets the underline - in both directions. const links = [ { label: "About", href: "/#about", id: "about" }, { label: "Skills", href: "/#skills", id: "skills" }, @@ -17,7 +17,7 @@ const links = [