---
layout: default
---

<div class="post-header">
   <h1 class="post-title-main">{{ page.title }}</h1>
</div>

{% if page.simple_map == true %}

<script>
    $(document).ready ( function(){
        $('.box{{page.box_number}}').addClass('active');
    });
</script>

{% include custom/{{page.map_name}}.html %}

{% elsif page.complex_map == true %}

<script>
    $(document).ready ( function(){
        $('.modalButton{{page.box_number}}').addClass('active');
    });
</script>

{% include custom/{{page.map_name}}.html %}

{% endif %}

<div class="post-content">

   {% if page.summary %}
    <div class="summary">{{page.summary}}</div>
   {% endif %}

    {% unless page.toc == false %}
    {% include toc.html %}
    {% endunless %}


    {% if site.github_editme_path %}

    <a target="_blank" href="https://github.com/{{site.github_editme_path}}{% unless page.url contains "index.html" %}pages/{% endunless %}{{page.folder}}{{page.url | remove: ".html" | append: ".md"}}" class="btn btn-default githubEditButton" role="button"><i class="fa fa-github fa-lg"></i> Edit me</a>

    {% endif %}


    {% if site.gitlab_editme_path %}

    <a target="_blank" href="https://github.com/{{site.gitlab_editme_path}}{% unless page.url contains "index.html" %}pages/{% endunless %}{{page.folder}}{{page.url | remove: ".html" | append: ".md"}}" class="btn btn-default githubEditButton" role="button"><i class="fa fa-gitlab fa-lg"></i> Edit me</a>

    {% endif %}

  {{content}}

    <div class="tags">
        {% if page.tags != null %}
        <b>Tags: </b>
        {% assign projectTags = site.data.tags.allowed-tags %}
        {% for tag in page.tags %}
        {% if projectTags contains tag %}
        <a href="{{ "tag_" | append: tag | append: ".html" }}" class="btn btn-default navbar-btn cursorNorm" role="button">{{page.tagName}}{{tag}}</a>
        {% endif %}
        {% endfor %}
        {% endif %}
    </div>

{% include disqus.html %}

</div>

{{site.data.alerts.hr_shaded}}

{% include footer.html %}
