dotfiles

My PC Dotfiles & Website

site/templates/macros/menu.html (2332B)


 1{% macro menu(config, current_url) %} {%- if config.extra.main_menu_items and
 2config.extra.main_menu_items | length > 0 %} {%- set menu_items =
 3config.extra.main_menu_items -%} {%- set main_len = menu_items | length -%} {%-
 4if config.extra.main_menu_show -%} {%- set show_len =
 5config.extra.main_menu_show -%} {%- set menu_more = config.extra.main_menu_more
 6-%} {%- else -%} {%- set show_len = main_len -%} {%- set menu_more = "" -%} {%-
 7endif -%}
 8<nav class="menu-desktop" aria-label="Main navigation">
 9  <ul class="menu-inner menu-inner-desktop">
10    {{ menu::items(menu=menu_items | slice(end=show_len),
11    current_url=current_url)}} {%- if main_len > show_len -%}
12    <li class="menu-inner-list">
13      <button type="button" class="menu-inner-list-more-trigger" aria-controls="more-menu" aria-expanded="false">
14        {{ menu_more }} ▾
15      </button>
16      <ul class="menu-inner-list-more" id="more-menu">
17        {{ menu::items(menu=menu_items | slice(start=show_len),
18        current_url=current_url) }}
19      </ul>
20    </li>
21    {%- endif -%}
22  </ul>
23</nav>
24<nav class="menu-mobile hidden" id="mobile-menu" aria-label="Main navigation">
25  <ul class="menu-inner menu-inner-mobile">
26    {{ menu::items(menu=menu_items, current_url=current_url) }}
27  </ul>
28</nav>
29{% endif -%} {% endmacro menu %} {% macro items(menu, current_url) %} {%- for
30item in menu %} {% if item.external %} {% continue %} {% endif -%} {%- set
31abs_item_url = get_url(path=item.url) -%} {%- set is_current = current_url ==
32abs_item_url ~ "/" or current_url == abs_item_url -%} {%- set is_base =
33abs_item_url == config.base_url or abs_item_url == config.base_url ~ "/" -%} {%-
34if is_base %} {%- set_global base_item = item -%} {% endif -%} {%- if is_current
35and not is_base %} {%- set_global current_item = item -%} {% endif -%} {% endfor
36-%} {%- if not current_item and base_item %} {%- set current_item = base_item
37-%} {% endif -%} {%- for item in menu -%} <li {%- if current_item and
38current_item == item %} class="active" {%- endif %}> {%- if item.external -%} {{
39url::external(url=item.url, text=item.name) }} {%- else -%} {%- if item.newtab
40-%} {%- set newtab = true -%} {%- else -%} {%- set newtab = false -%} {%- endif
41-%} {{ url::internal(path=item.url, text=item.name, newtab=newtab) }} {%- endif
42-%} </li> {%- endfor -%} {% endmacro items %}