[Github Blog] Github blog sidebar에 tag별 post 개수 표기
이 블로그는 Minimal-mistakes 테마가 적용되어 이를 기반으로 서술되었음을 밝힌다.
목표는 다음과 같다.
변경해야할 파일은 총 두 개이다.
_includes/nav_list
_data/navigation.yml
1. navigation 준비
본인이 커스텀한 sidebar 코드를 기반으로 바꾸면 된다.
예시를 들기 위해 내 블로그의 _data/navigation.yml 수정 전 파일을 축약해서 가져왔다.
# sidebar
posts:
- title: Algorithm
url: /categories/algorithm
children:
- title: "boj 23000~23999"
url: /tags/boj-23000-23999
- title: "boj 24000~24999"
url: /tags/boj-24000-24999
- title: Blog
url: categories/blog
children:
- title: "blog making"
url: /tags/blog-making
- title: "markdown"
url: /tags/markdown
2. nav_list 준비
minimal-mistakes를 그대로 fork하거나 download 했을 경우, Minimal-mistakes github에서 기본 파일을 볼 수 있다. 이를 기반으로 잡고 변경한다.
3. nav_list 변경
해당 코드의 정확한 위치는 최종 변경 파일을 보는 것을 추천한다.
A1. 전체 글 수 세기
{% assign sum = site.posts | size %}
A2. 전체 글 수 표시
<span style="font-size: 14pt"><b>TOTAL ()</b></span>
B1. 카테고리별 글 수 세기
{% assign cattotal = 0 %}
{% for category in site.categories %}
{% if category[0] == nav.category %}
{% assign cattotal = cattotal | plus: category[1].size %}
{% endif %}
{% endfor %}
B2. 카테고리별 글 수 표시
<a href=""><span class="nav__sub-title"> ()</span></a>
단순 표기 방법은 위와 같다. 나는 POSTS BY CATEGORY
나 VERSION
과 같이 글 수가 표시되지 않기를 원하는 category가 있기 때문에, 글 수가 $0$개이면 cattotal
을 표시하지 않도록 코딩하였다. 따라서 들어가서 보이는 파일의 내용은 조금 다르다.
C1. 태그별 글 수 세기
{% assign tagtotal = 0 %}
{% for tag in site.tags %}
{% if tag[0] == child.tag %}
{% assign tagtotal = tagtotal | plus: tag[1].size %}
{% endif %}
{% endfor %}
C2. 태그별 글 수 표시
<li><a href=""> ()</a></li>
4. navigation 변경
위의 태그별 글 수 세기
코드에서 볼 수 있듯이
{% assign tagtotal = 0 %}
{% for tag in site.tags %}
{% if tag[0] == child.tag %}
{% assign tagtotal = tagtotal | plus: tag[1].size %}
{% endif %}
{% endfor %}
세 번째 줄에서 child.tag
변수가 필요하다. 따라서 navigation
파일의 각각의 tag에 아래와 같이 tag
변수와 그 값을 만들어주어야 한다.
단, site의 tag들이 child.title
과 완벽하게 일치한다면, 따로 tag
변수를 만들 필요 없이 child.title
로 접근하면 된다.
# sidebar
posts:
- title: Algorithm
url: /categories/algorithm
children:
- title: "boj 23000~23999"
tag: boj-23000-23999 # 추가
url: /tags/boj-23000-23999
- title: "boj 24000~24999"
tag: boj-24000-24999 # 추가
url: /tags/boj-24000-24999
- title: Blog
url: categories/blog
children:
- title: "blog making"
tag: blog-making # 추가
url: /tags/blog-making
- title: "markdown"
tag: markdown # 추가
url: /tags/markdown
category를 다루는 방식도 이와 마찬가지로 접근하면 된다.
댓글남기기