feat: convert web El source to native HTML template syntax

Replace all return "..." HTML string literals with native El templates —
removes all \" escapes, converts + interpolations to {expr}/{raw(expr)},
and replaces conditional string concatenation with {#if}/{#else}/{/if}.
No functional changes; output is identical.
This commit is contained in:
Will Anderson
2026-05-05 05:18:01 -05:00
parent 1127dcd278
commit 5cb13d67f7
24 changed files with 1443 additions and 1494 deletions
+12 -14
View File
@@ -5,35 +5,33 @@
// Entrance animations are CSS keyframes with class-based delays.
fn hero() -> String {
return "
<section id=\"hero\" aria-label=\"Hero\">
<div class=\"glow-tl\" aria-hidden=\"true\"></div>
<div class=\"glow-br\" aria-hidden=\"true\"></div>
return <section id="hero" aria-label="Hero">
<div class="glow-tl" aria-hidden="true"></div>
<div class="glow-br" aria-hidden="true"></div>
<p class=\"label hero-label animate-up-1\">One builder. Patented. No permission.</p>
<p class="label hero-label animate-up-1">One builder. Patented. No permission.</p>
<h1 class=\"display-xl hero-headline animate-up-2\">
<h1 class="display-xl hero-headline animate-up-2">
Every AI resets when you close the tab.
<em class=\"gold\" style=\"font-style:normal\">I built the one that doesn&#39;t.</em>
<em class="gold" style="font-style:normal">I built the one that doesn&#39;t.</em>
</h1>
<p class=\"hero-sub animate-up-3\">
<p class="hero-sub animate-up-3">
Runs on your machine. Remembers everything. Priced below ChatGPT on day one.
</p>
<div class=\"hero-ctas animate-up-5\">
<a href=\"#pricing\" class=\"btn-primary\">
<div class="hero-ctas animate-up-5">
<a href="#pricing" class="btn-primary">
Preorder <span>&#8594;</span>
</a>
<a href=\"#how-it-works\" class=\"btn-ghost\">
<a href="#how-it-works" class="btn-ghost">
See how it works
</a>
</div>
<div class=\"hero-scroll\" aria-hidden=\"true\">
<div class="hero-scroll" aria-hidden="true">
<span>Scroll</span>
<div class=\"hero-scroll-line\"></div>
<div class="hero-scroll-line"></div>
</div>
</section>
"
}