portfolio / portfolio-webapp / templates / _skeleton.html
_skeleton.html
Raw
{#
    Available flags: 
    Flag                    Default             Notes
    ============================================================================================================
    _PAGE (str)             request.endpoint    Used as default class on body (a way of uniquely identifying pages).
    _TITLE (str)            None                If set, prepends branding in <title> (e.g. Page Title | Branding)
    _STUPIDTABLE (bool)     False               https://github.com/joequery/Stupid-Table-Plugin
    _CHARTJS (bool)         False               https://www.chartjs.org/
    _PDFJS (bool)           False               https://mozilla.github.io/pdf.js/
#}
{%- if _PAGE is undefined -%}
    {% set _PAGE = request.endpoint %}
{%- endif -%}
{%- if _SIDENAV is undefined -%}
    {% set _SIDENAV = False %}
{%- endif -%}
{#{% from 'macros/modals.html' import flash_modal %}#}
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="shortcut icon" href="static/images/favicon.ico">
        {% block meta %}{% endblock %}

        <title>{% block full_title %}{% if _TITLE %}{{_TITLE}} | {% endif %}{{config.BRANDING}}{% endblock %}</title>

        {% block font %}
        <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,800&display=swap" rel="stylesheet">
        {% endblock %}
        <link rel="stylesheet" href="https://d3skzu0rvh4kr6.cloudfront.net/fontawesome5-rc5-9/css/all.min.css">
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">

        {% block primary_css %}
        <link rel="stylesheet" href="/static/css/vendor.bundle.css">
        <link rel="stylesheet" href="/static/css/public.bundle.css">
        {% endblock %}
        {% block _head %}{% endblock %}
    </head>
    <body class="{{_PAGE|replace('.', '--')}} {{_BODYCLASS}}" data-g-user-id="{{g.user.user_id if g.user}}" data-g-user-name="{{g.user.first_name if g.user}}">
        {#
        {% for category, message in get_flashed_messages(with_categories=true) -%}
            {{flash_modal(category, message, loop.index)}}
        {% endfor %}
        #}
        {% block _modals %}{% endblock %}

        {# Navbar #}
        <header class="navbar navbar-expand navbar-dark flex-wrap flex-md-nowrap justify-content-center px-4 px-sm-6 px-md-3">
            <a href="/" class="navbar-brand d-flex align-items-center order-1">
                <!-- <img src="/static/images/logo.png" alt="Lorenzo Waguespack Logo" class="mr-1 rounded" width="30" height="30"> -->
                <span class="h2 text-white mb-0">Lorenzo&nbsp;<span class="h2 text-primary mb-0">Waguespack</span></span>
            </a>
            <div class="navbar-nav-scroll order-4 order-md-2 w-100">
                <ul class="navbar-nav flex-row pt-2 pt-md-0 justify-content-between justify-content-md-start">
                    <li class="nav-item {{'active' if request.endpoint == 'public.landing'}}">
                        <a href="{{url_for('public.landing')}}" class="nav-link px-0 px-md-2">Home</a>
                    </li>
                    <li class="nav-item {{'active' if request.endpoint == 'public.resume'}}">
                        <a href="{{url_for('public.resume')}}" class="nav-link px-0 px-md-2">Resum&eacute;</a>
                    </li>
                    <li class="nav-item {{'active' if request.endpoint == 'public.portfolio'}}">
                        <a href="{{url_for('public.portfolio')}}" class="nav-link px-0 px-md-2">Portfolio</a>
                    </li>
                    {#
                    <li class="nav-item {{'active' if request.endpoint == 'public.about'}}">
                        <a href="{{url_for('public.landing')}}" class="nav-link px-0 px-md-2">About Me</a>
                    </li>
                    #}
                </ul>
            </div>
            <div class="d-flex align-items-center justify-content-end ml-auto order-2 order-md-3">
                <ul class="navbar-nav flex-row">
                    <li class="nav-item">
                        <a href="https://www.linkedin.com/in/lorenzo-waguespack/" class="nav-link" target="_blank" rel="noopener noreferrer">
                            <i class="fab fa-linkedin-in"></i>
                        </a>
                    </li>
                    <li class="nav-item">
                        <a href="mailto:lorenzowaguespack@gmail.com" class="nav-link pr-0 pr-md-2" target="_blank" rel="noopener noreferrer">
                            <i class="fas fa-envelope"></i>
                        </a>
                    </li>
                </ul>
            </div>
            <div class="w-100 d-flex d-md-none order-3 order-md-4"></div>
        </header>
        <div class="container-fluid">
            <div class="row flex-xl-nowrap">
                {% if _SIDENAV -%}
                <div class="col-md-3 col-xl-2 sidebar navbar-expand-md navbar-dark bg-dark p-2">
                    <div class="d-md-none"></div>
                    <button class="navbar-toggler ml-auto" type="button" data-toggle="collapse" data-target="#sidenav">
                        <span class="navbar-toggler-icon"></span>
                    </button>
                    <div id="sidenav" class="collapse sidenav-collapse navbar-collapse mt-2">
                        <ul class="nav sidenav flex-column">
                            {% block _sidenav_content %}{% endblock %}
                        </ul>
                    </div>
                </div>
                {% endif -%}
                <main class="col main-content p-3">{% block _content %}{% endblock %}</main>
            </div>
        </div>
        {% block body_end %}{% endblock %}

        <!-- BS4 and dependencies -->
        <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js" integrity="sha384-+sLIOodYLS7CIrQpBjl+C7nPvqq+FbNUBDunl/OZv93DB7Ln/533i8e/mZXLi/P+" crossorigin="anonymous"></script>

        <!-- Outside JS -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
        {% if _STUPIDTABLE -%}<script src="/js/thirdparty/stupidtable.min.js"></script>{% endif -%}
        {% if _CHARTJS -%}<script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.3/dist/Chart.min.js"></script>{% endif -%}
        {% if _PDFJS -%}
        <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/1.10.97/pdf.min.js" integrity="sha256-xE+ndJbjBk4tOTc5vq4GQKu6obin5mrk2zVFFNrxSak=" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/1.10.97/pdf.worker.min.js" integrity="sha256-kIJJf1MOBCJmdrcIh4P5GcOR9+5xcw8BYoWqn+6a6DA=" crossorigin="anonymous"></script>
        {% endif -%}

        <!-- Project JS -->
        {% block primary_js %}
        <script src="/static/js/vendor.bundle.js"></script>
        <script src="/static/js/public.bundle.js"></script>
        {% endblock %}
        {% block base_js %}{% endblock %}
        {% block _javascript %}{% endblock %}
    </body>
</html>