사이드바는 _includes/nav.html에서 설정합니다.
HydeJack으로 테마를 적용한 제 블로그는 nav.html 파일은 기본적으로 이렇게 생겼었습니다.
부가 설명:
site 변수는 사이트 정보(공식 문서 하단에 더 자세히 나와있습니다.)와 _config.yml 파일의 환경 설정 정보라고 합니다. 자세한 정보는 Jeykyll 공식 한국어 사이트의 변수 문서를 참고하세요.
where 필터는 where: < 찾는_키 > < 찾는_값 >은 파이프로 건너온 값 중 찾는_키의 값이 찾는_값인 값을 추립니다. 예를 들어서 상기한 코드의 {% assign pages = site.pages | where: "menu", true %} 같은 경우에는 먼저 site.pages(사이트 내의 모든 페이지에 대한 정보를 가진 배열)를 가져와서 이를 where 필터로 넘깁니다. where는 그 중에 menu의 값이 true인 값들을 필터링합니다. 마지막으로 assign 태그가 그 배열을 pages 변수에 할당합니다. 파이썬의 pages = [page for page in site.pages if page.menu == True], JS의 const pages = site.pages.filter(page => page.menu === True) 정도의 코드로 생각하시면 될 것 같습니다. 이때 페이지의 정보는 머리말로 지정할 수 있습니다. 자세한 정보는 Liquid의 filters/where 문서를 참고하세요.
원래 /category/ 대신 {{ category.url }}으로 사용할 수 있으나(_config.yml에서 수정 가능) 알 수 없는 이유로 종종 /category/으로 연결되지 않는 오류가 발생하여 직접 작성하였습니다.
카테고리 페이지 만들기
레이아웃 만들기
카테고리 별 페이지를 일정하게 만들기 위해 레이아웃을 먼저 지정해줄 것입니다. _layouts 폴더에 자주 쓰는 형식을 레이아웃으로 저장할 수 있습니다. _layouts 폴더 내에 다음과 같은 내용의 category.html를 추가합니다. 지킬(Jekyll) 블로그 카테고리(category) 만들기를 참고했습니다.
먼저 category/ 경로를 만든 뒤, 해당 경로 내에 카테고리 별 이름을 가진 markdown 파일을 만들어 줍니다. 그 후, 레이아웃을 category으로 지정하고, 카테고리나 페이지 제목을 해당 카테고리 이름으로 지정합니다. 예를 들어서, Jekyll이라는 카테고리를 만들었을 경우, category/Jekyll.md 파일을 만든 뒤, 내용을 다음과 같이 지정합니다.
상기했듯, 카테고리와 제목 둘 중에 하나만 지정할 수 있습니다. 왜냐하면, 먼저 페이지의 카테고리를 가져온 뒤, 카테고리가 없다면 제목을 가져오도록 만들었기 때문입니다.
전체 카테고리 페이지 만들기
추가로 모든 카테고리를 볼 수 있는 페이지를 만들겠습니다. category/index.md 파일을 만든 뒤 _includes/nav.html에 수정했던 내용과
금방 눈치채시겠지만 _includes/nav.html와 비슷한 내용입니다. 해당 페이지를 만든 뒤, 사이드바에서 전체 카테고리 페이지와 날짜별 포스트를 볼 수 있도록 _includes/nav.html에 다음과 같은 내용을 추가했습니다.