<div class="unit one-fifth hide-on-mobiles">
  <aside>
    <ul>
      <li class="{% if page.title == 'News' %}current{% endif %}">
        <a href="{{ site.baseurl }}/news/">All News</a>
      </li>
      <li class="{% if page.title == 'Releases' %}current{% endif %}">
        <a href="{{ site.baseurl }}/news/releases/">Calcite Releases</a>
      </li>
    </ul>
    <h4>Recent Releases</h4>
    <ul>
      {% for post in site.categories.release limit:5 %}
      <li class="{% if page.title == post.title %}current{% endif %}">
        <a href="{{ site.baseurl }}{{ post.url }}">{{ post.version }}</a>
      </li>
      {% endfor %}
    </ul>
    <h4>Other News</h4>
    <ul>
        {% for post in site.posts %}{% comment %}
          {% endcomment %}{% unless post.categories contains 'release' %}
        <li class="{% if page.title == post.title %}current{% endif %}">
          <a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a>
        </li>
          {% endunless %}{% comment %}
        {% endcomment %}{% endfor %}
    </ul>
  </aside>
</div>
