docgen-render 0.1.1

HTML rendering for docgen, the Cargo-only static documentation-site generator
Documentation
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>{% if site_title %}Documentation diff — {{ site_title }}{% else %}Documentation diff{% endif %}</title>
  <script>(function(){try{
  var s=localStorage.getItem('doc-theme');
  var t=s||(matchMedia('(prefers-color-scheme: light)').matches?'light':'dark');
  document.documentElement.setAttribute('data-theme',t);
  var w=parseInt(localStorage.getItem('doc-left-rail-width'),10);
  if(w>=180&&w<=560)document.documentElement.style.setProperty('--left-rail-width',w+'px');
}catch(e){}})();</script>
  <link rel="stylesheet" href="{{ base | safe }}/docgen.css" />
  <link rel="stylesheet" href="{{ base | safe }}/code.css" />
  <link rel="stylesheet" href="{{ base | safe }}/diff.css" />
</head>
<body class="docgen-app docgen-diff-app">
  <a class="docgen-skip-link" href="#docgen-main">Skip to content</a>
  <header class="docgen-topbar">
    <a class="docgen-topbar__brand" href="{{ base | safe }}/">
      <span class="docgen-brand-mark" aria-hidden="true"></span>
      <span class="docgen-brand-name">{% if site_title %}{{ site_title }}{% else %}Docs{% endif %}</span>
    </a>
    <div class="docgen-topbar__main">
      {% if search_enabled %}
      <button class="docgen-search-trigger" data-docgen-search>
        <svg class="docgen-search-trigger__icon" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></svg>
        <span class="docgen-search-trigger__label">Search pages, headings, Rust refs…</span>
        <kbd class="docgen-kbd">⌘K</kbd>
      </button>
      {% endif %}
      <div class="docgen-topbar__actions">
        <div class="docgen-btn-strip" role="group" aria-label="Layout">
          <a class="docgen-ctl--diff icon-only is-active" href="{{ base | safe }}/diff" aria-label="Show documentation diff" title="Show documentation diff">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 4v16M18 4v16"/><path d="M9 8h6M9 16h6M12 5v6M12 13v6"/></svg>
          </a>
        </div>
        <div class="docgen-theme-toggle" x-data="docgenThemeToggle" role="tablist" aria-label="Theme">
          <button type="button" class="docgen-theme-toggle__btn" :class="{ 'is-active': theme==='dark' }" :aria-pressed="theme==='dark'" @click="set('dark')" aria-label="Dark">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg>
          </button>
          <button type="button" class="docgen-theme-toggle__btn" :class="{ 'is-active': theme==='light' }" :aria-pressed="theme==='light'" @click="set('light')" aria-label="Light">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/></svg>
          </button>
        </div>
      </div>
    </div>
  </header>
  <!-- Full-bleed: the diff page is its own workspace (timeline rail + file tree +
       diff view), so it takes the whole area under the topbar — no doc sidebar,
       no content padding, no max-width. Matches the original .diff-page shell. -->
  <main class="docgen-diff-main" id="docgen-main" tabindex="-1">
    <div id="docgen-diff-root"></div>
  </main>
  <!-- island infra: bootstrap defines the registry; theme-toggle self-registers; Alpine starts last -->
  <script>window.DOCGEN_BASE = {{ base | tojson | safe }};</script>
  <script src="{{ base | safe }}/bootstrap.js"></script>
  <script src="{{ base | safe }}/islands/theme-toggle.js"></script>
  <script src="{{ base | safe }}/islands/diff.js"></script>
  {% if search_enabled %}<script src="{{ base | safe }}/search.js" defer></script>{% endif %}
  <script src="{{ base | safe }}/vendor/alpine/alpine.min.js" defer></script>
</body>
</html>