|
17 | 17 | from docutils.parsers.rst.states import Inliner # NoQA: TCH002 |
18 | 18 | from docutils.statemachine import State, StateMachine, StringList |
19 | 19 | from docutils.utils import Reporter, unescape |
20 | | -from docutils.writers._html_base import HTMLTranslator |
21 | 20 |
|
22 | 21 | from sphinx.errors import SphinxError |
23 | 22 | from sphinx.locale import _, __ |
@@ -181,46 +180,12 @@ def using_user_docutils_conf(confdir: str | None) -> Iterator[None]: |
181 | 180 | os.environ['DOCUTILSCONFIG'] = docutilsconfig |
182 | 181 |
|
183 | 182 |
|
184 | | -@contextmanager |
185 | | -def du19_footnotes() -> Iterator[None]: |
186 | | - def visit_footnote(self: HTMLTranslator, node: Element) -> None: |
187 | | - label_style = self.settings.footnote_references |
188 | | - if not isinstance(node.previous_sibling(), type(node)): |
189 | | - self.body.append(f'<aside class="footnote-list {label_style}">\n') |
190 | | - self.body.append(self.starttag(node, 'aside', |
191 | | - classes=[node.tagname, label_style], |
192 | | - role="note")) |
193 | | - |
194 | | - def depart_footnote(self: HTMLTranslator, node: Element) -> None: |
195 | | - self.body.append('</aside>\n') |
196 | | - if not isinstance(node.next_node(descend=False, siblings=True), |
197 | | - type(node)): |
198 | | - self.body.append('</aside>\n') |
199 | | - |
200 | | - old_visit_footnote = HTMLTranslator.visit_footnote |
201 | | - old_depart_footnote = HTMLTranslator.depart_footnote |
202 | | - |
203 | | - # Only apply on Docutils 0.18 or 0.18.1, as 0.17 and earlier used a <dl> based |
204 | | - # approach, and 0.19 and later use the fixed approach by default. |
205 | | - if docutils.__version_info__[:2] == (0, 18): |
206 | | - HTMLTranslator.visit_footnote = visit_footnote # type: ignore[method-assign] |
207 | | - HTMLTranslator.depart_footnote = depart_footnote # type: ignore[method-assign] |
208 | | - |
209 | | - try: |
210 | | - yield |
211 | | - finally: |
212 | | - if docutils.__version_info__[:2] == (0, 18): |
213 | | - HTMLTranslator.visit_footnote = old_visit_footnote # type: ignore[method-assign] |
214 | | - HTMLTranslator.depart_footnote = old_depart_footnote # type: ignore[method-assign] |
215 | | - |
216 | | - |
217 | 183 | @contextmanager |
218 | 184 | def patch_docutils(confdir: str | None = None) -> Iterator[None]: |
219 | 185 | """Patch to docutils temporarily.""" |
220 | 186 | with patched_get_language(), \ |
221 | 187 | patched_rst_get_language(), \ |
222 | | - using_user_docutils_conf(confdir), \ |
223 | | - du19_footnotes(): |
| 188 | + using_user_docutils_conf(confdir): |
224 | 189 | yield |
225 | 190 |
|
226 | 191 |
|
|
0 commit comments