mirror of https://github.com/lxndrblz/anatole.git

Alexander Bilz
21.02.2021 3ce92e4534975918a3559ec4f77caf15c797d663
feat: added schema.org structured data

1 files modified
1 files added
124 ■■■■■ changed files
layouts/partials/head.html 4 ●●●● patch | view | raw | blame | history
layouts/partials/schema.html 120 ●●●●● patch | view | raw | blame | history
layouts/partials/head.html
@@ -185,4 +185,8 @@
  {{- end }}
  <!-- Schema.org-->
  {{ partial "schema.html" . }}
</head>
layouts/partials/schema.html
New file
@@ -0,0 +1,120 @@
{{ if .IsHome -}}
  <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "WebSite",
      "name": "{{ .Site.Title }}",
      "url": "{{ .Site.BaseURL }}",
      "description": "{{ .Site.Params.description }}",
      "thumbnailUrl": "{{ .Site.Params.Logo | absURL }}",
      "license": "{{ .Site.Params.Copyright }}"
    }
  </script>
{{ else if .IsPage }}
  {{ $author :=  or (.Params.author) (.Site.Params.author) }}
  {{ $org_name :=  .Site.Title }}
  {{ $favicon := .Site.Params.favicon | absURL }}
  <script type="application/ld+json">
    {
        "@context": "http://schema.org",
        "@type": "BlogPosting",
        "articleSection": "{{ .Section }}",
        "name": "{{ .Title | safeJS }}",
        "headline": "{{ .Title | safeJS }}",
        "alternativeHeadline": "{{ .Params.lead }}",
        "description": "{{ if .Description }}
      {{ .Description | safeJS }}
    {{ else }}
      {{ if .IsPage }}
        {{ .Summary }}
      {{ end }}
    {{ end }}",
        "inLanguage": {{ .Site.LanguageCode | default "en-us" }},
        "isFamilyFriendly": "true",
        "mainEntityOfPage": {
            "@type": "WebPage",
            "@id": "{{ .Permalink }}"
        },
        "author" : {
            "@type": "Person",
            "name": "{{ $author }}"
        },
        "creator" : {
            "@type": "Person",
            "name": "{{ $author }}"
        },
        "accountablePerson" : {
            "@type": "Person",
            "name": "{{ $author }}"
        },
        "copyrightHolder" : {
            "@type": "Person",
            "name": "{{ $author }}"
        },
        "copyrightYear" : "{{ .Date.Format "2006" }}",
        "dateCreated": "{{ .Date.Format "2006-01-02T15:04:05.00Z" | safeHTML }}",
        "datePublished": "{{ .PublishDate.Format "2006-01-02T15:04:05.00Z" | safeHTML }}",
        "dateModified": "{{ .Lastmod.Format "2006-01-02T15:04:05.00Z" | safeHTML }}",
        "publisher":{
            "@type":"Organization",
            "name": {{ $org_name }},
            "url": {{ .Site.BaseURL }},
            "logo": {
                "@type": "ImageObject",
                "url": "{{ (printf "%s%s" $favicon "favicon-32x32.png") }}",
                "width":"32",
                "height":"32"
            }
        },
        "image": {{ if .Params.images }}
      [{{ range $i, $e := .Params.images }}
        {{ if $i }}
          ,
        {{ end }}
        {{ $e | absURL }}
      {{ end }}
      ]
    {{ else }}
      [{{ range $i, $e := .Site.Params.images }}
        {{ if $i }}
          ,
        {{ end }}
        {{ $e | absURL }}
      {{ end }}
      ]
    {{ end }},
        "url" : "{{ .Permalink }}",
        "wordCount" : "{{ .WordCount }}",
        "genre" : [ {{ range $index, $tag := .Params.categories }}
      {{ if $index }}
        ,
      {{ end }}
      "{{ $tag }}"
    {{ end }}],
        "keywords" : [ {{ range $index, $keyword := .Params.tags }}
      {{ if $index }}
        ,
      {{ end }}
      "{{ $keyword }}"
    {{ end }}]
    }
  </script>
{{ end }}