From 07c6aa6d4585579b6e5ec21e8b39e99cb62fd495 Mon Sep 17 00:00:00 2001 From: Ben Goldsworthy Date: Fri, 21 Feb 2025 23:18:07 +0100 Subject: [PATCH] linkable blockquote citations --- layouts/shortcodes/blockquote.html | 86 ++++++++++++++++++------------ 1 file changed, 52 insertions(+), 34 deletions(-) diff --git a/layouts/shortcodes/blockquote.html b/layouts/shortcodes/blockquote.html index 7b2e36f..9a36dd8 100644 --- a/layouts/shortcodes/blockquote.html +++ b/layouts/shortcodes/blockquote.html @@ -1,29 +1,32 @@ {{- /* - Renders a block quotation. + Renders a block quotation. - @params style Force a blockquote style. Optional. - @params cite URI for work. Optional. - @params source The speaker(s) of the quotation. + @params style Force a blockquote style. Optional. + @params cite URI for work. Optional. + @params source The speaker(s) of the quotation. - 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 (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 schemaTypeSeries 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. -*/ -}} + For works cited that form part of a series (optional): + @params schemaTypeSeries 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. + */ +-}} {{- $valid_styles := slice "" "epigram" "script" -}} + {{- $style := default "" ( index .Params "style" ) -}} {{- $cite := default "" ( index .Params "cite" ) -}} +{{- $href := default "" ( index .Params "href" ) -}} {{- $ibid := default false ( index .Params "ibid" ) -}} {{- $source := .Params.source -}} @@ -32,6 +35,7 @@ {{- $hasCitedWork := ( isset .Params "title" ) }} {{- $hasCitedSeries := ( isset .Params "titleSeries" ) -}} + {{- if ( not ( in $valid_styles $style ) ) -}} @@ -43,37 +47,51 @@ {{- end -}} {{- if ( not ( isset $.Params "cite" ) ) -}} - {{- erroridf "missing-cite" "No cite found for blockquote (%q)" .Page.File.Path -}} + {{- erroridf "missing-cite" "No cite found for blockquote (%q)" .Page.File.Path -}} {{- end -}} +
+ role="group" +>
+ {{- with $cite }}cite="{{ . }}"{{- end -}} + > {{- .Inner | .Page.RenderString -}}
-
- {{- if $ibid -}} - Ibid. - {{- else if $source -}} - {{- $source | safeHTML -}} - {{- 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 "schemaType" .Params.schemaTypeSeries -}} - {{- partial "cite.html" . -}} - {{- with .Params.numberSeries }}, {{ . | safeHTML -}}{{- end -}} - ){{- end -}} +
+ {{- if $ibid -}} + Ibid. + {{- else if $source -}} + {{- $source | safeHTML -}} + {{- 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 "schemaType" .Params.schemaTypeSeries -}} + {{- .Scratch.Set "href" .Params.hrefSeries -}} + {{- partial "cite.html" . -}} + {{- with .Params.numberSeries }}, {{ . | safeHTML -}}{{- end -}} + ) + {{- end -}} + {{- end -}} {{- end -}} - {{- end -}}