Implement Phase 8: Web UI with htmx templates

- HTML templates: layout, login, notebook list, notebook view, page viewer
- Web server with chi router, embedded templates via //go:embed
- Login/logout flow with session cookies
- Notebook list, page grid with SVG thumbnails, page viewer
- Share link views (same templates, no auth chrome)
- Server command wired to start gRPC + REST + web servers concurrently
- Graceful shutdown on SIGINT/SIGTERM

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-24 19:59:07 -07:00
parent fedb5e3301
commit 5c4575a67f
9 changed files with 447 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
{{define "title"}}Notebooks — Engineering Pad{{end}}
{{define "nav-right"}}<a href="/logout">Logout</a>{{end}}
{{define "content"}}
<h1>Notebooks</h1>
{{range .Notebooks}}
<a class="card-link" href="/notebooks/{{.ID}}">
<div class="card">
<strong>{{.Title}}</strong>
<br><small>{{.PageSize}} — {{.PageCount}} pages — synced {{.SyncedAt}}</small>
</div>
</a>
{{else}}
<p>No notebooks synced yet.</p>
{{end}}
{{end}}