<div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="{{ homepage_url }}">Docs</a> &raquo;</li>
    {% if current_page %}
      {% for doc in current_page.ancestors %}
        {% if doc.link %}
          <li><a href="{{ doc.link|e }}">{{ doc.title }}</a> &raquo;</li>
        {% else %}
          <li>{{ doc.title }} &raquo;</li>
        {% endif %}
      {% endfor %}
    {% endif %}
    {% if current_page %}<li>{{ current_page.title }}</li>{% endif %}
    <li class="wy-breadcrumbs-aside">
      {% if repo_url %}
        {% if repo_name == 'GitHub' %}
          <a href="{{ repo_url }}" class="icon icon-github"> Edit on GitHub</a>
        {% elif repo_name == 'Bitbucket' %}
          <a href="{{ repo_url }}" class="icon icon-bitbucket"> Edit on BitBucket</a>
        {% endif %}
      {% endif %}
    </li>
  </ul>
  <hr/>
</div>
