Ctrl K
ComunidadGuías…

mockups/blame.html

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
<!DOCTYPE html>
<html lang="en" class="dark">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>blame · internal/router/router.go · mkappworks/cloudzilla — Cloudzilla</title>
<link rel="stylesheet" href="/assets/tailwind.css" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500&family=Geist:wght@400;500;600&display=swap" rel="stylesheet" />
</head>
<body class="min-h-screen flex flex-col antialiased font-sans">
<a href="#main-content" class="skip-link">Skip to main content</a>

<div id="cz-header" data-repo-tab="code"></div>

<main id="main-content" tabindex="-1" class="max-w-[1400px] mx-auto px-6 pt-6 pb-20 flex-1 w-full">
  <div class="space-y-6 pt-2">

    <section aria-labelledby="blame-title">
      <h1 id="blame-title" class="text-xl tracking-tight font-medium flex flex-wrap items-center gap-x-1.5 gap-y-1">
          <a href="profile.html" class="hover:underline text-muted-foreground">mkappworks</a>
          <span class="text-muted-foreground" aria-hidden="true">/</span>
          <a href="repo.html" class="hover:underline text-muted-foreground">cloudzilla</a>
          <span class="text-muted-foreground" aria-hidden="true">/</span>
          <a href="tree.html" class="hover:underline text-muted-foreground">internal</a>
          <span class="text-muted-foreground" aria-hidden="true">/</span>
          <a href="tree.html" class="hover:underline text-muted-foreground">router</a>
          <span class="text-muted-foreground" aria-hidden="true">/</span>
          <a href="blob.html" class="hover:underline font-semibold">router.go</a>
      </h1>
      <div class="mt-3 flex flex-wrap items-center gap-2">
    <div class="relative" data-dropdown>
      <button type="button" data-dropdown-btn aria-expanded="false" aria-haspopup="menu" aria-label="Switch branch or tag, current: main" class="h-8 px-3 text-[13px] text-foreground border border-border rounded-md hover:bg-accent inline-flex items-center gap-1.5">
        <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" aria-hidden="true" focusable="false"><circle cx="6" cy="3" r="3"></circle><circle cx="18" cy="3" r="3"></circle><circle cx="12" cy="21" r="3"></circle><path d="M6 6v3a3 3 0 003 3h6a3 3 0 003-3V6M12 12v6"></path></svg>
        <span class="font-medium">main</span>
        <svg class="text-muted-foreground" width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false"><path d="M7 10l5 5 5-5"></path></svg>
      </button>
      <div hidden data-dropdown-panel role="menu" aria-label="Switch branches and tags" class="absolute left-0 top-full mt-1.5 z-50 w-[300px] rounded-md border border-border bg-popover text-popover-foreground shadow-md p-1">
        <div class="px-1.5 pb-1.5">
          <label for="branch-filter" class="sr-only">Find a branch or tag</label>
          <input id="branch-filter" type="search" data-ref-filter placeholder="Find a branch or tag…" class="w-full h-7 px-2.5 text-[12px] bg-card border border-border rounded-md placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-ring"/>
        </div>
        <p class="px-2.5 pt-1 pb-0.5 text-[10px] uppercase tracking-wider text-muted-foreground font-medium">Branches</p>
        <a href="blame.html" role="menuitem" data-ref="main" class="flex items-center gap-2 px-2.5 py-1.5 rounded-xs hover:bg-accent bg-accent">
          <span class="flex-1 font-mono text-[12px] truncate">main</span>
          <span class="text-[10px] text-muted-foreground">default</span>
        </a>
        <a href="blame.html" role="menuitem" data-ref="feat/phase-12.3-discussions" class="flex items-center gap-2 px-2.5 py-1.5 rounded-xs hover:bg-accent">
          <span class="flex-1 font-mono text-[12px] truncate">feat/phase-12.3-discussions</span>
          
        </a>
        <a href="blame.html" role="menuitem" data-ref="fix/contributor-stats-sha-dedup" class="flex items-center gap-2 px-2.5 py-1.5 rounded-xs hover:bg-accent">
          <span class="flex-1 font-mono text-[12px] truncate">fix/contributor-stats-sha-dedup</span>
          
        </a>
        <p class="px-2.5 pt-1 pb-0.5 text-[10px] uppercase tracking-wider text-muted-foreground font-medium">Tags</p>
        <a href="blame.html" role="menuitem" data-ref="v0.2.0" class="flex items-center gap-2 px-2.5 py-1.5 rounded-xs hover:bg-accent">
          <span class="flex-1 font-mono text-[12px] truncate">v0.2.0</span>
          
        </a>
        <a href="blame.html" role="menuitem" data-ref="v0.1.0" class="flex items-center gap-2 px-2.5 py-1.5 rounded-xs hover:bg-accent">
          <span class="flex-1 font-mono text-[12px] truncate">v0.1.0</span>
          
        </a>
        <div role="separator" class="my-1 h-px bg-border"></div>
        <a href="refs.html" role="menuitem" class="flex items-center gap-2 px-2.5 py-1.5 rounded-xs text-[13px] hover:bg-accent">View all branches</a>
      </div>
    </div>
        <a href="blob.html" class="inline-flex items-center justify-center gap-1.5 rounded-md font-medium transition-colors border border-input bg-transparent hover:bg-accent hover:text-accent-foreground h-8 px-3 text-[13px]">
          <svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" aria-hidden="true" focusable="false"><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline></svg>
          View file
        </a>
      </div>
    </section>

    <section class="rounded-md border border-border bg-card overflow-hidden" aria-labelledby="blame-heading">
      <h2 id="blame-heading" class="sr-only">Blame for internal/router/router.go</h2>
      <header class="px-4 py-2 border-b border-border bg-muted/50 flex items-center gap-3">
        <svg class="text-muted-foreground" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" aria-hidden="true" focusable="false"><path d="M12 20h9"></path><path d="M16.5 3.5a2.121 2.121 0 113 3L7 19l-4 1 1-4z"></path></svg>
        <h3 class="text-[13px] font-medium">internal/router/router.go</h3>
        <span class="text-[12px] text-muted-foreground ml-auto">27 lines · 2 contributors</span>
      </header>
      <div class="hl overflow-x-auto">
        <table class="w-full font-mono text-[12.5px] leading-[1.6]">
          <caption class="sr-only">Per-line blame annotations for internal/router/router.go</caption>
          <colgroup>
            <col style="width: 240px"/>
            <col style="width: 48px"/>
            <col/>
          </colgroup>
          <thead class="sr-only">
            <tr>
              <th scope="col">Last commit</th>
              <th scope="col">Line</th>
              <th scope="col">Code</th>
            </tr>
          </thead>
          <tbody>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <a href="commit.html" class="font-mono font-medium hover:underline">96a6f51</a>
              <div class="text-muted-foreground truncate max-w-[12rem]">malith</div>
              <time class="text-muted-foreground block" datetime="2026-04-29T11:00:00Z">2026-04-29</time>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L1" href="#L1" class="hover:text-foreground">1</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre"><span class="hl-k">package</span> router</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L2" href="#L2" class="hover:text-foreground">2</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre"> </td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L3" href="#L3" class="hover:text-foreground">3</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre"><span class="hl-k">import</span> (</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L4" href="#L4" class="hover:text-foreground">4</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">	<span class="hl-s">&quot;net/http&quot;</span></td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L5" href="#L5" class="hover:text-foreground">5</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre"> </td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L6" href="#L6" class="hover:text-foreground">6</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">	<span class="hl-s">&quot;github.com/go-chi/chi/v5&quot;</span></td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L7" href="#L7" class="hover:text-foreground">7</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">	<span class="hl-s">&quot;github.com/mkappworks-dev/cloudzilla-app/internal/handler&quot;</span></td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L8" href="#L8" class="hover:text-foreground">8</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">)</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="daisy · 2a5f3ec · 2026-05-05T11:00:00Z">
              <a href="commit.html" class="font-mono font-medium hover:underline">2a5f3ec</a>
              <div class="text-muted-foreground truncate max-w-[12rem]">daisy</div>
              <time class="text-muted-foreground block" datetime="2026-05-05T11:00:00Z">2026-05-05</time>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L9" href="#L9" class="hover:text-foreground">9</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre"> </td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="daisy · 2a5f3ec · 2026-05-05T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L10" href="#L10" class="hover:text-foreground">10</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre"><span class="hl-c1">// New returns a chi router with all Cloudzilla routes registered.</span></td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="daisy · 2a5f3ec · 2026-05-05T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L11" href="#L11" class="hover:text-foreground">11</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre"><span class="hl-k">func</span> <span class="hl-nf">New</span>(h *handler.Handlers) http.Handler {</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="daisy · 2a5f3ec · 2026-05-05T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L12" href="#L12" class="hover:text-foreground">12</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">	r := chi.<span class="hl-nf">NewRouter</span>()</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · c0ca250 · 2026-05-09T11:00:00Z">
              <a href="commit.html" class="font-mono font-medium hover:underline">c0ca250</a>
              <div class="text-muted-foreground truncate max-w-[12rem]">malith</div>
              <time class="text-muted-foreground block" datetime="2026-05-09T11:00:00Z">2026-05-09</time>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L13" href="#L13" class="hover:text-foreground">13</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre"> </td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · c0ca250 · 2026-05-09T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L14" href="#L14" class="hover:text-foreground">14</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">	r.<span class="hl-nf">Get</span>(<span class="hl-s">&quot;/&quot;</span>, h.Home)</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · c0ca250 · 2026-05-09T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L15" href="#L15" class="hover:text-foreground">15</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">	r.<span class="hl-nf">Get</span>(<span class="hl-s">&quot;/explore&quot;</span>, h.Explore)</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · c0ca250 · 2026-05-09T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L16" href="#L16" class="hover:text-foreground">16</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre"> </td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 420b44b · 2026-05-13T11:00:00Z">
              <a href="commit.html" class="font-mono font-medium hover:underline">420b44b</a>
              <div class="text-muted-foreground truncate max-w-[12rem]">malith</div>
              <time class="text-muted-foreground block" datetime="2026-05-13T11:00:00Z">2026-05-13</time>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L17" href="#L17" class="hover:text-foreground">17</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">	r.<span class="hl-nf">Route</span>(<span class="hl-s">&quot;/{owner}/{repo}&quot;</span>, <span class="hl-k">func</span>(<span class="hl-nf">r</span> chi.Router) {</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · c0ca250 · 2026-05-09T11:00:00Z">
              <a href="commit.html" class="font-mono font-medium hover:underline">c0ca250</a>
              <div class="text-muted-foreground truncate max-w-[12rem]">malith</div>
              <time class="text-muted-foreground block" datetime="2026-05-09T11:00:00Z">2026-05-09</time>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L18" href="#L18" class="hover:text-foreground">18</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">		r.<span class="hl-nf">Get</span>(<span class="hl-s">&quot;/&quot;</span>, h.PageRepo)</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · c0ca250 · 2026-05-09T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L19" href="#L19" class="hover:text-foreground">19</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">		r.<span class="hl-nf">Get</span>(<span class="hl-s">&quot;/tree/*&quot;</span>, h.PageTree)</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="daisy · 1439e1e · 2026-05-12T11:00:00Z">
              <a href="commit.html" class="font-mono font-medium hover:underline">1439e1e</a>
              <div class="text-muted-foreground truncate max-w-[12rem]">daisy</div>
              <time class="text-muted-foreground block" datetime="2026-05-12T11:00:00Z">2026-05-12</time>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L20" href="#L20" class="hover:text-foreground">20</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">		r.<span class="hl-nf">Get</span>(<span class="hl-s">&quot;/blob/*&quot;</span>, h.PageBlob)</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="daisy · 1439e1e · 2026-05-12T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L21" href="#L21" class="hover:text-foreground">21</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">		r.<span class="hl-nf">Get</span>(<span class="hl-s">&quot;/blame/*&quot;</span>, h.PageBlame)</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="daisy · 1439e1e · 2026-05-12T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L22" href="#L22" class="hover:text-foreground">22</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">		r.<span class="hl-nf">Get</span>(<span class="hl-s">&quot;/commits/*&quot;</span>, h.PageCommits)</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <a href="commit.html" class="font-mono font-medium hover:underline">96a6f51</a>
              <div class="text-muted-foreground truncate max-w-[12rem]">malith</div>
              <time class="text-muted-foreground block" datetime="2026-04-29T11:00:00Z">2026-04-29</time>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L23" href="#L23" class="hover:text-foreground">23</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">		r.<span class="hl-nf">Get</span>(<span class="hl-s">&quot;/pulse&quot;</span>, h.PagePulse)</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L24" href="#L24" class="hover:text-foreground">24</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">	})</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L25" href="#L25" class="hover:text-foreground">25</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre"> </td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L26" href="#L26" class="hover:text-foreground">26</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">	<span class="hl-k">return</span> r</td>
            </tr>
            <tr class="hover:bg-muted/50">
              <td class="w-60 px-3 py-1.5 align-top text-[11px] border-r border-border bg-card" title="malith · 96a6f51 · 2026-04-29T11:00:00Z">
              <span class="text-muted-foreground/40 select-none" aria-hidden="true">·</span>
              </td>
              <td class="select-none text-muted-foreground px-3 py-1.5 text-right align-top border-r border-border bg-muted/40">
                <a id="L27" href="#L27" class="hover:text-foreground">27</a>
              </td>
              <td class="pl-4 pr-4 py-1.5 whitespace-pre">}</td>
            </tr>
          </tbody>
        </table>
      </div>
    </section>

    <p class="mt-4 text-[12px] text-muted-foreground">
      A dot (·) marks consecutive lines from the same commit — only the first row in each run shows the commit metadata.
    </p>
  </div>
</main>

<div id="cz-footer"></div>
<script src="shell.js"></script>
<script>
(function () {
  function closeAll(except) {
    document.querySelectorAll('[data-dropdown]').forEach(function (d) {
      if (d === except) return;
      d.querySelector('[data-dropdown-panel]').hidden = true;
      d.querySelector('[data-dropdown-btn]').setAttribute('aria-expanded', 'false');
    });
  }
  document.addEventListener('click', function (e) {
    var btn = e.target.closest('[data-dropdown-btn]');
    var dd = btn && btn.closest('[data-dropdown]');
    if (!btn && e.target.closest('[data-dropdown-panel]')) return;
    closeAll(dd);
    if (!dd) return;
    var panel = dd.querySelector('[data-dropdown-panel]');
    panel.hidden = !panel.hidden;
    btn.setAttribute('aria-expanded', String(!panel.hidden));
  });
  document.addEventListener('keydown', function (e) { if (e.key === 'Escape') closeAll(); });
  document.querySelectorAll('[data-ref-filter]').forEach(function (input) {
    input.addEventListener('input', function () {
      var q = input.value.toLowerCase();
      input.closest('[data-dropdown-panel]').querySelectorAll('[data-ref]').forEach(function (a) {
        a.hidden = !!q && a.dataset.ref.toLowerCase().indexOf(q) < 0;
      });
    });
  });
})();
</script>
</body>
</html>