Creating Tag List Page

Since many tags are not listed on the sidebar, I’ve always wanted to have a page where I can see all categories & tags I’ve used for the posts. And visitors may click on it to navigate related posts. To implement a tag list, you only need to create two files to have a such page.
/tags.md
/_layouts/tags.html
tags.md
<!-- file: "/tags.md" -->
---
layout: tags
title: Tags
permalink: /tags/
sidebar: true
order: 4
description: >
  List of all categories & tags of blog.
---
Create tags.md file in the root folder.
 It will be displayed in the sidebar, so set sidebar accordingly, and we must create a new layout tags.
tags.html
tags.html should be located in _layouts folder.
 It finds all categories & tags from the site & lists them in list or tag-list style (they are layouts that you will see when you click category or tag).
 type property is also used in here, so make sure you’ve added property to the *.md files in /featured_categories & /featured_tags. (They are NOT there by default! I’ve created a new property for this.)
---
layout: page
---
{{ content }}
{% assign documents = site.documents %}
{% assign featured_categories = documents | where: "type", "category" | sort %}
{% assign featured_tags = documents | where: "type", "tag" | sort %}
{% assign categories = site.categories | sort %}
{% assign tags = site.tags | sort %}
{% for category in featured_categories %}
  <h2 id="{{ category.slug }}" class="hr">
    <a href="{{ category.url | relative_url }}">{{ category.title }}</a>
    {% for site_category in categories %}
      {% if site_category[0] == category.slug %}
        <span class="faded fine">{{ site_category | last | size }}</span>
      {% endif %}
    {% endfor %}
  </h2>
  <ul class="related-posts">
    {% for tag in featured_tags %}
      {% if tag.category == category.slug %}
        <li class="h6">
          <a href="{{ tag.url | relative_url }}">{{ tag.title }}</a>
          {% for site_tag in tags %}
            {% if site_tag[0] == tag.slug %}
              <span class="faded fine">{{ site_tag | last | size }}</span>
              {% break %}
            {% endif %}
          {% endfor %}
        </li>
      {% endif %}
    {% endfor %}
  </ul>
{% endfor %}
It is a very short code, but I invested some time to figure out how liquid works.
 So… If you find this post useful, please click the applause button for me :)
Back to How I customized Hydejack Theme
