summaryrefslogtreecommitdiff
path: root/docs/_ext/djangodocs.py
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2015-11-16 11:13:09 -0500
committerTim Graham <timograham@gmail.com>2015-11-16 18:49:31 -0500
commite48a5b5a03181b3ada6183595eb6e1c599a9657a (patch)
treea8e26b964d981e5577dcc58ae345d9ff925774b3 /docs/_ext/djangodocs.py
parent101dbeb673caf6b962e2e8fd09fe09dac26e9771 (diff)
downloaddjango-e48a5b5a03181b3ada6183595eb6e1c599a9657a.tar.gz
Fixed #23751 -- Fixed code snippet formatting in docs PDF.
Thanks Graham Wideman for the patch.
Diffstat (limited to 'docs/_ext/djangodocs.py')
-rw-r--r--docs/_ext/djangodocs.py30
1 files changed, 19 insertions, 11 deletions
diff --git a/docs/_ext/djangodocs.py b/docs/_ext/djangodocs.py
index 38f11dfd98..fd93194d5e 100644
--- a/docs/_ext/djangodocs.py
+++ b/docs/_ext/djangodocs.py
@@ -125,14 +125,8 @@ def visit_snippet_latex(self, node):
"""
Latex document generator visit handler
"""
- self.verbatim = ''
+ code = node.rawsource.rstrip('\n')
-
-def depart_snippet_latex(self, node):
- """
- Latex document generator depart handler.
- """
- code = self.verbatim.rstrip('\n')
lang = self.hlsettingstack[-1][0]
linenos = code.count('\n') >= self.hlsettingstack[-1][1] - 1
fname = node['filename']
@@ -151,9 +145,14 @@ def depart_snippet_latex(self, node):
linenos=linenos,
**highlight_args)
- self.body.append('\n{\\colorbox[rgb]{0.9,0.9,0.9}'
- '{\\makebox[\\textwidth][l]'
- '{\\small\\texttt{%s}}}}\n' % (fname,))
+ self.body.append(
+ '\n{\\colorbox[rgb]{0.9,0.9,0.9}'
+ '{\\makebox[\\textwidth][l]'
+ '{\\small\\texttt{%s}}}}\n' % (
+ # Some filenames have '_', which is special in latex.
+ fname.replace('_', r'\_'),
+ )
+ )
if self.table:
hlcode = hlcode.replace('\\begin{Verbatim}',
@@ -165,7 +164,16 @@ def depart_snippet_latex(self, node):
hlcode = hlcode.rstrip() + '\n'
self.body.append('\n' + hlcode + '\\end{%sVerbatim}\n' %
(self.table and 'Original' or ''))
- self.verbatim = None
+
+ # Prevent rawsource from appearing in output a second time.
+ raise nodes.SkipNode
+
+
+def depart_snippet_latex(self, node):
+ """
+ Latex document generator depart handler.
+ """
+ pass
class SnippetWithFilename(Directive):