Harden the content contracts and enforce the slug rule
This commit is contained in:
1 parent
d06af2891a
commit
0f7e968c16
13 files changed
+157
-81
No files matched your search
+26
-3
@@ -87,8 +87,9 @@ sofort live, ohne Code und ohne Rebuild:
|
||||
5. Optional `location` (`header`/`footer`) **und** `order` setzen, damit die Seite
|
||||
ins Menü kommt; optional `embed` für eingebettete Blöcke (siehe unten).
|
||||
|
||||
- **Slug bleibt englisch und ohne Umlaute.** `imprint`, `privacy`, `contact`,
|
||||
`board`, `patrons`. Der `title` darf deutsch mit Umlauten sein (`Förderverein`).
|
||||
- **Slug bleibt englisch und ohne Umlaute** — `imprint`, `privacy`, `contact`,
|
||||
`board`, `patrons`; erzwungen per Pattern (siehe *Slug-Regel wird erzwungen*
|
||||
unten). Der `title` darf deutsch mit Umlauten sein (`Förderverein`).
|
||||
- **Reservierte Slugs.** `posts`, `events`, `faqs` und `/` (die Startseite `home`)
|
||||
gehören den festen Listen-/Sonderansichten. Eine `pages`-Seite mit einem dieser
|
||||
Slugs wird von der jeweiligen Ansicht verdeckt und **nicht** angezeigt; in der
|
||||
@@ -105,6 +106,26 @@ sofort live, ohne Code und ohne Rebuild:
|
||||
> Diese Slugs nicht ändern — sonst laufen die rechtlich verlinkten Adressen ins
|
||||
> Leere (404).
|
||||
|
||||
### Slug-Regel wird erzwungen
|
||||
|
||||
Ein Slug muss ein sauberes URL-Segment sein: **Kleinbuchstaben, Ziffern und
|
||||
einzelne Bindestriche als Trenner, keine Umlaute** (`ueber-uns`, nicht `Über uns`).
|
||||
Das ist keine Bitte, sondern eine Feldregel: PocketBase weist einen Slug ab, der
|
||||
sie verletzt, und zeigt beim Speichern einen Fehler. Gibst du `Overview` ein,
|
||||
kommst du erst weiter, wenn du `overview` daraus machst. Die Website verlässt sich
|
||||
darauf — sie repariert einen Slug nicht mehr nachträglich.
|
||||
|
||||
Die Regel steckt als **Pattern** am Feld `slug`. So ist sie gesetzt (einmalig,
|
||||
pro Collection mit einem Slug — `pages` **und** `posts`):
|
||||
|
||||
1. Collection öffnen → *Edit collection* (oben rechts) → Feld `slug`.
|
||||
2. Am Feld auf das **Zahnrad** (Feldoptionen) → **Pattern**.
|
||||
3. Als Pattern eintragen: `^[a-z0-9]+(-[a-z0-9]+)*$`
|
||||
4. **Save** (Feld) und **Save** (Collection).
|
||||
|
||||
Zum Prüfen: `board`, `ueber-uns`, `faq-lunch` werden angenommen; `Overview`,
|
||||
`über-uns`, `my page`, `-x` und `a--b` werden abgewiesen.
|
||||
|
||||
---
|
||||
|
||||
## Beiträge (`posts`)
|
||||
@@ -116,7 +137,9 @@ der Startseite als Vorschau angeteasert.
|
||||
- `date` steuert Sortierung und angezeigtes Datum. Anders als bei Terminen zählt
|
||||
hier nur der **Tag** — eine Uhrzeit wird nie angezeigt, und die UTC-Verschiebung
|
||||
aus dem Termine-Hinweis spielt keine Rolle. Trage einfach das Datum ein.
|
||||
- `slug` ist englisch, klein, ohne Umlaute (z. B. `new-sports-hall-opened`).
|
||||
- `slug` ist englisch, klein, ohne Umlaute (z. B. `new-sports-hall-opened`) —
|
||||
dieselbe erzwungene Feldregel wie bei Seiten (siehe *Seiten → Slug-Regel wird
|
||||
erzwungen*).
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user