From 7ffe0e693fb8b2d97ea789eb8a700e514265d271 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Date: Sat, 4 Dec 2021 02:19:44 +0000 Subject: [PATCH 01/13] Fix footnotes natively, remove JavaScript shim --- .../pep_processor/html/pep_html_translator.py | 44 +++++++++++-------- .../pep_theme/static/doctools.js | 5 --- .../pep_theme/templates/page.html | 1 - 3 files changed, 26 insertions(+), 24 deletions(-) delete mode 100644 pep_sphinx_extensions/pep_theme/static/doctools.js diff --git a/pep_sphinx_extensions/pep_processor/html/pep_html_translator.py b/pep_sphinx_extensions/pep_processor/html/pep_html_translator.py index 9e87daf89d5..d1ad27f2fa9 100644 --- a/pep_sphinx_extensions/pep_processor/html/pep_html_translator.py +++ b/pep_sphinx_extensions/pep_processor/html/pep_html_translator.py @@ -57,26 +57,34 @@ def depart_paragraph(self, _: nodes.paragraph) -> None: """Add corresponding end tag from `visit_paragraph`.""" self.body.append(self.context.pop()) + def visit_footnote_reference(self, node): + self.body.append(self.starttag(node, "a", suffix="[", + CLASS=f"footnote-reference {self.settings.footnote_references}", + href=f"#{node['refid']}" + )) + + def depart_footnote_reference(self, node): + self.body.append(']') + + def visit_label(self, node): + # pass parent node to get id into starttag: + self.body.append(self.starttag(node.parent, "dt", suffix="[", CLASS="label")) + + # footnote/citation backrefs: + back_refs = node.parent["backrefs"] + if self.settings.footnote_backlinks and len(back_refs) == 1: + self.body.append(f'') + self.context.append(f"]") + else: + self.context.append("]") + def depart_label(self, node) -> None: """PEP link/citation block cleanup with italicised backlinks.""" - if not self.settings.footnote_backlinks: - self.body.append("") - self.body.append("\n