2023-08-18 13:25:20 +02:00
|
|
|
<!DOCTYPE html>
|
|
|
|
|
2023-08-27 22:16:23 +02:00
|
|
|
<html lang="en-US" prefix="og: https://ogp.me/ns#">
|
2023-08-18 13:25:20 +02:00
|
|
|
|
|
|
|
<head>
|
2023-08-18 17:04:12 +02:00
|
|
|
<meta charset="UTF-8">
|
|
|
|
|
2024-01-18 22:46:57 +01:00
|
|
|
<title>{{#if (ne page.title config.user.title)}}{{ page.title }} · {{/if}}{{ config.user.title }}</title>
|
2023-08-18 17:04:12 +02:00
|
|
|
|
2023-08-27 14:50:46 +02:00
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
2023-08-20 15:54:06 +02:00
|
|
|
|
2023-08-27 22:16:23 +02:00
|
|
|
<meta property="og:site_name" content="{{ config.user.title }}">
|
2024-01-18 22:46:57 +01:00
|
|
|
<meta property="og:title" content="{{ page.title }}">
|
|
|
|
{{!--
|
|
|
|
This is a bit of a hack to quickly insert metadata into generated pages without going through Handlebars, which
|
|
|
|
would involve registering, parsing, and generating a page from a template.
|
|
|
|
Yes it would be more flexible that way, but it doesn't need to be.
|
|
|
|
It just needs to be a string replacement.
|
|
|
|
--}}
|
|
|
|
<!-- treehouse-ca37057a-cff5-45b3-8415-3b02dbf6c799-per-branch-metadata -->
|
2023-08-27 22:16:23 +02:00
|
|
|
|
2023-08-27 15:59:52 +02:00
|
|
|
<link rel="stylesheet" href="{{ config.site }}/static/css/main.css">
|
|
|
|
<link rel="stylesheet" href="{{ config.site }}/static/css/tree.css">
|
|
|
|
|
|
|
|
<script>const TREEHOUSE_SITE = `{{ config.site }}`;</script>
|
|
|
|
<script type="module" src="{{ config.site }}/navmap.js"></script>
|
2024-02-06 20:12:37 +01:00
|
|
|
<script type="module" src="{{ config.site }}/static/js/ulid.js"></script>
|
2023-08-27 15:59:52 +02:00
|
|
|
<script type="module" src="{{ config.site }}/static/js/usability.js"></script>
|
2023-08-28 22:11:18 +02:00
|
|
|
<script type="module" src="{{ config.site }}/static/js/tree.js"></script>
|
|
|
|
<script type="module" src="{{ config.site }}/static/js/emoji.js"></script>
|
2023-08-27 19:40:47 +02:00
|
|
|
<script type="module" src="{{ config.site }}/static/js/thanks-webkit.js"></script>
|
2023-08-18 13:25:20 +02:00
|
|
|
</head>
|
|
|
|
|
|
|
|
<body>
|
2023-08-27 15:27:42 +02:00
|
|
|
<nav>
|
2023-08-27 15:59:52 +02:00
|
|
|
<a href="{{ config.site }}/" title="Back to homepage">
|
2023-08-27 15:27:42 +02:00
|
|
|
<svg class="logo" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
|
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
|
|
d="M8 3H7H6V4V5H4V6H6V9V10H7H10V12H11V10H12H13V9V8V7H12H11H10V8V9H7V6H8H9V5V4V3H8ZM12 9H11V8H12V9ZM7 5V4H8V5H7ZM3 5H2V6H3V5ZM10 13H11V14H10V13Z"
|
|
|
|
fill="currentColor" />
|
|
|
|
</svg>
|
|
|
|
</a>
|
2023-08-28 21:14:51 +02:00
|
|
|
|
2024-01-18 22:46:57 +01:00
|
|
|
{{#if page.breadcrumbs}}
|
2023-08-28 21:14:51 +02:00
|
|
|
<ol class="breadcrumbs">
|
2024-01-18 22:46:57 +01:00
|
|
|
{{{ page.breadcrumbs }}}
|
2023-08-28 21:14:51 +02:00
|
|
|
</ol>
|
|
|
|
{{/if}}
|
2023-08-27 15:27:42 +02:00
|
|
|
</nav>
|
|
|
|
|
2023-08-22 18:23:18 +02:00
|
|
|
<noscript>
|
|
|
|
<div class="noscript" role="note">
|
|
|
|
<p>hey! looks like you have <strong>JavaScript disabled.</strong><br>
|
|
|
|
I respect that decision, but you may find the experience of browsing the treehouse… not great.<br>
|
|
|
|
for example, links to branches may not work properly. I cannot do anything about this; it's due to how
|
|
|
|
the <code><details></code> element works.<br>
|
|
|
|
(a <code><details></code> will not expand itself automatically to reveal the linked element to
|
|
|
|
you.)<br>
|
|
|
|
I did my best to at least keep the site readable in this state, but you can only do so much with plain
|
|
|
|
HTML and CSS.</p>
|
|
|
|
|
|
|
|
<p><strong>Pinky promise this website does not contain any malicious code such as trackers or cryptocurrency
|
|
|
|
miners.</strong><br>
|
|
|
|
if you don't believe me, you're free to inspect the source yourself! all the scripts are written
|
|
|
|
lovingly in vanilla JS (not minified!) by yours truly ❤️</p>
|
2023-08-22 19:23:31 +02:00
|
|
|
<small>and if this box is annoying, feel free to block it with uBlock Origin or something. I have no
|
2024-01-18 22:46:57 +01:00
|
|
|
way of remembering you closed it, and don't wanna add a database to this website. simplicity
|
|
|
|
rules!</small>
|
2023-08-22 19:23:31 +02:00
|
|
|
</div>
|
2023-08-22 18:23:18 +02:00
|
|
|
</noscript>
|
|
|
|
|
2023-08-27 19:40:47 +02:00
|
|
|
<div id="webkit-makes-me-go-insane" class="noscript" role="note">
|
|
|
|
<p>hey! looks like you're using a weird or otherwise quirky web browser. this basically means, the website will
|
|
|
|
not work for you correctly. I might fix it in the future but I have very limited time to work on this
|
|
|
|
website and so don't have an estimate on when that might happen.</p>
|
|
|
|
<p>in the meantime I suggest switching to <a href="https://firefox.com">something more modern.</a></p>
|
|
|
|
<p>sorry for the inconvenience!</p>
|
|
|
|
</div>
|
|
|
|
|
2023-08-18 17:04:12 +02:00
|
|
|
<main class="tree">
|
2024-01-18 22:46:57 +01:00
|
|
|
{{{ page.tree }}}
|
2023-08-18 17:04:12 +02:00
|
|
|
</main>
|
2023-08-18 13:25:20 +02:00
|
|
|
</body>
|
|
|
|
|
|
|
|
</html>
|