{% if page.title == "Home" %}
<div class="jumbotron">
  <div class="container">
    <img class="logo-img" src="/assets/themes/apache-clean/img/apache_logo_800.png" alt="Apache Bahir"/>
    <!--h1>{{ site.data.project.name }}</h1-->
    <p>{{ site.data.project.description }}</p>

    {% if site.data.project.latest_release %}
    <a href="{{ site.data.project.download }}" class="btn btn-primary btn-lg bigFingerButton" role="button">Download {{ site.data.project.name }} {{site.data.project.latest_release}}</a></p>
    {% endif %}
  </div>
</div>
{% endif %}

<!-- Navigation -->
<div id="nav-bar">
  <nav id="nav-container" class="navbar navbar-inverse " role="navigation">
    <div class="container">
      <!-- Brand and toggle get grouped for better mobile display -->

      <div class="navbar-header page-scroll">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand page-scroll" href="/#home">Home</a>
      </div>
      <!-- Collect the nav links, forms, and other content for toggling -->
      <nav class="navbar-collapse collapse" role="navigation">
        <ul class="nav navbar-nav">
          {% for entry in site.data.navigation.topnav %}
          <li id="{{ entry.title | slugify }}">
            {% if entry.subcategories %}
            <a href="#" data-toggle="dropdown" class="dropdown-toggle">{{ entry.title }}<b class="caret"></b></a>
            <ul class="dropdown-menu dropdown-left">
              {% for subitem in entry.subcategories %}
              {% if subitem.url contains "http" %}
              {% assign target = "_blank" %}{% else %}
              {% assign target = "_self" %}{% endif %}
              <li><a href="{{ subitem.url }}" target="{{ target }}">{{ subitem.title }}</a></li>
              {% endfor %}
            </ul>
            {% else %}
            {% if entry.url contains "http" %}
            {% assign target = "_blank" %}{% else %}
            {% assign target = "_self" %}{% endif %}
            <a href="{{ entry.url }}" target="{{ target }}">{{ entry.title }}</a>
            {% endif %}
          </li>
          {% endfor %}
        </ul>
      </nav><!--/.navbar-collapse -->
      <!-- /.navbar-collapse -->
    </div>
    <!-- /.container -->
  </nav>
</div>
