<head>
    <script>document.documentElement.setAttribute('data-bs-theme',window.matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light')</script>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <meta name="robots" content="all,follow">
    <meta name="googlebot" content="index,follow,snippet,archive">
    <title>{{ .Title }}</title>
    <meta name="author" content="{{ .Site.Params.author.name }}" />

    {{ if .Keywords }}
    <meta name="keywords" content="{{ delimit .Keywords ", " }}">
    {{ else if .Site.Params.DefaultKeywords }}
    <meta name="keywords" content="{{ delimit .Site.Params.DefaultKeywords ", " }}">
    {{ end }}

    {{ if .Description }}
    <meta name="description" content="{{ .Description }}">
    {{ else if .Site.Params.DefaultDescription }}
    <meta name="description" content="{{ .Site.Params.DefaultDescription }}">
    {{ end }}

    {{- $title := .Title | default "happyDomain" }}
    {{- $description := .Description | default .Site.Params.DefaultDescription }}
    {{- $image := .Params.og_image | default (printf "%simg/og.webp" .Site.BaseURL) }}
    {{- $pageURL := .Permalink | default .Site.BaseURL }}

    <!-- Canonical URL -->
    <link rel="canonical" href="{{ $pageURL }}">

    <!-- Facebook Meta Tags -->
    <meta property="og:url" content="{{ $pageURL }}">
    <meta property="og:type" content="{{ if .IsHome }}website{{ else }}article{{ end }}">
    <meta property="og:title" content="{{ $title }}">
    <meta property="og:description" content="{{ $description }}">
    <meta property="og:image" content="{{ $image }}">
    <meta property="og:locale" content="{{ .Lang }}">
    {{ range .Translations }}
    <meta property="og:locale:alternate" content="{{ .Lang }}">
    {{ end }}

    <!-- Twitter Meta Tags -->
    <meta name="twitter:card" content="summary_large_image">
    <meta property="twitter:domain" content="happydomain.org">
    <meta property="twitter:url" content="{{ $pageURL }}">
    <meta name="twitter:title" content="{{ $title }}">
    <meta name="twitter:description" content="{{ $description }}">
    <meta name="twitter:image" content="{{ $image }}">

    <!-- Mastodon proof -->
    <link rel="me" href="https://floss.social/@happyDomain">

    <!-- Variable fonts (Hanken Grotesk, JetBrains Mono, Quicksand) — served from node_modules via Hugo mounts -->
    <link rel="stylesheet" href="/fonts/hanken-grotesk/wght.css">
    <link rel="stylesheet" href="/fonts/jetbrains-mono/wght.css">
    <link rel="stylesheet" href="/fonts/quicksand/wght.css">

    <!-- Bootstrap (compiled from SCSS) -->
    {{ $scss := resources.Get "scss/bootstrap.scss" }}
    {{ $opts := dict "transpiler" "libsass" "includePaths" (slice "node_modules") }}
    {{ $css := $scss | css.Sass $opts }}
    {{ if hugo.IsProduction }}
    {{ $css = $css | minify | fingerprint }}
    {{ end }}
    <link rel="stylesheet" href="{{ $css.RelPermalink }}">

    <link rel="stylesheet" href="/icons/font/bootstrap-icons.min.css">

    <!-- Custom stylesheet - for your changes -->
    <link href="{{ .Site.BaseURL }}css/custom.css" rel="stylesheet">

    <!-- Responsivity for older IE -->
    {{ `
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
        <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    ` | safeHTML }}

    <!-- Favicon and apple touch icons-->
    <link rel="shortcut icon" href="{{ .Site.BaseURL }}img/favicon.ico" type="image/x-icon" />
    <link rel="apple-touch-icon" href="{{ .Site.BaseURL }}img/apple-touch-icon.png" />

    <link rel="alternate" href="{{ "/index.xml" | absURL }}" type="application/rss+xml" title="{{ .Site.Title }}">

    <!-- Structured Data (JSON-LD) -->
    {{ if .IsHome }}
    <script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@graph": [
                {
                    "@type": "Organization",
                    "@id": "{{ .Site.BaseURL }}#organization",
                    "name": "happyDomain",
                    "url": "{{ .Site.BaseURL }}",
                    "logo": {
                        "@type": "ImageObject",
                        "url": "{{ .Site.BaseURL }}img/happydomain.png"
                    },
                    "sameAs": [
                        "https://floss.social/@happyDomain",
                        "https://github.com/happyDomain/happydomain",
                        "https://framagit.org/happyDomain/happydomain"
                    ]
                },
                {
                    "@type": "WebSite",
                    "@id": "{{ .Site.BaseURL }}#website",
                    "name": "happyDomain",
                    "url": "{{ .Site.BaseURL }}",
                    "description": "{{ $description }}",
                    "inLanguage": ["en", "fr"],
                    "publisher": {
                        "@id": "{{ .Site.BaseURL }}#organization"
                    }
                },
                {
                    "@type": "SoftwareApplication",
                    "@id": "{{ .Site.BaseURL }}#software",
                    "name": "happyDomain",
                    "url": "{{ .Site.BaseURL }}",
                    "description": "{{ $description }}",
                    "applicationCategory": "DeveloperApplication",
                    "operatingSystem": "Linux, Windows, macOS, Docker",
                    "license": "https://www.gnu.org/licenses/agpl-3.0.html",
                    "offers": {
                        "@type": "Offer",
                        "price": "0",
                        "priceCurrency": "USD"
                    },
                    "screenshot": "{{ .Site.BaseURL }}img/og.webp",
                    "softwareHelp": {
                        "@type": "WebPage",
                        "url": "https://help.happydomain.org/"
                    },
                    "author": {
                        "@id": "{{ .Site.BaseURL }}#organization"
                    }
                }
            ]
        }
    </script>
    {{ end }}

    <script async defer data-website-id="a10b2ee8-ed13-4acb-a017-0b9a661f31c3" src="https://pythagore.p0m.fr/pythagore.js"></script>
</head>
