현재 사용중인 지킬 테마를 선택할 때, 태그 기능이 깔끔하게 구현되어 있었기 때문에 “오 이거 카테고리로 이용하면 되겠다!” 라는 생각에 Fork하여 사용하게 되었는데,
아직까진 tag만 사용하다가, 글이 더 많아 지기 전에 카테고리를 만들어 놓는게 좋겠다 싶어서 여기저기 참고하며 만들어 보았다.
만들면서 느낀 점은
코드 부분은 사용하는 지킬 테마에서 뽑아오거나, 간단하게 만들수 있기 때문에
지킬의 디렉토리 구조 를 이해하는게 가장 중요한 거 같다.
카테고리 만든 과정
미리 요약
- categories/index.html 만들기
- _layouts 폴더에 category.html 만들기
- categories 폴더에 카테고리 이름과 동일한 이름의 markdown문서 만들기
- 3번에서 만든 markdown 문서에는
layout: category
title: "카테고리"
YAML 작성하기
categories 폴더에 index 페이지 생성하기
그리고 보여주고 싶은 내용을 index.html에 작성해준다.
위 코드는 tags/index.html
의 코드를 재사용한 categories/index.html
의 일부 인데, tags 부분을 categories로 바꿔주었다.
처음엔 이게 당최 무슨 언어인가 했는데, ‘Liquid’ 라는 언어라고.. 액체 언어… 처음 들었다..ㅎㅎ
찾아보니 아래의 사이트에 사용법들이 잘 정리되어 있고, 막 엄청 어렵지는 않음
아무튼 저 코드는
그래서 다음 코드를 보면,
반복문을 이용해서
이렇게 categories/index.html 을 만들어 준 후,
https://png93.github.io/categories/
에 접속하면 내가 만들어준 카테고리별로 정리된 페이지가 나온다!
category 레이아웃 만들기
다음으로 카테고리별로 포스트 목록을 보여주는 페이지를 만들기 위해서
Jekyll 테마의 디렉토리 중
(category.html을 만든 후, 다음에 만들 markdown문서의 layout으로 사용 할 예정)
이번엔 지킬 테마에 있던 _layouts/post-list.html
을 사용하여 필요한 부분만 수정
{% assign category = page.title %}
위 코드에서 assign은 현재 페이지의 title을 category라는 변수에 할당하는 일을 한다.
따라서 category 레이아웃을 사용하는 page(markdown문서)의 title은 카테고리와 동일하게 설정해야 함
{% for post in site.categories[category] %}{% endfor %}
여기선 위에서 얻어온 category와 동일한 category를 가지는 post 들만 뽑아오게 된다.
layout이 category인 마크다운문서 만들기
레이아웃을 만들었으니 사용을 해보자! 😃
맨 처음에 만들었던 categories 폴더에
카테고리 이름과 동일한 이름의 마크다운문서 를 만들어 준다.
각 파일은 ‘YAML 머리말’ 의 layout과 title만 가지면 끄읕.
Algorithm.md를 예로 들면 아래와 같이 작성하면 된다.
---
layout: category
title: Algorithm
---
여기까지 설정을 끝냈다면, 앞으로 포스트용 markdown문서 작성시 YAML에 category 속성을 추가해 주면 카테고리별로 분류하여 보여줄수 있다.
---
category: [ 백준 문제풀이 ]
---
이제 ../categories/(카테고리명)
url에 접근하면 아래처럼 해당 카테고리에 대한 글만 나타내는 페이지가 생성다.✌