Zum Inhalt springen

Rendering-Inhalt

Das StudioCMS-Rendering-System ist dynamisch und basiert auf dem aktuellen PageType.

Beispiel Catch-All-Route, bei der die aktuelle Seite aus dem SDK geholt und die Seitendaten an den Renderer übergeben werden. In diesem Fall verwenden wir den in den Seiteneinstellungen konfigurierten Standard-Seitentyp studiocms/markdown und verpacken diesen in ein Layout, wie wir es mit dem Plugin @studiocms/blog tun. ein pageBuilder-Plugin kann zum Beispiel ohne ein Standard-Layout geliefert werden, sondern sieht vor, dass du das Ganze innerhalb des Builders gestaltest, wie du es bei anderen CMS-Systemen tun würdest.

src/pages/[...slug].astro
---
import { StudioCMSRenderer } from 'studiocms:renderer';
import studioCMS_SDK from 'studiocms:sdk';
import Layout from '../layouts/Layout.astro';
let { slug } = Astro.params;
if (!slug) {
slug = 'index';
}
const page = await studioCMS_SDK.GET.databaseEntry.pages.bySlug(slug);
if (!page) {
return Astro.redirect('/404');
}
const { title, description, heroImage } = page;
---
<Layout title={title} description={description} heroImage={heroImage}>
<main>
<StudioCMSRenderer data={page} />
</main>
</Layout>