{% macro navsection(hierarchy, level, current) %}
  {% set sec = hierarchy | nth(n=level) %}
  {% set sec = get_section(path=sec) %}
  {% set maxlevel = hierarchy | length %}


  {# Ici on regarde si toutes les sous-sections et pages contenues ont #}
  {# une variable weight_custom. Au passage on note ces poids.         #}
  {% set temoin = true %}
  {% set liste = [] %}
  {% if sec.subsections %}
    {% for s in sec.subsections %}
      {% set s_temp = get_section(path=s) %}
      {% if not s_temp.extra.weight_custom %}
        {% set_global temoin = false %}
      {% else %}
        {% set_global liste = liste | concat(with=s_temp.extra.weight_custom) %}
      {% endif %}
    {% endfor %}
  {% endif %}
  {% if sec.pages %}
    {% for p in sec.pages %}
      {% if not p.extra.weight_custom %}
        {% set_global temoin = false %}
      {% else %}
        {% set_global liste = liste | concat(with=p.extra.weight_custom) %}
      {% endif %}
    {% endfor %}
  {% endif %}


  {# Si toutes les sous-sections et pages ont une variable weight_custom, #}
  {# on classe selon elle. Sinon, on utilise la méthode classique.        #}
  {% if temoin %}
    {% set_global liste = liste | sort %}
    {% for x in liste %}
      {% if sec.subsections %}
        {% for y in sec.subsections %}
          {% set p = get_section(path=y) %}
          {% if p.extra.weight_custom == x %}
            <div class="toc-item">
              {% if p.subsections or p.pages %}
                {% if p.path == current.path %}
                  <a class="subtext" href="{{ p.permalink | safe}}">‣ <b>{{ p.title }}</b></a>
                {% elif hierarchy is containing(y) %}
                  <a class="subtext" href="{{ p.permalink | safe}}">‣ {{ p.title }}</a>
                {% else %}
                  <a class="subtext" href="{{ p.permalink | safe}}">‣ {{ p.title }}</a>
                {% endif %}
                {% if hierarchy is containing(y) or current.path == p.path %}
                  {% if level + 1 < maxlevel %}
                    <div class="nav-subsection">
                      {{ nav::navsection(hierarchy=hierarchy,level=level + 1,current=current) }}
                    </div>
                  {% endif %}
                {% endif %}
              {% else %}
                {% if p.path == current.path %}
                <a class="subtext" href="{{p.permalink | safe}}"><b>{{ p.title }}</b></a>
                {% else %}
                  <a class="subtext" href="{{p.permalink | safe}}">{{ p.title }}</a>
                {% endif %}
              {% endif %}
            </div>
          {% endif %}
        {% endfor %}
      {% endif %}
      {% if sec.pages %}
        {% for p in sec.pages %}
          {% if p.extra.weight_custom == x %}
            <div class="toc-item">
              {% if p.path == current.path %}
              <a class="subtext" href="{{p.permalink | safe}}"><b>{{ p.title }}</b></a>
              {% else %}
                <a class="subtext" href="{{p.permalink | safe}}">{{ p.title }}</a>
              {% endif %}
            </div>
          {% endif %}
        {% endfor %}
      {% endif %}	  
    {% endfor %}
  {% else %}
    {% if sec.subsections %}
      {% for s in sec.subsections %}
        {% set p = get_section(path=s) %}
        <div class="toc-item">
          {% if p.subsections or p.pages %}
            {% if p.path == current.path %}
              <a class="subtext" href="{{ p.permalink | safe}}">‣ <b>{{ p.title }}</b></a>
            {% elif hierarchy is containing(s) %}
              <a class="subtext" href="{{ p.permalink | safe}}">‣ {{ p.title }}</a>
            {% else %}
              <a class="subtext" href="{{ p.permalink | safe}}">‣ {{ p.title }}</a>
            {% endif %}
            {% if hierarchy is containing(s) or current.path == p.path %}
              {% if level + 1 < maxlevel %}
                <div class="nav-subsection">
                  {{ nav::navsection(hierarchy=hierarchy,level=level + 1,current=current) }}
                </div>
              {% endif %}
            {% endif %}
          {% else %}
            {% if p.path == current.path %}
            <a class="subtext" href="{{p.permalink | safe}}"><b>{{ p.title }}</b></a>
            {% else %}
              <a class="subtext" href="{{p.permalink | safe}}">{{ p.title }}</a>
            {% endif %}
          {% endif %}
        </div>
        {% endfor %}
    {% endif %}
  
    {% if sec.pages %}
      {% for p in sec.pages %}
        <div class="toc-item">
          {% if p.path == current.path %}
          <a class="subtext" href="{{p.permalink | safe}}"><b>{{ p.title }}</b></a>
          {% else %}
            <a class="subtext" href="{{p.permalink | safe}}">{{ p.title }}</a>
          {% endif %}
        </div>
      {% endfor %}
    {% endif %}
  {% endif %}	
{% endmacro navsection %}

{% macro navmenu(current) %}
  {% if current.ancestors %}
    {% set hierarchy = current.ancestors | slice(start=1) | concat(with=current.relative_path) %}
  {% else %}
    {% set hierarchy = [current.relative_path] %}
  {% endif %}

  {% set root_path = hierarchy | nth(n=0) %}
  {% set root = get_section(path=root_path) %}
  <div class="toc-item toc-section">
    <a class="subtext" href="{{root.permalink | safe}}">{{ root.title }}</a>
  </div>

  {{ nav::navsection(hierarchy=hierarchy,level=0,current=current) }}
{% endmacro %}
