Tasdik Rahman
Tasdik Rahman

Reputation: 2340

Adding tags to jekyll hyde blog

I am trying to add tags to my blog based on jekyll hyde.

This is what I have in place right now.

_includes/filter_by_tag.html

<div class="message">
    Filter by tag:

    {% assign all_tags = site.data.tags %}
    {% for tag in all_tags %}<a href="{{ site.url }}/blog/tag/{{ tag[0] }}">#{{ tag[1].name }}</a>
    {% endfor %}
</div>

_includes/tags_for_page.html

{% assign post = page %}
{% if post.tags.size > 0 %}
    {% capture tags_content %}{% if post.tags.size == 1 %}<i class="fa fa-tag"></i>{% else %}<i class="fa fa-tags"></i>{% endif %} {% endcapture %}
    {% for post_tag in post.tags %}
      {% assign tag = site.data.tags[post_tag] %}
        {% if tag %}
            {% capture tags_content_temp %}{{ tags_content }}<a href="/blog/tag/{{ post_tag }}/">#{{ tag.name }}</a> {% if forloop.last == false %}<!--comma-->{% endif %}{% endcapture %}
            {% assign tags_content = tags_content_temp %}
        {% endif %}
    {% endfor %}
{% else %}
    {% assign tags_content = '' %}
{% endif %}

_layouts/blog_by_tag.html

---
layout: default
---

{% assign tag = site.data.tags[page.tag] %}

<div class="page">
  <h1 class="page-title">Articles by tag: #{{ tag.name }}</h1>

  <div class="message">
    All tags:

    {% assign all_tags = site.data.tags %}
    {% for tag in all_tags %}<a href="{{ site.url }}/blog/tag/{{ tag[0] }}">#{{ tag[1].name }}</a>
    {% endfor %}
  </div>

  <div>
      {% if site.tags[page.tag] %}
          {% for post in site.tags[page.tag] %}
              {{ post.date | date_to_string }} &raquo; <a href="{{ post.url }}">{{ post.title }}</a><br>
          {% endfor %}
      {% else %}
          <p>There are no posts for this tag.</p>
      {% endif %}
  </div>

</div>

_layouts/post.html

comments: true
---

{% include tags_for_page.html %}

<div class="post">
  <h1 class="post-title">{{ page.title }}</h1>
  <span class="post-date">{{ page.date | date_to_string }} {{ tags_content }}</span>
  {% if page.cover_image %}
  <img src="{{ page.cover_image }}" alt="{{ page.title }}">
  {% endif %}

  {{ content }}

</div>

archive.md

title: Blog Archives

{% include filter_by_tag.html %}

{% for post in site.posts %}{{ post.date | date_to_string }} &raquo; [ {{ post.title }} ]({{ post.url }})  
{% endfor %}

I am not sure where am I going wrong here, I tried following the content from this blog post here, tried replicating the same for my blog but I can't see the tags being generated and displayed.

Not sure where am I going wrong.

Upvotes: 0

Views: 139

Answers (1)

Tasdik Rahman
Tasdik Rahman

Reputation: 2340

I had missed out the file

_data/tags.yml

whose contents would be like

ansible:
  name: ansible
apache:
  name: apache

and so on

Upvotes: 0

Related Questions