<!DOCTYPE html>
<html lang="en" manifest="/manifest.appcache">

  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>{{ page.title }}</title>
    <link rel="stylesheet" href="{{ site.baseurl }}/static/css/pouchdb.css" />
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-42479701-1']);
      _gaq.push(['_trackPageview']);

      (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </script>
    <link href='http://fonts.googleapis.com/css?family=Lato:400,700|Open+Sans:400,700' rel='stylesheet' type='text/css'>
    <link rel="icon" href="/static/favicon.ico" type="image/x-icon"/>
  </head>

  <body data-spy="scroll" data-target="#sidebar">

    <header>

      <a href="https://github.com/pouchdb/pouchdb" target="_blank">
         <div class="ribbon">GitHub</div>
      </a>

      <div class="container">

        <a class="logo" href="{{ site.baseurl }}/">
          <div class="logo-img"></div>
          <span class='logo-type'>PouchDB</span>
        </a>

        <ul class='nav nav-header nav-pills'>
          <li>
            <a class='btn btn-link btn-lg' href="{{ site.baseurl }}/blog/">Blog</a>
          </li>
          <li>
            <a class='btn btn-link btn-lg' href="{{ site.baseurl }}/guides/">Guides</a>
          </li>
          <li>
            <a class='btn btn-link btn-lg' href="{{ site.baseurl }}/api.html">API</a>
          </li>
          <li>
            <a class='btn btn-link btn-lg' href="{{ site.baseurl }}/learn.html">Learn</a>
          </li>
          <li>
            <a
                class='btn btn-primary btn-lg'
                href="https://github.com/pouchdb/pouchdb/releases/download/{{ site.version }}/pouchdb-{{ site.version }}.min.js"
            >
                Download <strong>v{{ site.version }}</strong>
            </a>
          </li>
        </ul>

      </div>

    </header>
    {% if page.url != "/index.html" %}
      <div class="page-head">

        <div class="container">

          <h1>{{ page.title }}</h1>
          {% if page.sub_title %}
            <h4>{{ page.sub_title}}</h4>
          {% endif %}

        </div>

      </div>
    {% endif %}


    {{ content }}

    <div class="icons">

      <div class="container">

        <div class="row">

          <div class='col-xs-4 col-md-offset-0 col-md-2'>
            <a href='https://twitter.com/pouchdb' target='_blank'>
              <div class="icon icon-twitter"></div>
            </a>
          </div>

          <div class='col-xs-4 col-md-2'>
            <a href='https://github.com/rvagg/node-levelup' target='_blank'>
              <div class="icon icon-leveldb"></div>
            </a>
          </div>

          <div class='col-xs-4 col-md-2'>
            <a href='https://github.com/pouchdb/pouchdb' target='_blank'>
              <div class="icon icon-github"></div>
            </a>
            </div>

          <div class='col-xs-4 col-md-offset-0 col-md-2'>
            <a href='https://travis-ci.org/pouchdb/pouchdb' target='_blank'>
              <div class="icon icon-travis"></div>
            </a>
          </div>

          <div class='col-xs-4 col-md-2'>
            <a href='http://couchdb.apache.org/' target='_blank'>
              <div class="icon icon-couchdb"></div>
            </a>
          </div>

          <div class='col-xs-4 col-md-2'>
            <a href='https://saucelabs.com' target='_blank'>
              <div class="icon icon-saucelabs"></div>
            </a>
          </div>

        </div>

      </div>

    </div>

    <footer class="footer">

      <div class="container">

        <div class="row">

          <div class='col-sm-3'>
            <h3 class="nav-head">Learn</h3>
            <ul class='nav nav-silent'>
              <li><a href="{{ site.baseurl }}/getting-started.html">Getting Started</a></li>
              <li><a href="{{ site.baseurl }}/api.html">API Guide</a></li>
              <li><a href="https://github.com/pouchdb/pouchdb/wiki">Wiki</a></li>
            </ul>
          </div>

          <div class='col-sm-3'>
            <h3 class="nav-head">Discuss</h3>
            <ul class='nav nav-silent'>
              <li><a href="https://groups.google.com/forum/#!forum/pouchdb">Mailing List</a></li>
              <li><a href="irc://freenode.net/#pouchdb">IRC</a></li>
              <li><a href="http://twitter.com/pouchdb">Twitter</a></li>
              <li><a href="http://stackoverflow.com/questions/tagged/pouchdb">StackOverflow</a></li>
            </ul>
          </div>

          <div class='col-sm-3'>
            <h3 class="nav-head">Contribute</h3>
            <ul class='nav nav-silent'>
              <li><a href="https://github.com/pouchdb/pouchdb/blob/master/CONTRIBUTING.md">Contributing</a></li>
              <li><a href="https://github.com/pouchdb/pouchdb">Source</a></li>
              <li><a href="https://github.com/pouchdb/pouchdb/issues">Issues</a></li>
              <li><a href="https://github.com/pouchdb/pouchdb/blob/master/LICENSE">Apache License</a></li>
            </ul>
          </div>

        </div>

      </div>

    </footer>
    <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
    <script type="text/javascript" src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
  </body>
</html>
