Správa obsahu
Kolekce blog a stránky se spravují v Kafe-CMS
a ukládají do SQLite. Ostatní obsah (docs, services, stack, settings) stále žije jako
Markdown/JSON v src/content.
CMS kolekce (Kafe-CMS)
Section titled “CMS kolekce (Kafe-CMS)”| Kolekce | Popis | Zdroj |
|---|---|---|
| Blog | Články a novinky | Kafe-CMS (SQLite) |
| Stránky | Marketingové/právní stránky (o nás, kontakt, ceník, soukromí, podmínky) | Kafe-CMS (SQLite) |
Ty pište v administraci na /kafecms/admin. Routy čtou Kafe-CMS v době požadavku
přes src/lib/cms.ts, který adaptuje záznamy do tvarů, jaké Astro komponenty očekávají,
a vykresluje rich text pomocí <PortableText>. Schémata kolekcí a počáteční obsah jsou
definovány v seed/seed.json.
- Po změně schématu kolekce spusťte
pnpm types:cms, aby se obnovily generované typy. - Spuštěním
pnpm export-seeduděláte snapshot aktuálního CMS obsahu zpět do seed souboru.
Veřejné routy a odkaz „Zobrazit na webu“
Section titled “Veřejné routy a odkaz „Zobrazit na webu“”Každá kolekce deklaruje v seed/seed.json urlPattern, který mapuje záznam na jeho
veřejnou routu. Tím se řídí odkaz Zobrazit na webu v administraci, sitemapy, menu a
přesměrování:
| Kolekce | urlPattern |
Příklad |
|---|---|---|
| Stránky | /{slug} |
contact → /contact |
| Příspěvky | /blog/{slug} |
welcome → /blog/welcome |
Bez urlPattern spadne Kafe-CMS zpět na /{collection}/{slug} (např. /pages/contact),
což zde nemá odpovídající routu. Čerstvé instalace si tyto vzory vezmou ze seedu automaticky.
Pro databázi, která byla naseedovaná dřív, než tyto vzory existovaly, je jednou aplikujte a restartujte:
# lokálněpnpm set-url-patterns
# uvnitř kontejneru (Dokploy terminál), poté restartujte službucd /app && pnpm set-url-patternsPřibalené routy stránek (
/about,/contact,/pricing,/privacy,/terms) jsou ty, zapojené do kolekcepages. Stránka vytvořená v administraci s jiným slugem potřebuje pro vykreslení odpovídající Astro routu.
Pole obsahu stránky
Section titled “Pole obsahu stránky”Stránky používají typovaná pole, takže administrace zobrazuje skutečné vstupy místo surového JSON boxu. Každé pole se mapuje na část vykreslené stránky:
| Pole | Typ | Vykreslí se jako |
|---|---|---|
hero_title / hero_subtitle |
string / text | Hero nadpis + podnadpis stránky |
features_title |
string | Nadpis nad mřížkou funkcí/kontaktních metod |
features |
repeater (title, description, icon) |
Karty funkce/kontaktní metody. icon je název z Lucide (např. rocket, mail, map-pin) — prefix lucide: se přidá automaticky |
cta_title / cta_text / cta_button / cta_href |
string / text / string / url | Uzavírací call-to-action pruh (O nás) |
content |
Portable Text | Rich text tělo, používané právními stránkami (Soukromí, Podmínky) |
Pole features je repeater: klikněte na Přidat, vytvoří se řádek, vyplňte title/description/icon,
přetáhněte pro změnu pořadí. Toto nahradilo staré jednotlivé JSON pole sections — žádný ručně psaný JSON.
src/lib/cms.ts adaptuje tato pole do props, jaké každá komponenta stránky očekává, takže úprava
pole v administraci a uložení aktualizuje živou stránku při dalším požadavku.
Podpole repeateru nelze vnořovat. Model stránky je záměrně plochý: jeden seznam
featuresplus skalární hero/CTA pole pokrývají O nás, Kontakt i Ceník. Přidejte nová skalární nebo repeater pole doseed/seed.jsona čtěte je vadaptPage, čímž ho rozšíříte.
Souborové kolekce (Markdown/JSON)
Section titled “Souborové kolekce (Markdown/JSON)”| Kolekce | Popis | Soubory |
|---|---|---|
| Služby | Nabídka služeb s cenami | src/content/services/*.md |
| Stack | Položky technologického stacku | src/content/stack/*.md |
| Dokumentace | Stránky dokumentace | src/content/docs/** (Starlight) |
Schémata jsou definována v src/content.config.ts, takže frontmatter je typově kontrolovaný.
Konvence locale
Section titled “Konvence locale”Starter je s angličtinou na prvním místě. Souborové záznamy používají prostý <slug>.md s
locale: "cs"; pro další jazyky přidejte kopii se sufixem locale (např. about.id.md).
Obsah Kafe-CMS nese vlastní pole locale. Viz
průvodce internacionalizací.
Editační workflow
Section titled “Editační workflow”- Blog a stránky: upravujte v administraci — změny jsou živé okamžitě, žádný redeploy.
- Docs/služby/stack: upravujte Markdown pod
src/content, spusťtepnpm devpro náhled, poté commitněte a otevřete pull request.
Uploady editora jdou v produkci na Cloudflare R2 (v dev na lokální souborový systém). Kafe-CMS
je servíruje přes same-origin proxy routu (/kafecms/api/media/file/<key>), takže
administrace zobrazuje tuto cestu, i když soubor leží v R2 — díky tomu bucket zůstává privátní.
Obrázky mohou také ležet v src/assets, aby je Astro optimalizovalo při buildu.