Поле материала в Nuxt
Шапка в начале .md
задаёт не только заголовок.
Поля из блока ---
попадают в объект записи
и доступны на странице
как обычные свойства.
У страничных коллекций
описание уже предусмотрено
полем description
без отдельной схемы.
В content/blog/first.md
мы писали description: Short text.
После загрузки записи
это значение лежит в
page.description.
Покажем его под заголовком
на той же странице, где
идёт ContentRenderer:
<script setup>
const { data: page } = await useAsyncData(
'blog-first',
() => queryCollection('blog')
.path('/blog/first')
.first(),
);
</script>
<template>
<h1>
{{ page?.title }}
</h1>
<p
v-if="page?.description"
class="lead"
>
{{ page.description }}
</p>
<ContentRenderer
v-if="page"
:value="page"
/>
</template>
Так можно выводить любые
стандартные поля страницы,
не только описание. Главное
отличие от тела: текст
из шапки не проходит через
Markdown-абзац в body,
его удобно использовать
для анонса, подписи или
метаданных в шаблоне.
На странице сотрудника
из коллекции staff
выведите description
из шапки файла под
заголовком.
На странице новости
покажите поле description
отдельным абзацем перед
основным текстом материала.