---
type: frontmatter
search: exclude
permalink: /tocpage.html/
---

<!-- new page -->
<div id="navig">
    <h1>Table of Contents</h1>

    {% assign sidebar = site.data.sidebars[site.pdf_sidebar].entries %}

    <ul id="mysidebar" class="nav">
        {% for entry in sidebar %}
        {% for folder in entry.folders %}
        {% if folder.output contains "pdf" and folder.type != "frontmatter" %}
        <li class="sectionHead">{{ folder.title }}
            <ul>
                {% for folderitem in folder.folderitems %}
                {% if folderitem.output contains "pdf" and folderitem.type != "frontmatter"%}
                <li><a href="{{folderitem.url | prepend: site.baseurl}}">{{folderitem.title}}</a>
                    {% for subfolders in folderitem.subfolders %}
                    {% if subfolders.output contains "pdf" and subfolders.type != "frontmatter" %}
                <li class="sectionHead">{{ subfolders.title }}
                    <ul>
                        {% for subfolderitem in subfolders.subfolderitems%}
                        {% if subfolderitem.output contains "pdf" and subfolderitem.type != "frontmatter"%}
                        <li><a href="{{subfolderitem.url | prepend: site.baseurl}}">{{subfolderitem.title}}</a></li>
                        {% endif %}
                        {% endfor %}
                    </ul>
                </li>
                {% endif %}
                {% endfor %}
                </li>
                {% endif %}
                {% endfor %}
            </ul>
        </li>
        {% endif %}
        {% endfor %}
        {% endfor %}
    </ul>
</div>
