---
layout: post-index
title: All Posts
description: "An archive of posts."
comments: false
---

{% for post in site.posts %}
    {% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %}
    {% capture next_year %}{{ post.previous.date | date: "%Y" }}{% endcapture %}

    {% if forloop.first %}
    <article>
      <h2 id="{{ this_year }}-ref">{{ this_year }}</h2>
      <ul>
    {% endif %}

        <li class="entry-title"><a href="{{ site.url }}{{ post.url }}" title="{{ post.title }}">{{ post.title }}</a></li>

    {% if forloop.last %}
      </ul>
    </article>
    {% else %}
        {% if this_year != next_year %}
          </ul>
        </article>
        <article>
          <h2 id="{{ next_year }}-ref" class="year-heading">{{next_year}}</h2>
          <ul>
        {% endif %}
    {% endif %}
{% endfor %}