데이터를 생성하여 사용자 정의 블로그 레이아웃에 전달
이제 페이지 레이아웃이 준비되었으므로 블로그 게시물 레이아웃을 추가할 차례입니다!
요구 사항
- Markdown 파일에 대한 새 블로그 게시물 레이아웃 만들기
- YAML 프런트매터 값을 레이아웃 컴포넌트에 props로 전달
블로그 게시물에 레이아웃 추가
섹션 제목: 블로그 게시물에 레이아웃 추가.md
파일에 layout
프런트매터 속성을 포함하면 모든 프런트매터 YAML 값을 레이아웃 파일에서 사용할 수 있습니다.
-
src/layouts/MarkdownPostLayout.astro
에 새 파일을 만듭니다. -
다음 코드를
MarkdownPostLayout.astro
에 복사합니다. -
post-1.md
에 다음 프런트매터 속성을 추가하세요. -
http://localhost:4321/posts/post-1
에서 브라우저 미리보기를 다시 확인하고 페이지에 어떤 레이아웃이 추가되었는지 확인하세요. -
다른 두 블로그 게시물
post-2.md
및post-3.md
에 동일한 레이아웃 속성을 추가합니다. 여러분의 레이아웃이 이러한 게시물에도 적용되는지 브라우저에서 확인하십시오.
레이아웃을 사용할 때 이제 페이지 제목과 같은 요소를 Markdown 콘텐츠 또는 레이아웃에 포함할 수 있는 옵션이 제공됩니다. 페이지 미리보기를 시각적으로 검사하고 중복된 요소를 피하기 위해 필요한 조정을 수행하는 것을 잊지 마세요.
직접 시도해 보기 - 블로그 게시물 레이아웃 맞춤설정
섹션 제목: 직접 시도해 보기 - 블로그 게시물 레이아웃 맞춤설정과제: 모든 블로그 게시물에 공통된 항목을 식별하고 post-1.md
의 Markdown 및 향후 모든 블로그 게시물에 작성하는 대신 MarkdownPostLayout.astro
를 사용하여 렌더링합니다.
다음은 Markdown 본문에 작성하는 대신 레이아웃 컴포넌트에 pubDate
를 포함하도록 코드를 리팩터링하는 예시입니다.
유용하다고 생각되는 만큼 리팩터링하고 원하는 만큼 레이아웃에 추가하세요. 레이아웃에 추가하는 모든 내용은 모든 블로그 게시물에 작성하게 될 내용이 하나 적다는 점을 기억하세요!
다음은 슬롯에서 렌더링된 개별 블로그 게시물 콘텐츠만 남기는 리팩터링된 레이아웃의 예시입니다. 자유롭게 사용하거나 직접 만들어보세요!
레이아웃으로 렌더링된 모든 내용은 블로그 게시물에 입력할 필요가 없습니다! 브라우저 미리보기를 확인할 때 중복된 내용이 발견되면 Markdown 파일에서 콘텐츠를 제거하세요.
지식 테스트
섹션 제목: 지식 테스트다음 두 컴포넌트가 함께 작동하는 Astro 코드를 생성하려면 빈칸에 무엇이 들어가야 하는지 알아낼 수 있나요?
-
채워진 빈칸을 보여주세요!