Create a Folder Navigation

Use the Twig-variable item to create a sub-navigation for folders in your theme.

List the First Content-Level of a Folder

The simple solution with all first level items of the current folder looks like this:

{% if item.elementType == 'folder' %}
  <ul>
    {% for sub in item.folderContent %}
      <li>{{ sub.itemName }}</li>
    {% endfor %}
  </ul>
{% endif %}

List all Content-Levels of a Folder

To list all content levels within the current folder, you have to create a macro in a separate file like this:

{% macro loop_over(folder) %}
    {% for element in folder %}
        {% if element.elementType == 'folder' %}
            <a href="{{ element.urlRel }}">{{ element.name }}</a>       
             <ul>
                 {{ macros.loop_over(element.folderContent) }}
             </ul>
            {% else %}
                <a href="{{ element.urlRel }}">{{ element.name }}</a>
            {% endif %}
        </li>
    {% endfor %}
{% endmacro %}

Then you have to import the macro into your template:

{% import 'folderMacro.twig' as macros %}
{% if item.elementType == 'folder' %}
    <ul>
       {{ macros.loop_over(item.folderContent) }}
    </ul>
{% endif %}

Use a Partial for the Folder Navigation

You can also create a separate partial for the folder-navigation like this:

{% macro loop_over(folder) %}
    {% for element in folder %}
        {% if element.elementType == 'folder' %}
            <a href="{{ element.urlRel }}">{{ element.name }}</a>       
             <ul>
                 {{ macros.loop_over(element.folderContent) }}
             </ul>
            {% else %}
                <a href="{{ element.urlRel }}">{{ element.name }}</a>
            {% endif %}
        </li>
    {% endfor %}
{% endmacro %}

{% import _self as macros %}

<ul>
    {{ macros.loop_over(folder) }}
</ul>

And then just include the partial and pass over the folder as a variable like this:

<nav>
    {% include 'partials/navigationFolder.twig'  with {'folder': item.folderContent} %}
</nav>

List Folders Anywhere

You can also get any folder and list the content anywhere in the theme with the Twig function getPageList. See list articles for examples.