{{- /*
    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 schemaType 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.
*/ -}}

<!-- Validation -->

{{- if ( not ( isset .Params "title" ) ) -}}
    {{- 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 -}}
{{- end -}}

<!-- Rendering -->

{{- $citationId := printf "%s%s" ( cond ( isset .Params "cite" ) .Params.cite .Params.title ) ( default "" .Params.shortTitle ) -}}

{{- partialCached "cite.html.tmpl" . $citationId -}}