linkable blockquote citations

This commit is contained in:
Ben Goldsworthy 2025-02-21 23:18:07 +01:00
parent 44cb516ff6
commit 07c6aa6d45
Signed by: Rumperuu
SSH key fingerprint: SHA256:v3uompaUiPqV2w1/AIRWBSQOxr2dntH9Xs/y8fDnUPU

View file

@ -16,14 +16,17 @@
@params titleSeriesLang Language code of a foreign-language work series' title. 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 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. @params numberSeries The number or code of the quoted work within its series. Optional.
*/ -}} */
-}}
{{- $valid_styles := slice "" "epigram" "script" -}} {{- $valid_styles := slice "" "epigram" "script" -}}
<!-- Variable assignment --> <!-- Variable assignment -->
{{- $style := default "" ( index .Params "style" ) -}} {{- $style := default "" ( index .Params "style" ) -}}
{{- $cite := default "" ( index .Params "cite" ) -}} {{- $cite := default "" ( index .Params "cite" ) -}}
{{- $href := default "" ( index .Params "href" ) -}}
{{- $ibid := default false ( index .Params "ibid" ) -}} {{- $ibid := default false ( index .Params "ibid" ) -}}
{{- $source := .Params.source -}} {{- $source := .Params.source -}}
@ -32,6 +35,7 @@
{{- $hasCitedWork := ( isset .Params "title" ) }} {{- $hasCitedWork := ( isset .Params "title" ) }}
{{- $hasCitedSeries := ( isset .Params "titleSeries" ) -}} {{- $hasCitedSeries := ( isset .Params "titleSeries" ) -}}
<!-- Validation --> <!-- Validation -->
{{- if ( not ( in $valid_styles $style ) ) -}} {{- if ( not ( in $valid_styles $style ) ) -}}
@ -46,33 +50,47 @@
{{- 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 -}} {{- end -}}
<!-- Rendering --> <!-- Rendering -->
<figure <figure
class="figure--blockquote blockquote{{- with $style }} blockquote--{{- . -}}{{- end -}}" class="figure--blockquote blockquote{{- with $style }} blockquote--{{- . -}}{{- end -}}"
itemscope itemscope
itemtype="Quotation" itemtype="Quotation"
role="group"> role="group"
>
<blockquote <blockquote
class="blockquote__body" class="blockquote__body"
{{- with $cite }} cite="{{ . }}"{{- end -}}> {{- with $cite }}cite="{{ . }}"{{- end -}}
>
{{- .Inner | .Page.RenderString -}} {{- .Inner | .Page.RenderString -}}
</blockquote> </blockquote>
<figcaption class="blockquote__caption{{- if $isSourceHidden }} blockquote__caption--hidden{{- end -}}"> <figcaption class="blockquote__caption{{- if $isSourceHidden }}blockquote__caption--hidden{{- end -}}">
{{- if $ibid -}} {{- if $ibid -}}
<abbr lang="la" title="ibīdem [in the same place]">Ibid.</abbr> <abbr
lang="la"
title="ibīdem [in the same place]"
>Ibid.</abbr
>
{{- else if $source -}} {{- else if $source -}}
<span temprop="spokenByCharacter">{{- $source | safeHTML -}}</span> <span temprop="spokenByCharacter">{{- $source | safeHTML -}}</span>
{{- if $hasCitedWork -}}, <span itemprop="isBasedOn">{{- partial "cite.html" . -}} {{- if $hasCitedWork -}}
{{- if $hasCitedSeries }} ( ,
<span itemprop="isBasedOn"
>{{- partial "cite.html" . -}}
{{- if $hasCitedSeries }}
(
{{- .Scratch.Set "cite" .Params.citeSeries -}} {{- .Scratch.Set "cite" .Params.citeSeries -}}
{{- .Scratch.Set "title" .Params.titleSeries -}} {{- .Scratch.Set "title" .Params.titleSeries -}}
{{- .Scratch.Set "titleLang" .Params.titleSeriesLang -}} {{- .Scratch.Set "titleLang" .Params.titleSeriesLang -}}
{{- .Scratch.Set "titleTr" .Params.titleSeriesTr -}} {{- .Scratch.Set "titleTr" .Params.titleSeriesTr -}}
{{- .Scratch.Set "schemaType" .Params.schemaTypeSeries -}} {{- .Scratch.Set "schemaType" .Params.schemaTypeSeries -}}
{{- .Scratch.Set "href" .Params.hrefSeries -}}
{{- partial "cite.html" . -}} {{- partial "cite.html" . -}}
{{- with .Params.numberSeries }}, {{ . | safeHTML -}}{{- end -}} {{- with .Params.numberSeries }}, {{ . | safeHTML -}}{{- end -}}
){{- end -}}</span> )
{{- end -}}</span
>
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
</figcaption> </figcaption>