Port head partials: SEO, OG, JSON-LD, AI disclosure, tag-nav

- layouts/partials/head.html: full <head> partial with meta partials + CSS pipeline
- layouts/partials/meta/seo.html: canonical URL + robots directives
- layouts/partials/meta/og.html: Open Graph + Twitter Card meta tags
- layouts/partials/meta/ai-disclosure.html: AI content disclosure (EU AI Act)
- layouts/partials/meta/json-ld.html: Schema.org JSON-LD structured data
- layouts/partials/tag-nav.html: site-wide tag cloud partial
- layouts/_default/baseof.html: simplified to use partial head.html
- layouts/_default/single.html: removed inline head block (now in head.html)

Verified: canonical, robots, OG tags, ai-content-disclosure on live pages.
96 pages build clean.

Closes: asw#15
This commit is contained in:
Vigilio Desto 2026-04-10 18:42:21 +02:00
parent da1d02ccd1
commit 5deaa22e38
Signed by: vigilio
GPG key ID: 159D6AD58C8E55E9
8 changed files with 231 additions and 39 deletions

View file

@ -1,12 +1,7 @@
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode | default "en" }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ block "title" . }}{{ .Title }} — {{ .Site.Title }}{{ end }}</title>
{{ $css := resources.Get "css/asw-built.css" | minify | fingerprint }}
<link rel="stylesheet" href="{{ $css.RelPermalink }}">
{{ block "head" . }}{{ end }}
{{- partial "head.html" . -}}
</head>
<body>
{{ block "main" . }}{{ end }}

View file

@ -1,36 +1,3 @@
{{ define "head" }}
<meta name="description" content="{{ .Description | default .Summary }}">
<meta name="color-scheme" content="dark light">
<meta name="ai-disclosure" content="{{ index .Params "ai-disclosure" | default "ai-assisted" }}">
<meta name="ai-model" content="{{ index .Params "ai-model" | default .Site.Params.aiModel | default "claude-sonnet-4-5" }}">
<meta name="ai-provider" content="{{ index .Params "ai-provider" | default .Site.Params.aiProvider | default "Anthropic" }}">
<meta name="author" content="{{ .Params.author | default .Site.Params.author | default .Site.Title }}">
<meta property="og:title" content="{{ .Title }}">
<meta property="og:description" content="{{ .Description | default .Summary }}">
<meta property="og:type" content="article">
<meta property="og:url" content="{{ .Permalink }}">
<meta property="og:site_name" content="{{ .Site.Title }}">
<link rel="canonical" href="{{ .Permalink }}">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "CreativeWork",
"name": "{{ .Title }}",
"author": {
"@type": "SoftwareApplication",
"name": "{{ .Site.Params.author | default .Site.Title }}",
"url": "{{ .Site.BaseURL }}"
},
"dateModified": "{{ .Lastmod.Format `2006-01-02` }}",
"generator": "Agentic Semantic Web"
}
</script>
{{ end }}
{{ define "main" }}
{{ partial "nav.html" . }}