Do not escape underscore inside preformat blocks
This commit is contained in:
@ -73,10 +73,13 @@ class RSTMarkup(Markup):
|
|||||||
def unescape_rst_chars(self, text):
|
def unescape_rst_chars(self, text):
|
||||||
text = text.replace('\\*', '*')
|
text = text.replace('\\*', '*')
|
||||||
text = text.replace('\\^', '^')
|
text = text.replace('\\^', '^')
|
||||||
text = text.replace('\\_', '_')
|
text = self.unescape_underscore(text)
|
||||||
text = text.replace('\\|', '|')
|
text = text.replace('\\|', '|')
|
||||||
return text
|
return text
|
||||||
|
|
||||||
|
def unescape_underscore(self, text):
|
||||||
|
return text.replace('\\_', '_')
|
||||||
|
|
||||||
def inline_math(self, text):
|
def inline_math(self, text):
|
||||||
start_pos = text.find("\\(")
|
start_pos = text.find("\\(")
|
||||||
end_pos = text.find("\\)")
|
end_pos = text.find("\\)")
|
||||||
@ -136,6 +139,7 @@ class RSTFormatting(Formatting):
|
|||||||
return content.strip()
|
return content.strip()
|
||||||
|
|
||||||
def preformat(self, content):
|
def preformat(self, content):
|
||||||
|
content = self.markup.unescape_underscore(content)
|
||||||
if self.indent_level > 0:
|
if self.indent_level > 0:
|
||||||
return self.list_indent("\n.. parsed-literal::\n\n" + self.indent(content.rstrip()), self.indent_level)
|
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())
|
return "\n.. parsed-literal::\n\n" + self.indent(content.rstrip())
|
||||||
|
|||||||
@ -169,6 +169,13 @@ class TestFormatting(unittest.TestCase):
|
|||||||
" Hello\n"
|
" Hello\n"
|
||||||
" World\n\n", s)
|
" 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):
|
def test_header_formatting(self):
|
||||||
s = self.txt2rst.convert("Level 1 :h1\n"
|
s = self.txt2rst.convert("Level 1 :h1\n"
|
||||||
"Level 2 :h2\n"
|
"Level 2 :h2\n"
|
||||||
|
|||||||
Reference in New Issue
Block a user