<div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="/{{ config.extra.version }}/{{ config.extra.doc_path }}">Docs</a></li>
    {% if current_page %}
    {% for doc in current_page.ancestors %}
        {% if doc.children[0].url and doc.children[0].url != current_page.url %}
          <li>&raquo; <a href="{{ doc.children[0].url|e }}">{{ doc.title }}</a></li>
        {% else %}
          <li>&raquo; {{ doc.title }}</li>
        {% endif %}
      {% endfor %}
      {% if current_page.title != "toc" %}
        <li>&raquo; {{ current_page.title }}</li>
      {% endif %}
    {% endif %}
    {% if repo_url %}
      <li class="wy-breadcrumbs-aside">
        {%- block repo %}
        {% if page and page.edit_url %}
          <a href="{{ page.edit_url }}"
          {%- if config.repo_name|lower == 'github' %}
            class="icon icon-github"
          {%- elif config.repo_name|lower == 'bitbucket' %}
            class="icon icon-bitbucket"
          {% endif %}> Edit on {{ config.repo_name }}</a>
        {% endif %}
        {%- endblock %}
      </li>
    {% endif %}
  </ul>
</div>
