mirror of
https://github.com/adityatelange/hugo-PaperMod.git
synced 2023-12-21 10:22:58 +01:00
125 lines
3.8 KiB
HTML
125 lines
3.8 KiB
HTML
{{ if .IsHome }}
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "{{- ( site.Params.schema.publisherType | default "Organization") | title -}}",
|
|
"name": {{ site.Title }},
|
|
"url": {{ site.BaseURL }},
|
|
"description": {{ site.Params.description | plainify | truncate 180 | safeHTML }},
|
|
"thumbnailUrl": {{ site.Params.assets.favicon | default "favicon.ico" | absURL }},
|
|
"sameAs": [
|
|
{{- if site.Params.schema.sameAs }}
|
|
{{ range $i, $e := site.Params.schema.sameAs }}{{ if $i }}, {{ end }}{{ trim $e " " }}{{ end }}
|
|
{{- else}}
|
|
{{ range $i, $e := site.Params.SocialIcons }}{{ if $i }}, {{ end }}{{ trim $e.url " " | safeURL }}{{ end }}
|
|
{{- end}}
|
|
]
|
|
}
|
|
</script>
|
|
{{- else if (or .IsPage .IsSection) }}
|
|
{{/* BreadcrumbList */}}
|
|
{{- $url := replace .Parent.Permalink ( printf "%s" site.BaseURL) "" }}
|
|
{{- $lang_url := strings.TrimPrefix ( printf "%s/" .Lang) $url }}
|
|
{{- $bc_list := (split $lang_url "/")}}
|
|
|
|
{{- $scratch := newScratch }}
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "BreadcrumbList",
|
|
"itemListElement": [
|
|
{{- range $index, $element := $bc_list }}
|
|
|
|
{{- $scratch.Add "path" (printf "%s/" $element ) | safeJS }}
|
|
{{- $bc_pg := site.GetPage ($scratch.Get "path") -}}
|
|
|
|
{{- if (and ($bc_pg) (gt (len . ) 0))}}
|
|
{{- if (and $index)}}, {{end }}
|
|
{
|
|
"@type": "ListItem",
|
|
"position": {{ add 1 $index }},
|
|
"name": {{ $bc_pg.Name }},
|
|
"item": {{ $bc_pg.Permalink | safeHTML }}
|
|
}
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
{{- /* self-page addition */ -}}
|
|
{{- if (ge (len $bc_list) 2) }}, {{end }}
|
|
{
|
|
"@type": "ListItem",
|
|
"position": {{len $bc_list}},
|
|
"name": {{ .Name }},
|
|
"item": {{ .Permalink | safeHTML }}
|
|
}
|
|
]
|
|
}
|
|
</script>
|
|
{{- if .IsPage }}
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "BlogPosting",
|
|
"headline": {{ .Title | plainify}},
|
|
"name": "{{ .Title | plainify }}",
|
|
"description": {{ with .Description | plainify }}{{ . }}{{ else }}{{ .Summary | plainify }}{{ end -}},
|
|
"keywords": [
|
|
{{- if .Params.keywords }}
|
|
{{ range $i, $e := .Params.keywords }}{{ if $i }}, {{ end }}{{ $e }}{{ end }}
|
|
{{- else }}
|
|
{{ range $i, $e := .Params.tags }}{{ if $i }}, {{ end }}{{ $e }}{{ end }}
|
|
{{- end }}
|
|
],
|
|
"articleBody": {{ .Content | safeJS | htmlUnescape | plainify }},
|
|
"wordCount" : "{{ .WordCount }}",
|
|
"inLanguage": {{ .Language.Lang | default "en-us" }},
|
|
{{ if .Params.cover.image -}}
|
|
{{- $cover := (.Resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
|
|
{{- if $cover -}}{{/* i.e it is present in page bundle */}}
|
|
"image": "{{ $cover.Permalink }}",
|
|
{{- else }}{{/* For absolute urls and external links */}}
|
|
"image":
|
|
{{- if (ne .Params.cover.relative true) -}}
|
|
{{ .Params.cover.image | absURL }},
|
|
{{- else -}}
|
|
{{ (path.Join .RelPermalink .Params.cover.image ) | absURL }},
|
|
{{- end}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
"datePublished": {{ .PublishDate }},
|
|
"dateModified": {{ .Lastmod }},
|
|
{{- with (.Params.author | default site.Params.author) }}
|
|
"author":
|
|
{{- if (or (eq (printf "%T" .) "[]string") (eq (printf "%T" .) "[]interface {}")) -}}
|
|
[{{- range $i, $v := . -}}
|
|
{{- if $i }}, {{end -}}
|
|
{
|
|
"@type": "Person",
|
|
"name": {{ $v }}
|
|
}
|
|
{{- end }}],
|
|
{{- else -}}
|
|
{
|
|
"@type": "Person",
|
|
"name": {{ . }}
|
|
},
|
|
{{- end -}}
|
|
{{- end }}
|
|
"mainEntityOfPage": {
|
|
"@type": "WebPage",
|
|
"@id": {{ .Permalink | safeHTML }}
|
|
},
|
|
"publisher": {
|
|
"@type": "{{- ( site.Params.schema.publisherType | default "Organization") | title -}}",
|
|
"name": {{ site.Title }},
|
|
"logo": {
|
|
"@type": "ImageObject",
|
|
"url": {{ site.Params.assets.favicon | default "favicon.ico" | absURL }}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
{{- end }}{{/* .IsPage end */}}
|
|
|
|
{{- end -}}
|