<!--
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-->

<header id="header" >

  <!-- Main Menu -->
  <nav class="navbar navbar-default" role="navigation" id="nav-wrapper">
    <div class="container-fluid" id="nav">
      <!--
      <img class="img-circle" width="40px" height="40px" id="circlelogo" src="{{ "/assets/images/kylin_logo.jpg"| prepend: site.baseurl }}">
      -->
      <!-- Brand and toggle get grouped for better mobile display -->
      <div class="navbar-header">
        <img class="navbar-logo" width="46" src="{{"/assets/images/kylin_logo.png" | prepend: site.baseurl }}" ></img>
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <ul class="nav icon-navbar">
            <li><a href="https://twitter.com/apachekylin" target="_blank" class="fa fa-twitter fa-lg"  title="Twitter: @ApacheKylin" ></a></li>
            <li><a href="https://github.com/apache/kylin" target="_blank" class="fa fa-github-alt fa-lg" title="Github: apache/kylin" ></a></li>
            <li><a href="https://www.facebook.com/kylinio" target="_blank" class="fa fa-facebook fa-lg" title="Facebook: kylin.io" ></a></li>
        </ul>
      </div>

      <!-- Collect the nav links, forms, and other content for toggling -->
      <div class="navbar-collapse collapse" id="bs-example-navbar-collapse-1">

        <ul class="nav navbar-nav">

          <li><a href="/">Home</a></li>
          <li><a href="/5.0" style="font-weight:bold;color:black;text-decoration:underline;background-color:#FFE4B5">Kylin 5.0 Home</a></li>
          <li>
            <a href="/docs" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Docs<span class="caret"></span></a>
            <ul class="dropdown-menu">
              <li><a href="/docs/">Kylin 4.0.2</a></li>
              <li><a href="/docs31/">Kylin 3.1.3</a></li>
              <li><a href="/docs24/">Kylin 2.4.0</a></li>
              <li><a href="/archive/">Archive</a></li>
              <li><a href="/blog">Blog</a></li>
            </ul>
          </li>
          <li><a href="/download">Download</a></li>
          <li><a href="/community" >Community</a></li>
          <li>
            <a href="/development" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Development<span class="caret"></span></a>
            <ul class="dropdown-menu">
              <li><a href="/development40/">Kylin 4.x</a></li>
              <li><a href="/development/">Kylin 3.x And Older Versions</a></li>
            </ul>
          </li>
          <li><a href="/cn" >中文版</a></li>
        </ul>
      </div><!-- /.navbar-collapse -->
    </div><!-- /.container-fluid -->
  </nav>

  <div id="head" class="parallax normal-header" >
    <div class="text-center header-apache">
      <a href="http://apache.org/foundation/contributing.html" title="Support Apache" style="margin-left: 150px;">
        <div>
          <img src="https://www.apache.org/images/SupportApache-small.png" >
        </div>
      </a>
    </div>
  </div>

 </header>
