liquidex
e201ea7058
- treehouse/new is now a regular page, not a special template - most of the code related to the `new` badge in page:index has been removed - you're meant to discern between pages you've read vs ones you haven't by looking at the colors of the links (blue vs purple)
65 lines
3.4 KiB
Handlebars
65 lines
3.4 KiB
Handlebars
<meta charset="UTF-8">
|
|
|
|
<title>{{#if (ne page.title config.user.title)}}{{ page.title }} · {{/if}}{{ config.user.title }}</title>
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<link rel="preload" href="{{ asset 'font/Recursive_VF_1.085.woff2' }}" as="font" type="font/woff2"
|
|
crossorigin="anonymous">
|
|
<link rel="stylesheet" href="{{ asset 'css/base.css' }}">
|
|
<link rel="stylesheet" href="{{ asset 'css/main.css' }}">
|
|
<link rel="stylesheet" href="{{ asset 'css/icons.css' }}">
|
|
<link rel="stylesheet" href="{{ asset 'css/tree.css' }}">
|
|
|
|
{{!-- Import maps currently don't support the src="" attribute. Unless we come up with something
|
|
clever to do while browser vendors figure that out, we'll just have to do a cache-busting include_static. --}}
|
|
{{!-- <script type="importmap" src="{{ asset 'generated/import-map.json' }}"></script> --}}
|
|
<script type="importmap">{{{ include_static 'generated/import-map.json' }}}</script>
|
|
|
|
<script>
|
|
const TREEHOUSE_SITE = `{{ config.site }}`;
|
|
|
|
{{!-- Yeah, this should probably be solved in a better way somehow.
|
|
For now this is used to allow literate-programming.js to refer to syntax files with the ?cache attribute,
|
|
so that they don't need to be redownloaded every single time. --}}
|
|
const TREEHOUSE_SYNTAX_URLS = {
|
|
javascript: `{{{ asset 'syntax/javascript.json' }}}`,
|
|
haku: `{{{ asset 'syntax/haku.json' }}}`,
|
|
};
|
|
</script>
|
|
<script type="module">
|
|
import "treehouse/spells.js";
|
|
import "treehouse/ulid.js";
|
|
import "treehouse/usability.js";
|
|
import "treehouse/settings.js";
|
|
import "treehouse/tree.js";
|
|
import "treehouse/emoji.js";
|
|
</script>
|
|
|
|
<meta property="og:site_name" content="{{ config.user.title }}">
|
|
<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 -->
|
|
{{#if page.thumbnail}}
|
|
<meta property="og:image" content="{{ page.thumbnail.url }}">
|
|
<meta property="og:image:alt" content="{{ page.thumbnail.alt }}">
|
|
{{/if}}
|
|
|
|
<link rel="icon" sizes="16x16" href="{{ asset (cat (cat 'favicon/' season) '@1x.png') }}">
|
|
<link rel="icon" sizes="32x32" href="{{ asset (cat (cat 'favicon/' season) '@2x.png') }}">
|
|
<link rel="icon" sizes="64x64" href="{{ asset (cat (cat 'favicon/' season) '@4x.png') }}">
|
|
<link rel="icon" sizes="128x128" href="{{ asset (cat (cat 'favicon/' season) '@8x.png') }}">
|
|
<link rel="icon" sizes="256x256" href="{{ asset (cat (cat 'favicon/' season) '@16x.png') }}">
|
|
<link rel="icon" sizes="512x512" href="{{ asset (cat (cat 'favicon/' season) '@32x.png') }}">
|
|
<link rel="apple-touch-icon" sizes="16x16" href="{{ asset (cat (cat 'favicon/' season) '@1x.png') }}">
|
|
<link rel="apple-touch-icon" sizes="32x32" href="{{ asset (cat (cat 'favicon/' season) '@2x.png') }}">
|
|
<link rel="apple-touch-icon" sizes="64x64" href="{{ asset (cat (cat 'favicon/' season) '@4x.png') }}">
|
|
<link rel="apple-touch-icon" sizes="128x128" href="{{ asset (cat (cat 'favicon/' season) '@8x.png') }}">
|
|
<link rel="apple-touch-icon" sizes="256x256" href="{{ asset (cat (cat 'favicon/' season) '@16x.png') }}">
|
|
<link rel="apple-touch-icon" sizes="512x512" href="{{ asset (cat (cat 'favicon/' season) '@32x.png') }}">
|