Skip to content

메뉴 관리 - 2단계 메뉴 ​

이전 문서: 메뉴 관리 - 2단계 메뉴 게시일: 2023-3-23 마지막 수정: 2024-7-2 원래 분류: 🛠 사이트 설정 태그: NotionNext 요약: NotionNext 3.13.0에서 더 유연한 메뉴 설정을 지원합니다.

메뉴 기능 ​

NotionNext 3.12 이전의 구버전에서는 사이트 메뉴 바가 Page로 제어되었습니다.

유형이 Page인 글은 블로그 글 목록에 표시되지 않고, 내비게이션 바에 메뉴 진입점으로 나타납니다.

이전 방식에는 두 가지 단점이 있었습니다. 첫째, 분류, 아카이브, 검색 같은 기본 메뉴를 끄려면 설정 파일을 수정해야 해서 불편했습니다. 둘째, 이 방식으로 2단계 드롭다운 메뉴를 구현하기에는 부족했습니다. 그래서 이 글의 사용자 정의 메뉴 Menu 방식이 나오게 되었습니다.

새 메뉴 효과 ​

모든 메뉴는 Notion에서 직접 정의합니다. 기존 Page 메뉴는 완전히 덮어써집니다. 동시에 시스템이 기본 제공하던 홈, 분류, 아카이브, 검색 등의 버튼도 직접 설정해야 합니다.

Untitled

시작하기 ​

먼저 NotionNext를 3.13.0 이상 버전으로 업데이트하세요. 업그레이드 가이드를 읽거나 커뮤니티에서 도움을 받을 수 있습니다.

NotionNext 업그레이드 가이드 | TANGLY's BLOG

NotionNext 새 버전이 출시된 뒤 프로젝트를 업데이트하는 방법입니다.

다음으로 blog.config.js에서 완전 사용자 정의 메뉴를 활성화합니다.

JavaScript
CUSTOM_MENU: process.env.NEXT_PUBLIC_CUSTOM_MENU || true, // Support Menu type

이 값이 true이면 기존에 Page를 읽어 메뉴를 만들던 기능이 사용자 정의 메뉴로 대체됩니다.

💡 구버전에서는 환경 변수로 설정하는 것을 권장합니다. 4.0 이후 버전에서는 Notion_Config에서 설정할 수 있습니다.

일반 메뉴 추가 - Menu ​

Notion에서 유형이 Menu인 페이지를 추가합니다. 다음 필드를 포함해야 합니다.

설정 예시:

Untitled

하위 메뉴 추가 - SubMenu ​

하위 메뉴 연결 방법: 목록에서 SubMenu가 Menu 바로 뒤에 오면 해당 Menu의 하위 메뉴가 됩니다.

이 세 메뉴는 1단계 메뉴와 2단계 메뉴 한 그룹을 구성합니다

하위 메뉴 주의 사항 세 가지:

  1. ⚠️ Menu 뒤에 SubMenu가 연결되면 이 Menu는 클릭해 이동할 수 없고 펼침 메뉴로만 사용할 수 있습니다. ⚠️

  2. 일반 메뉴 Menu 뒤에만 하위 메뉴 SubMenu를 연결할 수 있습니다. Menu 뒤에 Menu를 연결할 수 없고, SubMenu 뒤에 SubMenu를 연결할 수 없습니다.

  3. SubMenu가 Menu 바로 뒤에 오지 않으면 고립된 메뉴가 되어 표시되지 않습니다.

💡 팁: 메뉴 경로에는 상대 경로와 절대 경로가 있습니다. 절대 경로를 사용하세요.

/about은 절대 경로입니다. 왼쪽 슬래시 /로 시작하므로 블로그의 어느 페이지에서 이 메뉴를 클릭해도 http://domain/about 경로로 이동합니다.

about은 상대 경로입니다. 왼쪽 슬래시 /로 시작하지 않습니다. 블로그 홈에서 클릭하면 http://domain/about으로 이동하지만, 다른 페이지 예를 들어 http://domain/tag/tag-name에서 클릭하면 http://domain/tag/tag-name/about으로 이동해 페이지 접근 오류가 발생할 수 있습니다.

참고 설정 ​

제 Notion 템플릿 설정을 참고할 수 있습니다.

https://www.notion.so/tanghh/02ab3b8678004aa69e9e415905ef32a5?v=b7eb215720224ca5827bfaa5ef82cf2d&pvs=4

Untitled

특별 주의 ​

💡 Menu, SubMenu 두 유형은 본질적으로 메뉴일 뿐입니다. 유일한 기능은 slug가 지정한 페이지로 이동하는 것입니다. 지정 페이지는 임의의 page, post, 외부 링크일 수 있습니다. 하지만 Menu와 SubMenu 자체에는 글 내용을 넣지 않는 것이 좋습니다.

💡 특별 알림: V3.13 버전에서는 데이터베이스에 여러 뷰를 추가하지 마세요. 메뉴 순서가 흐트러질 수 있습니다. 글을 분류하고 정리하기 위해 뷰를 추가해야 한다면 별도의 단일 뷰 페이지를 새로 만드는 것을 권장합니다. 다음 이슈를 참고하세요: https://github.com/tangly1024/NotionNext/issues/1056

V4.0 이후 새 버전에서는 이 문제를 무시해도 됩니다.

메뉴 사용 방식 예시 ​

📖 Notion에 Menu 유형 데이터를 추가하면 이동 기능으로만 사용됩니다. menu의 slug 필드는 이동 경로를 지정하며, 이 menu 데이터의 페이지 내용은 실제로 아무 역할도 하지 않습니다.

Menu 메뉴에는 총 다섯 가지 사용 방식이 있습니다. 아래는 각 사용 방식의 예시입니다. 표의 첫 번째 열은 사용 방식 이름이고, 오른쪽 두 열은 각각 title, slug 값 예시이며, 가장 오른쪽 열은 설명입니다.

메뉴 캐시 ​

NotionNext는 각 페이지마다 별도의 캐시를 만듭니다. 메뉴를 수정한 뒤 홈을 새로고침하면 새 메뉴가 적용될 수 있지만, 다른 글 페이지의 메뉴는 여전히 이전 버전일 수 있습니다. 사용자가 다른 페이지에 한 번 접속하면 캐시 갱신이 트리거되고, 다시 접속할 때 새 메뉴가 보입니다.

각 페이지를 새로고침하는 것이 번거롭다면 Vercel 관리 화면에서 직접 redeploy해 모든 캐시를 완전히 지울 수 있습니다.

원문 링크 ​

https://docs.tangly1024.com/article/notion-next-secondary-menu