Add client-side search with / shortcut
continuous-integration/drone/push Build encountered an error
continuous-integration/drone Build is failing

Lazy-loads /index.json on first keystroke, fuzzy-matches titles and
descriptions, keyboard-navigable results (arrows, Enter, Esc).
Based on https://gist.github.com/cmod/5410eae147e4318164258742dd053993

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-30 07:58:35 +02:00
parent 561c0fa320
commit 318c62c289
6 changed files with 355 additions and 2 deletions
@@ -7,5 +7,6 @@
{{- block "main" . }}{{- end }}
</div>
{{- partial "footer.html" . -}}
<script src="/js/fastsearch.js"></script>
</body>
</html>
@@ -3,7 +3,7 @@
<div class="myname">
<h2><a href="{{ default .Site.Home .Site.BaseURL }}">{{ default .Site.Params.Author .Site.Params.siteHeading }}</a></h2>
</div>
<nav>
<nav id="mainNav">
<ul class="navbar">
{{- /* info about current page */ -}}
{{- $currentPage := . -}}
@@ -67,4 +67,8 @@
{{- end }}
</ul>
</nav>
<div id="fastSearch">
<input id="searchInput" tabindex="0" placeholder="Search…" aria-label="Search" autocomplete="off">
<ul id="searchResults"></ul>
</div>
</header>