feat(web): SEO/social cards, security headers, PWA icons, FAQ, status, get-involved, captions

This commit is contained in:
vjrj 2026-07-15 12:10:30 +02:00
parent a719e9c172
commit a3697e6b3e
19 changed files with 358 additions and 16 deletions

View file

@ -1,16 +1,56 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>{{ .Title }} · {{ .Site.Title }}</title>
<meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{ .Site.Params.description }}{{ end }}" />
{{ $desc := or .Description .Site.Params.description }}
<meta name="description" content="{{ $desc }}" />
<meta name="theme-color" content="#2F7D34" />
<link rel="icon" href="/favicon.png" type="image/png" />
<link rel="canonical" href="{{ .Permalink }}" />
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16.png" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/site.webmanifest" />
{{ range .AllTranslations }}
<link rel="alternate" hreflang="{{ .Language.LanguageCode }}" href="{{ .Permalink }}" />
{{ end }}
<meta property="og:title" content="{{ .Title }}" />
<meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{ .Site.Params.description }}{{ end }}" />
{{ $og := printf "og-%s.png" .Site.Language.Lang | absURL }}
<meta property="og:site_name" content="{{ .Site.Title }}" />
<meta property="og:title" content="{{ if .IsHome }}{{ .Site.Title }} — {{ .Title }}{{ else }}{{ .Title }}{{ end }}" />
<meta property="og:description" content="{{ $desc }}" />
<meta property="og:type" content="website" />
<meta property="og:image" content="/apple-touch-icon.png" />
<meta property="og:url" content="{{ .Permalink }}" />
<meta property="og:image" content="{{ $og }}" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:locale" content="{{ .Site.Language.LanguageCode }}" />
{{ range .AllTranslations }}<meta property="og:locale:alternate" content="{{ .Language.LanguageCode }}" />
{{ end }}
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{{ .Title }}" />
<meta name="twitter:description" content="{{ $desc }}" />
<meta name="twitter:image" content="{{ $og }}" />
{{ if .IsHome }}
<script type="application/ld+json">
{{ dict
"@context" "https://schema.org"
"@type" "SoftwareApplication"
"name" "Tane"
"applicationCategory" "LifestyleApplication"
"operatingSystem" "Android, iOS, Linux, Windows, macOS"
"description" $desc
"url" .Site.BaseURL
"image" $og
"license" "https://www.gnu.org/licenses/agpl-3.0.html"
"isAccessibleForFree" true
"offers" (dict "@type" "Offer" "price" "0" "priceCurrency" "EUR")
"publisher" (dict "@type" "Organization" "name" .Site.Params.publisher "url" .Site.Params.publisherURL)
| jsonify }}
</script>
{{ end }}
{{ $css := resources.Get "css/main.css" | minify | fingerprint }}
<style>{{ $css.Content | safeCSS }}</style>