Soapbox: statisk blogg med mobilvennlig markdown-editor

Flask-app som genererer statiske sider til public/ og serverer dem
sammen med et admin-grensesnitt (/admin). Innhold ligger som markdown
og bilder i et git-repo (data/content), brukere i sqlite.

- Editor med toolbar, live server-side forhåndsvisning, bildeopplasting
  via knapp, dra-og-slipp og lim inn. Bilder nedskaleres og EXIF fjernes.
- Hovedbruker publiserer under /<slug>/, gjester under /<bruker>/<slug>/.
  Slug lages fra tittelen og fryses ved publisering.
- Alle interne lenker er relative, så siden kan flyttes mellom domener og
  sub-paths (SOAPBOX_BASE_PATH) uten rebuild.
- Tema 'green' med CSS-variabler, mørk modus og WCAG-kontrast.
- Containerfile (python:alpine + git), compose.yaml og Caddyfile-eksempel.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcEy43fNYpwg6K6oTKakWR
This commit is contained in:
Ole-Morten Duesund 2026-08-26 12:12:33 +02:00
commit 7ab2320be6
35 changed files with 2726 additions and 0 deletions

16
Caddyfile.example Normal file
View file

@ -0,0 +1,16 @@
# Eksempel 1: bloggen på et eget domene (SOAPBOX_BASE_PATH tom)
blog.domene.no {
encode zstd gzip
reverse_proxy localhost:8080
}
# Eksempel 2: bloggen under en sub-path (SOAPBOX_BASE_PATH=/blog).
# Appen forventer å få hele stien inkl. /blog, så ingen strip_prefix her.
annet-domene.com {
encode zstd gzip
redir /blog /blog/ permanent
handle /blog/* {
reverse_proxy localhost:8080
}
# … resten av nettstedet
}