From ea45d2ddb67a3c5395aa94fef68a49ff85ff8199 Mon Sep 17 00:00:00 2001 From: Alex Dunmow Date: Mon, 6 Jul 2026 16:02:51 +0800 Subject: [PATCH] fix(brutalist): hero styled-text fields tolerate bare strings (0.6.1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Coordinator lesson from the art-deco lane: `field.text` attribute access on a bare-string seed/settings value errors the whole block to empty (dead band). eyebrow/headline/subheadline/description now use `|get:"text"|default:` so the hero accepts {text,...} objects OR bare strings — same fix art-deco shipped in f2c8b36. cta/logoText object fields are builtin-typed and stay direct. Also audited per coordinator: no ::icon:: shortcodes in any template/block (only CSS ::-webkit pseudo-elements); master_pages.json untouched this lane. Co-Authored-By: Claude Fable 5 --- plugin.mod | 2 +- templates/overrides/brutalist/hero.ninjatpl | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugin.mod b/plugin.mod index 227a7fd..f8c38ae 100644 --- a/plugin.mod +++ b/plugin.mod @@ -2,7 +2,7 @@ name = "brutalist" display_name = "Brutalist" scope = "@themes" -version = "0.6.0" +version = "0.6.1" description = "Concrete, oversized type, hard 12-col grid theme for design studios, architecture firms and art galleries." kind = "theme" categories = ["templates"] diff --git a/templates/overrides/brutalist/hero.ninjatpl b/templates/overrides/brutalist/hero.ninjatpl index 9e856c7..4d35b48 100644 --- a/templates/overrides/brutalist/hero.ninjatpl +++ b/templates/overrides/brutalist/hero.ninjatpl @@ -1,8 +1,8 @@ {# brutalist hero override — oversized display headline (the studio masthead identity). Styled-text fields accept {text} object OR bare string. Fields: eyebrow, headline, subheadline, description, ctaPrimary{.text,.url}, ctaSecondary{.text,.url}, template, backgroundImage. {% img %} takes no nested {% if %} so the bg is one unconditional call. #} -{% set eyebrowText = eyebrow.text|default:eyebrow %} -{% set headlineText = headline.text|default:headline %} -{% set subText = subheadline.text|default:subheadline %} -{% set descText = description.text|default:description %} +{% set eyebrowText = eyebrow|get:"text"|default:eyebrow %} +{% set headlineText = headline|get:"text"|default:headline %} +{% set subText = subheadline|get:"text"|default:subheadline %} +{% set descText = description|get:"text"|default:description %} {% set pText = ctaPrimary.text %} {% set pUrl = ctaPrimary.url %} {% set sText = ctaSecondary.text %}