diff --git a/layouts/partials/head.html b/layouts/partials/head.html
new file mode 100644
index 0000000..1dc7272
--- /dev/null
+++ b/layouts/partials/head.html
@@ -0,0 +1,147 @@
+
+
+
+
+ {{/* Title */}}
+ {{ if .IsHome -}}
+ {{ .Site.Title | emojify }}
+
+ {{- else -}}
+ {{ .Title | emojify }} · {{ .Site.Title | emojify }}
+
+ {{- end }}
+ {{/* Asset bundles */}}
+ {{ $assets := newScratch }}
+ {{ $algorithm := .Site.Params.fingerprintAlgorithm | default "sha256" }}
+ {{ $jsAppearance := resources.Get "js/appearance.js" }}
+ {{ $jsAppearance = $jsAppearance | resources.Minify | resources.Fingerprint $algorithm }}
+
+ {{ $cssScheme := resources.Get (printf "css/schemes/%s.css" (lower .Site.Params.colorScheme | default "congo")) }}
+ {{ if not $cssScheme }}
+ {{ $cssScheme = resources.Get "css/schemes/congo.css" }}
+ {{ end }}
+ {{ $assets.Add "css" (slice $cssScheme) }}
+ {{ $cssMain := resources.Get "css/compiled/main.css" }}
+ {{ $assets.Add "css" (slice $cssMain) }}
+ {{ $cssCustom := resources.Get "css/custom.css" }}
+ {{ if $cssCustom }}
+ {{ $assets.Add "css" (slice $cssCustom) }}
+ {{ end }}
+ {{ $bundleCSS := $assets.Get "css" | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint $algorithm }}
+
+ {{ if .Site.Params.enableSearch | default false }}
+ {{ $jsFuse := resources.Get "lib/fuse/fuse.min.js" }}
+ {{ $jsSearch := resources.Get "js/search.js" }}
+ {{ $assets.Add "js" (slice $jsFuse $jsSearch) }}
+ {{ end }}
+ {{ if .Site.Params.enableQuicklink | default false }}
+ {{ $jsQuicklink := resources.Get "lib/quicklink/quicklink.umd.js" }}
+ {{ $jsQuicklinkInit := resources.Get "js/quicklink.js" }}
+ {{ $assets.Add "js" (slice $jsQuicklink $jsQuicklinkInit) }}
+ {{ end }}
+ {{ if .Site.Params.enableCodeCopy | default false }}
+ {{ $jsCode := resources.Get "js/code.js" }}
+ {{ $assets.Add "js" (slice $jsCode) }}
+ {{ end }}
+ {{ if or (eq .Site.Params.header.layout "hamburger") (eq .Site.Params.header.layout "hybrid") }}
+ {{ $jsMenu := resources.Get "js/menu.js" }}
+ {{ $assets.Add "js" (slice $jsMenu) }}
+ {{ end }}
+ {{ if eq (site.Language.LanguageDirection | default "ltr") "rtl" }}
+ {{ $jsRTL := resources.Get "js/rtl.js" }}
+ {{ $assets.Add "js" (slice $jsRTL) }}
+ {{ end }}
+ {{ if $assets.Get "js" }}
+ {{ $bundleJS := $assets.Get "js" | resources.Concat "js/main.bundle.js" | resources.Minify | resources.Fingerprint $algorithm }}
+
+ {{ end }}
+ {{/* Metadata */}}
+
+ {{ with union .Site.Params.keywords .Params.keywords -}}
+
+ {{- end }}
+ {{ with .Site.Params.robots }}
+
+ {{ end }}
+ {{ with .Params.robots }}
+
+ {{ end }}
+
+ {{ range .AlternativeOutputFormats -}}
+ {{ printf `` .Rel .MediaType.Type .RelPermalink ($.Site.Title | emojify) | safeHTML }}
+ {{ end -}}
+ {{/* Icons */}}
+ {{ if templates.Exists "partials/favicons.html" }}
+ {{ partialCached "favicons.html" .Site }}
+ {{ else }}
+
+
+
+
+ {{ end }}
+ {{/* Site Verification */}}
+ {{ with .Site.Params.verification.google }}
+
+ {{ end }}
+ {{ with .Site.Params.verification.bing }}
+
+ {{ end }}
+ {{ with .Site.Params.verification.pinterest }}
+
+ {{ end }}
+ {{ with .Site.Params.verification.yandex }}
+
+ {{ end }}
+ {{ with $.Params.externalUrl }}
+
+ {{ end }}
+ {{/* Social */}}
+ {{ template "_internal/opengraph.html" . }}
+ {{ template "_internal/twitter_cards.html" . }}
+ {{/* Schema */}}
+ {{ partial "schema.html" . }}
+ {{/* Me */}}
+ {{ with .Site.Language.Params.Author.name }}{{ end }}
+ {{ with .Site.Language.Params.Author.links }}
+ {{ range $links := . }}
+ {{ range $name, $url := $links }}{{ end }}
+ {{ end }}
+ {{ end }}
+ {{/* Vendor */}}
+ {{ partial "vendor.html" . }}
+ {{/* Analytics */}}
+ {{ partial "analytics.html" . }}
+ {{/* Extend head - eg. for custom analytics scripts, etc. */}}
+ {{ if templates.Exists "partials/extend-head.html" }}
+ {{ partial "extend-head.html" . }}
+ {{ end }}
+