diff --git a/layouts/partials/schema.html b/layouts/partials/schema.html
index 76d6ea0c..0962d439 100644
--- a/layouts/partials/schema.html
+++ b/layouts/partials/schema.html
@@ -17,6 +17,22 @@
{{ else }}
{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}}
+ {{- /* Resolve the author: first `authors` front matter key looked up in data/authors/, else the site author. */ -}}
+ {{- $author := .Site.Params.Author -}}
+ {{- with .Params.authors -}}
+ {{- with index site.Data.authors (index . 0 | lower) -}}
+ {{- $author = . -}}
+ {{- end -}}
+ {{- end -}}
+ {{- /* sameAs from social profiles: data/authors uses `social`, the site author uses `links` (each a {platform: url} map). */ -}}
+ {{- $sameAs := slice -}}
+ {{- range (or $author.social $author.links) -}}
+ {{- range $platform, $url := . -}}
+ {{- if not (strings.HasPrefix $url "mailto:") -}}
+ {{- $sameAs = $sameAs | append $url -}}
+ {{- end -}}
+ {{- end -}}
+ {{- end -}}