Коллекция материалов в Nuxt
Давайте разберём, как модуль
узнаёт, какие файлы относятся
к одному разделу сайта.
Список таких групп задаётся
в content.config.ts
в корне проекта. CLI модуля
создаёт этот файл при установке;
в нём вызывают defineContentConfig
и для каждой группы -
defineCollection.
Коллекция типа page
собирает материалы, которые
могут открываться по адресу:
у каждой записи появятся
заголовок, описание, тело
и поле path для ссылок.
Свойство source задаёт
маску файлов относительно
content. Для блога
подойдёт шаблон blog/**/*.md:
import {
defineCollection,
defineContentConfig,
} from '@nuxt/content';
export default defineContentConfig({
collections: {
blog: defineCollection({
type: 'page',
source: 'blog/**/*.md',
}),
},
});
Имя ключа blog - это
название коллекции в коде.
Его же передают в функцию
запроса материалов, когда
нужно получить список или
одну страницу. Пока в
content/blog нет файлов,
запросы вернут пустой результат,
но конфиг уже готов к
добавлению заметок.
Структура каталогов для примера:
- /content/
- /blog/
- /content.config.ts
После сохранения конфига
Nuxt Content проиндексирует
совпадающие файлы при следующей
сборке или перезапуске
npm run dev. Отдельно
прописывать коллекцию в
nuxt.config.ts не нужно,
достаточно подключённого модуля
@nuxt/content.
Опишите коллекцию news
типа page с маской
news/**/*.md в
content.config.ts.
Создайте каталог content/employees
и коллекцию staff
для файлов employees/**/*.md.