blob: 1cc90f6fbf47f2e32fd59e22403bd65426a01f2c [file] [log] [blame]
<script>
function select(elem) {
var selectedClassName = "selected";
$(".wy-menu-vertical li.selected").removeClass(selectedClassName);
$(elem).addClass(selectedClassName);
}
</script>
<!--
this macro is to fetch the first child element that has url and return the url as the default one of the section
arguemnt:
ni: nav_item, corresponding to navigation item configured in mkdocs.yml's "pages"
-->
{% macro fetchDefaultUrl(ni) %}
{% if ni.url %}
{{ ni.url }}
{% elif ni.children %}
{{ fetchDefaultUrl(ni.children|first()) }}
{% else %}
{{ "" }}
{% endif %}
{% endmacro %}
<!--
this macro generates the style for indentation on sub tocs in side nav
argument:
current_level: the level number of current toc item
max_level: a number indicating how many toc item levels should show up
-->
{% macro getIndentationStyle(current_level, max_level) %}
{% if current_level != 0 %}
{% set indentation = 1 * current_level + 3 %}
{{ "style=\"padding-left: "~indentation~"em;\""}}
{% else %}
{{ "" }}
{% endif %}
{% endmacro %}
<!--
this macro shows toc items including nested tocs, toc nesting level would depending on arguments described below
argument:
current_level: the level number of current toc item
max_level: a number indicating how many toc item levels should show up
-->
{% macro showNestedToc(toc_item, current_level, max_level) %}
{% if current_level < max_level %}
<li class="{%if current_level == 0%}toctree-l3{%else%}toctree-l4{%endif%}" onclick="select(this)"><a {{getIndentationStyle(current_level, max_level)}} href="{{ toc_item.url }}">{{ toc_item.title }}</a></li>
{% if toc_item.children %}
<ul>
{% for toc_i in toc_item.children %}
{{ showNestedToc(toc_i, current_level+1, max_level) }}
{% endfor %}
</ul>
{% endif %}
{% else %}
{{""}}
{% endif %}
{% endmacro %}
<!-- generate side nav based on navigation configured in mkdocs.yml -->
{% if nav_item.children %}
{% if nav_item.active %}
<ul class="subnav">
<li><a class="current" href="{{ fetchDefaultUrl(nav_item) }}">{{ nav_item.title }}</a></li>
{% for nav_item in nav_item.children %}
{% include 'toc.html' %}
{% endfor %}
</ul>
{% else %}
<li><a href="{{ fetchDefaultUrl(nav_item) }}">{{ nav_item.title }}</a></li>
{% endif %}
{% else %}
<li class="toctree-l1 {% if nav_item.active%}current{%endif%}">
<a class="{% if nav_item.active%}current{%endif%}" href="{{ nav_item.url }}">{{ nav_item.title }}</a>
{% if nav_item == current_page %}
<ul>
{% for toc_item in toc %}
{{ showNestedToc(toc_item, 0, 3) }}
{% endfor %}
</ul>
{% endif %}
</li>
{% endif %}