168 lines
7.8 KiB
HTML
168 lines
7.8 KiB
HTML
|
<meta charset="utf-8">
|
||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||
|
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; font-src 'self'; style-src 'self'; form-action 'none'; frame-ancestors 'none'; block-all-mixed-content; base-uri 'none'">
|
||
|
{{- if hugo.IsProduction | or (eq .Site.Params.env "production") }}
|
||
|
<meta name="robots" content="index, follow">
|
||
|
{{- else }}
|
||
|
<meta name="robots" content="noindex, nofollow">
|
||
|
{{- end }}
|
||
|
|
||
|
{{- /* Title */}}
|
||
|
<title>{{ if .IsHome }}{{ else }}{{ if .Title }}{{ .Title }} | {{ end }}{{ end }}{{ .Site.Title }}</title>
|
||
|
|
||
|
{{- /* Meta */}}
|
||
|
{{- if .IsHome }}
|
||
|
{{ with .Site.Params.keywords -}}<meta name="keywords" content="{{- range $i, $e := . }}{{ if $i }}, {{ end }}{{ $e }}{{ end }}" />{{ end }}
|
||
|
{{- else }}
|
||
|
<meta name="keywords" content="{{ if .Params.keywords -}}
|
||
|
{{- range $i, $e := .Params.keywords }}{{ if $i }}, {{ end }}{{ $e }}{{ end }} {{- else }}
|
||
|
{{- range $i, $e := .Params.tags }}{{ if $i }}, {{ end }}{{ $e }}{{ end }} {{- end -}}" />
|
||
|
{{- end }}
|
||
|
<meta name="description" content="{{- with .Description }}{{ . }}{{- else }}{{- if or .IsPage .IsSection}}
|
||
|
{{- .Summary | default (printf "%s - %s" .Title .Site.Title) }}{{- else }}
|
||
|
{{- with .Site.Params.description }}{{ . }}{{- end }}{{- end }}{{- end -}}">
|
||
|
<meta name="author" content="{{ (partial "author.html" . ) }}">
|
||
|
<link rel="canonical" href="{{ if .Params.canonicalURL -}} {{ trim .Params.canonicalURL " " }} {{- else -}} {{ .Permalink }} {{- end }}" />
|
||
|
{{- if .Site.Params.analytics.google.SiteVerificationTag }}
|
||
|
<meta name="google-site-verification" content="{{ .Site.Params.analytics.google.SiteVerificationTag }}" />
|
||
|
{{- end }}
|
||
|
{{- if .Site.Params.analytics.yandex.SiteVerificationTag }}
|
||
|
<meta name="yandex-verification" content="{{ .Site.Params.analytics.yandex.SiteVerificationTag }}" />
|
||
|
{{- end }}
|
||
|
{{- if .Site.Params.analytics.bing.SiteVerificationTag }}
|
||
|
<meta name="msvalidate.01" content="{{ .Site.Params.analytics.bing.SiteVerificationTag }}" />
|
||
|
{{- end }}
|
||
|
|
||
|
{{- /* Styles */}}
|
||
|
{{- $theme_vars := (resources.Get "css/core/theme-vars.css") }}
|
||
|
{{- $reset := (resources.Get "css/core/reset.css") }}
|
||
|
{{- $media := (resources.Get "css/core/zmedia.css") }}
|
||
|
{{- $common := (resources.Match "css/common/*.css") | resources.Concat "assets/css/common.css" }}
|
||
|
|
||
|
{{- /* include `an-old-hope` if hljs is on */}}
|
||
|
{{- $isHLJSdisabled := (.Site.Params.assets.disableHLJS | default false) }}
|
||
|
{{- $hljs := (cond ($isHLJSdisabled) (" " | resources.FromString "assets/css/hljs-blank.css") (resources.Get "css/hljs/an-old-hope.min.css")) }}
|
||
|
|
||
|
{{- /* order is important */}}
|
||
|
{{- $core := (slice $theme_vars $reset $common $hljs $media) | resources.Concat "assets/css/core.css" }}
|
||
|
{{- $extended := (resources.Match "css/extended/*.css") | resources.Concat "assets/css/extended.css" }}
|
||
|
|
||
|
{{- /* bundle all required css */}}
|
||
|
{{- /* Add extended css after theme style */ -}}
|
||
|
{{- $stylesheet := (slice $core $extended) | resources.Concat "assets/css/stylesheet.css" | minify }}
|
||
|
|
||
|
{{- if not .Site.Params.assets.disableFingerprinting }}
|
||
|
{{- $stylesheet := $stylesheet | fingerprint }}
|
||
|
<link crossorigin="anonymous" href="{{ $stylesheet.RelPermalink }}" integrity="{{ $stylesheet.Data.Integrity }}" rel="preload stylesheet" as="style">
|
||
|
{{- else }}
|
||
|
<link crossorigin="anonymous" href="{{ $stylesheet.RelPermalink }}" rel="preload stylesheet" as="style">
|
||
|
{{- end }}
|
||
|
|
||
|
{{- with .Site.Params.profileMode }}
|
||
|
{{- if and .enabled .imageUrl $.IsHome }}
|
||
|
<link rel="preload" href="{{ .imageUrl }}" as="image">
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- with .Site.Params.label.icon }}
|
||
|
<link rel="preload" href="{{ . }}" as="image">
|
||
|
{{- end }}
|
||
|
|
||
|
{{- /* Search */}}
|
||
|
{{- if (eq .Layout `search`) -}}
|
||
|
<link crossorigin="anonymous" rel="preload" as="fetch" href="../index.json">
|
||
|
{{- $fastsearch := resources.Get "js/fastsearch.js" | js.Build (dict "params" (dict "fuseOpts" .Site.Params.fuseOpts)) }}
|
||
|
{{- $fusejs := resources.Get "js/fuse.js" }}
|
||
|
{{- if not .Site.Params.assets.disableFingerprinting }}
|
||
|
{{- $search := (slice $fusejs $fastsearch ) | resources.Concat "assets/js/search.js" | minify | fingerprint }}
|
||
|
<script defer crossorigin="anonymous" src="{{ $search.RelPermalink }}" integrity="{{ $search.Data.Integrity }}"></script>
|
||
|
{{- else }}
|
||
|
{{- $search := (slice $fusejs $fastsearch ) | resources.Concat "assets/js/search.js" | minify }}
|
||
|
<script defer crossorigin="anonymous" src="{{ $search.RelPermalink }}"></script>
|
||
|
{{- end }}
|
||
|
{{- end -}}
|
||
|
|
||
|
{{- /* Highlight.js */}}
|
||
|
{{- $isHLJSdisabled := (.Site.Params.assets.disableHLJS | default .Params.disableHLJS ) }}
|
||
|
{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (not $isHLJSdisabled)) }}
|
||
|
{{- if not .Site.Params.assets.disableFingerprinting }}
|
||
|
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" | minify | fingerprint }}
|
||
|
<script defer crossorigin="anonymous" src="{{ $highlight.RelPermalink }}" integrity="{{ $highlight.Data.Integrity }}"
|
||
|
onload="hljs.initHighlightingOnLoad();"></script>
|
||
|
{{- else }}
|
||
|
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" | minify }}
|
||
|
<script defer crossorigin="anonymous" src="{{ $highlight.RelPermalink }}" onload="hljs.initHighlightingOnLoad();"></script>
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- /* Favicons */}}
|
||
|
<link rel="icon" href="{{ .Site.Params.assets.favicon | default "favicon.ico" | absURL }}">
|
||
|
<link rel="icon" type="image/png" sizes="16x16" href="{{ .Site.Params.assets.favicon16x16 | default "favicon-16x16.png" | absURL }}">
|
||
|
<link rel="icon" type="image/png" sizes="32x32" href="{{ .Site.Params.assets.favicon32x32 | default "favicon-32x32.png" | absURL }}">
|
||
|
<link rel="apple-touch-icon" href="{{ .Site.Params.assets.apple_touch_icon | default "apple-touch-icon.png" | absURL }}">
|
||
|
<link rel="mask-icon" href="{{ .Site.Params.assets.safari_pinned_tab | default "safari-pinned-tab.svg" | absURL }}">
|
||
|
<meta name="theme-color" content="{{ .Site.Params.assets.theme_color | default "#2e2e33" }}">
|
||
|
<meta name="msapplication-TileColor" content="{{ .Site.Params.assets.msapplication_TileColor | default "#2e2e33" }}">
|
||
|
|
||
|
{{- /* Generator */}}
|
||
|
{{ hugo.Generator }}
|
||
|
|
||
|
{{- /* RSS */}}
|
||
|
{{ range .AlternativeOutputFormats -}}
|
||
|
<link rel="{{ .Rel }}" type="{{ .MediaType.Type | html }}" href="{{ .Permalink | safeURL }}">
|
||
|
{{ end -}}
|
||
|
{{- range .AllTranslations -}}
|
||
|
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}" />
|
||
|
{{ end -}}
|
||
|
|
||
|
<noscript>
|
||
|
<style>
|
||
|
#theme-toggle,
|
||
|
.top-link {
|
||
|
display: none;
|
||
|
}
|
||
|
|
||
|
</style>
|
||
|
{{- if (and (ne .Site.Params.defaultTheme "light") (ne .Site.Params.defaultTheme "dark")) }}
|
||
|
<style>
|
||
|
@media (prefers-color-scheme: dark) {
|
||
|
:root {
|
||
|
--theme: rgb(29, 30, 32);
|
||
|
--entry: rgb(46, 46, 51);
|
||
|
--primary: rgb(218, 218, 219);
|
||
|
--secondary: rgb(155, 156, 157);
|
||
|
--tertiary: rgb(65, 66, 68);
|
||
|
--content: rgb(196, 196, 197);
|
||
|
--hljs-bg: rgb(46, 46, 51);
|
||
|
--code-bg: rgb(55, 56, 62);
|
||
|
--border: rgb(51, 51, 51);
|
||
|
}
|
||
|
|
||
|
.list {
|
||
|
background: var(--theme);
|
||
|
}
|
||
|
|
||
|
.list:not(.dark)::-webkit-scrollbar-track {
|
||
|
background: 0 0;
|
||
|
}
|
||
|
|
||
|
.list:not(.dark)::-webkit-scrollbar-thumb {
|
||
|
border-color: var(--theme);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
</style>
|
||
|
{{- end }}
|
||
|
</noscript>
|
||
|
|
||
|
{{- partial "extend_head.html" . -}}
|
||
|
|
||
|
{{- /* Misc */}}
|
||
|
{{- if hugo.IsProduction | or (eq .Site.Params.env "production") }}
|
||
|
{{- template "_internal/google_analytics.html" . }}
|
||
|
{{- template "partials/templates/opengraph.html" . }}
|
||
|
{{- template "partials/templates/twitter_cards.html" . }}
|
||
|
{{- template "partials/templates/schema_json.html" . }}
|
||
|
{{- end -}}
|