Conversation
Rebuilt against current main, which has moved to a Cloudflare Worker and
already carries the Bridgeport and Clausing naming, the tool photos, and the
working Givebutter embed. None of that is touched here.
Zones. /tools/ now groups tool pages under the zone they live in, defined once
in data/zones.yaml and themed from an accent emitted into the stylesheet as a
custom property:
Woodworking woodshop, CNC router
Machining Bridgeport mill, Clausing lathe
Digital fabrication 3D printers, 80 W laser cutter
Electronics soldering and test equipment
Crafting sewing, vinyl, paint, bench space
Metalworking kiln for casting and heat treating, welding
metal-shop is split into machine-shop and welding, crafting is new, and
/tools/metal-shop/ is redirected. The five tool pages that the open images PR
also touches get one added `zone:` line and lose the now-duplicated Zone spec
row, to keep that conflict trivial.
Email list. {{< subscribe >}} on /classes/ and /events/, linked from the footer,
handled by src/subscribe.js as a Worker route. Addresses go to Cloudflare KV
rather than a third-party service, keyed by lowercased email so a second signup
updates one row. Turnstile on the same set-both-or-neither basis as the contact
form, plus a honeypot, a required consent box, and a per-IP throttle. The form
states plainly what the list is and is not. GET /api/subscribers exports CSV
behind SUBSCRIBERS_EXPORT_TOKEN and 404s without it. /api/health reports the new
bindings.
Appearance. Colour now lives in text and single rules only: no glyphs before
labels, no pastel fills behind tags, no tint wash behind zone headers, no
trailing arrows in link text. Typography moves to Arial with Consolas for small
labels, so nothing is downloaded and text paints on the first frame.
Contact page. A two-col block nested inside .prose was capped at 72ch, so each
column rendered 306px on a 1280px desktop. Pages opt out with `wide: true` and
the map moves below at full width.
Fixes a pre-existing JSON-LD bug: inside a ld+json script the template engine
already JSON-encodes each value, so the jsonify pipes produced "\"https://...\""
with literal quotes for url, logo, EIN, email and the postal address.
Content: casting is aluminium only, the cost section carries the City of
Columbia Office of Cultural Affairs credit, training reads as discounted rather
than free, membership dues confirmed at $50 and $100, wiki linked from several
more pages, and the battlebots clip added as a news post and a homepage feature.
Em dashes removed repo-wide.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
Author
|
this PR sucks |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rebuilt against current main, which has moved to a Cloudflare Worker and already carries the Bridgeport and Clausing naming, the tool photos, and the working Givebutter embed. None of that is touched here.
Zones. /tools/ now groups tool pages under the zone they live in, defined once in data/zones.yaml and themed from an accent emitted into the stylesheet as a custom property:
Woodworking woodshop, CNC router
Machining Bridgeport mill, Clausing lathe
Digital fabrication 3D printers, 80 W laser cutter
Electronics soldering and test equipment
Crafting sewing, vinyl, paint, bench space
Metalworking kiln for casting and heat treating, welding
metal-shop is split into machine-shop and welding, crafting is new, and /tools/metal-shop/ is redirected. The five tool pages that the open images PR also touches get one added
zone:line and lose the now-duplicated Zone spec row, to keep that conflict trivial.Email list. {{< subscribe >}} on /classes/ and /events/, linked from the footer, handled by src/subscribe.js as a Worker route. Addresses go to Cloudflare KV rather than a third-party service, keyed by lowercased email so a second signup updates one row. Turnstile on the same set-both-or-neither basis as the contact form, plus a honeypot, a required consent box, and a per-IP throttle. The form states plainly what the list is and is not. GET /api/subscribers exports CSV behind SUBSCRIBERS_EXPORT_TOKEN and 404s without it. /api/health reports the new bindings.
Appearance. Colour now lives in text and single rules only: no glyphs before labels, no pastel fills behind tags, no tint wash behind zone headers, no trailing arrows in link text. Typography moves to Arial with Consolas for small labels, so nothing is downloaded and text paints on the first frame.
Contact page. A two-col block nested inside .prose was capped at 72ch, so each column rendered 306px on a 1280px desktop. Pages opt out with
wide: trueand the map moves below at full width.Fixes a pre-existing JSON-LD bug: inside a ld+json script the template engine already JSON-encodes each value, so the jsonify pipes produced ""https://..."" with literal quotes for url, logo, EIN, email and the postal address.
Content: casting is aluminium only, the cost section carries the City of Columbia Office of Cultural Affairs credit, training reads as discounted rather than free, membership dues confirmed at $50 and $100, wiki linked from several more pages, and the battlebots clip added as a news post and a homepage feature. Em dashes removed repo-wide.