cms: dateibasiert + Editor im Decap/Sveltia-Look
- CMS liest/schreibt jetzt die echten content/**/*.md (gray-matter) statt DB: alle bestehenden Beiträge, Seiten und Rubriken erscheinen und sind editierbar. Supabase nur noch für Login. - Admin neu: Collections-Sidebar (Beiträge/Seiten/Rubriken), an OPENBUREAU-Theme angeglichen (Newsreader-Serif, Creme, Terracotta, dunkle Topbar). - Alle Frontmatter-Felder inkl. Farb-Dropdown mit Farbpunkten (Palette aus custom.css), Layout, Tags, summary, cover_image, external, toc, draft. - Markdown-Toolbar: Fett/Kursiv/Unterstrichen/H2/H3/Link/Bild-Upload/Liste/Zitat/Code. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+18
-16
@@ -28,13 +28,16 @@ docker compose
|
||||
nicht — Bild-Uploads gehen auf Platte nach `static/images/`). Nachrüstbar durch
|
||||
Kopieren der Service-Blöcke aus RAPPORT-SERVER.
|
||||
|
||||
## Quelle der Wahrheit (DB-backed)
|
||||
## Quelle der Wahrheit: die `.md`-Dateien
|
||||
|
||||
Die `posts`-Tabelle in Supabase ist kanonisch. `content/*.md` ist ein
|
||||
**generiertes Artefakt** — nicht von Hand editieren, wird beim Publish
|
||||
überschrieben. Drafts liegen als `draft: true` in `content/` und werden vom
|
||||
Live-Build automatisch ausgelassen; nur der Preview-Build (`--buildDrafts`)
|
||||
zeigt sie.
|
||||
Dateibasiert. Die echten `content/**/*.md` sind kanonisch — das CMS liest und
|
||||
schreibt sie direkt (Frontmatter via gray-matter). Damit erscheinen **alle**
|
||||
bestehenden Inhalte im Editor: Beiträge (`library/<rubrik>/…`), Seiten
|
||||
(`manifest.md`, `colophon.md`) und Rubriken (`_index.md`).
|
||||
|
||||
Supabase wird **nur noch für den Login** (GoTrue) gebraucht — keine Posts in der
|
||||
DB. Drafts liegen als `draft: true` in der Datei; der Live-Build lässt sie aus,
|
||||
der Preview-Build (`--buildDrafts`) zeigt sie.
|
||||
|
||||
## Setup
|
||||
|
||||
@@ -78,16 +81,15 @@ Dann: Admin `…:8080/admin/` · Live `…:8080/` · Preview `…:8080/_preview/
|
||||
|
||||
Alle `/api/*` (ausser `/health`) verlangen `Authorization: Bearer <supabase-token>`.
|
||||
|
||||
| Methode | Pfad | Zweck |
|
||||
|---------|---------------------|----------------------------------------|
|
||||
| GET | `/api/health` | Healthcheck (offen) |
|
||||
| GET | `/api/posts` | Alle Posts listen |
|
||||
| GET | `/api/posts/:id` | Einen Post |
|
||||
| POST | `/api/posts` | Post anlegen (Draft) |
|
||||
| PUT | `/api/posts/:id` | Post aktualisieren |
|
||||
| POST | `/api/preview/:id` | Draft als `draft:true` schreiben + Preview-Build |
|
||||
| POST | `/api/publish/:id` | Live schreiben + Public-Build + (opt.) git commit |
|
||||
| POST | `/api/upload` | Bild → `static/images/`, liefert `/images/<name>` |
|
||||
| Methode | Pfad | Zweck |
|
||||
|---------|-------------------------------|----------------------------------------|
|
||||
| GET | `/api/health` | Healthcheck (offen) |
|
||||
| GET | `/api/content` | Alle Einträge listen (Beiträge/Seiten/Rubriken) |
|
||||
| GET | `/api/content/entry?path=…` | Einen Eintrag lesen (Frontmatter + Body) |
|
||||
| PUT | `/api/content/entry` | Eintrag anlegen/speichern (`{path, frontmatter, body}`) |
|
||||
| POST | `/api/preview` | Preview-Build (`--buildDrafts`), liefert `/_preview/…` |
|
||||
| POST | `/api/publish` | Public-Build → live + (opt.) git commit |
|
||||
| POST | `/api/upload` | Bild → `static/images/`, liefert `/images/<name>` |
|
||||
|
||||
## Stand
|
||||
|
||||
|
||||
Reference in New Issue
Block a user