From 3da534f67eae37e524762e5c1a7d223ecba83d71 Mon Sep 17 00:00:00 2001 From: Thomas Jung Date: Tue, 20 Oct 2026 07:37:42 -0400 Subject: [PATCH] feat(#2811): load tutorial-variables island in QA preview MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The tutorial-variables island JS was gated by (not site.Params.qa) (not site.Params.previewMode), so interactive {{var:NAME}} fields never mounted on /tutorials-qa/ — the token flattened to its frontmatter placeholder with no input field. Authors previewing a tutorial in the QA channel could not verify the variables feature before promoting to prod. Drop the qa/previewMode conditions from the island loader, keeping the .Params.variables guard so variable-free tutorials still ship no extra script. The panel div and config JSON were already gated only by .Params.variables (render on QA), and sync-island-manifest-qa.cjs copies the whole island manifest, so the tutorial-variables fingerprint is already available to the QA build — no other wiring needed. --- hugo/layouts/tutorials/u1-object-page.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hugo/layouts/tutorials/u1-object-page.html b/hugo/layouts/tutorials/u1-object-page.html index 9db1d1aba..1b2b09376 100644 --- a/hugo/layouts/tutorials/u1-object-page.html +++ b/hugo/layouts/tutorials/u1-object-page.html @@ -526,7 +526,8 @@

Discussion

{{ if and (not site.Params.qa) (not site.Params.previewMode) }}{{ end }} {{ if and (not site.Params.qa) (not site.Params.previewMode) }}{{ end }} -{{ if and .Params.variables (not site.Params.qa) (not site.Params.previewMode) }}{{ end }} +{{/* [#2811] tutorial-variables island loads in QA preview too (dropped the qa/previewMode gate) so authors can verify interactive var: fields before promoting; still guarded by .Params.variables so variable-free tutorials ship no extra script. */}} +{{ if .Params.variables }}{{ end }} {{ if and (not site.Params.qa) (not site.Params.previewMode) }}{{ end }} {{/* [#2362] json-render challenge widget island — loaded only when at least