테마 레이아웃 및 슬롯
레이아웃
mineproj는 7개의 핵심 레이아웃을 필요로 합니다. 각 레이아웃은 LayoutProps를 받는 React 컴포넌트입니다.
홈 레이아웃
홈페이지입니다. 추천 프로젝트, 최근 프로젝트, 프로필 정보를 표시합니다.
목록 레이아웃
필터링/정렬된 프로젝트 그리드를 표시합니다. /projects/ 경로에서 사용됩니다.
상세 레이아웃
/projects/<slug>/의 개별 프로젝트 페이지입니다. 전체 프로젝트 상세 정보, 본문 콘텐츠, 스크린샷, 비디오, PDF, 플레이 가능한 데모를 표시합니다.
태그 레이아웃
/tags/<tag>/에서 태그로 필터링된 프로젝트를 나열합니다.
컬렉션 레이아웃
컬렉션의 프로젝트를 나열합니다. 태그 레이아웃과 유사하게 작동합니다.
소개 레이아웃
/about/의 소개 페이지입니다. 프로필 정보를 표시합니다.
찾을 수 없음 레이아웃
404 페이지입니다. 경로가 일치하지 않을 때 표시됩니다.
슬롯
슬롯은 플러그인이 컴포넌트를 삽입할 수 있는 확장 지점입니다:
ts
// 플러그인에서
export default definePlugin({
name: 'my-plugin',
hooks: {
setup: (ctx) => {
ctx.registerSlot('header', MyHeaderComponent);
},
},
});기본 제공 슬롯에는 일반적으로 header, footer, sidebar, editor-shell이 포함됩니다.
폴백 동작
테마가 레이아웃을 제공하지 않으면 mineproj는 기본 테마의 레이아웃으로 폴백하고 경고를 출력합니다. 이는 불완전한 테마에서도 사이트가 항상 빌드되도록 보장합니다.
컴포넌트 레지스트리
컴포넌트 레지스트리는 다음 순서로 컴포넌트를 확인합니다:
- 테마 컴포넌트
- 플러그인 컴포넌트
- 사용자 재정의 (나중에 선언된 것이 우선)
알 수 없는 컴포넌트 재정의는 경고를 트리거합니다.