77 lines
2.7 KiB
HTML
77 lines
2.7 KiB
HTML
|
|
<!DOCTYPE html>
|
||
|
|
<html lang="en">
|
||
|
|
<head>
|
||
|
|
<meta charset="UTF-8">
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
|
<title>{{.Title}}</title>
|
||
|
|
<meta name="description" content="{{.Description}}">
|
||
|
|
<link rel="canonical" href="{{.CanonicalURL}}">
|
||
|
|
|
||
|
|
{{if .NoIndex}}<meta name="robots" content="noindex">{{end}}
|
||
|
|
|
||
|
|
<!-- Open Graph -->
|
||
|
|
<meta property="og:title" content="{{.Title}}">
|
||
|
|
<meta property="og:description" content="{{.Description}}">
|
||
|
|
<meta property="og:type" content="{{.OGType}}">
|
||
|
|
<meta property="og:url" content="{{.CanonicalURL}}">
|
||
|
|
{{if .OGImage}}<meta property="og:image" content="{{.OGImage}}">{{end}}
|
||
|
|
<meta property="og:site_name" content="{{.SiteName}}">
|
||
|
|
|
||
|
|
<!-- Twitter Card -->
|
||
|
|
<meta name="twitter:card" content="summary_large_image">
|
||
|
|
<meta name="twitter:title" content="{{.Title}}">
|
||
|
|
<meta name="twitter:description" content="{{.Description}}">
|
||
|
|
{{if .OGImage}}<meta name="twitter:image" content="{{.OGImage}}">{{end}}
|
||
|
|
|
||
|
|
<!-- Fonts -->
|
||
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
|
|
{{if .FontURL}}<link rel="stylesheet" href="{{.FontURL}}">{{end}}
|
||
|
|
|
||
|
|
<link rel="stylesheet" href="/static/css/style.css">
|
||
|
|
|
||
|
|
<style>
|
||
|
|
:root {
|
||
|
|
--accent: {{with index .Settings "accent_color"}}{{.}}{{else}}#2563eb{{end}};
|
||
|
|
--font-body: {{or .FontFamily "system-ui, -apple-system, sans-serif"}};
|
||
|
|
}
|
||
|
|
</style>
|
||
|
|
|
||
|
|
{{if .StructuredData}}
|
||
|
|
<script type="application/ld+json">{{.StructuredData}}</script>
|
||
|
|
{{end}}
|
||
|
|
</head>
|
||
|
|
<body class="layout-{{with index .Settings "layout"}}{{.}}{{else}}default{{end}} compactness-{{with index .Settings "compactness"}}{{.}}{{else}}cozy{{end}}">
|
||
|
|
<header class="site-header">
|
||
|
|
<a href="/" class="site-name">{{.SiteName}}</a>
|
||
|
|
<nav class="site-nav">
|
||
|
|
<button type="button" id="search-trigger" class="search-trigger">
|
||
|
|
<span>Search</span>
|
||
|
|
<kbd>/</kbd>
|
||
|
|
</button>
|
||
|
|
</nav>
|
||
|
|
</header>
|
||
|
|
|
||
|
|
<main>
|
||
|
|
{{template "content" .}}
|
||
|
|
</main>
|
||
|
|
|
||
|
|
<footer class="site-footer">
|
||
|
|
<span>© {{.Year}} {{.SiteName}}</span>
|
||
|
|
{{if .ShowBadge}}<a href="https://writekit.dev" class="powered-by" target="_blank" rel="noopener">Powered by WriteKit</a>{{end}}
|
||
|
|
</footer>
|
||
|
|
|
||
|
|
<div id="search-modal" class="search-modal">
|
||
|
|
<div class="search-modal-backdrop"></div>
|
||
|
|
<div class="search-modal-content">
|
||
|
|
<input type="text" id="search-input" placeholder="Search..." autocomplete="off">
|
||
|
|
<div id="search-results" class="search-results"></div>
|
||
|
|
<div class="search-hint">Press <kbd>ESC</kbd> to close</div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<script src="/static/js/main.js"></script>
|
||
|
|
{{block "scripts" .}}{{end}}
|
||
|
|
</body>
|
||
|
|
</html>
|