32 lines
810 B
Vue
32 lines
810 B
Vue
<script setup>
|
|
definePageMeta({
|
|
layout: 'page'
|
|
})
|
|
|
|
const route = useRoute()
|
|
const slug = computed(() => String(route.params.slug || ''))
|
|
|
|
const { data: page } = await useFetch(() => `/api/pages/${slug.value}`)
|
|
|
|
if (!page.value) {
|
|
throw createError({
|
|
statusCode: 404,
|
|
statusMessage: '페이지를 찾을 수 없습니다.'
|
|
})
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<article class="static-page mx-auto min-h-screen max-w-3xl px-6 py-16">
|
|
<p class="static-page__eyebrow text-xs font-semibold uppercase text-muted">
|
|
Page
|
|
</p>
|
|
<h1 class="static-page__title mt-4 text-5xl font-semibold leading-tight">
|
|
{{ page.title }}
|
|
</h1>
|
|
<ContentRenderer class="static-page__content mt-8">
|
|
<ContentMarkdownRenderer :content="page.content" />
|
|
</ContentRenderer>
|
|
</article>
|
|
</template>
|