---
layout: page
---
<h2>Posts marked with: {{ page.tag }}</h2>
<hr>

{% unless page.content == '' %}
  <p>{{ page.content }}</p>
{% endunless %}

{% unless site.tags[page.tag] | size > 0 %}
  <p>No posts found.</p>
{% endunless %}

{% for post in site.tags[page.tag] %}
<div class="post-preview">
    <a href="{{ post.url | prepend: site.baseurl }}">
        <h3 class="post-subtitle">            
            {{ post.title }}
        </h3>
    </a>
    <p class="post-meta">
      Posted by 
      {% if post.author %}
        {{ post.author }}
      {% else %}
        {{ site.title }}
      {% endif %} 
      on {{ post.date | date: "%B %-d, %Y" }}
    </p>
</div>
<hr>
{% endfor %}