120 lines
6.1 KiB
HTML
120 lines
6.1 KiB
HTML
<!doctype html>
|
|
|
|
{% if title %}
|
|
{% set pagetitle = title %}
|
|
{% else %}
|
|
{% set pagetitle = page.fileSlug %}
|
|
{% endif %}
|
|
|
|
<html>
|
|
<head>
|
|
<title>Portfolio - {{ pagetitle | capitalize }}</title>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<meta property="og:title" content="Portfolio - {{ pagetitle | capitalize }}" />
|
|
<meta property="og:description" content="{{ description }}" />
|
|
|
|
<link href="/styles.css" rel="stylesheet">
|
|
<link href="https://unpkg.com/prismjs@1.20.0/themes/prism-okaidia.css" rel="stylesheet">
|
|
|
|
<link rel="apple-touch-icon" sizes="57x57" href="/img/site/favicons/apple-icon-57x57.png">
|
|
<link rel="apple-touch-icon" sizes="60x60" href="/img/site/favicons/apple-icon-60x60.png">
|
|
<link rel="apple-touch-icon" sizes="72x72" href="/img/site/favicons/apple-icon-72x72.png">
|
|
<link rel="apple-touch-icon" sizes="76x76" href="/img/site/favicons/apple-icon-76x76.png">
|
|
<link rel="apple-touch-icon" sizes="114x114" href="/img/site/favicons/apple-icon-114x114.png">
|
|
<link rel="apple-touch-icon" sizes="120x120" href="/img/site/favicons/apple-icon-120x120.png">
|
|
<link rel="apple-touch-icon" sizes="144x144" href="/img/site/favicons/apple-icon-144x144.png">
|
|
<link rel="apple-touch-icon" sizes="152x152" href="/img/site/favicons/apple-icon-152x152.png">
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/img/site/favicons/apple-icon-180x180.png">
|
|
<link rel="icon" type="image/png" sizes="192x192" href="/img/site/favicons/android-icon-192x192.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/img/site/favicons/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="96x96" href="/img/site/favicons/favicon-96x96.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/img/site/favicons/favicon-16x16.png">
|
|
<link rel="manifest" href="/img/site/favicons/manifest.json">
|
|
<meta name="msapplication-TileColor" content="#ffffff">
|
|
<meta name="msapplication-TileImage" content="/img/site/favicons/ms-icon-144x144.png">
|
|
<meta name="theme-color" content="#ffffff">
|
|
|
|
<script>
|
|
let isOpen = false;
|
|
function mobileToggle() {
|
|
isOpen = !isOpen;
|
|
|
|
document.getElementById('mobileToggleButton').setAttribute('aria-expanded', isOpen);
|
|
document.getElementById('mobileToggleText').innerText = `${isOpen ? 'Close' : 'Open'} Navigation`;
|
|
document.getElementById('mobileToggleIconOpened').classList.add('block');
|
|
document.getElementById('mobileToggleIconOpened').classList.remove('hidden');
|
|
document.getElementById('mobileToggleIconClosed').classList.add('hidden');
|
|
document.getElementById('mobileToggleIconClosed').classList.remove('block');
|
|
document.getElementById('mobileNavigation').classList.add(isOpen ? 'block' : 'hidden');
|
|
document.getElementById('mobileNavigation').classList.remove(isOpen ? 'hidden' : 'block');
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body class="bg-gray-100">
|
|
<header>
|
|
<nav class="bg-white shadow">
|
|
<div class="max-w-7xl mx-auto px-2 sm:px-6 lg:px-8">
|
|
<div class="relative flex justify-between h-16">
|
|
<div class="absolute inset-y-0 left-0 flex justify-between w-full sm:hidden">
|
|
<button
|
|
class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-link"
|
|
aria-expanded="false"
|
|
onclick="mobileToggle()"
|
|
id="mobileToggleButton">
|
|
<span id="mobileToggleText" class="sr-only">Open navigation</span>
|
|
<svg id="mobileToggleIconClosed" class="block h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
|
|
</svg>
|
|
<svg id="mobileToggleIconOpened" class="hidden h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
|
|
</svg>
|
|
</button>
|
|
<a
|
|
href="/"
|
|
class="focus:outline-link"
|
|
{% if page.url == navItem.url %}aria-current="page"{% endif %}
|
|
>
|
|
<img class="h-12 w-12 mt-2 rounded-full" src="/img/site/avatar.png" alt="Home">
|
|
</a>
|
|
</div>
|
|
<div class="flex-1 flex justify-between sm:items-stretch sm:justify-start">
|
|
<div class="hidden sm:flex sm:space-x-8">
|
|
<a
|
|
href="/"
|
|
class="focus:outline-link"
|
|
{% if page.url == navItem.url %}aria-current="page"{% endif %}
|
|
>
|
|
<img class="h-12 w-12 mt-2 rounded-full" src="/img/site/avatar.png" alt="Home">
|
|
</a>
|
|
{%- for navItem in navigation -%}
|
|
<a
|
|
href="{{navItem.url}}"
|
|
class="{% if page.url == navItem.url %}border-pink-700 text-gray-900{% else %}border-transparent hover:border-pink-700 text-gray-500{% endif %} inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium focus:outline-link"
|
|
{% if page.url == navItem.url %}aria-current="page"{% endif %}
|
|
>
|
|
{{navItem.title}}
|
|
</a>
|
|
{%- endfor -%}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="mobileNavigation" class="hidden sm:hidden">
|
|
<div class="pt-2 pb-4 space-y-1">
|
|
{%- for navItem in navigation -%}
|
|
<a
|
|
href="{{navItem.url}}"
|
|
class="{% if page.url == navItem.url %}border-pink-700 bg-pink-50 text-pink-700{% else %}border-transparent hover:border-pink-700 text-gray-500{% endif %} block pl-3 pr-4 py-2 border-l-4 text-base font-medium focus:outline-link"
|
|
{% if page.url == navItem.url %}aria-current="page"{% endif %}
|
|
>
|
|
{{navItem.title}}
|
|
</a>
|
|
{%- endfor -%}
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
</header>
|