mirror of
https://github.com/alanorth/hugo-theme-bootstrap4-blog.git
synced 2024-11-24 21:20:17 +01:00
Alan Orth
6945b0de20
Use delimit function over a union of Categories and Tags. This is much easier to read, results in correct delimiting with no trailing comma, and works even if one of the slices is nil.
97 lines
2.8 KiB
HTML
97 lines
2.8 KiB
HTML
{{ define "title" }}{{ .Title | markdownify }} | {{ .Site.Title }}{{ end }}
|
|
|
|
{{ define "schema-dot-org" }}
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "http://schema.org",
|
|
"@type": "BlogPosting",
|
|
{{- /* Google recommends the headline be no more than 110 characters */}}
|
|
"headline": "{{ substr .Title 0 110 }}",
|
|
{{- with .Params.images -}}{{ range first 1 . }}
|
|
"image": {
|
|
"@type": "ImageObject",
|
|
"url": "{{ . | absURL }}"
|
|
{{- /* Don't try to get imageConfig if image param is not local */ -}}
|
|
{{- if not (or (hasPrefix . "http://") (hasPrefix . "https://")) -}}
|
|
{{- with (imageConfig (printf "/static/%s" .)) -}}
|
|
,
|
|
"height": "{{ .Height }}",
|
|
"width": "{{ .Width }}"
|
|
{{- end -}}
|
|
{{ end }}
|
|
},
|
|
{{- end -}}{{ end }}
|
|
"url": "{{ printf "%s" .Permalink }}",
|
|
"wordCount": "{{ .WordCount }}",
|
|
{{- $ISO8601 := "2006-01-02T15:04:05-07:00" }}
|
|
{{- if not .PublishDate.IsZero }}
|
|
"datePublished": "{{ .PublishDate.Format $ISO8601 }}",
|
|
{{- else }}
|
|
"datePublished": "{{ .Date.Format $ISO8601 }}",
|
|
{{- end }}
|
|
{{- if not .Lastmod.IsZero }}
|
|
"dateModified": "{{ .Lastmod.Format $ISO8601 }}",
|
|
{{- end }}
|
|
{{- with .Site.Social.GooglePlus }}
|
|
"publisher": "{{ printf "%s" . }}",
|
|
{{- end }}
|
|
"author": {
|
|
"@type": "Person",
|
|
"name": "{{ .Params.author | default .Site.Params.author }}"
|
|
}
|
|
{{- if or (.Params.categories) (.Params.tags) -}}
|
|
,
|
|
{{- /* delimit keywords by comma, even if one of .Params.categories or Params.tags is nil */ -}}
|
|
"keywords": "{{ delimit (union .Params.categories .Params.tags) ", " }}"
|
|
{{- end }}
|
|
|
|
{{- with .Params.description -}}
|
|
,
|
|
"description": "{{ . }}"
|
|
{{- end }}
|
|
}
|
|
</script>
|
|
|
|
{{ end }}
|
|
|
|
{{ define "main" }}
|
|
{{ $dateFormat := default "Mon Jan 2, 2006" (index .Site.Params "date_format") }}
|
|
|
|
<article class="blog-post">
|
|
<header>
|
|
<h2 class="blog-post-title"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2>
|
|
<p class="blog-post-meta"><time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format $dateFormat }}</time> by {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} in {{ partial "meta-terms.html" . }}{{ end }}</p>
|
|
</header>
|
|
{{ .Content }}
|
|
|
|
{{ if .IsTranslated }}
|
|
<h4>{{ i18n "translations" }}</h4>
|
|
<ul>
|
|
{{ range .Translations }}
|
|
<li>
|
|
<a href="{{ .Permalink }}">{{ .Lang }}: {{ .Title }}{{ if .IsPage }}{{ end }}</a>
|
|
</li>
|
|
{{ end }}
|
|
</ul>
|
|
{{ end }}
|
|
|
|
{{ if or (ne ($.Param "sharingicons") false) (.Site.DisqusShortname) }}
|
|
<hr>
|
|
<footer>
|
|
|
|
{{ if (ne ($.Param "sharingicons") false) }}
|
|
{{ partial "sharing-icons.html" . }}
|
|
{{ end }}
|
|
|
|
{{ if and (.Site.DisqusShortname) (ne .Params.comments false) }}
|
|
{{ template "_internal/disqus.html" . }}
|
|
{{ end }}
|
|
</footer>
|
|
{{ end }}
|
|
|
|
</article> <!-- /.blog-post -->
|
|
|
|
{{ end }}
|
|
|
|
{{- /* vim: set ts=2 sw=2 et: */}}
|