Given an HTML-only template, the Herb::Engine could optimize it to not use any Ruby, besides the Ruby String itself.
A template like:
<header class="site-header">
<nav class="navbar">
<div class="container">
<a href="/" class="logo">
<img src="/images/logo.svg" alt="Company Name">
</a>
<ul class="nav-menu">
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<li><a href="/services">Services</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
<button class="menu-toggle" aria-label="Toggle menu">
<span></span>
<span></span>
<span></span>
</button>
</div>
</nav>
</header>
Gets compiled to this using Herb::Engine today:
__herb = ::Herb::Engine; _buf = ::String.new;
_buf << '<header class="site-header">
<nav class="navbar">
<div class="container">
<a href="/" class="logo">
<img src="/images/logo.svg" alt="Company Name">
</a>
<ul class="nav-menu">
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<li><a href="/services">Services</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
<button class="menu-toggle" aria-label="Toggle menu">
<span></span>
<span></span>
<span></span>
</button>
</div>
</nav>
</header>
'.freeze;
_buf.to_s
This could get optimized to just be this:
'<header class="site-header">
<nav class="navbar">
<div class="container">
<a href="/" class="logo">
<img src="/images/logo.svg" alt="Company Name">
</a>
<ul class="nav-menu">
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<li><a href="/services">Services</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
<button class="menu-toggle" aria-label="Toggle menu">
<span></span>
<span></span>
<span></span>
</button>
</div>
</nav>
</header>
'
Given an HTML-only template, the
Herb::Enginecould optimize it to not use any Ruby, besides the Ruby String itself.A template like:
Gets compiled to this using
Herb::Enginetoday:This could get optimized to just be this: