@@ -33,9 +33,38 @@ def new_visit_versionmodified(self, node):
3333 self .body .append ('<span class="versionmodified">%s</span> ' % text )
3434
3535from sphinx .writers .html import HTMLTranslator
36+ from sphinx .writers .latex import LaTeXTranslator
3637from sphinx .locale import versionlabels
3738HTMLTranslator .visit_versionmodified = new_visit_versionmodified
39+ HTMLTranslator .visit_versionmodified = new_visit_versionmodified
3840
41+ # monkey-patch HTML and LaTeX translators to keep doctest blocks in the
42+ # doctest docs themselves
43+ orig_visit_literal_block = HTMLTranslator .visit_literal_block
44+ def new_visit_literal_block (self , node ):
45+ meta = self .builder .env .metadata [self .builder .current_docname ]
46+ old_trim_doctest_flags = self .highlighter .trim_doctest_flags
47+ if 'keepdoctest' in meta :
48+ self .highlighter .trim_doctest_flags = False
49+ try :
50+ orig_visit_literal_block (self , node )
51+ finally :
52+ self .highlighter .trim_doctest_flags = old_trim_doctest_flags
53+
54+ HTMLTranslator .visit_literal_block = new_visit_literal_block
55+
56+ orig_depart_literal_block = LaTeXTranslator .depart_literal_block
57+ def new_depart_literal_block (self , node ):
58+ meta = self .builder .env .metadata [self .curfilestack [- 1 ]]
59+ old_trim_doctest_flags = self .highlighter .trim_doctest_flags
60+ if 'keepdoctest' in meta :
61+ self .highlighter .trim_doctest_flags = False
62+ try :
63+ orig_depart_literal_block (self , node )
64+ finally :
65+ self .highlighter .trim_doctest_flags = old_trim_doctest_flags
66+
67+ LaTeXTranslator .depart_literal_block = new_depart_literal_block
3968
4069# Support for marking up and linking to bugs.python.org issues
4170
0 commit comments