Skip to content

Fix build, restore lost content, and recreate the boxed two-column design#18

Merged
stefan-burke merged 21 commits into
mainfrom
claude/amazing-thompson-b7lrtw
Jun 12, 2026
Merged

Fix build, restore lost content, and recreate the boxed two-column design#18
stefan-burke merged 21 commits into
mainfrom
claude/amazing-thompson-b7lrtw

Conversation

@stefan-burke

@stefan-burke stefan-burke commented Jun 11, 2026

Copy link
Copy Markdown
Member

Summary

Gets the new blocks-layout build fully working, restores content lost in the WIP migration commit (verified against https://www.ukegroupnorth.com), and recreates the old site's boxed two-column design on top of the chobble-template design system.

Build fixes

  • Added _site to sourceExcludes in scripts/consts.js — previously, a build's output in the repo root got synced into the next build as src/_site, producing duplicate /_site/... pages and polluting the sitemap.
  • Excluded .build/ and _site/ from Biome config discovery — nested biome.json files in the merged template broke bun run lint.
  • Set deploy-only-on-main: true in the workflow — non-main branches have no staging Bunny CDN secrets, so the deploy step could never succeed; branches now build-only.

Restored content (vs live site)

  • Homepage (pages/home.md): was reduced to a "# Home" placeholder. Restored all original content in the new blocks format.
  • News posts: news/welcome.md and news/new-ukulele-workshop-event.md restored in blocks format with their original permalinks.
  • News index (pages/news.md): added an items block so the listing shows the posts.
  • The generated sitemap now matches the live site's sitemap URL-for-URL.

Boxed two-column design

  • _layouts/design-system-base.html (client override of the template layout):
    • Renders a banner header from each page's existing header_image / header_text / subtitle frontmatter, reusing the design system's image-background block markup (tinted, white overlaid title) — restoring the old banner headers and page <h1>s.
    • Wraps <main> in a .page-columns container and renders the right-content snippet's blocks in an <aside class="right-column">. The template already adds the two-columns body class when snippets/right-content.md exists; this supplies the missing markup half.
  • _layouts/page.html (client override): fixes a content-duplication bug — the template's page.html renders blocks, then design-system-base.html renders them again, so every pages/ page rendered its content twice. The override leaves blocks to the base layout.
  • css/theme.scss: rewritten for the design system — centred 1300px cream panels (nav, banner, content+sidebar, footer) with thin gold borders and soft shadows on a peach backdrop, a 18rem right sidebar grid on desktop (stacked below content on mobile, sticky mobile nav untouched), vertically stacked sidebar session cards, and centred headings, matching the previous live design.

Possible upstream improvements for chobble-template

  1. design-system-base.html could render the right-content snippet itself — getBodyClasses already detects the snippet and emits two-columns/one-column, but nothing renders it, so the class is currently dead. Upstreaming the aside + sidebar CSS would let this client delete its base-layout override.
  2. The page.html + design-system-base.html double render of blocks looks like a genuine template bug (any pages/ page with blocks renders everything twice).
  3. A built-in page banner driven by header_image / header_text frontmatter would smooth migration for old-template sites, which all carry those fields.

Verification

  • bun run build exits 0; bun run lint passes; template test-suite failure count is unchanged vs the branch baseline (pre-existing failures only).
  • Verified desktop and mobile rendering with Playwright screenshots against the live old design.

https://claude.ai/code/session_013xLFhQjE6SLLfEn3ygUkPt

stefan-burke and others added 5 commits June 10, 2026 21:52
…migration

- Exclude _site from source sync so previous build output doesn't pollute builds
- Exclude .build/_site from Biome config discovery (nested root configs broke lint)
- Restore full homepage content (sessions, lessons, quotes, locations, songbooks) in blocks format
- Restore the two news posts deleted in the WIP commit, converted to blocks format with original permalinks
- Add news items listing to the news index page

Local sitemap now matches https://www.ukegroupnorth.com exactly.

https://claude.ai/code/session_013xLFhQjE6SLLfEn3ygUkPt
- Override design-system-base.html to render a banner header from each
  page's header_image/header_text/subtitle (reusing the design system's
  image-background block markup) and to render the right-content snippet
  in an aside, wrapping main in a .page-columns container. The template
  already adds the two-columns body class when snippets/right-content.md
  exists; this supplies the missing markup.
- Override page.html to stop the duplicate block render (template's
  page.html renders blocks and design-system-base renders them again,
  doubling every page's content).
- Rewrite theme.scss: boxed 1300px cream panels (nav, banner, content +
  sidebar, footer) with gold borders on a peach backdrop, 16rem-ish right
  sidebar grid on desktop, stacked sidebar sessions list, centred
  headings, matching the previous live site.

https://claude.ai/code/session_013xLFhQjE6SLLfEn3ygUkPt
@stefan-burke stefan-burke changed the title Fix build and restore content lost in blocks-layout migration Fix build, restore lost content, and recreate the boxed two-column design Jun 11, 2026
claude and others added 16 commits June 11, 2026 20:00
- Rename the client layout override to base.html to match the template's
  new layout name (design-system-base.html and page.html were removed
  upstream; layout now comes from src.11tydata.js). The page.html
  override is no longer needed since upstream fixed the double block
  render by deleting that layout.
- Rewrite the GoatCounter inline script without arrow functions: the
  template's linkify transform now HTML-escapes '>' inside inline
  scripts, which turned '=>' into '=&gt;' and broke all site JS
  (sliders, reveal animations, search).

https://claude.ai/code/session_013xLFhQjE6SLLfEn3ygUkPt
…ocks

- Every page, event, and news post now declares its banner as a leading
  image-background block (tinted, with the title as an h1 and former
  subtitle as a paragraph) instead of bespoke header_image/header_text
  frontmatter.
- base.html override hoists a page's leading image-background block above
  the .page-columns container so the banner spans content + sidebar; the
  bespoke banner markup is gone.
- Pages drop their now-unused subtitle frontmatter (events and news keep
  theirs for item cards and the news post header include).
- Update .pages.yml CMS fields to match (header fields removed, pages
  keyed by name instead of header_text).

https://claude.ai/code/session_013xLFhQjE6SLLfEn3ygUkPt
- Override the design-system bundle entry to configure the design
  system's !default variables via 'with ()' — smaller heading sizes
  (h1 2rem, h2 1.5rem desktop, matching the old live site) and a 6px
  spacing unit (25% tighter gaps and section padding). The template's
  documented _theme-variables.scss mechanism doesn't work: its forwarded
  variables are shadowed by _variables.scss's own !default declarations,
  so module configuration is the only working route.
- Fix inconsistent sidebar width: min-width: 0 on main stops wide
  children (sliders, 1200px containers) blowing the 1fr grid track past
  the panel width and shoving the sidebar. Sidebar pinned at 16rem to
  match the old site.

https://claude.ai/code/session_013xLFhQjE6SLLfEn3ygUkPt
Replace the bundle-entry override with plain CSS overrides in theme.scss
(loaded last in the design-system bundle, so same-specificity rules win):
compact heading sizes, prose gap/line-height, block stack gap, and the
--section-padding-y custom property. Same computed result, standard
client theming convention.

https://claude.ai/code/session_013xLFhQjE6SLLfEn3ygUkPt
The template now exposes --font-size-*, --space-*, and section padding
tiers as :root custom properties consumed by its mixins. Replace the
flat CSS rule overrides with token overrides in :root — same computed
output (h1 2rem, h2 1.5rem, 6px spacing unit, 2.5rem/4rem section
padding), now via the supported theming surface.

https://claude.ai/code/session_013xLFhQjE6SLLfEn3ygUkPt
The template's :root now derives all --space-* tiers from --space-unit
via calc(), so the eight explicit tier values are no longer needed.
Rendering verified identical (prose gap 18px, --space-3xl 72px, section
padding 64px).

https://claude.ai/code/session_013xLFhQjE6SLLfEn3ygUkPt
chobble-template's base.html now renders the right-content snippet in an
aside and hoists a leading image-background block above the page-columns
grid, so the client layout override is gone entirely. Theme selectors
re-scoped to the upstream markup (the hoisted banner is a bare section
under body, no .page-banner wrapper) and the redundant grid/min-width/
slider-stacking CSS removed in favour of the design system's
_page-columns.scss and --right-column-width token.

https://claude.ai/code/session_013xLFhQjE6SLLfEn3ygUkPt
…ails

- Nav: add background colour and flex-centred horizontal layout on desktop
- Sidebar: strengthen ul rule specificity to suppress bullets inside .prose
- Events items-array: remove horizontal slider (four items suit a grid better)
- Events: add thumbnail frontmatter matching each event's banner image
The nav box was off-centre because our width/margin rules half-overrode
the template's horizontal-nav layout (its margin-inline wins on
specificity). The template already centres the nav, gives it the
--color-bg background, border-radius, and shadow — so drop all our nav
layout rules and keep only the gold border.

Also removed other duplication: footer styling (template centres and
pads it), right-column padding and no-op gap (template pads the aside),
and the direct body background (now the --body-background token, which
the template consumes).
- align-items: stretch on the two-column grid so the aside (and its
  gold border-left) runs the full page height — template uses start
- stack ul.items cards in the sidebar at 100% width; the template
  sizes them for the main column (flex-basis 280px, 33% max at lg)
- zero --list-marker-content in the sidebar: the design system draws
  bullets via an explicit ::marker content, which survives
  list-style: none
chobble-template now stretches the two-column grid (align-items: start
removed) and stacks non-slider items cards at full width inside the
right column, so the theme only keeps the gold divider, centring, and
the --list-marker-content bullet removal.
The template's reviews system uses markdown body content (not blocks),
tagged via reviews.json, with name/url/date frontmatter fields.
Add reviews.json and reviews.11tydata.js, rewrite all five review files,
add a `reviews` block to pages/reviews.md, and update .pages.yml to
match the new shape (date, optional rating, plain body text).
Matching the live site: the homepage gains a Latest Posts news listing
after the Plato quote, and each event page ends with the full reviews
list via a reviews block.
@stefan-burke
stefan-burke merged commit 74304b3 into main Jun 12, 2026
3 checks passed
@stefan-burke
stefan-burke deleted the claude/amazing-thompson-b7lrtw branch June 12, 2026 21:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants