-
Notifications
You must be signed in to change notification settings - Fork 441
Closed
Description
I tried to use safe_mode and saw some unexpected behavior. Below are the problems I encountered. I didn't want to spam the issues, but let me know if you prefer an issue per item.
Version: 9a88ce1
import markdown2
# <code> tags are escaped inside links.
# Expected: <p><a href="https://example.com"><code>example.com</code></a></p>
# Actual: <p><a href="https://example.com"><code>example.com</code></a></p>
markdown_text = R"[`example.com`](https://example.com)"
print(markdown2.markdown(markdown_text, safe_mode='escape'))
# No handling of escaped HTML characters.
# Expected: <p><abc>&amp;</p>
# Actual: <p>\<abc\>\&</p>
markdown_text = R"\<abc\>\&"
print(markdown2.markdown(markdown_text, safe_mode='escape'))
# Excessive escaping in inline code.
# Expected: <p>Path: <code>C:\<folder 1></code></p>
# Actual: <p>Path: <code>C:\&lt;folder 1></code></p>
markdown_text = R"Path: `C:\<folder 1>`"
print(markdown2.markdown(markdown_text, safe_mode='escape'))
# Fenced code blocks joined to list.
#
# Expected:
# <ul>
# <li>Item 1</li>
# <li>Item 2</li>
# </ul>
#
# <pre><code>// Some code
# </code></pre>
#
# Actual:
# <ul>
# <li>Item 1</li>
# <li>Item 2
# <pre><code>// Some code
# </code></pre></li>
# </ul>
markdown_text = R"""
* Item 1
* Item 2
```
// Some code
```
"""
print(markdown2.markdown(markdown_text, safe_mode='escape',
extras={'fenced-code-blocks': None}))
# Asterisks not turned to html.
# Expected: <p><<em>test</em>></p>
# Actual: <p><*test*></p>
markdown_text = R"<*test*>"
print(markdown2.markdown(markdown_text, safe_mode='escape'))
# Closing HTML tags not escaped.
# Expected: <h1><some text></h1>
# Actual: <h1><some text></h1>
markdown_text = R"# <some text>"
print(markdown2.markdown(markdown_text, safe_mode='escape'))
# Escaped backslashes not handled.
#
# Expected:
# <p>a\b
# <x>\<y></p>
#
# Actual:
# <p>a\b
# <x>\\<y></p>
markdown_text = R"""
a\\b
<x>\\<y>
"""
print(markdown2.markdown(markdown_text, safe_mode='escape'))
# HTML comments are escaped, should be removed or left alone.
# Expected: <p>test test2</p>
# Actual: <p>test <!-- comment --> test2</p>
markdown_text = R"test <!-- comment --> test2"
print(markdown2.markdown(markdown_text, safe_mode='escape'))
# Closing quotes aren't escaped.
# Expected: <p>test></p>
# Actual: <p>test></p>
markdown_text = R"test>"
print(markdown2.markdown(markdown_text, safe_mode='escape'))Metadata
Metadata
Assignees
Labels
No labels