Do not escape underscore inside preformat blocks

This commit is contained in:
Richard Berger
2016-09-26 16:56:24 -04:00
parent 877a504933
commit 67d4c07689
2 changed files with 12 additions and 1 deletions

View File

@ -73,10 +73,13 @@ class RSTMarkup(Markup):
def unescape_rst_chars(self, text):
text = text.replace('\\*', '*')
text = text.replace('\\^', '^')
text = text.replace('\\_', '_')
text = self.unescape_underscore(text)
text = text.replace('\\|', '|')
return text
def unescape_underscore(self, text):
return text.replace('\\_', '_')
def inline_math(self, text):
start_pos = text.find("\\(")
end_pos = text.find("\\)")
@ -136,6 +139,7 @@ class RSTFormatting(Formatting):
return content.strip()
def preformat(self, content):
content = self.markup.unescape_underscore(content)
if self.indent_level > 0:
return self.list_indent("\n.. parsed-literal::\n\n" + self.indent(content.rstrip()), self.indent_level)
return "\n.. parsed-literal::\n\n" + self.indent(content.rstrip())

View File

@ -169,6 +169,13 @@ class TestFormatting(unittest.TestCase):
" Hello\n"
" World\n\n", s)
def test_preformat_formatting_with_underscore(self):
s = self.txt2rst.convert("if MPI.COMM_WORLD.rank == 0:\n"
" print(\"Potential energy: \", L.eval(\"pe\")) :pre\n")
self.assertEqual("\n.. parsed-literal::\n\n"
" if MPI.COMM_WORLD.rank == 0:\n"
" print(\"Potential energy: \", L.eval(\"pe\"))\n\n", s)
def test_header_formatting(self):
s = self.txt2rst.convert("Level 1 :h1\n"
"Level 2 :h2\n"