{{- $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 -}}