{% assign activeMenu = nil %}
<nav class="mainmenu">
    {% include logo.html %}
    <div class="nav-container">
    {% for link in site.navigation %}
		{% assign url = page.url|remove:'/index.html' %}
    	{% assign active = nil %}
        {% assign linkurl = link.url|remove:'/index.html' %}
        {% assign linkurl = link.url|remove:'/index.md' %}
		<!-- {{ linkurl }} || {{ url }} -->
		{% if page.active_link == link.id %}
			{% assign active = 'active' %}
    	{% elsif url == "" and link.url == "/" %}
    		{% assign active = 'active' %}
    	{% elsif url == link.url or page.url == link.url %}
    		{% assign active = 'active' %}
        {% elsif url == linkurl %}
    		{% assign active = 'active' %}
    	{% elsif page.layout == link.layout %}
    		{% assign active = 'active' %}
    	{% elsif page.post == true and link.layout == 'post' %}
    		{% assign active = 'active' %}
    	{% else %}
    		{% for sublink in link.subnavigation %}
    			{% if url == sublink.url %}
    				{% assign active = 'active' %}
    			{% endif %}
    		{% endfor %}
    	{% endif %}
    	{% if active == "active" %}
    		{% assign activeMenu = link %}
    	{% endif %}
        {% unless link.url contains "http://" %}
            {% capture url %}{{ site.baseurl }}{{ link.url}}{% endcapture %}
        {% else %}
            {% assign url = link.url %}
        {% endunless %}
    	<a href="{{ url }}" class="{{ active }} nav-items">{{ link.text }}</a>
    {% endfor %}
    </div>
    <div class="nav-container  ">
        <a href="https://github.com/apache/wicket" target="_blank"><i class="fa fa-github nav-items"></i></a>
        <a href="https://twitter.com/apache_wicket" target="_blank"><i class="fa fa-twitter nav-items"></i></a>
        <a href="https://builtwithwicket.tumblr.com" target="_blank"><i class="fa fa-tumblr nav-items"></i></a>
    </div>    
</nav>
