<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nebbet.no/internal/builder/builder.go, branch main</title>
<subtitle>[no description]</subtitle>
<id>https://git.ivar.systems/nebbet.no/atom?h=main</id>
<link rel='self' href='https://git.ivar.systems/nebbet.no/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.ivar.systems/nebbet.no/'/>
<updated>2026-04-04T14:34:46Z</updated>
<entry>
<title>.</title>
<updated>2026-04-04T14:34:46Z</updated>
<author>
<name>ivar</name>
<email>i@oiee.no</email>
</author>
<published>2026-04-04T14:34:46Z</published>
<link rel='alternate' type='text/html' href='https://git.ivar.systems/nebbet.no/commit/?id=a6355e7a6530af3335c4cd8af05f1e9c8b978169'/>
<id>urn:sha1:a6355e7a6530af3335c4cd8af05f1e9c8b978169</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add post management admin UI and switch to modernc.org/sqlite</title>
<updated>2026-03-31T10:44:10Z</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-03-31T10:44:10Z</published>
<link rel='alternate' type='text/html' href='https://git.ivar.systems/nebbet.no/commit/?id=aa23774abb90c168c9ba2559d6bf381bc9fc55ba'/>
<id>urn:sha1:aa23774abb90c168c9ba2559d6bf381bc9fc55ba</id>
<content type='text'>
- 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
</content>
</entry>
<entry>
<title>Add static site builder: SQLite-backed MD→HTML pipeline</title>
<updated>2026-03-31T10:11:18Z</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-03-31T10:11:18Z</published>
<link rel='alternate' type='text/html' href='https://git.ivar.systems/nebbet.no/commit/?id=3cb7c82cf7c4e050148f69be23590a7fbe587a27'/>
<id>urn:sha1:3cb7c82cf7c4e050148f69be23590a7fbe587a27</id>
<content type='text'>
- cmd/nebbet: CLI with build [--watch] and user add/passwd/delete/list
- internal/builder: markdown→HTML, component injection via HTML comments,
  auto importmap from lib/, fsnotify watch with 150ms debounce
- internal/db: meta.db (page index, tag queries) + search.db (FTS5)
- internal/sqlitedrv: minimal CGO database/sql driver for system libsqlite3
- internal/auth: htpasswd-compatible bcrypt password file management
- templates/base.html + admin.html, styles/main.css + admin.css
- nginx.conf with auth_basic for /admin, clean URLs, gzip
- nebbet.service systemd unit for watch daemon
- Example content/index.md and components/site-greeting.js

https://claude.ai/code/session_01HTc1BCBCiMTEB54XQP1Wz9
</content>
</entry>
</feed>
