135 lines
3.9 KiB
Handlebars
135 lines
3.9 KiB
Handlebars
<!DOCTYPE html>
|
|
<html lang="{{@site.locale}}">
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>{{meta_title}}</title>
|
|
<link rel="stylesheet" href="{{asset "built/screen.css"}}">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.12.3/tocbot.css">
|
|
|
|
<style>
|
|
.gh-content {
|
|
position: relative;
|
|
}
|
|
|
|
.gh-toc > .toc-list {
|
|
position: relative;
|
|
}
|
|
|
|
.toc-list {
|
|
overflow: hidden;
|
|
list-style: none;
|
|
font-size: 16px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
@media (min-width: 1300px) {
|
|
.gh-sidebar {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
margin-top: 4vmin;
|
|
grid-column: wide-start / main-start; /* Place the TOC to the left of the content */
|
|
width: 250px;
|
|
}
|
|
|
|
.gh-toc {
|
|
position: sticky; /* On larger screens, TOC will stay in the same spot on the page */
|
|
top: 4vmin;
|
|
}
|
|
}
|
|
|
|
a.toc-link {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.gh-toc .is-active-link::before {
|
|
background-color: var(--ghost-accent-color); /* Defines TOC accent color based on Accent color set in Ghost Admin */
|
|
}
|
|
</style>
|
|
|
|
{{#is "home"}}
|
|
{{#if @site.cover_image}}
|
|
<link rel="preload" as="image" href="{{@site.cover_image}}">
|
|
{{/if}}
|
|
{{/is}}
|
|
|
|
{{ghost_head}}
|
|
</head>
|
|
|
|
<body class="{{body_class}}{{{block "body_class"}}} is-head-{{#match @custom.navigation_layout "Logo on the left"}}left-logo{{else match @custom.navigation_layout "Logo in the middle"}}middle-logo{{else}}stacked{{/match}}">
|
|
<div class="gh-site">
|
|
|
|
<header id="gh-head" class="gh-head gh-outer">
|
|
<div class="gh-head-inner gh-inner">
|
|
<div class="gh-head-brand">
|
|
<div class="gh-head-brand-wrapper">
|
|
<a class="gh-head-logo" href="{{@site.url}}">
|
|
{{#if @site.logo}}
|
|
<img src="{{@site.logo}}" alt="{{@site.title}}">
|
|
{{else}}
|
|
{{@site.title}}
|
|
{{/if}}
|
|
</a>
|
|
</div>
|
|
<button class="gh-search gh-icon-btn" aria-label="Search this site" data-ghost-search>{{> "icons/search"}}</button>
|
|
<button class="gh-burger"></button>
|
|
</div>
|
|
|
|
<nav class="gh-head-menu">
|
|
{{navigation}}
|
|
</nav>
|
|
|
|
<div class="gh-head-actions">
|
|
<button class="gh-search gh-icon-btn" aria-label="Search this site" data-ghost-search>{{> "icons/search"}}</button>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
{{{body}}}
|
|
|
|
<footer class="gh-foot gh-outer">
|
|
<div class="gh-foot-inner gh-inner">
|
|
<div class="gh-copyright">
|
|
{{#if @custom.footer_text}}
|
|
{{@custom.footer_text}}
|
|
{{/if}}
|
|
</div>
|
|
{{> "social-media"}}
|
|
</div>
|
|
</footer>
|
|
|
|
</div>
|
|
|
|
{{#is "post, page"}}
|
|
{{> "pswp"}}
|
|
{{/is}}
|
|
|
|
<script src="{{asset "built/main.min.js"}}"></script>
|
|
|
|
{{! Tocbot is used for the table of contents }}
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.12.3/tocbot.min.js"></script>
|
|
<script>
|
|
tocbot.init({
|
|
// Where to render the table of contents.
|
|
tocSelector: '.gh-toc',
|
|
// Where to grab the headings to build the table of contents.
|
|
contentSelector: '.gh-content',
|
|
// Which headings to grab inside of the contentSelector element.
|
|
headingSelector: 'h1, h2',
|
|
// Ensure correct positioning
|
|
hasInnerContainers: true,
|
|
});
|
|
</script>
|
|
|
|
{{#if @custom.oneko}}
|
|
<script src="{{asset "js/oneko.js"}}"></script>
|
|
{{/if}}
|
|
|
|
{{ghost_foot}}
|
|
|
|
</body>
|
|
|
|
</html>
|