Escape RST special character '*' in final output

(cherry picked from commit 7cb39811d4)
This commit is contained in:
Richard Berger
2016-09-06 23:31:58 -04:00
committed by Axel Kohlmeyer
parent 55022d1263
commit 3f312244a0
2 changed files with 9 additions and 0 deletions

View File

@ -57,10 +57,15 @@ class RSTMarkup(Markup):
return text return text
def convert(self, text): def convert(self, text):
text = self.escape_rst_chars(text)
text = super().convert(text) text = super().convert(text)
text = self.inline_math(text) text = self.inline_math(text)
return text return text
def escape_rst_chars(self, text):
text = text.replace('*', '\\*')
return text
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("\\)")

View File

@ -77,6 +77,10 @@ class TestMarkup(unittest.TestCase):
self.assertEqual("**bold** = [bold]\n" self.assertEqual("**bold** = [bold]\n"
"*italic* = {italic}\n", s) "*italic* = {italic}\n", s)
def test_escape_rst_characters(self):
s = self.markup.convert("[*bold] and {italic*}")
self.assertEqual("**\*bold** and *italic\**", s)
def test_paragraph_with_italic(self): def test_paragraph_with_italic(self):
self.assertEqual("A sentence with a *italic* word", self.markup.convert("A sentence with a {italic} word")) self.assertEqual("A sentence with a *italic* word", self.markup.convert("A sentence with a {italic} word"))