<!--
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
-->
{% if page.seo_title %}
    {% assign page_title = page.seo_title %}
{% else if page.title %}
    {% assign page_title = page.title %}
{% else %}
    {% assign page_title = site.title %}
{% endif %}

<!DOCTYPE html>

<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
        {% include head/favicon.html %}
        <title>{{ page_title }}</title>
        <link href="https://fonts.googleapis.com/css?family=Roboto:100,100i,300,300i,400,400i,500,500i,700,700i,900,900i" rel="stylesheet">
        <link rel="stylesheet" href="{{ site.github.url }}/css/main-v1.css?v=1.13">
        <!-- Load Index, Menu & collapsible support -->
        <script type="text/javascript">
            {% include index/index.js %}
        </script>
    </head>
    <!-- Once all page elements are included, register event hooks -->
    <body onload="applyCollapsible()">
        <script src="js/main.min.js"></script>
        {% include partial/site-header.html %}
        {{ content }}
        {% include partial/site-footer.html %}
    </body>
</html>
