Merge pull request #2240 from ZhenShuo2021/style/format-head

🎨 Style(head): format head.html
This commit is contained in:
Nuno C.
2025-07-09 15:36:30 +01:00
committed by GitHub
2 changed files with 110 additions and 70 deletions

View File

@@ -32,7 +32,6 @@ layouts/partials/article-link/card-related.html
layouts/partials/article-link/card.html layouts/partials/article-link/card.html
layouts/partials/article-link/simple.html layouts/partials/article-link/simple.html
layouts/partials/hero/background.html layouts/partials/hero/background.html
layouts/partials/head.html
layouts/shortcodes/screenshot.html layouts/shortcodes/screenshot.html
layouts/shortcodes/figure.html layouts/shortcodes/figure.html

View File

@@ -1,152 +1,193 @@
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8">
{{ with .Site.Language.Params.htmlCode | default .Site.LanguageCode }} {{ with .Site.Language.Params.htmlCode | default .Site.LanguageCode }}
<meta http-equiv="content-language" content="{{ . }}" /> <meta http-equiv="content-language" content="{{ . }}">
{{ end }} {{ end }}
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge" /> <meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="theme-color">
{{/* Title */}} {{/* Title */}}
{{ if .IsHome -}} {{ if .IsHome -}}
<title>{{ .Site.Title | emojify }}</title> <title>{{ .Site.Title | emojify }}</title>
<meta name="title" content="{{ .Site.Title | emojify }}" /> <meta name="title" content="{{ .Site.Title | emojify }}">
{{- else -}} {{- else -}}
<title>{{ .Title | emojify }} &middot; {{ .Site.Title | emojify }}</title> <title>{{ .Title | emojify }} &middot; {{ .Site.Title | emojify }}</title>
<meta name="title" content="{{ .Title | emojify }} &middot; {{ .Site.Title | emojify }}" /> <meta name="title" content="{{ .Title | emojify }} &middot; {{ .Site.Title | emojify }}">
{{- end }} {{- end }}
{{/* Metadata */}} {{/* Metadata */}}
{{ with (.Params.Summary | default .Params.Description) | default .Site.Params.description -}} {{ with (.Params.Summary | default .Params.Description) | default .Site.Params.description -}}
<meta name="description" content="{{ . }}" /> <meta name="description" content="{{ . }}">
{{- end }} {{- end }}
{{ with .Params.Tags | default .Site.Params.keywords -}} {{ with .Params.Tags | default .Site.Params.keywords -}}
<meta name="keywords" content="{{ range . }}{{ . }}, {{ end -}}" /> <meta name="keywords" content="{{ range . }}{{ . }},{{ end -}}">
{{- end }} {{- end }}
{{ with .Site.Params.robots }} {{ with .Site.Params.robots }}
<meta name="robots" content="{{ . }}" /> <meta name="robots" content="{{ . }}">
{{ end }} {{ end }}
{{ with .Params.robots }} {{ with .Params.robots }}
<meta name="robots" content="{{ . }}" /> <meta name="robots" content="{{ . }}">
{{ end }} {{ end }}
<link rel="canonical" href="{{ .Permalink }}" /> <link rel="canonical" href="{{ .Permalink }}">
{{ range .AlternativeOutputFormats -}} {{ range .AlternativeOutputFormats -}}
{{ printf ` {{ printf `
<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .RelPermalink ($.Site.Title | emojify) | <link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .RelPermalink ($.Site.Title | emojify) |
safeHTML }} safeHTML
}}
{{ end -}} {{ end -}}
{{/* Asset bundles */}} {{/* Asset bundles */}}
{{ $assets := newScratch }} {{ $assets := newScratch }}
{{ $cssScheme := resources.Get (printf "css/schemes/%s.css" (.Site.Params.colorScheme | default "blowfish")) }} {{ $cssScheme := resources.Get (printf "css/schemes/%s.css" (.Site.Params.colorScheme | default "blowfish")) }}
{{ if not $cssScheme }} {{ if not $cssScheme }}
{{ $cssScheme = resources.Get "css/schemes/blowfish.css" }} {{ $cssScheme = resources.Get "css/schemes/blowfish.css" }}
{{ end }} {{ end }}
{{ $assets.Add "css" (slice $cssScheme) }} {{ $assets.Add "css" (slice $cssScheme) }}
{{ $cssMain := resources.Get "css/compiled/main.css" }} {{ $cssMain := resources.Get "css/compiled/main.css" }}
{{ $assets.Add "css" (slice $cssMain) }} {{ $assets.Add "css" (slice $cssMain) }}
{{ $cssCustom := resources.Get "css/custom.css" }} {{ $cssCustom := resources.Get "css/custom.css" }}
{{ if $cssCustom }} {{ if $cssCustom }}
{{ $assets.Add "css" (slice $cssCustom) }} {{ $assets.Add "css" (slice $cssCustom) }}
{{ end }} {{ end }}
{{ $bundleCSS := $assets.Get "css" | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint {{ $bundleCSS := $assets.Get "css" | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint
(.Site.Params.fingerprintAlgorithm | default "sha512") }} (.Site.Params.fingerprintAlgorithm | default "sha512")
<link type="text/css" rel="stylesheet" href="{{ $bundleCSS.RelPermalink }}" }}
integrity="{{ $bundleCSS.Data.Integrity }}" /> <link
type="text/css"
rel="stylesheet"
href="{{ $bundleCSS.RelPermalink }}"
integrity="{{ $bundleCSS.Data.Integrity }}">
{{ $jsAppearance := resources.Get "js/appearance.js" }} {{ $jsAppearance := resources.Get "js/appearance.js" }}
{{ $jsAppearance = $jsAppearance | resources.ExecuteAsTemplate "js/appearance.js" . | resources.Minify | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }} {{ $jsAppearance = $jsAppearance | resources.ExecuteAsTemplate "js/appearance.js" . | resources.Minify | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }}
<script type="text/javascript" src="{{ $jsAppearance.RelPermalink }}" <script
type="text/javascript"
src="{{ $jsAppearance.RelPermalink }}"
integrity="{{ $jsAppearance.Data.Integrity }}"></script> integrity="{{ $jsAppearance.Data.Integrity }}"></script>
{{ if .Site.Params.enableSearch | default false }} {{ if .Site.Params.enableSearch | default false }}
{{ $jsFuse := resources.Get "lib/fuse/fuse.min.js" }} {{ $jsFuse := resources.Get "lib/fuse/fuse.min.js" }}
{{ $jsSearch := resources.Get "js/search.js" }} {{ $jsSearch := resources.Get "js/search.js" }}
{{ $assets.Add "js" (slice $jsFuse $jsSearch) }} {{ $assets.Add "js" (slice $jsFuse $jsSearch) }}
{{ end }} {{ end }}
{{ if .Site.Params.enableCodeCopy | default false }} {{ if .Site.Params.enableCodeCopy | default false }}
{{ $jsCode := resources.Get "js/code.js" }} {{ $jsCode := resources.Get "js/code.js" }}
{{ $assets.Add "js" (slice $jsCode) }} {{ $assets.Add "js" (slice $jsCode) }}
{{ end }} {{ end }}
{{ if .Site.Params.rtl | default false }} {{ if .Site.Params.rtl | default false }}
{{ $jsRTL := resources.Get "js/rtl.js" }} {{ $jsRTL := resources.Get "js/rtl.js" }}
{{ $assets.Add "js" (slice $jsRTL) }} {{ $assets.Add "js" (slice $jsRTL) }}
{{ end }} {{ end }}
{{ $jsMobileMenu := resources.Get "js/mobilemenu.js" }} {{ $jsMobileMenu := resources.Get "js/mobilemenu.js" }}
{{ $assets.Add "js" (slice $jsMobileMenu) }} {{ $assets.Add "js" (slice $jsMobileMenu) }}
{{ if $assets.Get "js" }} {{ if $assets.Get "js" }}
{{ $bundleJS := $assets.Get "js" | resources.Concat "js/main.bundle.js" | resources.Minify | resources.Fingerprint {{ $bundleJS := $assets.Get "js" | resources.Concat "js/main.bundle.js" | resources.Minify | resources.Fingerprint
(.Site.Params.fingerprintAlgorithm | default "sha512") }} (.Site.Params.fingerprintAlgorithm | default "sha512")
<script defer type="text/javascript" id="script-bundle" src="{{ $bundleJS.RelPermalink }}" }}
integrity="{{ $bundleJS.Data.Integrity }}" data-copy="{{ i18n "code.copy" }}" data-copied="{{ i18n "code.copied" <script
}}"></script> defer
type="text/javascript"
id="script-bundle"
src="{{ $bundleJS.RelPermalink }}"
integrity="{{ $bundleJS.Data.Integrity }}"
data-copy="{{ i18n "code.copy" }}"
data-copied="{{ i18n "code.copied" }}"></script>
{{ end }} {{ end }}
{{ if not .Site.Params.disableImageZoom | default true }} {{ if not .Site.Params.disableImageZoom | default true }}
{{ $zoomJS := resources.Get "lib/zoom/zoom.min.js" | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }} {{ $zoomJS := resources.Get "lib/zoom/zoom.min.js" | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }}
<script src="{{ $zoomJS.RelPermalink }}" integrity="{{ $zoomJS.Data.Integrity }}"></script> <script src="{{ $zoomJS.RelPermalink }}" integrity="{{ $zoomJS.Data.Integrity }}"></script>
{{ end }} {{ end }}
{{/* Icons */}} {{/* Icons */}}
{{ if templates.Exists "partials/favicons.html" }} {{ if templates.Exists "partials/favicons.html" }}
{{ partialCached "favicons.html" .Site }} {{ partialCached "favicons.html" .Site }}
{{ else }} {{ else }}
<link rel="apple-touch-icon" sizes="180x180" href="{{ "apple-touch-icon.png" | relURL }}" /> <link rel="apple-touch-icon" sizes="180x180" href="{{ "apple-touch-icon.png" | relURL }}">
<link rel="icon" type="image/png" sizes="32x32" href="{{ "favicon-32x32.png" | relURL }}" /> <link rel="icon" type="image/png" sizes="32x32" href="{{ "favicon-32x32.png" | relURL }}">
<link rel="icon" type="image/png" sizes="16x16" href="{{ "favicon-16x16.png" | relURL }}" /> <link rel="icon" type="image/png" sizes="16x16" href="{{ "favicon-16x16.png" | relURL }}">
<link rel="manifest" href="{{ "site.webmanifest" | relURL }}" /> <link rel="manifest" href="{{ "site.webmanifest" | relURL }}">
{{ end }} {{ end }}
{{/* Site Verification */}} {{/* Site Verification */}}
{{ with .Site.Params.verification.google }} {{ with .Site.Params.verification.google }}
<meta name="google-site-verification" content="{{ . }}" /> <meta name="google-site-verification" content="{{ . }}">
{{ end }} {{ end }}
{{ with .Site.Params.verification.bing }} {{ with .Site.Params.verification.bing }}
<meta name="msvalidate.01" content="{{ . }}" /> <meta name="msvalidate.01" content="{{ . }}">
{{ end }} {{ end }}
{{ with .Site.Params.verification.pinterest }} {{ with .Site.Params.verification.pinterest }}
<meta name="p:domain_verify" content="{{ . }}" /> <meta name="p:domain_verify" content="{{ . }}">
{{ end }} {{ end }}
{{ with .Site.Params.verification.yandex }} {{ with .Site.Params.verification.yandex }}
<meta name="yandex-verification" content="{{ . }}" /> <meta name="yandex-verification" content="{{ . }}">
{{ end }} {{ end }}
{{ with .Site.Params.verification.fediverse }} {{ with .Site.Params.verification.fediverse }}
<meta name="fediverse:creator" content="{{ . }}" /> <meta name="fediverse:creator" content="{{ . }}">
{{ end }} {{ end }}
{{/* Social */}} {{/* Social */}}
{{ template "_internal/opengraph.html" . }} {{ template "_internal/opengraph.html" . }}
{{ template "_internal/twitter_cards.html" . }} {{ template "_internal/twitter_cards.html" . }}
{{- /* Main page always uses this; fallback elsewhere if no feature image */ -}} {{- /* Main page always uses this; fallback elsewhere if no feature image */ -}}
{{- /* See https://gohugo.io/templates/embedded/#open-graph */ -}} {{- /* See https://gohugo.io/templates/embedded/#open-graph */ -}}
{{ if not ($.Resources.GetMatch "*feature*") }} {{- $images := .Resources.ByType "image" -}}
{{ with .Site.Params.defaultSocialImage }} {{- $socialImage := $images.GetMatch "*feature*" -}}
<meta name="twitter:image" content="{{ . | absURL }}" />
<meta property="og:image" content="{{ . | absURL }}" /> {{- if not $socialImage -}}
{{ end }} {{- with .Site.Params.defaultSocialImage -}}
{{ end }} {{- if or (strings.HasPrefix . "http:") (strings.HasPrefix . "https:") -}}
{{- $socialImage = resources.GetRemote . -}}
{{- else -}}
{{- $socialImage = resources.Get . -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- with $socialImage -}}
<meta name="twitter:image" content="{{ .RelPermalink | absURL }}">
<meta property="og:image" content="{{ .RelPermalink | absURL }}">
{{- end -}}
{{/* Schema */}} {{/* Schema */}}
{{ partial "schema.html" . }} {{ partial "schema.html" . }}
{{/* Me */}} {{/* Me */}}
{{ with .Site.Params.Author.name }} {{ with .Site.Params.Author.name }}
<meta name="author" content="{{ . }}" />{{ end }} <meta name="author" content="{{ . }}">
{{ end }}
{{ with .Site.Params.Author.links }} {{ with .Site.Params.Author.links }}
{{ range $links := . }} {{ range $links := . }}
{{ range $name, $url := $links }} {{ range $name, $url := $links }}
{{ if not (strings.HasPrefix $url "mailto:") }} {{ if not (strings.HasPrefix $url "mailto:") }}
<link href="{{ $url }}" rel="me" />{{ end }} <link href="{{ $url }}" rel="me">
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ end }}
{{ end }} {{ end }}
{{/* Vendor */}} {{/* Vendor */}}
{{ partial "vendor.html" . }} {{ partial "vendor.html" . }}
{{/* Analytics */}} {{/* Analytics */}}
{{ partial "analytics/main.html" .Site }} {{ partial "analytics/main.html" .Site }}
{{/* Extend head - eg. for custom analytics scripts, etc. */}} {{/* Extend head - eg. for custom analytics scripts, etc. */}}
{{ if templates.Exists "partials/extend-head.html" }} {{ if templates.Exists "partials/extend-head.html" }}
{{ partialCached "extend-head.html" .Site }} {{ partialCached "extend-head.html" .Site }}
{{ end }} {{ end }}
{{/* Uncached extend head - e.g. {{ with .Page.HasShortcode "gallery" }} do something {{ end }} */}}
{{/* Uncached extend head - Example: https://gohugo.io/methods/page/hasshortcode/ */}}
{{ if templates.Exists "partials/extend-head-uncached.html" }} {{ if templates.Exists "partials/extend-head-uncached.html" }}
{{ partial "extend-head-uncached.html" . }} {{ partial "extend-head-uncached.html" . }}
{{ end }} {{ end }}
<meta name="theme-color"/>
{{/* Firebase */}} {{/* Firebase */}}
{{ with $.Site.Params.firebase }} {{ with $.Site.Params.firebase }}
{{ if isset $.Site.Params "firebase" }} {{ if isset $.Site.Params "firebase" }}
<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-firestore.js"></script> <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-firestore.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-auth.js"></script> <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-auth.js"></script>
<script> <script>
const firebaseConfig = { const firebaseConfig = {
@@ -164,11 +205,11 @@
var auth = firebase.auth(); var auth = firebase.auth();
</script> </script>
{{ end }} {{ end }}
{{ end }} {{ end }}
{{/* Advertisement */}} {{/* Advertisement */}}
{{ with .Site.Params.advertisement.adsense }} {{ with .Site.Params.advertisement.adsense }}
<meta name="google-adsense-account" content="{{ . }}" /> <meta name="google-adsense-account" content="{{ . }}">
{{ end }} {{ end }}
</head> </head>