All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Add Organization, WebSite, and SoftwareApplication schema.org markup to the homepage head partial, enabling rich search results with app category, pricing (free), license, and social profiles. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
140 lines
5.1 KiB
HTML
140 lines
5.1 KiB
HTML
<head>
|
|
<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">
|
|
|
|
<link rel="stylesheet" href="/css/bootstrap.min.css">
|
|
<link rel="stylesheet" href="/icons/font/bootstrap-icons.min.css">
|
|
|
|
<!-- Theme stylesheet, if possible do not edit this stylesheet -->
|
|
{{ if and (isset .Site.Params "style") .Site.Params.style }}
|
|
<link href="{{ .Site.BaseURL }}css/style.{{ .Site.Params.style }}.css" rel="stylesheet" id="theme-stylesheet">
|
|
{{ else }}
|
|
<link href="{{ .Site.BaseURL }}css/style.default.css" rel="stylesheet" id="theme-stylesheet">
|
|
{{ end }}
|
|
|
|
<!-- 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>
|