{% include 'main-banner.html' %}
<div class="container small-no-padding">
    <div class="row">
        <div class="col-md-12 content">
            {% block content %}
                {{ content }}
            {% endblock %}
        </div>
    </div>
</div>


<div class="container small-no-padding">
    <div class="row">
        {% for nav_item in nav %}
            {% if 'Documentation' in nav_item.title or 'Appendix' in nav_item.title %}
                <div class="col-md-3 doc-section">
                    <div class="outline-title">{{ nav_item.title }}</div>
                    <p>{{ config.extra.chapters[nav_item.title] }}</p>
                    {% if nav_item.children %}
                        <ul>
                            {% for nav_item in nav_item.children %}
                                {% set child=nav_item %}
                                <li class="{% if nav_item.active%}current{%endif%}">
                                    <a href="{% include "child_url.html" %}">{{ nav_item.title }}</a>
                                </li>
                            {% endfor %}
                        </ul>
                    {% endif %}
                </div>
            {% endif %}
        {% endfor %}
    </div>    
</div>
