{% extends "base.html" %}
{% block title %}Archive | {{ SITENAME }}{% endblock %}

{% block description %}A listing of all posts on this site{% endblock %}

{% block subheader %}
{% include "modules/blogsubheader.html" %}
{% endblock subheader %}

{% block content %}
<article>
  <div class="article_text">
    <dl>
      {% for year, year_articles in articles|groupby('date.year')|reverse %}
        <h2>{{ year }}</h2>
        {% for _, month_articles in year_articles|groupby('date.month')|reverse %}
          {# A little gross, but works (need a date object to get the month name). #}
          <h3>{{ month_articles[0].date.strftime('%B') }}</h3>
          <ul>
            {% for article in month_articles %}
              <li><span>{{ article.date.strftime('%b %d, %Y') }}</span> - <a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></li>
            {% endfor %}
          </ul>
        {% endfor %}
      {% endfor %}
    </dl>
  </div>
</article>
{% endblock %}
