Макеты и слоты тем
Макеты
mineproj требует 7 основных макетов. Каждый макет — это React-компонент, получающий LayoutProps.
Макет Home
Главная страница. Отображает избранные проекты, недавние проекты и информацию профиля.
Макет List
Показывает отфильтрованную/отсортированную сетку проектов. Используется маршрутом /projects/.
Макет Detail
Индивидуальная страница проекта по адресу /projects/<slug>/. Показывает полные детали проекта, содержимое body, скриншоты, видео, PDF-файлы и интерактивные демо.
Макет Tag
Выводит список проектов, отфильтрованных по тегу, по адресу /tags/<tag>/.
Макет Collection
Выводит список проектов в коллекции. Работает аналогично макету тега.
Макет About
Страница «Обо мне» по адресу /about/. Показывает информацию профиля.
Макет Not Found
Страница 404. Показывается, когда маршрут не найден.
Слоты
Слоты — это точки расширяемости, в которые плагины могут внедрять компоненты:
// В плагине
export default definePlugin({
name: 'my-plugin',
hooks: {
setup: (ctx) => {
ctx.registerSlot('header', MyHeaderComponent);
},
},
});Встроенные слоты обычно включают: header, footer, sidebar, editor-shell.
Поведение при откате
Если тема не предоставляет макет, mineproj использует макет темы по умолчанию и выводит предупреждение. Это гарантирует, что сайт всегда собирается, даже с неполной темой.
Реестр компонентов
Реестр компонентов разрешает компоненты в следующем порядке:
- Компоненты темы
- Компоненты плагинов
- Пользовательские переопределения (последний имеет приоритет)
Переопределения неизвестных компонентов вызывают предупреждение.