이 블로그는 Minimal-mistakes 테마가 적용되어 이를 기반으로 서술되었음을 밝힌다.

목표는 다음과 같다.

github-blog

변경해야할 파일은 총 두 개이다.

_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 CATEGORYVERSION과 같이 글 수가 표시되지 않기를 원하는 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를 다루는 방식도 이와 마찬가지로 접근하면 된다.

5. 완성본

1. _includes/nav_list

_includes/nav_list

2. _data/navigation.yml

_data/navigation.yml

댓글남기기