{{- $page := .page }}
{{ $summary := .summary }}
{{ $featured_image := ($page.Resources.ByType "image").GetMatch "*featured*" }}

{{/* Get schema type. */}}
{{ $schema := "Article" }}
{{ if eq $page.Type "blog" }}
  {{ $schema = "BlogPosting" }}
{{ end }}

{{ $author := partial "functions/get_author_name" $page }}
{{ $branding := partialCached "functions/get_branding" $page "branding" }}
{{ $publisher := $branding.organization }}
{{ $logo_url := partial "functions/get_logo_url" $page -}}

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": {{$schema}},
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": {{$page.Permalink}}
  },
  "headline": {{$page.Title}},
  {{ if $featured_image }}
  "image": [
    {{$featured_image.Permalink}}
  ],
  {{end}}
  "datePublished": {{ $page.PublishDate.Format "2006-01-02T15:04:05Z07:00" }},
  "dateModified": {{ $page.Lastmod.Format "2006-01-02T15:04:05Z07:00" }},
  {{with $author}}
  "author": {
    "@type": "Person",
    "name": {{.}}
  },
  {{end}}
  "publisher": {
    "@type": "Organization",
    "name": {{$publisher}},
    "logo": {
      "@type": "ImageObject",
      "url": {{$logo_url}}
    }
  },
  "description": {{$summary}}
}
</script>
