{{- $footnote_heading :=  printf "Footnotes" -}}
{{- if .Params.footnote_heading -}}
	{{- $footnote_heading =  .Params.footnote_heading -}}
{{- end -}}

<!--
	Add heading to footnotes, remove unused class.
	Requires Goldmark v1.4.12 or higher, since that version switched
	endnotes from a <section> to a <div>.
-->
{{- $referencesWithoutHeading    := `(<div class="footnotes" role="doc-endnotes">
<hr>)` -}}
{{- $referencesWithHeading := printf `<section role="doc-endnotes" aria-labelledby="note-hd">
<h2 id="note-hd">%s</h2>` ($footnote_heading) -}}

{{- $endnotesClosingDiv := `</a></p>
</li>
</ol>
</div>` -}}

{{- $endnotesClosingSection := printf `</a></p>
</li>
</ol>
</section>` -}}

<!--Remove deprecated DPUB-ARIA role and unused classes-->
{{- $endnote := `(role="doc-endnote"|class="footnote-(back)?ref")` -}}
{{- $noEndnote := printf "" -}}

<!--Move the Table of Contents heading *inside* the <nav> element-->
{{- $tocHeadingOutside := `<h2>Table of Contents</h2><nav(?:.*)>` -}}
{{- $tocHeadingInside := `<nav id=TableOfContents role="doc-toc"><h2 id="toc-hd">Table of Contents</h2>` -}}

<!--Give footnote backlinks accessible names-->
{{- $footnoteBacklinksBad  :=  `<a href="#fnref:([0-9]*)"(.*role="doc-backlink"(?:.*)?)>` -}}
{{- $footnoteBacklinksGood :=  `<a href="#fnref:${1}" title="back to reference ${1}" aria-label="back to reference ${1}"${2}>` -}}

{{- $repeatedFootnoteBacklinksBad  :=  `<a href="#fnref([0-9]):([0-9]*)"(.*role="doc-backlink"(?:.*)?)>` -}}
{{- $repeatedFootnoteBacklinksGood :=  `<a href="#fnref${1}:${2}" title="back to reference ${2}, repeated instance ${1}" aria-label="back to reference ${2}, repeated instance ${1}"${3}>` -}}

{{- .Content | replaceRE $referencesWithoutHeading $referencesWithHeading | replaceRE $endnotesClosingDiv $endnotesClosingSection | replaceRE $endnote $noEndnote | replaceRE $tocHeadingOutside $tocHeadingInside | replaceRE $footnoteBacklinksBad $footnoteBacklinksGood | replaceRE $repeatedFootnoteBacklinksBad $repeatedFootnoteBacklinksGood | safeHTML -}}