hugo-geekblog/layouts/partials/microformats/schema.html

91 lines
3.2 KiB
HTML
Raw Normal View History

{{- if eq .Kind "home" }}
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
{{ with .Site.Params.GeekblogAuthor -}}
{{ with index $.Site.Data.authors . }}"author": "{{ .name }}",{{ end }}
{{- end }}
"name": "{{ .Site.Title }}",
"url": {{ .Site.BaseURL | jsonify | safeJS }},
{{- with partial "utils/description" . }}
"description": {{ trim (. | plainify) "\n" | jsonify | safeJS }},
{{- end }}
{{- with partial "utils/featured" . }}
"thumbnailUrl": {{ . | jsonify | safeJS }},
{{- end }}
{{- with .Site.Params.GeekblogContentLicense }}
"license": "{{ .name }}",
{{- end }}
"inLanguage": {{ .Lang }}
}
</script>
{{- else if .IsPage }}
{{- $authors := default (slice .Site.Params.GeekblogAuthor) .Params.authors -}}
{{- $ac := 0 -}}
{{- $ac_max := default 0 (len $authors) -}}
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "BlogPosting",
"articleSection": "{{ .Section | humanize | title }}",
2022-02-06 11:46:10 +00:00
"name": "{{ (partial "utils/title" .) | safeJS }}",
"url" : {{ .Permalink | jsonify | safeJS }},
2022-02-06 11:46:10 +00:00
"headline": "{{ (partial "utils/title" .) | safeJS }}",
{{- with .Params.lead }}
"alternativeHeadline": "{{ . }}",
{{- end }}
{{- with partial "utils/description" . }}
"description": {{ trim (. | plainify) "\n" | jsonify | safeJS }},
{{- end }}
{{- with partial "utils/featured" . }}
"thumbnailUrl": {{ . | jsonify | safeJS }},
{{- end }}
"wordCount" : "{{ .WordCount }}",
{{- with .Site.Params.GeekblogContentLicense }}
"license": "{{ .name }}",
{{- end }}
"inLanguage": {{ .Lang }},
"isFamilyFriendly": "true",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": {{ .Permalink | jsonify | safeJS }}
},
{{- with $tags := .Params.tags }}
"keywords" : [ {{ range $i, $tag := $tags }}{{ if $i }}, {{ end }}"{{ $tag }}" {{ end }}],
{{- end }}
{{- with $authors }}
"author" : [
{{- range sort . }}
{{- with . -}}
{{- $ac = (add $ac 1) }}
{{- $author := index $.Site.Data.authors . }}
{
"@type": "Person",
"name": "{{ $author.name }}"
}{{ if lt $ac $ac_max }},{{ end }}
{{- end -}}
{{- end }}
],
{{- end }}
"copyrightHolder" : "{{ .Site.Title }}",
"copyrightYear" : "{{ .Date.Format "2006" }}",
"dateCreated": "{{ .Date.Format "2006-01-02T15:04:05.00Z" | safeJS }}",
"datePublished": "{{ .PublishDate.Format "2006-01-02T15:04:05.00Z" | safeJS }}",
"dateModified": "{{ .Lastmod.Format "2006-01-02T15:04:05.00Z" | safeJS }}",
"publisher":{
"@type":"Organization",
"name": {{ .Site.Title }},
"url": {{ .Site.BaseURL | jsonify | safeJS }},
"logo": {
"@type": "ImageObject",
"url": {{ (default "brand.svg" .Site.Params.logo) | absURL | jsonify | safeJS }},
"width":"32",
"height":"32"
}
}
}
</script>
{{- end }}