{{- /* 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. @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. 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 := .Params.cite }} {{- $replacedCite := replaceRE `^([a-z]+?://)?(www)?` "" $citeText }} {{- $startOfCite := delimit ( findRE `^([a-z]+?://)?(www)?` $citeText 1 ) "" }} {{- $cite := replaceRE `^` $startOfCite ( trim ( $replacedCite | .pc.Page.RenderString ) "\r\n" ) -}} {{- $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." -}} {{- $cite = delimit ( split $cite "#" ) "" -}} {{- end -}} {{- if ( and ( isset .Params "citeStyle" ) ( not ( in ( slice "inherit" "enquote" "normal" ) .Params.citeStyle ) ) ) -}} {{- erroridf "invalid-citeStyle" "Invalid `citeStyle` value %q for %q" .Params.citeStyle $title -}} {{- end -}} {{- 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 -}} {{- if ( or $titleLang $titleTr ) -}} {{- if ( not ( and $titleLang $titleTr ) ) -}} {{- erroridf "invalid-foreign-title" "Must have both title translation and language set for foreign language title %q" $title -}} {{- end -}} {{- end -}} {{- $hasCitedWork := ( isset .Params "title" ) }} {{- $hasCitedSeries := ( isset .Params "titleSeries" ) -}} {{- $itemType := default "CreativeWork" $itemtype -}} {{- if ( or ( in .sc.Site.Data.itemtypes $itemType ) ( eq .Params.suppress "true" ) ) -}} {{- with .Params.href -}} {{- end -}} {{- with $cite -}} {{- end -}} {{- if $titleLang -}} {{- end -}} {{- ( default $title .Params.shortTitle ) | markdownify | safeHTML -}} {{- if $titleLang -}} {{- end -}} {{- /**/ -}} {{- 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 -}}