diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 45b531979..32ff961bf 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -36,7 +36,9 @@ {{ partialCached "css.html" . }} {{ block "head" . }}{{ end }} - + + {{ partial "ai-metadata.html" . }} + {{ partial "fonts.html" . }} {{ if hugo.IsProduction -}} @@ -56,6 +58,8 @@ {{ end }} + {{ partial "ai-metadata-body.html" . }} + {{ if hugo.IsProduction -}} diff --git a/layouts/_default/section.md b/layouts/_default/section.md index 8bb56db5e..a09cb10ae 100644 --- a/layouts/_default/section.md +++ b/layouts/_default/section.md @@ -1,4 +1,22 @@ # {{ .Title }} + +```json metadata +{ + "title": "{{ .Title }}", + "description": "{{ .Description }}", + "categories": {{ .Params.categories | jsonify }}{{ if .Params.arguments }}, + "arguments": {{ .Params.arguments | jsonify }}{{ end }}{{ if .Params.syntax_fmt }}, + "syntax_fmt": {{ .Params.syntax_fmt | jsonify }}{{ end }}{{ if .Params.complexity }}, + "complexity": {{ .Params.complexity | jsonify }}{{ end }}{{ if .Params.group }}, + "group": {{ .Params.group | jsonify }}{{ end }}{{ if .Params.command_flags }}, + "command_flags": {{ .Params.command_flags | jsonify }}{{ end }}{{ if .Params.acl_categories }}, + "acl_categories": {{ .Params.acl_categories | jsonify }}{{ end }}{{ if .Params.since }}, + "since": {{ .Params.since | jsonify }}{{ end }}{{ if .Params.arity }}, + "arity": {{ .Params.arity | jsonify }}{{ end }}{{ if .Params.key_specs }}, + "key_specs": {{ .Params.key_specs | jsonify }}{{ end }} +} +``` + {{ $content := .RawContent }} {{/* Fix relrefs */}} diff --git a/layouts/_default/single.md b/layouts/_default/single.md index 8bb56db5e..a09cb10ae 100644 --- a/layouts/_default/single.md +++ b/layouts/_default/single.md @@ -1,4 +1,22 @@ # {{ .Title }} + +```json metadata +{ + "title": "{{ .Title }}", + "description": "{{ .Description }}", + "categories": {{ .Params.categories | jsonify }}{{ if .Params.arguments }}, + "arguments": {{ .Params.arguments | jsonify }}{{ end }}{{ if .Params.syntax_fmt }}, + "syntax_fmt": {{ .Params.syntax_fmt | jsonify }}{{ end }}{{ if .Params.complexity }}, + "complexity": {{ .Params.complexity | jsonify }}{{ end }}{{ if .Params.group }}, + "group": {{ .Params.group | jsonify }}{{ end }}{{ if .Params.command_flags }}, + "command_flags": {{ .Params.command_flags | jsonify }}{{ end }}{{ if .Params.acl_categories }}, + "acl_categories": {{ .Params.acl_categories | jsonify }}{{ end }}{{ if .Params.since }}, + "since": {{ .Params.since | jsonify }}{{ end }}{{ if .Params.arity }}, + "arity": {{ .Params.arity | jsonify }}{{ end }}{{ if .Params.key_specs }}, + "key_specs": {{ .Params.key_specs | jsonify }}{{ end }} +} +``` + {{ $content := .RawContent }} {{/* Fix relrefs */}} diff --git a/layouts/partials/ai-metadata-body.html b/layouts/partials/ai-metadata-body.html new file mode 100644 index 000000000..c3f292ade --- /dev/null +++ b/layouts/partials/ai-metadata-body.html @@ -0,0 +1,32 @@ +{{- /* Generate AI-friendly metadata as a hidden div in the page body */ -}} +{{- $metadata := dict "title" .Title "description" .Description "categories" .Params.categories -}} +{{- if .Params.arguments -}} + {{- $metadata = merge $metadata (dict "arguments" .Params.arguments) -}} +{{- end -}} +{{- if .Params.syntax_fmt -}} + {{- $metadata = merge $metadata (dict "syntax_fmt" .Params.syntax_fmt) -}} +{{- end -}} +{{- if .Params.complexity -}} + {{- $metadata = merge $metadata (dict "complexity" .Params.complexity) -}} +{{- end -}} +{{- if .Params.group -}} + {{- $metadata = merge $metadata (dict "group" .Params.group) -}} +{{- end -}} +{{- if .Params.command_flags -}} + {{- $metadata = merge $metadata (dict "command_flags" .Params.command_flags) -}} +{{- end -}} +{{- if .Params.acl_categories -}} + {{- $metadata = merge $metadata (dict "acl_categories" .Params.acl_categories) -}} +{{- end -}} +{{- if .Params.since -}} + {{- $metadata = merge $metadata (dict "since" .Params.since) -}} +{{- end -}} +{{- if .Params.arity -}} + {{- $metadata = merge $metadata (dict "arity" .Params.arity) -}} +{{- end -}} +{{- if .Params.key_specs -}} + {{- $metadata = merge $metadata (dict "key_specs" .Params.key_specs) -}} +{{- end -}} +{{- $json := $metadata | jsonify -}} +{{- printf `` $json | safeHTML -}} + diff --git a/layouts/partials/ai-metadata.html b/layouts/partials/ai-metadata.html new file mode 100644 index 000000000..d184e59f7 --- /dev/null +++ b/layouts/partials/ai-metadata.html @@ -0,0 +1,32 @@ +{{- /* Generate AI-friendly metadata as JSON in a script tag for the header */ -}} +{{- $metadata := dict "title" .Title "description" .Description "categories" .Params.categories -}} +{{- if .Params.arguments -}} + {{- $metadata = merge $metadata (dict "arguments" .Params.arguments) -}} +{{- end -}} +{{- if .Params.syntax_fmt -}} + {{- $metadata = merge $metadata (dict "syntax_fmt" .Params.syntax_fmt) -}} +{{- end -}} +{{- if .Params.complexity -}} + {{- $metadata = merge $metadata (dict "complexity" .Params.complexity) -}} +{{- end -}} +{{- if .Params.group -}} + {{- $metadata = merge $metadata (dict "group" .Params.group) -}} +{{- end -}} +{{- if .Params.command_flags -}} + {{- $metadata = merge $metadata (dict "command_flags" .Params.command_flags) -}} +{{- end -}} +{{- if .Params.acl_categories -}} + {{- $metadata = merge $metadata (dict "acl_categories" .Params.acl_categories) -}} +{{- end -}} +{{- if .Params.since -}} + {{- $metadata = merge $metadata (dict "since" .Params.since) -}} +{{- end -}} +{{- if .Params.arity -}} + {{- $metadata = merge $metadata (dict "arity" .Params.arity) -}} +{{- end -}} +{{- if .Params.key_specs -}} + {{- $metadata = merge $metadata (dict "key_specs" .Params.key_specs) -}} +{{- end -}} +{{- $json := $metadata | jsonify -}} +{{- printf `` $json | safeHTML -}} +