Merge pull request #159 from julienduchesne/optimize-nav-generation

Optimized nav generation
This commit is contained in:
Patrick Marsceill 2019-08-13 11:24:13 -04:00 committed by GitHub
commit 1bf2ed0cde
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 30 additions and 34 deletions

View File

@ -1,44 +1,40 @@
<nav role="navigation" aria-label="Main navigation"> <nav role="navigation" aria-label="Main navigation">
<ul class="navigation-list"> <ul class="navigation-list">
{% assign pages_list = site.html_pages | sort:"nav_order" %} {%- assign pages_list = site.html_pages | sort:"nav_order" -%}
{% for node in pages_list %} {%- for node in pages_list -%}
{% unless node.nav_exclude %} {%- unless node.nav_exclude -%}
{% if node.parent == nil %} {%- if node.parent == nil -%}
<li class="navigation-list-item{% if page.url == node.url or page.parent == node.title or page.grand_parent == node.title %} active{% endif %}"> <li class="navigation-list-item{% if page.url == node.url or page.parent == node.title or page.grand_parent == node.title %} active{% endif %}">
{% if page.parent == node.title or page.grand_parent == node.title %} {%- if page.parent == node.title or page.grand_parent == node.title -%}
{% assign first_level_url = node.url | absolute_url %} {%- assign first_level_url = node.url | absolute_url -%}
{% endif %} {%- endif -%}
<a href="{{ node.url | absolute_url }}" class="navigation-list-link{% if page.url == node.url %} active{% endif %}">{{ node.title }}</a> <a href="{{ node.url | absolute_url }}" class="navigation-list-link{% if page.url == node.url %} active{% endif %}">{{ node.title }}</a>
{% if node.has_children %} {%- if node.has_children -%}
{% assign children_list = site.html_pages | sort:"nav_order" %} {%- assign children_list = site.html_pages | where: "parent", node.title | sort:"nav_order" -%}
<ul class="navigation-list-child-list "> <ul class="navigation-list-child-list ">
{% for child in children_list %} {%- for child in children_list -%}
{% if child.parent == node.title %} <li class="navigation-list-item {% if page.url == child.url or page.parent == child.title %} active{% endif %}">
<li class="navigation-list-item {% if page.url == child.url or page.parent == child.title %} active{% endif %}"> {%- if page.url == child.url or page.parent == child.title -%}
{% if page.url == child.url or page.parent == child.title %} {%- assign second_level_url = child.url | absolute_url -%}
{% assign second_level_url = child.url | absolute_url %} {%- endif -%}
{% endif %} <a href="{{ child.url | absolute_url }}" class="navigation-list-link{% if page.url == child.url %} active{% endif %}">{{ child.title }}</a>
<a href="{{ child.url | absolute_url }}" class="navigation-list-link{% if page.url == child.url %} active{% endif %}">{{ child.title }}</a> {%- if child.has_children -%}
{% if child.has_children %} {%- assign grand_children_list = site.html_pages | where: "parent", child.title | sort:"nav_order" -%}
{% assign grand_children_list = site.html_pages | sort:"nav_order" %}
<ul class="navigation-list-child-list"> <ul class="navigation-list-child-list">
{% for grand_child in grand_children_list %} {%- for grand_child in grand_children_list -%}
{% if grand_child.parent == child.title %} <li class="navigation-list-item {% if page.url == grand_child.url %} active{% endif %}">
<li class="navigation-list-item {% if page.url == grand_child.url %} active{% endif %}"> <a href="{{ grand_child.url | absolute_url }}" class="navigation-list-link{% if page.url == grand_child.url %} active{% endif %}">{{ grand_child.title }}</a>
<a href="{{ grand_child.url | absolute_url }}" class="navigation-list-link{% if page.url == grand_child.url %} active{% endif %}">{{ grand_child.title }}</a> </li>
</li> {%- endfor -%}
{% endif %} </ul>
{% endfor %} {%- endif -%}
</ul> </li>
{% endif %} {%- endfor -%}
</li>
{% endif %}
{% endfor %}
</ul> </ul>
{% endif %} {%- endif -%}
</li> </li>
{% endif %} {%- endif -%}
{% endunless %} {%- endunless -%}
{% endfor %} {%- endfor -%}
</ul> </ul>
</nav> </nav>