|
59 | 59 | <meta name="robots" content="{{ $robots }}"> |
60 | 60 | <link rel="canonical" href="{{ .Permalink | absURL }}"> |
61 | 61 |
|
| 62 | +{{- /* Language and locale (BCP 47); single source for og:locale and hreflang */ -}} |
| 63 | +{{- $localeRaw := .Site.Language.LanguageCode | default .Site.LanguageCode | default "en-US" -}} |
| 64 | +{{- $localeNorm := $localeRaw | replace "_" "-" -}} |
| 65 | +{{- $locale := cond (or (not $localeNorm) (lt (len $localeNorm) 2)) "en-US" $localeNorm -}} |
| 66 | + |
62 | 67 | {{- /* Open Graph meta tags */ -}} |
63 | 68 | {{- $ogTitle := $pageTitle -}} |
64 | 69 | {{- $ogDescription := $description -}} |
|
90 | 95 | <meta property="og:url" content="{{ .Permalink | absURL }}"> |
91 | 96 | <meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}"> |
92 | 97 | <meta property="og:site_name" content="{{ .Site.Title }}"> |
93 | | -<meta property="og:locale" content="{{ .Site.LanguageCode | default "en-US" | replace "_" "-" }}"> |
| 98 | +<meta property="og:locale" content="{{ $locale }}"> |
94 | 99 |
|
95 | 100 | {{- /* Twitter Card meta tags */ -}} |
96 | 101 | <meta name="twitter:card" content="summary_large_image"> |
|
111 | 116 | <meta name="msapplication-TileColor" content="#e5e9f4"> |
112 | 117 | <meta name="theme-color" content="#e5e9f4"> |
113 | 118 |
|
114 | | -{{- /* Language and locale (BCP 47); single-language site */ -}} |
115 | | -{{- $locale := .Site.LanguageCode | default "en-US" | replace "_" "-" -}} |
| 119 | +{{- /* Language meta and hreflang (use $locale from top of head) */ -}} |
116 | 120 | <meta name="language" content="{{ $locale }}"> |
117 | 121 | <link rel="alternate" hreflang="{{ $locale }}" href="{{ .Permalink | absURL }}"> |
118 | 122 | <link rel="alternate" hreflang="x-default" href="{{ .Permalink | absURL }}"> |
|
0 commit comments