{% extends "layout.html" %}
{% set title = 'Index' %}
{% block body %}

  <h1 id="index">Index</h1>

  {% for key, dummy in genindexentries -%}
  <a href="#{{ key }}"><strong>{{ key }}</strong></a> {% if not loop.last %}| {% endif %}
  {%- endfor %}
  <hr>

  {% for key, entries in genindexentries %}
    <h2 id="{{ key }}">{{ key }}</h2>
    <table class="indextable"><tr>
    {%- for column in entries|slice(2) if column %}
      <td><dl>
      {%- for entryname, (links, subitems) in column %}
        <dt>{% if links %}<a href="{{ links[0] }}">{{ entryname|e }}</a>
          {% for link in links[1:] %}, <a href="{{ link }}">[Link]</a>{% endfor %}
          {%- else %}{{ entryname|e }}{% endif %}</dt>
        {%- if subitems %}
        <dd><dl>
          {%- for subentryname, subentrylinks in subitems %}
          <dt><a href="{{ subentrylinks[0] }}">{{ subentryname|e }}</a>
          {%- for link in subentrylinks[1:] %}, <a href="{{ link }}">[Link]</a>{% endfor -%}
          </dt>
          {%- endfor %}
        </dl></dd>
        {%- endif -%}
      {%- endfor %}
      </dl></td>
    {%- endfor %}
    </tr></table>
  {% endfor %}

{% endblock %}
