나만의 블로그 서비스 만들기
➡️ 목차
사용 스택
Gastby와 Next중 고민
- Nextjs 선택!
- 이유는?
- 높은 SEO
- 그리고 나만의 블로그를 A to Z로 만들 수 있다는 이점
- Contentlayer를 통한 마크다운의 데이터 변환
라이브러리 설치
day.js
- 블로그엔 시간이 필수적으로 들어가야하므로 day.js를 채용
next-themes
기능 개발
해당 카테고리 클릭시 해당 카테고리에 관련된 mdx파일만 렌더링
트러블 슈팅
콘솔로그 출력
- 해당 컴포넌트가 서버컴포넌트일땐 nodejs에서 콘솔로그 출력
- 클라이언트 컴포넌트일 땐 브라우저에서 출력된다
카테고리 문제
contentlayer 라이브러리에서 카테고리를 받아와 카테고리별로 렌더링할 계획이였다
PostCategories 컴포넌트
- allPosts에서 category만 배열로 가져와서 렌더링 했음
그런데 문제는?
- 카테고리는 하나의 폴더만을 정의해야한다
- 그러나 동일한 카테고리의 문서 생성시 똑같은 카테고리가 다시 생성되는 문제가 발생함
현재 렌더링되는 contents mdx파일들
해결방안은??..
- category만 담은 배열을 set객체로 만들자
- 만든 Set 객체를 전개 연산자로 분해 후 map을돌림
중복된 키에 대해 더이상 걱정하지 않아도 된다!
라우팅 문제해결
디테일 페이지를 구성 중
- postList 클릭시 디테일 페이지로 넘어가는 라우팅 구현 중 문제가 생겼다
- 앞의 React는 내가 라우팅으로 미리 동적으로 제공한것인데 flattenedPath로 인해 두번읽히며 라우팅경로 404에러가 나타난다
- 정규식패턴으로 없애보자
- URL에서 마지막 세그먼트만 추출하는 함수를 만들자
URL에서 마지막 세그먼트만 추출하는 함수
- URL을 "/"로 분할해서 배열을 만들고, 배열의 마지막 요소를 반환
문제점2
- allPosts를 가져오는게 중복된다 함수로 만들자 이따가
filter로 디테일 포스트를 가져왔음