1 minute read

category item count 하는 방법

mmistakes/minimal-mistakes를 fork해 왔다면 _include/nav_list 를 아래 코드로 변경해 주면 됩니다.

변경 코드

{% assign navigation = site.data.navigation[include.nav] %}
{% assign sum = site.posts | size %}

<nav class="nav__list">
  {% if page.sidebar.title %}<h3 class="nav__title" style="padding-left: 0;">{{ page.sidebar.title }}</h3>{% endif %}
  <input id="ac-toc" name="accordion-toc" type="checkbox" />
  <label for="ac-toc">{{ site.data.ui-text[site.locale].menu_label | default: "Toggle Menu" }}</label>
  <li> 전체 글 수 ({{sum}})개 </li>
  <ul class="nav__items">
    {% for nav in navigation %}
      
      <li>
        {% if nav.url %}
          <a href="{{ nav.url | relative_url }}"><span class="nav__sub-title">{{ nav.title }}</span></a>
        {% else %}
          <span class="nav__sub-title">{{ nav.title }}</span>
        {% endif %}

        {% if nav.children != null %}
        <ul>
          {% for child in nav.children %}
          
          {% comment %}
             아래 부분은 카테고리 옆에 해당 카테고리에 해당하는 포스트 수를 표시하기 위해 수정되었습니다.
             navigation.yml에서 children 부분에 하위 속성으로 category를 추가합니다.
             이를 통해 category 명을 가져 올 수 있고, site.categories를 통해 해당 카테고리의 포스트 갯수를 가져올 수 있습니다.
          {% endcomment %}
          {% assign post_cnt = 0 %}
          {% for category in site.categories %}
            {% if category[0] == child.category  %}
                {% assign post_cnt = category[1].size %}
            {% endif %}
          {% endfor %}

            <li><a href="{{ child.url | relative_url }}"{% if child.url == page.url %} class="active"{% endif %}>{{ child.title }}({{ post_cnt }})</a></li>
          {% endfor %}
        </ul>
        {% endif %}
      </li>
    {% endfor %}
  </ul>
</nav>