themes-art-deco/blocks/menu.ninjatpl
Alex Dunmow 5075aa81c9 feat: convert to codeless .bnp — templates + manifest, Go/templ deleted (WO-WZ-021)
Convert the Art Deco theme from a wasm (Go+templ) plugin to a fully codeless
.bnp: pure declaration the host runs, no plugin.wasm, no block/core dependency.

- blocks/: blocks.yaml (7 fully-qualified art-deco:* keys) + per-block
  .schema.json (moved from schemas/) + .ninjatpl transcribed byte-for-byte
  (modulo whitespace) from the templ sources.
- templates/art-deco/{default,landing,article,full-width}.ninjatpl — page
  layouts.
- templates/overrides/art-deco/{heading,text,button,image}.ninjatpl.
- templates/email/art-deco.ninjatpl.
- manifest.yaml (system/page templates, template_overrides, email_wrappers,
  theme_presets, bundled_fonts, master_pages, css input_css_append) +
  master_pages.json.
- plugin.mod bumped to 0.2.0; [compatibility] block_core dropped (codeless has
  no core dependency).
- Deleted all Go/templ/*_templ.go, go.mod/go.sum; Makefile rewritten to the
  codeless build/verify/publish targets.

Render parity verified against the prior templ output (static pongo2 harness,
whitespace-normalised): all 7 blocks, 4 overrides and the email wrapper match.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 14:24:55 +08:00

9 lines
1.4 KiB
Plaintext

<section data-block="art-deco:menu" class="py-16">
<div class="max-w-3xl mx-auto px-4">
<div class="deco-frame text-center" style="background-color: hsl(var(--card)); color: hsl(var(--card-foreground));">
{% if title %}<h2 class="deco-caps deco-underline mb-8 text-3xl md:text-4xl" style="font-family: var(--font-heading, &quot;Italiana&quot;, &quot;Cinzel&quot;, Georgia, serif); color: hsl(var(--foreground));">{{ title }}</h2>{% endif %}
{% if courses %}<ul class="space-y-6 text-left">{% for course in courses %}<li class="flex items-start justify-between gap-6 border-b" style="border-color: hsl(var(--border));"><div class="flex-1"><h3 class="deco-caps text-lg" style="font-family: var(--font-heading, &quot;Italiana&quot;, &quot;Cinzel&quot;, Georgia, serif); color: hsl(var(--foreground));">{{ course.name }}</h3>{% if course.description %}<div class="mt-1 italic" style="color: hsl(var(--muted-foreground));">{{ course.description|safe }}</div>{% endif %}</div>{% if course.price %}<span class="deco-caps text-base" style="font-family: var(--font-mono, &quot;JetBrains Mono&quot;, ui-monospace, monospace); color: hsl(var(--primary));">{{ course.price }}</span>{% endif %}</li>{% endfor %}</ul>{% else %}<p class="text-muted-foreground" style="color: hsl(var(--muted-foreground));">Add courses to start composing this menu.</p>{% endif %}
</div>
</div>
</section>