diff options
| author | Claude <noreply@anthropic.com> | 2026-03-31 12:44:10 +0200 |
|---|---|---|
| committer | Claude <noreply@anthropic.com> | 2026-03-31 12:44:10 +0200 |
| commit | aa23774abb90c168c9ba2559d6bf381bc9fc55ba (patch) | |
| tree | c4f4abfafb6e8e47a1ab505fe1253b951ccf77c9 /internal/builder | |
| parent | 8d7cda6e578e684483c0b5c7391c48e5b9ac5192 (diff) | |
| download | nebbet.no-aa23774abb90c168c9ba2559d6bf381bc9fc55ba.tar.xz nebbet.no-aa23774abb90c168c9ba2559d6bf381bc9fc55ba.zip | |
Add post management admin UI and switch to modernc.org/sqlite
- Replace custom CGO sqlite driver with modernc.org/sqlite (registered as
"sqlite3"); a local compat shim under compat/sqlite/ provides the same
import path and WAL-mode behaviour using system libsqlite3 while network
access is unavailable — swapping to the real pure-Go package later only
requires removing the replace directive and running go get.
- Add internal/admin/server.go: HTTP handler for /admin/ that serves a
server-side-rendered post management UI (list, new, edit, delete). Posts
are stored as Markdown files under content/posts/ and rebuilt via the
existing Builder after every write. Basic auth is checked against the
.passwords file when it exists.
- Add cmd/nebbet/main.go: unified CLI with build, watch, serve (HTTP server
with admin + file server + watch), and user subcommands.
- Update builder.BuildAll to skip content/admin/ — admin pages are served
dynamically and must never appear in the static output directory.
- Mark content/admin/index.md as draft so the old static placeholder is
not built even if the admin skip logic is bypassed.
- Fix .gitignore: use /nebbet (root-only) so the pattern no longer
accidentally ignores the cmd/nebbet/ source directory.
https://claude.ai/code/session_01WLuSGxJhNs2cFM2zJzSsTx
Diffstat (limited to 'internal/builder')
| -rw-r--r-- | internal/builder/builder.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/internal/builder/builder.go b/internal/builder/builder.go index 40be377..59bb71b 100644 --- a/internal/builder/builder.go +++ b/internal/builder/builder.go @@ -62,6 +62,11 @@ func (b *Builder) BuildAll() error { if err != nil || d.IsDir() || !strings.HasSuffix(path, ".md") { return err } + // Skip content/admin/ — served dynamically by the admin HTTP server. + rel, _ := filepath.Rel(b.ContentDir, path) + if strings.HasPrefix(filepath.ToSlash(rel), "admin/") || filepath.ToSlash(rel) == "admin" { + return nil + } return b.BuildFile(path, importMap) }) } |
