diff --git a/content/styleguide/index.md b/content/styleguide/index.md
index b570d3e..9ee381b 100644
--- a/content/styleguide/index.md
+++ b/content/styleguide/index.md
@@ -261,7 +261,7 @@ An epigram-style blockquote shortcode.
{{< blockquote
source="Source"
title="Film title"
- schemaType="Movie"
+ itemtype="Movie"
style="epigram"
>}}
A blockquote shortcode.
@@ -270,9 +270,9 @@ A blockquote shortcode.
{{< blockquote
source="Source"
title="Chapter title"
- schemaType="Chapter"
+ itemtype="Chapter"
titleSeries="Book title"
- schemaTypeSeries="Book"
+ itemtypeSeries="Book"
style="epigram"
>}}
A blockquote shortcode.
@@ -281,9 +281,9 @@ A blockquote shortcode.
{{< blockquote
source="Source"
title="TV episode title"
- schemaType="TVEpisode"
+ itemtype="TVEpisode"
titleSeries="TV series title"
- schemaTypeSeries="TVSeries"
+ itemtypeSeries="TVSeries"
numberSeries="S01E01"
style="epigram"
>}}
diff --git a/layouts/partials/cite.html b/layouts/partials/cite.html
index c53609c..c6ac91a 100644
--- a/layouts/partials/cite.html
+++ b/layouts/partials/cite.html
@@ -1,6 +1,9 @@
{{- /*
Renders a work citation with semantic markup, called using the `cite` shortcode.
+ @params sc Site context.
+ @params pc Page context.
+
@params cite URI for work. Optional.
@params citeStyle Force a citation style. Optional.
@params href URI for citation, or 'asCite' to use value of `cite`. Optional.
@@ -9,18 +12,27 @@
@params title Title of the work to display.
@params titleLang Language code of a foreign-language work's title. Optional.
@params titleTr English translation of a foreign-language work's title. Optional.
+
+ For works cited that form part of a series (optional):
+ @params itemtypeSeries The Schema.org `itemtype` value for the work series. Default 'CreativeWork'. Optional.
+ @params titleSeries Title of the work series to display. Optional.
+ @params citeSeries URI for work series. Optional.
+ @params titleSeriesLang Language code of a foreign-language work series' title. Optional.
+ @params titleSeriesTr English translation of a foreign-language work series' title. Optional.
+ @params numberSeries The number or code of the quoted work within its series. Optional.
*/ -}}
-{{- $citeText := default .Params.cite ( .Scratch.Get "cite" ) }}
+
+{{- $citeText := .Params.cite }}
{{- $replacedCite := replaceRE `^([a-z]+?://)?(www)?` "" $citeText }}
{{- $startOfCite := delimit ( findRE `^([a-z]+?://)?(www)?` $citeText 1 ) "" }}
-{{- $cite := replaceRE `^` $startOfCite ( trim ( $replacedCite | .Page.RenderString ) "\r\n" ) -}}
+{{- $cite := replaceRE `^` $startOfCite ( trim ( $replacedCite | .pc.Page.RenderString ) "\r\n" ) -}}
-{{- $title := trim ( default .Params.title ( .Scratch.Get "title" ) | .Page.RenderString ) "\r\n" -}}
-{{- $titleLang := default .Params.titleLang ( .Scratch.Get "titleLang" ) -}}
-{{- $titleTr := default .Params.titleTr ( .Scratch.Get "titleTr" ) -}}
-{{- $itemtype := default .Params.itemtype ( .Scratch.Get "itemtype" ) -}}
+{{- $title := trim ( .Params.title | .pc.Page.RenderString ) "\r\n" -}}
+{{- $titleLang := .Params.titleLang -}}
+{{- $titleTr := .Params.titleTr -}}
+{{- $itemtype := .Params.itemtype -}}
{{- if ( strings.Contains $cite "#" ) -}}
{{- erroridf "cite-with-fragment" "Cite parameter includes fragment identifier, which probably isn't what you want." -}}
@@ -35,8 +47,8 @@
-{{- if ( and $itemtype ( not ( in $.Site.Data.itemtypes $itemtype ) ) ) -}}
- {{- erroridf "invalid-itemtype" "Invalid Schema.org type value %q for %q" $itemtype $title -}}
+{{- if ( and $itemtype ( not ( in .sc.Site.Data.itemtypes $itemtype ) ) ) -}}
+ {{- erroridf "invalid-itemtype" "Invalid Schema.org type value '%s' for %s (%q)\r\n%q" $itemtype .Params.title .sc.Page.File.Dir .Params -}}
{{- end -}}
@@ -47,9 +59,15 @@
{{- end -}}
{{- end -}}
+
+
+{{- $hasCitedWork := ( isset .Params "title" ) }}
+{{- $hasCitedSeries := ( isset .Params "titleSeries" ) -}}
+
+
{{- $itemType := default "CreativeWork" $itemtype -}}
-{{- if ( or ( in $.Site.Data.itemtypes $itemType ) ( eq .Params.suppress "true" ) ) -}}
+{{- if ( or ( in .sc.Site.Data.itemtypes $itemType ) ( eq .Params.suppress "true" ) ) -}}
{{- with .Params.href -}}
{{- end -}}
@@ -89,6 +107,28 @@
{{- with .Params.href -}}
{{- end -}}
+
+ {{- if $hasCitedSeries }}
+ (
+ {{- partial "cite.html" (
+ dict
+ "sc" $.sc
+ "pc" $.pc
+ "Params" (
+ dict
+ "cite" .Params.citeSeries
+ "title" .Params.titleSeries
+ "titleLang" .Params.titleSeriesLang
+ "titleTr" .Params.titleSeriesTr
+ "itemtype" .Params.itemtypeSeries
+ "href" .Params.hrefSeries
+ )
+ ) -}}
+
+ {{- with .Params.seasonNumber }}, S{{ . }}{{- end -}}
+ {{- with .Params.episodeNumber }}, E{{ . }}{{- end -}}
+ )
+ {{- end -}}
{{- else -}}
{{- erroridf "invalid-schema-type" "Invalid Schema.org type value %q for %q" $itemType $title -}}
{{- end -}}
diff --git a/layouts/partials/item-tile.html b/layouts/partials/item-tile.html
index 1a848e4..4c56c25 100644
--- a/layouts/partials/item-tile.html
+++ b/layouts/partials/item-tile.html
@@ -33,7 +33,7 @@
class="item-tile lazy {{- with .Params.site }}item-tile--{{ . }}{{ end -}}"
{{ if .Params.featured_image }}
{{ with .Resources.GetMatch .Params.featured_image }}
- {{ if eq .MediaType.SubType "svg" }}
+ {{ if ( in ( slice "avif" "svg" "gif" ) .MediaType.SubType ) }}
style="background-image: url({{ .RelPermalink }})"
{{ else }}
{{ with .Resize "1000x webp" }}
@@ -51,7 +51,7 @@
style="display: none;"
src="
{{- with .Resources.GetMatch .Params.featured_image -}}
- {{- if eq .MediaType.SubType "svg" -}}
+ {{- if ( in ( slice "avif" "svg" "gif" ) .MediaType.SubType ) -}}
{{ .RelPermalink }}
{{- else -}}
{{- with .Resize "1000x webp" -}}
@@ -87,7 +87,7 @@
{{ end }}
{{- if .File -}}
- {{- partialCached "text/item-title.html" ( dict "pc" . "sc" $ "class" "item-tile" ) .File.Filename -}}
+ {{- partial "text/item-title.html" ( dict "pc" . "sc" $ "class" "item-tile" ) -}}
{{- else -}}
{{- partial "text/item-title.html" ( dict "pc" . "sc" $ "class" "item-tile" ) -}}
{{- end -}}
diff --git a/layouts/shortcodes/blockquote.html b/layouts/shortcodes/blockquote.html
index b13aa36..e5b4459 100644
--- a/layouts/shortcodes/blockquote.html
+++ b/layouts/shortcodes/blockquote.html
@@ -9,14 +9,6 @@
For works cited (optional):
@params ibid Whether to use ibidem as the source. Optional.
@see partials/cite.html for full list of args.
-
- For works cited that form part of a series (optional):
- @params itemtypeSeries The Schema.org `itemtype` value for the work series. Default 'CreativeWork'. Optional.
- @params titleSeries Title of the work series to display. Optional.
- @params citeSeries URI for work series. Optional.
- @params titleSeriesLang Language code of a foreign-language work series' title. Optional.
- @params titleSeriesTr English translation of a foreign-language work series' title. Optional.
- @params numberSeries The number or code of the quoted work within its series. Optional.
*/
-}}
@@ -35,7 +27,6 @@
{{- $isSourceHidden := default ( not ( or ( isset .Params "source" ) ( isset .Params "ibid" ) ) ) ( index .Params "hideSource" ) -}}
{{- $hasCitedWork := ( isset .Params "title" ) }}
-{{- $hasCitedSeries := ( isset .Params "titleSeries" ) -}}
@@ -79,20 +70,8 @@
{{- if $hasCitedWork -}}
,
{{- partial "cite.html" . -}}
- {{- if $hasCitedSeries }}
- (
- {{- .Scratch.Set "cite" .Params.citeSeries -}}
- {{- .Scratch.Set "title" .Params.titleSeries -}}
- {{- .Scratch.Set "titleLang" .Params.titleSeriesLang -}}
- {{- .Scratch.Set "titleTr" .Params.titleSeriesTr -}}
- {{- .Scratch.Set "itemtype" .Params.itemtypeSeries -}}
- {{- .Scratch.Set "href" .Params.hrefSeries -}}
- {{- partial "cite.html" . -}}
- {{- with .Params.numberSeries }}, {{ . | safeHTML -}}{{- end -}}
- )
- {{- end -}}
+ >{{- partial "cite.html" ( dict "sc" $ "pc" . "Params" .Params ) -}}
+
{{- end -}}
{{- with $comment -}}
{{- printf " (%s)" . -}}
diff --git a/layouts/shortcodes/cite.html b/layouts/shortcodes/cite.html
index 73898a6..b42e507 100644
--- a/layouts/shortcodes/cite.html
+++ b/layouts/shortcodes/cite.html
@@ -1,28 +1,31 @@
{{- /*
- Renders a work citation with semantic markup.
+ Renders a work citation with semantic markup.
+
+ @params cite URI for work. Optional.
+ @params citeStyle Force a citation style. Optional.
+ @params href URI for citation, or 'asCite' to use value of `cite`. Optional.
+ @params itemtype The Schema.org `itemtype` value. Default 'CreativeWork'.
+ @params shortTitle Abbreviated display title. Optional.
+ @params title Title of the work to display.
+ @params titleLang Language code of a foreign-language work's title. Optional.
+ @params titleTr English translation of a foreign-language work's title. Optional.
+ */
+-}}
- @params cite URI for work. Optional.
- @params citeStyle Force a citation style. Optional.
- @params href URI for citation, or 'asCite' to use value of `cite`. Optional.
- @params itemtype The Schema.org `itemtype` value. Default 'CreativeWork'.
- @params shortTitle Abbreviated display title. Optional.
- @params title Title of the work to display.
- @params titleLang Language code of a foreign-language work's title. Optional.
- @params titleTr English translation of a foreign-language work's title. Optional.
-*/ -}}
{{- if ( not ( isset .Params "title" ) ) -}}
- {{- errorf "No title found for citation (%q)" .Page.File.Path -}}
+ {{- errorf "No title found for citation (%q)" .Page.File.Path -}}
{{- end -}}
{{- if ( not ( isset $.Params "cite" ) ) -}}
- {{- erroridf "missing-cite" "No cite found for citation '%q' (%q)" .Params.title .Page.File.Path -}}
+ {{- erroridf "missing-cite" "No cite found for citation '%q' (%q)" .Params.title .Page.File.Path -}}
{{- end -}}
+
{{- $citationId := printf "%s%s" ( cond ( isset .Params "cite" ) .Params.cite .Params.title ) ( default "" .Params.shortTitle ) -}}
-{{- partialCached "cite.html" . $citationId -}}
+{{- partial "cite.html" ( dict "sc" $ "pc" . "Params" .Params ) -}}
diff --git a/layouts/shortcodes/gallery.html b/layouts/shortcodes/gallery.html
index f51fc1e..9e3093d 100644
--- a/layouts/shortcodes/gallery.html
+++ b/layouts/shortcodes/gallery.html
@@ -21,7 +21,7 @@
itemprop="image">
