mirror of
https://github.com/alanorth/hugo-theme-bootstrap4-blog.git
synced 2024-12-25 11:44:29 +01:00
Alan Orth
2dd72d7ec1
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.
96 lines
2.8 KiB
HTML
96 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) -}}
|
|
,
|
|
"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: */}}
|