diff -r 7132c780c686 roundup/cgi/templating.py --- a/roundup/cgi/templating.py Sun Nov 15 15:17:10 2020 -0500 +++ b/roundup/cgi/templating.py Sun Nov 22 16:15:26 2020 +0100 @@ -70,7 +70,7 @@ _safe_protocols = re.compile('(?!' + ':|'.join([re.escape(s) for s in _disable_url_schemes]) + ':)', re.IGNORECASE) def _extras(config): - extras = { 'fenced-code-blocks' : {}, 'nofollow': None } + extras = { 'fenced-code-blocks' : {}, 'nofollow': None, 'code-friendly': True } if config['MARKDOWN_BREAK_ON_NEWLINE']: extras['break-on-newline'] = True return extras diff -r 7132c780c686 test/test_templating.py --- a/test/test_templating.py Sun Nov 15 15:17:10 2020 -0500 +++ b/test/test_templating.py Sun Nov 22 16:15:26 2020 +0100 @@ -530,6 +530,12 @@ else: self.assertEqual(m.replace('\n\n', '\n'), '

embedded code block <pre>

\n
line 1\nline 2\n
\n

new </pre> paragraph

') + def test_string_markdown_intra_word_emphasis(self): + ''' also verify that intra-word emphasis is disabled ''' + p = StringHTMLProperty(self.client, 'test', '1', None, 'test', u2s(u"use 'self.this_long_attr' for the *real* mccoy")) + m = p.markdown().strip() + self.assertEqual(m, "

use 'self.this_long_attr' for the real mccoy

") + def test_markdown_return_text_on_exception(self): ''' string is invalid markdown. missing end of fenced code block ''' p = StringHTMLProperty(self.client, 'test', '1', None, 'test', u2s(u'embedded code block
\n\n``` python\nline 1\nline 2\n\n\nnew 
paragraph'))