<!DOCTYPE html>
<html lang="en">
<head>
  <!--
      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.
  -->

  <title>Apache SIS - {{ .Title }}</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css"
        rel="stylesheet" integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
  <link rel="stylesheet" type="text/css" media="screen" href="css/syntax.css">
  <link rel="stylesheet" type="text/css" media="screen" href="css/sis.css">
</head>

<body>

{{ partial "menu.html" }}

<div class="row flex-nowrap">
  <div class="d-flex flex-column flex-shrink-0 p-3 text-white bg-dark" style="width: 12rem;">
    <ul class="nav nav-pills flex-column mb-auto position-fixed">
      <li><a class="nav-link {{ if eq .Page.RelPermalink "/" }} active {{ else }} text-white {{ end }}" href="/index.html">Home</a></li>
      <li><a class="nav-link {{ if eq .Page.RelPermalink "/standards.html" }} active {{ else }} text-white {{ end }}" href="standards.html">Standards</a></li>
      <li><a class="nav-link text-white" href="http://www.apache.org/licenses/">License</a></li>
      <li><a class="nav-link {{ if eq .Page.RelPermalink "/downloads.html" }} active {{ else }} text-white {{ end }}" href="downloads.html">Downloads</a></li>
      <li><a class="nav-link text-white" href="apidocs/index.html">Online Javadoc</a></li>
      <li><a class="nav-link text-white" href="book/index.html">Developer Guide</a></li>
      <li><a class="nav-link {{ if eq .Page.RelPermalink "/epsg.html" }} active {{ else }} text-white {{ end }}" href="epsg.html">EPSG Database</a></li>
      <li><a class="nav-link {{ if eq .Page.RelPermalink "/code-patterns.html" }} active {{ else }} text-white {{ end }}" href="code-patterns.html">Code patterns</a></li>
      <li><a class="nav-link {{ if eq .Page.RelPermalink "/faq.html" }} active {{ else }} text-white {{ end }}" href="faq.html">FAQ</a></li>
    </ul>
  </div>
  <div class="col">
    <main class="container">
      <article>
        <img src="img/logo.png" class="sis-logo" align="left"/>
        <p class="page-title">{{ .Title }}</p>
        {{ block "main" . }}{{ end }}
      </article>
    </main>
    <footer class="footer">
    <div class="container">
      <p>
        Copyright &copy; 2013-{{ now.Year }} The Apache Software Foundation, Licensed under the
        <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>
        Apache SIS, Apache, the Apache feather logo are trademarks of The Apache Software Foundation.
      </p>
    </div>
</footer>
  </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-/bQdsTh/da6pkI1MST/rWKFNjaCP5gBSY4sEBT38Q/9RBh9AH40zEOg7Hlq2THRZ" crossorigin="anonymous"></script>

</body>
</html>
