{{- $codeIndex := (.Page.Scratch.Get "codeIndex") -}}
{{- $id := (printf `code-%d` $codeIndex) -}}
{{- with .Get "id" -}}
	{{- $id = . -}}
{{- end -}}
<!--
	The full caption is too long for an aria-label;
	just use the beginning for the label and the full thing for the aria description.
-->
<figure aria-labelledby="{{ $id }}" itemprop="hasPart" itemscope="" itemtype="https://schema.org/SoftwareSourceCode">
{{ if .Get "samp" -}}
{{ .Inner | .Page.RenderString | replaceRE "<code" "<samp" | replaceRE "</code>" "</samp>" | safeHTML -}}
{{- else -}}
{{ .Inner | .Page.RenderString -}}
{{- end }}
</figure>