컨텐츠로 건너뛰기

콘텐츠 렌더링

StudioCMS 렌더링 시스템은 현재 페이지 유형에 따라 동적으로 작동합니다.

다음은 모든 라우트를 처리하는 예시입니다. SDK에서 현재 페이지를 가져오고 페이지 데이터를 렌더러에 전달합니다. 이 경우 페이지 설정에 구성된 기본 studiocms/markdown 페이지 유형을 사용하며, @studiocms/blog 플러그인에서처럼 레이아웃으로 래핑합니다. 예를 들어 페이지 빌더 플러그인은 표준 레이아웃 없이 제공될 수 있지만, 다른 CMS 시스템에서처럼 빌더 내에서 전체 디자인을 의도할 수 있습니다.

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>